OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_COOKIES_TREE_MODEL_H_ | 5 #ifndef CHROME_BROWSER_COOKIES_TREE_MODEL_H_ |
6 #define CHROME_BROWSER_COOKIES_TREE_MODEL_H_ | 6 #define CHROME_BROWSER_COOKIES_TREE_MODEL_H_ |
7 | 7 |
8 // TODO(viettrungluu): This header file #includes far too much and has too much | 8 // TODO(viettrungluu): This header file #includes far too much and has too much |
9 // inline code (which shouldn't be inline). | 9 // inline code (which shouldn't be inline). |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... |
34 class CookieSettings; | 34 class CookieSettings; |
35 class CookiesTreeModel; | 35 class CookiesTreeModel; |
36 class CookieTreeAppCacheNode; | 36 class CookieTreeAppCacheNode; |
37 class CookieTreeAppCachesNode; | 37 class CookieTreeAppCachesNode; |
38 class CookieTreeCookieNode; | 38 class CookieTreeCookieNode; |
39 class CookieTreeCookiesNode; | 39 class CookieTreeCookiesNode; |
40 class CookieTreeDatabaseNode; | 40 class CookieTreeDatabaseNode; |
41 class CookieTreeDatabasesNode; | 41 class CookieTreeDatabasesNode; |
42 class CookieTreeFileSystemNode; | 42 class CookieTreeFileSystemNode; |
43 class CookieTreeFileSystemsNode; | 43 class CookieTreeFileSystemsNode; |
| 44 class CookieTreeFlashLSONode; |
44 class CookieTreeHostNode; | 45 class CookieTreeHostNode; |
45 class CookieTreeIndexedDBNode; | 46 class CookieTreeIndexedDBNode; |
46 class CookieTreeIndexedDBsNode; | 47 class CookieTreeIndexedDBsNode; |
47 class CookieTreeLocalStorageNode; | 48 class CookieTreeLocalStorageNode; |
48 class CookieTreeLocalStoragesNode; | 49 class CookieTreeLocalStoragesNode; |
49 class CookieTreeQuotaNode; | 50 class CookieTreeQuotaNode; |
50 class CookieTreeServerBoundCertNode; | 51 class CookieTreeServerBoundCertNode; |
51 class CookieTreeServerBoundCertsNode; | 52 class CookieTreeServerBoundCertsNode; |
52 class CookieTreeSessionStorageNode; | 53 class CookieTreeSessionStorageNode; |
53 class CookieTreeSessionStoragesNode; | 54 class CookieTreeSessionStoragesNode; |
(...skipping 28 matching lines...) Expand all Loading... |
82 TYPE_SESSION_STORAGE, // This is used for CookieTreeSessionStorageNode. | 83 TYPE_SESSION_STORAGE, // This is used for CookieTreeSessionStorageNode. |
83 TYPE_APPCACHES, // This is used for CookieTreeAppCachesNode. | 84 TYPE_APPCACHES, // This is used for CookieTreeAppCachesNode. |
84 TYPE_APPCACHE, // This is used for CookieTreeAppCacheNode. | 85 TYPE_APPCACHE, // This is used for CookieTreeAppCacheNode. |
85 TYPE_INDEXED_DBS, // This is used for CookieTreeIndexedDBsNode. | 86 TYPE_INDEXED_DBS, // This is used for CookieTreeIndexedDBsNode. |
86 TYPE_INDEXED_DB, // This is used for CookieTreeIndexedDBNode. | 87 TYPE_INDEXED_DB, // This is used for CookieTreeIndexedDBNode. |
87 TYPE_FILE_SYSTEMS, // This is used for CookieTreeFileSystemsNode. | 88 TYPE_FILE_SYSTEMS, // This is used for CookieTreeFileSystemsNode. |
88 TYPE_FILE_SYSTEM, // This is used for CookieTreeFileSystemNode. | 89 TYPE_FILE_SYSTEM, // This is used for CookieTreeFileSystemNode. |
89 TYPE_QUOTA, // This is used for CookieTreeQuotaNode. | 90 TYPE_QUOTA, // This is used for CookieTreeQuotaNode. |
90 TYPE_SERVER_BOUND_CERTS, // Used for CookieTreeServerBoundCertsNode. | 91 TYPE_SERVER_BOUND_CERTS, // Used for CookieTreeServerBoundCertsNode. |
91 TYPE_SERVER_BOUND_CERT, // Used for CookieTreeServerBoundCertNode. | 92 TYPE_SERVER_BOUND_CERT, // Used for CookieTreeServerBoundCertNode. |
| 93 TYPE_FLASH_LSO, // This is used for CookieTreeFlashLSONode. |
92 }; | 94 }; |
93 | 95 |
94 DetailedInfo(); | 96 DetailedInfo(); |
95 ~DetailedInfo(); | 97 ~DetailedInfo(); |
96 | 98 |
97 DetailedInfo& Init(NodeType type); | 99 DetailedInfo& Init(NodeType type); |
98 DetailedInfo& InitHost(const std::string& app_id, | 100 DetailedInfo& InitHost(const std::string& app_id, |
99 const std::string& app_name); | 101 const std::string& app_name); |
100 DetailedInfo& InitCookie(const net::CanonicalCookie* cookie); | 102 DetailedInfo& InitCookie(const net::CanonicalCookie* cookie); |
101 DetailedInfo& InitDatabase( | 103 DetailedInfo& InitDatabase( |
102 const BrowsingDataDatabaseHelper::DatabaseInfo* database_info); | 104 const BrowsingDataDatabaseHelper::DatabaseInfo* database_info); |
103 DetailedInfo& InitLocalStorage( | 105 DetailedInfo& InitLocalStorage( |
104 const BrowsingDataLocalStorageHelper::LocalStorageInfo* | 106 const BrowsingDataLocalStorageHelper::LocalStorageInfo* |
105 local_storage_info); | 107 local_storage_info); |
106 DetailedInfo& InitSessionStorage( | 108 DetailedInfo& InitSessionStorage( |
107 const BrowsingDataLocalStorageHelper::LocalStorageInfo* | 109 const BrowsingDataLocalStorageHelper::LocalStorageInfo* |
108 session_storage_info); | 110 session_storage_info); |
109 DetailedInfo& InitAppCache(const GURL& origin, | 111 DetailedInfo& InitAppCache(const GURL& origin, |
110 const appcache::AppCacheInfo* appcache_info); | 112 const appcache::AppCacheInfo* appcache_info); |
111 DetailedInfo& InitIndexedDB( | 113 DetailedInfo& InitIndexedDB( |
112 const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info); | 114 const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info); |
113 DetailedInfo& InitFileSystem( | 115 DetailedInfo& InitFileSystem( |
114 const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info); | 116 const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info); |
115 DetailedInfo& InitQuota( | 117 DetailedInfo& InitQuota( |
116 const BrowsingDataQuotaHelper::QuotaInfo* quota_info); | 118 const BrowsingDataQuotaHelper::QuotaInfo* quota_info); |
117 DetailedInfo& InitServerBoundCert( | 119 DetailedInfo& InitServerBoundCert( |
118 const net::ServerBoundCertStore::ServerBoundCert* server_bound_cert); | 120 const net::ServerBoundCertStore::ServerBoundCert* server_bound_cert); |
| 121 DetailedInfo& InitFlashLSO(const std::string& flash_lso_domain); |
119 | 122 |
120 std::string app_name; | 123 std::string app_name; |
121 std::string app_id; | 124 std::string app_id; |
122 NodeType node_type; | 125 NodeType node_type; |
123 GURL origin; | 126 GURL origin; |
124 const net::CanonicalCookie* cookie; | 127 const net::CanonicalCookie* cookie; |
125 const BrowsingDataDatabaseHelper::DatabaseInfo* database_info; | 128 const BrowsingDataDatabaseHelper::DatabaseInfo* database_info; |
126 const BrowsingDataLocalStorageHelper::LocalStorageInfo* local_storage_info; | 129 const BrowsingDataLocalStorageHelper::LocalStorageInfo* local_storage_info; |
127 const BrowsingDataLocalStorageHelper::LocalStorageInfo* | 130 const BrowsingDataLocalStorageHelper::LocalStorageInfo* |
128 session_storage_info; | 131 session_storage_info; |
129 const appcache::AppCacheInfo* appcache_info; | 132 const appcache::AppCacheInfo* appcache_info; |
130 const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info; | 133 const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info; |
131 const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info; | 134 const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info; |
132 const BrowsingDataQuotaHelper::QuotaInfo* quota_info; | 135 const BrowsingDataQuotaHelper::QuotaInfo* quota_info; |
133 const net::ServerBoundCertStore::ServerBoundCert* server_bound_cert; | 136 const net::ServerBoundCertStore::ServerBoundCert* server_bound_cert; |
| 137 std::string flash_lso_domain; |
134 }; | 138 }; |
135 | 139 |
136 CookieTreeNode() {} | 140 CookieTreeNode() {} |
137 explicit CookieTreeNode(const string16& title) | 141 explicit CookieTreeNode(const string16& title) |
138 : ui::TreeNode<CookieTreeNode>(title) {} | 142 : ui::TreeNode<CookieTreeNode>(title) {} |
139 virtual ~CookieTreeNode() {} | 143 virtual ~CookieTreeNode() {} |
140 | 144 |
141 // Delete backend storage for this node, and any children nodes. (E.g. delete | 145 // Delete backend storage for this node, and any children nodes. (E.g. delete |
142 // the cookie from CookieMonster, clear the database, and so forth.) | 146 // the cookie from CookieMonster, clear the database, and so forth.) |
143 virtual void DeleteStoredObjects(); | 147 virtual void DeleteStoredObjects(); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 CookieTreeCookiesNode* GetOrCreateCookiesNode(); | 201 CookieTreeCookiesNode* GetOrCreateCookiesNode(); |
198 CookieTreeDatabasesNode* GetOrCreateDatabasesNode(); | 202 CookieTreeDatabasesNode* GetOrCreateDatabasesNode(); |
199 CookieTreeLocalStoragesNode* GetOrCreateLocalStoragesNode(); | 203 CookieTreeLocalStoragesNode* GetOrCreateLocalStoragesNode(); |
200 CookieTreeSessionStoragesNode* GetOrCreateSessionStoragesNode(); | 204 CookieTreeSessionStoragesNode* GetOrCreateSessionStoragesNode(); |
201 CookieTreeAppCachesNode* GetOrCreateAppCachesNode(); | 205 CookieTreeAppCachesNode* GetOrCreateAppCachesNode(); |
202 CookieTreeIndexedDBsNode* GetOrCreateIndexedDBsNode(); | 206 CookieTreeIndexedDBsNode* GetOrCreateIndexedDBsNode(); |
203 CookieTreeFileSystemsNode* GetOrCreateFileSystemsNode(); | 207 CookieTreeFileSystemsNode* GetOrCreateFileSystemsNode(); |
204 CookieTreeServerBoundCertsNode* GetOrCreateServerBoundCertsNode(); | 208 CookieTreeServerBoundCertsNode* GetOrCreateServerBoundCertsNode(); |
205 CookieTreeQuotaNode* UpdateOrCreateQuotaNode( | 209 CookieTreeQuotaNode* UpdateOrCreateQuotaNode( |
206 std::list<BrowsingDataQuotaHelper::QuotaInfo>::iterator quota_info); | 210 std::list<BrowsingDataQuotaHelper::QuotaInfo>::iterator quota_info); |
| 211 CookieTreeFlashLSONode* GetOrCreateFlashLSONode(const std::string& domain); |
207 | 212 |
208 std::string canonicalized_host() const { return canonicalized_host_; } | 213 std::string canonicalized_host() const { return canonicalized_host_; } |
209 | 214 |
210 // Creates an content exception for this origin of type | 215 // Creates an content exception for this origin of type |
211 // CONTENT_SETTINGS_TYPE_COOKIES. | 216 // CONTENT_SETTINGS_TYPE_COOKIES. |
212 void CreateContentException(CookieSettings* cookie_settings, | 217 void CreateContentException(CookieSettings* cookie_settings, |
213 ContentSetting setting) const; | 218 ContentSetting setting) const; |
214 | 219 |
215 // True if a content exception can be created for this origin. | 220 // True if a content exception can be created for this origin. |
216 bool CanCreateContentException() const; | 221 bool CanCreateContentException() const; |
(...skipping 10 matching lines...) Expand all Loading... |
227 // less preferable than storing an extra pointer per origin. | 232 // less preferable than storing an extra pointer per origin. |
228 CookieTreeCookiesNode* cookies_child_; | 233 CookieTreeCookiesNode* cookies_child_; |
229 CookieTreeDatabasesNode* databases_child_; | 234 CookieTreeDatabasesNode* databases_child_; |
230 CookieTreeLocalStoragesNode* local_storages_child_; | 235 CookieTreeLocalStoragesNode* local_storages_child_; |
231 CookieTreeSessionStoragesNode* session_storages_child_; | 236 CookieTreeSessionStoragesNode* session_storages_child_; |
232 CookieTreeAppCachesNode* appcaches_child_; | 237 CookieTreeAppCachesNode* appcaches_child_; |
233 CookieTreeIndexedDBsNode* indexed_dbs_child_; | 238 CookieTreeIndexedDBsNode* indexed_dbs_child_; |
234 CookieTreeFileSystemsNode* file_systems_child_; | 239 CookieTreeFileSystemsNode* file_systems_child_; |
235 CookieTreeQuotaNode* quota_child_; | 240 CookieTreeQuotaNode* quota_child_; |
236 CookieTreeServerBoundCertsNode* server_bound_certs_child_; | 241 CookieTreeServerBoundCertsNode* server_bound_certs_child_; |
| 242 CookieTreeFlashLSONode* flash_lso_child_; |
237 | 243 |
238 std::string app_id_; | 244 std::string app_id_; |
239 std::string app_name_; | 245 std::string app_name_; |
240 | 246 |
241 // The URL for which this node was initially created. | 247 // The URL for which this node was initially created. |
242 GURL url_; | 248 GURL url_; |
243 | 249 |
244 std::string canonicalized_host_; | 250 std::string canonicalized_host_; |
245 | 251 |
246 DISALLOW_COPY_AND_ASSIGN(CookieTreeHostNode); | 252 DISALLOW_COPY_AND_ASSIGN(CookieTreeHostNode); |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 virtual DetailedInfo GetDetailedInfo() const OVERRIDE; | 572 virtual DetailedInfo GetDetailedInfo() const OVERRIDE; |
567 | 573 |
568 void AddServerBoundCertNode(CookieTreeServerBoundCertNode* child) { | 574 void AddServerBoundCertNode(CookieTreeServerBoundCertNode* child) { |
569 AddChildSortedByTitle(child); | 575 AddChildSortedByTitle(child); |
570 } | 576 } |
571 | 577 |
572 private: | 578 private: |
573 DISALLOW_COPY_AND_ASSIGN(CookieTreeServerBoundCertsNode); | 579 DISALLOW_COPY_AND_ASSIGN(CookieTreeServerBoundCertsNode); |
574 }; | 580 }; |
575 | 581 |
| 582 // CookieTreeFlashLSONode ---------------------------------------------------- |
| 583 class CookieTreeFlashLSONode : public CookieTreeNode { |
| 584 public: |
| 585 explicit CookieTreeFlashLSONode(const std::string& domain); |
| 586 virtual ~CookieTreeFlashLSONode(); |
| 587 |
| 588 // CookieTreeNode methods: |
| 589 virtual void DeleteStoredObjects() OVERRIDE; |
| 590 virtual DetailedInfo GetDetailedInfo() const OVERRIDE; |
| 591 |
| 592 private: |
| 593 std::string domain_; |
| 594 |
| 595 DISALLOW_COPY_AND_ASSIGN(CookieTreeFlashLSONode); |
| 596 }; |
| 597 |
576 // CookiesTreeModel ----------------------------------------------------------- | 598 // CookiesTreeModel ----------------------------------------------------------- |
577 class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> { | 599 class CookiesTreeModel : public ui::TreeNodeModel<CookieTreeNode> { |
578 public: | 600 public: |
579 CookiesTreeModel(const ContainerMap& apps_map, | 601 CookiesTreeModel(const ContainerMap& apps_map, |
580 ExtensionSpecialStoragePolicy* special_storage_policy, | 602 ExtensionSpecialStoragePolicy* special_storage_policy, |
581 bool group_by_cookie_source); | 603 bool group_by_cookie_source); |
582 virtual ~CookiesTreeModel(); | 604 virtual ~CookiesTreeModel(); |
583 | 605 |
584 // Because non-cookie nodes are fetched in a background thread, they are not | 606 // Because non-cookie nodes are fetched in a background thread, they are not |
585 // present at the time the Model is created. The Model then notifies its | 607 // present at the time the Model is created. The Model then notifies its |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 // data helpers. | 669 // data helpers. |
648 void PopulateAppCacheInfo(LocalDataContainer* container); | 670 void PopulateAppCacheInfo(LocalDataContainer* container); |
649 void PopulateCookieInfo(LocalDataContainer* container); | 671 void PopulateCookieInfo(LocalDataContainer* container); |
650 void PopulateDatabaseInfo(LocalDataContainer* container); | 672 void PopulateDatabaseInfo(LocalDataContainer* container); |
651 void PopulateLocalStorageInfo(LocalDataContainer* container); | 673 void PopulateLocalStorageInfo(LocalDataContainer* container); |
652 void PopulateSessionStorageInfo(LocalDataContainer* container); | 674 void PopulateSessionStorageInfo(LocalDataContainer* container); |
653 void PopulateIndexedDBInfo(LocalDataContainer* container); | 675 void PopulateIndexedDBInfo(LocalDataContainer* container); |
654 void PopulateFileSystemInfo(LocalDataContainer* container); | 676 void PopulateFileSystemInfo(LocalDataContainer* container); |
655 void PopulateQuotaInfo(LocalDataContainer* container); | 677 void PopulateQuotaInfo(LocalDataContainer* container); |
656 void PopulateServerBoundCertInfo(LocalDataContainer* container); | 678 void PopulateServerBoundCertInfo(LocalDataContainer* container); |
| 679 void PopulateFlashLSOInfo(LocalDataContainer* container); |
657 | 680 |
658 BrowsingDataCookieHelper* GetCookieHelper(const std::string& app_id); | 681 BrowsingDataCookieHelper* GetCookieHelper(const std::string& app_id); |
659 LocalDataContainer* GetLocalDataContainer(const std::string& app_id); | 682 LocalDataContainer* GetLocalDataContainer(const std::string& app_id); |
660 | 683 |
661 private: | 684 private: |
662 enum CookieIconIndex { | 685 enum CookieIconIndex { |
663 ORIGIN = 0, | 686 ORIGIN = 0, |
664 COOKIE = 1, | 687 COOKIE = 1, |
665 DATABASE = 2 | 688 DATABASE = 2 |
666 }; | 689 }; |
(...skipping 22 matching lines...) Expand all Loading... |
689 void PopulateFileSystemInfoWithFilter(LocalDataContainer* container, | 712 void PopulateFileSystemInfoWithFilter(LocalDataContainer* container, |
690 ScopedBatchUpdateNotifier* notifier, | 713 ScopedBatchUpdateNotifier* notifier, |
691 const string16& filter); | 714 const string16& filter); |
692 void PopulateQuotaInfoWithFilter(LocalDataContainer* container, | 715 void PopulateQuotaInfoWithFilter(LocalDataContainer* container, |
693 ScopedBatchUpdateNotifier* notifier, | 716 ScopedBatchUpdateNotifier* notifier, |
694 const string16& filter); | 717 const string16& filter); |
695 void PopulateServerBoundCertInfoWithFilter( | 718 void PopulateServerBoundCertInfoWithFilter( |
696 LocalDataContainer* container, | 719 LocalDataContainer* container, |
697 ScopedBatchUpdateNotifier* notifier, | 720 ScopedBatchUpdateNotifier* notifier, |
698 const string16& filter); | 721 const string16& filter); |
| 722 void PopulateFlashLSOInfoWithFilter(LocalDataContainer* container, |
| 723 ScopedBatchUpdateNotifier* notifier, |
| 724 const string16& filter); |
699 | 725 |
700 // Map of app ids to LocalDataContainer objects to use when retrieving | 726 // Map of app ids to LocalDataContainer objects to use when retrieving |
701 // locally stored data. | 727 // locally stored data. |
702 ContainerMap app_data_map_; | 728 ContainerMap app_data_map_; |
703 | 729 |
704 // The extension special storage policy; see ExtensionsProtectingNode() above. | 730 // The extension special storage policy; see ExtensionsProtectingNode() above. |
705 scoped_refptr<ExtensionSpecialStoragePolicy> special_storage_policy_; | 731 scoped_refptr<ExtensionSpecialStoragePolicy> special_storage_policy_; |
706 | 732 |
707 // The CookiesTreeModel maintains a separate list of observers that are | 733 // The CookiesTreeModel maintains a separate list of observers that are |
708 // specifically of the type CookiesTreeModel::Observer. | 734 // specifically of the type CookiesTreeModel::Observer. |
709 ObserverList<Observer> cookies_observer_list_; | 735 ObserverList<Observer> cookies_observer_list_; |
710 | 736 |
711 // If true, use the CanonicalCookie::Source attribute to group cookies. | 737 // If true, use the CanonicalCookie::Source attribute to group cookies. |
712 // Otherwise, use the CanonicalCookie::Domain attribute. | 738 // Otherwise, use the CanonicalCookie::Domain attribute. |
713 bool group_by_cookie_source_; | 739 bool group_by_cookie_source_; |
714 | 740 |
715 // If this is non-zero, then this model is batching updates (there's a lot of | 741 // If this is non-zero, then this model is batching updates (there's a lot of |
716 // notifications coming down the pipe). This is an integer is used to balance | 742 // notifications coming down the pipe). This is an integer is used to balance |
717 // calls to Begin/EndBatch() if they're called in a nested manner. | 743 // calls to Begin/EndBatch() if they're called in a nested manner. |
718 int batch_update_; | 744 int batch_update_; |
719 }; | 745 }; |
720 | 746 |
721 #endif // CHROME_BROWSER_COOKIES_TREE_MODEL_H_ | 747 #endif // CHROME_BROWSER_COOKIES_TREE_MODEL_H_ |
OLD | NEW |