Move canContainFixedPositionObjects() to RenderElement.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 27 Oct 2014 17:20:44 +0000 (17:20 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 27 Oct 2014 17:20:44 +0000 (17:20 +0000)
<https://webkit.org/b/138088>

Reviewed by Mihnea Ovidenie.

Only RenderElement can contain other renderers, so it's not really
natural to answer this question on RenderObject anyway.

Moving it to RenderElement lets it access more efficient getters
that don't have to handle the RenderText case.

* rendering/RenderElement.h:
(WebCore::RenderElement::canContainFixedPositionObjects):
* rendering/RenderObject.h:
(WebCore::RenderObject::canContainFixedPositionObjects): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175219 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderElement.h
Source/WebCore/rendering/RenderObject.h

index 72b0b7f..0fcd21a 100644 (file)
@@ -1,3 +1,21 @@
+2014-10-27  Andreas Kling  <akling@apple.com>
+
+        Move canContainFixedPositionObjects() to RenderElement.
+        <https://webkit.org/b/138088>
+
+        Reviewed by Mihnea Ovidenie.
+
+        Only RenderElement can contain other renderers, so it's not really
+        natural to answer this question on RenderObject anyway.
+
+        Moving it to RenderElement lets it access more efficient getters
+        that don't have to handle the RenderText case.
+
+        * rendering/RenderElement.h:
+        (WebCore::RenderElement::canContainFixedPositionObjects):
+        * rendering/RenderObject.h:
+        (WebCore::RenderObject::canContainFixedPositionObjects): Deleted.
+
 2014-10-26  Benjamin Poulain  <benjamin@webkit.org>
 
         Images with usemap should not have a link state
index 0530a0a..277823f 100644 (file)
@@ -57,6 +57,8 @@ public:
 
     virtual bool isEmpty() const override { return !firstChild(); }
 
+    bool canContainFixedPositionObjects() const;
+
     // FIXME: Make these standalone and move to relevant files.
     bool isRenderLayerModelObject() const;
     bool isBoxModelObject() const;
@@ -333,6 +335,14 @@ inline Element* RenderElement::generatingElement() const
     return downcast<Element>(RenderObject::generatingNode());
 }
 
+inline bool RenderElement::canContainFixedPositionObjects() const
+{
+    return isRenderView()
+        || (hasTransform() && isRenderBlock())
+        || isSVGForeignObject()
+        || isOutOfFlowRenderFlowThread();
+}
+
 inline bool RenderObject::isRenderLayerModelObject() const
 {
     return is<RenderElement>(*this) && downcast<RenderElement>(*this).isRenderLayerModelObject();
index d1d8521..3da0fc8 100644 (file)
@@ -648,13 +648,6 @@ public:
     // returns the containing block level element for this element.
     RenderBlock* containingBlock() const;
 
-    bool canContainFixedPositionObjects() const
-    {
-        return isRenderView() || (hasTransform() && isRenderBlock())
-                || isSVGForeignObject()
-                || isOutOfFlowRenderFlowThread();
-    }
-
     // Convert the given local point to absolute coordinates
     // FIXME: Temporary. If UseTransforms is true, take transforms into account. Eventually localToAbsolute() will always be transform-aware.
     WEBCORE_EXPORT FloatPoint localToAbsolute(const FloatPoint& localPoint = FloatPoint(), MapCoordinatesFlags = 0) const;