Index: chrome/browser/android/banners/app_banner_manager_android.cc |
diff --git a/chrome/browser/android/banners/app_banner_manager_android.cc b/chrome/browser/android/banners/app_banner_manager_android.cc |
index d7ba9c2dc61d2f8311e06b84d11a1c68bc62bbea..64bfec99ad5f231d1084d82b63e963cfc3d2229a 100644 |
--- a/chrome/browser/android/banners/app_banner_manager_android.cc |
+++ b/chrome/browser/android/banners/app_banner_manager_android.cc |
@@ -40,6 +40,20 @@ const char kReferrerName[] = "referrer"; |
const char kIdName[] = "id"; |
const char kPlayInlineReferrer[] = "playinline=chrome_inline"; |
+std::unique_ptr<ShortcutInfo> CreateShortcutInfo( |
+ const GURL& manifest_url, |
+ const content::Manifest& manifest, |
+ const GURL& icon_url) { |
+ std::unique_ptr<ShortcutInfo> info_ptr(new ShortcutInfo(GURL::EmptyGURL())); |
+ if (!manifest.IsEmpty()) { |
+ info_ptr->UpdateFromManifest(manifest); |
+ info_ptr->manifest_url = manifest_url; |
+ info_ptr->icon_url = icon_url; |
+ info_ptr->UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); |
+ } |
+ return info_ptr; |
+} |
+ |
} // anonymous namespace |
namespace banners { |
@@ -190,8 +204,9 @@ void AppBannerManagerAndroid::ShowBanner() { |
bool is_webapk = ChromeWebApkHost::AreWebApkEnabled(); |
std::unique_ptr<AppBannerInfoBarDelegateAndroid> delegate( |
new AppBannerInfoBarDelegateAndroid( |
- GetWeakPtr(), app_title_, manifest_url_, manifest_, icon_url_, |
- std::move(icon_), event_request_id(), is_webapk)); |
+ GetWeakPtr(), app_title_, manifest_url_, |
+ CreateShortcutInfo(manifest_url_, manifest_, icon_url_), |
+ icon_url_, std::move(icon_), event_request_id(), is_webapk)); |
infobar = new AppBannerInfoBarAndroid( |
std::move(delegate), manifest_.start_url, is_webapk); |