| Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
|
| index d6f74bcde7396435f410b9c4333ca0b24ad235da..254a3c01086eced6705b77be521e2dcd7a7b0e6d 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java
|
| @@ -138,6 +138,21 @@ public class WebappLauncherActivity extends Activity {
|
| ? ActivityAssigner.WEBAPK_NAMESPACE : ActivityAssigner.WEBAPP_NAMESPACE;
|
| int activityIndex = ActivityAssigner.instance(namespace).assign(info.id());
|
| activityName += String.valueOf(activityIndex);
|
| +
|
| + // Finishes the old activity if it has been assigned to a different WebappActivity. See
|
| + // crbug.com/702998.
|
| + for (WeakReference<Activity> activityRef : ApplicationStatus.getRunningActivities()) {
|
| + Activity activity = activityRef.get();
|
| + if (!(activity instanceof WebappActivity)
|
| + || !activity.getClass().getName().equals(activityName)) {
|
| + continue;
|
| + }
|
| + WebappActivity webappActivity = (WebappActivity) activity;
|
| + if (!TextUtils.equals(webappActivity.mWebappInfo.id(), info.id())) {
|
| + activity.finish();
|
| + }
|
| + break;
|
| + }
|
| }
|
|
|
| // Create an intent to launch the Webapp in an unmapped WebappActivity.
|
|
|