Title: [156915] trunk/Source/WebCore
Revision
156915
Author
[email protected]
Date
2013-10-04 15:22:00 -0700 (Fri, 04 Oct 2013)

Log Message

Tighten typing in some RenderLayer code.
<https://webkit.org/b/122342>

Reviewed by Antti Koivisto.

Use tighter types instead of Node and RenderObject inside RenderLayer
where applicable.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (156914 => 156915)


--- trunk/Source/WebCore/ChangeLog	2013-10-04 21:59:32 UTC (rev 156914)
+++ trunk/Source/WebCore/ChangeLog	2013-10-04 22:22:00 UTC (rev 156915)
@@ -1,3 +1,13 @@
+2013-10-04  Andreas Kling  <[email protected]>
+
+        Tighten typing in some RenderLayer code.
+        <https://webkit.org/b/122342>
+
+        Reviewed by Antti Koivisto.
+
+        Use tighter types instead of Node and RenderObject inside RenderLayer
+        where applicable.
+
 2013-10-04  Ralph Thomas  <[email protected]>
 
         Inserting a JS generated keyframe animation shouldn't trigger a whole document style recalc

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (156914 => 156915)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-10-04 21:59:32 UTC (rev 156914)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-10-04 22:22:00 UTC (rev 156915)
@@ -87,6 +87,8 @@
 #include "RenderSVGResourceClipper.h"
 #include "RenderScrollbar.h"
 #include "RenderScrollbarPart.h"
+#include "RenderTableCell.h"
+#include "RenderTableRow.h"
 #include "RenderTheme.h"
 #include "RenderTreeAsText.h"
 #include "RenderView.h"
@@ -1240,7 +1242,7 @@
     if (!renderer().isOutOfFlowPositioned() && renderer().parent()) {
         // We must adjust our position by walking up the render tree looking for the
         // nearest enclosing object with a layer.
-        RenderObject* curr = renderer().parent();
+        RenderElement* curr = renderer().parent();
         while (curr && !curr->hasLayer()) {
             if (curr->isBox() && !curr->isTableRow()) {
                 // Rows and cells share the same coordinate space (that of the section).
@@ -1375,7 +1377,7 @@
     if (!ownerElement)
         return 0;
 
-    RenderObject* ownerRenderer = ownerElement->renderer();
+    RenderElement* ownerRenderer = ownerElement->renderer();
     if (!ownerRenderer)
         return 0;
 
@@ -2283,7 +2285,7 @@
         renderer().repaintUsingContainer(repaintContainer, pixelSnappedIntRect(m_repaintRect));
 
     // Schedule the scroll DOM event.
-    if (Node* element = renderer().element())
+    if (Element* element = renderer().element())
         element->document().eventQueue().enqueueOrDispatchScrollEvent(*element);
 
     InspectorInstrumentation::didScrollLayer(&frame);
@@ -2859,25 +2861,25 @@
         m_resizer->repaintRectangle(rect);
 }
 
-static inline RenderObject* rendererForScrollbar(RenderObject* renderer)
+static inline RenderElement* rendererForScrollbar(RenderLayerModelObject& renderer)
 {
-    if (Node* node = renderer->node()) {
-        if (ShadowRoot* shadowRoot = node->containingShadowRoot()) {
+    if (Element* element = renderer.element()) {
+        if (ShadowRoot* shadowRoot = element->containingShadowRoot()) {
             if (shadowRoot->type() == ShadowRoot::UserAgentShadowRoot)
                 return shadowRoot->hostElement()->renderer();
         }
     }
 
-    return renderer;
+    return &renderer;
 }
 
 PassRefPtr<Scrollbar> RenderLayer::createScrollbar(ScrollbarOrientation orientation)
 {
     RefPtr<Scrollbar> widget;
-    RenderObject* actualRenderer = rendererForScrollbar(&renderer());
+    RenderElement* actualRenderer = rendererForScrollbar(renderer());
     bool hasCustomScrollbarStyle = actualRenderer->isBox() && actualRenderer->style()->hasPseudoStyle(SCROLLBAR);
     if (hasCustomScrollbarStyle)
-        widget = RenderScrollbar::createCustomScrollbar(this, orientation, actualRenderer->node());
+        widget = RenderScrollbar::createCustomScrollbar(this, orientation, actualRenderer->element());
     else {
         widget = Scrollbar::createNativeScrollbar(this, orientation, RegularScrollbar);
         didAddScrollbar(widget.get(), orientation);
@@ -4418,11 +4420,6 @@
     }
 }
 
-static inline LayoutRect frameVisibleRect(const RenderObject& renderer)
-{
-    return renderer.view().frameView().visibleContentRect();
-}
-
 bool RenderLayer::hitTest(const HitTestRequest& request, HitTestResult& result)
 {
     return hitTest(request, result.hitTestLocation(), result);
@@ -4436,7 +4433,7 @@
     
     LayoutRect hitTestArea = isOutOfFlowRenderFlowThread() ? toRenderFlowThread(renderer()).borderBoxRect() : renderer().view().documentRect();
     if (!request.ignoreClipping())
-        hitTestArea.intersect(frameVisibleRect(renderer()));
+        hitTestArea.intersect(renderer().view().frameView().visibleContentRect());
 
     RenderLayer* insideLayer = hitTestLayer(this, 0, request, result, hitTestArea, hitTestLocation, false);
     if (!insideLayer) {
@@ -4459,10 +4456,10 @@
     return insideLayer;
 }
 
-Node* RenderLayer::enclosingElement() const
+Element* RenderLayer::enclosingElement() const
 {
-    for (RenderObject* r = &renderer(); r; r = r->parent()) {
-        if (Node* e = r->node())
+    for (RenderElement* r = &renderer(); r; r = r->parent()) {
+        if (Element* e = r->element())
             return e;
     }
     ASSERT_NOT_REACHED();
@@ -4887,7 +4884,7 @@
     // the content in the layer has an element. So just walk up
     // the tree.
     if (!result.innerNode() || !result.innerNonSharedNode()) {
-        Node* e = enclosingElement();
+        Element* e = enclosingElement();
         if (!result.innerNode())
             result.setInnerNode(e);
         if (!result.innerNonSharedNode())
@@ -5373,15 +5370,14 @@
     if (renderer().isInline() && renderer().isRenderInline())
         result = toRenderInline(renderer()).linesVisualOverflowBoundingBox();
     else if (renderer().isTableRow()) {
+        RenderTableRow& tableRow = toRenderTableRow(renderer());
         // Our bounding box is just the union of all of our cells' border/overflow rects.
-        for (RenderObject* child = renderer().firstChild(); child; child = child->nextSibling()) {
-            if (child->isTableCell()) {
-                LayoutRect bbox = toRenderBox(child)->borderBoxRect();
-                result.unite(bbox);
-                LayoutRect overflowRect = renderBox()->visualOverflowRect();
-                if (bbox != overflowRect)
-                    result.unite(overflowRect);
-            }
+        for (RenderTableCell* cell = tableRow.firstCell(); cell; cell = cell->nextCell()) {
+            LayoutRect bbox = cell->borderBoxRect();
+            result.unite(bbox);
+            LayoutRect overflowRect = tableRow.visualOverflowRect();
+            if (bbox != overflowRect)
+                result.unite(overflowRect);
         }
     } else {
         RenderBox* box = renderBox();
@@ -6129,7 +6125,7 @@
         updateScrollableAreaSet(hasScrollableHorizontalOverflow() || hasScrollableVerticalOverflow());
 }
 
-void RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant(RenderObject* containingBlock)
+void RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant(RenderBlock* containingBlock)
 {
     for (RenderLayer* layer = this; layer; layer = layer->parent()) {
         if (!layer->m_hasOutOfFlowPositionedDescendantDirty && layer->hasOutOfFlowPositionedDescendant())
@@ -6297,7 +6293,7 @@
 
 void RenderLayer::updateScrollCornerStyle()
 {
-    RenderObject* actualRenderer = rendererForScrollbar(&renderer());
+    RenderElement* actualRenderer = rendererForScrollbar(renderer());
     RefPtr<RenderStyle> corner = renderer().hasOverflowClip() ? actualRenderer->getUncachedPseudoStyle(PseudoStyleRequest(SCROLLBAR_CORNER), actualRenderer->style()) : PassRefPtr<RenderStyle>(0);
     if (corner) {
         if (!m_scrollCorner) {
@@ -6313,7 +6309,7 @@
 
 void RenderLayer::updateResizerStyle()
 {
-    RenderObject* actualRenderer = rendererForScrollbar(&renderer());
+    RenderElement* actualRenderer = rendererForScrollbar(renderer());
     RefPtr<RenderStyle> resizer = renderer().hasOverflowClip() ? actualRenderer->getUncachedPseudoStyle(PseudoStyleRequest(RESIZER), actualRenderer->style()) : PassRefPtr<RenderStyle>(0);
     if (resizer) {
         if (!m_resizer) {

Modified: trunk/Source/WebCore/rendering/RenderLayer.h (156914 => 156915)


--- trunk/Source/WebCore/rendering/RenderLayer.h	2013-10-04 21:59:32 UTC (rev 156914)
+++ trunk/Source/WebCore/rendering/RenderLayer.h	2013-10-04 22:22:00 UTC (rev 156915)
@@ -806,7 +806,7 @@
     void setLayerListMutationAllowed(bool flag) { m_layerListMutationAllowed = flag; }
 #endif
 
-    Node* enclosingElement() const;
+    Element* enclosingElement() const;
 
 #if USE(ACCELERATED_COMPOSITING)
     enum ViewportConstrainedNotCompositedReason {
@@ -861,7 +861,7 @@
     void updateScrollbarsAfterStyleChange(const RenderStyle* oldStyle);
     void updateScrollbarsAfterLayout();
 
-    void setAncestorChainHasOutOfFlowPositionedDescendant(RenderObject* containingBlock);
+    void setAncestorChainHasOutOfFlowPositionedDescendant(RenderBlock* containingBlock);
     void dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus();
     void updateOutOfFlowPositioned(const RenderStyle* oldStyle);
 

Modified: trunk/Source/WebCore/rendering/RenderTableRow.h (156914 => 156915)


--- trunk/Source/WebCore/rendering/RenderTableRow.h	2013-10-04 21:59:32 UTC (rev 156914)
+++ trunk/Source/WebCore/rendering/RenderTableRow.h	2013-10-04 22:22:00 UTC (rev 156915)
@@ -119,6 +119,12 @@
     unsigned m_rowIndex : 31;
 };
 
+inline RenderTableRow& toRenderTableRow(RenderObject& object)
+{
+    ASSERT_WITH_SECURITY_IMPLICATION(object.isTableRow());
+    return static_cast<RenderTableRow&>(object);
+}
+
 inline RenderTableRow* toRenderTableRow(RenderObject* object)
 {
     ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isTableRow());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to