Title: [154116] trunk/Source/WebCore
Revision
154116
Author
[email protected]
Date
2013-08-15 12:08:48 -0700 (Thu, 15 Aug 2013)

Log Message

FrameView should have an isMainFrameView()
https://bugs.webkit.org/show_bug.cgi?id=119435

Reviewed by Simon Fraser.

No new tests, just refactoring.

* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::isMainFrameView):
(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::createScrollbar):
(WebCore::FrameView::applyOverflowToViewport):
(WebCore::FrameView::setHeaderHeight):
(WebCore::FrameView::setFooterHeight):
(WebCore::FrameView::minimumScrollPosition):
(WebCore::FrameView::maximumScrollPosition):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::sendResizeEventIfNeeded):
(WebCore::FrameView::pagination):
(WebCore::FrameView::visibleContentScaleFactor):
(WebCore::FrameView::setVisibleScrollerThumbRect):
(WebCore::FrameView::scrollbarStyleChanged):
(WebCore::FrameView::paintScrollCorner):
(WebCore::FrameView::paintScrollbar):
(WebCore::FrameView::paintOverhangAreas):
* page/FrameView.h:
Add isMainFrameView and adopt it wherever we were previously checking if
the FrameView's frame was the same as its page's main frame.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (154115 => 154116)


--- trunk/Source/WebCore/ChangeLog	2013-08-15 19:05:04 UTC (rev 154115)
+++ trunk/Source/WebCore/ChangeLog	2013-08-15 19:08:48 UTC (rev 154116)
@@ -1,3 +1,35 @@
+2013-08-15  Tim Horton  <[email protected]>
+
+        FrameView should have an isMainFrameView()
+        https://bugs.webkit.org/show_bug.cgi?id=119435
+
+        Reviewed by Simon Fraser.
+
+        No new tests, just refactoring.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::FrameView):
+        (WebCore::FrameView::isMainFrameView):
+        (WebCore::FrameView::setFrameRect):
+        (WebCore::FrameView::createScrollbar):
+        (WebCore::FrameView::applyOverflowToViewport):
+        (WebCore::FrameView::setHeaderHeight):
+        (WebCore::FrameView::setFooterHeight):
+        (WebCore::FrameView::minimumScrollPosition):
+        (WebCore::FrameView::maximumScrollPosition):
+        (WebCore::FrameView::performPostLayoutTasks):
+        (WebCore::FrameView::sendResizeEventIfNeeded):
+        (WebCore::FrameView::pagination):
+        (WebCore::FrameView::visibleContentScaleFactor):
+        (WebCore::FrameView::setVisibleScrollerThumbRect):
+        (WebCore::FrameView::scrollbarStyleChanged):
+        (WebCore::FrameView::paintScrollCorner):
+        (WebCore::FrameView::paintScrollbar):
+        (WebCore::FrameView::paintOverhangAreas):
+        * page/FrameView.h:
+        Add isMainFrameView and adopt it wherever we were previously checking if
+        the FrameView's frame was the same as its page's main frame.
+
 2013-08-15  Andy Estes  <[email protected]>
 
         <https://webkit.org/b/119853> REGRESSION (r139343): WebKit crashes when canceling a load inside webView:resource:didFinishLoadingFromDataSource:

Modified: trunk/Source/WebCore/page/FrameView.cpp (154115 => 154116)


--- trunk/Source/WebCore/page/FrameView.cpp	2013-08-15 19:05:04 UTC (rev 154115)
+++ trunk/Source/WebCore/page/FrameView.cpp	2013-08-15 19:08:48 UTC (rev 154116)
@@ -207,15 +207,7 @@
 {
     init();
 
-    // FIXME: Can m_frame ever be null here?
-    if (!m_frame)
-        return;
-
-    Page* page = m_frame->page();
-    if (!page)
-        return;
-
-    if (m_frame == page->mainFrame()) {
+    if (isMainFrameView()) {
         ScrollableArea::setVerticalScrollElasticity(ScrollElasticityAllowed);
         ScrollableArea::setHorizontalScrollElasticity(ScrollElasticityAllowed);
     }
@@ -427,6 +419,11 @@
     setScrollbarsSuppressed(true);
 }
 
+bool FrameView::isMainFrameView() const
+{
+    return m_frame && m_frame->page() && m_frame->page()->mainFrame() == m_frame;
+}
+
 bool FrameView::didFirstLayout() const
 {
     return !m_firstLayout;
@@ -463,7 +460,7 @@
     // Autosized font sizes depend on the width of the viewing area.
     if (newRect.width() != oldRect.width()) {
         Page* page = m_frame ? m_frame->page() : 0;
-        if (page && page->mainFrame() == m_frame && page->settings().textAutosizingEnabled()) {
+        if (isMainFrameView() && page->settings().textAutosizingEnabled()) {
             for (Frame* frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext())
                 m_frame->document()->textAutosizer()->recalculateMultipliers();
         }
@@ -559,7 +556,7 @@
 PassRefPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientation)
 {
     if (Settings* settings = m_frame->settings()) {
-        if (!settings->allowCustomScrollbarInMainFrame() && m_frame->page() && m_frame->page()->mainFrame() == m_frame)
+        if (!settings->allowCustomScrollbarInMainFrame() && isMainFrameView())
             return ScrollView::createScrollbar(orientation);
     }
 
@@ -635,8 +632,7 @@
     // there is a frameScaleFactor that is greater than one on the main frame. Also disregard hidden if there is a
     // header or footer.
 
-    bool overrideHidden = (m_frame->page() && m_frame->page()->mainFrame() == m_frame && m_frame->frameScaleFactor() > 1)
-        || (m_frame->page() && m_frame->page()->mainFrame() == m_frame && (headerHeight() || footerHeight()));
+    bool overrideHidden = isMainFrameView() && ((m_frame->frameScaleFactor() > 1) || headerHeight() || footerHeight());
 
     EOverflow overflowX = o->style()->overflowX();
     EOverflow overflowY = o->style()->overflowY();
@@ -950,7 +946,7 @@
 void FrameView::setHeaderHeight(int headerHeight)
 {
     if (m_frame && m_frame->page())
-        ASSERT(m_frame == m_frame->page()->mainFrame());
+        ASSERT(isMainFrameView());
     m_headerHeight = headerHeight;
 
     if (RenderView* renderView = this->renderView())
@@ -960,7 +956,7 @@
 void FrameView::setFooterHeight(int footerHeight)
 {
     if (m_frame && m_frame->page())
-        ASSERT(m_frame == m_frame->page()->mainFrame());
+        ASSERT(isMainFrameView());
     m_footerHeight = footerHeight;
 
     if (RenderView* renderView = this->renderView())
@@ -1644,10 +1640,7 @@
 {
     IntPoint minimumPosition(ScrollView::minimumScrollPosition());
 
-    if (!m_frame || !m_frame->page())
-        return minimumPosition;
-
-    if (m_frame == m_frame->page()->mainFrame() && m_scrollPinningBehavior == PinToBottom)
+    if (isMainFrameView() && m_scrollPinningBehavior == PinToBottom)
         minimumPosition.setY(maximumScrollPosition().y());
     
     return minimumPosition;
@@ -1659,10 +1652,7 @@
 
     maximumOffset.clampNegativeToZero();
 
-    if (!m_frame || !m_frame->page())
-        return maximumOffset;
-
-    if (m_frame == m_frame->page()->mainFrame() && m_scrollPinningBehavior == PinToTop)
+    if (isMainFrameView() && m_scrollPinningBehavior == PinToTop)
         maximumOffset.setY(minimumScrollPosition().y());
     
     return maximumOffset;
@@ -2781,10 +2771,8 @@
             m_frame->loader()->didFirstLayout();
             if (requestedMilestones & DidFirstLayout)
                 milestonesAchieved |= DidFirstLayout;
-            if (page) {
-                if (page->mainFrame() == m_frame)
-                    page->startCountingRelevantRepaintedObjects();
-            }
+            if (isMainFrameView())
+                page->startCountingRelevantRepaintedObjects();
         }
         updateIsVisuallyNonEmpty();
 
@@ -2861,7 +2849,7 @@
     if (!shouldSendResizeEvent)
         return;
 
-    bool isMainFrame = page && page->mainFrame() == m_frame;
+    bool isMainFrame = isMainFrameView();
     bool canSendResizeEventSynchronously = isMainFrame && !isInLayout();
 
     // If we resized during layout, queue up a resize event for later, otherwise fire it right away.
@@ -3036,10 +3024,8 @@
     if (m_pagination != Pagination())
         return m_pagination;
 
-    if (Page* page = m_frame->page()) {
-        if (page->mainFrame() == m_frame)
-            return page->pagination();
-    }
+    if (isMainFrameView())
+        return m_frame->page()->pagination();
 
     return m_pagination;
 }
@@ -3135,23 +3121,18 @@
 
 float FrameView::visibleContentScaleFactor() const
 {
-    if (!m_frame || !m_frame->page())
+    if (!isMainFrameView() || !m_frame->settings()->applyPageScaleFactorInCompositor())
         return 1;
 
-    if (!m_frame->settings()->applyPageScaleFactorInCompositor() || m_frame != m_frame->page()->mainFrame())
-        return 1;
-
     return m_frame->page()->pageScaleFactor();
 }
 
 void FrameView::setVisibleScrollerThumbRect(const IntRect& scrollerThumb)
 {
-    Page* page = m_frame->page();
-    if (!page)
+    if (!isMainFrameView())
         return;
-    if (page->mainFrame() != m_frame)
-        return;
-    page->chrome().client()->notifyScrollerThumbIsVisibleInRect(scrollerThumb);
+
+    m_frame->page()->chrome().client()->notifyScrollerThumbIsVisibleInRect(scrollerThumb);
 }
 
 bool FrameView::scrollbarsCanBeActive() const
@@ -3239,13 +3220,11 @@
 
 void FrameView::scrollbarStyleChanged(int newStyle, bool forceUpdate)
 {
-    Page* page = m_frame->page();
-    if (!page)
+    if (!isMainFrameView())
         return;
-    if (page->mainFrame() != m_frame)
-        return;
-    page->chrome().client()->recommendedScrollbarStyleDidChange(newStyle);
 
+    m_frame->page()->chrome().client()->recommendedScrollbarStyleDidChange(newStyle);
+
     if (forceUpdate)
         ScrollView::scrollbarStyleChanged(newStyle, forceUpdate);
 }
@@ -3371,8 +3350,7 @@
     }
 
     if (m_scrollCorner) {
-        bool needsBackgorund = m_frame->page() && m_frame->page()->mainFrame() == m_frame;
-        if (needsBackgorund)
+        if (isMainFrameView())
             context->fillRect(cornerRect, baseBackgroundColor(), ColorSpaceDeviceRGB);
         m_scrollCorner->paintIntoRect(context, cornerRect.location(), cornerRect);
         return;
@@ -3383,8 +3361,7 @@
 
 void FrameView::paintScrollbar(GraphicsContext* context, Scrollbar* bar, const IntRect& rect)
 {
-    bool needsBackgorund = bar->isCustomScrollbar() && (m_frame->page() && m_frame->page()->mainFrame() == m_frame);
-    if (needsBackgorund) {
+    if (bar->isCustomScrollbar() && isMainFrameView()) {
         IntRect toFill = bar->frameRect();
         toFill.intersect(rect);
         context->fillRect(toFill, baseBackgroundColor(), ColorSpaceDeviceRGB);
@@ -3730,11 +3707,8 @@
     if (m_frame->document()->printing())
         return;
 
-    Page* page = m_frame->page();
-    if (page->mainFrame() == m_frame) {
-        if (page->chrome().client()->paintCustomOverhangArea(context, horizontalOverhangArea, verticalOverhangArea, dirtyRect))
-            return;
-    }
+    if (isMainFrameView() && m_frame->page()->chrome().client()->paintCustomOverhangArea(context, horizontalOverhangArea, verticalOverhangArea, dirtyRect))
+        return;
 
     ScrollView::paintOverhangAreas(context, horizontalOverhangArea, verticalOverhangArea, dirtyRect);
 }

Modified: trunk/Source/WebCore/page/FrameView.h (154115 => 154116)


--- trunk/Source/WebCore/page/FrameView.h	2013-08-15 19:05:04 UTC (rev 154115)
+++ trunk/Source/WebCore/page/FrameView.h	2013-08-15 19:08:48 UTC (rev 154116)
@@ -456,6 +456,8 @@
 
     virtual bool isFrameView() const OVERRIDE { return true; }
 
+    bool isMainFrameView() const;
+
     friend class RenderWidget;
     bool useSlowRepaints(bool considerOverlap = true) const;
     bool useSlowRepaintsIfNotOverlapped() const;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to