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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java

Issue 2484293003: Use only renderer driven offsets for fullscreen state. (Closed)
Patch Set: Partially disable testControlsShownOnUnresponsiveRenderer due to timing issues with renderer logic … Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/BrowserControlsVisibilityDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
similarity index 86%
copy from chrome/android/java/src/org/chromium/chrome/browser/tab/BrowserControlsVisibilityDelegate.java
copy to chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
index bbbe518293340580df76edadc55c4dc1dfe26775..344a4d88b9886464bbc9c7e8b62ae9787193e281 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/BrowserControlsVisibilityDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
@@ -14,12 +14,13 @@ import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
import org.chromium.components.security_state.ConnectionSecurityLevel;
import org.chromium.content.browser.ContentViewCore;
import org.chromium.content_public.browser.WebContents;
-import org.chromium.content_public.common.BrowserControlsState;
/**
- * A delegate to determine visibility of the browser controls.
+ * Determines the desired visibility of the browser controls based on the current state of a given
+ * tab.
*/
-public class BrowserControlsVisibilityDelegate {
+public class TabStateBrowserControlsVisibilityDelegate
+ implements BrowserControlsVisibilityDelegate {
protected static final int MSG_ID_ENABLE_FULLSCREEN_AFTER_LOAD = 1;
/** The maximum amount of time to wait for a page to load before entering fullscreen. */
private static final long MAX_FULLSCREEN_LOAD_DELAY_MS = 3000;
@@ -34,7 +35,7 @@ public class BrowserControlsVisibilityDelegate {
* Basic constructor.
* @param tab The associated {@link Tab}.
*/
- public BrowserControlsVisibilityDelegate(Tab tab) {
+ public TabStateBrowserControlsVisibilityDelegate(Tab tab) {
mTab = tab;
mTab.addObserver(new EmptyTabObserver() {
@@ -48,6 +49,10 @@ public class BrowserControlsVisibilityDelegate {
}
};
+ private long getLoadDelayMs() {
+ return sDisableLoadingCheck ? 0 : MAX_FULLSCREEN_LOAD_DELAY_MS;
+ }
+
private void enableFullscreenAfterLoad() {
if (!mIsFullscreenWaitingForLoad) return;
@@ -64,7 +69,7 @@ public class BrowserControlsVisibilityDelegate {
if (mIsFullscreenWaitingForLoad
&& !mHandler.hasMessages(MSG_ID_ENABLE_FULLSCREEN_AFTER_LOAD)) {
mHandler.sendEmptyMessageDelayed(
- MSG_ID_ENABLE_FULLSCREEN_AFTER_LOAD, MAX_FULLSCREEN_LOAD_DELAY_MS);
+ MSG_ID_ENABLE_FULLSCREEN_AFTER_LOAD, getLoadDelayMs());
}
}
@@ -83,12 +88,7 @@ public class BrowserControlsVisibilityDelegate {
if (!isMainFrame) return;
mHandler.removeMessages(MSG_ID_ENABLE_FULLSCREEN_AFTER_LOAD);
mHandler.sendEmptyMessageDelayed(
- MSG_ID_ENABLE_FULLSCREEN_AFTER_LOAD, MAX_FULLSCREEN_LOAD_DELAY_MS);
- // If the loading check is disabled, forcibly show the controls to ensure the
- // renderer logic is properly initialized.
- if (sDisableLoadingCheck) {
- mTab.updateBrowserControlsState(BrowserControlsState.SHOWN, true);
- }
+ MSG_ID_ENABLE_FULLSCREEN_AFTER_LOAD, getLoadDelayMs());
mTab.updateFullscreenEnabledState();
}
@@ -126,9 +126,7 @@ public class BrowserControlsVisibilityDelegate {
});
}
- /**
- * @return Whether hiding browser controls is enabled or not.
- */
+ @Override
public boolean isHidingBrowserControlsEnabled() {
WebContents webContents = mTab.getWebContents();
if (webContents == null || webContents.isDestroyed()) return false;
@@ -149,18 +147,15 @@ public class BrowserControlsVisibilityDelegate {
enableHidingBrowserControls &= cvc == null || !cvc.isFocusedNodeEditable();
enableHidingBrowserControls &= !mTab.isShowingErrorPage();
enableHidingBrowserControls &= !webContents.isShowingInterstitialPage();
+ enableHidingBrowserControls &= !mTab.isRendererUnresponsive();
enableHidingBrowserControls &= (mTab.getFullscreenManager() != null);
enableHidingBrowserControls &= DeviceClassManager.enableFullscreen();
- if (!sDisableLoadingCheck) {
- enableHidingBrowserControls &= !mIsFullscreenWaitingForLoad;
- }
+ enableHidingBrowserControls &= !mIsFullscreenWaitingForLoad;
return enableHidingBrowserControls;
}
- /**
- * @return Whether showing browser controls is enabled or not.
- */
+ @Override
public boolean isShowingBrowserControlsEnabled() {
if (mTab.getFullscreenManager() == null) return true;
return !mTab.getFullscreenManager().getPersistentFullscreenMode();

Powered by Google App Engine
This is Rietveld 408576698