| Index: third_party/WebKit/Source/web/FullscreenController.h
|
| diff --git a/third_party/WebKit/Source/web/FullscreenController.h b/third_party/WebKit/Source/web/FullscreenController.h
|
| index 3250456888119ef5a3bfb6bdcb77d4bd6de01a26..8f1f00e712f1d6c9afee565676e269691831a4d9 100644
|
| --- a/third_party/WebKit/Source/web/FullscreenController.h
|
| +++ b/third_party/WebKit/Source/web/FullscreenController.h
|
| @@ -33,24 +33,24 @@
|
|
|
| #include "platform/geometry/FloatPoint.h"
|
| #include "platform/geometry/IntSize.h"
|
| -#include "platform/heap/Handle.h"
|
| -#include "wtf/RefPtr.h"
|
| +#include "wtf/Vector.h"
|
| +#include <memory>
|
|
|
| namespace blink {
|
|
|
| class Element;
|
| +class FullscreenCallbacks;
|
| class LocalFrame;
|
| class WebViewImpl;
|
|
|
| -class FullscreenController final
|
| - : public GarbageCollected<FullscreenController> {
|
| +class FullscreenController {
|
| public:
|
| - static FullscreenController* create(WebViewImpl*);
|
| + static std::unique_ptr<FullscreenController> create(WebViewImpl*);
|
|
|
| // Called by Fullscreen (via ChromeClient) to request entering or exiting
|
| // fullscreen.
|
| - void enterFullscreenForElement(Element*);
|
| - void exitFullscreen(LocalFrame*);
|
| + void enterFullscreen(LocalFrame&, std::unique_ptr<FullscreenCallbacks>);
|
| + void exitFullscreen(LocalFrame&);
|
|
|
| // Called by content::RenderWidget (via WebWidget) to notify that we've
|
| // entered or exited fullscreen. This can be because we requested it, or it
|
| @@ -62,14 +62,12 @@ class FullscreenController final
|
| // element has changed.
|
| void fullscreenElementChanged(Element*, Element*);
|
|
|
| - bool isFullscreen() { return m_fullscreenFrame; }
|
| + bool isFullscreen() { return m_state == State::kFullscreen; }
|
|
|
| void updateSize();
|
|
|
| void didUpdateLayout();
|
|
|
| - DECLARE_TRACE();
|
| -
|
| protected:
|
| explicit FullscreenController(WebViewImpl*);
|
|
|
| @@ -78,19 +76,21 @@ class FullscreenController final
|
|
|
| WebViewImpl* m_webViewImpl;
|
|
|
| - bool m_haveEnteredFullscreen;
|
| - float m_exitFullscreenPageScaleFactor;
|
| - IntSize m_exitFullscreenScrollOffset;
|
| - FloatPoint m_exitFullscreenVisualViewportOffset;
|
| - bool m_needsScrollAndScaleRestore;
|
| -
|
| - // If set, the WebView is transitioning to fullscreen for this element.
|
| - Member<Element> m_provisionalFullscreenElement;
|
| -
|
| - // If set, the WebView is in fullscreen mode for an element in this frame.
|
| - Member<LocalFrame> m_fullscreenFrame;
|
| -
|
| - bool m_isCancelingFullscreen;
|
| + enum class State {
|
| + kInitial,
|
| + kEnteringFullscreen,
|
| + kFullscreen,
|
| + kExitingFullscreen,
|
| + kNeedsScrollAndScaleRestore
|
| + };
|
| + State m_state = State::kInitial;
|
| +
|
| + float m_initialPageScaleFactor = 0.0f;
|
| + IntSize m_initialScrollOffset;
|
| + FloatPoint m_initialVisualViewportOffset;
|
| +
|
| + using CallbacksList = Vector<std::unique_ptr<FullscreenCallbacks>>;
|
| + CallbacksList m_callbacksList;
|
| };
|
|
|
| } // namespace blink
|
|
|