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

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 8cd800cdec188cbeaf8810ade0ad335af74176b5..f2d3b7e08185b56cdd0b133d1ea42c34f271ce9f 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,
@@ -768,6 +777,23 @@ void BrowsingDataRemover::DoClearCache(int rv) {
}
}
+void BrowsingDataRemover::ClearedShaderCache() {
+ // This function should be called on the UI thread.
+ 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