| 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); | 
| } | 
| } | 
|  | 
|  |