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..aafbbe9aa4407e9ab2bbcefccc5db53340f2642a 100644 |
--- a/chrome/browser/android/banners/app_banner_manager_android.cc |
+++ b/chrome/browser/android/banners/app_banner_manager_android.cc |
@@ -15,10 +15,8 @@ |
#include "chrome/browser/android/webapk/chrome_webapk_host.h" |
#include "chrome/browser/android/webapk/webapk_web_manifest_checker.h" |
#include "chrome/browser/banners/app_banner_metrics.h" |
-#include "chrome/browser/infobars/infobar_service.h" |
#include "chrome/browser/manifest/manifest_icon_downloader.h" |
#include "chrome/browser/manifest/manifest_icon_selector.h" |
-#include "chrome/browser/ui/android/infobars/app_banner_infobar_android.h" |
#include "chrome/common/chrome_constants.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/common/frame_navigate_params.h" |
@@ -40,6 +38,20 @@ const char kReferrerName[] = "referrer"; |
const char kIdName[] = "id"; |
const char kPlayInlineReferrer[] = "playinline=chrome_inline"; |
Peter Kasting
2016/09/08 04:56:58
Nit: Each of these temps is used in only one funct
Xi Han
2016/09/08 15:49:10
Personally I would prefer to declare them at the b
Peter Kasting
2016/09/08 20:57:05
Twice yes, but in adjacent statements in the same
|
+std::unique_ptr<ShortcutInfo> CreateShortcutInfo( |
+ const GURL& manifest_url, |
+ const content::Manifest& manifest, |
+ const GURL& icon_url) { |
+ std::unique_ptr<ShortcutInfo> shortcut_info(new ShortcutInfo(GURL())); |
Peter Kasting
2016/09/08 04:56:58
Nit: Prefer "= base::MakeUnique<ShortcutInfo>(GURL
Xi Han
2016/09/08 15:49:10
Done.
|
+ if (!manifest.IsEmpty()) { |
+ shortcut_info->UpdateFromManifest(manifest); |
+ shortcut_info->manifest_url = manifest_url; |
+ shortcut_info->icon_url = icon_url; |
+ shortcut_info->UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); |
+ } |
+ return shortcut_info; |
+} |
+ |
} // anonymous namespace |
namespace banners { |
@@ -185,17 +197,13 @@ void AppBannerManagerAndroid::ShowBanner() { |
content::WebContents* contents = web_contents(); |
DCHECK(contents); |
- infobars::InfoBar* infobar = nullptr; |
if (native_app_data_.is_null()) { |
bool is_webapk = ChromeWebApkHost::AreWebApkEnabled(); |
Peter Kasting
2016/09/08 04:56:58
Nit: Just inline below
Xi Han
2016/09/08 15:49:10
Done.
|
- std::unique_ptr<AppBannerInfoBarDelegateAndroid> delegate( |
- new AppBannerInfoBarDelegateAndroid( |
- GetWeakPtr(), app_title_, manifest_url_, manifest_, icon_url_, |
- std::move(icon_), event_request_id(), is_webapk)); |
- |
- infobar = new AppBannerInfoBarAndroid( |
- std::move(delegate), manifest_.start_url, is_webapk); |
- if (infobar) { |
+ if (AppBannerInfoBarDelegateAndroid::Create( |
+ contents, GetWeakPtr(), app_title_, |
+ CreateShortcutInfo(manifest_url_, manifest_, icon_url_), |
+ std::move(icon_), event_request_id(), is_webapk, |
+ false /* start_install_webapk*/)) { |
Peter Kasting
2016/09/08 04:56:58
Nit: Need space before */ (or just remove the comm
Xi Han
2016/09/08 15:49:10
Done.
|
RecordDidShowBanner("AppBanner.WebApp.Shown"); |
TrackDisplayEvent(DISPLAY_EVENT_WEB_APP_BANNER_CREATED); |
ReportStatus(contents, SHOWING_WEB_APP_BANNER); |
@@ -203,13 +211,9 @@ void AppBannerManagerAndroid::ShowBanner() { |
ReportStatus(contents, FAILED_TO_CREATE_BANNER); |
} |
} else { |
- std::unique_ptr<AppBannerInfoBarDelegateAndroid> delegate( |
- new AppBannerInfoBarDelegateAndroid( |
- app_title_, native_app_data_, std::move(icon_), native_app_package_, |
- referrer_, event_request_id())); |
- infobar = |
- new AppBannerInfoBarAndroid(std::move(delegate), native_app_data_); |
- if (infobar) { |
+ if (AppBannerInfoBarDelegateAndroid::Create( |
+ contents, app_title_, native_app_data_, std::move(icon_), |
+ native_app_package_, referrer_, event_request_id())) { |
RecordDidShowBanner("AppBanner.NativeApp.Shown"); |
TrackDisplayEvent(DISPLAY_EVENT_NATIVE_APP_BANNER_CREATED); |
ReportStatus(contents, SHOWING_NATIVE_APP_BANNER); |
@@ -217,11 +221,6 @@ void AppBannerManagerAndroid::ShowBanner() { |
ReportStatus(contents, FAILED_TO_CREATE_BANNER); |
} |
} |
- |
- if (infobar) { |
- InfoBarService::FromWebContents(contents)->AddInfoBar( |
- base::WrapUnique(infobar)); |
- } |
} |
bool AppBannerManagerAndroid::CanHandleNonWebApp(const std::string& platform, |