This bug was introduced here: http://trac.webkit.org/changeset/98827 The root cause is the removal of the line: gc.setGdkExposeEvent(event); from webkitwebview.cpp Without this line being set, it breaks the widget rendering in WidgetRenderingContext.cpp. The WidgetRenderingContext class can function in 2 ways: If transparency is supported, a pixmap is created that is a little larger than needed to hold the rendered widget. The widget is then rendered onto the pixmap. The excess area of the pixmap is assumed to be transparent. The whole pixmap is then drawn onto the cairo surface. If transparency is not supported, it is assumed that there is a reference to the window that is being drawn to. In this case, the widget is rendered right to the window. With this change, there is no longer a reference to the window. The code in WidgetRenderingContext.cpp then flows through as if transparency were supported. The result is a large black border around all widgets.
This bug is present in webkitgtk 1.7.90 and onwards.
Closing this since the original change was for WebKit1.