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

Side by Side Diff: third_party/WebKit/Source/web/FullscreenController.h

Issue 2550703002: Move pending state from FullscreenController to Fullscreen (Closed)
Patch Set: fix my test 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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef FullscreenController_h 31 #ifndef FullscreenController_h
32 #define FullscreenController_h 32 #define FullscreenController_h
33 33
34 #include "platform/geometry/FloatPoint.h" 34 #include "platform/geometry/FloatPoint.h"
35 #include "platform/geometry/IntSize.h" 35 #include "platform/geometry/IntSize.h"
36 #include "platform/heap/Handle.h" 36 #include <memory>
37 #include "wtf/RefPtr.h"
38 37
39 namespace blink { 38 namespace blink {
40 39
41 class Element; 40 class Element;
42 class LocalFrame; 41 class LocalFrame;
43 class WebViewImpl; 42 class WebViewImpl;
44 43
45 class FullscreenController final 44 class FullscreenController {
46 : public GarbageCollected<FullscreenController> {
47 public: 45 public:
48 static FullscreenController* create(WebViewImpl*); 46 static std::unique_ptr<FullscreenController> create(WebViewImpl*);
49 47
50 // Called by Fullscreen (via ChromeClient) to request entering or exiting 48 // Called by Fullscreen (via ChromeClient) to request entering or exiting
51 // fullscreen. 49 // fullscreen.
52 void enterFullscreenForElement(Element*); 50 void enterFullscreen(LocalFrame&);
53 void exitFullscreen(LocalFrame*); 51 void exitFullscreen(LocalFrame&);
54 52
55 // Called by content::RenderWidget (via WebWidget) to notify that we've 53 // Called by content::RenderWidget (via WebWidget) to notify that we've
56 // entered or exited fullscreen. This can be because we requested it, or it 54 // entered or exited fullscreen. This can be because we requested it, or it
57 // can be initiated by the browser directly. 55 // can be initiated by the browser directly.
58 void didEnterFullscreen(); 56 void didEnterFullscreen();
59 void didExitFullscreen(); 57 void didExitFullscreen();
60 58
61 // Called by Fullscreen (via ChromeClient) to notify that the fullscreen 59 // Called by Fullscreen (via ChromeClient) to notify that the fullscreen
62 // element has changed. 60 // element has changed.
63 void fullscreenElementChanged(Element*, Element*); 61 void fullscreenElementChanged(Element*, Element*);
64 62
65 bool isFullscreen() { return m_fullscreenFrame; } 63 bool isFullscreen() { return m_state == State::Fullscreen; }
66 64
67 void updateSize(); 65 void updateSize();
68 66
69 void didUpdateLayout(); 67 void didUpdateLayout();
70 68
71 DECLARE_TRACE();
72
73 protected: 69 protected:
74 explicit FullscreenController(WebViewImpl*); 70 explicit FullscreenController(WebViewImpl*);
75 71
76 private: 72 private:
77 void updatePageScaleConstraints(bool removeConstraints); 73 void updatePageScaleConstraints(bool removeConstraints);
78 74
79 WebViewImpl* m_webViewImpl; 75 WebViewImpl* m_webViewImpl;
80 76
81 bool m_haveEnteredFullscreen; 77 enum class State {
82 float m_exitFullscreenPageScaleFactor; 78 Initial,
mlamouri (slow - plz ping) 2016/12/05 13:54:54 Is `Initial` used after exiting fullscreen scroll
foolip 2016/12/06 11:31:39 I have added a documentation block, can you take a
83 IntSize m_exitFullscreenScrollOffset; 79 EnteringFullscreen,
84 FloatPoint m_exitFullscreenVisualViewportOffset; 80 Fullscreen,
85 bool m_needsScrollAndScaleRestore; 81 ExitingFullscreen,
82 NeedsScrollAndScaleRestore
mlamouri (slow - plz ping) 2016/12/05 13:54:54 Add a comment explaining what that means?
83 };
84 State m_state = State::Initial;
86 85
87 // If set, the WebView is transitioning to fullscreen for this element. 86 float m_initialPageScaleFactor = 0.0f;
88 Member<Element> m_provisionalFullscreenElement; 87 IntSize m_initialScrollOffset;
89 88 FloatPoint m_initialVisualViewportOffset;
90 // If set, the WebView is in fullscreen mode for an element in this frame.
91 Member<LocalFrame> m_fullscreenFrame;
92
93 bool m_isCancelingFullscreen;
94 }; 89 };
95 90
96 } // namespace blink 91 } // namespace blink
97 92
98 #endif 93 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/ChromeClientImpl.cpp ('k') | third_party/WebKit/Source/web/FullscreenController.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698