| 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 c28c4f5fed14b07a2d9fe9306f8dc26262be85d8..065d58378f83030ac41984b17db4ae308517a05d 100644
|
| --- a/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h
|
| +++ b/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h
|
| @@ -27,6 +27,9 @@ class ScrollStateCallback;
|
| // scroller this will be nullptr. The "effective" root scroller is the current
|
| // element we're using internally to apply viewport scrolling actions. The
|
| // effective root scroller will only be null during document initialization.
|
| +// Both these elements are from this controller's associated Document. The final
|
| +// "global" root scroller, the one whose scrolling hides top controls, may be in
|
| +// a different frame.
|
| //
|
| // If the currently set m_rootScroller is a valid element to become the root
|
| // scroller, it will be promoted to the effective root scroller. If it is not
|
| @@ -77,10 +80,10 @@ public:
|
|
|
| // Returns the GraphicsLayer for the current effective root scroller
|
| // element.
|
| - GraphicsLayer* rootScrollerLayer();
|
| + virtual GraphicsLayer* rootScrollerLayer();
|
|
|
| - // Returns true if the given ScrollStateCallback is the ViewportScrollCallback managed
|
| - // by this class.
|
| + // Returns true if the given ScrollStateCallback is the
|
| + // ViewportScrollCallback managed by this class.
|
| // TODO(bokan): Temporarily needed to allow ScrollCustomization to
|
| // differentiate between real custom callback and the built-in viewport
|
| // apply scroll. crbug.com/623079.
|
| @@ -89,9 +92,9 @@ public:
|
| protected:
|
| RootScrollerController(Document&);
|
|
|
| - // Ensures the effective root scroller is currently valid and replaces it
|
| - // with the default if not.
|
| - virtual void updateEffectiveRootScroller();
|
| + // Called when the root scroller of any descendant frames changes. This
|
| + // will only ever be called on the top document's RootScrollerController.
|
| + virtual void globalRootScrollerMayHaveChanged();
|
|
|
| // Returns the ScrollableArea to use to scroll the given Element.
|
| ScrollableArea* scrollableAreaFor(const Element&) const;
|
| @@ -101,6 +104,10 @@ protected:
|
|
|
| private:
|
|
|
| + // Ensures the effective root scroller is currently valid and replaces it
|
| + // with the default if not.
|
| + void recomputeEffectiveRootScroller();
|
| +
|
| // Determines whether the given element meets the criteria to become the
|
| // effective root scroller.
|
| bool isValidRootScroller(const Element&) const;
|
| @@ -109,17 +116,15 @@ private:
|
| // m_rootScroller isn't valid to be a root scroller.
|
| Element* defaultEffectiveRootScroller();
|
|
|
| - // The Element that was set from script as rootScroller. Depending on its
|
| - // validity to be the root scroller (e.g. a display: none element isn't a
|
| - // valid root scroller), this may not actually be the Element being used as
|
| - // the root scroller.
|
| + // The Element that was set from script as rootScroller for this Document.
|
| + // Depending on its validity to be the root scroller (e.g. a display: none
|
| + // element isn't a valid root scroller), this may not actually be the
|
| + // Element being used as the root scroller.
|
| WeakMember<Element> m_rootScroller;
|
|
|
| - // The element currently being used as the root scroller. If
|
| - // m_viewportApplyScroll has been set, this element is guaranteed to have it
|
| - // set as its applyScroll callback. This can be nullptr during
|
| - // initialization and will not be set until m_viewportApplyScroll is
|
| - // provided.
|
| + // The element currently being used as the root scroller in this Document.
|
| + // If the m_rootScroller is valid this will point to it. Otherwise, it'll
|
| + // use a default Element.
|
| WeakMember<Element> m_effectiveRootScroller;
|
| };
|
|
|
|
|