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

Unified Diff: chrome/browser/cookies_tree_model.cc

Issue 7387007: Adding usage and quota entry to chrome://settings/cookies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed leak suppressions. Created 9 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
« no previous file with comments | « chrome/browser/cookies_tree_model.h ('k') | chrome/browser/cookies_tree_model_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cookies_tree_model.cc
diff --git a/chrome/browser/cookies_tree_model.cc b/chrome/browser/cookies_tree_model.cc
index 8a001f69135072f5b3a019474b1a25945bb49eb3..e626f663ca988fcaab224583ffc1e22ffe13d9bd 100644
--- a/chrome/browser/cookies_tree_model.cc
+++ b/chrome/browser/cookies_tree_model.cc
@@ -68,7 +68,7 @@ void CookieTreeCookieNode::DeleteStoredObjects() {
CookieTreeNode::DetailedInfo CookieTreeCookieNode::GetDetailedInfo() const {
return DetailedInfo(parent()->parent()->GetTitle(),
DetailedInfo::TYPE_COOKIE,
- cookie_, NULL, NULL, NULL, NULL, NULL, NULL);
+ cookie_, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
namespace {
@@ -148,7 +148,7 @@ void CookieTreeAppCacheNode::DeleteStoredObjects() {
CookieTreeNode::DetailedInfo CookieTreeAppCacheNode::GetDetailedInfo() const {
return DetailedInfo(parent()->parent()->GetTitle(),
DetailedInfo::TYPE_APPCACHE,
- NULL, NULL, NULL, NULL, appcache_info_, NULL, NULL);
+ NULL, NULL, NULL, NULL, appcache_info_, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -172,7 +172,7 @@ void CookieTreeDatabaseNode::DeleteStoredObjects() {
CookieTreeNode::DetailedInfo CookieTreeDatabaseNode::GetDetailedInfo() const {
return DetailedInfo(parent()->parent()->GetTitle(),
DetailedInfo::TYPE_DATABASE,
- NULL, database_info_, NULL, NULL, NULL, NULL, NULL);
+ NULL, database_info_, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -198,7 +198,8 @@ CookieTreeNode::DetailedInfo
CookieTreeLocalStorageNode::GetDetailedInfo() const {
return DetailedInfo(parent()->parent()->GetTitle(),
DetailedInfo::TYPE_LOCAL_STORAGE,
- NULL, NULL, local_storage_info_, NULL, NULL, NULL, NULL);
+ NULL, NULL, local_storage_info_, NULL, NULL, NULL, NULL,
+ NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -220,7 +221,7 @@ CookieTreeSessionStorageNode::GetDetailedInfo() const {
return DetailedInfo(parent()->parent()->GetTitle(),
DetailedInfo::TYPE_SESSION_STORAGE,
NULL, NULL, NULL, session_storage_info_, NULL, NULL,
- NULL);
+ NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -245,7 +246,8 @@ void CookieTreeIndexedDBNode::DeleteStoredObjects() {
CookieTreeNode::DetailedInfo CookieTreeIndexedDBNode::GetDetailedInfo() const {
return DetailedInfo(parent()->parent()->GetTitle(),
DetailedInfo::TYPE_INDEXED_DB,
- NULL, NULL, NULL, NULL, NULL, indexed_db_info_, NULL);
+ NULL, NULL, NULL, NULL, NULL, indexed_db_info_, NULL,
+ NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -268,7 +270,29 @@ void CookieTreeFileSystemNode::DeleteStoredObjects() {
CookieTreeNode::DetailedInfo CookieTreeFileSystemNode::GetDetailedInfo() const {
return DetailedInfo(parent()->parent()->GetTitle(),
DetailedInfo::TYPE_FILE_SYSTEM,
- NULL, NULL, NULL, NULL, NULL, NULL, file_system_info_);
+ NULL, NULL, NULL, NULL, NULL, NULL, file_system_info_,
+ NULL);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// CookieTreeQuotaNode, public:
+
+CookieTreeQuotaNode::CookieTreeQuotaNode(
+ BrowsingDataQuotaHelper::QuotaInfo* quota_info)
+ : CookieTreeNode(UTF8ToUTF16(quota_info->host)),
+ quota_info_(quota_info) {
+}
+
+CookieTreeQuotaNode::~CookieTreeQuotaNode() {}
+
+void CookieTreeQuotaNode::DeleteStoredObjects() {
+ GetModel()->quota_helper_->DeleteQuotaHost(quota_info_->host);
+}
+
+CookieTreeNode::DetailedInfo CookieTreeQuotaNode::GetDetailedInfo() const {
+ return DetailedInfo(parent()->parent()->GetTitle(),
+ DetailedInfo::TYPE_QUOTA,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, quota_info_);
}
///////////////////////////////////////////////////////////////////////////////
@@ -310,7 +334,7 @@ CookiesTreeModel* CookieTreeRootNode::GetModel() const {
CookieTreeNode::DetailedInfo CookieTreeRootNode::GetDetailedInfo() const {
return DetailedInfo(string16(),
DetailedInfo::TYPE_ROOT,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -331,6 +355,7 @@ CookieTreeOriginNode::CookieTreeOriginNode(const GURL& url)
appcaches_child_(NULL),
indexed_dbs_child_(NULL),
file_systems_child_(NULL),
+ quota_child_(NULL),
url_(url) {}
CookieTreeOriginNode::~CookieTreeOriginNode() {}
@@ -338,7 +363,7 @@ CookieTreeOriginNode::~CookieTreeOriginNode() {}
CookieTreeNode::DetailedInfo CookieTreeOriginNode::GetDetailedInfo() const {
return DetailedInfo(GetTitle(),
DetailedInfo::TYPE_ORIGIN,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
CookieTreeCookiesNode* CookieTreeOriginNode::GetOrCreateCookiesNode() {
@@ -399,6 +424,15 @@ CookieTreeFileSystemsNode* CookieTreeOriginNode::GetOrCreateFileSystemsNode() {
return file_systems_child_;
}
+CookieTreeQuotaNode* CookieTreeOriginNode::UpdateOrCreateQuotaNode(
+ BrowsingDataQuotaHelper::QuotaInfo* quota_info) {
+ if (quota_child_)
+ return quota_child_;
+ quota_child_ = new CookieTreeQuotaNode(quota_info);
+ AddChildSortedByTitle(quota_child_);
+ return quota_child_;
+}
+
void CookieTreeOriginNode::CreateContentException(
HostContentSettingsMap* content_settings, ContentSetting setting) const {
if (CanCreateContentException()) {
@@ -427,7 +461,7 @@ CookieTreeCookiesNode::~CookieTreeCookiesNode() {
CookieTreeNode::DetailedInfo CookieTreeCookiesNode::GetDetailedInfo() const {
return DetailedInfo(parent()->GetTitle(),
DetailedInfo::TYPE_COOKIES,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -443,7 +477,7 @@ CookieTreeAppCachesNode::~CookieTreeAppCachesNode() {}
CookieTreeNode::DetailedInfo CookieTreeAppCachesNode::GetDetailedInfo() const {
return DetailedInfo(parent()->GetTitle(),
DetailedInfo::TYPE_APPCACHES,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -458,7 +492,7 @@ CookieTreeDatabasesNode::~CookieTreeDatabasesNode() {}
CookieTreeNode::DetailedInfo CookieTreeDatabasesNode::GetDetailedInfo() const {
return DetailedInfo(parent()->GetTitle(),
DetailedInfo::TYPE_DATABASES,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -474,7 +508,7 @@ CookieTreeNode::DetailedInfo
CookieTreeLocalStoragesNode::GetDetailedInfo() const {
return DetailedInfo(parent()->GetTitle(),
DetailedInfo::TYPE_LOCAL_STORAGES,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -490,7 +524,7 @@ CookieTreeNode::DetailedInfo
CookieTreeSessionStoragesNode::GetDetailedInfo() const {
return DetailedInfo(parent()->GetTitle(),
DetailedInfo::TYPE_SESSION_STORAGES,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -506,7 +540,7 @@ CookieTreeNode::DetailedInfo
CookieTreeIndexedDBsNode::GetDetailedInfo() const {
return DetailedInfo(parent()->GetTitle(),
DetailedInfo::TYPE_INDEXED_DBS,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -522,7 +556,7 @@ CookieTreeNode::DetailedInfo
CookieTreeFileSystemsNode::GetDetailedInfo() const {
return DetailedInfo(parent()->GetTitle(),
DetailedInfo::TYPE_FILE_SYSTEMS,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
///////////////////////////////////////////////////////////////////////////////
@@ -558,6 +592,7 @@ CookiesTreeModel::CookiesTreeModel(
BrowsingDataAppCacheHelper* appcache_helper,
BrowsingDataIndexedDBHelper* indexed_db_helper,
BrowsingDataFileSystemHelper* file_system_helper,
+ BrowsingDataQuotaHelper* quota_helper,
bool use_cookie_source)
: ALLOW_THIS_IN_INITIALIZER_LIST(ui::TreeNodeModel<CookieTreeNode>(
new CookieTreeRootNode(this))),
@@ -568,6 +603,7 @@ CookiesTreeModel::CookiesTreeModel(
session_storage_helper_(session_storage_helper),
indexed_db_helper_(indexed_db_helper),
file_system_helper_(file_system_helper),
+ quota_helper_(quota_helper),
batch_update_(0),
use_cookie_source_(use_cookie_source) {
LoadCookies();
@@ -598,6 +634,11 @@ CookiesTreeModel::CookiesTreeModel(
file_system_helper_->StartFetching(NewCallback(
this, &CookiesTreeModel::OnFileSystemModelInfoLoaded));
}
+
+ if (quota_helper_) {
+ quota_helper_->StartFetching(NewCallback(
+ this, &CookiesTreeModel::OnQuotaModelInfoLoaded));
+ }
}
CookiesTreeModel::~CookiesTreeModel() {
@@ -611,6 +652,8 @@ CookiesTreeModel::~CookiesTreeModel() {
indexed_db_helper_->CancelNotification();
if (file_system_helper_)
file_system_helper_->CancelNotification();
+ if (quota_helper_)
+ quota_helper_->CancelNotification();
}
///////////////////////////////////////////////////////////////////////////////
@@ -650,6 +693,8 @@ int CookiesTreeModel::GetIconIndex(ui::TreeModelNode* node) {
return DATABASE; // ditto
case CookieTreeNode::DetailedInfo::TYPE_FILE_SYSTEM:
return DATABASE; // ditto
+ case CookieTreeNode::DetailedInfo::TYPE_QUOTA:
+ return -1;
default:
break;
}
@@ -726,6 +771,7 @@ void CookiesTreeModel::UpdateSearchResults(const std::wstring& filter) {
PopulateAppCacheInfoWithFilter(filter);
PopulateIndexedDBInfoWithFilter(filter);
PopulateFileSystemInfoWithFilter(filter);
+ PopulateQuotaInfoWithFilter(filter);
NotifyObserverTreeNodeChanged(root);
NotifyObserverEndBatch();
}
@@ -944,6 +990,32 @@ void CookiesTreeModel::PopulateFileSystemInfoWithFilter(
NotifyObserverEndBatch();
}
+void CookiesTreeModel::OnQuotaModelInfoLoaded(
+ const QuotaInfoArray& quota_info) {
+ quota_info_list_ = quota_info;
+ PopulateQuotaInfoWithFilter(std::wstring());
+}
+
+void CookiesTreeModel::PopulateQuotaInfoWithFilter(
+ const std::wstring& filter) {
+ if (quota_info_list_.empty())
+ return;
+ CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot());
+ NotifyObserverBeginBatch();
+ for (QuotaInfoArray::iterator quota_info = quota_info_list_.begin();
+ quota_info != quota_info_list_.end();
+ ++quota_info) {
+ if (!filter.size() ||
+ (UTF8ToWide(quota_info->host).find(filter) != std::wstring::npos)) {
+ CookieTreeOriginNode* origin_node =
+ root->GetOrCreateOriginNode(GURL("http://" + quota_info->host));
+ origin_node->UpdateOrCreateQuotaNode(&*quota_info);
+ }
+ }
+ NotifyObserverTreeNodeChanged(root);
+ NotifyObserverEndBatch();
+}
+
void CookiesTreeModel::NotifyObserverBeginBatch() {
// Only notify the model once if we're batching in a nested manner.
if (batch_update_++ == 0) {
« no previous file with comments | « chrome/browser/cookies_tree_model.h ('k') | chrome/browser/cookies_tree_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698