Title: [260570] trunk/Source/WebKit
Revision
260570
Author
commit-qu...@webkit.org
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 <john.frank...@outlook.com> 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  <john.frank...@outlook.com>
+
+        [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  <cdu...@apple.com>
 
         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
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to