Stop firing appinstalled when the user cancels a 3-dot menu install on desktop.
This CL addresses an issue where the appinstalled JavaScript event would
be fired if the user cancelled installing a PWA on desktop via the 3-dot
menu.
BUG=962845
Change-Id: Idae632bb4aefdff5d167aeb889076d8096e85c6e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1619522
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661660}
diff --git a/chrome/browser/extensions/tab_helper.cc b/chrome/browser/extensions/tab_helper.cc
index b05b6997..e54ff28 100644
--- a/chrome/browser/extensions/tab_helper.cc
+++ b/chrome/browser/extensions/tab_helper.cc
@@ -192,17 +192,18 @@
void TabHelper::FinishCreateBookmarkApp(
const Extension* extension,
const WebApplicationInfo& web_app_info) {
- // Send the 'appinstalled' event and ensure any beforeinstallpromptevent
- // cannot trigger installation again.
- if (banners::AppBannerManagerDesktop::IsEnabled() &&
+ const bool success = (extension != nullptr);
+
+ if (success && banners::AppBannerManagerDesktop::IsEnabled() &&
web_app_info.open_as_window) {
+ // Send the 'appinstalled' event and ensure any beforeinstallpromptevent
+ // cannot trigger installation again.
banners::AppBannerManagerDesktop::FromWebContents(web_contents())
->OnInstall(false /* is_native app */,
blink::kWebDisplayModeStandalone);
}
pending_web_app_action_ = NONE;
- const bool success = !!extension;
const ExtensionId app_id = extension ? extension->id() : ExtensionId();
std::move(install_callback_).Run(app_id, success);
}