Title: [223139] trunk/Source/WebCore
Revision
223139
Author
an...@apple.com
Date
2017-10-10 13:36:48 -0700 (Tue, 10 Oct 2017)

Log Message

Layers should be destroyed by RenderLayerModelObject
https://bugs.webkit.org/show_bug.cgi?id=178139

Reviewed by Simon Fraser.

Clean up some FIXMEs.

* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed):
(WebCore::RenderLayerModelObject::destroyLayer):
* rendering/RenderLayerModelObject.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (223138 => 223139)


--- trunk/Source/WebCore/ChangeLog	2017-10-10 19:41:05 UTC (rev 223138)
+++ trunk/Source/WebCore/ChangeLog	2017-10-10 20:36:48 UTC (rev 223139)
@@ -1,3 +1,19 @@
+2017-10-10  Antti Koivisto  <an...@apple.com>
+
+        Layers should be destroyed by RenderLayerModelObject
+        https://bugs.webkit.org/show_bug.cgi?id=178139
+
+        Reviewed by Simon Fraser.
+
+        Clean up some FIXMEs.
+
+        * rendering/RenderLayerModelObject.cpp:
+        (WebCore::RenderLayerModelObject::willBeDestroyed):
+        (WebCore::RenderLayerModelObject::destroyLayer):
+        * rendering/RenderLayerModelObject.h:
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::willBeDestroyed):
+
 2017-10-10  Chris Dumez  <cdu...@apple.com>
 
         Entries API should recognize path starting with 2 slashes as valid absolute path

Modified: trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp (223138 => 223139)


--- trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp	2017-10-10 19:41:05 UTC (rev 223138)
+++ trunk/Source/WebCore/rendering/RenderLayerModelObject.cpp	2017-10-10 20:36:48 UTC (rev 223139)
@@ -69,18 +69,19 @@
             view().frameView().removeViewportConstrainedObject(this);
     }
 
+    if (hasLayer()) {
+        setHasLayer(false);
+        destroyLayer();
+    }
+
     RenderElement::willBeDestroyed();
     
     clearRepaintLayoutRects();
-    
-    // Our layer should have been destroyed and cleared by now
-    ASSERT(!hasLayer());
-    ASSERT(!m_layer);
 }
 
 void RenderLayerModelObject::destroyLayer()
 {
-    ASSERT(!hasLayer()); // Callers should have already called setHasLayer(false)
+    ASSERT(!hasLayer());
     ASSERT(m_layer);
     if (m_layer->isSelfPaintingLayer())
         clearRepaintLayoutRects();

Modified: trunk/Source/WebCore/rendering/RenderLayerModelObject.h (223138 => 223139)


--- trunk/Source/WebCore/rendering/RenderLayerModelObject.h	2017-10-10 19:41:05 UTC (rev 223138)
+++ trunk/Source/WebCore/rendering/RenderLayerModelObject.h	2017-10-10 20:36:48 UTC (rev 223139)
@@ -40,7 +40,6 @@
 public:
     virtual ~RenderLayerModelObject();
 
-    // Called by RenderObject::willBeDestroyed() and is the only way layers should ever be destroyed
     void destroyLayer();
 
     bool hasSelfPaintingLayer() const;

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (223138 => 223139)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2017-10-10 19:41:05 UTC (rev 223138)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2017-10-10 20:36:48 UTC (rev 223139)
@@ -1434,14 +1434,6 @@
     if (AXObjectCache* cache = document().existingAXObjectCache())
         cache->remove(this);
 
-    // FIXME: Would like to do this in RenderBoxModelObject, but the timing is so complicated that this can't easily
-    // be moved into RenderLayerModelObject::willBeDestroyed().
-    // FIXME: Is this still true?
-    if (hasLayer()) {
-        setHasLayer(false);
-        downcast<RenderLayerModelObject>(*this).destroyLayer();
-    }
-
     removeRareData();
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to