Changeset 223622 in webkit


Ignore:
Timestamp:
Oct 18, 2017 12:19:38 PM (7 years ago)
Author:
Alan Bujtas
Message:

[FrameView::layout cleanup] Move root/body marking dirty logic to a separate function
https://bugs.webkit.org/show_bug.cgi?id=178477
<rdar://problem/35056478>

Reviewed by Simon Fraser.

No change in functionality.

  • page/FrameView.cpp:

(WebCore::FrameView::markRootOrBodyRendererDirty const):
(WebCore::FrameView::layout):

  • page/FrameView.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r223621 r223622  
     12017-10-18  Zalan Bujtas  <zalan@apple.com>
     2
     3        [FrameView::layout cleanup] Move root/body marking dirty logic to a separate function
     4        https://bugs.webkit.org/show_bug.cgi?id=178477
     5        <rdar://problem/35056478>
     6
     7        Reviewed by Simon Fraser.
     8
     9        No change in functionality.
     10
     11        * page/FrameView.cpp:
     12        (WebCore::FrameView::markRootOrBodyRendererDirty const):
     13        (WebCore::FrameView::layout):
     14        * page/FrameView.h:
     15
    1162017-10-18  Keith Miller  <keith_miller@apple.com>
    217
  • trunk/Source/WebCore/page/FrameView.cpp

    r223605 r223622  
    13371337}
    13381338
     1339void FrameView::markRootOrBodyRendererDirty() const
     1340{
     1341    auto& document = *frame().document();
     1342    RenderBox* rootRenderer = document.documentElement() ? document.documentElement()->renderBox() : nullptr;
     1343    auto* body = document.bodyOrFrameset();
     1344    RenderBox* bodyRenderer = rootRenderer && body ? body->renderBox() : nullptr;
     1345    if (bodyRenderer && bodyRenderer->stretchesToViewport())
     1346        bodyRenderer->setChildNeedsLayout();
     1347    else if (rootRenderer && rootRenderer->stretchesToViewport())
     1348        rootRenderer->setChildNeedsLayout();
     1349}
     1350
    13391351void FrameView::layout(bool allowSubtreeLayout)
    13401352{
     
    14771489            }
    14781490
    1479             LayoutSize oldSize = m_size;
     1491            auto oldSize = m_size;
    14801492            m_size = layoutSize();
    1481 
    14821493            if (oldSize != m_size) {
    14831494                LOG(Layout, "  layout size changed from %.3fx%.3f to %.3fx%.3f", oldSize.width().toFloat(), oldSize.height().toFloat(), m_size.width().toFloat(), m_size.height().toFloat());
    14841495                m_needsFullRepaint = true;
    1485                 if (!m_firstLayout) {
    1486                     RenderBox* rootRenderer = document.documentElement() ? document.documentElement()->renderBox() : nullptr;
    1487                     auto* body = document.bodyOrFrameset();
    1488                     RenderBox* bodyRenderer = rootRenderer && body ? body->renderBox() : nullptr;
    1489                     if (bodyRenderer && bodyRenderer->stretchesToViewport())
    1490                         bodyRenderer->setChildNeedsLayout();
    1491                     else if (rootRenderer && rootRenderer->stretchesToViewport())
    1492                         rootRenderer->setChildNeedsLayout();
    1493                 }
     1496                if (!m_firstLayout)
     1497                    markRootOrBodyRendererDirty();
    14941498            }
    1495 
    14961499            m_layoutPhase = InPreLayout;
    14971500        }
  • trunk/Source/WebCore/page/FrameView.h

    r223605 r223622  
    767767    bool frameFlatteningEnabled() const;
    768768    bool isFrameFlatteningValidForThisFrame() const;
     769   
     770    void markRootOrBodyRendererDirty() const;
    769771
    770772    bool qualifiesAsVisuallyNonEmpty() const;
Note: See TracChangeset for help on using the changeset viewer.