Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Unified Diff: chrome/browser/banners/app_banner_infobar_delegate_desktop.cc

Issue 2156113002: Replace AppBannerDataFetcher with InstallableManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@banner-refactor
Patch Set: Naming, includes Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/banners/app_banner_infobar_delegate_desktop.cc
diff --git a/chrome/browser/banners/app_banner_infobar_delegate_desktop.cc b/chrome/browser/banners/app_banner_infobar_delegate_desktop.cc
index 62f6cf1b441ea27c78f9677da680935bcea121a4..860327560f5dd96e06e432522691e2576ea7410d 100644
--- a/chrome/browser/banners/app_banner_infobar_delegate_desktop.cc
+++ b/chrome/browser/banners/app_banner_infobar_delegate_desktop.cc
@@ -4,13 +4,15 @@
#include "chrome/browser/banners/app_banner_infobar_delegate_desktop.h"
+#include "base/bind.h"
#include "build/build_config.h"
-#include "chrome/browser/banners/app_banner_data_fetcher_desktop.h"
+#include "chrome/browser/banners/app_banner_manager.h"
#include "chrome/browser/banners/app_banner_metrics.h"
#include "chrome/browser/banners/app_banner_settings_helper.h"
#include "chrome/browser/extensions/bookmark_app_helper.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/common/render_messages.h"
+#include "chrome/common/web_application_info.h"
#include "chrome/grit/generated_resources.h"
#include "components/infobars/core/infobar.h"
#include "content/public/browser/render_frame_host.h"
@@ -22,14 +24,14 @@
namespace banners {
AppBannerInfoBarDelegateDesktop::AppBannerInfoBarDelegateDesktop(
- scoped_refptr<AppBannerDataFetcherDesktop> fetcher,
- const content::Manifest& web_manifest,
+ base::WeakPtr<AppBannerManager> weak_manager,
extensions::BookmarkAppHelper* bookmark_app_helper,
+ const content::Manifest& manifest,
int event_request_id)
: ConfirmInfoBarDelegate(),
- fetcher_(fetcher),
- web_manifest_(web_manifest),
+ weak_manager_(weak_manager),
bookmark_app_helper_(bookmark_app_helper),
+ manifest_(manifest),
event_request_id_(event_request_id),
has_user_interaction_(false) {
}
@@ -41,17 +43,17 @@ AppBannerInfoBarDelegateDesktop::~AppBannerInfoBarDelegateDesktop() {
// static
infobars::InfoBar* AppBannerInfoBarDelegateDesktop::Create(
- scoped_refptr<AppBannerDataFetcherDesktop> fetcher,
content::WebContents* web_contents,
- const content::Manifest& web_manifest,
+ base::WeakPtr<AppBannerManager> weak_manager,
extensions::BookmarkAppHelper* bookmark_app_helper,
+ const content::Manifest& manifest,
int event_request_id) {
InfoBarService* infobar_service =
InfoBarService::FromWebContents(web_contents);
return infobar_service->AddInfoBar(infobar_service->CreateConfirmInfoBar(
std::unique_ptr<ConfirmInfoBarDelegate>(
- new AppBannerInfoBarDelegateDesktop(
- fetcher, web_manifest, bookmark_app_helper, event_request_id))));
+ new AppBannerInfoBarDelegateDesktop(weak_manager, bookmark_app_helper,
+ manifest, event_request_id))));
}
infobars::InfoBarDelegate::Type
@@ -89,9 +91,9 @@ bool AppBannerInfoBarDelegateDesktop::Accept() {
has_user_interaction_ = true;
bookmark_app_helper_->CreateFromAppBanner(
- base::Bind(&AppBannerDataFetcherDesktop::FinishCreateBookmarkApp,
- fetcher_),
- web_manifest_);
+ base::Bind(&AppBannerManager::DidFinishCreatingBookmarkApp,
+ weak_manager_),
+ manifest_);
return true;
}
@@ -107,16 +109,13 @@ void AppBannerInfoBarDelegateDesktop::InfoBarDismissed() {
content::WebContents* web_contents =
InfoBarService::WebContentsFromInfoBar(infobar());
if (web_contents) {
- fetcher_.get()->Cancel();
-
web_contents->GetMainFrame()->Send(
new ChromeViewMsg_AppBannerDismissed(
web_contents->GetMainFrame()->GetRoutingID(),
event_request_id_));
AppBannerSettingsHelper::RecordBannerDismissEvent(
- web_contents, web_manifest_.start_url.spec(),
- AppBannerSettingsHelper::WEB);
+ web_contents, manifest_.start_url.spec(), AppBannerSettingsHelper::WEB);
}
}
« no previous file with comments | « chrome/browser/banners/app_banner_infobar_delegate_desktop.h ('k') | chrome/browser/banners/app_banner_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698