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

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 d1b39a63ddd48668395017f71abfbf6beba9da3f..83698fdbf7647f0752c5ab32925393d9a86902d9 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.
« no previous file with comments | « chrome/browser/browsing_data/browsing_data_remover.h ('k') | chrome/browser/ui/webui/options/clear_browser_data_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698