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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index e585e9efca2504d16bb8a26658bb08b885a76e58..1e34ff24bff55b93ba4068f5cdbdbc48a8ed4529 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -235,6 +235,33 @@ void ClearHttpAuthCacheOnIOThread(
http_session->CloseAllConnections();
}
+// Returned by ChromeBrowsingDataRemoverDelegate::GetOriginTypeMatcher().
+bool DoesOriginMatchEmbedderMask(int origin_type_mask,
+ const GURL& origin,
+ storage::SpecialStoragePolicy* policy) {
+ DCHECK_EQ(
+ 0,
+ origin_type_mask &
+ (ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EMBEDDER_BEGIN - 1))
+ << "|origin_type_mask| can only contain origin types defined in "
+ << "the embedder.";
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+ // Packaged apps and extensions match iff EXTENSION.
+ if ((origin.GetOrigin().scheme() == extensions::kExtensionScheme) &&
+ (origin_type_mask &
+ ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION)) {
+ return true;
+ }
+ origin_type_mask &= ~ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION;
+#endif
+
+ DCHECK(!origin_type_mask)
+ << "DoesOriginMatchEmbedderMask must handle all origin types.";
+
+ return false;
+}
+
} // namespace
ChromeBrowsingDataRemoverDelegate::SubTask::SubTask(
@@ -311,27 +338,9 @@ ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() {
template_url_sub_.reset();
}
-bool ChromeBrowsingDataRemoverDelegate::DoesOriginMatchEmbedderMask(
- int origin_type_mask,
- const GURL& origin,
- storage::SpecialStoragePolicy* policy) const {
- DCHECK_EQ(0, origin_type_mask & (ORIGIN_TYPE_EMBEDDER_BEGIN - 1))
- << "|origin_type_mask| can only contain origin types defined in "
- << "the embedder.";
-
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- // Packaged apps and extensions match iff EXTENSION.
- if ((origin.GetOrigin().scheme() == extensions::kExtensionScheme) &&
- (origin_type_mask & ORIGIN_TYPE_EXTENSION)) {
- return true;
- }
- origin_type_mask &= ~ORIGIN_TYPE_EXTENSION;
-#endif
-
- DCHECK(!origin_type_mask)
- << "DoesOriginMatchEmbedderMask must handle all origin types.";
-
- return false;
+BrowsingDataRemoverDelegate::EmbedderOriginTypeMatcher
+ChromeBrowsingDataRemoverDelegate::GetOriginTypeMatcher() const {
+ return base::Bind(DoesOriginMatchEmbedderMask);
}
void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(

Powered by Google App Engine
This is Rietveld 408576698