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

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

Issue 1297093002: Cache Storage API: Hook up to chrome://settings/cookies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase onto https://codereview.chromium.org/1297023004 Created 5 years, 4 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/cookies_tree_model.cc
diff --git a/chrome/browser/browsing_data/cookies_tree_model.cc b/chrome/browser/browsing_data/cookies_tree_model.cc
index 40f2a28fd52f21b96ba504b902bbc5f2e6914b6e..39a6f5e74504d94be2d6e1e63993cd50e3538b22 100644
--- a/chrome/browser/browsing_data/cookies_tree_model.cc
+++ b/chrome/browser/browsing_data/cookies_tree_model.cc
@@ -153,6 +153,8 @@ bool TypeIsProtected(CookieTreeNode::DetailedInfo::NodeType type) {
return false;
case CookieTreeNode::DetailedInfo::TYPE_SERVICE_WORKER:
return true;
+ case CookieTreeNode::DetailedInfo::TYPE_CACHE_STORAGE:
+ return true;
case CookieTreeNode::DetailedInfo::TYPE_FLASH_LSO:
return false;
default:
@@ -272,6 +274,14 @@ CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitServiceWorker(
return *this;
}
+CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitCacheStorage(
+ const content::CacheStorageUsageInfo* cache_storage_info) {
+ Init(TYPE_CACHE_STORAGE);
+ this->cache_storage_info = cache_storage_info;
+ this->origin = cache_storage_info->origin;
+ return *this;
+}
+
CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitFlashLSO(
const std::string& flash_lso_domain) {
Init(TYPE_FLASH_LSO);
@@ -564,6 +574,31 @@ CookieTreeNode::DetailedInfo CookieTreeServiceWorkerNode::GetDetailedInfo()
}
///////////////////////////////////////////////////////////////////////////////
+// CookieTreeCacheStorageNode, public:
+
+CookieTreeCacheStorageNode::CookieTreeCacheStorageNode(
+ std::list<content::CacheStorageUsageInfo>::iterator cache_storage_info)
+ : CookieTreeNode(base::UTF8ToUTF16(cache_storage_info->origin.spec())),
+ cache_storage_info_(cache_storage_info) {}
+
+CookieTreeCacheStorageNode::~CookieTreeCacheStorageNode() {}
+
+void CookieTreeCacheStorageNode::DeleteStoredObjects() {
+ LocalDataContainer* container = GetLocalDataContainerForNode(this);
+
+ if (container) {
+ container->cache_storage_helper_->DeleteCacheStorage(
+ cache_storage_info_->origin);
+ container->cache_storage_info_list_.erase(cache_storage_info_);
+ }
+}
+
+CookieTreeNode::DetailedInfo CookieTreeCacheStorageNode::GetDetailedInfo()
+ const {
+ return DetailedInfo().InitCacheStorage(&*cache_storage_info_);
+}
+
+///////////////////////////////////////////////////////////////////////////////
// CookieTreeRootNode, public:
CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model)
@@ -713,6 +748,15 @@ CookieTreeHostNode::GetOrCreateServiceWorkersNode() {
return service_workers_child_;
}
+CookieTreeCacheStoragesNode*
+CookieTreeHostNode::GetOrCreateCacheStoragesNode() {
+ if (cache_storages_child_)
+ return cache_storages_child_;
+ cache_storages_child_ = new CookieTreeCacheStoragesNode;
+ AddChildSortedByTitle(cache_storages_child_);
+ return cache_storages_child_;
+}
+
CookieTreeFlashLSONode* CookieTreeHostNode::GetOrCreateFlashLSONode(
const std::string& domain) {
DCHECK_EQ(GetHost(), domain);
@@ -879,6 +923,19 @@ CookieTreeNode::DetailedInfo CookieTreeServiceWorkersNode::GetDetailedInfo()
}
///////////////////////////////////////////////////////////////////////////////
+// CookieTreeCacheStoragesNode, public:
+
+CookieTreeCacheStoragesNode::CookieTreeCacheStoragesNode()
+ : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_CACHE_STORAGE)) {}
+
+CookieTreeCacheStoragesNode::~CookieTreeCacheStoragesNode() {}
+
+CookieTreeNode::DetailedInfo CookieTreeCacheStoragesNode::GetDetailedInfo()
+ const {
+ return DetailedInfo().Init(DetailedInfo::TYPE_CACHE_STORAGES);
+}
+
+///////////////////////////////////////////////////////////////////////////////
// CookieTreeFlashLSONode
CookieTreeFlashLSONode::CookieTreeFlashLSONode(
const std::string& domain)
@@ -998,6 +1055,8 @@ int CookiesTreeModel::GetIconIndex(ui::TreeModelNode* node) {
return COOKIE; // It's kinda like a cookie?
case CookieTreeNode::DetailedInfo::TYPE_SERVICE_WORKER:
return DATABASE; // Just like appcache
+ case CookieTreeNode::DetailedInfo::TYPE_CACHE_STORAGE:
+ return DATABASE; // ditto
default:
break;
}
@@ -1044,6 +1103,7 @@ void CookiesTreeModel::UpdateSearchResults(const base::string16& filter) {
PopulateQuotaInfoWithFilter(data_container(), &notifier, filter);
PopulateChannelIDInfoWithFilter(data_container(), &notifier, filter);
PopulateServiceWorkerUsageInfoWithFilter(data_container(), &notifier, filter);
+ PopulateCacheStorageUsageInfoWithFilter(data_container(), &notifier, filter);
}
#if defined(ENABLE_EXTENSIONS)
@@ -1128,6 +1188,13 @@ void CookiesTreeModel::PopulateServiceWorkerUsageInfo(
container, &notifier, base::string16());
}
+void CookiesTreeModel::PopulateCacheStorageUsageInfo(
+ LocalDataContainer* container) {
+ ScopedBatchUpdateNotifier notifier(this, GetRoot());
+ PopulateCacheStorageUsageInfoWithFilter(container, &notifier,
+ base::string16());
+}
+
void CookiesTreeModel::PopulateFlashLSOInfo(
LocalDataContainer* container) {
ScopedBatchUpdateNotifier notifier(this, GetRoot());
@@ -1361,6 +1428,33 @@ void CookiesTreeModel::PopulateServiceWorkerUsageInfoWithFilter(
}
}
+void CookiesTreeModel::PopulateCacheStorageUsageInfoWithFilter(
+ LocalDataContainer* container,
+ ScopedBatchUpdateNotifier* notifier,
+ const base::string16& filter) {
+ CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot());
+
+ if (container->cache_storage_info_list_.empty())
+ return;
+
+ notifier->StartBatchUpdate();
+ for (CacheStorageUsageInfoList::iterator cache_storage_info =
+ container->cache_storage_info_list_.begin();
+ cache_storage_info != container->cache_storage_info_list_.end();
+ ++cache_storage_info) {
+ const GURL& origin = cache_storage_info->origin;
+
+ if (filter.empty() || (CookieTreeHostNode::TitleForUrl(origin)
+ .find(filter) != base::string16::npos)) {
+ CookieTreeHostNode* host_node = root->GetOrCreateHostNode(origin);
+ CookieTreeCacheStoragesNode* cache_storages_node =
+ host_node->GetOrCreateCacheStoragesNode();
+ cache_storages_node->AddCacheStorageNode(
+ new CookieTreeCacheStorageNode(cache_storage_info));
+ }
+ }
+}
+
void CookiesTreeModel::PopulateFileSystemInfoWithFilter(
LocalDataContainer* container,
ScopedBatchUpdateNotifier* notifier,
« no previous file with comments | « chrome/browser/browsing_data/cookies_tree_model.h ('k') | chrome/browser/browsing_data/cookies_tree_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698