Title: [189912] trunk/Source/WebKit2
Revision
189912
Author
mcatanz...@igalia.com
Date
2015-09-17 06:00:48 -0700 (Thu, 17 Sep 2015)

Log Message

[GTK] Crash in WebKit::BackingStore::createBackend running under Wayland
https://bugs.webkit.org/show_bug.cgi?id=147453

Reviewed by Carlos Garcia Campos.

Except when running on X11, this function always crashes if called before the web view is
realized, as gdk_window_create_similar_surface will return null in that case. Avoid this by
simply realizing the widget before calling that.

Thanks to Carlos Garnacho for some debugging help.

* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::createBackend):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (189911 => 189912)


--- trunk/Source/WebKit2/ChangeLog	2015-09-17 12:13:30 UTC (rev 189911)
+++ trunk/Source/WebKit2/ChangeLog	2015-09-17 13:00:48 UTC (rev 189912)
@@ -1,3 +1,19 @@
+2015-09-17  Michael Catanzaro  <mcatanz...@igalia.com>
+
+        [GTK] Crash in WebKit::BackingStore::createBackend running under Wayland
+        https://bugs.webkit.org/show_bug.cgi?id=147453
+
+        Reviewed by Carlos Garcia Campos.
+
+        Except when running on X11, this function always crashes if called before the web view is
+        realized, as gdk_window_create_similar_surface will return null in that case. Avoid this by
+        simply realizing the widget before calling that.
+
+        Thanks to Carlos Garnacho for some debugging help.
+
+        * UIProcess/cairo/BackingStoreCairo.cpp:
+        (WebKit::BackingStore::createBackend):
+
 2015-09-16  Carlos Garcia Campos  <cgar...@igalia.com>
 
         printing does not use minimum page zoom factor

Modified: trunk/Source/WebKit2/UIProcess/cairo/BackingStoreCairo.cpp (189911 => 189912)


--- trunk/Source/WebKit2/UIProcess/cairo/BackingStoreCairo.cpp	2015-09-17 12:13:30 UTC (rev 189911)
+++ trunk/Source/WebKit2/UIProcess/cairo/BackingStoreCairo.cpp	2015-09-17 13:00:48 UTC (rev 189912)
@@ -63,7 +63,9 @@
     scaledSize.scale(m_deviceScaleFactor);
 
 #if PLATFORM(GTK)
-    RefPtr<cairo_surface_t> surface = adoptRef(gdk_window_create_similar_surface(gtk_widget_get_window(m_webPageProxy.viewWidget()),
+    GtkWidget* viewWidget = m_webPageProxy.viewWidget();
+    gtk_widget_realize(viewWidget);
+    RefPtr<cairo_surface_t> surface = adoptRef(gdk_window_create_similar_surface(gtk_widget_get_window(viewWidget),
         CAIRO_CONTENT_COLOR_ALPHA, scaledSize.width(), scaledSize.height()));
 #else
     RefPtr<cairo_surface_t> surface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, scaledSize.width(), scaledSize.height()));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to