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

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

Issue 2454263003: Pipe bottom control info to ChromeFullscreenManager (Closed)
Patch Set: address comments 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 84c8a59eda50f5eb17408b1fbffe2ede92597d6a..f0c3124633af193bedba6b1449ebd084d61b2b5a 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
@@ -87,6 +87,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelImpl;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabReparentingParams;
import org.chromium.chrome.browser.util.ColorUtils;
+import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
import org.chromium.components.navigation_interception.InterceptNavigationDelegate;
import org.chromium.components.security_state.ConnectionSecurityLevel;
@@ -347,8 +348,9 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
private TabRedirectHandler mTabRedirectHandler;
private FullscreenManager mFullscreenManager;
- private float mPreviousFullscreenBrowserControlsOffsetY = Float.NaN;
- private float mPreviousFullscreenContentOffsetY = Float.NaN;
+ private float mPreviousTopControlsOffsetY = Float.NaN;
+ private float mPreviousBottomControlsOffsetY = Float.NaN;
+ private float mPreviousContentOffsetY = Float.NaN;
private int mFullscreenHungRendererToken = FullscreenManager.INVALID_TOKEN;
private boolean mIsFullscreenWaitingForLoad = false;
@@ -388,7 +390,16 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
@Override
public void onTopControlsChanged(float topControlsOffsetY, float topContentOffsetY) {
super.onTopControlsChanged(topControlsOffsetY, topContentOffsetY);
- onOffsetsChanged(topControlsOffsetY, topContentOffsetY, isShowingSadTab());
+ onOffsetsChanged(topControlsOffsetY, mPreviousBottomControlsOffsetY,
+ topContentOffsetY, isShowingSadTab());
+ }
+
+ @Override
+ public void onBottomControlsChanged(float bottomControlsOffsetY,
+ float bottomContentOffsetY) {
+ super.onBottomControlsChanged(bottomControlsOffsetY, bottomContentOffsetY);
+ onOffsetsChanged(mPreviousTopControlsOffsetY, bottomControlsOffsetY,
+ mPreviousContentOffsetY, isShowingSadTab());
}
@Override
@@ -2028,8 +2039,9 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
mInfoBarContainer = null;
}
- mPreviousFullscreenBrowserControlsOffsetY = Float.NaN;
- mPreviousFullscreenContentOffsetY = Float.NaN;
+ mPreviousTopControlsOffsetY = Float.NaN;
+ mPreviousBottomControlsOffsetY = Float.NaN;
+ mPreviousContentOffsetY = Float.NaN;
mNeedsReload = false;
@@ -2676,20 +2688,24 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
/**
* Called when offset values related with fullscreen functionality has been changed by the
* compositor.
- * @param browserControlsOffsetY The Y offset of the browser controls in physical pixels.
+ * @param topControlsOffsetY The Y offset of the top controls in physical pixels.
+ * @param bottomControlsOffsetY The Y offset of the bottom controls in physical pixels.
* @param contentOffsetY The Y offset of the content in physical pixels.
* @param isNonFullscreenPage Whether a current page is non-fullscreen page or not.
*/
private void onOffsetsChanged(
- float browserControlsOffsetY, float contentOffsetY, boolean isNonFullscreenPage) {
- mPreviousFullscreenBrowserControlsOffsetY = browserControlsOffsetY;
- mPreviousFullscreenContentOffsetY = contentOffsetY;
+ float topControlsOffsetY, float bottomControlsOffsetY, float contentOffsetY,
+ boolean isNonFullscreenPage) {
+ mPreviousTopControlsOffsetY = topControlsOffsetY;
+ mPreviousBottomControlsOffsetY = bottomControlsOffsetY;
+ mPreviousContentOffsetY = contentOffsetY;
if (mFullscreenManager == null) return;
if (isNonFullscreenPage || isNativePage()) {
mFullscreenManager.setPositionsForTabToNonFullscreen();
} else {
- mFullscreenManager.setPositionsForTab(browserControlsOffsetY, contentOffsetY);
+ mFullscreenManager.setPositionsForTab(topControlsOffsetY, bottomControlsOffsetY,
+ contentOffsetY);
}
TabModelImpl.setActualTabSwitchLatencyMetricRequired();
}
@@ -2796,12 +2812,20 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
public void setFullscreenManager(FullscreenManager manager) {
mFullscreenManager = manager;
if (mFullscreenManager != null) {
- if (Float.isNaN(mPreviousFullscreenBrowserControlsOffsetY)
- || Float.isNaN(mPreviousFullscreenContentOffsetY)) {
+ boolean topOffsetsInitialized = !Float.isNaN(mPreviousTopControlsOffsetY)
+ && !Float.isNaN(mPreviousContentOffsetY);
+ boolean bottomOffsetsInitialized =
+ !Float.isNaN(mPreviousBottomControlsOffsetY);
+ boolean isChromeHomeEnabled = FeatureUtilities.isChromeHomeEnabled();
+
+ // Make sure the dominant control offsets have been set.
+ if ((!topOffsetsInitialized && !isChromeHomeEnabled)
+ || (!bottomOffsetsInitialized && isChromeHomeEnabled)) {
mFullscreenManager.setPositionsForTabToNonFullscreen();
} else {
- mFullscreenManager.setPositionsForTab(mPreviousFullscreenBrowserControlsOffsetY,
- mPreviousFullscreenContentOffsetY);
+ mFullscreenManager.setPositionsForTab(mPreviousTopControlsOffsetY,
+ mPreviousBottomControlsOffsetY,
+ mPreviousContentOffsetY);
}
mFullscreenManager.showControlsTransient();
updateFullscreenEnabledState();
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698