summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cookies_tree_model.h
diff options
context:
space:
mode:
authortzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-05 13:01:48 +0000
committertzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-05 13:01:48 +0000
commitcd9adcb8fd0c85a18fa78ce4cda3a7981d9aae07 (patch)
treeeadb0d3a51458eb2a8906b499b32cd58ec31cf4e /chrome/browser/cookies_tree_model.h
parent18c685f5c5b5bc9cb099803a2088709c0aa5c471 (diff)
downloadchromium_src-cd9adcb8fd0c85a18fa78ce4cda3a7981d9aae07.zip
chromium_src-cd9adcb8fd0c85a18fa78ce4cda3a7981d9aae07.tar.gz
chromium_src-cd9adcb8fd0c85a18fa78ce4cda3a7981d9aae07.tar.bz2
Adding usage entry to chrome://settings/cookies.
BUG=88644 TEST='BrowsingDataQuotaHelperTest.*' Review URL: http://codereview.chromium.org/7387007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95607 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cookies_tree_model.h')
-rw-r--r--chrome/browser/cookies_tree_model.h50
1 files changed, 44 insertions, 6 deletions
diff --git a/chrome/browser/cookies_tree_model.h b/chrome/browser/cookies_tree_model.h
index 1f1e8448..bf9dcae 100644
--- a/chrome/browser/cookies_tree_model.h
+++ b/chrome/browser/cookies_tree_model.h
@@ -21,6 +21,7 @@
#include "chrome/browser/browsing_data_file_system_helper.h"
#include "chrome/browser/browsing_data_indexed_db_helper.h"
#include "chrome/browser/browsing_data_local_storage_helper.h"
+#include "chrome/browser/browsing_data_quota_helper.h"
#include "chrome/common/content_settings.h"
#include "net/base/cookie_monster.h"
#include "ui/base/models/tree_node_model.h"
@@ -36,6 +37,7 @@ class CookieTreeFileSystemsNode;
class CookieTreeFileSystemNode;
class CookieTreeLocalStorageNode;
class CookieTreeLocalStoragesNode;
+class CookieTreeQuotaNode;
class CookieTreeSessionStorageNode;
class CookieTreeSessionStoragesNode;
class CookieTreeIndexedDBNode;
@@ -69,8 +71,9 @@ class CookieTreeNode : public ui::TreeNode<CookieTreeNode> {
TYPE_APPCACHE, // This is used for CookieTreeAppCacheNode.
TYPE_INDEXED_DBS, // This is used for CookieTreeIndexedDBsNode.
TYPE_INDEXED_DB, // This is used for CookieTreeIndexedDBNode.
- TYPE_FILE_SYSTEMS, // This is used for CookieTreeFileSystemsNode.
- TYPE_FILE_SYSTEM, // This is used for CookieTreeFileSystemNode.
+ TYPE_FILE_SYSTEMS, // This is used for CookieTreeFileSystemsNode.
+ TYPE_FILE_SYSTEM, // This is used for CookieTreeFileSystemNode.
+ TYPE_QUOTA, // This is used for CookieTreeQuotaNode.
};
// TODO(viettrungluu): Figure out whether we want to store |origin| as a
@@ -85,7 +88,8 @@ class CookieTreeNode : public ui::TreeNode<CookieTreeNode> {
session_storage_info,
const appcache::AppCacheInfo* appcache_info,
const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info,
- const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info)
+ const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info,
+ const BrowsingDataQuotaHelper::QuotaInfo* quota_info)
: origin(UTF16ToWideHack(origin)),
node_type(node_type),
cookie(cookie),
@@ -94,13 +98,15 @@ class CookieTreeNode : public ui::TreeNode<CookieTreeNode> {
session_storage_info(session_storage_info),
appcache_info(appcache_info),
indexed_db_info(indexed_db_info),
- file_system_info(file_system_info) {
+ file_system_info(file_system_info),
+ quota_info(quota_info) {
DCHECK((node_type != TYPE_DATABASE) || database_info);
DCHECK((node_type != TYPE_LOCAL_STORAGE) || local_storage_info);
DCHECK((node_type != TYPE_SESSION_STORAGE) || session_storage_info);
DCHECK((node_type != TYPE_APPCACHE) || appcache_info);
DCHECK((node_type != TYPE_INDEXED_DB) || indexed_db_info);
DCHECK((node_type != TYPE_FILE_SYSTEM) || file_system_info);
+ DCHECK((node_type != TYPE_QUOTA) || quota_info);
}
#if !defined(WCHAR_T_IS_UTF16)
DetailedInfo(const std::wstring& origin, NodeType node_type,
@@ -112,7 +118,8 @@ class CookieTreeNode : public ui::TreeNode<CookieTreeNode> {
session_storage_info,
const appcache::AppCacheInfo* appcache_info,
const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info,
- const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info)
+ const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info,
+ const BrowsingDataQuotaHelper::QuotaInfo* quota_info)
: origin(origin),
node_type(node_type),
cookie(cookie),
@@ -121,13 +128,15 @@ class CookieTreeNode : public ui::TreeNode<CookieTreeNode> {
session_storage_info(session_storage_info),
appcache_info(appcache_info),
indexed_db_info(indexed_db_info),
- file_system_info(file_system_info) {
+ file_system_info(file_system_info),
+ quota_info(quota_info) {
DCHECK((node_type != TYPE_DATABASE) || database_info);
DCHECK((node_type != TYPE_LOCAL_STORAGE) || local_storage_info);
DCHECK((node_type != TYPE_SESSION_STORAGE) || session_storage_info);
DCHECK((node_type != TYPE_APPCACHE) || appcache_info);
DCHECK((node_type != TYPE_INDEXED_DB) || indexed_db_info);
DCHECK((node_type != TYPE_FILE_SYSTEM) || file_system_info);
+ DCHECK((node_type != TYPE_QUOTA) || quota_info);
}
#endif
@@ -141,6 +150,7 @@ class CookieTreeNode : public ui::TreeNode<CookieTreeNode> {
const appcache::AppCacheInfo* appcache_info;
const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info;
const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info;
+ const BrowsingDataQuotaHelper::QuotaInfo* quota_info;
};
CookieTreeNode() {}
@@ -211,6 +221,8 @@ class CookieTreeOriginNode : public CookieTreeNode {
CookieTreeAppCachesNode* GetOrCreateAppCachesNode();
CookieTreeIndexedDBsNode* GetOrCreateIndexedDBsNode();
CookieTreeFileSystemsNode* GetOrCreateFileSystemsNode();
+ CookieTreeQuotaNode* UpdateOrCreateQuotaNode(
+ BrowsingDataQuotaHelper::QuotaInfo* quota_info);
// Creates an content exception for this origin of type
// CONTENT_SETTINGS_TYPE_COOKIES.
@@ -233,6 +245,7 @@ class CookieTreeOriginNode : public CookieTreeNode {
CookieTreeAppCachesNode* appcaches_child_;
CookieTreeIndexedDBsNode* indexed_dbs_child_;
CookieTreeFileSystemsNode* file_systems_child_;
+ CookieTreeQuotaNode* quota_child_;
// The URL for which this node was initially created.
GURL url_;
@@ -498,6 +511,24 @@ class CookieTreeIndexedDBsNode : public CookieTreeNode {
DISALLOW_COPY_AND_ASSIGN(CookieTreeIndexedDBsNode);
};
+// CookieTreeQuotaNode --------------------------------------------------
+class CookieTreeQuotaNode : public CookieTreeNode {
+ public:
+ // Does not take ownership of quota_info, and quota_info should remain valid
+ // at least as long as the CookieTreeQuotaNode is valid.
+ explicit CookieTreeQuotaNode(BrowsingDataQuotaHelper::QuotaInfo* quota_info);
+ virtual ~CookieTreeQuotaNode();
+
+ virtual void DeleteStoredObjects();
+ virtual DetailedInfo GetDetailedInfo() const;
+
+ private:
+ // quota_info_ is not owned by the node, and is expected to remain valid as
+ // long as the CookieTreeQuotaNode is valid.
+ BrowsingDataQuotaHelper::QuotaInfo* quota_info_;
+
+ DISALLOW_COPY_AND_ASSIGN(CookieTreeQuotaNode);
+};
// CookiesTreeModel -----------------------------------------------------------
class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> {
@@ -521,6 +552,7 @@ class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> {
BrowsingDataAppCacheHelper* appcache_helper,
BrowsingDataIndexedDBHelper* indexed_db_helper,
BrowsingDataFileSystemHelper* file_system_helper,
+ BrowsingDataQuotaHelper* quota_helper,
bool use_cookie_source);
virtual ~CookiesTreeModel();
@@ -565,6 +597,7 @@ class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> {
IndexedDBInfoList;
typedef std::vector<BrowsingDataFileSystemHelper::FileSystemInfo>
FileSystemInfoList;
+ typedef std::vector<BrowsingDataQuotaHelper::QuotaInfo> QuotaInfoArray;
void LoadCookies();
void LoadCookiesWithFilter(const std::wstring& filter);
@@ -579,6 +612,7 @@ class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> {
const IndexedDBInfoList& indexed_db_info);
void OnFileSystemModelInfoLoaded(
const FileSystemInfoList& file_system_info);
+ void OnQuotaModelInfoLoaded(const QuotaInfoArray& quota_info);
void PopulateAppCacheInfoWithFilter(const std::wstring& filter);
void PopulateDatabaseInfoWithFilter(const std::wstring& filter);
@@ -586,6 +620,7 @@ class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> {
void PopulateSessionStorageInfoWithFilter(const std::wstring& filter);
void PopulateIndexedDBInfoWithFilter(const std::wstring& filter);
void PopulateFileSystemInfoWithFilter(const std::wstring& filter);
+ void PopulateQuotaInfoWithFilter(const std::wstring& filter);
void NotifyObserverBeginBatch();
void NotifyObserverEndBatch();
@@ -602,10 +637,12 @@ class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> {
scoped_refptr<BrowsingDataLocalStorageHelper> session_storage_helper_;
scoped_refptr<BrowsingDataIndexedDBHelper> indexed_db_helper_;
scoped_refptr<BrowsingDataFileSystemHelper> file_system_helper_;
+ scoped_refptr<BrowsingDataQuotaHelper> quota_helper_;
LocalStorageInfoList local_storage_info_list_;
LocalStorageInfoList session_storage_info_list_;
IndexedDBInfoList indexed_db_info_list_;
FileSystemInfoList file_system_info_list_;
+ QuotaInfoArray quota_info_list_;
// The CookiesTreeModel maintains a separate list of observers that are
// specifically of the type CookiesTreeModel::Observer.
@@ -626,6 +663,7 @@ class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> {
friend class CookieTreeLocalStorageNode;
friend class CookieTreeIndexedDBNode;
friend class CookieTreeFileSystemNode;
+ friend class CookieTreeQuotaNode;
DISALLOW_COPY_AND_ASSIGN(CookiesTreeModel);
};