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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.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/Tab.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
index bcf321a4fa919708db328f9d32f82e558b546fbc..d66c51042af0e6e5656f349585d95fce9f7c7139 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
@@ -305,6 +305,9 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
*/
private boolean mIsHidden = true;
+ /** Whether the renderer is currently unresponsive. */
+ private boolean mIsRendererUnresponsive;
+
/**
* The last time this tab was shown or the time of its initialization if it wasn't yet shown.
*/
@@ -344,7 +347,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
private float mPreviousTopControlsOffsetY = Float.NaN;
private float mPreviousBottomControlsOffsetY = Float.NaN;
private float mPreviousContentOffsetY = Float.NaN;
- private int mFullscreenHungRendererToken = FullscreenManager.INVALID_TOKEN;
/**
* Indicates whether this tab has been detached from its activity and the corresponding
@@ -1322,8 +1324,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
// Clean up any fullscreen state that might impact other tabs.
if (mFullscreenManager != null) {
mFullscreenManager.setPersistentFullscreenMode(false);
- mFullscreenManager.hideControlsPersistent(mFullscreenHungRendererToken);
- mFullscreenHungRendererToken = FullscreenManager.INVALID_TOKEN;
}
if (mTabUma != null) mTabUma.onHide();
@@ -1644,7 +1644,7 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
updateTitle();
removeSadTabIfPresent();
- clearHungRendererState();
+ if (mIsRendererUnresponsive) handleRendererResponsive();
if (mTabUma != null) mTabUma.onPageLoadStarted();
@@ -2587,19 +2587,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
}
/**
- * Clears hung renderer state.
- */
- private void clearHungRendererState() {
- if (mFullscreenManager == null) return;
-
- if (mFullscreenHungRendererToken != FullscreenManager.INVALID_TOKEN) {
- mFullscreenManager.hideControlsPersistent(mFullscreenHungRendererToken);
- mFullscreenHungRendererToken = FullscreenManager.INVALID_TOKEN;
- updateFullscreenEnabledState();
- }
- }
-
- /**
* Called when offset values related with fullscreen functionality has been changed by the
* compositor.
* @param topControlsOffsetY The Y offset of the top controls in physical pixels.
@@ -2710,13 +2697,10 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
*/
@BrowserControlsStateEnum
public int getBrowserControlsStateConstraints() {
- boolean enableHidingBrowserControls = isHidingBrowserControlsEnabled();
- boolean enableShowingBrowserControls = isShowingBrowserControlsEnabled();
-
int constraints = BrowserControlsState.BOTH;
- if (!enableShowingBrowserControls) {
+ if (!isShowingBrowserControlsEnabled()) {
constraints = BrowserControlsState.HIDDEN;
- } else if (!enableHidingBrowserControls) {
+ } else if (!isHidingBrowserControlsEnabled()) {
constraints = BrowserControlsState.SHOWN;
}
return constraints;
@@ -2744,7 +2728,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
mPreviousBottomControlsOffsetY,
mPreviousContentOffsetY);
}
- mFullscreenManager.showControlsTransient();
updateFullscreenEnabledState();
}
@@ -3101,16 +3084,24 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
}
void handleRendererUnresponsive() {
+ mIsRendererUnresponsive = true;
if (mFullscreenManager == null) return;
- mFullscreenHungRendererToken =
- mFullscreenManager.showControlsPersistentAndClearOldToken(
- mFullscreenHungRendererToken);
+
+ mFullscreenManager.setPositionsForTabToNonFullscreen();
+ updateBrowserControlsState(BrowserControlsState.SHOWN, false);
}
void handleRendererResponsive() {
+ mIsRendererUnresponsive = false;
if (mFullscreenManager == null) return;
- mFullscreenManager.hideControlsPersistent(mFullscreenHungRendererToken);
- mFullscreenHungRendererToken = FullscreenManager.INVALID_TOKEN;
+ updateFullscreenEnabledState();
+ }
+
+ /**
+ * @return Whether the renderer is currently unresponsive.
+ */
+ protected boolean isRendererUnresponsive() {
+ return mIsRendererUnresponsive;
}
/**

Powered by Google App Engine
This is Rietveld 408576698