| Index: chrome/browser/android/banners/app_banner_infobar_delegate_android.h
|
| diff --git a/chrome/browser/android/banners/app_banner_infobar_delegate_android.h b/chrome/browser/android/banners/app_banner_infobar_delegate_android.h
|
| index c78aa8def8af41f30db46695348dfc8db65437ab..6e09f1b5ad2a846be7a6aa4ef067bb33bc59dabd 100644
|
| --- a/chrome/browser/android/banners/app_banner_infobar_delegate_android.h
|
| +++ b/chrome/browser/android/banners/app_banner_infobar_delegate_android.h
|
| @@ -11,7 +11,6 @@
|
| #include "base/strings/string16.h"
|
| #include "chrome/browser/banners/app_banner_manager.h"
|
| #include "components/infobars/core/confirm_infobar_delegate.h"
|
| -#include "content/public/common/manifest.h"
|
| #include "ui/gfx/image/image.h"
|
| #include "url/gurl.h"
|
|
|
| @@ -24,25 +23,30 @@ class InfoBarManager;
|
| }
|
|
|
| class AppBannerInfoBar;
|
| +struct ShortcutInfo;
|
|
|
| namespace banners {
|
|
|
| // Manages installation of an app being promoted by a page.
|
| class AppBannerInfoBarDelegateAndroid : public ConfirmInfoBarDelegate {
|
| public:
|
| - // Delegate for promoting a web app.
|
| - AppBannerInfoBarDelegateAndroid(
|
| + // Creates an infobar and delegate for promoting the installation of a web
|
| + // app, and adds the infobar to the InfoBarManager for |web_contents|.
|
| + static bool Create(
|
| + content::WebContents* web_contents,
|
| base::WeakPtr<AppBannerManager> weak_manager,
|
| const base::string16& app_title,
|
| - const GURL& manifest_url,
|
| - const content::Manifest& manifest,
|
| - const GURL& icon_url,
|
| + std::unique_ptr<ShortcutInfo> info,
|
| std::unique_ptr<SkBitmap> icon,
|
| int event_request_id,
|
| - bool is_webapk);
|
| -
|
| - // Delegate for promoting an Android app.
|
| - AppBannerInfoBarDelegateAndroid(
|
| + bool is_webapk,
|
| + bool start_install_webapk);
|
| +
|
| + // Creates and shows the infobar for an Android app.
|
| + // Creates an infobar and delegate for promoting the installation of an
|
| + // Android app, and adds the infobar to the InfoBarManager for |web_contents|.
|
| + static bool Create(
|
| + content::WebContents* web_contents,
|
| const base::string16& app_title,
|
| const base::android::ScopedJavaGlobalRef<jobject>& native_app_data,
|
| std::unique_ptr<SkBitmap> icon,
|
| @@ -67,11 +71,35 @@ class AppBannerInfoBarDelegateAndroid : public ConfirmInfoBarDelegate {
|
| const base::android::JavaParamRef<jobject>& obj,
|
| jboolean success);
|
|
|
| + // When user accepts to install a WebAPK, this function sends a request
|
| + // to the WebAPK Server to create a WebAPK and install it. It returns
|
| + // false to prevent infobar from disappearing when installation starts.
|
| + // When user clicks the Open button after the intallation is compelete, this
|
| + // function launches the installed WebAPK and returns true.
|
| + bool AcceptWebApk(content::WebContents* web_contents);
|
| +
|
| private:
|
| + // Delegate for promoting a web app.
|
| + AppBannerInfoBarDelegateAndroid(
|
| + base::WeakPtr<AppBannerManager> weak_manager,
|
| + const base::string16& app_title,
|
| + std::unique_ptr<ShortcutInfo> info,
|
| + std::unique_ptr<SkBitmap> icon,
|
| + int event_request_id,
|
| + bool is_webapk);
|
| +
|
| + // Delegate for promoting an Android app.
|
| + AppBannerInfoBarDelegateAndroid(
|
| + const base::string16& app_title,
|
| + const base::android::ScopedJavaGlobalRef<jobject>& native_app_data,
|
| + std::unique_ptr<SkBitmap> icon,
|
| + const std::string& native_app_package,
|
| + const std::string& referrer,
|
| + int event_request_id);
|
| +
|
| void CreateJavaDelegate();
|
| bool AcceptNativeApp(content::WebContents* web_contents);
|
| bool AcceptWebApp(content::WebContents* web_contents);
|
| - bool AcceptWebApk(content::WebContents* web_contents);
|
| void SendBannerAccepted(content::WebContents* web_contents,
|
| const std::string& platform);
|
| void OnWebApkInstallFinished(bool success, const std::string& webapk_package);
|
| @@ -91,12 +119,10 @@ class AppBannerInfoBarDelegateAndroid : public ConfirmInfoBarDelegate {
|
| base::WeakPtr<AppBannerManager> weak_manager_;
|
|
|
| base::string16 app_title_;
|
| - GURL manifest_url_;
|
| - content::Manifest manifest_;
|
| + std::unique_ptr<ShortcutInfo> shortcut_info_;
|
|
|
| base::android::ScopedJavaGlobalRef<jobject> native_app_data_;
|
|
|
| - GURL icon_url_;
|
| std::unique_ptr<SkBitmap> icon_;
|
|
|
| std::string native_app_package_;
|
| @@ -110,7 +136,7 @@ class AppBannerInfoBarDelegateAndroid : public ConfirmInfoBarDelegate {
|
| base::WeakPtrFactory<AppBannerInfoBarDelegateAndroid> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(AppBannerInfoBarDelegateAndroid);
|
| -}; // AppBannerInfoBarDelegateAndroid
|
| +};
|
|
|
| // Register native methods.
|
| bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env);
|
|
|