Title: [229263] releases/WebKitGTK/webkit-2.20/Source/WebKit
- Revision
- 229263
- Author
- [email protected]
- Date
- 2018-03-05 05:15:55 -0800 (Mon, 05 Mar 2018)
Log Message
Merge r229126 - REGRESSION(r221514): [GTK] UI process crash in WebKit::WaylandCompositor::Surface::flushPendingFrameCallbacks
https://bugs.webkit.org/show_bug.cgi?id=183091
Reviewed by Michael Catanzaro.
Invalidate the surface in the page map when the backing store is destroyed.
* UIProcess/gtk/WaylandCompositor.cpp:
(WebKit::WaylandCompositor::willDestroySurface):
* UIProcess/gtk/WaylandCompositor.h:
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.20/Source/WebKit/ChangeLog (229262 => 229263)
--- releases/WebKitGTK/webkit-2.20/Source/WebKit/ChangeLog 2018-03-05 12:34:36 UTC (rev 229262)
+++ releases/WebKitGTK/webkit-2.20/Source/WebKit/ChangeLog 2018-03-05 13:15:55 UTC (rev 229263)
@@ -1,3 +1,16 @@
+2018-03-01 Carlos Garcia Campos <[email protected]>
+
+ REGRESSION(r221514): [GTK] UI process crash in WebKit::WaylandCompositor::Surface::flushPendingFrameCallbacks
+ https://bugs.webkit.org/show_bug.cgi?id=183091
+
+ Reviewed by Michael Catanzaro.
+
+ Invalidate the surface in the page map when the backing store is destroyed.
+
+ * UIProcess/gtk/WaylandCompositor.cpp:
+ (WebKit::WaylandCompositor::willDestroySurface):
+ * UIProcess/gtk/WaylandCompositor.h:
+
2018-02-26 Youenn Fablet <[email protected]>
MessagePort is not always destroyed in the right thread
Modified: releases/WebKitGTK/webkit-2.20/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp (229262 => 229263)
--- releases/WebKitGTK/webkit-2.20/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp 2018-03-05 12:34:36 UTC (rev 229262)
+++ releases/WebKitGTK/webkit-2.20/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp 2018-03-05 13:15:55 UTC (rev 229263)
@@ -350,6 +350,7 @@
wl_resource_set_implementation(surfaceResource, &surfaceInterface, new WaylandCompositor::Surface(),
[](struct wl_resource* resource) {
auto* surface = static_cast<WaylandCompositor::Surface*>(wl_resource_get_user_data(resource));
+ WaylandCompositor::singleton().willDestroySurface(surface);
delete surface;
});
} else
@@ -562,6 +563,16 @@
surface->setWebPage(nullptr);
}
+void WaylandCompositor::willDestroySurface(Surface* surface)
+{
+ for (auto it : m_pageMap) {
+ if (it.value == surface) {
+ it.value = nullptr;
+ return;
+ }
+ }
+}
+
} // namespace WebKit
#endif // PLATFORM(WAYLAND) && USE(EGL)
Modified: releases/WebKitGTK/webkit-2.20/Source/WebKit/UIProcess/gtk/WaylandCompositor.h (229262 => 229263)
--- releases/WebKitGTK/webkit-2.20/Source/WebKit/UIProcess/gtk/WaylandCompositor.h 2018-03-05 12:34:36 UTC (rev 229262)
+++ releases/WebKitGTK/webkit-2.20/Source/WebKit/UIProcess/gtk/WaylandCompositor.h 2018-03-05 13:15:55 UTC (rev 229263)
@@ -113,6 +113,7 @@
void bindSurfaceToWebPage(Surface*, uint64_t pageID);
void registerWebPage(WebPageProxy&);
void unregisterWebPage(WebPageProxy&);
+ void willDestroySurface(Surface*);
bool getTexture(WebPageProxy&, unsigned&, WebCore::IntSize&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes