| Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/SeparateTaskManagedCustomTabActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/SeparateTaskManagedCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/SeparateTaskManagedCustomTabActivity.java
|
| index 47c3cd2c0a4caa3f0eb4eb3bc8fa958a612b1fc1..4e69d004d240bc084ac486d037ff66003ef1ec76 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/SeparateTaskManagedCustomTabActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/SeparateTaskManagedCustomTabActivity.java
|
| @@ -22,6 +22,8 @@ import org.chromium.chrome.browser.webapps.ActivityAssigner;
|
| * limited number of activities that we will cycle through.
|
| */
|
| public class SeparateTaskManagedCustomTabActivity extends SeparateTaskCustomTabActivity {
|
| + private static final String FORCE_FINISH = "CCT.ForceFinish";
|
| +
|
| // Time at which an intent was received and handled.
|
| private long mIntentHandlingTimeMs = 0;
|
|
|
| @@ -38,6 +40,10 @@ public class SeparateTaskManagedCustomTabActivity extends SeparateTaskCustomTabA
|
| @Override
|
| public void onNewIntent(Intent intent) {
|
| mIntentHandlingTimeMs = SystemClock.uptimeMillis();
|
| + if (intent != null && intent.getBooleanExtra(FORCE_FINISH, false)) {
|
| + finish();
|
| + return;
|
| + }
|
| super.onNewIntent(intent);
|
| }
|
|
|
| @@ -80,4 +86,13 @@ public class SeparateTaskManagedCustomTabActivity extends SeparateTaskCustomTabA
|
| String indexString = className.substring(baseClassName.length());
|
| return Integer.parseInt(indexString);
|
| }
|
| +
|
| + @Override
|
| + public void finishAndClose() {
|
| + Intent intent = new Intent(getIntent());
|
| + intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK);
|
| + intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
|
| + intent.putExtra(FORCE_FINISH, true);
|
| + startActivity(intent);
|
| + }
|
| }
|
|
|