| 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 41e0e68a09784f7a33a628e2d18788cca11d9da3..efeef0faa2af439ad728ccd13b87159087bf80c6 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
|
| @@ -6,6 +6,8 @@ package org.chromium.chrome.browser.customtabs;
|
|
|
| import android.content.Intent;
|
| import android.net.Uri;
|
| +import android.os.IBinder;
|
| +import android.support.customtabs.CustomTabsIntent;
|
| import android.text.TextUtils;
|
| import android.view.MenuItem;
|
| import android.view.View;
|
| @@ -30,6 +32,7 @@ import org.chromium.chrome.browser.document.BrandColorUtils;
|
| import org.chromium.chrome.browser.tabmodel.SingleTabModelSelector;
|
| import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
|
| import org.chromium.chrome.browser.toolbar.ToolbarControlContainer;
|
| +import org.chromium.chrome.browser.util.IntentUtils;
|
| import org.chromium.chrome.browser.widget.findinpage.FindToolbarManager;
|
| import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content_public.browser.LoadUrlParams;
|
| @@ -45,7 +48,7 @@ public class CustomTabActivity extends ChromeActivity {
|
| private CustomTab mTab;
|
| private FindToolbarManager mFindToolbarManager;
|
| private CustomTabIntentDataProvider mIntentDataProvider;
|
| - private long mSessionId;
|
| + private IBinder mSession;
|
| private CustomTabContentHandler mCustomTabContentHandler;
|
|
|
| // This is to give the right package name while using the client's resources during an
|
| @@ -77,12 +80,9 @@ public class CustomTabActivity extends ChromeActivity {
|
| return false;
|
| }
|
|
|
| - long intentSessionId = intent.getLongExtra(
|
| - CustomTabIntentDataProvider.EXTRA_CUSTOM_TABS_SESSION_ID,
|
| - CustomTabIntentDataProvider.INVALID_SESSION_ID);
|
| - if (intentSessionId == CustomTabIntentDataProvider.INVALID_SESSION_ID) return false;
|
| + IBinder session = IntentUtils.safeGetBinderExtra(intent, CustomTabsIntent.EXTRA_SESSION);
|
| + if (session == null || !session.equals(sActiveContentHandler.getSession())) return false;
|
|
|
| - if (sActiveContentHandler.getSessionId() != intentSessionId) return false;
|
| String url = IntentHandler.getUrlFromIntent(intent);
|
| if (TextUtils.isEmpty(url)) return false;
|
| sActiveContentHandler.loadUrlAndTrackFromTimestamp(new LoadUrlParams(url),
|
| @@ -94,7 +94,7 @@ public class CustomTabActivity extends ChromeActivity {
|
| public void onStart() {
|
| super.onStart();
|
| CustomTabsConnection.getInstance(getApplication())
|
| - .keepAliveForSessionId(mIntentDataProvider.getSessionId(),
|
| + .keepAliveForSession(mIntentDataProvider.getSession(),
|
| mIntentDataProvider.getKeepAliveServiceIntent());
|
| }
|
|
|
| @@ -102,7 +102,7 @@ public class CustomTabActivity extends ChromeActivity {
|
| public void onStop() {
|
| super.onStop();
|
| CustomTabsConnection.getInstance(getApplication())
|
| - .dontKeepAliveForSessionId(mIntentDataProvider.getSessionId());
|
| + .dontKeepAliveForSession(mIntentDataProvider.getSession());
|
| }
|
|
|
| @Override
|
| @@ -126,7 +126,7 @@ public class CustomTabActivity extends ChromeActivity {
|
| super.postInflationStartup();
|
| getToolbarManager().setCloseButtonIcon(mIntentDataProvider.getCloseButtonIconResId());
|
| getToolbarManager().setShowTitle(mIntentDataProvider.getTitleVisibilityState()
|
| - == CustomTabIntentDataProvider.CUSTOM_TAB_SHOW_PAGE_TITLE);
|
| + == CustomTabIntentDataProvider.SHOW_PAGE_TITLE);
|
| int toolbarColor = mIntentDataProvider.getToolbarColor();
|
| getToolbarManager().updatePrimaryColor(toolbarColor);
|
| if (toolbarColor != getResources().getColor(R.color.default_primary_color)) {
|
| @@ -153,16 +153,15 @@ public class CustomTabActivity extends ChromeActivity {
|
| public void finishNativeInitialization() {
|
| String url = IntentHandler.getUrlFromIntent(getIntent());
|
| String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(getIntent(), this);
|
| - mSessionId = mIntentDataProvider.getSessionId();
|
| + mSession = mIntentDataProvider.getSession();
|
| // If extra headers have been passed, cancel any current prerender, as
|
| // prerendering doesn't support extra headers.
|
| if (IntentHandler.getExtraHeadersFromIntent(getIntent()) != null) {
|
| CustomTabsConnection.getInstance(getApplication())
|
| - .takePrerenderedUrl(mSessionId, "", null);
|
| + .takePrerenderedUrl(mSession, "", null);
|
| }
|
|
|
| - mTab = new CustomTab(
|
| - this, getWindowAndroid(), mSessionId, url, referrer, Tab.INVALID_TAB_ID);
|
| + mTab = new CustomTab(this, getWindowAndroid(), mSession, url, referrer, Tab.INVALID_TAB_ID);
|
| getTabModelSelector().setTab(mTab);
|
|
|
| ToolbarControlContainer controlContainer = (ToolbarControlContainer) findViewById(
|
| @@ -191,8 +190,8 @@ public class CustomTabActivity extends ChromeActivity {
|
| }
|
|
|
| @Override
|
| - public long getSessionId() {
|
| - return mSessionId;
|
| + public IBinder getSession() {
|
| + return mSession;
|
| }
|
|
|
| @Override
|
|
|