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") {
"//chrome/browser/android/webapk/webapk_install_service.h",
"//chrome/browser/android/webapk/webapk_installer.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/download/android/download_open_source.h",
"//chrome/browser/installable/digital_asset_links/digital_asset_links_handler.h",
......
......@@ -27,6 +27,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.banners.AppBannerManager;
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.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogProperties;
......
......@@ -16,6 +16,7 @@ import org.chromium.chrome.browser.banners.AppData;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.components.webapps.WebappsIconUtils;
import org.chromium.components.webapps.addtohomescreen.AppType;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modelutil.PropertyModel;
......
......@@ -21,6 +21,7 @@ import org.chromium.base.test.util.Feature;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.banners.AppBannerManager;
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.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogProperties;
......
......@@ -23,6 +23,7 @@ import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.JniMocker;
import org.chromium.chrome.browser.banners.AppData;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.components.webapps.addtohomescreen.AppType;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modelutil.PropertyModel;
......
......@@ -13,6 +13,7 @@ import org.mockito.Mockito;
import org.chromium.base.test.BaseRobolectricTestRunner;
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.PropertyModelChangeProcessor;
......
......@@ -2955,8 +2955,6 @@ static_library("browser") {
"android/webapps/add_to_homescreen_installer.h",
"android/webapps/add_to_homescreen_mediator.cc",
"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.h",
"android/webauth/fido2helper_native_android.cc",
......
......@@ -12,8 +12,8 @@
#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_mediator.h"
#include "chrome/browser/android/webapps/add_to_homescreen_params.h"
#include "chrome/browser/banners/app_banner_manager.h"
#include "components/webapps/android/add_to_homescreen_params.h"
namespace webapps {
......
......@@ -10,7 +10,7 @@
#include "chrome/android/chrome_jni_headers/AddToHomescreenInstaller_jni.h"
#include "chrome/browser/android/shortcut_helper.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"
namespace webapps {
......@@ -32,7 +32,7 @@ void AddToHomescreenInstaller::Install(
InstallOrOpenNativeApp(web_contents, params, event_callback);
break;
case AddToHomescreenParams::AppType::WEBAPK:
InstallWebApk(web_contents, params);
WebappsClient::Get()->InstallWebApk(web_contents, params);
break;
case AddToHomescreenParams::AppType::SHORTCUT:
InstallShortcut(web_contents, params);
......@@ -62,15 +62,6 @@ void AddToHomescreenInstaller::InstallOrOpenNativeApp(
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
void AddToHomescreenInstaller::InstallShortcut(
content::WebContents* web_contents,
......
......@@ -6,7 +6,7 @@
#define CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_INSTALLER_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 {
class WebContents;
......
......@@ -11,12 +11,12 @@
#include "chrome/android/chrome_jni_headers/AddToHomescreenMediator_jni.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_params.h"
#include "chrome/browser/banners/app_banner_manager.h"
#include "chrome/browser/banners/app_banner_manager_android.h"
#include "chrome/browser/banners/app_banner_metrics.h"
#include "chrome/browser/banners/app_banner_settings_helper.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/webapps_client.h"
#include "content/public/browser/web_contents.h"
......
......@@ -13,8 +13,8 @@
#include "base/strings/string16.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_params.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 "url/gurl.h"
......
......@@ -16,7 +16,6 @@
#include "chrome/browser/android/webapk/webapk_metrics.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_params.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/app_banner_metrics.h"
......@@ -33,6 +32,7 @@
#include "components/infobars/core/infobar.h"
#include "components/infobars/core/infobar_delegate.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/webapps_icon_utils.h"
#include "components/webapps/android/webapps_utils.h"
......
......@@ -8,6 +8,7 @@
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/ssl/security_state_tab_helper.h"
#include "components/webapps/installable/installable_metrics.h"
#include "content/public/browser/web_contents.h"
#if defined(OS_ANDROID)
#include "chrome/browser/android/tab_android.h"
......@@ -16,6 +17,7 @@
#include "chrome/browser/feature_engagement/tracker_factory.h"
#include "components/feature_engagement/public/event_constants.h"
#include "components/feature_engagement/public/tracker.h"
#include "components/webapps/android/add_to_homescreen_params.h"
#endif
namespace webapps {
......@@ -96,6 +98,13 @@ void ChromeWebappsClient::OnWebApkInstallInitiatedFromAppMenu(
web_contents->GetBrowserContext());
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
} // namespace webapps
......@@ -31,6 +31,8 @@ class ChromeWebappsClient : public WebappsClient {
bool CanShowAppBanners(content::WebContents* web_contents) override;
void OnWebApkInstallInitiatedFromAppMenu(
content::WebContents* web_contents) override;
void InstallWebApk(content::WebContents* web_contents,
const AddToHomescreenParams& params) override;
#endif
private:
......
......@@ -36,6 +36,8 @@ source_set("webapps") {
if (is_android) {
sources += [
"android/add_to_homescreen_params.cc",
"android/add_to_homescreen_params.h",
"android/features.cc",
"android/features.h",
"android/installable/installable_ambient_badge_infobar.cc",
......
......@@ -35,7 +35,10 @@ generate_jni("webapps_jni_headers") {
}
java_cpp_enum("webapps_java_enums_srcjar") {
sources = [ "shortcut_info.h" ]
sources = [
"add_to_homescreen_params.h",
"shortcut_info.h",
]
}
android_resources("java_resources") {
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// 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"
......
......@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_PARAMS_H_
#define CHROME_BROWSER_ANDROID_WEBAPPS_ADD_TO_HOMESCREEN_PARAMS_H_
#ifndef COMPONENTS_WEBAPPS_ANDROID_ADD_TO_HOMESCREEN_PARAMS_H_
#define COMPONENTS_WEBAPPS_ANDROID_ADD_TO_HOMESCREEN_PARAMS_H_
#include <memory>
#include <string>
......@@ -19,7 +19,7 @@ struct ShortcutInfo;
struct AddToHomescreenParams {
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: (
// org.chromium.chrome.browser.webapps.addtohomescreen)
// org.chromium.components.webapps.addtohomescreen)
enum class AppType {
NATIVE,
WEBAPK,
......@@ -40,4 +40,4 @@ struct AddToHomescreenParams {
} // 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 {
enum class InstallTrigger;
enum class WebappInstallSource;
struct AddToHomescreenParams;
// Interface to be implemented by the embedder (such as Chrome or WebLayer) to
// expose embedder specific logic.
......@@ -53,6 +54,9 @@ class WebappsClient {
virtual void OnWebApkInstallInitiatedFromAppMenu(
content::WebContents* web_contents) = 0;
virtual void InstallWebApk(content::WebContents* web_contents,
const AddToHomescreenParams& params) = 0;
#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