| OLD | NEW |
| 1 /* | 1 /* |
| 2 Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 Copyright (C) 1997 Martin Jones (mjones@kde.org) |
| 3 (C) 1998 Waldo Bastian (bastian@kde.org) | 3 (C) 1998 Waldo Bastian (bastian@kde.org) |
| 4 (C) 1998, 1999 Torben Weis (weis@kde.org) | 4 (C) 1998, 1999 Torben Weis (weis@kde.org) |
| 5 (C) 1999 Lars Knoll (knoll@kde.org) | 5 (C) 1999 Lars Knoll (knoll@kde.org) |
| 6 (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights | 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights |
| 8 reserved. | 8 reserved. |
| 9 | 9 |
| 10 This library is free software; you can redistribute it and/or | 10 This library is free software; you can redistribute it and/or |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 #include <memory> | 57 #include <memory> |
| 58 | 58 |
| 59 namespace blink { | 59 namespace blink { |
| 60 | 60 |
| 61 class AXObjectCache; | 61 class AXObjectCache; |
| 62 class ComputedStyle; | 62 class ComputedStyle; |
| 63 class DocumentLifecycle; | 63 class DocumentLifecycle; |
| 64 class Cursor; | 64 class Cursor; |
| 65 class Element; | 65 class Element; |
| 66 class ElementVisibilityObserver; | 66 class ElementVisibilityObserver; |
| 67 class Frame; |
| 67 class FloatSize; | 68 class FloatSize; |
| 68 class JSONArray; | 69 class JSONArray; |
| 69 class JSONObject; | 70 class JSONObject; |
| 70 class LayoutItem; | 71 class LayoutItem; |
| 71 class LayoutViewItem; | 72 class LayoutViewItem; |
| 72 class LayoutPart; | 73 class LayoutPart; |
| 73 class LocalFrame; | 74 class LocalFrame; |
| 74 class KURL; | 75 class KURL; |
| 75 class Node; | 76 class Node; |
| 76 class LayoutAnalyzer; | 77 class LayoutAnalyzer; |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 return m_scrollCorner == scrollCorner; | 325 return m_scrollCorner == scrollCorner; |
| 325 } | 326 } |
| 326 | 327 |
| 327 enum ScrollingReasons { | 328 enum ScrollingReasons { |
| 328 Scrollable, | 329 Scrollable, |
| 329 NotScrollableNoOverflow, | 330 NotScrollableNoOverflow, |
| 330 NotScrollableNotVisible, | 331 NotScrollableNotVisible, |
| 331 NotScrollableExplicitlyDisabled | 332 NotScrollableExplicitlyDisabled |
| 332 }; | 333 }; |
| 333 | 334 |
| 334 ScrollingReasons getScrollingReasons(); | 335 ScrollingReasons getScrollingReasons() const; |
| 335 bool isScrollable(); | 336 bool isScrollable(); |
| 336 bool isProgrammaticallyScrollable() override; | 337 bool isProgrammaticallyScrollable() override; |
| 337 | 338 |
| 338 enum ScrollbarModesCalculationStrategy { RulesFromWebContentOnly, AnyRule }; | 339 enum ScrollbarModesCalculationStrategy { RulesFromWebContentOnly, AnyRule }; |
| 339 void calculateScrollbarModes(ScrollbarMode& hMode, | 340 void calculateScrollbarModes( |
| 340 ScrollbarMode& vMode, | 341 ScrollbarMode& hMode, |
| 341 ScrollbarModesCalculationStrategy = AnyRule); | 342 ScrollbarMode& vMode, |
| 343 ScrollbarModesCalculationStrategy = AnyRule) const; |
| 342 | 344 |
| 343 IntPoint lastKnownMousePosition() const override; | 345 IntPoint lastKnownMousePosition() const override; |
| 344 bool shouldSetCursor() const; | 346 bool shouldSetCursor() const; |
| 345 | 347 |
| 346 void setCursor(const Cursor&); | 348 void setCursor(const Cursor&); |
| 347 | 349 |
| 348 bool scrollbarsCanBeActive() const override; | 350 bool scrollbarsCanBeActive() const override; |
| 349 void scrollbarVisibilityChanged() override; | 351 void scrollbarVisibilityChanged() override; |
| 350 | 352 |
| 351 // FIXME: Remove this method once plugin loading is decoupled from layout. | 353 // FIXME: Remove this method once plugin loading is decoupled from layout. |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 778 void enqueueScrollAnchoringAdjustment(ScrollableArea*); | 780 void enqueueScrollAnchoringAdjustment(ScrollableArea*); |
| 779 void performScrollAnchoringAdjustments(); | 781 void performScrollAnchoringAdjustments(); |
| 780 | 782 |
| 781 // For PaintInvalidator temporarily. TODO(wangxianzhu): Move into | 783 // For PaintInvalidator temporarily. TODO(wangxianzhu): Move into |
| 782 // PaintInvalidator. | 784 // PaintInvalidator. |
| 783 void invalidatePaintIfNeeded(const PaintInvalidationState&); | 785 void invalidatePaintIfNeeded(const PaintInvalidationState&); |
| 784 | 786 |
| 785 // Only for SPv2. | 787 // Only for SPv2. |
| 786 std::unique_ptr<JSONObject> compositedLayersAsJSON(LayerTreeFlags); | 788 std::unique_ptr<JSONObject> compositedLayersAsJSON(LayerTreeFlags); |
| 787 | 789 |
| 790 // Recursively update frame tree. Each frame has its only |
| 791 // scroll on main reason. Given the following frame tree |
| 792 //.. A... |
| 793 //../.\.. |
| 794 //.B...C. |
| 795 //.|..... |
| 796 //.D..... |
| 797 // If B has fixed background-attachment but other frames |
| 798 // don't, both A and C should scroll on cc. Frame D should |
| 799 // scrolled on main thread as its ancestor B. |
| 800 void updateSubFrameScrollOnMainReason(const Frame&, |
| 801 MainThreadScrollingReasons); |
| 802 String mainThreadScrollingReasonsAsText() const; |
| 803 // Main thread scrolling reasons including reasons from ancestors. |
| 804 MainThreadScrollingReasons mainThreadScrollingReasons() const; |
| 805 // Main thread scrolling reasons for this object only. For all reasons, |
| 806 // see: mainThreadScrollingReasons(). |
| 807 MainThreadScrollingReasons mainThreadScrollingReasonsPerFrame() const; |
| 808 bool hasVisibleSlowRepaintViewportConstrainedObjects() const; |
| 809 |
| 788 protected: | 810 protected: |
| 789 // Scroll the content via the compositor. | 811 // Scroll the content via the compositor. |
| 790 bool scrollContentsFastPath(const IntSize& scrollDelta); | 812 bool scrollContentsFastPath(const IntSize& scrollDelta); |
| 791 | 813 |
| 792 // Scroll the content by invalidating everything. | 814 // Scroll the content by invalidating everything. |
| 793 void scrollContentsSlowPath(); | 815 void scrollContentsSlowPath(); |
| 794 | 816 |
| 795 ScrollBehavior scrollBehaviorStyle() const override; | 817 ScrollBehavior scrollBehaviorStyle() const override; |
| 796 | 818 |
| 797 void scrollContentsIfNeeded(); | 819 void scrollContentsIfNeeded(); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 867 void clearLayoutSubtreeRootsAndMarkContainingBlocks(); | 889 void clearLayoutSubtreeRootsAndMarkContainingBlocks(); |
| 868 | 890 |
| 869 // Called when our frame rect changes (or the rect/scroll offset of an | 891 // Called when our frame rect changes (or the rect/scroll offset of an |
| 870 // ancestor changes). | 892 // ancestor changes). |
| 871 void frameRectsChanged() override; | 893 void frameRectsChanged() override; |
| 872 | 894 |
| 873 bool contentsInCompositedLayer() const; | 895 bool contentsInCompositedLayer() const; |
| 874 | 896 |
| 875 void calculateScrollbarModesFromOverflowStyle(const ComputedStyle*, | 897 void calculateScrollbarModesFromOverflowStyle(const ComputedStyle*, |
| 876 ScrollbarMode& hMode, | 898 ScrollbarMode& hMode, |
| 877 ScrollbarMode& vMode); | 899 ScrollbarMode& vMode) const; |
| 878 | 900 |
| 879 void updateCounters(); | 901 void updateCounters(); |
| 880 void forceLayoutParentViewIfNeeded(); | 902 void forceLayoutParentViewIfNeeded(); |
| 881 void performPreLayoutTasks(); | 903 void performPreLayoutTasks(); |
| 882 void performLayout(bool inSubtreeLayout); | 904 void performLayout(bool inSubtreeLayout); |
| 883 void scheduleOrPerformPostLayoutTasks(); | 905 void scheduleOrPerformPostLayoutTasks(); |
| 884 void performPostLayoutTasks(); | 906 void performPostLayoutTasks(); |
| 885 | 907 |
| 886 void maybeRecordLoadReason(); | 908 void maybeRecordLoadReason(); |
| 887 | 909 |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1144 struct ObjectPaintInvalidation { | 1166 struct ObjectPaintInvalidation { |
| 1145 String name; | 1167 String name; |
| 1146 PaintInvalidationReason reason; | 1168 PaintInvalidationReason reason; |
| 1147 }; | 1169 }; |
| 1148 std::unique_ptr<Vector<ObjectPaintInvalidation>> | 1170 std::unique_ptr<Vector<ObjectPaintInvalidation>> |
| 1149 m_trackedObjectPaintInvalidations; | 1171 m_trackedObjectPaintInvalidations; |
| 1150 | 1172 |
| 1151 // For Slimming Paint v2 only. | 1173 // For Slimming Paint v2 only. |
| 1152 std::unique_ptr<PaintController> m_paintController; | 1174 std::unique_ptr<PaintController> m_paintController; |
| 1153 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor; | 1175 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor; |
| 1176 |
| 1154 bool m_isStoringCompositedLayerDebugInfo; | 1177 bool m_isStoringCompositedLayerDebugInfo; |
| 1178 MainThreadScrollingReasons m_mainThreadScrollingReasons; |
| 1155 }; | 1179 }; |
| 1156 | 1180 |
| 1157 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) { | 1181 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) { |
| 1158 if (m_isVisuallyNonEmpty) | 1182 if (m_isVisuallyNonEmpty) |
| 1159 return; | 1183 return; |
| 1160 m_visuallyNonEmptyCharacterCount += count; | 1184 m_visuallyNonEmptyCharacterCount += count; |
| 1161 // Use a threshold value to prevent very small amounts of visible content from | 1185 // Use a threshold value to prevent very small amounts of visible content from |
| 1162 // triggering didMeaningfulLayout. The first few hundred characters rarely | 1186 // triggering didMeaningfulLayout. The first few hundred characters rarely |
| 1163 // contain the interesting content of the page. | 1187 // contain the interesting content of the page. |
| 1164 static const unsigned visualCharacterThreshold = 200; | 1188 static const unsigned visualCharacterThreshold = 200; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1185 widget.isFrameView()); | 1209 widget.isFrameView()); |
| 1186 DEFINE_TYPE_CASTS(FrameView, | 1210 DEFINE_TYPE_CASTS(FrameView, |
| 1187 ScrollableArea, | 1211 ScrollableArea, |
| 1188 scrollableArea, | 1212 scrollableArea, |
| 1189 scrollableArea->isFrameView(), | 1213 scrollableArea->isFrameView(), |
| 1190 scrollableArea.isFrameView()); | 1214 scrollableArea.isFrameView()); |
| 1191 | 1215 |
| 1192 } // namespace blink | 1216 } // namespace blink |
| 1193 | 1217 |
| 1194 #endif // FrameView_h | 1218 #endif // FrameView_h |
| OLD | NEW |