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

Unified Diff: chrome/browser/cookies_tree_model.h

Issue 523139: Adds local storage nodes to cookie tree model and cookies view. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 10 years, 11 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/cocoa/preferences_window_controller.mm ('k') | chrome/browser/cookies_tree_model.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cookies_tree_model.h
===================================================================
--- chrome/browser/cookies_tree_model.h (revision 36995)
+++ chrome/browser/cookies_tree_model.h (working copy)
@@ -10,9 +10,12 @@
#include "app/tree_node_model.h"
#include "base/scoped_ptr.h"
+#include "chrome/browser/browsing_data_local_storage_helper.h"
#include "net/base/cookie_monster.h"
class CookiesTreeModel;
+class CookieTreeLocalStorageNode;
+class CookieTreeLocalStoragesNode;
class CookieTreeCookieNode;
class CookieTreeCookiesNode;
class CookieTreeOriginNode;
@@ -33,18 +36,27 @@
TYPE_ROOT, // This is used for CookieTreeRootNode nodes.
TYPE_ORIGIN, // This is used for CookieTreeOriginNode nodes.
TYPE_COOKIES, // This is used for CookieTreeCookiesNode nodes.
- TYPE_COOKIE // This is used for CookieTreeCookieNode nodes.
+ TYPE_COOKIE, // This is used for CookieTreeCookieNode nodes.
+ TYPE_LOCAL_STORAGES, // This is used for CookieTreeLocalStoragesNode.
+ TYPE_LOCAL_STORAGE, // This is used for CookieTreeLocalStorageNode.
};
DetailedInfo(const std::wstring& origin, NodeType node_type,
- const net::CookieMonster::CookieListPair* cookie)
+ const net::CookieMonster::CookieListPair* cookie,
+ const BrowsingDataLocalStorageHelper::LocalStorageInfo*
+ local_storage_info)
: origin(origin),
node_type(node_type),
- cookie(cookie) {}
+ cookie(cookie),
+ local_storage_info(local_storage_info) {
+ if (node_type == TYPE_LOCAL_STORAGE)
+ DCHECK(local_storage_info);
+ }
std::wstring origin;
NodeType node_type;
const net::CookieMonster::CookieListPair* cookie;
+ const BrowsingDataLocalStorageHelper::LocalStorageInfo* local_storage_info;
};
CookieTreeNode() {}
@@ -79,7 +91,7 @@
// CookieTreeNode methods:
virtual CookiesTreeModel* GetModel() const { return model_; }
virtual DetailedInfo GetDetailedInfo() const {
- return DetailedInfo(std::wstring(), DetailedInfo::TYPE_ROOT, NULL);
+ return DetailedInfo(std::wstring(), DetailedInfo::TYPE_ROOT, NULL, NULL);
}
private:
@@ -92,16 +104,19 @@
class CookieTreeOriginNode : public CookieTreeNode {
public:
explicit CookieTreeOriginNode(const std::wstring& origin)
- : CookieTreeNode(origin), cookies_child_(NULL) {}
+ : CookieTreeNode(origin), cookies_child_(NULL),
+ local_storages_child_(NULL) {}
virtual ~CookieTreeOriginNode() {}
// CookieTreeNode methods:
virtual DetailedInfo GetDetailedInfo() const {
- return DetailedInfo(GetTitle(), DetailedInfo::TYPE_ORIGIN, NULL);
+ return DetailedInfo(GetTitle(), DetailedInfo::TYPE_ORIGIN, NULL, NULL);
}
// CookieTreeOriginNode methods:
CookieTreeCookiesNode* GetOrCreateCookiesNode();
+ CookieTreeLocalStoragesNode* GetOrCreateLocalStoragesNode();
+
private:
// A pointer to the COOKIES node. Eventually we will also have database,
@@ -111,6 +126,7 @@
// DATABASES etc node seems less preferable than storing an extra pointer per
// origin.
CookieTreeCookiesNode* cookies_child_;
+ CookieTreeLocalStoragesNode* local_storages_child_;
DISALLOW_COPY_AND_ASSIGN(CookieTreeOriginNode);
};
@@ -124,7 +140,7 @@
// CookieTreeNode methods:
virtual DetailedInfo GetDetailedInfo() const {
return DetailedInfo(GetParent()->GetTitle(), DetailedInfo::TYPE_COOKIES,
- NULL);
+ NULL, NULL);
}
// CookieTreeCookiesNode methods:
@@ -147,7 +163,7 @@
virtual void DeleteStoredObjects();
virtual DetailedInfo GetDetailedInfo() const {
return DetailedInfo(GetParent()->GetParent()->GetTitle(),
- DetailedInfo::TYPE_COOKIE, cookie_);
+ DetailedInfo::TYPE_COOKIE, cookie_, NULL);
}
private:
@@ -165,11 +181,66 @@
DISALLOW_COPY_AND_ASSIGN(CookieTreeCookieNode);
};
+// CookieTreeLocalStoragesNode -------------------------------------------------
+class CookieTreeLocalStoragesNode : public CookieTreeNode {
+ public:
+ CookieTreeLocalStoragesNode();
+ virtual ~CookieTreeLocalStoragesNode() {}
+ // CookieTreeNode methods:
+ virtual DetailedInfo GetDetailedInfo() const {
+ return DetailedInfo(GetParent()->GetTitle(),
+ DetailedInfo::TYPE_LOCAL_STORAGES,
+ NULL,
+ NULL);
+ }
+
+ // CookieTreeStoragesNode methods:
+ void AddLocalStorageNode(CookieTreeLocalStorageNode* child);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CookieTreeLocalStoragesNode);
+};
+
+class CookieTreeLocalStorageNode : public CookieTreeNode {
+ public:
+ friend class CookieTreeLocalStoragesNode;
+
+ // Does not take ownership of local_storage_info, and local_storage_info
+ // should remain valid at least as long as the CookieTreeStorageNode is valid.
+ explicit CookieTreeLocalStorageNode(
+ BrowsingDataLocalStorageHelper::LocalStorageInfo* local_storage_info);
+ virtual ~CookieTreeLocalStorageNode() {}
+
+ // CookieTreeStorageNode methods:
+ virtual void DeleteStoredObjects();
+ virtual DetailedInfo GetDetailedInfo() const {
+ return DetailedInfo(GetParent()->GetParent()->GetTitle(),
+ DetailedInfo::TYPE_LOCAL_STORAGE, NULL,
+ local_storage_info_);
+ }
+
+ private:
+ // Comparator functor, takes CookieTreeNode so that we can use it in
+ // lower_bound using children()'s iterators, which are CookieTreeNode*.
+ class CookieNodeComparator {
+ public:
+ bool operator() (const CookieTreeNode* lhs, const CookieTreeNode* rhs);
+ };
+
+ // local_storage_info_ is not owned by the node, and is expected to remain
+ // valid as long as the CookieTreeLocalStorageNode is valid.
+ BrowsingDataLocalStorageHelper::LocalStorageInfo* local_storage_info_;
+
+ DISALLOW_COPY_AND_ASSIGN(CookieTreeLocalStorageNode);
+};
+
class CookiesTreeModel : public TreeNodeModel<CookieTreeNode> {
public:
- explicit CookiesTreeModel(Profile* profile);
- virtual ~CookiesTreeModel() {}
+ CookiesTreeModel(
+ Profile* profile,
+ BrowsingDataLocalStorageHelper* browsing_data_local_storage_helper);
+ virtual ~CookiesTreeModel();
// TreeModel methods:
// Returns the set of icons for the nodes in the tree. You only need override
@@ -185,6 +256,8 @@
void DeleteCookie(const net::CookieMonster::CookieListPair& cookie);
void DeleteAllCookies();
void DeleteCookieNode(CookieTreeNode* cookie_node);
+ void DeleteLocalStorage(const FilePath& file_path);
+ void DeleteAllLocalStorage();
// Filter the origins to only display matched results.
void UpdateSearchResults(const std::wstring& filter);
@@ -192,18 +265,28 @@
private:
enum CookieIconIndex {
ORIGIN = 0,
- COOKIE = 1
+ COOKIE = 1,
+ LOCAL_STORAGE = 2,
};
typedef net::CookieMonster::CookieList CookieList;
typedef std::vector<net::CookieMonster::CookieListPair*> CookiePtrList;
+ typedef std::vector<BrowsingDataLocalStorageHelper::LocalStorageInfo>
+ LocalStorageInfoList;
void LoadCookies();
void LoadCookiesWithFilter(const std::wstring& filter);
+ void OnStorageModelInfoLoaded(const LocalStorageInfoList& local_storage_info);
+
+ void PopulateLocalStorageInfoWithFilter(const std::wstring& filter);
+
// The profile from which this model sources cookies.
Profile* profile_;
CookieList all_cookies_;
+ scoped_refptr<BrowsingDataLocalStorageHelper> local_storage_helper_;
+ LocalStorageInfoList local_storage_info_list_;
+
DISALLOW_COPY_AND_ASSIGN(CookiesTreeModel);
};
« no previous file with comments | « chrome/browser/cocoa/preferences_window_controller.mm ('k') | chrome/browser/cookies_tree_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698