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

Side by Side Diff: chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc

Issue 2781083002: Fix the multi-threaded access to WeakPtr<BrowsingDataRemoverImpl> (Closed)
Patch Set: Static method to local namespace. Created 3 years, 8 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 "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" 5 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 228
229 net::HttpNetworkSession* http_session = context_getter->GetURLRequestContext() 229 net::HttpNetworkSession* http_session = context_getter->GetURLRequestContext()
230 ->http_transaction_factory() 230 ->http_transaction_factory()
231 ->GetSession(); 231 ->GetSession();
232 DCHECK(http_session); 232 DCHECK(http_session);
233 http_session->http_auth_cache()->ClearEntriesAddedWithin(base::Time::Now() - 233 http_session->http_auth_cache()->ClearEntriesAddedWithin(base::Time::Now() -
234 delete_begin); 234 delete_begin);
235 http_session->CloseAllConnections(); 235 http_session->CloseAllConnections();
236 } 236 }
237 237
238 // Returned by ChromeBrowsingDataRemoverDelegate::GetOriginTypeMatcher().
239 bool DoesOriginMatchEmbedderMask(int origin_type_mask,
240 const GURL& origin,
241 storage::SpecialStoragePolicy* policy) {
242 DCHECK_EQ(
243 0,
244 origin_type_mask &
245 (ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EMBEDDER_BEGIN - 1))
246 << "|origin_type_mask| can only contain origin types defined in "
247 << "the embedder.";
248
249 #if BUILDFLAG(ENABLE_EXTENSIONS)
250 // Packaged apps and extensions match iff EXTENSION.
251 if ((origin.GetOrigin().scheme() == extensions::kExtensionScheme) &&
252 (origin_type_mask &
253 ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION)) {
254 return true;
255 }
256 origin_type_mask &= ~ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION;
257 #endif
258
259 DCHECK(!origin_type_mask)
260 << "DoesOriginMatchEmbedderMask must handle all origin types.";
261
262 return false;
263 }
264
238 } // namespace 265 } // namespace
239 266
240 ChromeBrowsingDataRemoverDelegate::SubTask::SubTask( 267 ChromeBrowsingDataRemoverDelegate::SubTask::SubTask(
241 const base::Closure& forward_callback) 268 const base::Closure& forward_callback)
242 : is_pending_(false), 269 : is_pending_(false),
243 forward_callback_(forward_callback), 270 forward_callback_(forward_callback),
244 weak_ptr_factory_(this) { 271 weak_ptr_factory_(this) {
245 DCHECK(!forward_callback_.is_null()); 272 DCHECK(!forward_callback_.is_null());
246 } 273 }
247 274
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 #if defined(OS_ANDROID) 331 #if defined(OS_ANDROID)
305 webapp_registry_(new WebappRegistry()), 332 webapp_registry_(new WebappRegistry()),
306 #endif 333 #endif
307 weak_ptr_factory_(this) {} 334 weak_ptr_factory_(this) {}
308 335
309 ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() { 336 ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() {
310 history_task_tracker_.TryCancelAll(); 337 history_task_tracker_.TryCancelAll();
311 template_url_sub_.reset(); 338 template_url_sub_.reset();
312 } 339 }
313 340
314 bool ChromeBrowsingDataRemoverDelegate::DoesOriginMatchEmbedderMask( 341 BrowsingDataRemoverDelegate::EmbedderOriginTypeMatcher
315 int origin_type_mask, 342 ChromeBrowsingDataRemoverDelegate::GetOriginTypeMatcher() const {
316 const GURL& origin, 343 return base::Bind(DoesOriginMatchEmbedderMask);
317 storage::SpecialStoragePolicy* policy) const {
318 DCHECK_EQ(0, origin_type_mask & (ORIGIN_TYPE_EMBEDDER_BEGIN - 1))
319 << "|origin_type_mask| can only contain origin types defined in "
320 << "the embedder.";
321
322 #if BUILDFLAG(ENABLE_EXTENSIONS)
323 // Packaged apps and extensions match iff EXTENSION.
324 if ((origin.GetOrigin().scheme() == extensions::kExtensionScheme) &&
325 (origin_type_mask & ORIGIN_TYPE_EXTENSION)) {
326 return true;
327 }
328 origin_type_mask &= ~ORIGIN_TYPE_EXTENSION;
329 #endif
330
331 DCHECK(!origin_type_mask)
332 << "DoesOriginMatchEmbedderMask must handle all origin types.";
333
334 return false;
335 } 344 }
336 345
337 void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( 346 void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
338 const base::Time& delete_begin, 347 const base::Time& delete_begin,
339 const base::Time& delete_end, 348 const base::Time& delete_end,
340 int remove_mask, 349 int remove_mask,
341 const BrowsingDataFilterBuilder& filter_builder, 350 const BrowsingDataFilterBuilder& filter_builder,
342 int origin_type_mask, 351 int origin_type_mask,
343 const base::Closure& callback) { 352 const base::Closure& callback) {
344 DCHECK(((remove_mask & ~FILTERABLE_DATA_TYPES) == 0) || 353 DCHECK(((remove_mask & ~FILTERABLE_DATA_TYPES) == 0) ||
(...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 } 1131 }
1123 1132
1124 void ChromeBrowsingDataRemoverDelegate:: 1133 void ChromeBrowsingDataRemoverDelegate::
1125 OnDeauthorizeFlashContentLicensesCompleted( 1134 OnDeauthorizeFlashContentLicensesCompleted(
1126 uint32_t request_id, 1135 uint32_t request_id,
1127 bool /* success */) { 1136 bool /* success */) {
1128 DCHECK_EQ(request_id, deauthorize_flash_content_licenses_request_id_); 1137 DCHECK_EQ(request_id, deauthorize_flash_content_licenses_request_id_);
1129 clear_flash_content_licenses_.GetCompletionCallback().Run(); 1138 clear_flash_content_licenses_.GetCompletionCallback().Run();
1130 } 1139 }
1131 #endif 1140 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698