Title: [112939] trunk
Revision
112939
Author
[email protected]
Date
2012-04-02 14:10:28 -0700 (Mon, 02 Apr 2012)

Log Message

Fix issue with reflections and composited layers
https://bugs.webkit.org/show_bug.cgi?id=82636

Source/WebCore:

Reviewed by Alexey Proskuryakov

When tearing down GraphicsLayers which referene eachother via m_replicatedLayer/m_replicaLayer,
we need to clean up the replica layer pointers.

No new tests; tested by existing compositing and repaint tests.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::~GraphicsLayer):
(WebCore::GraphicsLayer::setReplicatedByLayer):

LayoutTests:

Reviewed by Alexey Proskuryakov

Unskip some compositing tests that should pass now.

* platform/mac-wk2/Skipped:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (112938 => 112939)


--- trunk/LayoutTests/ChangeLog	2012-04-02 21:07:37 UTC (rev 112938)
+++ trunk/LayoutTests/ChangeLog	2012-04-02 21:10:28 UTC (rev 112939)
@@ -1,3 +1,14 @@
+2012-04-02  Simon Fraser  <[email protected]>
+
+        Fix issue with reflections and composited layers
+        https://bugs.webkit.org/show_bug.cgi?id=82636
+
+        Reviewed by Alexey Proskuryakov
+
+        Unskip some compositing tests that should pass now.
+
+        * platform/mac-wk2/Skipped:
+
 2012-04-02  Chris Rogers  <[email protected]>
 
         Add Oscillator/WaveTable implementation and tests

Modified: trunk/LayoutTests/platform/mac-wk2/Skipped (112938 => 112939)


--- trunk/LayoutTests/platform/mac-wk2/Skipped	2012-04-02 21:07:37 UTC (rev 112938)
+++ trunk/LayoutTests/platform/mac-wk2/Skipped	2012-04-02 21:10:28 UTC (rev 112939)
@@ -314,14 +314,6 @@
 # All tests that crashed more than once on the Lion WebKit2 bots between r111865 and r111885
 accessibility/adjacent-continuations-cause-assertion-failure.html
 accessibility/contenteditable-hidden-div.html
-compositing/absolute-position-changed-in-composited-layer.html
-compositing/animation/animation-compositing.html
-compositing/culling/clear-fixed-iframe.html
-compositing/framesets/composited-frame-alignment.html
-compositing/iframes/become-composited-nested-iframes.html
-compositing/overflow/overflow-positioning.html
-compositing/self-painting-layers.html
-compositing/video/video-poster.html
 css3/filters/custom/effect-custom-combined-missing.html
 fast/workers/empty-worker-nocrash.html
 svg/custom/font-face-name-without-name-attr.svg

Modified: trunk/Source/WebCore/ChangeLog (112938 => 112939)


--- trunk/Source/WebCore/ChangeLog	2012-04-02 21:07:37 UTC (rev 112938)
+++ trunk/Source/WebCore/ChangeLog	2012-04-02 21:10:28 UTC (rev 112939)
@@ -1,3 +1,19 @@
+2012-04-02  Simon Fraser  <[email protected]>
+
+        Fix issue with reflections and composited layers
+        https://bugs.webkit.org/show_bug.cgi?id=82636
+
+        Reviewed by Alexey Proskuryakov
+        
+        When tearing down GraphicsLayers which referene eachother via m_replicatedLayer/m_replicaLayer,
+        we need to clean up the replica layer pointers.
+
+        No new tests; tested by existing compositing and repaint tests.
+
+        * platform/graphics/GraphicsLayer.cpp:
+        (WebCore::GraphicsLayer::~GraphicsLayer):
+        (WebCore::GraphicsLayer::setReplicatedByLayer):
+
 2012-04-02  Chris Rogers  <[email protected]>
 
         Add Oscillator/WaveTable implementation and tests

Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp (112938 => 112939)


--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp	2012-04-02 21:07:37 UTC (rev 112938)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp	2012-04-02 21:10:28 UTC (rev 112939)
@@ -99,6 +99,10 @@
     if (m_client)
         m_client->verifyNotPainting();
 #endif
+
+    if (m_replicatedLayer)
+        m_replicatedLayer->setReplicatedByLayer(0);
+
     removeAllChildren();
     removeFromParent();
 }
@@ -259,6 +263,12 @@
 
 void GraphicsLayer::setReplicatedByLayer(GraphicsLayer* layer)
 {
+    if (m_replicaLayer == layer)
+        return;
+
+    if (m_replicaLayer)
+        m_replicaLayer->setReplicatedLayer(0);
+
     if (layer)
         layer->setReplicatedLayer(this);
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to