Title: [260570] trunk/Source/WebKit
Revision
260570
Author
[email protected]
Date
2020-04-23 08:24:02 -0700 (Thu, 23 Apr 2020)

Log Message

[GTK] Crash in cairo_surface_mark_dirty_rectangle() in accelerated compositing mode under X11
https://bugs.webkit.org/show_bug.cgi?id=210636

Patch by John Frankish <[email protected]> on 2020-04-23
Reviewed by Carlos Garcia Campos.

When cairo is configured to use xcb instead of xlib, it might use an image surface attached to the xlib one as
snapshot. In that case a flush is needed to detach that snapshot after we have drawn the surface in the
context.

* UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::paint): Call cairo_surface_flush() after drawing.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (260569 => 260570)


--- trunk/Source/WebKit/ChangeLog	2020-04-23 15:18:15 UTC (rev 260569)
+++ trunk/Source/WebKit/ChangeLog	2020-04-23 15:24:02 UTC (rev 260570)
@@ -1,3 +1,17 @@
+2020-04-23  John Frankish  <[email protected]>
+
+        [GTK] Crash in cairo_surface_mark_dirty_rectangle() in accelerated compositing mode under X11
+        https://bugs.webkit.org/show_bug.cgi?id=210636
+
+        Reviewed by Carlos Garcia Campos.
+
+        When cairo is configured to use xcb instead of xlib, it might use an image surface attached to the xlib one as
+        snapshot. In that case a flush is needed to detach that snapshot after we have drawn the surface in the
+        context.
+
+        * UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
+        (WebKit::AcceleratedBackingStoreX11::paint): Call cairo_surface_flush() after drawing.
+
 2020-04-23  Chris Dumez  <[email protected]>
 
         Unreviewed, reverting r260133.

Modified: trunk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreX11.cpp (260569 => 260570)


--- trunk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreX11.cpp	2020-04-23 15:18:15 UTC (rev 260569)
+++ trunk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreX11.cpp	2020-04-23 15:24:02 UTC (rev 260570)
@@ -201,6 +201,8 @@
 
     cairo_restore(cr);
 
+    cairo_surface_flush(m_surface.get());
+
     return true;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to