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

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: 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 d7775964d9ef28866cc8da6896519c6712728df0..0a62a4b09d2305b7765330594bbe2b4db9d6f083 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover.cc
@@ -148,6 +148,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) {
@@ -506,6 +507,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;
@@ -575,7 +583,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,
@@ -769,6 +778,23 @@ void BrowsingDataRemover::DoClearCache(int rv) {
}
}
+void BrowsingDataRemover::ClearedShaderCache() {
+ // This function should be called on the UI thread.
jam 2013/04/02 17:34:50 nit: redundant comment, remove per style guide
dsinclair 2013/04/03 18:59:23 Done.
+ 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