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

Unified Diff: third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h

Issue 2273163002: Cleanup and refactor RootScrollerController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed class comment Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h
diff --git a/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h b/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h
index 557102b0a67487c9d15718ca3c3ee79b1387e95e..9a0dae610cb946ede9c9ed38ceac0c980c2a869e 100644
--- a/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h
+++ b/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h
@@ -13,6 +13,7 @@ namespace blink {
class Document;
class Element;
class GraphicsLayer;
+class ScrollStateCallback;
class ViewportScrollCallback;
// Manages the root scroller associated with a given document. The root scroller
@@ -75,17 +76,16 @@ public:
// update the compositor when the effective root scroller changes.
void didUpdateCompositing();
+ // This class needs to be informed when the document has been attached to a
+ // FrameView so that we can initialize the viewport scroll callback.
+ void didAttachDocument();
+
GraphicsLayer* rootScrollerLayer();
- // TODO(bokan): Temporarily exposed to allow ScrollCustomization to
+ // TODO(bokan): Temporarily needed to allow ScrollCustomization to
// differentiate between real custom callback and the built-in viewport
// apply scroll.
- const ViewportScrollCallback* viewportScrollCallback()
- {
- return m_viewportApplyScroll;
- }
-
- void setViewportScrollCallback(ViewportScrollCallback*);
+ bool isViewportScrollCallback(const ScrollStateCallback*) const;
private:
RootScrollerController(Document&);
@@ -96,8 +96,10 @@ private:
// with the default if not.
void updateEffectiveRootScroller();
- // Returns true if the move was successful.
- bool moveViewportApplyScroll(Element* target);
+ // Called only from the top Document's RootScrollerController. Ensures that
+ // the element that should be used as the root scroller on the page has the
+ // m_viewportApplyScroll callback set on it.
+ void setViewportApplyScrollOnRootScroller();
WeakMember<Document> m_document;
Member<ViewportScrollCallback> m_viewportApplyScroll;
@@ -110,6 +112,10 @@ private:
// initialization and will not be set until m_viewportApplyScroll is
// provided.
WeakMember<Element> m_effectiveRootScroller;
+
+ // Tracks which element currently has the m_viewportApplyScroll set to it.
+ // This will only ever be set on the top Document's RootScrollerController.
+ WeakMember<Element> m_currentViewportApplyScrollHost;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698