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 "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/browser/banners/app_banner_debug_log.h" | 10 #include "chrome/browser/banners/app_banner_debug_log.h" |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 if (weak_delegate_->HandleNonWebApp(platform, application.url, id)) | 234 if (weak_delegate_->HandleNonWebApp(platform, application.url, id)) |
235 return; | 235 return; |
236 } | 236 } |
237 } | 237 } |
238 | 238 |
239 if (!IsManifestValidForWebApp(manifest, web_contents)) { | 239 if (!IsManifestValidForWebApp(manifest, web_contents)) { |
240 Cancel(); | 240 Cancel(); |
241 return; | 241 return; |
242 } | 242 } |
243 | 243 |
244 banners::TrackDisplayEvent(DISPLAY_EVENT_BANNER_REQUESTED); | |
245 | |
246 web_app_data_ = manifest; | 244 web_app_data_ = manifest; |
247 app_title_ = web_app_data_.name.string(); | 245 app_title_ = web_app_data_.name.string(); |
248 | 246 |
| 247 HandleWebApp(web_contents); |
| 248 } |
| 249 |
| 250 void AppBannerDataFetcher::HandleWebApp(content::WebContents* web_contents) { |
| 251 banners::TrackDisplayEvent(DISPLAY_EVENT_BANNER_REQUESTED); |
| 252 |
249 // Check to see if there is a single service worker controlling this page | 253 // Check to see if there is a single service worker controlling this page |
250 // and the manifest's start url. | 254 // and the manifest's start url. |
251 Profile* profile = | 255 Profile* profile = |
252 Profile::FromBrowserContext(web_contents->GetBrowserContext()); | 256 Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
253 content::StoragePartition* storage_partition = | 257 content::StoragePartition* storage_partition = |
254 content::BrowserContext::GetStoragePartition( | 258 content::BrowserContext::GetStoragePartition( |
255 profile, web_contents->GetSiteInstance()); | 259 profile, web_contents->GetSiteInstance()); |
256 DCHECK(storage_partition); | 260 DCHECK(storage_partition); |
257 | 261 |
258 storage_partition->GetServiceWorkerContext()->CheckHasServiceWorker( | 262 storage_partition->GetServiceWorkerContext()->CheckHasServiceWorker( |
259 validated_url_, manifest.start_url, | 263 validated_url_, web_app_data_.start_url, |
260 base::Bind(&AppBannerDataFetcher::OnDidCheckHasServiceWorker, | 264 base::Bind(&AppBannerDataFetcher::OnDidCheckHasServiceWorker, |
261 this)); | 265 this)); |
262 } | 266 } |
263 | 267 |
264 void AppBannerDataFetcher::OnDidCheckHasServiceWorker( | 268 void AppBannerDataFetcher::OnDidCheckHasServiceWorker( |
265 bool has_service_worker) { | 269 bool has_service_worker) { |
266 content::WebContents* web_contents = GetWebContents(); | 270 content::WebContents* web_contents = GetWebContents(); |
267 if (!CheckFetcherIsStillAlive(web_contents)) { | 271 if (!CheckFetcherIsStillAlive(web_contents)) { |
268 Cancel(); | 272 Cancel(); |
269 return; | 273 return; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
376 return false; | 380 return false; |
377 } | 381 } |
378 if (!DoesManifestContainRequiredIcon(manifest)) { | 382 if (!DoesManifestContainRequiredIcon(manifest)) { |
379 OutputDeveloperNotShownMessage(web_contents, kManifestMissingSuitableIcon); | 383 OutputDeveloperNotShownMessage(web_contents, kManifestMissingSuitableIcon); |
380 return false; | 384 return false; |
381 } | 385 } |
382 return true; | 386 return true; |
383 } | 387 } |
384 | 388 |
385 } // namespace banners | 389 } // namespace banners |
OLD | NEW |