| 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() override; | 336 bool isScrollable() override; |
| 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 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 777 void enqueueScrollAnchoringAdjustment(ScrollableArea*); | 779 void enqueueScrollAnchoringAdjustment(ScrollableArea*); |
| 778 void performScrollAnchoringAdjustments(); | 780 void performScrollAnchoringAdjustments(); |
| 779 | 781 |
| 780 // For PaintInvalidator temporarily. TODO(wangxianzhu): Move into | 782 // For PaintInvalidator temporarily. TODO(wangxianzhu): Move into |
| 781 // PaintInvalidator. | 783 // PaintInvalidator. |
| 782 void invalidatePaintIfNeeded(const PaintInvalidationState&); | 784 void invalidatePaintIfNeeded(const PaintInvalidationState&); |
| 783 | 785 |
| 784 // Only for SPv2. | 786 // Only for SPv2. |
| 785 std::unique_ptr<JSONObject> compositedLayersAsJSON(LayerTreeFlags); | 787 std::unique_ptr<JSONObject> compositedLayersAsJSON(LayerTreeFlags); |
| 786 | 788 |
| 789 // Recursively update frame tree. Each frame has its only |
| 790 // scroll on main reason. Given the following frame tree |
| 791 //.. A... |
| 792 //../.\.. |
| 793 //.B...C. |
| 794 //.|..... |
| 795 //.D..... |
| 796 // If B has fixed background-attachment but other frames |
| 797 // don't, both A and C should scroll on cc. Frame D should |
| 798 // scrolled on main thread as its ancestor B. |
| 799 void updateSubFrameScrollOnMainReason(const Frame&, |
| 800 MainThreadScrollingReasons); |
| 801 String mainThreadScrollingReasonsAsText() const; |
| 802 // Main thread scrolling reasons including reasons from ancestors. |
| 803 MainThreadScrollingReasons mainThreadScrollingReasons() const; |
| 804 // Main thread scrolling reasons for this object only. For all reasons, |
| 805 // see: mainThreadScrollingReasons(). |
| 806 MainThreadScrollingReasons mainThreadScrollingReasonsPerFrame() const; |
| 807 bool hasVisibleSlowRepaintViewportConstrainedObjects() const; |
| 808 |
| 787 protected: | 809 protected: |
| 788 // Scroll the content via the compositor. | 810 // Scroll the content via the compositor. |
| 789 bool scrollContentsFastPath(const IntSize& scrollDelta); | 811 bool scrollContentsFastPath(const IntSize& scrollDelta); |
| 790 | 812 |
| 791 // Scroll the content by invalidating everything. | 813 // Scroll the content by invalidating everything. |
| 792 void scrollContentsSlowPath(); | 814 void scrollContentsSlowPath(); |
| 793 | 815 |
| 794 ScrollBehavior scrollBehaviorStyle() const override; | 816 ScrollBehavior scrollBehaviorStyle() const override; |
| 795 | 817 |
| 796 void scrollContentsIfNeeded(); | 818 void scrollContentsIfNeeded(); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 void clearLayoutSubtreeRootsAndMarkContainingBlocks(); | 888 void clearLayoutSubtreeRootsAndMarkContainingBlocks(); |
| 867 | 889 |
| 868 // Called when our frame rect changes (or the rect/scroll offset of an | 890 // Called when our frame rect changes (or the rect/scroll offset of an |
| 869 // ancestor changes). | 891 // ancestor changes). |
| 870 void frameRectsChanged() override; | 892 void frameRectsChanged() override; |
| 871 | 893 |
| 872 bool contentsInCompositedLayer() const; | 894 bool contentsInCompositedLayer() const; |
| 873 | 895 |
| 874 void calculateScrollbarModesFromOverflowStyle(const ComputedStyle*, | 896 void calculateScrollbarModesFromOverflowStyle(const ComputedStyle*, |
| 875 ScrollbarMode& hMode, | 897 ScrollbarMode& hMode, |
| 876 ScrollbarMode& vMode); | 898 ScrollbarMode& vMode) const; |
| 877 | 899 |
| 878 void updateCounters(); | 900 void updateCounters(); |
| 879 void forceLayoutParentViewIfNeeded(); | 901 void forceLayoutParentViewIfNeeded(); |
| 880 void performPreLayoutTasks(); | 902 void performPreLayoutTasks(); |
| 881 void performLayout(bool inSubtreeLayout); | 903 void performLayout(bool inSubtreeLayout); |
| 882 void scheduleOrPerformPostLayoutTasks(); | 904 void scheduleOrPerformPostLayoutTasks(); |
| 883 void performPostLayoutTasks(); | 905 void performPostLayoutTasks(); |
| 884 | 906 |
| 885 void maybeRecordLoadReason(); | 907 void maybeRecordLoadReason(); |
| 886 | 908 |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1143 struct ObjectPaintInvalidation { | 1165 struct ObjectPaintInvalidation { |
| 1144 String name; | 1166 String name; |
| 1145 PaintInvalidationReason reason; | 1167 PaintInvalidationReason reason; |
| 1146 }; | 1168 }; |
| 1147 std::unique_ptr<Vector<ObjectPaintInvalidation>> | 1169 std::unique_ptr<Vector<ObjectPaintInvalidation>> |
| 1148 m_trackedObjectPaintInvalidations; | 1170 m_trackedObjectPaintInvalidations; |
| 1149 | 1171 |
| 1150 // For Slimming Paint v2 only. | 1172 // For Slimming Paint v2 only. |
| 1151 std::unique_ptr<PaintController> m_paintController; | 1173 std::unique_ptr<PaintController> m_paintController; |
| 1152 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor; | 1174 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor; |
| 1175 |
| 1153 bool m_isStoringCompositedLayerDebugInfo; | 1176 bool m_isStoringCompositedLayerDebugInfo; |
| 1177 MainThreadScrollingReasons m_mainThreadScrollingReasons; |
| 1154 }; | 1178 }; |
| 1155 | 1179 |
| 1156 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) { | 1180 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) { |
| 1157 if (m_isVisuallyNonEmpty) | 1181 if (m_isVisuallyNonEmpty) |
| 1158 return; | 1182 return; |
| 1159 m_visuallyNonEmptyCharacterCount += count; | 1183 m_visuallyNonEmptyCharacterCount += count; |
| 1160 // Use a threshold value to prevent very small amounts of visible content from | 1184 // Use a threshold value to prevent very small amounts of visible content from |
| 1161 // triggering didMeaningfulLayout. The first few hundred characters rarely | 1185 // triggering didMeaningfulLayout. The first few hundred characters rarely |
| 1162 // contain the interesting content of the page. | 1186 // contain the interesting content of the page. |
| 1163 static const unsigned visualCharacterThreshold = 200; | 1187 static const unsigned visualCharacterThreshold = 200; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1184 widget.isFrameView()); | 1208 widget.isFrameView()); |
| 1185 DEFINE_TYPE_CASTS(FrameView, | 1209 DEFINE_TYPE_CASTS(FrameView, |
| 1186 ScrollableArea, | 1210 ScrollableArea, |
| 1187 scrollableArea, | 1211 scrollableArea, |
| 1188 scrollableArea->isFrameView(), | 1212 scrollableArea->isFrameView(), |
| 1189 scrollableArea.isFrameView()); | 1213 scrollableArea.isFrameView()); |
| 1190 | 1214 |
| 1191 } // namespace blink | 1215 } // namespace blink |
| 1192 | 1216 |
| 1193 #endif // FrameView_h | 1217 #endif // FrameView_h |
| OLD | NEW |