| 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 "components/favicon/core/large_icon_service.h" | 5 #include "components/favicon/core/large_icon_service.h" | 
| 6 | 6 | 
| 7 #include <memory> | 7 #include <memory> | 
| 8 | 8 | 
| 9 #include "base/bind.h" | 9 #include "base/bind.h" | 
| 10 #include "base/feature_list.h" | 10 #include "base/feature_list.h" | 
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 357   if (!server_request_url.is_valid() || !trimmed_page_url.is_valid() || | 357   if (!server_request_url.is_valid() || !trimmed_page_url.is_valid() || | 
| 358       !image_fetcher_ || | 358       !image_fetcher_ || | 
| 359       favicon_service_->WasUnableToDownloadFavicon(server_request_url)) { | 359       favicon_service_->WasUnableToDownloadFavicon(server_request_url)) { | 
| 360     base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, | 360     base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, | 
| 361                                                   base::Bind(callback, false)); | 361                                                   base::Bind(callback, false)); | 
| 362     return; | 362     return; | 
| 363   } | 363   } | 
| 364 | 364 | 
| 365   image_fetcher_->SetDataUseServiceName( | 365   image_fetcher_->SetDataUseServiceName( | 
| 366       data_use_measurement::DataUseUserData::LARGE_ICON_SERVICE); | 366       data_use_measurement::DataUseUserData::LARGE_ICON_SERVICE); | 
|  | 367   net::NetworkTrafficAnnotationTag traffic_annotation = | 
|  | 368       net::DefineNetworkTrafficAnnotation("favicon_component", R"( | 
|  | 369         semantics { | 
|  | 370           sender: "Favicon Component" | 
|  | 371           description: | 
|  | 372             "Sends a request to a Google server to retrieve the favicon bitmap " | 
|  | 373             "for a page URL." | 
|  | 374           trigger: | 
|  | 375             "A request can be sent if Chrome does not have a favicon for a " | 
|  | 376             "particular page. This is done in two scenarios:\n" | 
|  | 377             " 1- For articles suggestions on the new tab page (URLs are public " | 
|  | 378             "    and provided by Google).\n" | 
|  | 379             " 2- For server-suggested most visited tiles on the new tab page " | 
|  | 380             "    (User gets these URLs from Google, only if history sync is " | 
|  | 381             "    enabled)." | 
|  | 382           data: "Page URL and desired icon size." | 
|  | 383           destination: GOOGLE_OWNED_SERVICE | 
|  | 384         } | 
|  | 385         policy { | 
|  | 386           cookies_allowed: false | 
|  | 387           setting: "This feature cannot be disabled by settings." | 
|  | 388           policy_exception_justification: "Not implemented." | 
|  | 389         })"); | 
| 367   image_fetcher_->StartOrQueueNetworkRequest( | 390   image_fetcher_->StartOrQueueNetworkRequest( | 
| 368       server_request_url.spec(), server_request_url, | 391       server_request_url.spec(), server_request_url, | 
| 369       base::Bind(&OnFetchIconFromGoogleServerComplete, favicon_service_, | 392       base::Bind(&OnFetchIconFromGoogleServerComplete, favicon_service_, | 
| 370                  page_url, callback)); | 393                  page_url, callback), | 
|  | 394       traffic_annotation); | 
| 371 } | 395 } | 
| 372 | 396 | 
| 373 base::CancelableTaskTracker::TaskId | 397 base::CancelableTaskTracker::TaskId | 
| 374 LargeIconService::GetLargeIconOrFallbackStyleImpl( | 398 LargeIconService::GetLargeIconOrFallbackStyleImpl( | 
| 375     const GURL& page_url, | 399     const GURL& page_url, | 
| 376     int min_source_size_in_pixel, | 400     int min_source_size_in_pixel, | 
| 377     int desired_size_in_pixel, | 401     int desired_size_in_pixel, | 
| 378     const favicon_base::LargeIconCallback& raw_bitmap_callback, | 402     const favicon_base::LargeIconCallback& raw_bitmap_callback, | 
| 379     const favicon_base::LargeIconImageCallback& image_callback, | 403     const favicon_base::LargeIconImageCallback& image_callback, | 
| 380     base::CancelableTaskTracker* tracker) { | 404     base::CancelableTaskTracker* tracker) { | 
| 381   DCHECK_LE(1, min_source_size_in_pixel); | 405   DCHECK_LE(1, min_source_size_in_pixel); | 
| 382   DCHECK_LE(0, desired_size_in_pixel); | 406   DCHECK_LE(0, desired_size_in_pixel); | 
| 383 | 407 | 
| 384   scoped_refptr<LargeIconWorker> worker = new LargeIconWorker( | 408   scoped_refptr<LargeIconWorker> worker = new LargeIconWorker( | 
| 385       min_source_size_in_pixel, desired_size_in_pixel, raw_bitmap_callback, | 409       min_source_size_in_pixel, desired_size_in_pixel, raw_bitmap_callback, | 
| 386       image_callback, background_task_runner_, tracker); | 410       image_callback, background_task_runner_, tracker); | 
| 387 | 411 | 
| 388   // TODO(beaudoin): For now this is just a wrapper around | 412   // TODO(beaudoin): For now this is just a wrapper around | 
| 389   //   GetLargestRawFaviconForPageURL. Add the logic required to select the best | 413   //   GetLargestRawFaviconForPageURL. Add the logic required to select the best | 
| 390   //   possible large icon. Also add logic to fetch-on-demand when the URL of | 414   //   possible large icon. Also add logic to fetch-on-demand when the URL of | 
| 391   //   a large icon is known but its bitmap is not available. | 415   //   a large icon is known but its bitmap is not available. | 
| 392   return favicon_service_->GetLargestRawFaviconForPageURL( | 416   return favicon_service_->GetLargestRawFaviconForPageURL( | 
| 393       page_url, large_icon_types_, min_source_size_in_pixel, | 417       page_url, large_icon_types_, min_source_size_in_pixel, | 
| 394       base::Bind(&LargeIconWorker::OnIconLookupComplete, worker), tracker); | 418       base::Bind(&LargeIconWorker::OnIconLookupComplete, worker), tracker); | 
| 395 } | 419 } | 
| 396 | 420 | 
| 397 }  // namespace favicon | 421 }  // namespace favicon | 
| OLD | NEW | 
|---|