| 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 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 | 775 |
| 803 ASSERT(!isInPerformLayout()); | 776 ASSERT(!isInPerformLayout()); |
| 804 lifecycle().advanceTo(DocumentLifecycle::InPerformLayout); | 777 lifecycle().advanceTo(DocumentLifecycle::InPerformLayout); |
| 805 | 778 |
| 806 TemporaryChange<bool> changeInPerformLayout(m_inPerformLayout, true); | 779 TemporaryChange<bool> changeInPerformLayout(m_inPerformLayout, true); |
| 807 | 780 |
| 808 // performLayout is the actual guts of layout(). | 781 // performLayout is the actual guts of layout(). |
| 809 // FIXME: The 300 other lines in layout() probably belong in other helper fu
nctions | 782 // FIXME: The 300 other lines in layout() probably belong in other helper fu
nctions |
| 810 // so that a single human could understand what layout() is actually doing. | 783 // so that a single human could understand what layout() is actually doing. |
| 811 | 784 |
| 812 FrameViewLayoutStateMaintainer statePusher(*rootForThisLayout, inSubtreeLayo
ut); | 785 LayoutState layoutState(*rootForThisLayout); |
| 786 |
| 813 forceLayoutParentViewIfNeeded(); | 787 forceLayoutParentViewIfNeeded(); |
| 814 | 788 |
| 815 // FIXME (crbug.com/256657): Do not do two layouts for text autosizing. | 789 // FIXME (crbug.com/256657): Do not do two layouts for text autosizing. |
| 816 rootForThisLayout->layout(); | 790 rootForThisLayout->layout(); |
| 817 gatherDebugLayoutRects(rootForThisLayout); | 791 gatherDebugLayoutRects(rootForThisLayout); |
| 818 | 792 |
| 819 ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->updateAllIma
geResourcePriorities(); | 793 ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->updateAllIma
geResourcePriorities(); |
| 820 | 794 |
| 821 TextAutosizer* textAutosizer = frame().document()->textAutosizer(); | 795 TextAutosizer* textAutosizer = frame().document()->textAutosizer(); |
| 822 bool autosized; | 796 bool autosized; |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1052 // We should only invalidate paints for the outer most layout. This works as | 1026 // We should only invalidate paints for the outer most layout. This works as |
| 1053 // we continue to track paint invalidation rects until this function is call
ed. | 1027 // we continue to track paint invalidation rects until this function is call
ed. |
| 1054 ASSERT(!m_nestedLayoutCount); | 1028 ASSERT(!m_nestedLayoutCount); |
| 1055 | 1029 |
| 1056 TRACE_EVENT1("blink", "FrameView::invalidateTree", "root", TRACE_STR_COPY(ro
ot->debugName().ascii().data())); | 1030 TRACE_EVENT1("blink", "FrameView::invalidateTree", "root", TRACE_STR_COPY(ro
ot->debugName().ascii().data())); |
| 1057 | 1031 |
| 1058 // FIXME: really, we're in the paint invalidation phase here, and the compos
iting queries are legal. | 1032 // FIXME: really, we're in the paint invalidation phase here, and the compos
iting queries are legal. |
| 1059 // Until those states are fully fledged, I'll just disable the ASSERTS. | 1033 // Until those states are fully fledged, I'll just disable the ASSERTS. |
| 1060 DisableCompositingQueryAsserts compositingQueryAssertsDisabler; | 1034 DisableCompositingQueryAsserts compositingQueryAssertsDisabler; |
| 1061 | 1035 |
| 1062 RootLayoutStateScope rootLayoutStateScope(*root); | 1036 LayoutState rootLayoutState(*root); |
| 1063 | 1037 |
| 1064 root->invalidateTreeAfterLayout(*root->containerForPaintInvalidation()); | 1038 root->invalidateTreeAfterLayout(*root->containerForPaintInvalidation()); |
| 1065 | 1039 |
| 1066 // Invalidate the paint of the frameviews scrollbars if needed | 1040 // Invalidate the paint of the frameviews scrollbars if needed |
| 1067 if (hasVerticalBarDamage()) | 1041 if (hasVerticalBarDamage()) |
| 1068 invalidateRect(verticalBarDamage()); | 1042 invalidateRect(verticalBarDamage()); |
| 1069 if (hasHorizontalBarDamage()) | 1043 if (hasHorizontalBarDamage()) |
| 1070 invalidateRect(horizontalBarDamage()); | 1044 invalidateRect(horizontalBarDamage()); |
| 1071 resetScrollbarDamage(); | 1045 resetScrollbarDamage(); |
| 1072 } | 1046 } |
| (...skipping 2222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3295 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o
rientation) | 3269 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o
rientation) |
| 3296 { | 3270 { |
| 3297 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); | 3271 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); |
| 3298 if (AXObjectCache* cache = axObjectCache()) { | 3272 if (AXObjectCache* cache = axObjectCache()) { |
| 3299 cache->remove(scrollbar); | 3273 cache->remove(scrollbar); |
| 3300 cache->handleScrollbarUpdate(this); | 3274 cache->handleScrollbarUpdate(this); |
| 3301 } | 3275 } |
| 3302 } | 3276 } |
| 3303 | 3277 |
| 3304 } // namespace WebCore | 3278 } // namespace WebCore |
| OLD | NEW |