From 63e0caff2134494828eef4a72c1f1d5697ea57fa Mon Sep 17 00:00:00 2001 From: Ted Choc Date: Thu, 9 Apr 2015 14:23:26 -0700 Subject: [PATCH] Propagate fullscreen state to interstitial's when shown. Without this interstitials will be able to be scroll off the top controls, which is definitely not the correct behavior. BUG=474795 Review URL: https://codereview.chromium.org/1070293002 Cr-Commit-Position: refs/branch-heads/2357@{#34} Cr-Branched-From: 59d4494849b405682265ed5d3f5164573b9a939b-refs/heads/master@{#323860} --- .../java/src/org/chromium/chrome/browser/Tab.java | 5 +++++ chrome/browser/android/tab_android.cc | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java index a8151da2c3c33..a000dbdf49145 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java @@ -652,6 +652,8 @@ public void didAttachInterstitialPage() { for (TabObserver observer : mObservers) { observer.onDidAttachInterstitialPage(Tab.this); } + + updateFullscreenEnabledState(); } @Override @@ -661,6 +663,8 @@ public void didDetachInterstitialPage() { for (TabObserver observer : mObservers) { observer.onDidDetachInterstitialPage(Tab.this); } + + updateFullscreenEnabledState(); } @Override @@ -2425,6 +2429,7 @@ protected boolean isHidingTopControlsEnabled() { !AccessibilityUtil.isAccessibilityEnabled(getApplicationContext()); enableHidingTopControls &= !mIsImeShowing; enableHidingTopControls &= !mIsShowingErrorPage; + enableHidingTopControls &= !getWebContents().isShowingInterstitialPage(); return enableHidingTopControls; } diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc index 120ad488e4c77..1553094429d84 100644 --- a/chrome/browser/android/tab_android.cc +++ b/chrome/browser/android/tab_android.cc @@ -59,10 +59,12 @@ #include "components/url_fixer/url_fixer.h" #include "content/public/browser/android/content_view_core.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/interstitial_page.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" +#include "content/public/browser/render_view_host.h" #include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents.h" #include "content/public/common/top_controls_state.h" @@ -737,6 +739,14 @@ void TabAndroid::UpdateTopControlsState(JNIEnv* env, WebContents* sender = web_contents(); sender->Send(new ChromeViewMsg_UpdateTopControlsState( sender->GetRoutingID(), constraints_state, current_state, animate)); + + if (sender->ShowingInterstitialPage()) { + content::RenderViewHost* interstitial_view_host = + sender->GetInterstitialPage()->GetMainFrame()->GetRenderViewHost(); + interstitial_view_host->Send(new ChromeViewMsg_UpdateTopControlsState( + interstitial_view_host->GetRoutingID(), constraints_state, + current_state, animate)); + } } void TabAndroid::SearchByImageInNewTabAsync(JNIEnv* env, jobject obj) {