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 22 matching lines...) Expand all Loading... |
33 #include "core/frame/RootFrameViewport.h" | 33 #include "core/frame/RootFrameViewport.h" |
34 #include "core/layout/MapCoordinatesFlags.h" | 34 #include "core/layout/MapCoordinatesFlags.h" |
35 #include "core/layout/ScrollAnchor.h" | 35 #include "core/layout/ScrollAnchor.h" |
36 #include "core/paint/FirstMeaningfulPaintDetector.h" | 36 #include "core/paint/FirstMeaningfulPaintDetector.h" |
37 #include "core/paint/ObjectPaintProperties.h" | 37 #include "core/paint/ObjectPaintProperties.h" |
38 #include "core/paint/PaintInvalidationCapableScrollableArea.h" | 38 #include "core/paint/PaintInvalidationCapableScrollableArea.h" |
39 #include "core/paint/PaintPhase.h" | 39 #include "core/paint/PaintPhase.h" |
40 #include "core/paint/ScrollbarManager.h" | 40 #include "core/paint/ScrollbarManager.h" |
41 #include "platform/RuntimeEnabledFeatures.h" | 41 #include "platform/RuntimeEnabledFeatures.h" |
42 #include "platform/Widget.h" | 42 #include "platform/Widget.h" |
| 43 #include "platform/animation/CompositorAnimationHost.h" |
| 44 #include "platform/animation/CompositorAnimationTimeline.h" |
43 #include "platform/geometry/IntRect.h" | 45 #include "platform/geometry/IntRect.h" |
44 #include "platform/geometry/LayoutRect.h" | 46 #include "platform/geometry/LayoutRect.h" |
45 #include "platform/graphics/Color.h" | 47 #include "platform/graphics/Color.h" |
46 #include "platform/graphics/GraphicsLayerClient.h" | 48 #include "platform/graphics/GraphicsLayerClient.h" |
47 #include "platform/scroll/ScrollTypes.h" | 49 #include "platform/scroll/ScrollTypes.h" |
48 #include "platform/scroll/Scrollbar.h" | 50 #include "platform/scroll/Scrollbar.h" |
49 #include "public/platform/ShapeProperties.h" | 51 #include "public/platform/ShapeProperties.h" |
50 #include "public/platform/WebDisplayMode.h" | 52 #include "public/platform/WebDisplayMode.h" |
51 #include "public/platform/WebRect.h" | 53 #include "public/platform/WebRect.h" |
52 #include "wtf/Allocator.h" | 54 #include "wtf/Allocator.h" |
(...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 void mapQuadToAncestorFrameIncludingScrollOffset( | 814 void mapQuadToAncestorFrameIncludingScrollOffset( |
813 LayoutRect&, | 815 LayoutRect&, |
814 const LayoutObject* descendant, | 816 const LayoutObject* descendant, |
815 const LayoutView* ancestor, | 817 const LayoutView* ancestor, |
816 MapCoordinatesFlags mode); | 818 MapCoordinatesFlags mode); |
817 | 819 |
818 bool mapToVisualRectInTopFrameSpace(LayoutRect&); | 820 bool mapToVisualRectInTopFrameSpace(LayoutRect&); |
819 | 821 |
820 void applyTransformForTopFrameSpace(TransformState&); | 822 void applyTransformForTopFrameSpace(TransformState&); |
821 | 823 |
| 824 // TODO(kenrb): These are temporary methods pending resolution of |
| 825 // https://crbug.com/680606. Animation timelines and hosts for scrolling |
| 826 // are normally owned by ScrollingCoordinator, but there is only one |
| 827 // of those objects per page. To get around this, we temporarily stash a |
| 828 // unique timeline and host on each OOPIF FrameView. |
| 829 void setAnimationTimeline(std::unique_ptr<CompositorAnimationTimeline>); |
| 830 void setAnimationHost(std::unique_ptr<CompositorAnimationHost>); |
| 831 |
822 protected: | 832 protected: |
823 // Scroll the content via the compositor. | 833 // Scroll the content via the compositor. |
824 bool scrollContentsFastPath(const IntSize& scrollDelta); | 834 bool scrollContentsFastPath(const IntSize& scrollDelta); |
825 | 835 |
826 // Scroll the content by invalidating everything. | 836 // Scroll the content by invalidating everything. |
827 void scrollContentsSlowPath(); | 837 void scrollContentsSlowPath(); |
828 | 838 |
829 ScrollBehavior scrollBehaviorStyle() const override; | 839 ScrollBehavior scrollBehaviorStyle() const override; |
830 | 840 |
831 void scrollContentsIfNeeded(); | 841 void scrollContentsIfNeeded(); |
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1183 std::unique_ptr<PaintController> m_paintController; | 1193 std::unique_ptr<PaintController> m_paintController; |
1184 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor; | 1194 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor; |
1185 | 1195 |
1186 bool m_isStoringCompositedLayerDebugInfo; | 1196 bool m_isStoringCompositedLayerDebugInfo; |
1187 MainThreadScrollingReasons m_mainThreadScrollingReasons; | 1197 MainThreadScrollingReasons m_mainThreadScrollingReasons; |
1188 // For recording main thread scrolling reasons | 1198 // For recording main thread scrolling reasons |
1189 // due to layout object properties. e.g. opacity, transform. | 1199 // due to layout object properties. e.g. opacity, transform. |
1190 // The size of the vector depends on the number of | 1200 // The size of the vector depends on the number of |
1191 // main thread scrolling reasons. | 1201 // main thread scrolling reasons. |
1192 Vector<int> m_mainThreadScrollingReasonsCounter; | 1202 Vector<int> m_mainThreadScrollingReasonsCounter; |
| 1203 |
| 1204 // TODO(kenrb): Remove these when https://crbug.com/680606 is resolved. |
| 1205 std::unique_ptr<CompositorAnimationTimeline> m_animationTimeline; |
| 1206 std::unique_ptr<CompositorAnimationHost> m_animationHost; |
1193 }; | 1207 }; |
1194 | 1208 |
1195 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) { | 1209 inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count) { |
1196 if (m_isVisuallyNonEmpty) | 1210 if (m_isVisuallyNonEmpty) |
1197 return; | 1211 return; |
1198 m_visuallyNonEmptyCharacterCount += count; | 1212 m_visuallyNonEmptyCharacterCount += count; |
1199 // Use a threshold value to prevent very small amounts of visible content from | 1213 // Use a threshold value to prevent very small amounts of visible content from |
1200 // triggering didMeaningfulLayout. The first few hundred characters rarely | 1214 // triggering didMeaningfulLayout. The first few hundred characters rarely |
1201 // contain the interesting content of the page. | 1215 // contain the interesting content of the page. |
1202 static const unsigned visualCharacterThreshold = 200; | 1216 static const unsigned visualCharacterThreshold = 200; |
(...skipping 20 matching lines...) Expand all Loading... |
1223 widget.isFrameView()); | 1237 widget.isFrameView()); |
1224 DEFINE_TYPE_CASTS(FrameView, | 1238 DEFINE_TYPE_CASTS(FrameView, |
1225 ScrollableArea, | 1239 ScrollableArea, |
1226 scrollableArea, | 1240 scrollableArea, |
1227 scrollableArea->isFrameView(), | 1241 scrollableArea->isFrameView(), |
1228 scrollableArea.isFrameView()); | 1242 scrollableArea.isFrameView()); |
1229 | 1243 |
1230 } // namespace blink | 1244 } // namespace blink |
1231 | 1245 |
1232 #endif // FrameView_h | 1246 #endif // FrameView_h |
OLD | NEW |