Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.h

Issue 2773593005: Move logic of recording main thread scrolling reasons from cc to blink::ScrollManager (Closed)
Patch Set: Add unit tests Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 //.B...C. 789 //.B...C.
790 //.|..... 790 //.|.....
791 //.D..... 791 //.D.....
792 // If B has fixed background-attachment but other frames 792 // If B has fixed background-attachment but other frames
793 // don't, both A and C should scroll on cc. Frame D should 793 // don't, both A and C should scroll on cc. Frame D should
794 // scrolled on main thread as its ancestor B. 794 // scrolled on main thread as its ancestor B.
795 void updateSubFrameScrollOnMainReason(const Frame&, 795 void updateSubFrameScrollOnMainReason(const Frame&,
796 MainThreadScrollingReasons); 796 MainThreadScrollingReasons);
797 String mainThreadScrollingReasonsAsText() const; 797 String mainThreadScrollingReasonsAsText() const;
798 // Main thread scrolling reasons including reasons from ancestors. 798 // Main thread scrolling reasons including reasons from ancestors.
799 MainThreadScrollingReasons mainThreadScrollingReasons() const; 799 MainThreadScrollingReasons mainThreadScrollingReasons() const;
bokan 2017/04/07 17:39:03 We should probably DCHECK in this and the below me
yigu 2017/04/07 19:26:27 Done.
800 // Main thread scrolling reasons for this object only. For all reasons, 800 // Main thread scrolling reasons for this object only. For all reasons,
801 // see: mainThreadScrollingReasons(). 801 // see: mainThreadScrollingReasons().
802 MainThreadScrollingReasons mainThreadScrollingReasonsPerFrame() const; 802 MainThreadScrollingReasons mainThreadScrollingReasonsPerFrame() const;
803 void adjustStyleRelatedMainThreadScrollingReasons(const uint32_t reason,
804 bool increase);
805 MainThreadScrollingReasons getStyleRelatedMainThreadScrollingReasons() const;
806 803
807 bool hasVisibleSlowRepaintViewportConstrainedObjects() const; 804 bool hasVisibleSlowRepaintViewportConstrainedObjects() const;
808 805
809 // Called on a view for a LocalFrame with a RemoteFrame parent. This makes 806 // Called on a view for a LocalFrame with a RemoteFrame parent. This makes
810 // viewport intersection available that accounts for remote ancestor frames 807 // viewport intersection available that accounts for remote ancestor frames
811 // and their respective scroll positions, clips, etc. 808 // and their respective scroll positions, clips, etc.
812 void setViewportIntersectionFromParent(const IntRect&); 809 void setViewportIntersectionFromParent(const IntRect&);
813 IntRect remoteViewportIntersection(); 810 IntRect remoteViewportIntersection();
814 811
815 // This method uses localToAncestorQuad to map a rect into an ancestor's 812 // This method uses localToAncestorQuad to map a rect into an ancestor's
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 }; 1207 };
1211 std::unique_ptr<Vector<ObjectPaintInvalidation>> 1208 std::unique_ptr<Vector<ObjectPaintInvalidation>>
1212 m_trackedObjectPaintInvalidations; 1209 m_trackedObjectPaintInvalidations;
1213 1210
1214 // For Slimming Paint v2 only. 1211 // For Slimming Paint v2 only.
1215 std::unique_ptr<PaintController> m_paintController; 1212 std::unique_ptr<PaintController> m_paintController;
1216 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor; 1213 std::unique_ptr<PaintArtifactCompositor> m_paintArtifactCompositor;
1217 1214
1218 bool m_isStoringCompositedLayerDebugInfo; 1215 bool m_isStoringCompositedLayerDebugInfo;
1219 MainThreadScrollingReasons m_mainThreadScrollingReasons; 1216 MainThreadScrollingReasons m_mainThreadScrollingReasons;
1220 // For recording main thread scrolling reasons
1221 // due to layout object properties. e.g. opacity, transform.
1222 // The size of the vector depends on the number of
1223 // main thread scrolling reasons.
1224 Vector<int> m_mainThreadScrollingReasonsCounter;
1225 1217
1226 // TODO(kenrb): Remove these when https://crbug.com/680606 is resolved. 1218 // TODO(kenrb): Remove these when https://crbug.com/680606 is resolved.
1227 std::unique_ptr<CompositorAnimationTimeline> m_animationTimeline; 1219 std::unique_ptr<CompositorAnimationTimeline> m_animationTimeline;
1228 std::unique_ptr<CompositorAnimationHost> m_animationHost; 1220 std::unique_ptr<CompositorAnimationHost> m_animationHost;
1229 1221
1230 Member<PrintContext> m_printContext; 1222 Member<PrintContext> m_printContext;
1231 1223
1232 FRIEND_TEST_ALL_PREFIXES(WebViewTest, DeviceEmulationResetScrollbars); 1224 FRIEND_TEST_ALL_PREFIXES(WebViewTest, DeviceEmulationResetScrollbars);
1233 }; 1225 };
1234 1226
(...skipping 28 matching lines...) Expand all
1263 frameViewBase.isFrameView()); 1255 frameViewBase.isFrameView());
1264 DEFINE_TYPE_CASTS(FrameView, 1256 DEFINE_TYPE_CASTS(FrameView,
1265 ScrollableArea, 1257 ScrollableArea,
1266 scrollableArea, 1258 scrollableArea,
1267 scrollableArea->isFrameView(), 1259 scrollableArea->isFrameView(),
1268 scrollableArea.isFrameView()); 1260 scrollableArea.isFrameView());
1269 1261
1270 } // namespace blink 1262 } // namespace blink
1271 1263
1272 #endif // FrameView_h 1264 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698