OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/banners/app_banner_data_fetcher.h" | 5 #include "chrome/browser/banners/app_banner_data_fetcher.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "chrome/browser/banners/app_banner_metrics.h" | 9 #include "chrome/browser/banners/app_banner_metrics.h" |
10 #include "chrome/browser/banners/app_banner_settings_helper.h" | 10 #include "chrome/browser/banners/app_banner_settings_helper.h" |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 | 133 |
134 void AppBannerDataFetcher::OnBannerPromptReply( | 134 void AppBannerDataFetcher::OnBannerPromptReply( |
135 content::RenderFrameHost* render_frame_host, | 135 content::RenderFrameHost* render_frame_host, |
136 int request_id, | 136 int request_id, |
137 blink::WebAppBannerPromptReply reply) { | 137 blink::WebAppBannerPromptReply reply) { |
138 content::WebContents* web_contents = GetWebContents(); | 138 content::WebContents* web_contents = GetWebContents(); |
139 if (!is_active_ || !web_contents || request_id != gCurrentRequestID) { | 139 if (!is_active_ || !web_contents || request_id != gCurrentRequestID) { |
140 Cancel(); | 140 Cancel(); |
141 return; | 141 return; |
142 } | 142 } |
143 is_active_ = false; | |
144 | 143 |
145 // The renderer might have requested the prompt to be canceled. | 144 // The renderer might have requested the prompt to be canceled. |
146 if (reply == blink::WebAppBannerPromptReply::Cancel) { | 145 if (reply == blink::WebAppBannerPromptReply::Cancel) { |
147 // TODO(mlamouri,benwells): we should probably record that to behave | 146 // TODO(mlamouri,benwells): we should probably record that to behave |
148 // differently with regard to showing the banner. | 147 // differently with regard to showing the banner. |
149 Cancel(); | 148 Cancel(); |
150 return; | 149 return; |
151 } | 150 } |
152 | 151 |
153 // Definitely going to show the banner now. | 152 // Definitely going to show the banner now. |
154 FOR_EACH_OBSERVER(Observer, observer_list_, | 153 FOR_EACH_OBSERVER(Observer, observer_list_, |
155 OnDecidedWhetherToShow(this, true)); | 154 OnDecidedWhetherToShow(this, true)); |
156 | 155 |
157 infobars::InfoBar* infobar = CreateBanner(app_icon_.get(), app_title_); | 156 infobars::InfoBar* infobar = CreateBanner(app_icon_.get(), app_title_); |
158 if (infobar) { | 157 if (infobar) { |
159 InfoBarService::FromWebContents(web_contents)->AddInfoBar( | 158 InfoBarService::FromWebContents(web_contents)->AddInfoBar( |
160 make_scoped_ptr(infobar)); | 159 make_scoped_ptr(infobar)); |
161 } | 160 } |
| 161 is_active_ = false; |
162 } | 162 } |
163 | 163 |
164 AppBannerDataFetcher::~AppBannerDataFetcher() { | 164 AppBannerDataFetcher::~AppBannerDataFetcher() { |
165 FOR_EACH_OBSERVER(Observer, observer_list_, OnFetcherDestroyed(this)); | 165 FOR_EACH_OBSERVER(Observer, observer_list_, OnFetcherDestroyed(this)); |
166 } | 166 } |
167 | 167 |
168 std::string AppBannerDataFetcher::GetBannerType() { | 168 std::string AppBannerDataFetcher::GetBannerType() { |
169 return "web"; | 169 return "web"; |
170 } | 170 } |
171 | 171 |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 if (!manifest.start_url.is_valid()) | 341 if (!manifest.start_url.is_valid()) |
342 return false; | 342 return false; |
343 if (manifest.name.is_null() && manifest.short_name.is_null()) | 343 if (manifest.name.is_null() && manifest.short_name.is_null()) |
344 return false; | 344 return false; |
345 if (!DoesManifestContainRequiredIcon(manifest)) | 345 if (!DoesManifestContainRequiredIcon(manifest)) |
346 return false; | 346 return false; |
347 return true; | 347 return true; |
348 } | 348 } |
349 | 349 |
350 } // namespace banners | 350 } // namespace banners |
OLD | NEW |