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