Title: [135987] trunk/Source/WebKit/qt
Revision
135987
Author
[email protected]
Date
2012-11-28 01:43:47 -0800 (Wed, 28 Nov 2012)

Log Message

[Texmap] REGRESSION(r135620) QtTestBrowser crashes on Google-gravity.
https://bugs.webkit.org/show_bug.cgi?id=103410

Patch by Huang Dongsung <[email protected]> on 2012-11-28
Reviewed by Noam Rosenthal.

TextureMapperLayerClientQt::setTextureMapper() must call
flushCompositingStateForThisLayerOnly() of the root layer.

Currently, PageClientQGraphicsWidget::setRootGraphicsLayer does not flush layer
states of the root layer after setting TextureMapper while
PageClientQWidget::setRootGraphicsLayer() flushes them of the root layer.  If
not flushing states, descendant layers can not reach the root layer. It means
descendant layers can not reach the TextureMapper that the root layer has.

This is already the behavior for PageClientQWidget, which should be the case
for PageClientQGraphicsWidget as well.

* WebCoreSupport/PageClientQt.cpp:
(WebCore::TextureMapperLayerClientQt::setTextureMapper):
(WebCore::PageClientQWidget::setRootGraphicsLayer):

Modified Paths

Diff

Modified: trunk/Source/WebKit/qt/ChangeLog (135986 => 135987)


--- trunk/Source/WebKit/qt/ChangeLog	2012-11-28 09:43:19 UTC (rev 135986)
+++ trunk/Source/WebKit/qt/ChangeLog	2012-11-28 09:43:47 UTC (rev 135987)
@@ -1,3 +1,26 @@
+2012-11-28  Huang Dongsung  <[email protected]>
+
+        [Texmap] REGRESSION(r135620) QtTestBrowser crashes on Google-gravity.
+        https://bugs.webkit.org/show_bug.cgi?id=103410
+
+        Reviewed by Noam Rosenthal.
+
+        TextureMapperLayerClientQt::setTextureMapper() must call
+        flushCompositingStateForThisLayerOnly() of the root layer.
+
+        Currently, PageClientQGraphicsWidget::setRootGraphicsLayer does not flush layer
+        states of the root layer after setting TextureMapper while
+        PageClientQWidget::setRootGraphicsLayer() flushes them of the root layer.  If
+        not flushing states, descendant layers can not reach the root layer. It means
+        descendant layers can not reach the TextureMapper that the root layer has.
+
+        This is already the behavior for PageClientQWidget, which should be the case
+        for PageClientQGraphicsWidget as well.
+
+        * WebCoreSupport/PageClientQt.cpp:
+        (WebCore::TextureMapperLayerClientQt::setTextureMapper):
+        (WebCore::PageClientQWidget::setRootGraphicsLayer):
+
 2012-11-27  James Simonsen  <[email protected]>
 
         Consolidate FrameLoader::load() into one function taking a FrameLoadRequest

Modified: trunk/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp (135986 => 135987)


--- trunk/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp	2012-11-28 09:43:19 UTC (rev 135986)
+++ trunk/Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp	2012-11-28 09:43:47 UTC (rev 135987)
@@ -100,6 +100,7 @@
 {
     m_frame->d->textureMapper = textureMapper;
     m_frame->d->rootTextureMapperLayer->setTextureMapper(m_frame->d->textureMapper.get());
+    syncRootLayer();
 }
 
 TextureMapperLayerClientQt::~TextureMapperLayerClientQt()
@@ -123,7 +124,6 @@
     if (layer) {
         TextureMapperLayerClient = adoptPtr(new TextureMapperLayerClientQt(page->mainFrame(), layer));
         TextureMapperLayerClient->setTextureMapper(TextureMapper::create());
-        TextureMapperLayerClient->syncRootLayer();
         return;
     }
     TextureMapperLayerClient.clear();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to