Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
| 3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
| 4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
| 5 * 2000 Dirk Mueller <mueller@kde.org> | 5 * 2000 Dirk Mueller <mueller@kde.org> |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
| 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 9 * Copyright (C) 2009 Google Inc. All rights reserved. | 9 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 10 * | 10 * |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 97 static RenderLayer::UpdateLayerPositionsFlags updateLayerPositionFlags(RenderLay er* layer, bool isRelayoutingSubtree, bool didFullPaintInvalidation) | 97 static RenderLayer::UpdateLayerPositionsFlags updateLayerPositionFlags(RenderLay er* layer, bool isRelayoutingSubtree, bool didFullPaintInvalidation) |
| 98 { | 98 { |
| 99 RenderLayer::UpdateLayerPositionsFlags flags = didFullPaintInvalidation ? Re nderLayer::NeedsFullRepaintInBacking : RenderLayer::CheckForRepaint; | 99 RenderLayer::UpdateLayerPositionsFlags flags = didFullPaintInvalidation ? Re nderLayer::NeedsFullRepaintInBacking : RenderLayer::CheckForRepaint; |
| 100 | 100 |
| 101 if (isRelayoutingSubtree && (layer->isPaginated() || layer->enclosingPaginat ionLayer())) | 101 if (isRelayoutingSubtree && (layer->isPaginated() || layer->enclosingPaginat ionLayer())) |
| 102 flags |= RenderLayer::UpdatePagination; | 102 flags |= RenderLayer::UpdatePagination; |
| 103 | 103 |
| 104 return flags; | 104 return flags; |
| 105 } | 105 } |
| 106 | 106 |
| 107 class FrameViewLayoutStateMaintainer { | |
| 108 WTF_MAKE_NONCOPYABLE(FrameViewLayoutStateMaintainer); | |
| 109 public: | |
| 110 FrameViewLayoutStateMaintainer(RenderObject& root, bool inSubtreeLayout) | |
| 111 : m_view(*root.view()) | |
| 112 , m_inSubtreeLayout(inSubtreeLayout) | |
| 113 , m_disabled(inSubtreeLayout && m_view.shouldDisableLayoutStateForSubtre e(root)) | |
| 114 { | |
| 115 if (m_inSubtreeLayout) | |
| 116 m_view.pushLayoutState(root); | |
| 117 if (m_disabled) | |
| 118 m_view.disableLayoutState(); | |
| 119 } | |
| 120 | |
| 121 ~FrameViewLayoutStateMaintainer() | |
| 122 { | |
| 123 if (m_disabled) | |
| 124 m_view.enableLayoutState(); | |
| 125 if (m_inSubtreeLayout) | |
| 126 m_view.popLayoutState(); | |
| 127 } | |
| 128 private: | |
| 129 RenderView& m_view; | |
| 130 bool m_inSubtreeLayout; | |
| 131 bool m_disabled; | |
| 132 }; | |
| 133 | |
| 134 FrameView::FrameView(LocalFrame* frame) | 107 FrameView::FrameView(LocalFrame* frame) |
| 135 : m_frame(frame) | 108 : m_frame(frame) |
| 136 , m_canHaveScrollbars(true) | 109 , m_canHaveScrollbars(true) |
| 137 , m_slowRepaintObjectCount(0) | 110 , m_slowRepaintObjectCount(0) |
| 138 , m_hasPendingLayout(false) | 111 , m_hasPendingLayout(false) |
| 139 , m_layoutSubtreeRoot(0) | 112 , m_layoutSubtreeRoot(0) |
| 140 , m_inSynchronousPostLayout(false) | 113 , m_inSynchronousPostLayout(false) |
| 141 , m_postLayoutTasksTimer(this, &FrameView::postLayoutTimerFired) | 114 , m_postLayoutTasksTimer(this, &FrameView::postLayoutTimerFired) |
| 142 , m_updateWidgetsTimer(this, &FrameView::updateWidgetsTimerFired) | 115 , m_updateWidgetsTimer(this, &FrameView::updateWidgetsTimerFired) |
| 143 , m_isTransparent(false) | 116 , m_isTransparent(false) |
| (...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 785 | 758 |
| 786 ASSERT(!isInPerformLayout()); | 759 ASSERT(!isInPerformLayout()); |
| 787 lifecycle().advanceTo(DocumentLifecycle::InPerformLayout); | 760 lifecycle().advanceTo(DocumentLifecycle::InPerformLayout); |
| 788 | 761 |
| 789 TemporaryChange<bool> changeInPerformLayout(m_inPerformLayout, true); | 762 TemporaryChange<bool> changeInPerformLayout(m_inPerformLayout, true); |
| 790 | 763 |
| 791 // performLayout is the actual guts of layout(). | 764 // performLayout is the actual guts of layout(). |
| 792 // FIXME: The 300 other lines in layout() probably belong in other helper fu nctions | 765 // FIXME: The 300 other lines in layout() probably belong in other helper fu nctions |
| 793 // so that a single human could understand what layout() is actually doing. | 766 // so that a single human could understand what layout() is actually doing. |
| 794 | 767 |
| 795 FrameViewLayoutStateMaintainer statePusher(*rootForThisLayout, inSubtreeLayo ut); | 768 LayoutState layoutState(*rootForThisLayout); |
| 769 | |
| 796 forceLayoutParentViewIfNeeded(); | 770 forceLayoutParentViewIfNeeded(); |
| 797 | 771 |
| 798 // FIXME (crbug.com/256657): Do not do two layouts for text autosizing. | 772 // FIXME (crbug.com/256657): Do not do two layouts for text autosizing. |
| 799 rootForThisLayout->layout(); | 773 rootForThisLayout->layout(); |
| 800 gatherDebugLayoutRects(rootForThisLayout); | 774 gatherDebugLayoutRects(rootForThisLayout); |
| 801 | 775 |
| 802 ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->updateAllIma geResourcePriorities(); | 776 ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->updateAllIma geResourcePriorities(); |
| 803 | 777 |
| 804 TextAutosizer* textAutosizer = frame().document()->textAutosizer(); | 778 TextAutosizer* textAutosizer = frame().document()->textAutosizer(); |
| 805 bool autosized; | 779 bool autosized; |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1035 // We should only invalidate paints for the outer most layout. This works as | 1009 // We should only invalidate paints for the outer most layout. This works as |
| 1036 // we continue to track paint invalidation rects until this function is call ed. | 1010 // we continue to track paint invalidation rects until this function is call ed. |
| 1037 ASSERT(!m_nestedLayoutCount); | 1011 ASSERT(!m_nestedLayoutCount); |
| 1038 | 1012 |
| 1039 TRACE_EVENT1("blink", "FrameView::invalidateTree", "root", TRACE_STR_COPY(ro ot->debugName().ascii().data())); | 1013 TRACE_EVENT1("blink", "FrameView::invalidateTree", "root", TRACE_STR_COPY(ro ot->debugName().ascii().data())); |
| 1040 | 1014 |
| 1041 // FIXME: really, we're in the paint invalidation phase here, and the compos iting queries are legal. | 1015 // FIXME: really, we're in the paint invalidation phase here, and the compos iting queries are legal. |
| 1042 // Until those states are fully fledged, I'll just disable the ASSERTS. | 1016 // Until those states are fully fledged, I'll just disable the ASSERTS. |
| 1043 DisableCompositingQueryAsserts compositingQueryAssertsDisabler; | 1017 DisableCompositingQueryAsserts compositingQueryAssertsDisabler; |
| 1044 | 1018 |
| 1045 RootLayoutStateScope rootLayoutStateScope(*root); | 1019 LayoutState rootLayoutStateScope(*root); |
|
esprehn
2014/06/14 03:08:26
rootLayoutState
| |
| 1046 | 1020 |
| 1047 root->invalidateTreeAfterLayout(*root->containerForPaintInvalidation()); | 1021 root->invalidateTreeAfterLayout(*root->containerForPaintInvalidation()); |
| 1048 | 1022 |
| 1049 // Invalidate the paint of the frameviews scrollbars if needed | 1023 // Invalidate the paint of the frameviews scrollbars if needed |
| 1050 if (hasVerticalBarDamage()) | 1024 if (hasVerticalBarDamage()) |
| 1051 invalidateRect(verticalBarDamage()); | 1025 invalidateRect(verticalBarDamage()); |
| 1052 if (hasHorizontalBarDamage()) | 1026 if (hasHorizontalBarDamage()) |
| 1053 invalidateRect(horizontalBarDamage()); | 1027 invalidateRect(horizontalBarDamage()); |
| 1054 resetScrollbarDamage(); | 1028 resetScrollbarDamage(); |
| 1055 } | 1029 } |
| (...skipping 2222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3278 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation) | 3252 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation) |
| 3279 { | 3253 { |
| 3280 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); | 3254 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); |
| 3281 if (AXObjectCache* cache = axObjectCache()) { | 3255 if (AXObjectCache* cache = axObjectCache()) { |
| 3282 cache->remove(scrollbar); | 3256 cache->remove(scrollbar); |
| 3283 cache->handleScrollbarUpdate(this); | 3257 cache->handleScrollbarUpdate(this); |
| 3284 } | 3258 } |
| 3285 } | 3259 } |
| 3286 | 3260 |
| 3287 } // namespace WebCore | 3261 } // namespace WebCore |
| OLD | NEW |