Title: [156310] trunk/Source/WebCore
Revision
156310
Author
[email protected]
Date
2013-09-23 17:34:49 -0700 (Mon, 23 Sep 2013)

Log Message

Move rendererForRootBackground() to RenderElement.
<http://webkit.org/b/121813>

Reviewed by Antti Koivisto.

Move this to RenderElement (and make it return one, too) since the
document element renderer will always be a RenderElement.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (156309 => 156310)


--- trunk/Source/WebCore/ChangeLog	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/ChangeLog	2013-09-24 00:34:49 UTC (rev 156310)
@@ -1,3 +1,13 @@
+2013-09-23  Andreas Kling  <[email protected]>
+
+        Move rendererForRootBackground() to RenderElement.
+        <http://webkit.org/b/121813>
+
+        Reviewed by Antti Koivisto.
+
+        Move this to RenderElement (and make it return one, too) since the
+        document element renderer will always be a RenderElement.
+
 2013-09-23  Brady Eidson  <[email protected]>
 
         Make the Mac build work with IndexedDB enabled.

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (156309 => 156310)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2013-09-24 00:34:49 UTC (rev 156310)
@@ -1123,7 +1123,7 @@
     if (paintInfo.skipRootBackground())
         return;
 
-    RenderObject* rootBackgroundRenderer = rendererForRootBackground();
+    RenderElement* rootBackgroundRenderer = rendererForRootBackground();
     
     const FillLayer* bgLayer = rootBackgroundRenderer->style()->backgroundLayers();
     Color bgColor = rootBackgroundRenderer->style()->visitedDependentColor(CSSPropertyBackgroundColor);

Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (156309 => 156310)


--- trunk/Source/WebCore/rendering/RenderElement.cpp	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp	2013-09-24 00:34:49 UTC (rev 156310)
@@ -27,6 +27,8 @@
 
 #include "AXObjectCache.h"
 #include "ContentData.h"
+#include "HTMLElement.h"
+#include "HTMLNames.h"
 #include "RenderCounter.h"
 #include "RenderDeprecatedFlexibleBox.h"
 #include "RenderFlexibleBox.h"
@@ -489,4 +491,21 @@
     RenderObject::willBeDestroyed();
 }
 
+RenderElement* RenderElement::rendererForRootBackground()
+{
+    ASSERT(isRoot());
+    if (!hasBackground() && element() && element()->hasTagName(HTMLNames::htmlTag)) {
+        // Locate the <body> element using the DOM. This is easier than trying
+        // to crawl around a render tree with potential :before/:after content and
+        // anonymous blocks created by inline <body> tags etc. We can locate the <body>
+        // render object very easily via the DOM.
+        HTMLElement* body = document().body();
+        RenderElement* bodyObject = (body && body->hasLocalName(HTMLNames::bodyTag)) ? body->renderer() : 0;
+        if (bodyObject)
+            return bodyObject;
+    }
+
+    return this;
 }
+
+}

Modified: trunk/Source/WebCore/rendering/RenderElement.h (156309 => 156310)


--- trunk/Source/WebCore/rendering/RenderElement.h	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/rendering/RenderElement.h	2013-09-24 00:34:49 UTC (rev 156310)
@@ -58,6 +58,9 @@
     void insertChildInternal(RenderObject*, RenderObject* beforeChild, NotifyChildrenType);
     void removeChildInternal(RenderObject*, NotifyChildrenType);
 
+    // Return the renderer whose background style is used to paint the root background. Should only be called on the renderer for which isRoot() is true.
+    RenderElement* rendererForRootBackground();
+
 protected:
     explicit RenderElement(Element*);
 

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (156309 => 156310)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-09-24 00:34:49 UTC (rev 156310)
@@ -1389,7 +1389,7 @@
 
 Color RenderLayerBacking::rendererBackgroundColor() const
 {
-    RenderObject* backgroundRenderer = &renderer();
+    RenderElement* backgroundRenderer = &renderer();
     if (backgroundRenderer->isRoot())
         backgroundRenderer = backgroundRenderer->rendererForRootBackground();
 

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (156309 => 156310)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2013-09-24 00:34:49 UTC (rev 156310)
@@ -2287,23 +2287,6 @@
     return true;
 }
 
-RenderObject* RenderObject::rendererForRootBackground()
-{
-    ASSERT(isRoot());
-    if (!hasBackground() && node() && node()->hasTagName(HTMLNames::htmlTag)) {
-        // Locate the <body> element using the DOM. This is easier than trying
-        // to crawl around a render tree with potential :before/:after content and
-        // anonymous blocks created by inline <body> tags etc. We can locate the <body>
-        // render object very easily via the DOM.
-        HTMLElement* body = document().body();
-        RenderObject* bodyObject = (body && body->hasLocalName(bodyTag)) ? body->renderer() : 0;
-        if (bodyObject)
-            return bodyObject;
-    }
-    
-    return this;
-}
-
 RespectImageOrientationEnum RenderObject::shouldRespectImageOrientation() const
 {
 #if USE(CG) || USE(CAIRO) || PLATFORM(BLACKBERRY)

Modified: trunk/Source/WebCore/rendering/RenderObject.h (156309 => 156310)


--- trunk/Source/WebCore/rendering/RenderObject.h	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2013-09-24 00:34:49 UTC (rev 156310)
@@ -962,9 +962,6 @@
         return outlineBoundsForRepaint(0);
     }
 
-    // Return the renderer whose background style is used to paint the root background. Should only be called on the renderer for which isRoot() is true.
-    RenderObject* rendererForRootBackground();
-
     RespectImageOrientationEnum shouldRespectImageOrientation() const;
 
 protected:

Modified: trunk/Source/WebCore/rendering/RenderView.cpp (156309 => 156310)


--- trunk/Source/WebCore/rendering/RenderView.cpp	2013-09-24 00:14:13 UTC (rev 156309)
+++ trunk/Source/WebCore/rendering/RenderView.cpp	2013-09-24 00:34:49 UTC (rev 156310)
@@ -440,12 +440,12 @@
     paintObject(paintInfo, paintOffset);
 }
 
-static inline bool isComposited(RenderObject* object)
+static inline bool isComposited(RenderElement* object)
 {
     return object->hasLayer() && toRenderLayerModelObject(object)->layer()->isComposited();
 }
 
-static inline bool rendererObscuresBackground(RenderObject* rootObject)
+static inline bool rendererObscuresBackground(RenderElement* rootObject)
 {
     if (!rootObject)
         return false;
@@ -459,7 +459,7 @@
     if (isComposited(rootObject))
         return false;
 
-    const RenderObject* rootRenderer = rootObject->rendererForRootBackground();
+    const RenderElement* rootRenderer = rootObject->rendererForRootBackground();
     if (rootRenderer->style()->backgroundClip() == TextFillBox)
         return false;
 
@@ -502,8 +502,8 @@
 
     bool rootFillsViewport = false;
     bool rootObscuresBackground = false;
-    Node* documentElement = document().documentElement();
-    if (RenderObject* rootRenderer = documentElement ? documentElement->renderer() : 0) {
+    Element* documentElement = document().documentElement();
+    if (RenderElement* rootRenderer = documentElement ? documentElement->renderer() : 0) {
         // The document element's renderer is currently forced to be a block, but may not always be.
         RenderBox* rootBox = rootRenderer->isBox() ? toRenderBox(rootRenderer) : 0;
         rootFillsViewport = rootBox && !rootBox->x() && !rootBox->y() && rootBox->width() >= width() && rootBox->height() >= height();
@@ -969,11 +969,11 @@
 
 bool RenderView::rootBackgroundIsEntirelyFixed() const
 {
-    RenderObject* rootObject = document().documentElement() ? document().documentElement()->renderer() : 0;
+    RenderElement* rootObject = document().documentElement() ? document().documentElement()->renderer() : 0;
     if (!rootObject)
         return false;
 
-    RenderObject* rootRenderer = rootObject->rendererForRootBackground();
+    RenderElement* rootRenderer = rootObject->rendererForRootBackground();
     return rootRenderer->hasEntirelyFixedBackground();
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to