Chromium Code Reviews| Index: content/browser/web_contents/web_contents_impl.cc |
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
| index 88f58a782fd7544ae316343b06dc0b6dd50546c2..6602aed312d0e1dde99dd5ac03ccc0fa9ab37e55 100644 |
| --- a/content/browser/web_contents/web_contents_impl.cc |
| +++ b/content/browser/web_contents/web_contents_impl.cc |
| @@ -1656,11 +1656,13 @@ void WebContentsImpl::EnterFullscreenMode(const GURL& origin) { |
| delegate_->EnterFullscreenModeForTab(this, origin); |
| FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
| - DidToggleFullscreenModeForTab(IsFullscreenForCurrentTab( |
| - GetRenderViewHost()->GetWidget()))); |
| + DidToggleFullscreenModeForTab( |
| + IsFullscreenForCurrentTab( |
| + GetRenderViewHost()->GetWidget()), |
| + false)); |
| } |
| -void WebContentsImpl::ExitFullscreenMode() { |
| +void WebContentsImpl::ExitFullscreenMode(bool will_cause_resize) { |
| // This method is being called to leave renderer-initiated fullscreen mode. |
| // Make sure any existing fullscreen widget is shut down first. |
| RenderWidgetHostView* const widget_view = GetFullscreenRenderWidgetHostView(); |
| @@ -1684,14 +1686,18 @@ void WebContentsImpl::ExitFullscreenMode() { |
| // and then the contents entering "tab fullscreen". Exiting the contents |
| // "tab fullscreen" then won't have the side effect of the view resizing, |
| // hence the explicit call here is required. |
|
Avi (use Gerrit)
2016/01/05 16:17:57
Does this comment need a change? It talks about al
bokan
2016/01/05 17:15:47
I've made it clearer that this is only for the cas
|
| - if (RenderWidgetHostView* rwh_view = GetRenderWidgetHostView()) { |
| - if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) |
| - render_widget_host->WasResized(); |
| + if (!will_cause_resize) { |
| + if (RenderWidgetHostView* rwhv = GetRenderWidgetHostView()) { |
| + if (RenderWidgetHost* render_widget_host = rwhv->GetRenderWidgetHost()) |
| + render_widget_host->WasResized(); |
| + } |
| } |
| FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
| - DidToggleFullscreenModeForTab(IsFullscreenForCurrentTab( |
| - GetRenderViewHost()->GetWidget()))); |
| + DidToggleFullscreenModeForTab( |
| + IsFullscreenForCurrentTab( |
| + GetRenderViewHost()->GetWidget()), |
| + will_cause_resize)); |
| } |
| bool WebContentsImpl::IsFullscreenForCurrentTab( |
| @@ -2860,10 +2866,10 @@ void WebContentsImpl::HasManifest(const HasManifestCallback& callback) { |
| manifest_manager_host_->HasManifest(GetMainFrame(), callback); |
| } |
| -void WebContentsImpl::ExitFullscreen() { |
| +void WebContentsImpl::ExitFullscreen(bool will_cause_resize) { |
| // Clean up related state and initiate the fullscreen exit. |
| GetRenderViewHost()->GetWidget()->RejectMouseLockOrUnlockIfNecessary(); |
| - ExitFullscreenMode(); |
| + ExitFullscreenMode(will_cause_resize); |
| } |
| void WebContentsImpl::ResumeLoadingCreatedWebContents() { |
| @@ -3046,7 +3052,7 @@ void WebContentsImpl::DidNavigateMainFramePreCommit( |
| return; |
| } |
| if (IsFullscreenForCurrentTab(GetRenderViewHost()->GetWidget())) |
| - ExitFullscreen(); |
| + ExitFullscreen(false); |
| DCHECK(!IsFullscreenForCurrentTab(GetRenderViewHost()->GetWidget())); |
| } |
| @@ -3918,7 +3924,7 @@ void WebContentsImpl::RenderViewTerminated(RenderViewHost* rvh, |
| // Ensure fullscreen mode is exited in the |delegate_| since a crashed |
| // renderer may not have made a clean exit. |
| if (IsFullscreenForCurrentTab(GetRenderViewHost()->GetWidget())) |
| - ExitFullscreenMode(); |
| + ExitFullscreenMode(false); |
| // Cancel any visible dialogs so they are not left dangling over the sad tab. |
| CancelActiveAndPendingDialogs(); |