| Index: content/browser/renderer_host/render_widget_host_view_android.h
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
|
| index 6846edce443679b5027edc4a970db758f0052c54..9b2e0b85caadfa0bbe97b4c1345cc01e04a9a5f2 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_android.h
|
| +++ b/content/browser/renderer_host/render_widget_host_view_android.h
|
| @@ -161,6 +161,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
|
| std::unique_ptr<SyntheticGestureTarget> CreateSyntheticGestureTarget()
|
| override;
|
| void OnDidNavigateMainFrameToNewPage() override;
|
| + void OnFullscreenStateChanged(bool entered_fullscreen) override;
|
| void SetNeedsBeginFrames(bool needs_begin_frames) override;
|
| cc::FrameSinkId GetFrameSinkId() override;
|
| cc::FrameSinkId FrameSinkIdAtPoint(cc::SurfaceHittestDelegate* delegate,
|
| @@ -238,6 +239,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
|
| // Non-virtual methods
|
| void SetContentViewCore(ContentViewCoreImpl* content_view_core);
|
| SkColor GetCachedBackgroundColor() const;
|
| + bool CanShowThumbnailPlaceholder() const;
|
| void SendKeyEvent(const NativeWebKeyboardEvent& event);
|
| void SendMouseEvent(const ui::MotionEventAndroid&, int action_button);
|
| void SendMouseWheelEvent(const blink::WebMouseWheelEvent& event);
|
| @@ -304,6 +306,14 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
|
| cc::SurfaceId SurfaceIdForTesting() const override;
|
|
|
| private:
|
| + enum class FullscreenState {
|
| + kNotFullscreen,
|
| + kEnteringFullscreen,
|
| + kFullscreen,
|
| + kExitingFullscreen,
|
| + kFullscreenRotation,
|
| + };
|
| +
|
| void RunAckCallbacks();
|
|
|
| void SendReclaimCompositorResources(bool is_swap_ack);
|
| @@ -349,6 +359,8 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
|
|
|
| WebContentsAccessibilityAndroid* GetWebContentsAccessibilityAndroid() const;
|
|
|
| + void UpdateFullscreenState();
|
| +
|
| // The model object.
|
| RenderWidgetHostImpl* host_;
|
|
|
| @@ -428,6 +440,21 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
|
| float prev_top_shown_pix_;
|
| float prev_bottom_shown_pix_;
|
|
|
| + FullscreenState fullscreen_state_ = FullscreenState::kNotFullscreen;
|
| +
|
| + // While we could simply take a mismatch in fullscreen states as the trigger
|
| + // for a transition, and assume the transition to have finished once the
|
| + // fullscreen states and sizes match, we have cases where we reach this
|
| + // consistent state before the physical backing size changes. Therefore we
|
| + // defer assuming the transition to be completed until a resize event is
|
| + // received, which is marked by |fullscreen_transition_awaiting_resize_|.
|
| + //
|
| + // Note that this assumes that every transition will be followed by a change
|
| + // in the view's physical backing size.
|
| + bool fullscreen_transition_awaiting_resize_ = false;
|
| + bool current_frame_is_fullscreen_ = false;
|
| + bool web_contents_is_fullscreen_ = false;
|
| +
|
| cc::mojom::MojoCompositorFrameSinkClient* renderer_compositor_frame_sink_ =
|
| nullptr;
|
|
|
|
|