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

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

Issue 2431473003: Intersection Observer support for OOPIF (Closed)
Patch Set: Applying root scroll offset better Created 4 years 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 13 matching lines...) Expand all
24 */ 24 */
25 25
26 #ifndef FrameView_h 26 #ifndef FrameView_h
27 #define FrameView_h 27 #define FrameView_h
28 28
29 #include "core/CoreExport.h" 29 #include "core/CoreExport.h"
30 #include "core/dom/DocumentLifecycle.h" 30 #include "core/dom/DocumentLifecycle.h"
31 #include "core/frame/FrameViewAutoSizeInfo.h" 31 #include "core/frame/FrameViewAutoSizeInfo.h"
32 #include "core/frame/LayoutSubtreeRootList.h" 32 #include "core/frame/LayoutSubtreeRootList.h"
33 #include "core/frame/RootFrameViewport.h" 33 #include "core/frame/RootFrameViewport.h"
34 #include "core/layout/MapCoordinatesFlags.h"
34 #include "core/layout/ScrollAnchor.h" 35 #include "core/layout/ScrollAnchor.h"
35 #include "core/paint/FirstMeaningfulPaintDetector.h" 36 #include "core/paint/FirstMeaningfulPaintDetector.h"
36 #include "core/paint/ObjectPaintProperties.h" 37 #include "core/paint/ObjectPaintProperties.h"
37 #include "core/paint/PaintInvalidationCapableScrollableArea.h" 38 #include "core/paint/PaintInvalidationCapableScrollableArea.h"
38 #include "core/paint/PaintPhase.h" 39 #include "core/paint/PaintPhase.h"
39 #include "core/paint/ScrollbarManager.h" 40 #include "core/paint/ScrollbarManager.h"
40 #include "platform/RuntimeEnabledFeatures.h" 41 #include "platform/RuntimeEnabledFeatures.h"
41 #include "platform/Widget.h" 42 #include "platform/Widget.h"
42 #include "platform/geometry/IntRect.h" 43 #include "platform/geometry/IntRect.h"
43 #include "platform/geometry/LayoutRect.h" 44 #include "platform/geometry/LayoutRect.h"
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 void enqueueScrollAnchoringAdjustment(ScrollableArea*); 761 void enqueueScrollAnchoringAdjustment(ScrollableArea*);
761 void performScrollAnchoringAdjustments(); 762 void performScrollAnchoringAdjustments();
762 763
763 // For PaintInvalidator temporarily. TODO(wangxianzhu): Move into 764 // For PaintInvalidator temporarily. TODO(wangxianzhu): Move into
764 // PaintInvalidator. 765 // PaintInvalidator.
765 void invalidatePaintIfNeeded(const PaintInvalidationState&); 766 void invalidatePaintIfNeeded(const PaintInvalidationState&);
766 767
767 // Only for SPv2. 768 // Only for SPv2.
768 std::unique_ptr<JSONObject> compositedLayersAsJSON(LayerTreeFlags); 769 std::unique_ptr<JSONObject> compositedLayersAsJSON(LayerTreeFlags);
769 770
771 // Called on a view for a LocalFrame with a RemoteFrame parent. This makes
772 // viewport intersection available that accounts for remote ancestor frames
773 // and their respective scroll positions, clips, etc.
774 void setViewportIntersectionFromParent(const IntRect&);
775 IntRect remoteViewportIntersection();
776
777 void mapQuadToAncestorFrameIncludingScrollOffset(
szager1 2016/12/16 03:42:34 Please put a comment here about why this is necess
kenrb 2016/12/16 16:17:35 Done.
778 LayoutRect&,
779 const LayoutObject* descendant,
780 const LayoutView* ancestor,
781 MapCoordinatesFlags mode);
782
770 protected: 783 protected:
771 // Scroll the content via the compositor. 784 // Scroll the content via the compositor.
772 bool scrollContentsFastPath(const IntSize& scrollDelta); 785 bool scrollContentsFastPath(const IntSize& scrollDelta);
773 786
774 // Scroll the content by invalidating everything. 787 // Scroll the content by invalidating everything.
775 void scrollContentsSlowPath(); 788 void scrollContentsSlowPath();
776 789
777 ScrollBehavior scrollBehaviorStyle() const override; 790 ScrollBehavior scrollBehaviorStyle() const override;
778 791
779 void scrollContentsIfNeeded(); 792 void scrollContentsIfNeeded();
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 1127
1115 // ScrollbarManager holds the Scrollbar instances. 1128 // ScrollbarManager holds the Scrollbar instances.
1116 ScrollbarManager m_scrollbarManager; 1129 ScrollbarManager m_scrollbarManager;
1117 1130
1118 bool m_needsScrollbarsUpdate; 1131 bool m_needsScrollbarsUpdate;
1119 bool m_suppressAdjustViewSize; 1132 bool m_suppressAdjustViewSize;
1120 bool m_allowsLayoutInvalidationAfterLayoutClean; 1133 bool m_allowsLayoutInvalidationAfterLayoutClean;
1121 1134
1122 Member<ElementVisibilityObserver> m_visibilityObserver; 1135 Member<ElementVisibilityObserver> m_visibilityObserver;
1123 1136
1137 IntRect m_remoteViewportIntersection;
1138
1124 // For testing. 1139 // For testing.
1125 struct ObjectPaintInvalidation { 1140 struct ObjectPaintInvalidation {
1126 String name; 1141 String name;
1127 PaintInvalidationReason reason; 1142 PaintInvalidationReason reason;
1128 }; 1143 };
1129 std::unique_ptr<Vector<ObjectPaintInvalidation>> 1144 std::unique_ptr<Vector<ObjectPaintInvalidation>>
1130 m_trackedObjectPaintInvalidations; 1145 m_trackedObjectPaintInvalidations;
1131 1146
1132 // For Slimming Paint v2 only. 1147 // For Slimming Paint v2 only.
1133 std::unique_ptr<PaintController> m_paintController; 1148 std::unique_ptr<PaintController> m_paintController;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1165 widget.isFrameView()); 1180 widget.isFrameView());
1166 DEFINE_TYPE_CASTS(FrameView, 1181 DEFINE_TYPE_CASTS(FrameView,
1167 ScrollableArea, 1182 ScrollableArea,
1168 scrollableArea, 1183 scrollableArea,
1169 scrollableArea->isFrameView(), 1184 scrollableArea->isFrameView(),
1170 scrollableArea.isFrameView()); 1185 scrollableArea.isFrameView());
1171 1186
1172 } // namespace blink 1187 } // namespace blink
1173 1188
1174 #endif // FrameView_h 1189 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698