Title: [186221] trunk/Source/WebKit2
Revision
186221
Author
carlo...@webkit.org
Date
2015-07-02 00:08:20 -0700 (Thu, 02 Jul 2015)

Log Message

[GTK] Accelerated Compositing stops working after a web process crash
https://bugs.webkit.org/show_bug.cgi?id=146508

Reviewed by Martin Robinson.

The problem is that we don't send the window ID again to the new
web process.

* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::didRelaunchProcess): Call
webkitWebViewBaseDidRelaunchWebProcess().
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDidRelaunchWebProcess): Set the window ID to
the new drawing area.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (186220 => 186221)


--- trunk/Source/WebKit2/ChangeLog	2015-07-02 06:59:50 UTC (rev 186220)
+++ trunk/Source/WebKit2/ChangeLog	2015-07-02 07:08:20 UTC (rev 186221)
@@ -1,3 +1,21 @@
+2015-07-02  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GTK] Accelerated Compositing stops working after a web process crash
+        https://bugs.webkit.org/show_bug.cgi?id=146508
+
+        Reviewed by Martin Robinson.
+
+        The problem is that we don't send the window ID again to the new
+        web process.
+
+        * UIProcess/API/gtk/PageClientImpl.cpp:
+        (WebKit::PageClientImpl::didRelaunchProcess): Call
+        webkitWebViewBaseDidRelaunchWebProcess().
+        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+        (webkitWebViewBaseDidRelaunchWebProcess): Set the window ID to
+        the new drawing area.
+        * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+
 2015-07-01  Joseph Pecoraro  <pecor...@apple.com>
 
         Web Inspector: [Mac] InspectorFrontendHost.beep() doesn't play a sound, sandbox warnings

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp (186220 => 186221)


--- trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp	2015-07-02 06:59:50 UTC (rev 186220)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp	2015-07-02 07:08:20 UTC (rev 186221)
@@ -118,7 +118,7 @@
 
 void PageClientImpl::didRelaunchProcess()
 {
-    notImplemented();
+    webkitWebViewBaseDidRelaunchWebProcess(WEBKIT_WEB_VIEW_BASE(m_viewWidget));
 }
 
 void PageClientImpl::toolTipChanged(const String&, const String& newToolTip)

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (186220 => 186221)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2015-07-02 06:59:50 UTC (rev 186220)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2015-07-02 07:08:20 UTC (rev 186221)
@@ -1387,3 +1387,19 @@
     UNUSED_PARAM(webkitWebViewBase);
 #endif
 }
+
+void webkitWebViewBaseDidRelaunchWebProcess(WebKitWebViewBase* webkitWebViewBase)
+{
+    WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
+    DrawingAreaProxyImpl* drawingArea = static_cast<DrawingAreaProxyImpl*>(priv->pageProxy->drawingArea());
+    ASSERT(drawingArea);
+#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
+    if (!priv->redirectedWindow)
+        return;
+    drawingArea->setNativeSurfaceHandleForCompositing(priv->redirectedWindow->windowID());
+#else
+    if (!gtk_widget_get_realized(GTK_WIDGET(webkitWebViewBase)))
+        return;
+    drawingArea->setNativeSurfaceHandleForCompositing(GDK_WINDOW_XID(gtk_widget_get_window(GTK_WIDGET(webkitWebViewBase))));
+#endif
+}

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h (186220 => 186221)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h	2015-07-02 06:59:50 UTC (rev 186220)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h	2015-07-02 07:08:20 UTC (rev 186221)
@@ -71,6 +71,7 @@
 void webkitWebViewBaseResetClickCounter(WebKitWebViewBase*);
 void webkitWebViewBaseEnterAcceleratedCompositingMode(WebKitWebViewBase*);
 void webkitWebViewBaseExitAcceleratedCompositingMode(WebKitWebViewBase*);
+void webkitWebViewBaseDidRelaunchWebProcess(WebKitWebViewBase*);
 
 #if ENABLE(DRAG_SUPPORT)
 WebKit::DragAndDropHandler& webkitWebViewBaseDragAndDropHandler(WebKitWebViewBase*);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to