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

Unified Diff: chrome/browser/browsing_data/browsing_data_remover.cc

Issue 12500009: Add the ability to clear the shader disk cache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add AsyncClearDataBetween unittest. Created 7 years, 9 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/browsing_data_remover.cc
diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc
index db066be0ee3586de62da98e0ac75ca0c3f72beff..3a17e7902062193ff3d3867353c176ae7a7184f3 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover.cc
@@ -147,6 +147,7 @@ BrowsingDataRemover::BrowsingDataRemover(Profile* profile,
waiting_for_clear_quota_managed_data_(false),
waiting_for_clear_server_bound_certs_(false),
waiting_for_clear_session_storage_(false),
+ waiting_for_clear_shader_cache_(false),
remove_mask_(0),
remove_origin_(GURL()),
origin_set_mask_(0) {
@@ -505,6 +506,13 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
}
#endif
+ if (remove_mask & REMOVE_SHADER_CACHE) {
+ waiting_for_clear_shader_cache_ = true;
+ content::RecordAction(UserMetricsAction("ClearBrowsingData_ShaderCache"));
+
+ ClearShaderCacheOnUIThread();
+ }
+
// Always wipe accumulated network related data (TransportSecurityState and
// HttpServerPropertiesManager data).
waiting_for_clear_networking_history_ = true;
@@ -574,7 +582,8 @@ bool BrowsingDataRemover::AllDone() {
!waiting_for_clear_content_licenses_ &&
!waiting_for_clear_form_ &&
!waiting_for_clear_hostname_resolution_cache_ &&
- !waiting_for_clear_network_predictor_;
+ !waiting_for_clear_network_predictor_ &&
+ !waiting_for_clear_shader_cache_;
}
void BrowsingDataRemover::Observe(int type,
@@ -745,6 +754,22 @@ void BrowsingDataRemover::DoClearCache(int rv) {
}
}
+void BrowsingDataRemover::ClearedShaderCache() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ waiting_for_clear_shader_cache_ = false;
+ NotifyAndDeleteIfDone();
+}
+
+void BrowsingDataRemover::ClearShaderCacheOnUIThread() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ BrowserContext::GetDefaultStoragePartition(profile_)->AsyncClearDataBetween(
+ content::StoragePartition::kShaderStorage, delete_begin_, delete_end_,
+ base::Bind(&BrowsingDataRemover::ClearedShaderCache,
+ base::Unretained(this)));
+}
+
#if !defined(DISABLE_NACL)
void BrowsingDataRemover::ClearedNaClCache() {
// This function should be called on the UI thread.

Powered by Google App Engine
This is Rietveld 408576698