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

Side by Side Diff: components/ntp_tiles/icon_cacher_impl.cc

Issue 2896803002: [LargeIconService] Make check_seen param optional for fetching (Closed)
Patch Set: Fix compilation Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/ntp_tiles/icon_cacher_impl.h" 5 #include "components/ntp_tiles/icon_cacher_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "components/favicon/core/favicon_service.h" 10 #include "components/favicon/core/favicon_service.h"
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 if (!HasResultDefaultBackgroundColor(result)) { 209 if (!HasResultDefaultBackgroundColor(result)) {
210 // We should only fetch for default "gray" tiles so that we never overrite 210 // We should only fetch for default "gray" tiles so that we never overrite
211 // any favicon of any size. 211 // any favicon of any size.
212 FinishRequestAndNotifyIconAvailable(page_url, /*newly_available=*/false); 212 FinishRequestAndNotifyIconAvailable(page_url, /*newly_available=*/false);
213 return; 213 return;
214 } 214 }
215 215
216 large_icon_service_ 216 large_icon_service_
217 ->GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 217 ->GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
218 page_url, kTileIconMinSizePx, kTileIconDesiredSizePx, 218 page_url, kTileIconMinSizePx, kTileIconDesiredSizePx,
219 /*may_page_url_be_private=*/true,
219 base::Bind(&IconCacherImpl::FinishRequestAndNotifyIconAvailable, 220 base::Bind(&IconCacherImpl::FinishRequestAndNotifyIconAvailable,
220 weak_ptr_factory_.GetWeakPtr(), page_url)); 221 weak_ptr_factory_.GetWeakPtr(), page_url));
221 } 222 }
222 223
223 bool IconCacherImpl::StartRequest(const GURL& request_url, 224 bool IconCacherImpl::StartRequest(const GURL& request_url,
224 const base::Closure& icon_available) { 225 const base::Closure& icon_available) {
225 bool in_flight = in_flight_requests_.count(request_url) > 0; 226 bool in_flight = in_flight_requests_.count(request_url) > 0;
226 in_flight_requests_[request_url].push_back(icon_available); 227 in_flight_requests_[request_url].push_back(icon_available);
227 return !in_flight; 228 return !in_flight;
228 } 229 }
229 230
230 void IconCacherImpl::FinishRequestAndNotifyIconAvailable( 231 void IconCacherImpl::FinishRequestAndNotifyIconAvailable(
231 const GURL& request_url, 232 const GURL& request_url,
232 bool newly_available) { 233 bool newly_available) {
233 std::vector<base::Closure> callbacks = 234 std::vector<base::Closure> callbacks =
234 std::move(in_flight_requests_[request_url]); 235 std::move(in_flight_requests_[request_url]);
235 in_flight_requests_.erase(request_url); 236 in_flight_requests_.erase(request_url);
236 if (!newly_available) { 237 if (!newly_available) {
237 return; 238 return;
238 } 239 }
239 for (const base::Closure& callback : callbacks) { 240 for (const base::Closure& callback : callbacks) {
240 if (callback) { 241 if (callback) {
241 callback.Run(); 242 callback.Run();
242 } 243 }
243 } 244 }
244 } 245 }
245 246
246 } // namespace ntp_tiles 247 } // namespace ntp_tiles
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698