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 148c8b68598da141ba9196b36af5e0febbede90c..d0ca4d7ea37f223005f1a254f093d06c40dc5973 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 |
@@ -17,6 +17,8 @@ import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter; |
import org.chromium.chrome.browser.compositor.overlays.SceneOverlay; |
import org.chromium.chrome.browser.device.DeviceClassManager; |
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; |
+import org.chromium.chrome.browser.tab.Tab; |
+import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
import org.chromium.chrome.browser.widget.ClipDrawableProgressBar.DrawingInfo; |
import org.chromium.chrome.browser.widget.ControlContainer; |
import org.chromium.ui.base.DeviceFormFactor; |
@@ -45,6 +47,9 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay |
/** A LayoutRenderHost for accessing drawing information about the toolbar. */ |
private LayoutRenderHost mRenderHost; |
+ /** Used to get information about the current selected tab. */ |
+ private TabModelSelector mTabModelSelector; |
+ |
/** |
* @param context An Android context to use. |
* @param provider A LayoutProvider for accessing the current layout. |
@@ -58,6 +63,13 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay |
} |
/** |
+ * @param tabModelSelector A TabModelSelector so this class can know about the current tab. |
+ */ |
+ public void setTabModelSelector(TabModelSelector tabModelSelector) { |
+ mTabModelSelector = tabModelSelector; |
+ } |
+ |
+ /** |
* Update the toolbar and progress bar layers. |
* |
* @param topControlsBackgroundColor The background color of the top controls. |
@@ -94,9 +106,17 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay |
useTexture = false; |
} |
+ Tab currentTab = null; |
+ if (mTabModelSelector != null) currentTab = mTabModelSelector.getCurrentTab(); |
+ |
+ boolean needsToolbarShadow = fullscreenManager.isTopControlsAndroidViewHidden(); |
+ if (currentTab != null && currentTab.getNativePage() != null) { |
+ needsToolbarShadow &= currentTab.getNativePage().needsToolbarShadow(); |
+ } |
+ |
nativeUpdateToolbarLayer(mNativePtr, resourceManager, R.id.control_container, |
- topControlsBackgroundColor, R.drawable.textbox, topControlsUrlBarAlpha, offset, |
- useTexture, forceHideAndroidTopControls); |
+ R.drawable.toolbar_shadow, topControlsBackgroundColor, R.drawable.textbox, |
+ topControlsUrlBarAlpha, offset, useTexture, needsToolbarShadow); |
if (mProgressBarDrawingInfo == null) return; |
nativeUpdateProgressBar(mNativePtr, |
@@ -234,6 +254,7 @@ public class ToolbarSceneLayer extends SceneOverlayLayer implements SceneOverlay |
long nativeToolbarSceneLayer, |
ResourceManager resourceManager, |
int resourceId, |
+ int shadowResourceId, |
int toolbarBackgroundColor, |
int urlBarResourceId, |
float urlBarAlpha, |