Commit d0f88119 authored by Evan Stade's avatar Evan Stade Committed by Chromium LUCI CQ

Add WebappsClient::InstallWebApk

To do this, AddToHomescreenParams is moved to //components.

TBR=dtrainor@chromium.org

Bug: 1164069
Change-Id: Id84add9db5a9e55b9f494e4f0d1cac79036eef52
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2617202Reviewed-by: default avatarEvan Stade <estade@chromium.org>
Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Commit-Queue: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#842112}
parent abfad17e
...@@ -716,7 +716,6 @@ java_cpp_enum("chrome_android_java_enums_srcjar") { ...@@ -716,7 +716,6 @@ java_cpp_enum("chrome_android_java_enums_srcjar") {
"//chrome/browser/android/webapk/webapk_install_service.h", "//chrome/browser/android/webapk/webapk_install_service.h",
"//chrome/browser/android/webapk/webapk_installer.h", "//chrome/browser/android/webapk/webapk_installer.h",
"//chrome/browser/android/webapk/webapk_types.h", "//chrome/browser/android/webapk/webapk_types.h",
"//chrome/browser/android/webapps/add_to_homescreen_params.h",
"//chrome/browser/banners/app_banner_settings_helper.h", "//chrome/browser/banners/app_banner_settings_helper.h",
"//chrome/browser/download/android/download_open_source.h", "//chrome/browser/download/android/download_open_source.h",
"//chrome/browser/installable/digital_asset_links/digital_asset_links_handler.h", "//chrome/browser/installable/digital_asset_links/digital_asset_links_handler.h",
......
...@@ -27,6 +27,7 @@ import org.chromium.base.ContextUtils; ...@@ -27,6 +27,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.banners.AppBannerManager; import org.chromium.chrome.browser.banners.AppBannerManager;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate; import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.components.webapps.addtohomescreen.AppType;
import org.chromium.ui.modaldialog.DialogDismissalCause; import org.chromium.ui.modaldialog.DialogDismissalCause;
import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogProperties; import org.chromium.ui.modaldialog.ModalDialogProperties;
......
...@@ -16,6 +16,7 @@ import org.chromium.chrome.browser.banners.AppData; ...@@ -16,6 +16,7 @@ import org.chromium.chrome.browser.banners.AppData;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties; import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate; import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.components.webapps.WebappsIconUtils; import org.chromium.components.webapps.WebappsIconUtils;
import org.chromium.components.webapps.addtohomescreen.AppType;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
......
...@@ -21,6 +21,7 @@ import org.chromium.base.test.util.Feature; ...@@ -21,6 +21,7 @@ import org.chromium.base.test.util.Feature;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.banners.AppBannerManager; import org.chromium.chrome.browser.banners.AppBannerManager;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate; import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.components.webapps.addtohomescreen.AppType;
import org.chromium.ui.modaldialog.DialogDismissalCause; import org.chromium.ui.modaldialog.DialogDismissalCause;
import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogProperties; import org.chromium.ui.modaldialog.ModalDialogProperties;
......
...@@ -23,6 +23,7 @@ import org.chromium.base.test.util.Feature; ...@@ -23,6 +23,7 @@ import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.JniMocker; import org.chromium.base.test.util.JniMocker;
import org.chromium.chrome.browser.banners.AppData; import org.chromium.chrome.browser.banners.AppData;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties; import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.components.webapps.addtohomescreen.AppType;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
......
...@@ -13,6 +13,7 @@ import org.mockito.Mockito; ...@@ -13,6 +13,7 @@ import org.mockito.Mockito;
import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties; import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.components.webapps.addtohomescreen.AppType;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
......
...@@ -2955,8 +2955,6 @@ static_library("browser") { ...@@ -2955,8 +2955,6 @@ static_library("browser") {
"android/webapps/add_to_homescreen_installer.h", "android/webapps/add_to_homescreen_installer.h",
"android/webapps/add_to_homescreen_mediator.cc", "android/webapps/add_to_homescreen_mediator.cc",
"android/webapps/add_to_homescreen_mediator.h", "android/webapps/add_to_homescreen_mediator.h",
"android/webapps/add_to_homescreen_params.cc",
"android/webapps/add_to_homescreen_params.h",
"android/webapps/webapp_registry.cc", "android/webapps/webapp_registry.cc",
"android/webapps/webapp_registry.h", "android/webapps/webapp_registry.h",
"android/webauth/fido2helper_native_android.cc", "android/webauth/fido2helper_native_android.cc",
......
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
#include "chrome/browser/android/tab_android.h" #include "chrome/browser/android/tab_android.h"
#include "chrome/browser/android/webapps/add_to_homescreen_installer.h" #include "chrome/browser/android/webapps/add_to_homescreen_installer.h"
#include "chrome/browser/android/webapps/add_to_homescreen_mediator.h" #include "chrome/browser/android/webapps/add_to_homescreen_mediator.h"
#include "chrome/browser/android/webapps/add_to_homescreen_params.h"
#include "chrome/browser/banners/app_banner_manager.h" #include "chrome/browser/banners/app_banner_manager.h"
#include "components/webapps/android/add_to_homescreen_params.h"
namespace webapps { namespace webapps {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "chrome/android/chrome_jni_headers/AddToHomescreenInstaller_jni.h" #include "chrome/android/chrome_jni_headers/AddToHomescreenInstaller_jni.h"
#include "chrome/browser/android/shortcut_helper.h" #include "chrome/browser/android/shortcut_helper.h"
#include "chrome/browser/android/tab_android.h" #include "chrome/browser/android/tab_android.h"
#include "chrome/browser/android/webapk/webapk_install_service.h" #include "components/webapps/webapps_client.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
namespace webapps { namespace webapps {
...@@ -32,7 +32,7 @@ void AddToHomescreenInstaller::Install( ...@@ -32,7 +32,7 @@ void AddToHomescreenInstaller::Install(
InstallOrOpenNativeApp(web_contents, params, event_callback); InstallOrOpenNativeApp(web_contents, params, event_callback);
break; break;
case AddToHomescreenParams::AppType::WEBAPK: case AddToHomescreenParams::AppType::WEBAPK:
InstallWebApk(web_contents, params); WebappsClient::Get()->InstallWebApk(web_contents, params);
break; break;
case AddToHomescreenParams::AppType::SHORTCUT: case AddToHomescreenParams::AppType::SHORTCUT:
InstallShortcut(web_contents, params); InstallShortcut(web_contents, params);
...@@ -62,15 +62,6 @@ void AddToHomescreenInstaller::InstallOrOpenNativeApp( ...@@ -62,15 +62,6 @@ void AddToHomescreenInstaller::InstallOrOpenNativeApp(
params); params);
} }
// static
void AddToHomescreenInstaller::InstallWebApk(
content::WebContents* web_contents,
const AddToHomescreenParams& params) {
WebApkInstallService::Get(web_contents->GetBrowserContext())
->InstallAsync(web_contents, *(params.shortcut_info), params.primary_icon,
params.has_maskable_primary_icon, params.install_source);
}
// static // static
void AddToHomescreenInstaller::InstallShortcut( void AddToHomescreenInstaller::InstallShortcut(
content::WebContents* web_contents, content::WebContents* web_contents,
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#define CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_INSTALLER_H_ #define CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_INSTALLER_H_
#include "base/callback_forward.h" #include "base/callback_forward.h"
#include "chrome/browser/android/webapps/add_to_homescreen_params.h" #include "components/webapps/android/add_to_homescreen_params.h"
namespace content { namespace content {
class WebContents; class WebContents;
......
...@@ -11,12 +11,12 @@ ...@@ -11,12 +11,12 @@
#include "chrome/android/chrome_jni_headers/AddToHomescreenMediator_jni.h" #include "chrome/android/chrome_jni_headers/AddToHomescreenMediator_jni.h"
#include "chrome/browser/android/webapk/webapk_metrics.h" #include "chrome/browser/android/webapk/webapk_metrics.h"
#include "chrome/browser/android/webapps/add_to_homescreen_installer.h" #include "chrome/browser/android/webapps/add_to_homescreen_installer.h"
#include "chrome/browser/android/webapps/add_to_homescreen_params.h"
#include "chrome/browser/banners/app_banner_manager.h" #include "chrome/browser/banners/app_banner_manager.h"
#include "chrome/browser/banners/app_banner_manager_android.h" #include "chrome/browser/banners/app_banner_manager_android.h"
#include "chrome/browser/banners/app_banner_metrics.h" #include "chrome/browser/banners/app_banner_metrics.h"
#include "chrome/browser/banners/app_banner_settings_helper.h" #include "chrome/browser/banners/app_banner_settings_helper.h"
#include "components/url_formatter/elide_url.h" #include "components/url_formatter/elide_url.h"
#include "components/webapps/android/add_to_homescreen_params.h"
#include "components/webapps/installable/installable_metrics.h" #include "components/webapps/installable/installable_metrics.h"
#include "components/webapps/webapps_client.h" #include "components/webapps/webapps_client.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
#include "base/strings/string16.h" #include "base/strings/string16.h"
#include "chrome/browser/android/webapps/add_to_homescreen_data_fetcher.h" #include "chrome/browser/android/webapps/add_to_homescreen_data_fetcher.h"
#include "chrome/browser/android/webapps/add_to_homescreen_installer.h" #include "chrome/browser/android/webapps/add_to_homescreen_installer.h"
#include "chrome/browser/android/webapps/add_to_homescreen_params.h"
#include "chrome/browser/banners/app_banner_manager.h" #include "chrome/browser/banners/app_banner_manager.h"
#include "components/webapps/android/add_to_homescreen_params.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
#include "url/gurl.h" #include "url/gurl.h"
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include "chrome/browser/android/webapk/webapk_metrics.h" #include "chrome/browser/android/webapk/webapk_metrics.h"
#include "chrome/browser/android/webapk/webapk_ukm_recorder.h" #include "chrome/browser/android/webapk/webapk_ukm_recorder.h"
#include "chrome/browser/android/webapps/add_to_homescreen_coordinator.h" #include "chrome/browser/android/webapps/add_to_homescreen_coordinator.h"
#include "chrome/browser/android/webapps/add_to_homescreen_params.h"
#include "chrome/browser/banners/android/jni_headers/AppBannerInProductHelpControllerProvider_jni.h" #include "chrome/browser/banners/android/jni_headers/AppBannerInProductHelpControllerProvider_jni.h"
#include "chrome/browser/banners/android/jni_headers/AppBannerManager_jni.h" #include "chrome/browser/banners/android/jni_headers/AppBannerManager_jni.h"
#include "chrome/browser/banners/app_banner_metrics.h" #include "chrome/browser/banners/app_banner_metrics.h"
...@@ -33,6 +32,7 @@ ...@@ -33,6 +32,7 @@
#include "components/infobars/core/infobar.h" #include "components/infobars/core/infobar.h"
#include "components/infobars/core/infobar_delegate.h" #include "components/infobars/core/infobar_delegate.h"
#include "components/version_info/channel.h" #include "components/version_info/channel.h"
#include "components/webapps/android/add_to_homescreen_params.h"
#include "components/webapps/android/shortcut_info.h" #include "components/webapps/android/shortcut_info.h"
#include "components/webapps/android/webapps_icon_utils.h" #include "components/webapps/android/webapps_icon_utils.h"
#include "components/webapps/android/webapps_utils.h" #include "components/webapps/android/webapps_utils.h"
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/ssl/security_state_tab_helper.h" #include "chrome/browser/ssl/security_state_tab_helper.h"
#include "components/webapps/installable/installable_metrics.h" #include "components/webapps/installable/installable_metrics.h"
#include "content/public/browser/web_contents.h"
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
#include "chrome/browser/android/tab_android.h" #include "chrome/browser/android/tab_android.h"
...@@ -16,6 +17,7 @@ ...@@ -16,6 +17,7 @@
#include "chrome/browser/feature_engagement/tracker_factory.h" #include "chrome/browser/feature_engagement/tracker_factory.h"
#include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/event_constants.h"
#include "components/feature_engagement/public/tracker.h" #include "components/feature_engagement/public/tracker.h"
#include "components/webapps/android/add_to_homescreen_params.h"
#endif #endif
namespace webapps { namespace webapps {
...@@ -96,6 +98,13 @@ void ChromeWebappsClient::OnWebApkInstallInitiatedFromAppMenu( ...@@ -96,6 +98,13 @@ void ChromeWebappsClient::OnWebApkInstallInitiatedFromAppMenu(
web_contents->GetBrowserContext()); web_contents->GetBrowserContext());
tracker->NotifyEvent(feature_engagement::events::kPwaInstallMenuSelected); tracker->NotifyEvent(feature_engagement::events::kPwaInstallMenuSelected);
} }
void ChromeWebappsClient::InstallWebApk(content::WebContents* web_contents,
const AddToHomescreenParams& params) {
WebApkInstallService::Get(web_contents->GetBrowserContext())
->InstallAsync(web_contents, *(params.shortcut_info), params.primary_icon,
params.has_maskable_primary_icon, params.install_source);
}
#endif #endif
} // namespace webapps } // namespace webapps
...@@ -31,6 +31,8 @@ class ChromeWebappsClient : public WebappsClient { ...@@ -31,6 +31,8 @@ class ChromeWebappsClient : public WebappsClient {
bool CanShowAppBanners(content::WebContents* web_contents) override; bool CanShowAppBanners(content::WebContents* web_contents) override;
void OnWebApkInstallInitiatedFromAppMenu( void OnWebApkInstallInitiatedFromAppMenu(
content::WebContents* web_contents) override; content::WebContents* web_contents) override;
void InstallWebApk(content::WebContents* web_contents,
const AddToHomescreenParams& params) override;
#endif #endif
private: private:
......
...@@ -36,6 +36,8 @@ source_set("webapps") { ...@@ -36,6 +36,8 @@ source_set("webapps") {
if (is_android) { if (is_android) {
sources += [ sources += [
"android/add_to_homescreen_params.cc",
"android/add_to_homescreen_params.h",
"android/features.cc", "android/features.cc",
"android/features.h", "android/features.h",
"android/installable/installable_ambient_badge_infobar.cc", "android/installable/installable_ambient_badge_infobar.cc",
......
...@@ -35,7 +35,10 @@ generate_jni("webapps_jni_headers") { ...@@ -35,7 +35,10 @@ generate_jni("webapps_jni_headers") {
} }
java_cpp_enum("webapps_java_enums_srcjar") { java_cpp_enum("webapps_java_enums_srcjar") {
sources = [ "shortcut_info.h" ] sources = [
"add_to_homescreen_params.h",
"shortcut_info.h",
]
} }
android_resources("java_resources") { android_resources("java_resources") {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/android/webapps/add_to_homescreen_params.h" #include "components/webapps/android/add_to_homescreen_params.h"
#include "components/webapps/android/shortcut_info.h" #include "components/webapps/android/shortcut_info.h"
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_PARAMS_H_ #ifndef COMPONENTS_WEBAPPS_ANDROID_ADD_TO_HOMESCREEN_PARAMS_H_
#define CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_PARAMS_H_ #define COMPONENTS_WEBAPPS_ANDROID_ADD_TO_HOMESCREEN_PARAMS_H_
#include <memory> #include <memory>
#include <string> #include <string>
...@@ -19,7 +19,7 @@ struct ShortcutInfo; ...@@ -19,7 +19,7 @@ struct ShortcutInfo;
struct AddToHomescreenParams { struct AddToHomescreenParams {
// A Java counterpart will be generated for this enum. // A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: ( // GENERATED_JAVA_ENUM_PACKAGE: (
// org.chromium.chrome.browser.webapps.addtohomescreen) // org.chromium.components.webapps.addtohomescreen)
enum class AppType { enum class AppType {
NATIVE, NATIVE,
WEBAPK, WEBAPK,
...@@ -40,4 +40,4 @@ struct AddToHomescreenParams { ...@@ -40,4 +40,4 @@ struct AddToHomescreenParams {
} // namespace webapps } // namespace webapps
#endif // CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_PARAMS_H_ #endif // COMPONENTS_WEBAPPS_ANDROID_ADD_TO_HOMESCREEN_PARAMS_H_
...@@ -22,6 +22,7 @@ namespace webapps { ...@@ -22,6 +22,7 @@ namespace webapps {
enum class InstallTrigger; enum class InstallTrigger;
enum class WebappInstallSource; enum class WebappInstallSource;
struct AddToHomescreenParams;
// Interface to be implemented by the embedder (such as Chrome or WebLayer) to // Interface to be implemented by the embedder (such as Chrome or WebLayer) to
// expose embedder specific logic. // expose embedder specific logic.
...@@ -53,6 +54,9 @@ class WebappsClient { ...@@ -53,6 +54,9 @@ class WebappsClient {
virtual void OnWebApkInstallInitiatedFromAppMenu( virtual void OnWebApkInstallInitiatedFromAppMenu(
content::WebContents* web_contents) = 0; content::WebContents* web_contents) = 0;
virtual void InstallWebApk(content::WebContents* web_contents,
const AddToHomescreenParams& params) = 0;
#endif #endif
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment