Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java |
index 8b116e742ce7e45ff4d583770af93daecec4ca48..2c02d1a5c8f771bf5756a64119446ed6b37b513e 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java |
@@ -52,7 +52,9 @@ import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup; |
import org.chromium.chrome.browser.rappor.RapporServiceBridge; |
import org.chromium.chrome.browser.tab.Tab; |
+import org.chromium.chrome.browser.tab.TabDelegateFactory; |
import org.chromium.chrome.browser.tab.TabIdManager; |
+import org.chromium.chrome.browser.tabmodel.ChromeTabCreator; |
import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; |
import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; |
import org.chromium.chrome.browser.tabmodel.TabModelObserver; |
@@ -68,6 +70,7 @@ import org.chromium.content_public.browser.LoadUrlParams; |
import org.chromium.content_public.browser.WebContents; |
import org.chromium.content_public.common.Referrer; |
import org.chromium.ui.base.PageTransition; |
+import org.chromium.ui.base.WindowAndroid; |
/** |
* The activity for custom tabs. It will be launched on top of a client's task. |
@@ -128,6 +131,22 @@ public class CustomTabActivity extends ChromeActivity { |
} |
} |
+ private static class CustomTabCreator extends ChromeTabCreator { |
+ private final boolean mSupportsUrlBarHiding; |
+ |
+ public CustomTabCreator( |
+ ChromeActivity activity, WindowAndroid nativeWindow, boolean incognito, |
+ boolean supportsUrlBarHiding) { |
+ super(activity, nativeWindow, incognito); |
+ mSupportsUrlBarHiding = supportsUrlBarHiding; |
+ } |
+ |
+ @Override |
+ public TabDelegateFactory createDefaultTabDelegateFactory() { |
+ return new CustomTabDelegateFactory(mSupportsUrlBarHiding); |
+ } |
+ } |
+ |
private PageLoadMetricsObserver mMetricsObserver; |
// Only the normal tab model is observed because there is no incognito tabmodel in Custom Tabs. |
@@ -271,6 +290,13 @@ public class CustomTabActivity extends ChromeActivity { |
getTaskId(), getSavedInstanceState() != null); |
setTabModelSelector(new TabModelSelectorImpl( |
this, persistencePolicy, getWindowAndroid(), false)); |
+ setTabCreators( |
+ new CustomTabCreator( |
+ this, getWindowAndroid(), false, |
+ mIntentDataProvider.shouldEnableUrlBarHiding()), |
+ new CustomTabCreator( |
+ this, getWindowAndroid(), true, |
+ mIntentDataProvider.shouldEnableUrlBarHiding())); |
getToolbarManager().setCloseButtonDrawable(mIntentDataProvider.getCloseButtonDrawable()); |
getToolbarManager().setShowTitle(mIntentDataProvider.getTitleVisibilityState() |