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

Unified Diff: webkit/dom_storage/dom_storage_context.cc

Issue 10413072: Teaching BrowsingDataRemover how to delete application data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ugh. Created 8 years, 7 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: webkit/dom_storage/dom_storage_context.cc
diff --git a/webkit/dom_storage/dom_storage_context.cc b/webkit/dom_storage/dom_storage_context.cc
index e31019067cea7b9922f5e894dd30e741c1d0b5c9..9b0a93076a196cc92820fc387709aebe4499dccc 100644
--- a/webkit/dom_storage/dom_storage_context.cc
+++ b/webkit/dom_storage/dom_storage_context.cc
@@ -95,14 +95,29 @@ void DomStorageContext::DeleteOrigin(const GURL& origin) {
local->DeleteOrigin(origin);
}
-void DomStorageContext::DeleteDataModifiedSince(const base::Time& cutoff) {
+void DomStorageContext::DeleteDataModifiedSince(
+ const base::Time& cutoff,
+ int origin_set_mask) {
std::vector<UsageInfo> infos;
const bool kIncludeFileInfo = true;
GetUsageInfo(&infos, kIncludeFileInfo);
for (size_t i = 0; i < infos.size(); ++i) {
if (infos[i].last_modified > cutoff) {
if (!special_storage_policy_ ||
- !special_storage_policy_->IsStorageProtected(infos[i].origin)) {
+ // Skip packaged apps and extensions (non-websafe origin) unless
+ // EXTENSION is set.
+ ((origin_set_mask & quota::SpecialStoragePolicy::EXTENSION) &&
+ infos[i].origin.SchemeIs("chrome-extension")) ||
+ // Skip the open web (unprotected and websafe origins) unless
+ // UNPROTECTED_WEB is set.
+ ((origin_set_mask & quota::SpecialStoragePolicy::UNPROTECTED_WEB) &&
+ !infos[i].origin.SchemeIs("chrome-extension") &&
+ !special_storage_policy_->IsStorageProtected(infos[i].origin)) ||
+ // Skip hosted applications (protected and websafe origins) unless
+ // PROTECTED_WEB is set.
+ ((origin_set_mask & quota::SpecialStoragePolicy::PROTECTED_WEB) &&
+ !infos[i].origin.SchemeIs("chrome-extension") &&
+ special_storage_policy_->IsStorageProtected(infos[i].origin))) {
DeleteOrigin(infos[i].origin);
}
}

Powered by Google App Engine
This is Rietveld 408576698