| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
|
| index dca21ab25cf2137f034dcf6b1c1aedfe1ef3e34a..4e65c0f6e1334bead7ba1911b30f89173b46e650 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
|
| @@ -45,9 +45,6 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay
|
| /** A LayoutRenderHost for accessing drawing information about the toolbar. */
|
| private LayoutRenderHost mRenderHost;
|
|
|
| - /** The size of the viewport (full-screen minus status bar). */
|
| - private RectF mViewport;
|
| -
|
| /**
|
| * @param context An Android context to use.
|
| * @param provider A LayoutProvider for accessing the current layout.
|
| @@ -58,7 +55,6 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay
|
| mContext = context;
|
| mLayoutProvider = provider;
|
| mRenderHost = renderHost;
|
| - mViewport = new RectF();
|
| }
|
|
|
| /**
|
| @@ -71,10 +67,12 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay
|
| * @param forceHideAndroidBrowserControls True if the Android browser controls are being hidden.
|
| * @param sizingFlags The sizing flags for the toolbar.
|
| * @param isTablet If the device is a tablet.
|
| + * @param windowHeight The height of the window.
|
| */
|
| private void update(int browserControlsBackgroundColor, float browserControlsUrlBarAlpha,
|
| ChromeFullscreenManager fullscreenManager, ResourceManager resourceManager,
|
| - boolean forceHideAndroidBrowserControls, ViewportMode viewportMode, boolean isTablet) {
|
| + boolean forceHideAndroidBrowserControls, ViewportMode viewportMode, boolean isTablet,
|
| + float windowHeight) {
|
| if (!DeviceClassManager.enableFullscreen()) return;
|
|
|
| if (fullscreenManager == null) return;
|
| @@ -86,21 +84,21 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay
|
| assert mProgressBarDrawingInfo == null;
|
| }
|
|
|
| - mLayoutProvider.getViewportPixel(mViewport);
|
| -
|
| // Texture is always used unless it is completely off-screen.
|
| boolean useTexture = !fullscreenManager.areBrowserControlsOffScreen()
|
| && viewportMode != ViewportMode.ALWAYS_FULLSCREEN;
|
| boolean showShadow = fullscreenManager.drawControlsAsTexture()
|
| || forceHideAndroidBrowserControls;
|
|
|
| - // Note that the bottom controls offset is not passed here. Conveniently, the viewport
|
| - // size changes will push the controls off screen when they are at the bottom; see
|
| - // mViewport.height().
|
| + // Use either top or bottom offset depending on the browser controls state.
|
| + float controlsOffset = fullscreenManager.areBrowserControlsAtBottom()
|
| + ? fullscreenManager.getBottomControlOffset()
|
| + : fullscreenManager.getTopControlOffset();
|
| +
|
| nativeUpdateToolbarLayer(mNativePtr, resourceManager, R.id.control_container,
|
| browserControlsBackgroundColor, R.drawable.textbox, browserControlsUrlBarAlpha,
|
| - fullscreenManager.getTopControlOffset(), mViewport.height(), useTexture,
|
| - showShadow, fullscreenManager.areBrowserControlsAtBottom());
|
| + controlsOffset, windowHeight, useTexture, showShadow,
|
| + fullscreenManager.areBrowserControlsAtBottom());
|
|
|
| if (mProgressBarDrawingInfo == null) return;
|
| nativeUpdateProgressBar(mNativePtr,
|
| @@ -141,8 +139,8 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay
|
| // SceneOverlay implementation.
|
|
|
| @Override
|
| - public SceneOverlayLayer getUpdatedSceneOverlayTree(LayerTitleCache layerTitleCache,
|
| - ResourceManager resourceManager, float yOffset) {
|
| + public SceneOverlayLayer getUpdatedSceneOverlayTree(RectF viewport, RectF visibleViewport,
|
| + LayerTitleCache layerTitleCache, ResourceManager resourceManager, float yOffset) {
|
| boolean forceHideBrowserControlsAndroidView =
|
| mLayoutProvider.getActiveLayout().forceHideBrowserControlsAndroidView();
|
| ViewportMode viewportMode = mLayoutProvider.getActiveLayout().getViewportMode();
|
| @@ -150,7 +148,7 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay
|
| update(mRenderHost.getBrowserControlsBackgroundColor(),
|
| mRenderHost.getBrowserControlsUrlBarAlpha(), mLayoutProvider.getFullscreenManager(),
|
| resourceManager, forceHideBrowserControlsAndroidView, viewportMode,
|
| - DeviceFormFactor.isTablet(mContext));
|
| + DeviceFormFactor.isTablet(mContext), viewport.height());
|
|
|
| return this;
|
| }
|
|
|