Title: [155331] releases/WebKitGTK/webkit-2.2/Source/WebKit2
Revision
155331
Author
[email protected]
Date
2013-09-09 01:29:13 -0700 (Mon, 09 Sep 2013)

Log Message

Merge r155066 - [WK2][GTK] ASSERTION in WebKit::LayerTreeHostGtk::invalidate
https://bugs.webkit.org/show_bug.cgi?id=117733

Reviewed by Martin Robinson.

If the GL context cannot be created then an invalid
LayerTreeHostGtk object will be returned.

This patch disables accelerated compositing if the system doesn't
support it.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewUpdateSettings):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseUpdatePreferences):
(webkitWebViewBaseCreateWebPage):
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.2/Source/WebKit2/ChangeLog (155330 => 155331)


--- releases/WebKitGTK/webkit-2.2/Source/WebKit2/ChangeLog	2013-09-09 07:40:14 UTC (rev 155330)
+++ releases/WebKitGTK/webkit-2.2/Source/WebKit2/ChangeLog	2013-09-09 08:29:13 UTC (rev 155331)
@@ -1,3 +1,23 @@
+2013-09-04  Alberto Garcia  <[email protected]>
+
+        [WK2][GTK] ASSERTION in WebKit::LayerTreeHostGtk::invalidate
+        https://bugs.webkit.org/show_bug.cgi?id=117733
+
+        Reviewed by Martin Robinson.
+
+        If the GL context cannot be created then an invalid
+        LayerTreeHostGtk object will be returned.
+
+        This patch disables accelerated compositing if the system doesn't
+        support it.
+
+        * UIProcess/API/gtk/WebKitWebView.cpp:
+        (webkitWebViewUpdateSettings):
+        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+        (webkitWebViewBaseUpdatePreferences):
+        (webkitWebViewBaseCreateWebPage):
+        * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+
 2013-08-26  Santosh Mahto  <[email protected]>
 
         Fixing compilation warning "unused parameter" in WebPageProxy.cpp

Modified: releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (155330 => 155331)


--- releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2013-09-09 07:40:14 UTC (rev 155330)
+++ releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2013-09-09 08:29:13 UTC (rev 155331)
@@ -379,6 +379,8 @@
     page->setCanRunModal(webkit_settings_get_allow_modal_dialogs(settings));
     page->setCustomUserAgent(String::fromUTF8(webkit_settings_get_user_agent(settings)));
 
+    webkitWebViewBaseUpdatePreferences(WEBKIT_WEB_VIEW_BASE(webView));
+
     g_signal_connect(settings, "notify::allow-modal-dialogs", G_CALLBACK(allowModalDialogsChanged), webView);
     g_signal_connect(settings, "notify::zoom-text-only", G_CALLBACK(zoomTextOnlyChanged), webView);
     g_signal_connect(settings, "notify::user-agent", G_CALLBACK(userAgentChanged), webView);

Modified: releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (155330 => 155331)


--- releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2013-09-09 07:40:14 UTC (rev 155330)
+++ releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2013-09-09 08:29:13 UTC (rev 155331)
@@ -40,7 +40,9 @@
 #include "WebKitPrivate.h"
 #include "WebKitWebViewBaseAccessible.h"
 #include "WebKitWebViewBasePrivate.h"
+#include "WebPageGroup.h"
 #include "WebPageProxy.h"
+#include "WebPreferences.h"
 #include "WebViewBaseInputMethodFilter.h"
 #include <WebCore/ClipboardUtilitiesGtk.h>
 #include <WebCore/DataObjectGtk.h>
@@ -892,6 +894,16 @@
     return webkitWebViewBase->priv->pageProxy.get();
 }
 
+void webkitWebViewBaseUpdatePreferences(WebKitWebViewBase* webkitWebViewBase)
+{
+#if USE(TEXTURE_MAPPER_GL)
+    WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
+
+    if (!priv->redirectedWindow)
+        priv->pageProxy->pageGroup()->preferences()->setAcceleratedCompositingEnabled(false);
+#endif
+}
+
 void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebContext* context, WebPageGroup* pageGroup)
 {
     WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
@@ -908,6 +920,8 @@
         priv->pageProxy->setAcceleratedCompositingWindowId(priv->redirectedWindow->windowId());
 #endif
 
+    webkitWebViewBaseUpdatePreferences(webkitWebViewBase);
+
     // This must happen here instead of the instance initializer, because the input method
     // filter must have access to the page.
     priv->inputMethodFilter.setWebView(webkitWebViewBase);

Modified: releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h (155330 => 155331)


--- releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h	2013-09-09 07:40:14 UTC (rev 155330)
+++ releases/WebKitGTK/webkit-2.2/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h	2013-09-09 08:29:13 UTC (rev 155331)
@@ -51,6 +51,7 @@
 GdkEvent* webkitWebViewBaseTakeContextMenuEvent(WebKitWebViewBase*);
 void webkitWebViewBaseSetInputMethodState(WebKitWebViewBase*, bool enabled);
 void webkitWebViewBaseUpdateTextInputState(WebKitWebViewBase*);
+void webkitWebViewBaseUpdatePreferences(WebKitWebViewBase*);
 
 #if USE(TEXTURE_MAPPER_GL)
 void webkitWebViewBaseQueueDrawOfAcceleratedCompositingResults(WebKitWebViewBase*);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to