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 89747e1ca8484d9aaaed164b5b5b5aab0f019871..9eb7b3066bf1e00a6abd8aff529a98b011257b41 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 |
@@ -5,6 +5,7 @@ |
package org.chromium.chrome.browser.customtabs; |
import android.app.PendingIntent; |
+import android.content.Context; |
import android.content.Intent; |
import android.content.SharedPreferences; |
import android.graphics.Bitmap; |
@@ -16,6 +17,7 @@ import android.os.Bundle; |
import android.os.Handler; |
import android.os.IBinder; |
import android.os.StrictMode; |
+import android.provider.Browser; |
import android.support.customtabs.CustomTabsCallback; |
import android.support.customtabs.CustomTabsIntent; |
import android.support.customtabs.CustomTabsSessionToken; |
@@ -369,7 +371,7 @@ public class CustomTabActivity extends ChromeActivity { |
@Override |
public void finishNativeInitialization() { |
- FirstRunSignInProcessor.start(this); |
+ if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this); |
final CustomTabsConnection connection = CustomTabsConnection.getInstance(getApplication()); |
// If extra headers have been passed, cancel any current prerender, as |
@@ -932,7 +934,11 @@ public class CustomTabActivity extends ChromeActivity { |
StrictMode.allowThreadDiskReads(); |
StrictMode.allowThreadDiskWrites(); |
try { |
- startActivity(intent, startActivityOptions); |
+ if (mIntentDataProvider.isInfoPage()) { |
+ IntentHandler.startChromeLauncherActivityForTrustedIntent(intent, this); |
+ } else { |
+ startActivity(intent, startActivityOptions); |
+ } |
} finally { |
StrictMode.setThreadPolicy(oldPolicy); |
} |
@@ -988,4 +994,29 @@ public class CustomTabActivity extends ChromeActivity { |
super.initializeToolbar(); |
if (mIntentDataProvider.isMediaViewer()) getToolbarManager().disableShadow(); |
} |
+ |
+ /** |
+ * Show the web page with CustomTabActivity, without any navigation control. |
+ * Used in showing the terms of services page or help pages for Chrome. |
+ * @param context The current activity context. |
+ * @param url The url of the web page. |
+ */ |
+ public static void showInfoPage(Context context, String url) { |
+ // TODO(xingliu): The title text will be the html document title, figure out if we want to |
+ // use Chrome strings here as EmbedContentViewActivity does. |
+ CustomTabsIntent customTabIntent = new CustomTabsIntent.Builder() |
+ .setShowTitle(true) |
+ .setToolbarColor(context.getResources().getColor(R.color.dark_action_bar_color)) |
+ .build(); |
+ customTabIntent.intent.setData(Uri.parse(url)); |
+ |
+ Intent intent = ChromeLauncherActivity.createCustomTabActivityIntent( |
+ context, customTabIntent.intent, false); |
+ intent.setPackage(context.getPackageName()); |
+ intent.putExtra(CustomTabIntentDataProvider.EXTRA_IS_INFO_PAGE, true); |
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); |
+ IntentHandler.addTrustedIntentExtras(intent, context); |
+ |
+ context.startActivity(intent); |
+ } |
} |