Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java24
1 files changed, 13 insertions, 11 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java b/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java
index fa826ecfe9..7e853d5d73 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java
@@ -505,6 +505,19 @@ public void create (Composite parent, int style) {
bytes = Converter.wcsToMbcs (null, "POST", true); //$NON-NLS-1$
PostString = C.malloc (bytes.length);
C.memmove (PostString, bytes, bytes.length);
+
+ /*
+ * WebKitGTK version 1.8.x and newer can crash sporadically in
+ * webkitWebViewRegisterForIconNotification(). The root issue appears
+ * to be WebKitGTK accessing its icon database from a background
+ * thread. Work around this crash by disabling the use of WebKitGTK's
+ * icon database, which should not affect the Browser in any way.
+ */
+ long /*int*/ database = WebKitGTK.webkit_get_favicon_database ();
+ if (database != 0) {
+ /* WebKitGTK version is >= 1.8.x */
+ WebKitGTK.webkit_favicon_database_set_path (database, 0);
+ }
}
scrolledWindow = OS.gtk_scrolled_window_new (0, 0);
@@ -665,17 +678,6 @@ public void create (Composite parent, int style) {
size.x -= minSize.width; size.y -= minSize.height;
browser.setSize (size);
}
-
- /*
- * WebKitGTK version 1.10.x, and possibly other versions as well, crash
- * sporadically in webkitWebViewRegisterForIconNotification(). Work
- * around this crash by disabling WebKit's icon database, which is fine
- * to do since the Browser does not make use of it in any way.
- */
- long /*int*/ database = WebKitGTK.webkit_get_favicon_database ();
- if (database != 0) {
- WebKitGTK.webkit_favicon_database_set_path (database, 0);
- }
}
void addEventHandlers (long /*int*/ web_view, boolean top) {

Back to the top