CTTE: RenderFrameBase's widget is always a FrameView.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Nov 2013 03:31:56 +0000 (03:31 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Nov 2013 03:31:56 +0000 (03:31 +0000)
<https://webkit.org/b/123771>

Delete widget() from RenderFrameBase and supplant a childView()
that returns FrameView*. Strip away unnecessary casts and asserts.

Reviewed by Antti Koivisto.

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

Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderFrame.cpp
Source/WebCore/rendering/RenderFrameBase.cpp
Source/WebCore/rendering/RenderFrameBase.h
Source/WebCore/rendering/RenderIFrame.cpp

index 34bcac3..8d250da 100644 (file)
@@ -1,3 +1,13 @@
+2013-11-04  Andreas Kling  <akling@apple.com>
+
+        CTTE: RenderFrameBase's widget is always a FrameView.
+        <https://webkit.org/b/123771>
+
+        Delete widget() from RenderFrameBase and supplant a childView()
+        that returns FrameView*. Strip away unnecessary casts and asserts.
+
+        Reviewed by Antti Koivisto.
+
 2013-11-04  Zoltan Horvath  <zoltan@webkit.org>
 
         [CSS Regions][CSS Shapes] Content in region doesn't respect shape-outside after initial layout pass
index c4f9527..0780993 100644 (file)
@@ -53,18 +53,16 @@ void RenderFrame::updateFromElement()
 
 void RenderFrame::viewCleared()
 {
-    if (!widget() || !widget()->isFrameView())
+    if (!childView())
         return;
 
-    FrameView* view = toFrameView(widget());
-
     int marginWidth = frameElement().marginWidth();
     int marginHeight = frameElement().marginHeight();
 
     if (marginWidth != -1)
-        view->setMarginWidth(marginWidth);
+        childView()->setMarginWidth(marginWidth);
     if (marginHeight != -1)
-        view->setMarginHeight(marginHeight);
+        childView()->setMarginHeight(marginHeight);
 }
 
 } // namespace WebCore
index 2982d1d..28aa3bc 100644 (file)
@@ -54,7 +54,7 @@ inline bool shouldExpandFrame(LayoutUnit width, LayoutUnit height, bool hasFixed
 
 void RenderFrameBase::layoutWithFlattening(bool hasFixedWidth, bool hasFixedHeight)
 {
-    FrameView* childFrameView = toFrameView(widget());
+    FrameView* childFrameView = childView();
     RenderView* childRoot = childFrameView ? childFrameView->frame().contentRenderer() : 0;
 
     if (!childRoot || !shouldExpandFrame(width(), height(), hasFixedWidth, hasFixedHeight)) {
index d853f7e..3111cc9 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef RenderFrameBase_h
 #define RenderFrameBase_h
 
+#include "FrameView.h"
 #include "RenderWidget.h"
 
 namespace WebCore {
@@ -38,7 +39,12 @@ protected:
     RenderFrameBase(HTMLFrameElementBase&, PassRef<RenderStyle>);
 
 public:
+    FrameView* childView() const { return toFrameView(RenderWidget::widget()); }
+
     void layoutWithFlattening(bool fixedWidth, bool fixedHeight);
+
+private:
+    void widget() const WTF_DELETED_FUNCTION;
 };
 
 } // namespace WebCore
index db671fc..3acb581 100644 (file)
@@ -96,9 +96,7 @@ bool RenderIFrame::requiresLayer() const
 
 RenderView* RenderIFrame::contentRootRenderer() const
 {
-    // FIXME: Is this always a valid cast? What about plugins?
-    ASSERT(!widget() || widget()->isFrameView());
-    FrameView* childFrameView = toFrameView(widget());
+    FrameView* childFrameView = childView();
     return childFrameView ? childFrameView->frame().contentRenderer() : 0;
 }
 
@@ -139,7 +137,7 @@ void RenderIFrame::layoutSeamlessly()
     // Laying out our kids is normally responsible for adjusting our height, so we set it here.
     // Replaced elements normally do not respect padding, but seamless elements should: we'll add
     // both padding and border to the child's logical height here.
-    FrameView* childFrameView = toFrameView(widget());
+    FrameView* childFrameView = childView();
     if (childFrameView) // Widget should never be null during layout(), but just in case.
         setLogicalHeight(childFrameView->contentsHeight() + borderTop() + borderBottom() + paddingTop() + paddingBottom());
     updateLogicalHeight();