OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef RootScrollerController_h | 5 #ifndef RootScrollerController_h |
6 #define RootScrollerController_h | 6 #define RootScrollerController_h |
7 | 7 |
8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
9 #include "platform/heap/Handle.h" | 9 #include "platform/heap/Handle.h" |
10 | 10 |
11 namespace blink { | 11 namespace blink { |
12 | 12 |
13 class Document; | 13 class Document; |
14 class Element; | 14 class Element; |
15 class GraphicsLayer; | 15 class GraphicsLayer; |
16 class PaintLayer; | 16 class PaintLayer; |
17 class PaintLayerScrollableArea; | 17 class PaintLayerScrollableArea; |
18 class ScrollableArea; | 18 class ScrollableArea; |
19 class ScrollStateCallback; | 19 class ScrollStateCallback; |
20 | 20 |
21 // Manages the root scroller associated with a given document. The root | 21 // Manages the root scroller associated with a given document. The root |
22 // scroller causes top controls movement, overscroll effects and prevents | 22 // scroller causes browser controls movement, overscroll effects and prevents |
23 // chaining scrolls up further in the DOM. It can be set from script using | 23 // chaining scrolls up further in the DOM. It can be set from script using |
24 // document.setRootScroller. | 24 // document.setRootScroller. |
25 // | 25 // |
26 // There are two notions of a root scroller in this class: m_rootScroller and | 26 // There are two notions of a root scroller in this class: m_rootScroller and |
27 // m_effectiveRootScroller. The former is the Element that was set as the root | 27 // m_effectiveRootScroller. The former is the Element that was set as the root |
28 // scroller using document.setRootScroller. If the page didn't set a root | 28 // scroller using document.setRootScroller. If the page didn't set a root |
29 // scroller this will be nullptr. The "effective" root scroller is the current | 29 // scroller this will be nullptr. The "effective" root scroller is the current |
30 // element we're using internally to apply viewport scrolling actions. The | 30 // element we're using internally to apply viewport scrolling actions. The |
31 // effective root scroller will only be null during document initialization. | 31 // effective root scroller will only be null during document initialization. |
32 // Both these elements come from this controller's associated Document. The | 32 // Both these elements come from this controller's associated Document. The |
33 // final "global" root scroller, the one whose scrolling hides top controls, | 33 // final "global" root scroller, the one whose scrolling hides browser controls, |
34 // may be in a different frame. | 34 // may be in a different frame. |
35 // | 35 // |
36 // If the currently set m_rootScroller is a valid element to become the root | 36 // If the currently set m_rootScroller is a valid element to become the root |
37 // scroller, it will be promoted to the effective root scroller. If it is not | 37 // scroller, it will be promoted to the effective root scroller. If it is not |
38 // valid, the effective root scroller will fall back to a default Element (see | 38 // valid, the effective root scroller will fall back to a default Element (see |
39 // defaultEffectiveRootScroller()). The rules for what makes an element a valid | 39 // defaultEffectiveRootScroller()). The rules for what makes an element a valid |
40 // root scroller are set in isValidRootScroller(). The validity of the current | 40 // root scroller are set in isValidRootScroller(). The validity of the current |
41 // root scroller is re-checked after each layout. | 41 // root scroller is re-checked after each layout. |
42 class CORE_EXPORT RootScrollerController | 42 class CORE_EXPORT RootScrollerController |
43 : public GarbageCollected<RootScrollerController> { | 43 : public GarbageCollected<RootScrollerController> { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 | 105 |
106 // The element currently being used as the root scroller in this Document. | 106 // The element currently being used as the root scroller in this Document. |
107 // If the m_rootScroller is valid this will point to it. Otherwise, it'll | 107 // If the m_rootScroller is valid this will point to it. Otherwise, it'll |
108 // use a default Element. | 108 // use a default Element. |
109 WeakMember<Element> m_effectiveRootScroller; | 109 WeakMember<Element> m_effectiveRootScroller; |
110 }; | 110 }; |
111 | 111 |
112 } // namespace blink | 112 } // namespace blink |
113 | 113 |
114 #endif // RootScrollerController_h | 114 #endif // RootScrollerController_h |
OLD | NEW |