| 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 6d86fe2cfa7f4c3d2952793c2ff020feafe079be..a232f04b66ad689b7d37309dd32e758ad99464f6 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
|
| @@ -196,19 +196,19 @@
|
| launchIntent.setData(Uri.parse(WebappActivity.WEBAPP_SCHEME + "://" + info.id()));
|
| launchIntent.setFlags(
|
| Intent.FLAG_ACTIVITY_NEW_TASK | ApiCompatibilityUtils.getActivityNewDocumentFlag());
|
| - // Setting FLAG_ACTIVITY_CLEAR_TOP handles 2 edge cases:
|
| - // - If a legacy PWA is launching from a notification, we want to ensure that the URL being
|
| - // launched is the URL in the intent. If a paused WebappActivity exists for this id,
|
| - // then by default it will be focused and we have no way of sending the desired URL to
|
| - // it (the intent is swallowed). As a workaround, set the CLEAR_TOP flag to ensure that
|
| - // the existing Activity is cleared and relaunched with this intent.
|
| - // - If a WebAPK is having a CustomTabActivity on top of it in the same Task, and user
|
| - // clicks a link to takes them back to the scope of a WebAPK, we want to destroy the
|
| - // CustomTabActivity activity and go back to the WebAPK activity. It is intentional that
|
| - // Custom Tab will not be reachable with a back button.
|
| - // TODO(dominickn): ideally, we want be able to route an intent to onNewIntent() instead of
|
| - // restarting the Activity.
|
| - launchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
| +
|
| + if (!isWebApk) {
|
| + // If this is launching from a notification, we want to ensure that the URL being
|
| + // launched is the URL in the intent. If a paused WebappActivity exists for this id,
|
| + // then by default it will be focused and we have no way of sending the desired URL to
|
| + // it (the intent is swallowed). As a workaround, set the CLEAR_TOP flag to ensure that
|
| + // the existing Activity is cleared and relaunched with this intent.
|
| + // TODO(dominickn): ideally, we want be able to route an intent to
|
| + // WebappActivity.onNewIntent instead of restarting the Activity.
|
| + if (source == ShortcutSource.NOTIFICATION) {
|
| + launchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
| + }
|
| + }
|
| return launchIntent;
|
| }
|
|
|
|
|