Chromium Code Reviews| 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 #include "chrome/browser/cookies_tree_model.h" | 5 #include "chrome/browser/cookies_tree_model.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/memory/linked_ptr.h" | 12 #include "base/memory/linked_ptr.h" |
| 13 #include "base/string_util.h" | 13 #include "base/string_util.h" |
| 14 #include "base/utf_string_conversions.h" | 14 #include "base/utf_string_conversions.h" |
| 15 #include "chrome/browser/browsing_data_cookie_helper.h" | 15 #include "chrome/browser/browsing_data_cookie_helper.h" |
| 16 #include "chrome/browser/browsing_data_server_bound_cert_helper.h" | 16 #include "chrome/browser/browsing_data_server_bound_cert_helper.h" |
| 17 #include "chrome/browser/content_settings/cookie_settings.h" | 17 #include "chrome/browser/content_settings/cookie_settings.h" |
| 18 #include "chrome/browser/extensions/extension_service.h" | 18 #include "chrome/browser/extensions/extension_service.h" |
| 19 #include "chrome/browser/extensions/extension_special_storage_policy.h" | |
| 19 #include "content/public/common/url_constants.h" | 20 #include "content/public/common/url_constants.h" |
| 20 #include "grit/generated_resources.h" | 21 #include "grit/generated_resources.h" |
| 21 #include "grit/theme_resources.h" | 22 #include "grit/theme_resources.h" |
| 22 #include "grit/theme_resources_standard.h" | 23 #include "grit/theme_resources_standard.h" |
| 23 #include "grit/ui_resources.h" | 24 #include "grit/ui_resources.h" |
| 24 #include "net/base/registry_controlled_domain.h" | 25 #include "net/base/registry_controlled_domain.h" |
| 25 #include "net/cookies/cookie_monster.h" | 26 #include "net/cookies/cookie_monster.h" |
| 26 #include "net/url_request/url_request_context.h" | 27 #include "net/url_request/url_request_context.h" |
| 27 #include "ui/base/l10n/l10n_util.h" | 28 #include "ui/base/l10n/l10n_util.h" |
| 28 #include "ui/base/resource/resource_bundle.h" | 29 #include "ui/base/resource/resource_bundle.h" |
| 29 #include "ui/gfx/image/image_skia.h" | 30 #include "ui/gfx/image/image_skia.h" |
| 30 | 31 |
| 31 namespace { | 32 namespace { |
| 32 | 33 |
| 33 struct NodeTitleComparator { | 34 struct NodeTitleComparator { |
| 34 bool operator()(const CookieTreeNode* lhs, const CookieTreeNode* rhs) { | 35 bool operator()(const CookieTreeNode* lhs, const CookieTreeNode* rhs) { |
| 35 return lhs->GetTitle() < rhs->GetTitle(); | 36 return lhs->GetTitle() < rhs->GetTitle(); |
| 36 } | 37 } |
| 37 }; | 38 }; |
| 38 | 39 |
| 39 // Comparison functor, for use in CookieTreeRootNode. | 40 // Comparison functor, for use in CookieTreeRootNode. |
| 40 struct OriginNodeComparator { | 41 struct HostNodeComparator { |
| 41 bool operator()(const CookieTreeNode* lhs, const CookieTreeNode* rhs) { | 42 bool operator()(const CookieTreeNode* lhs, const CookieTreeNode* rhs) { |
| 42 // We want to order by registry controlled domain, so we would get | 43 // We want to order by registry controlled domain, so we would get |
| 43 // google.com, ad.google.com, www.google.com, | 44 // google.com, ad.google.com, www.google.com, |
| 44 // microsoft.com, ad.microsoft.com. CanonicalizeHost transforms the origins | 45 // microsoft.com, ad.microsoft.com. CanonicalizeHost transforms the origins |
| 45 // into a form like google.com.www so that string comparisons work. | 46 // into a form like google.com.www so that string comparisons work. |
| 46 return (CanonicalizeHost(lhs->GetTitle()) < | 47 return (CanonicalizeHost(lhs->GetTitle()) < |
|
jochen (gone - plz use gerrit)
2012/07/09 15:24:30
now that the nodes are supposed to contain the act
Bernhard Bauer
2012/07/09 15:43:46
Hm. The problem is that I only have generic Cookie
jochen (gone - plz use gerrit)
2012/07/10 10:13:02
I would prefer static casting for the sake of read
| |
| 47 CanonicalizeHost(rhs->GetTitle())); | 48 CanonicalizeHost(rhs->GetTitle())); |
| 48 } | 49 } |
| 49 | 50 |
| 50 static std::string CanonicalizeHost(const string16& host16) { | 51 static std::string CanonicalizeHost(const string16& host16) { |
| 51 // The canonicalized representation makes the registry controlled domain | 52 // The canonicalized representation makes the registry controlled domain |
| 52 // come first, and then adds subdomains in reverse order, e.g. | 53 // come first, and then adds subdomains in reverse order, e.g. |
| 53 // 1.mail.google.com would become google.com.mail.1, and then a standard | 54 // 1.mail.google.com would become google.com.mail.1, and then a standard |
| 54 // string comparison works to order hosts by registry controlled domain | 55 // string comparison works to order hosts by registry controlled domain |
| 55 // first. Leading dots are ignored, ".google.com" is the same as | 56 // first. Leading dots are ignored, ".google.com" is the same as |
| 56 // "google.com". | 57 // "google.com". |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 82 retval += host.substr(0, position); | 83 retval += host.substr(0, position); |
| 83 break; | 84 break; |
| 84 } | 85 } |
| 85 retval += host.substr(next_dot + 1, position - (next_dot + 1)); | 86 retval += host.substr(next_dot + 1, position - (next_dot + 1)); |
| 86 position = next_dot; | 87 position = next_dot; |
| 87 } | 88 } |
| 88 return retval; | 89 return retval; |
| 89 } | 90 } |
| 90 }; | 91 }; |
| 91 | 92 |
| 93 bool TypeIsProtected(CookieTreeNode::DetailedInfo::NodeType type) { | |
| 94 switch (type) { | |
| 95 case CookieTreeNode::DetailedInfo::TYPE_COOKIE: | |
| 96 return false; | |
| 97 case CookieTreeNode::DetailedInfo::TYPE_DATABASE: | |
| 98 return true; | |
| 99 case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE: | |
| 100 return true; | |
| 101 case CookieTreeNode::DetailedInfo::TYPE_SESSION_STORAGE: | |
| 102 return true; | |
| 103 case CookieTreeNode::DetailedInfo::TYPE_APPCACHE: | |
| 104 return true; | |
| 105 case CookieTreeNode::DetailedInfo::TYPE_INDEXED_DB: | |
| 106 return true; | |
| 107 case CookieTreeNode::DetailedInfo::TYPE_FILE_SYSTEM: | |
| 108 return true; | |
| 109 case CookieTreeNode::DetailedInfo::TYPE_QUOTA: | |
| 110 return true; | |
| 111 case CookieTreeNode::DetailedInfo::TYPE_SERVER_BOUND_CERT: | |
| 112 return false; | |
| 113 default: | |
| 114 break; | |
| 115 } | |
| 116 return false; | |
| 117 } | |
| 118 | |
| 92 } // namespace | 119 } // namespace |
| 93 | 120 |
| 121 CookieTreeNode::DetailedInfo::DetailedInfo() | |
| 122 : node_type(TYPE_NONE), | |
| 123 cookie(NULL), | |
| 124 database_info(NULL), | |
| 125 local_storage_info(NULL), | |
| 126 session_storage_info(NULL), | |
| 127 appcache_info(NULL), | |
| 128 indexed_db_info(NULL), | |
| 129 file_system_info(NULL), | |
| 130 quota_info(NULL), | |
| 131 server_bound_cert(NULL) {} | |
| 132 | |
| 133 CookieTreeNode::DetailedInfo::~DetailedInfo() {} | |
| 134 | |
| 135 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::Init( | |
| 136 NodeType type) { | |
| 137 DCHECK_EQ(TYPE_NONE, node_type); | |
| 138 node_type = type; | |
| 139 return *this; | |
| 140 } | |
| 141 | |
| 142 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitCookie( | |
| 143 const net::CookieMonster::CanonicalCookie* cookie) { | |
| 144 Init(TYPE_COOKIE); | |
| 145 this->cookie = cookie; | |
| 146 return *this; | |
| 147 } | |
| 148 | |
| 149 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitDatabase( | |
| 150 const BrowsingDataDatabaseHelper::DatabaseInfo* database_info) { | |
| 151 Init(TYPE_DATABASE); | |
| 152 this->database_info = database_info; | |
| 153 origin = GURL(database_info->origin); | |
| 154 return *this; | |
| 155 } | |
| 156 | |
| 157 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitLocalStorage( | |
| 158 const BrowsingDataLocalStorageHelper::LocalStorageInfo* | |
| 159 local_storage_info) { | |
| 160 Init(TYPE_LOCAL_STORAGE); | |
| 161 this->local_storage_info = local_storage_info; | |
| 162 origin = local_storage_info->origin_url; | |
| 163 return *this; | |
| 164 } | |
| 165 | |
| 166 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitSessionStorage( | |
| 167 const BrowsingDataLocalStorageHelper::LocalStorageInfo* | |
| 168 session_storage_info) { | |
| 169 Init(TYPE_SESSION_STORAGE); | |
| 170 this->session_storage_info = session_storage_info; | |
| 171 origin = session_storage_info->origin_url; | |
| 172 return *this; | |
| 173 } | |
| 174 | |
| 175 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitAppCache( | |
| 176 const GURL& origin, | |
| 177 const appcache::AppCacheInfo* appcache_info) { | |
| 178 Init(TYPE_APPCACHE); | |
| 179 this->appcache_info = appcache_info; | |
| 180 this->origin = origin; | |
| 181 return *this; | |
| 182 } | |
| 183 | |
| 184 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitIndexedDB( | |
| 185 const BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info) { | |
| 186 Init(TYPE_INDEXED_DB); | |
| 187 this->indexed_db_info = indexed_db_info; | |
| 188 this->origin = indexed_db_info->origin; | |
| 189 return *this; | |
| 190 } | |
| 191 | |
| 192 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitFileSystem( | |
| 193 const BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info) { | |
| 194 Init(TYPE_FILE_SYSTEM); | |
| 195 this->file_system_info = file_system_info; | |
| 196 this->origin = file_system_info->origin; | |
| 197 return *this; | |
| 198 } | |
| 199 | |
| 200 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitQuota( | |
| 201 const BrowsingDataQuotaHelper::QuotaInfo* quota_info) { | |
| 202 Init(TYPE_QUOTA); | |
| 203 this->quota_info = quota_info; | |
| 204 return *this; | |
| 205 } | |
| 206 | |
| 207 CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitServerBoundCert( | |
| 208 const net::ServerBoundCertStore::ServerBoundCert* server_bound_cert) { | |
| 209 Init(TYPE_SERVER_BOUND_CERT); | |
| 210 this->server_bound_cert = server_bound_cert; | |
| 211 return *this; | |
| 212 } | |
| 213 | |
| 94 /////////////////////////////////////////////////////////////////////////////// | 214 /////////////////////////////////////////////////////////////////////////////// |
| 95 // CookieTreeNode, public: | 215 // CookieTreeNode, public: |
| 96 | 216 |
| 97 void CookieTreeNode::DeleteStoredObjects() { | 217 void CookieTreeNode::DeleteStoredObjects() { |
| 98 std::for_each(children().begin(), | 218 std::for_each(children().begin(), |
| 99 children().end(), | 219 children().end(), |
| 100 std::mem_fun(&CookieTreeNode::DeleteStoredObjects)); | 220 std::mem_fun(&CookieTreeNode::DeleteStoredObjects)); |
| 101 } | 221 } |
| 102 | 222 |
| 103 CookiesTreeModel* CookieTreeNode::GetModel() const { | 223 CookiesTreeModel* CookieTreeNode::GetModel() const { |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 118 | 238 |
| 119 CookieTreeCookieNode::~CookieTreeCookieNode() {} | 239 CookieTreeCookieNode::~CookieTreeCookieNode() {} |
| 120 | 240 |
| 121 void CookieTreeCookieNode::DeleteStoredObjects() { | 241 void CookieTreeCookieNode::DeleteStoredObjects() { |
| 122 // notify CookieMonster that we should delete this cookie | 242 // notify CookieMonster that we should delete this cookie |
| 123 GetModel()->cookie_helper_->DeleteCookie(*cookie_); | 243 GetModel()->cookie_helper_->DeleteCookie(*cookie_); |
| 124 GetModel()->cookie_list_.erase(cookie_); | 244 GetModel()->cookie_list_.erase(cookie_); |
| 125 } | 245 } |
| 126 | 246 |
| 127 CookieTreeNode::DetailedInfo CookieTreeCookieNode::GetDetailedInfo() const { | 247 CookieTreeNode::DetailedInfo CookieTreeCookieNode::GetDetailedInfo() const { |
| 128 return DetailedInfo(parent()->parent()->GetTitle()).InitCookie(&*cookie_); | 248 return DetailedInfo().InitCookie(&*cookie_); |
| 129 } | 249 } |
| 130 | 250 |
| 131 /////////////////////////////////////////////////////////////////////////////// | 251 /////////////////////////////////////////////////////////////////////////////// |
| 132 // CookieTreeAppCacheNode, public: | 252 // CookieTreeAppCacheNode, public: |
| 133 | 253 |
| 134 CookieTreeAppCacheNode::CookieTreeAppCacheNode( | 254 CookieTreeAppCacheNode::CookieTreeAppCacheNode( |
| 135 const GURL& origin_url, | 255 const GURL& origin_url, |
| 136 std::list<appcache::AppCacheInfo>::iterator appcache_info) | 256 std::list<appcache::AppCacheInfo>::iterator appcache_info) |
| 137 : CookieTreeNode(UTF8ToUTF16(appcache_info->manifest_url.spec())), | 257 : CookieTreeNode(UTF8ToUTF16(appcache_info->manifest_url.spec())), |
| 138 origin_url_(origin_url), | 258 origin_url_(origin_url), |
| 139 appcache_info_(appcache_info) { | 259 appcache_info_(appcache_info) { |
| 140 } | 260 } |
| 141 | 261 |
| 142 CookieTreeAppCacheNode::~CookieTreeAppCacheNode() { | 262 CookieTreeAppCacheNode::~CookieTreeAppCacheNode() { |
| 143 } | 263 } |
| 144 | 264 |
| 145 void CookieTreeAppCacheNode::DeleteStoredObjects() { | 265 void CookieTreeAppCacheNode::DeleteStoredObjects() { |
| 146 DCHECK(GetModel()->appcache_helper_); | 266 DCHECK(GetModel()->appcache_helper_); |
| 147 GetModel()->appcache_helper_->DeleteAppCacheGroup( | 267 GetModel()->appcache_helper_->DeleteAppCacheGroup( |
| 148 appcache_info_->manifest_url); | 268 appcache_info_->manifest_url); |
| 149 GetModel()->appcache_info_[origin_url_].erase(appcache_info_); | 269 GetModel()->appcache_info_[origin_url_].erase(appcache_info_); |
| 150 } | 270 } |
| 151 | 271 |
| 152 CookieTreeNode::DetailedInfo CookieTreeAppCacheNode::GetDetailedInfo() const { | 272 CookieTreeNode::DetailedInfo CookieTreeAppCacheNode::GetDetailedInfo() const { |
| 153 return DetailedInfo(parent()->parent()->GetTitle()).InitAppCache( | 273 return DetailedInfo().InitAppCache(origin_url_, &*appcache_info_); |
| 154 &*appcache_info_); | |
| 155 } | 274 } |
| 156 | 275 |
| 157 /////////////////////////////////////////////////////////////////////////////// | 276 /////////////////////////////////////////////////////////////////////////////// |
| 158 // CookieTreeDatabaseNode, public: | 277 // CookieTreeDatabaseNode, public: |
| 159 | 278 |
| 160 CookieTreeDatabaseNode::CookieTreeDatabaseNode( | 279 CookieTreeDatabaseNode::CookieTreeDatabaseNode( |
| 161 std::list<BrowsingDataDatabaseHelper::DatabaseInfo>::iterator database_info) | 280 std::list<BrowsingDataDatabaseHelper::DatabaseInfo>::iterator database_info) |
| 162 : CookieTreeNode(database_info->database_name.empty() ? | 281 : CookieTreeNode(database_info->database_name.empty() ? |
| 163 l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASE_UNNAMED_NAME) : | 282 l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASE_UNNAMED_NAME) : |
| 164 UTF8ToUTF16(database_info->database_name)), | 283 UTF8ToUTF16(database_info->database_name)), |
| 165 database_info_(database_info) { | 284 database_info_(database_info) { |
| 166 } | 285 } |
| 167 | 286 |
| 168 CookieTreeDatabaseNode::~CookieTreeDatabaseNode() {} | 287 CookieTreeDatabaseNode::~CookieTreeDatabaseNode() {} |
| 169 | 288 |
| 170 void CookieTreeDatabaseNode::DeleteStoredObjects() { | 289 void CookieTreeDatabaseNode::DeleteStoredObjects() { |
| 171 GetModel()->database_helper_->DeleteDatabase( | 290 GetModel()->database_helper_->DeleteDatabase( |
| 172 database_info_->origin_identifier, database_info_->database_name); | 291 database_info_->origin_identifier, database_info_->database_name); |
| 173 GetModel()->database_info_list_.erase(database_info_); | 292 GetModel()->database_info_list_.erase(database_info_); |
| 174 } | 293 } |
| 175 | 294 |
| 176 CookieTreeNode::DetailedInfo CookieTreeDatabaseNode::GetDetailedInfo() const { | 295 CookieTreeNode::DetailedInfo CookieTreeDatabaseNode::GetDetailedInfo() const { |
| 177 return DetailedInfo(parent()->parent()->GetTitle()).InitDatabase( | 296 return DetailedInfo().InitDatabase(&*database_info_); |
| 178 &*database_info_); | |
| 179 } | 297 } |
| 180 | 298 |
| 181 /////////////////////////////////////////////////////////////////////////////// | 299 /////////////////////////////////////////////////////////////////////////////// |
| 182 // CookieTreeLocalStorageNode, public: | 300 // CookieTreeLocalStorageNode, public: |
| 183 | 301 |
| 184 CookieTreeLocalStorageNode::CookieTreeLocalStorageNode( | 302 CookieTreeLocalStorageNode::CookieTreeLocalStorageNode( |
| 185 std::list<BrowsingDataLocalStorageHelper::LocalStorageInfo>::iterator | 303 std::list<BrowsingDataLocalStorageHelper::LocalStorageInfo>::iterator |
| 186 local_storage_info) | 304 local_storage_info) |
| 187 : CookieTreeNode(UTF8ToUTF16(local_storage_info->origin_url.spec())), | 305 : CookieTreeNode(UTF8ToUTF16(local_storage_info->origin_url.spec())), |
| 188 local_storage_info_(local_storage_info) { | 306 local_storage_info_(local_storage_info) { |
| 189 } | 307 } |
| 190 | 308 |
| 191 CookieTreeLocalStorageNode::~CookieTreeLocalStorageNode() {} | 309 CookieTreeLocalStorageNode::~CookieTreeLocalStorageNode() {} |
| 192 | 310 |
| 193 void CookieTreeLocalStorageNode::DeleteStoredObjects() { | 311 void CookieTreeLocalStorageNode::DeleteStoredObjects() { |
| 194 GetModel()->local_storage_helper_->DeleteOrigin( | 312 GetModel()->local_storage_helper_->DeleteOrigin( |
| 195 local_storage_info_->origin_url); | 313 local_storage_info_->origin_url); |
| 196 GetModel()->local_storage_info_list_.erase(local_storage_info_); | 314 GetModel()->local_storage_info_list_.erase(local_storage_info_); |
| 197 } | 315 } |
| 198 | 316 |
| 199 CookieTreeNode::DetailedInfo | 317 CookieTreeNode::DetailedInfo |
| 200 CookieTreeLocalStorageNode::GetDetailedInfo() const { | 318 CookieTreeLocalStorageNode::GetDetailedInfo() const { |
| 201 return DetailedInfo(parent()->parent()->GetTitle()).InitLocalStorage( | 319 return DetailedInfo().InitLocalStorage( |
| 202 &*local_storage_info_); | 320 &*local_storage_info_); |
| 203 } | 321 } |
| 204 | 322 |
| 205 /////////////////////////////////////////////////////////////////////////////// | 323 /////////////////////////////////////////////////////////////////////////////// |
| 206 // CookieTreeSessionStorageNode, public: | 324 // CookieTreeSessionStorageNode, public: |
| 207 | 325 |
| 208 CookieTreeSessionStorageNode::CookieTreeSessionStorageNode( | 326 CookieTreeSessionStorageNode::CookieTreeSessionStorageNode( |
| 209 std::list<BrowsingDataLocalStorageHelper::LocalStorageInfo>::iterator | 327 std::list<BrowsingDataLocalStorageHelper::LocalStorageInfo>::iterator |
| 210 session_storage_info) | 328 session_storage_info) |
| 211 : CookieTreeNode(UTF8ToUTF16(session_storage_info->origin_url.spec())), | 329 : CookieTreeNode(UTF8ToUTF16(session_storage_info->origin_url.spec())), |
| 212 session_storage_info_(session_storage_info) { | 330 session_storage_info_(session_storage_info) { |
| 213 } | 331 } |
| 214 | 332 |
| 215 CookieTreeSessionStorageNode::~CookieTreeSessionStorageNode() {} | 333 CookieTreeSessionStorageNode::~CookieTreeSessionStorageNode() {} |
| 216 | 334 |
| 217 void CookieTreeSessionStorageNode::DeleteStoredObjects() { | 335 void CookieTreeSessionStorageNode::DeleteStoredObjects() { |
| 218 GetModel()->session_storage_info_list_.erase(session_storage_info_); | 336 GetModel()->session_storage_info_list_.erase(session_storage_info_); |
| 219 } | 337 } |
| 220 | 338 |
| 221 CookieTreeNode::DetailedInfo | 339 CookieTreeNode::DetailedInfo |
| 222 CookieTreeSessionStorageNode::GetDetailedInfo() const { | 340 CookieTreeSessionStorageNode::GetDetailedInfo() const { |
| 223 return DetailedInfo(parent()->parent()->GetTitle()).InitSessionStorage( | 341 return DetailedInfo().InitSessionStorage(&*session_storage_info_); |
| 224 &*session_storage_info_); | |
| 225 } | 342 } |
| 226 | 343 |
| 227 /////////////////////////////////////////////////////////////////////////////// | 344 /////////////////////////////////////////////////////////////////////////////// |
| 228 // CookieTreeIndexedDBNode, public: | 345 // CookieTreeIndexedDBNode, public: |
| 229 | 346 |
| 230 CookieTreeIndexedDBNode::CookieTreeIndexedDBNode( | 347 CookieTreeIndexedDBNode::CookieTreeIndexedDBNode( |
| 231 std::list<BrowsingDataIndexedDBHelper::IndexedDBInfo>::iterator | 348 std::list<BrowsingDataIndexedDBHelper::IndexedDBInfo>::iterator |
| 232 indexed_db_info) | 349 indexed_db_info) |
| 233 : CookieTreeNode(UTF8ToUTF16( | 350 : CookieTreeNode(UTF8ToUTF16( |
| 234 indexed_db_info->origin.spec())), | 351 indexed_db_info->origin.spec())), |
| 235 indexed_db_info_(indexed_db_info) { | 352 indexed_db_info_(indexed_db_info) { |
| 236 } | 353 } |
| 237 | 354 |
| 238 CookieTreeIndexedDBNode::~CookieTreeIndexedDBNode() {} | 355 CookieTreeIndexedDBNode::~CookieTreeIndexedDBNode() {} |
| 239 | 356 |
| 240 void CookieTreeIndexedDBNode::DeleteStoredObjects() { | 357 void CookieTreeIndexedDBNode::DeleteStoredObjects() { |
| 241 GetModel()->indexed_db_helper_->DeleteIndexedDB( | 358 GetModel()->indexed_db_helper_->DeleteIndexedDB( |
| 242 indexed_db_info_->origin); | 359 indexed_db_info_->origin); |
| 243 GetModel()->indexed_db_info_list_.erase(indexed_db_info_); | 360 GetModel()->indexed_db_info_list_.erase(indexed_db_info_); |
| 244 } | 361 } |
| 245 | 362 |
| 246 CookieTreeNode::DetailedInfo CookieTreeIndexedDBNode::GetDetailedInfo() const { | 363 CookieTreeNode::DetailedInfo CookieTreeIndexedDBNode::GetDetailedInfo() const { |
| 247 return DetailedInfo(parent()->parent()->GetTitle()).InitIndexedDB( | 364 return DetailedInfo().InitIndexedDB(&*indexed_db_info_); |
| 248 &*indexed_db_info_); | |
| 249 } | 365 } |
| 250 | 366 |
| 251 /////////////////////////////////////////////////////////////////////////////// | 367 /////////////////////////////////////////////////////////////////////////////// |
| 252 // CookieTreeFileSystemNode, public: | 368 // CookieTreeFileSystemNode, public: |
| 253 | 369 |
| 254 CookieTreeFileSystemNode::CookieTreeFileSystemNode( | 370 CookieTreeFileSystemNode::CookieTreeFileSystemNode( |
| 255 std::list<BrowsingDataFileSystemHelper::FileSystemInfo>::iterator | 371 std::list<BrowsingDataFileSystemHelper::FileSystemInfo>::iterator |
| 256 file_system_info) | 372 file_system_info) |
| 257 : CookieTreeNode(UTF8ToUTF16( | 373 : CookieTreeNode(UTF8ToUTF16( |
| 258 file_system_info->origin.spec())), | 374 file_system_info->origin.spec())), |
| 259 file_system_info_(file_system_info) { | 375 file_system_info_(file_system_info) { |
| 260 } | 376 } |
| 261 | 377 |
| 262 CookieTreeFileSystemNode::~CookieTreeFileSystemNode() {} | 378 CookieTreeFileSystemNode::~CookieTreeFileSystemNode() {} |
| 263 | 379 |
| 264 void CookieTreeFileSystemNode::DeleteStoredObjects() { | 380 void CookieTreeFileSystemNode::DeleteStoredObjects() { |
| 265 GetModel()->file_system_helper_->DeleteFileSystemOrigin( | 381 GetModel()->file_system_helper_->DeleteFileSystemOrigin( |
| 266 file_system_info_->origin); | 382 file_system_info_->origin); |
| 267 GetModel()->file_system_info_list_.erase(file_system_info_); | 383 GetModel()->file_system_info_list_.erase(file_system_info_); |
| 268 } | 384 } |
| 269 | 385 |
| 270 CookieTreeNode::DetailedInfo CookieTreeFileSystemNode::GetDetailedInfo() const { | 386 CookieTreeNode::DetailedInfo CookieTreeFileSystemNode::GetDetailedInfo() const { |
| 271 return DetailedInfo(parent()->parent()->GetTitle()).InitFileSystem( | 387 return DetailedInfo().InitFileSystem(&*file_system_info_); |
| 272 &*file_system_info_); | |
| 273 } | 388 } |
| 274 | 389 |
| 275 /////////////////////////////////////////////////////////////////////////////// | 390 /////////////////////////////////////////////////////////////////////////////// |
| 276 // CookieTreeQuotaNode, public: | 391 // CookieTreeQuotaNode, public: |
| 277 | 392 |
| 278 CookieTreeQuotaNode::CookieTreeQuotaNode( | 393 CookieTreeQuotaNode::CookieTreeQuotaNode( |
| 279 std::list<BrowsingDataQuotaHelper::QuotaInfo>::iterator quota_info) | 394 std::list<BrowsingDataQuotaHelper::QuotaInfo>::iterator quota_info) |
| 280 : CookieTreeNode(UTF8ToUTF16(quota_info->host)), | 395 : CookieTreeNode(UTF8ToUTF16(quota_info->host)), |
| 281 quota_info_(quota_info) { | 396 quota_info_(quota_info) { |
| 282 } | 397 } |
| 283 | 398 |
| 284 CookieTreeQuotaNode::~CookieTreeQuotaNode() {} | 399 CookieTreeQuotaNode::~CookieTreeQuotaNode() {} |
| 285 | 400 |
| 286 void CookieTreeQuotaNode::DeleteStoredObjects() { | 401 void CookieTreeQuotaNode::DeleteStoredObjects() { |
| 287 // Calling this function may cause unexpected over-quota state of origin. | 402 // Calling this function may cause unexpected over-quota state of origin. |
| 288 // However, it'll caused no problem, just prevent usage growth of the origin. | 403 // However, it'll caused no problem, just prevent usage growth of the origin. |
| 289 GetModel()->quota_helper_->RevokeHostQuota(quota_info_->host); | 404 GetModel()->quota_helper_->RevokeHostQuota(quota_info_->host); |
| 290 GetModel()->quota_info_list_.erase(quota_info_); | 405 GetModel()->quota_info_list_.erase(quota_info_); |
| 291 } | 406 } |
| 292 | 407 |
| 293 CookieTreeNode::DetailedInfo CookieTreeQuotaNode::GetDetailedInfo() const { | 408 CookieTreeNode::DetailedInfo CookieTreeQuotaNode::GetDetailedInfo() const { |
| 294 return DetailedInfo(parent()->parent()->GetTitle()).InitQuota( | 409 return DetailedInfo().InitQuota(&*quota_info_); |
| 295 &*quota_info_); | |
| 296 } | 410 } |
| 297 | 411 |
| 298 /////////////////////////////////////////////////////////////////////////////// | 412 /////////////////////////////////////////////////////////////////////////////// |
| 299 // CookieTreeServerBoundCertNode, public: | 413 // CookieTreeServerBoundCertNode, public: |
| 300 | 414 |
| 301 CookieTreeServerBoundCertNode::CookieTreeServerBoundCertNode( | 415 CookieTreeServerBoundCertNode::CookieTreeServerBoundCertNode( |
| 302 net::ServerBoundCertStore::ServerBoundCertList::iterator cert) | 416 net::ServerBoundCertStore::ServerBoundCertList::iterator cert) |
| 303 : CookieTreeNode(ASCIIToUTF16(cert->server_identifier())), | 417 : CookieTreeNode(ASCIIToUTF16(cert->server_identifier())), |
| 304 server_bound_cert_(cert) { | 418 server_bound_cert_(cert) { |
| 305 } | 419 } |
| 306 | 420 |
| 307 CookieTreeServerBoundCertNode::~CookieTreeServerBoundCertNode() {} | 421 CookieTreeServerBoundCertNode::~CookieTreeServerBoundCertNode() {} |
| 308 | 422 |
| 309 void CookieTreeServerBoundCertNode::DeleteStoredObjects() { | 423 void CookieTreeServerBoundCertNode::DeleteStoredObjects() { |
| 310 GetModel()->server_bound_cert_helper_->DeleteServerBoundCert( | 424 GetModel()->server_bound_cert_helper_->DeleteServerBoundCert( |
| 311 server_bound_cert_->server_identifier()); | 425 server_bound_cert_->server_identifier()); |
| 312 GetModel()->server_bound_cert_list_.erase(server_bound_cert_); | 426 GetModel()->server_bound_cert_list_.erase(server_bound_cert_); |
| 313 } | 427 } |
| 314 | 428 |
| 315 CookieTreeNode::DetailedInfo | 429 CookieTreeNode::DetailedInfo |
| 316 CookieTreeServerBoundCertNode::GetDetailedInfo() const { | 430 CookieTreeServerBoundCertNode::GetDetailedInfo() const { |
| 317 return DetailedInfo(parent()->parent()->GetTitle()).InitServerBoundCert( | 431 return DetailedInfo().InitServerBoundCert(&*server_bound_cert_); |
| 318 &*server_bound_cert_); | |
| 319 } | 432 } |
| 320 | 433 |
| 321 /////////////////////////////////////////////////////////////////////////////// | 434 /////////////////////////////////////////////////////////////////////////////// |
| 322 // CookieTreeRootNode, public: | 435 // CookieTreeRootNode, public: |
| 323 | 436 |
| 324 CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model) | 437 CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model) |
| 325 : model_(model) { | 438 : model_(model) { |
| 326 } | 439 } |
| 327 | 440 |
| 328 CookieTreeRootNode::~CookieTreeRootNode() {} | 441 CookieTreeRootNode::~CookieTreeRootNode() {} |
| 329 | 442 |
| 330 CookieTreeOriginNode* CookieTreeRootNode::GetOrCreateOriginNode( | 443 CookieTreeHostNode* CookieTreeRootNode::GetOrCreateHostNode( |
| 331 const GURL& url) { | 444 const GURL& url) { |
| 332 CookieTreeOriginNode origin_node(url); | 445 scoped_ptr<CookieTreeHostNode> host_node(new CookieTreeHostNode(url)); |
| 333 | 446 |
| 334 // First see if there is an existing match. | 447 // First see if there is an existing match. |
| 335 std::vector<CookieTreeNode*>::iterator origin_node_iterator = | 448 std::vector<CookieTreeNode*>::iterator host_node_iterator = |
| 336 std::lower_bound(children().begin(), children().end(), &origin_node, | 449 std::lower_bound(children().begin(), children().end(), host_node.get(), |
| 337 OriginNodeComparator()); | 450 HostNodeComparator()); |
| 338 | 451 |
| 339 if (origin_node_iterator != children().end() && | 452 if (host_node_iterator != children().end() && |
| 340 WideToUTF16Hack(CookieTreeOriginNode::TitleForUrl(url)) == | 453 host_node->GetTitle() == (*host_node_iterator)->GetTitle()) { |
| 341 (*origin_node_iterator)->GetTitle()) | 454 return static_cast<CookieTreeHostNode*>(*host_node_iterator); |
| 342 return static_cast<CookieTreeOriginNode*>(*origin_node_iterator); | 455 } |
| 343 // Node doesn't exist, create a new one and insert it into the (ordered) | 456 // Node doesn't exist, create a new one and insert it into the (ordered) |
| 344 // children. | 457 // children. |
| 345 CookieTreeOriginNode* retval = new CookieTreeOriginNode(url); | |
| 346 DCHECK(model_); | 458 DCHECK(model_); |
| 347 model_->Add(this, retval, (origin_node_iterator - children().begin())); | 459 model_->Add(this, host_node.get(), |
| 348 return retval; | 460 (host_node_iterator - children().begin())); |
| 461 return host_node.release(); | |
| 349 } | 462 } |
| 350 | 463 |
| 351 CookiesTreeModel* CookieTreeRootNode::GetModel() const { | 464 CookiesTreeModel* CookieTreeRootNode::GetModel() const { |
| 352 return model_; | 465 return model_; |
| 353 } | 466 } |
| 354 | 467 |
| 355 CookieTreeNode::DetailedInfo CookieTreeRootNode::GetDetailedInfo() const { | 468 CookieTreeNode::DetailedInfo CookieTreeRootNode::GetDetailedInfo() const { |
| 356 return DetailedInfo(string16()).Init(DetailedInfo::TYPE_ROOT); | 469 return DetailedInfo().Init(DetailedInfo::TYPE_ROOT); |
| 357 } | 470 } |
| 358 | 471 |
| 359 /////////////////////////////////////////////////////////////////////////////// | 472 /////////////////////////////////////////////////////////////////////////////// |
| 360 // CookieTreeOriginNode, public: | 473 // CookieTreeHostNode, public: |
| 361 | 474 |
| 362 // static | 475 // static |
| 363 std::wstring CookieTreeOriginNode::TitleForUrl(const GURL& url) { | 476 string16 CookieTreeHostNode::TitleForUrl( |
| 477 const GURL& url) { | |
| 364 const std::string file_origin_node_name( | 478 const std::string file_origin_node_name( |
| 365 std::string(chrome::kFileScheme) + content::kStandardSchemeSeparator); | 479 std::string(chrome::kFileScheme) + content::kStandardSchemeSeparator); |
| 366 return UTF8ToWide(url.SchemeIsFile() ? file_origin_node_name : url.host()); | 480 return UTF8ToUTF16(url.SchemeIsFile() ? file_origin_node_name : url.host()); |
| 367 } | 481 } |
| 368 | 482 |
| 369 CookieTreeOriginNode::CookieTreeOriginNode(const GURL& url) | 483 CookieTreeHostNode::CookieTreeHostNode(const GURL& url) |
| 370 : CookieTreeNode(WideToUTF16Hack(TitleForUrl(url))), | 484 : CookieTreeNode(TitleForUrl(url)), |
| 371 cookies_child_(NULL), | 485 cookies_child_(NULL), |
| 372 databases_child_(NULL), | 486 databases_child_(NULL), |
| 373 local_storages_child_(NULL), | 487 local_storages_child_(NULL), |
| 374 session_storages_child_(NULL), | 488 session_storages_child_(NULL), |
| 375 appcaches_child_(NULL), | 489 appcaches_child_(NULL), |
| 376 indexed_dbs_child_(NULL), | 490 indexed_dbs_child_(NULL), |
| 377 file_systems_child_(NULL), | 491 file_systems_child_(NULL), |
| 378 quota_child_(NULL), | 492 quota_child_(NULL), |
| 379 server_bound_certs_child_(NULL), | 493 server_bound_certs_child_(NULL), |
| 380 url_(url) {} | 494 url_(url) {} |
| 381 | 495 |
| 382 CookieTreeOriginNode::~CookieTreeOriginNode() {} | 496 CookieTreeHostNode::~CookieTreeHostNode() {} |
| 383 | 497 |
| 384 CookieTreeNode::DetailedInfo CookieTreeOriginNode::GetDetailedInfo() const { | 498 CookieTreeNode::DetailedInfo CookieTreeHostNode::GetDetailedInfo() const { |
| 385 return DetailedInfo(GetTitle()).Init(DetailedInfo::TYPE_ORIGIN); | 499 return DetailedInfo().Init(DetailedInfo::TYPE_HOST); |
| 386 } | 500 } |
| 387 | 501 |
| 388 CookieTreeCookiesNode* CookieTreeOriginNode::GetOrCreateCookiesNode() { | 502 CookieTreeCookiesNode* CookieTreeHostNode::GetOrCreateCookiesNode() { |
| 389 if (cookies_child_) | 503 if (cookies_child_) |
| 390 return cookies_child_; | 504 return cookies_child_; |
| 391 cookies_child_ = new CookieTreeCookiesNode; | 505 cookies_child_ = new CookieTreeCookiesNode; |
| 392 AddChildSortedByTitle(cookies_child_); | 506 AddChildSortedByTitle(cookies_child_); |
| 393 return cookies_child_; | 507 return cookies_child_; |
| 394 } | 508 } |
| 395 | 509 |
| 396 CookieTreeDatabasesNode* CookieTreeOriginNode::GetOrCreateDatabasesNode() { | 510 CookieTreeDatabasesNode* CookieTreeHostNode::GetOrCreateDatabasesNode() { |
| 397 if (databases_child_) | 511 if (databases_child_) |
| 398 return databases_child_; | 512 return databases_child_; |
| 399 databases_child_ = new CookieTreeDatabasesNode; | 513 databases_child_ = new CookieTreeDatabasesNode; |
| 400 AddChildSortedByTitle(databases_child_); | 514 AddChildSortedByTitle(databases_child_); |
| 401 return databases_child_; | 515 return databases_child_; |
| 402 } | 516 } |
| 403 | 517 |
| 404 CookieTreeLocalStoragesNode* | 518 CookieTreeLocalStoragesNode* |
| 405 CookieTreeOriginNode::GetOrCreateLocalStoragesNode() { | 519 CookieTreeHostNode::GetOrCreateLocalStoragesNode() { |
| 406 if (local_storages_child_) | 520 if (local_storages_child_) |
| 407 return local_storages_child_; | 521 return local_storages_child_; |
| 408 local_storages_child_ = new CookieTreeLocalStoragesNode; | 522 local_storages_child_ = new CookieTreeLocalStoragesNode; |
| 409 AddChildSortedByTitle(local_storages_child_); | 523 AddChildSortedByTitle(local_storages_child_); |
| 410 return local_storages_child_; | 524 return local_storages_child_; |
| 411 } | 525 } |
| 412 | 526 |
| 413 CookieTreeSessionStoragesNode* | 527 CookieTreeSessionStoragesNode* |
| 414 CookieTreeOriginNode::GetOrCreateSessionStoragesNode() { | 528 CookieTreeHostNode::GetOrCreateSessionStoragesNode() { |
| 415 if (session_storages_child_) | 529 if (session_storages_child_) |
| 416 return session_storages_child_; | 530 return session_storages_child_; |
| 417 session_storages_child_ = new CookieTreeSessionStoragesNode; | 531 session_storages_child_ = new CookieTreeSessionStoragesNode; |
| 418 AddChildSortedByTitle(session_storages_child_); | 532 AddChildSortedByTitle(session_storages_child_); |
| 419 return session_storages_child_; | 533 return session_storages_child_; |
| 420 } | 534 } |
| 421 | 535 |
| 422 CookieTreeAppCachesNode* CookieTreeOriginNode::GetOrCreateAppCachesNode() { | 536 CookieTreeAppCachesNode* CookieTreeHostNode::GetOrCreateAppCachesNode() { |
| 423 if (appcaches_child_) | 537 if (appcaches_child_) |
| 424 return appcaches_child_; | 538 return appcaches_child_; |
| 425 appcaches_child_ = new CookieTreeAppCachesNode; | 539 appcaches_child_ = new CookieTreeAppCachesNode; |
| 426 AddChildSortedByTitle(appcaches_child_); | 540 AddChildSortedByTitle(appcaches_child_); |
| 427 return appcaches_child_; | 541 return appcaches_child_; |
| 428 } | 542 } |
| 429 | 543 |
| 430 CookieTreeIndexedDBsNode* CookieTreeOriginNode::GetOrCreateIndexedDBsNode() { | 544 CookieTreeIndexedDBsNode* CookieTreeHostNode::GetOrCreateIndexedDBsNode() { |
| 431 if (indexed_dbs_child_) | 545 if (indexed_dbs_child_) |
| 432 return indexed_dbs_child_; | 546 return indexed_dbs_child_; |
| 433 indexed_dbs_child_ = new CookieTreeIndexedDBsNode; | 547 indexed_dbs_child_ = new CookieTreeIndexedDBsNode; |
| 434 AddChildSortedByTitle(indexed_dbs_child_); | 548 AddChildSortedByTitle(indexed_dbs_child_); |
| 435 return indexed_dbs_child_; | 549 return indexed_dbs_child_; |
| 436 } | 550 } |
| 437 | 551 |
| 438 CookieTreeFileSystemsNode* CookieTreeOriginNode::GetOrCreateFileSystemsNode() { | 552 CookieTreeFileSystemsNode* CookieTreeHostNode::GetOrCreateFileSystemsNode() { |
| 439 if (file_systems_child_) | 553 if (file_systems_child_) |
| 440 return file_systems_child_; | 554 return file_systems_child_; |
| 441 file_systems_child_ = new CookieTreeFileSystemsNode; | 555 file_systems_child_ = new CookieTreeFileSystemsNode; |
| 442 AddChildSortedByTitle(file_systems_child_); | 556 AddChildSortedByTitle(file_systems_child_); |
| 443 return file_systems_child_; | 557 return file_systems_child_; |
| 444 } | 558 } |
| 445 | 559 |
| 446 CookieTreeQuotaNode* CookieTreeOriginNode::UpdateOrCreateQuotaNode( | 560 CookieTreeQuotaNode* CookieTreeHostNode::UpdateOrCreateQuotaNode( |
| 447 std::list<BrowsingDataQuotaHelper::QuotaInfo>::iterator quota_info) { | 561 std::list<BrowsingDataQuotaHelper::QuotaInfo>::iterator quota_info) { |
| 448 if (quota_child_) | 562 if (quota_child_) |
| 449 return quota_child_; | 563 return quota_child_; |
| 450 quota_child_ = new CookieTreeQuotaNode(quota_info); | 564 quota_child_ = new CookieTreeQuotaNode(quota_info); |
| 451 AddChildSortedByTitle(quota_child_); | 565 AddChildSortedByTitle(quota_child_); |
| 452 return quota_child_; | 566 return quota_child_; |
| 453 } | 567 } |
| 454 | 568 |
| 455 CookieTreeServerBoundCertsNode* | 569 CookieTreeServerBoundCertsNode* |
| 456 CookieTreeOriginNode::GetOrCreateServerBoundCertsNode() { | 570 CookieTreeHostNode::GetOrCreateServerBoundCertsNode() { |
| 457 if (server_bound_certs_child_) | 571 if (server_bound_certs_child_) |
| 458 return server_bound_certs_child_; | 572 return server_bound_certs_child_; |
| 459 server_bound_certs_child_ = new CookieTreeServerBoundCertsNode; | 573 server_bound_certs_child_ = new CookieTreeServerBoundCertsNode; |
| 460 AddChildSortedByTitle(server_bound_certs_child_); | 574 AddChildSortedByTitle(server_bound_certs_child_); |
| 461 return server_bound_certs_child_; | 575 return server_bound_certs_child_; |
| 462 } | 576 } |
| 463 | 577 |
| 464 void CookieTreeOriginNode::CreateContentException( | 578 void CookieTreeHostNode::CreateContentException( |
| 465 CookieSettings* cookie_settings, ContentSetting setting) const { | 579 CookieSettings* cookie_settings, ContentSetting setting) const { |
| 466 DCHECK(setting == CONTENT_SETTING_ALLOW || | 580 DCHECK(setting == CONTENT_SETTING_ALLOW || |
| 467 setting == CONTENT_SETTING_BLOCK || | 581 setting == CONTENT_SETTING_BLOCK || |
| 468 setting == CONTENT_SETTING_SESSION_ONLY); | 582 setting == CONTENT_SETTING_SESSION_ONLY); |
| 469 if (CanCreateContentException()) { | 583 if (CanCreateContentException()) { |
| 470 cookie_settings->ResetCookieSetting( | 584 cookie_settings->ResetCookieSetting( |
| 471 ContentSettingsPattern::FromURLNoWildcard(url_), | 585 ContentSettingsPattern::FromURLNoWildcard(url_), |
| 472 ContentSettingsPattern::Wildcard()); | 586 ContentSettingsPattern::Wildcard()); |
| 473 cookie_settings->SetCookieSetting( | 587 cookie_settings->SetCookieSetting( |
| 474 ContentSettingsPattern::FromURL(url_), | 588 ContentSettingsPattern::FromURL(url_), |
| 475 ContentSettingsPattern::Wildcard(), setting); | 589 ContentSettingsPattern::Wildcard(), setting); |
| 476 } | 590 } |
| 477 } | 591 } |
| 478 | 592 |
| 479 bool CookieTreeOriginNode::CanCreateContentException() const { | 593 bool CookieTreeHostNode::CanCreateContentException() const { |
| 480 return !url_.SchemeIsFile(); | 594 return !url_.SchemeIsFile(); |
| 481 } | 595 } |
| 482 | 596 |
| 483 /////////////////////////////////////////////////////////////////////////////// | 597 /////////////////////////////////////////////////////////////////////////////// |
| 484 // CookieTreeCookiesNode, public: | 598 // CookieTreeCookiesNode, public: |
| 485 | 599 |
| 486 CookieTreeCookiesNode::CookieTreeCookiesNode() | 600 CookieTreeCookiesNode::CookieTreeCookiesNode() |
| 487 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_COOKIES)) { | 601 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_COOKIES)) { |
| 488 } | 602 } |
| 489 | 603 |
| 490 CookieTreeCookiesNode::~CookieTreeCookiesNode() { | 604 CookieTreeCookiesNode::~CookieTreeCookiesNode() { |
| 491 } | 605 } |
| 492 | 606 |
| 493 CookieTreeNode::DetailedInfo CookieTreeCookiesNode::GetDetailedInfo() const { | 607 CookieTreeNode::DetailedInfo CookieTreeCookiesNode::GetDetailedInfo() const { |
| 494 return DetailedInfo(parent()->GetTitle()).Init(DetailedInfo::TYPE_COOKIES); | 608 return DetailedInfo().Init(DetailedInfo::TYPE_COOKIES); |
| 495 } | 609 } |
| 496 | 610 |
| 497 /////////////////////////////////////////////////////////////////////////////// | 611 /////////////////////////////////////////////////////////////////////////////// |
| 498 // CookieTreeAppCachesNode, public: | 612 // CookieTreeAppCachesNode, public: |
| 499 | 613 |
| 500 CookieTreeAppCachesNode::CookieTreeAppCachesNode() | 614 CookieTreeAppCachesNode::CookieTreeAppCachesNode() |
| 501 : CookieTreeNode(l10n_util::GetStringUTF16( | 615 : CookieTreeNode(l10n_util::GetStringUTF16( |
| 502 IDS_COOKIES_APPLICATION_CACHES)) { | 616 IDS_COOKIES_APPLICATION_CACHES)) { |
| 503 } | 617 } |
| 504 | 618 |
| 505 CookieTreeAppCachesNode::~CookieTreeAppCachesNode() {} | 619 CookieTreeAppCachesNode::~CookieTreeAppCachesNode() {} |
| 506 | 620 |
| 507 CookieTreeNode::DetailedInfo CookieTreeAppCachesNode::GetDetailedInfo() const { | 621 CookieTreeNode::DetailedInfo CookieTreeAppCachesNode::GetDetailedInfo() const { |
| 508 return DetailedInfo(parent()->GetTitle()).Init(DetailedInfo::TYPE_APPCACHES); | 622 return DetailedInfo().Init(DetailedInfo::TYPE_APPCACHES); |
| 509 } | 623 } |
| 510 | 624 |
| 511 /////////////////////////////////////////////////////////////////////////////// | 625 /////////////////////////////////////////////////////////////////////////////// |
| 512 // CookieTreeDatabasesNode, public: | 626 // CookieTreeDatabasesNode, public: |
| 513 | 627 |
| 514 CookieTreeDatabasesNode::CookieTreeDatabasesNode() | 628 CookieTreeDatabasesNode::CookieTreeDatabasesNode() |
| 515 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASES)) { | 629 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASES)) { |
| 516 } | 630 } |
| 517 | 631 |
| 518 CookieTreeDatabasesNode::~CookieTreeDatabasesNode() {} | 632 CookieTreeDatabasesNode::~CookieTreeDatabasesNode() {} |
| 519 | 633 |
| 520 CookieTreeNode::DetailedInfo CookieTreeDatabasesNode::GetDetailedInfo() const { | 634 CookieTreeNode::DetailedInfo CookieTreeDatabasesNode::GetDetailedInfo() const { |
| 521 return DetailedInfo(parent()->GetTitle()).Init(DetailedInfo::TYPE_DATABASES); | 635 return DetailedInfo().Init(DetailedInfo::TYPE_DATABASES); |
| 522 } | 636 } |
| 523 | 637 |
| 524 /////////////////////////////////////////////////////////////////////////////// | 638 /////////////////////////////////////////////////////////////////////////////// |
| 525 // CookieTreeLocalStoragesNode, public: | 639 // CookieTreeLocalStoragesNode, public: |
| 526 | 640 |
| 527 CookieTreeLocalStoragesNode::CookieTreeLocalStoragesNode() | 641 CookieTreeLocalStoragesNode::CookieTreeLocalStoragesNode() |
| 528 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_LOCAL_STORAGE)) { | 642 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_LOCAL_STORAGE)) { |
| 529 } | 643 } |
| 530 | 644 |
| 531 CookieTreeLocalStoragesNode::~CookieTreeLocalStoragesNode() {} | 645 CookieTreeLocalStoragesNode::~CookieTreeLocalStoragesNode() {} |
| 532 | 646 |
| 533 CookieTreeNode::DetailedInfo | 647 CookieTreeNode::DetailedInfo |
| 534 CookieTreeLocalStoragesNode::GetDetailedInfo() const { | 648 CookieTreeLocalStoragesNode::GetDetailedInfo() const { |
| 535 return DetailedInfo(parent()->GetTitle()).Init( | 649 return DetailedInfo().Init(DetailedInfo::TYPE_LOCAL_STORAGES); |
| 536 DetailedInfo::TYPE_LOCAL_STORAGES); | |
| 537 } | 650 } |
| 538 | 651 |
| 539 /////////////////////////////////////////////////////////////////////////////// | 652 /////////////////////////////////////////////////////////////////////////////// |
| 540 // CookieTreeSessionStoragesNode, public: | 653 // CookieTreeSessionStoragesNode, public: |
| 541 | 654 |
| 542 CookieTreeSessionStoragesNode::CookieTreeSessionStoragesNode() | 655 CookieTreeSessionStoragesNode::CookieTreeSessionStoragesNode() |
| 543 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_SESSION_STORAGE)) { | 656 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_SESSION_STORAGE)) { |
| 544 } | 657 } |
| 545 | 658 |
| 546 CookieTreeSessionStoragesNode::~CookieTreeSessionStoragesNode() {} | 659 CookieTreeSessionStoragesNode::~CookieTreeSessionStoragesNode() {} |
| 547 | 660 |
| 548 CookieTreeNode::DetailedInfo | 661 CookieTreeNode::DetailedInfo |
| 549 CookieTreeSessionStoragesNode::GetDetailedInfo() const { | 662 CookieTreeSessionStoragesNode::GetDetailedInfo() const { |
| 550 return DetailedInfo(parent()->GetTitle()).Init( | 663 return DetailedInfo().Init(DetailedInfo::TYPE_SESSION_STORAGES); |
| 551 DetailedInfo::TYPE_SESSION_STORAGES); | |
| 552 } | 664 } |
| 553 | 665 |
| 554 /////////////////////////////////////////////////////////////////////////////// | 666 /////////////////////////////////////////////////////////////////////////////// |
| 555 // CookieTreeIndexedDBsNode, public: | 667 // CookieTreeIndexedDBsNode, public: |
| 556 | 668 |
| 557 CookieTreeIndexedDBsNode::CookieTreeIndexedDBsNode() | 669 CookieTreeIndexedDBsNode::CookieTreeIndexedDBsNode() |
| 558 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_INDEXED_DBS)) { | 670 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_INDEXED_DBS)) { |
| 559 } | 671 } |
| 560 | 672 |
| 561 CookieTreeIndexedDBsNode::~CookieTreeIndexedDBsNode() {} | 673 CookieTreeIndexedDBsNode::~CookieTreeIndexedDBsNode() {} |
| 562 | 674 |
| 563 CookieTreeNode::DetailedInfo | 675 CookieTreeNode::DetailedInfo |
| 564 CookieTreeIndexedDBsNode::GetDetailedInfo() const { | 676 CookieTreeIndexedDBsNode::GetDetailedInfo() const { |
| 565 return DetailedInfo(parent()->GetTitle()).Init( | 677 return DetailedInfo().Init(DetailedInfo::TYPE_INDEXED_DBS); |
| 566 DetailedInfo::TYPE_INDEXED_DBS); | |
| 567 } | 678 } |
| 568 | 679 |
| 569 /////////////////////////////////////////////////////////////////////////////// | 680 /////////////////////////////////////////////////////////////////////////////// |
| 570 // CookieTreeFileSystemsNode, public: | 681 // CookieTreeFileSystemsNode, public: |
| 571 | 682 |
| 572 CookieTreeFileSystemsNode::CookieTreeFileSystemsNode() | 683 CookieTreeFileSystemsNode::CookieTreeFileSystemsNode() |
| 573 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_FILE_SYSTEMS)) { | 684 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_FILE_SYSTEMS)) { |
| 574 } | 685 } |
| 575 | 686 |
| 576 CookieTreeFileSystemsNode::~CookieTreeFileSystemsNode() {} | 687 CookieTreeFileSystemsNode::~CookieTreeFileSystemsNode() {} |
| 577 | 688 |
| 578 CookieTreeNode::DetailedInfo | 689 CookieTreeNode::DetailedInfo |
| 579 CookieTreeFileSystemsNode::GetDetailedInfo() const { | 690 CookieTreeFileSystemsNode::GetDetailedInfo() const { |
| 580 return DetailedInfo(parent()->GetTitle()).Init( | 691 return DetailedInfo().Init(DetailedInfo::TYPE_FILE_SYSTEMS); |
| 581 DetailedInfo::TYPE_FILE_SYSTEMS); | |
| 582 } | 692 } |
| 583 | 693 |
| 584 /////////////////////////////////////////////////////////////////////////////// | 694 /////////////////////////////////////////////////////////////////////////////// |
| 585 // CookieTreeServerBoundCertsNode, public: | 695 // CookieTreeServerBoundCertsNode, public: |
| 586 | 696 |
| 587 CookieTreeServerBoundCertsNode::CookieTreeServerBoundCertsNode() | 697 CookieTreeServerBoundCertsNode::CookieTreeServerBoundCertsNode() |
| 588 : CookieTreeNode( | 698 : CookieTreeNode( |
| 589 l10n_util::GetStringUTF16(IDS_COOKIES_SERVER_BOUND_CERTS)) { | 699 l10n_util::GetStringUTF16(IDS_COOKIES_SERVER_BOUND_CERTS)) { |
| 590 } | 700 } |
| 591 | 701 |
| 592 CookieTreeServerBoundCertsNode::~CookieTreeServerBoundCertsNode() {} | 702 CookieTreeServerBoundCertsNode::~CookieTreeServerBoundCertsNode() {} |
| 593 | 703 |
| 594 CookieTreeNode::DetailedInfo | 704 CookieTreeNode::DetailedInfo |
| 595 CookieTreeServerBoundCertsNode::GetDetailedInfo() const { | 705 CookieTreeServerBoundCertsNode::GetDetailedInfo() const { |
| 596 return DetailedInfo(parent()->GetTitle()).Init( | 706 return DetailedInfo().Init(DetailedInfo::TYPE_SERVER_BOUND_CERTS); |
| 597 DetailedInfo::TYPE_SERVER_BOUND_CERTS); | |
| 598 } | 707 } |
| 599 | 708 |
| 600 void CookieTreeNode::AddChildSortedByTitle(CookieTreeNode* new_child) { | 709 void CookieTreeNode::AddChildSortedByTitle(CookieTreeNode* new_child) { |
| 601 DCHECK(new_child); | 710 DCHECK(new_child); |
| 602 std::vector<CookieTreeNode*>::iterator iter = | 711 std::vector<CookieTreeNode*>::iterator iter = |
| 603 std::lower_bound(children().begin(), children().end(), new_child, | 712 std::lower_bound(children().begin(), children().end(), new_child, |
| 604 NodeTitleComparator()); | 713 NodeTitleComparator()); |
| 605 GetModel()->Add(this, new_child, iter - children().begin()); | 714 GetModel()->Add(this, new_child, iter - children().begin()); |
| 606 } | 715 } |
| 607 | 716 |
| 608 /////////////////////////////////////////////////////////////////////////////// | 717 /////////////////////////////////////////////////////////////////////////////// |
| 609 // CookiesTreeModel, public: | 718 // CookiesTreeModel, public: |
| 610 | 719 |
| 611 CookiesTreeModel::CookiesTreeModel( | 720 CookiesTreeModel::CookiesTreeModel( |
| 612 BrowsingDataCookieHelper* cookie_helper, | 721 BrowsingDataCookieHelper* cookie_helper, |
| 613 BrowsingDataDatabaseHelper* database_helper, | 722 BrowsingDataDatabaseHelper* database_helper, |
| 614 BrowsingDataLocalStorageHelper* local_storage_helper, | 723 BrowsingDataLocalStorageHelper* local_storage_helper, |
| 615 BrowsingDataLocalStorageHelper* session_storage_helper, | 724 BrowsingDataLocalStorageHelper* session_storage_helper, |
| 616 BrowsingDataAppCacheHelper* appcache_helper, | 725 BrowsingDataAppCacheHelper* appcache_helper, |
| 617 BrowsingDataIndexedDBHelper* indexed_db_helper, | 726 BrowsingDataIndexedDBHelper* indexed_db_helper, |
| 618 BrowsingDataFileSystemHelper* file_system_helper, | 727 BrowsingDataFileSystemHelper* file_system_helper, |
| 619 BrowsingDataQuotaHelper* quota_helper, | 728 BrowsingDataQuotaHelper* quota_helper, |
| 620 BrowsingDataServerBoundCertHelper* server_bound_cert_helper, | 729 BrowsingDataServerBoundCertHelper* server_bound_cert_helper, |
| 730 ExtensionSpecialStoragePolicy* special_storage_policy, | |
| 621 bool use_cookie_source) | 731 bool use_cookie_source) |
| 622 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::TreeNodeModel<CookieTreeNode>( | 732 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::TreeNodeModel<CookieTreeNode>( |
| 623 new CookieTreeRootNode(this))), | 733 new CookieTreeRootNode(this))), |
| 624 appcache_helper_(appcache_helper), | 734 appcache_helper_(appcache_helper), |
| 625 cookie_helper_(cookie_helper), | 735 cookie_helper_(cookie_helper), |
| 626 database_helper_(database_helper), | 736 database_helper_(database_helper), |
| 627 local_storage_helper_(local_storage_helper), | 737 local_storage_helper_(local_storage_helper), |
| 628 session_storage_helper_(session_storage_helper), | 738 session_storage_helper_(session_storage_helper), |
| 629 indexed_db_helper_(indexed_db_helper), | 739 indexed_db_helper_(indexed_db_helper), |
| 630 file_system_helper_(file_system_helper), | 740 file_system_helper_(file_system_helper), |
| 631 quota_helper_(quota_helper), | 741 quota_helper_(quota_helper), |
| 632 server_bound_cert_helper_(server_bound_cert_helper), | 742 server_bound_cert_helper_(server_bound_cert_helper), |
| 743 special_storage_policy_(special_storage_policy), | |
| 633 batch_update_(0), | 744 batch_update_(0), |
| 634 use_cookie_source_(use_cookie_source), | 745 use_cookie_source_(use_cookie_source), |
| 635 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { | 746 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { |
| 636 DCHECK(cookie_helper_); | 747 DCHECK(cookie_helper_); |
| 637 cookie_helper_->StartFetching( | 748 cookie_helper_->StartFetching( |
| 638 base::Bind(&CookiesTreeModel::OnCookiesModelInfoLoaded, | 749 base::Bind(&CookiesTreeModel::OnCookiesModelInfoLoaded, |
| 639 weak_ptr_factory_.GetWeakPtr())); | 750 weak_ptr_factory_.GetWeakPtr())); |
| 640 DCHECK(database_helper_); | 751 DCHECK(database_helper_); |
| 641 database_helper_->StartFetching( | 752 database_helper_->StartFetching( |
| 642 base::Bind(&CookiesTreeModel::OnDatabaseModelInfoLoaded, | 753 base::Bind(&CookiesTreeModel::OnDatabaseModelInfoLoaded, |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 700 icons->push_back(*ResourceBundle::GetSharedInstance().GetImageSkiaNamed( | 811 icons->push_back(*ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| 701 IDR_COOKIE_STORAGE_ICON)); | 812 IDR_COOKIE_STORAGE_ICON)); |
| 702 } | 813 } |
| 703 | 814 |
| 704 // Returns the index of the icon to use for |node|. Return -1 to use the | 815 // Returns the index of the icon to use for |node|. Return -1 to use the |
| 705 // default icon. The index is relative to the list of icons returned from | 816 // default icon. The index is relative to the list of icons returned from |
| 706 // GetIcons. | 817 // GetIcons. |
| 707 int CookiesTreeModel::GetIconIndex(ui::TreeModelNode* node) { | 818 int CookiesTreeModel::GetIconIndex(ui::TreeModelNode* node) { |
| 708 CookieTreeNode* ct_node = static_cast<CookieTreeNode*>(node); | 819 CookieTreeNode* ct_node = static_cast<CookieTreeNode*>(node); |
| 709 switch (ct_node->GetDetailedInfo().node_type) { | 820 switch (ct_node->GetDetailedInfo().node_type) { |
| 710 case CookieTreeNode::DetailedInfo::TYPE_ORIGIN: | 821 case CookieTreeNode::DetailedInfo::TYPE_HOST: |
| 711 return ORIGIN; | 822 return ORIGIN; |
| 712 case CookieTreeNode::DetailedInfo::TYPE_COOKIE: | 823 case CookieTreeNode::DetailedInfo::TYPE_COOKIE: |
| 713 return COOKIE; | 824 return COOKIE; |
| 714 case CookieTreeNode::DetailedInfo::TYPE_DATABASE: | 825 case CookieTreeNode::DetailedInfo::TYPE_DATABASE: |
| 715 return DATABASE; | 826 return DATABASE; |
| 716 case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE: | 827 case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE: |
| 717 return DATABASE; // close enough | 828 return DATABASE; // close enough |
| 718 case CookieTreeNode::DetailedInfo::TYPE_SESSION_STORAGE: | 829 case CookieTreeNode::DetailedInfo::TYPE_SESSION_STORAGE: |
| 719 return DATABASE; // ditto | 830 return DATABASE; // ditto |
| 720 case CookieTreeNode::DetailedInfo::TYPE_APPCACHE: | 831 case CookieTreeNode::DetailedInfo::TYPE_APPCACHE: |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 747 void CookiesTreeModel::DeleteCookieNode(CookieTreeNode* cookie_node) { | 858 void CookiesTreeModel::DeleteCookieNode(CookieTreeNode* cookie_node) { |
| 748 if (cookie_node == GetRoot()) | 859 if (cookie_node == GetRoot()) |
| 749 return; | 860 return; |
| 750 cookie_node->DeleteStoredObjects(); | 861 cookie_node->DeleteStoredObjects(); |
| 751 CookieTreeNode* parent_node = cookie_node->parent(); | 862 CookieTreeNode* parent_node = cookie_node->parent(); |
| 752 delete Remove(parent_node, cookie_node); | 863 delete Remove(parent_node, cookie_node); |
| 753 if (parent_node->empty()) | 864 if (parent_node->empty()) |
| 754 DeleteCookieNode(parent_node); | 865 DeleteCookieNode(parent_node); |
| 755 } | 866 } |
| 756 | 867 |
| 757 void CookiesTreeModel::UpdateSearchResults(const std::wstring& filter) { | 868 void CookiesTreeModel::UpdateSearchResults(const string16& filter) { |
| 758 CookieTreeNode* root = GetRoot(); | 869 CookieTreeNode* root = GetRoot(); |
| 759 int num_children = root->child_count(); | 870 int num_children = root->child_count(); |
| 760 NotifyObserverBeginBatch(); | 871 NotifyObserverBeginBatch(); |
| 761 for (int i = num_children - 1; i >= 0; --i) | 872 for (int i = num_children - 1; i >= 0; --i) |
| 762 delete Remove(root, root->GetChild(i)); | 873 delete Remove(root, root->GetChild(i)); |
| 763 PopulateCookieInfoWithFilter(filter); | 874 PopulateCookieInfoWithFilter(filter); |
| 764 PopulateDatabaseInfoWithFilter(filter); | 875 PopulateDatabaseInfoWithFilter(filter); |
| 765 PopulateLocalStorageInfoWithFilter(filter); | 876 PopulateLocalStorageInfoWithFilter(filter); |
| 766 PopulateSessionStorageInfoWithFilter(filter); | 877 PopulateSessionStorageInfoWithFilter(filter); |
| 767 PopulateAppCacheInfoWithFilter(filter); | 878 PopulateAppCacheInfoWithFilter(filter); |
| 768 PopulateIndexedDBInfoWithFilter(filter); | 879 PopulateIndexedDBInfoWithFilter(filter); |
| 769 PopulateFileSystemInfoWithFilter(filter); | 880 PopulateFileSystemInfoWithFilter(filter); |
| 770 PopulateQuotaInfoWithFilter(filter); | 881 PopulateQuotaInfoWithFilter(filter); |
| 771 PopulateServerBoundCertInfoWithFilter(filter); | 882 PopulateServerBoundCertInfoWithFilter(filter); |
| 772 NotifyObserverTreeNodeChanged(root); | 883 NotifyObserverTreeNodeChanged(root); |
| 773 NotifyObserverEndBatch(); | 884 NotifyObserverEndBatch(); |
| 774 } | 885 } |
| 775 | 886 |
| 887 const ExtensionSet* CookiesTreeModel::ExtensionsProtectingNode( | |
| 888 const CookieTreeNode& cookie_node) { | |
| 889 if (!special_storage_policy_) | |
| 890 return NULL; | |
| 891 | |
| 892 CookieTreeNode::DetailedInfo info = cookie_node.GetDetailedInfo(); | |
| 893 | |
| 894 if (!TypeIsProtected(info.node_type)) | |
| 895 return NULL; | |
| 896 | |
| 897 DCHECK(!info.origin.is_empty()); | |
| 898 return special_storage_policy_->ExtensionsProtectingOrigin(info.origin); | |
| 899 } | |
| 900 | |
| 776 void CookiesTreeModel::AddCookiesTreeObserver(Observer* observer) { | 901 void CookiesTreeModel::AddCookiesTreeObserver(Observer* observer) { |
| 777 cookies_observer_list_.AddObserver(observer); | 902 cookies_observer_list_.AddObserver(observer); |
| 778 // Call super so that TreeNodeModel can notify, too. | 903 // Call super so that TreeNodeModel can notify, too. |
| 779 ui::TreeNodeModel<CookieTreeNode>::AddObserver(observer); | 904 ui::TreeNodeModel<CookieTreeNode>::AddObserver(observer); |
| 780 } | 905 } |
| 781 | 906 |
| 782 void CookiesTreeModel::RemoveCookiesTreeObserver(Observer* observer) { | 907 void CookiesTreeModel::RemoveCookiesTreeObserver(Observer* observer) { |
| 783 cookies_observer_list_.RemoveObserver(observer); | 908 cookies_observer_list_.RemoveObserver(observer); |
| 784 // Call super so that TreeNodeModel doesn't have dead pointers. | 909 // Call super so that TreeNodeModel doesn't have dead pointers. |
| 785 ui::TreeNodeModel<CookieTreeNode>::RemoveObserver(observer); | 910 ui::TreeNodeModel<CookieTreeNode>::RemoveObserver(observer); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 797 return; | 922 return; |
| 798 | 923 |
| 799 for (InfoByOrigin::const_iterator origin = | 924 for (InfoByOrigin::const_iterator origin = |
| 800 appcache_info->infos_by_origin.begin(); | 925 appcache_info->infos_by_origin.begin(); |
| 801 origin != appcache_info->infos_by_origin.end(); ++origin) { | 926 origin != appcache_info->infos_by_origin.end(); ++origin) { |
| 802 std::list<AppCacheInfo>& info_list = appcache_info_[origin->first]; | 927 std::list<AppCacheInfo>& info_list = appcache_info_[origin->first]; |
| 803 info_list.insert( | 928 info_list.insert( |
| 804 info_list.begin(), origin->second.begin(), origin->second.end()); | 929 info_list.begin(), origin->second.begin(), origin->second.end()); |
| 805 } | 930 } |
| 806 | 931 |
| 807 PopulateAppCacheInfoWithFilter(std::wstring()); | 932 PopulateAppCacheInfoWithFilter(string16()); |
| 808 } | 933 } |
| 809 | 934 |
| 810 void CookiesTreeModel::PopulateAppCacheInfoWithFilter( | 935 void CookiesTreeModel::PopulateAppCacheInfoWithFilter( |
| 811 const std::wstring& filter) { | 936 const string16& filter) { |
| 812 using appcache::AppCacheInfo; | 937 using appcache::AppCacheInfo; |
| 813 typedef std::map<GURL, std::list<AppCacheInfo> > InfoByOrigin; | 938 typedef std::map<GURL, std::list<AppCacheInfo> > InfoByOrigin; |
| 814 | 939 |
| 815 if (appcache_info_.empty()) | 940 if (appcache_info_.empty()) |
| 816 return; | 941 return; |
| 817 | 942 |
| 818 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 943 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 819 NotifyObserverBeginBatch(); | 944 NotifyObserverBeginBatch(); |
| 820 for (InfoByOrigin::iterator origin = appcache_info_.begin(); | 945 for (InfoByOrigin::iterator origin = appcache_info_.begin(); |
| 821 origin != appcache_info_.end(); ++origin) { | 946 origin != appcache_info_.end(); ++origin) { |
| 822 std::wstring origin_node_name = UTF8ToWide(origin->first.host()); | 947 string16 host_node_name = UTF8ToUTF16(origin->first.host()); |
| 823 if (filter.empty() || | 948 if (filter.empty() || |
| 824 (origin_node_name.find(filter) != std::wstring::npos)) { | 949 (host_node_name.find(filter) != std::string::npos)) { |
| 825 CookieTreeOriginNode* origin_node = | 950 CookieTreeHostNode* host_node = |
| 826 root->GetOrCreateOriginNode(origin->first); | 951 root->GetOrCreateHostNode(origin->first); |
| 827 CookieTreeAppCachesNode* appcaches_node = | 952 CookieTreeAppCachesNode* appcaches_node = |
| 828 origin_node->GetOrCreateAppCachesNode(); | 953 host_node->GetOrCreateAppCachesNode(); |
| 829 | 954 |
| 830 for (std::list<AppCacheInfo>::iterator info = origin->second.begin(); | 955 for (std::list<AppCacheInfo>::iterator info = origin->second.begin(); |
| 831 info != origin->second.end(); ++info) { | 956 info != origin->second.end(); ++info) { |
| 832 appcaches_node->AddAppCacheNode( | 957 appcaches_node->AddAppCacheNode( |
| 833 new CookieTreeAppCacheNode(origin->first, info)); | 958 new CookieTreeAppCacheNode(origin->first, info)); |
| 834 } | 959 } |
| 835 } | 960 } |
| 836 } | 961 } |
| 837 NotifyObserverTreeNodeChanged(root); | 962 NotifyObserverTreeNodeChanged(root); |
| 838 NotifyObserverEndBatch(); | 963 NotifyObserverEndBatch(); |
| 839 } | 964 } |
| 840 | 965 |
| 841 void CookiesTreeModel::OnCookiesModelInfoLoaded( | 966 void CookiesTreeModel::OnCookiesModelInfoLoaded( |
| 842 const net::CookieList& cookie_list) { | 967 const net::CookieList& cookie_list) { |
| 843 cookie_list_.insert(cookie_list_.begin(), | 968 cookie_list_.insert(cookie_list_.begin(), |
| 844 cookie_list.begin(), | 969 cookie_list.begin(), |
| 845 cookie_list.end()); | 970 cookie_list.end()); |
| 846 PopulateCookieInfoWithFilter(std::wstring()); | 971 PopulateCookieInfoWithFilter(string16()); |
| 847 } | 972 } |
| 848 | 973 |
| 849 void CookiesTreeModel::PopulateCookieInfoWithFilter( | 974 void CookiesTreeModel::PopulateCookieInfoWithFilter( |
| 850 const std::wstring& filter) { | 975 const string16& filter) { |
| 851 // mmargh mmargh mmargh! delicious! | 976 // mmargh mmargh mmargh! delicious! |
| 852 | 977 |
| 853 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 978 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 854 NotifyObserverBeginBatch(); | 979 NotifyObserverBeginBatch(); |
| 855 for (CookieList::iterator it = cookie_list_.begin(); | 980 for (CookieList::iterator it = cookie_list_.begin(); |
| 856 it != cookie_list_.end(); ++it) { | 981 it != cookie_list_.end(); ++it) { |
| 857 std::string source_string = it->Source(); | 982 std::string source_string = it->Source(); |
| 858 if (source_string.empty() || !use_cookie_source_) { | 983 if (source_string.empty() || !use_cookie_source_) { |
| 859 std::string domain = it->Domain(); | 984 std::string domain = it->Domain(); |
| 860 if (domain.length() > 1 && domain[0] == '.') | 985 if (domain.length() > 1 && domain[0] == '.') |
| 861 domain = domain.substr(1); | 986 domain = domain.substr(1); |
| 862 | 987 |
| 863 // We treat secure cookies just the same as normal ones. | 988 // We treat secure cookies just the same as normal ones. |
| 864 source_string = std::string(chrome::kHttpScheme) + | 989 source_string = std::string(chrome::kHttpScheme) + |
| 865 content::kStandardSchemeSeparator + domain + "/"; | 990 content::kStandardSchemeSeparator + domain + "/"; |
| 866 } | 991 } |
| 867 | 992 |
| 868 GURL source(source_string); | 993 GURL source(source_string); |
| 869 if (!filter.size() || | 994 if (!filter.size() || |
| 870 (CookieTreeOriginNode::TitleForUrl(source).find(filter) != | 995 (CookieTreeHostNode::TitleForUrl(source).find(filter) != |
| 871 std::string::npos)) { | 996 std::string::npos)) { |
| 872 CookieTreeOriginNode* origin_node = | 997 CookieTreeHostNode* host_node = |
| 873 root->GetOrCreateOriginNode(source); | 998 root->GetOrCreateHostNode(source); |
| 874 CookieTreeCookiesNode* cookies_node = | 999 CookieTreeCookiesNode* cookies_node = |
| 875 origin_node->GetOrCreateCookiesNode(); | 1000 host_node->GetOrCreateCookiesNode(); |
| 876 CookieTreeCookieNode* new_cookie = new CookieTreeCookieNode(it); | 1001 CookieTreeCookieNode* new_cookie = new CookieTreeCookieNode(it); |
| 877 cookies_node->AddCookieNode(new_cookie); | 1002 cookies_node->AddCookieNode(new_cookie); |
| 878 } | 1003 } |
| 879 } | 1004 } |
| 880 NotifyObserverTreeNodeChanged(root); | 1005 NotifyObserverTreeNodeChanged(root); |
| 881 NotifyObserverEndBatch(); | 1006 NotifyObserverEndBatch(); |
| 882 } | 1007 } |
| 883 | 1008 |
| 884 void CookiesTreeModel::OnDatabaseModelInfoLoaded( | 1009 void CookiesTreeModel::OnDatabaseModelInfoLoaded( |
| 885 const DatabaseInfoList& database_info) { | 1010 const DatabaseInfoList& database_info) { |
| 886 database_info_list_ = database_info; | 1011 database_info_list_ = database_info; |
| 887 PopulateDatabaseInfoWithFilter(std::wstring()); | 1012 PopulateDatabaseInfoWithFilter(string16()); |
| 888 } | 1013 } |
| 889 | 1014 |
| 890 void CookiesTreeModel::PopulateDatabaseInfoWithFilter( | 1015 void CookiesTreeModel::PopulateDatabaseInfoWithFilter( |
| 891 const std::wstring& filter) { | 1016 const string16& filter) { |
| 892 if (database_info_list_.empty()) | 1017 if (database_info_list_.empty()) |
| 893 return; | 1018 return; |
| 894 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 1019 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 895 NotifyObserverBeginBatch(); | 1020 NotifyObserverBeginBatch(); |
| 896 for (DatabaseInfoList::iterator database_info = database_info_list_.begin(); | 1021 for (DatabaseInfoList::iterator database_info = database_info_list_.begin(); |
| 897 database_info != database_info_list_.end(); | 1022 database_info != database_info_list_.end(); |
| 898 ++database_info) { | 1023 ++database_info) { |
| 899 GURL origin(database_info->origin); | 1024 GURL origin(database_info->origin); |
| 900 | 1025 |
| 901 if (!filter.size() || | 1026 if (!filter.size() || |
| 902 (CookieTreeOriginNode::TitleForUrl(origin).find(filter) != | 1027 (CookieTreeHostNode::TitleForUrl(origin).find(filter) != |
| 903 std::wstring::npos)) { | 1028 std::string::npos)) { |
| 904 CookieTreeOriginNode* origin_node = | 1029 CookieTreeHostNode* host_node = |
| 905 root->GetOrCreateOriginNode(origin); | 1030 root->GetOrCreateHostNode(origin); |
| 906 CookieTreeDatabasesNode* databases_node = | 1031 CookieTreeDatabasesNode* databases_node = |
| 907 origin_node->GetOrCreateDatabasesNode(); | 1032 host_node->GetOrCreateDatabasesNode(); |
| 908 databases_node->AddDatabaseNode( | 1033 databases_node->AddDatabaseNode( |
| 909 new CookieTreeDatabaseNode(database_info)); | 1034 new CookieTreeDatabaseNode(database_info)); |
| 910 } | 1035 } |
| 911 } | 1036 } |
| 912 NotifyObserverTreeNodeChanged(root); | 1037 NotifyObserverTreeNodeChanged(root); |
| 913 NotifyObserverEndBatch(); | 1038 NotifyObserverEndBatch(); |
| 914 } | 1039 } |
| 915 | 1040 |
| 916 void CookiesTreeModel::OnLocalStorageModelInfoLoaded( | 1041 void CookiesTreeModel::OnLocalStorageModelInfoLoaded( |
| 917 const LocalStorageInfoList& local_storage_info) { | 1042 const LocalStorageInfoList& local_storage_info) { |
| 918 local_storage_info_list_ = local_storage_info; | 1043 local_storage_info_list_ = local_storage_info; |
| 919 PopulateLocalStorageInfoWithFilter(std::wstring()); | 1044 PopulateLocalStorageInfoWithFilter(string16()); |
| 920 } | 1045 } |
| 921 | 1046 |
| 922 void CookiesTreeModel::PopulateLocalStorageInfoWithFilter( | 1047 void CookiesTreeModel::PopulateLocalStorageInfoWithFilter( |
| 923 const std::wstring& filter) { | 1048 const string16& filter) { |
| 924 if (local_storage_info_list_.empty()) | 1049 if (local_storage_info_list_.empty()) |
| 925 return; | 1050 return; |
| 926 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 1051 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 927 NotifyObserverBeginBatch(); | 1052 NotifyObserverBeginBatch(); |
| 928 for (LocalStorageInfoList::iterator local_storage_info = | 1053 for (LocalStorageInfoList::iterator local_storage_info = |
| 929 local_storage_info_list_.begin(); | 1054 local_storage_info_list_.begin(); |
| 930 local_storage_info != local_storage_info_list_.end(); | 1055 local_storage_info != local_storage_info_list_.end(); |
| 931 ++local_storage_info) { | 1056 ++local_storage_info) { |
| 932 const GURL& origin(local_storage_info->origin_url); | 1057 const GURL& origin(local_storage_info->origin_url); |
| 933 | 1058 |
| 934 if (!filter.size() || | 1059 if (!filter.size() || |
| 935 (CookieTreeOriginNode::TitleForUrl(origin).find(filter) != | 1060 (CookieTreeHostNode::TitleForUrl(origin).find(filter) != |
| 936 std::wstring::npos)) { | 1061 std::string::npos)) { |
| 937 CookieTreeOriginNode* origin_node = | 1062 CookieTreeHostNode* host_node = |
| 938 root->GetOrCreateOriginNode(origin); | 1063 root->GetOrCreateHostNode(origin); |
| 939 CookieTreeLocalStoragesNode* local_storages_node = | 1064 CookieTreeLocalStoragesNode* local_storages_node = |
| 940 origin_node->GetOrCreateLocalStoragesNode(); | 1065 host_node->GetOrCreateLocalStoragesNode(); |
| 941 local_storages_node->AddLocalStorageNode( | 1066 local_storages_node->AddLocalStorageNode( |
| 942 new CookieTreeLocalStorageNode(local_storage_info)); | 1067 new CookieTreeLocalStorageNode(local_storage_info)); |
| 943 } | 1068 } |
| 944 } | 1069 } |
| 945 NotifyObserverTreeNodeChanged(root); | 1070 NotifyObserverTreeNodeChanged(root); |
| 946 NotifyObserverEndBatch(); | 1071 NotifyObserverEndBatch(); |
| 947 } | 1072 } |
| 948 | 1073 |
| 949 void CookiesTreeModel::OnSessionStorageModelInfoLoaded( | 1074 void CookiesTreeModel::OnSessionStorageModelInfoLoaded( |
| 950 const LocalStorageInfoList& session_storage_info) { | 1075 const LocalStorageInfoList& session_storage_info) { |
| 951 session_storage_info_list_ = session_storage_info; | 1076 session_storage_info_list_ = session_storage_info; |
| 952 PopulateSessionStorageInfoWithFilter(std::wstring()); | 1077 PopulateSessionStorageInfoWithFilter(string16()); |
| 953 } | 1078 } |
| 954 | 1079 |
| 955 void CookiesTreeModel::PopulateSessionStorageInfoWithFilter( | 1080 void CookiesTreeModel::PopulateSessionStorageInfoWithFilter( |
| 956 const std::wstring& filter) { | 1081 const string16& filter) { |
| 957 if (session_storage_info_list_.empty()) | 1082 if (session_storage_info_list_.empty()) |
| 958 return; | 1083 return; |
| 959 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 1084 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 960 NotifyObserverBeginBatch(); | 1085 NotifyObserverBeginBatch(); |
| 961 for (LocalStorageInfoList::iterator session_storage_info = | 1086 for (LocalStorageInfoList::iterator session_storage_info = |
| 962 session_storage_info_list_.begin(); | 1087 session_storage_info_list_.begin(); |
| 963 session_storage_info != session_storage_info_list_.end(); | 1088 session_storage_info != session_storage_info_list_.end(); |
| 964 ++session_storage_info) { | 1089 ++session_storage_info) { |
| 965 const GURL& origin = session_storage_info->origin_url; | 1090 const GURL& origin = session_storage_info->origin_url; |
| 966 if (!filter.size() || | 1091 if (!filter.size() || |
| 967 (CookieTreeOriginNode::TitleForUrl(origin).find(filter) != | 1092 (CookieTreeHostNode::TitleForUrl(origin).find(filter) != |
| 968 std::wstring::npos)) { | 1093 std::string::npos)) { |
| 969 CookieTreeOriginNode* origin_node = | 1094 CookieTreeHostNode* host_node = |
| 970 root->GetOrCreateOriginNode(origin); | 1095 root->GetOrCreateHostNode(origin); |
| 971 CookieTreeSessionStoragesNode* session_storages_node = | 1096 CookieTreeSessionStoragesNode* session_storages_node = |
| 972 origin_node->GetOrCreateSessionStoragesNode(); | 1097 host_node->GetOrCreateSessionStoragesNode(); |
| 973 session_storages_node->AddSessionStorageNode( | 1098 session_storages_node->AddSessionStorageNode( |
| 974 new CookieTreeSessionStorageNode(session_storage_info)); | 1099 new CookieTreeSessionStorageNode(session_storage_info)); |
| 975 } | 1100 } |
| 976 } | 1101 } |
| 977 NotifyObserverTreeNodeChanged(root); | 1102 NotifyObserverTreeNodeChanged(root); |
| 978 NotifyObserverEndBatch(); | 1103 NotifyObserverEndBatch(); |
| 979 } | 1104 } |
| 980 | 1105 |
| 981 void CookiesTreeModel::OnIndexedDBModelInfoLoaded( | 1106 void CookiesTreeModel::OnIndexedDBModelInfoLoaded( |
| 982 const IndexedDBInfoList& indexed_db_info) { | 1107 const IndexedDBInfoList& indexed_db_info) { |
| 983 indexed_db_info_list_ = indexed_db_info; | 1108 indexed_db_info_list_ = indexed_db_info; |
| 984 PopulateIndexedDBInfoWithFilter(std::wstring()); | 1109 PopulateIndexedDBInfoWithFilter(string16()); |
| 985 } | 1110 } |
| 986 | 1111 |
| 987 void CookiesTreeModel::PopulateIndexedDBInfoWithFilter( | 1112 void CookiesTreeModel::PopulateIndexedDBInfoWithFilter( |
| 988 const std::wstring& filter) { | 1113 const string16& filter) { |
| 989 if (indexed_db_info_list_.empty()) | 1114 if (indexed_db_info_list_.empty()) |
| 990 return; | 1115 return; |
| 991 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 1116 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 992 NotifyObserverBeginBatch(); | 1117 NotifyObserverBeginBatch(); |
| 993 for (IndexedDBInfoList::iterator indexed_db_info = | 1118 for (IndexedDBInfoList::iterator indexed_db_info = |
| 994 indexed_db_info_list_.begin(); | 1119 indexed_db_info_list_.begin(); |
| 995 indexed_db_info != indexed_db_info_list_.end(); | 1120 indexed_db_info != indexed_db_info_list_.end(); |
| 996 ++indexed_db_info) { | 1121 ++indexed_db_info) { |
| 997 const GURL& origin = indexed_db_info->origin; | 1122 const GURL& origin = indexed_db_info->origin; |
| 998 | 1123 |
| 999 if (!filter.size() || | 1124 if (!filter.size() || |
| 1000 (CookieTreeOriginNode::TitleForUrl(origin).find(filter) != | 1125 (CookieTreeHostNode::TitleForUrl(origin).find(filter) != |
| 1001 std::wstring::npos)) { | 1126 std::string::npos)) { |
| 1002 CookieTreeOriginNode* origin_node = | 1127 CookieTreeHostNode* host_node = |
| 1003 root->GetOrCreateOriginNode(origin); | 1128 root->GetOrCreateHostNode(origin); |
| 1004 CookieTreeIndexedDBsNode* indexed_dbs_node = | 1129 CookieTreeIndexedDBsNode* indexed_dbs_node = |
| 1005 origin_node->GetOrCreateIndexedDBsNode(); | 1130 host_node->GetOrCreateIndexedDBsNode(); |
| 1006 indexed_dbs_node->AddIndexedDBNode( | 1131 indexed_dbs_node->AddIndexedDBNode( |
| 1007 new CookieTreeIndexedDBNode(indexed_db_info)); | 1132 new CookieTreeIndexedDBNode(indexed_db_info)); |
| 1008 } | 1133 } |
| 1009 } | 1134 } |
| 1010 NotifyObserverTreeNodeChanged(root); | 1135 NotifyObserverTreeNodeChanged(root); |
| 1011 NotifyObserverEndBatch(); | 1136 NotifyObserverEndBatch(); |
| 1012 } | 1137 } |
| 1013 | 1138 |
| 1014 void CookiesTreeModel::OnFileSystemModelInfoLoaded( | 1139 void CookiesTreeModel::OnFileSystemModelInfoLoaded( |
| 1015 const FileSystemInfoList& file_system_info) { | 1140 const FileSystemInfoList& file_system_info) { |
| 1016 file_system_info_list_ = file_system_info; | 1141 file_system_info_list_ = file_system_info; |
| 1017 PopulateFileSystemInfoWithFilter(std::wstring()); | 1142 PopulateFileSystemInfoWithFilter(string16()); |
| 1018 } | 1143 } |
| 1019 | 1144 |
| 1020 void CookiesTreeModel::PopulateFileSystemInfoWithFilter( | 1145 void CookiesTreeModel::PopulateFileSystemInfoWithFilter( |
| 1021 const std::wstring& filter) { | 1146 const string16& filter) { |
| 1022 if (file_system_info_list_.empty()) | 1147 if (file_system_info_list_.empty()) |
| 1023 return; | 1148 return; |
| 1024 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 1149 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 1025 NotifyObserverBeginBatch(); | 1150 NotifyObserverBeginBatch(); |
| 1026 for (FileSystemInfoList::iterator file_system_info = | 1151 for (FileSystemInfoList::iterator file_system_info = |
| 1027 file_system_info_list_.begin(); | 1152 file_system_info_list_.begin(); |
| 1028 file_system_info != file_system_info_list_.end(); | 1153 file_system_info != file_system_info_list_.end(); |
| 1029 ++file_system_info) { | 1154 ++file_system_info) { |
| 1030 GURL origin(file_system_info->origin); | 1155 GURL origin(file_system_info->origin); |
| 1031 | 1156 |
| 1032 if (!filter.size() || | 1157 if (!filter.size() || |
| 1033 (CookieTreeOriginNode::TitleForUrl(origin).find(filter) != | 1158 (CookieTreeHostNode::TitleForUrl(origin).find(filter) != |
| 1034 std::wstring::npos)) { | 1159 std::string::npos)) { |
| 1035 CookieTreeOriginNode* origin_node = | 1160 CookieTreeHostNode* host_node = |
| 1036 root->GetOrCreateOriginNode(origin); | 1161 root->GetOrCreateHostNode(origin); |
| 1037 CookieTreeFileSystemsNode* file_systems_node = | 1162 CookieTreeFileSystemsNode* file_systems_node = |
| 1038 origin_node->GetOrCreateFileSystemsNode(); | 1163 host_node->GetOrCreateFileSystemsNode(); |
| 1039 file_systems_node->AddFileSystemNode( | 1164 file_systems_node->AddFileSystemNode( |
| 1040 new CookieTreeFileSystemNode(file_system_info)); | 1165 new CookieTreeFileSystemNode(file_system_info)); |
| 1041 } | 1166 } |
| 1042 } | 1167 } |
| 1043 NotifyObserverTreeNodeChanged(root); | 1168 NotifyObserverTreeNodeChanged(root); |
| 1044 NotifyObserverEndBatch(); | 1169 NotifyObserverEndBatch(); |
| 1045 } | 1170 } |
| 1046 | 1171 |
| 1047 void CookiesTreeModel::OnQuotaModelInfoLoaded( | 1172 void CookiesTreeModel::OnQuotaModelInfoLoaded( |
| 1048 const QuotaInfoArray& quota_info) { | 1173 const QuotaInfoArray& quota_info) { |
| 1049 quota_info_list_ = quota_info; | 1174 quota_info_list_ = quota_info; |
| 1050 PopulateQuotaInfoWithFilter(std::wstring()); | 1175 PopulateQuotaInfoWithFilter(string16()); |
| 1051 } | 1176 } |
| 1052 | 1177 |
| 1053 void CookiesTreeModel::PopulateQuotaInfoWithFilter( | 1178 void CookiesTreeModel::PopulateQuotaInfoWithFilter( |
| 1054 const std::wstring& filter) { | 1179 const string16& filter) { |
| 1055 if (quota_info_list_.empty()) | 1180 if (quota_info_list_.empty()) |
| 1056 return; | 1181 return; |
| 1057 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 1182 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 1058 NotifyObserverBeginBatch(); | 1183 NotifyObserverBeginBatch(); |
| 1059 for (QuotaInfoArray::iterator quota_info = quota_info_list_.begin(); | 1184 for (QuotaInfoArray::iterator quota_info = quota_info_list_.begin(); |
| 1060 quota_info != quota_info_list_.end(); | 1185 quota_info != quota_info_list_.end(); |
| 1061 ++quota_info) { | 1186 ++quota_info) { |
| 1062 if (!filter.size() || | 1187 if (!filter.size() || |
| 1063 (UTF8ToWide(quota_info->host).find(filter) != std::wstring::npos)) { | 1188 (UTF8ToUTF16(quota_info->host).find(filter) != std::string::npos)) { |
| 1064 CookieTreeOriginNode* origin_node = | 1189 CookieTreeHostNode* host_node = |
| 1065 root->GetOrCreateOriginNode(GURL("http://" + quota_info->host)); | 1190 root->GetOrCreateHostNode(GURL("http://" + quota_info->host)); |
| 1066 origin_node->UpdateOrCreateQuotaNode(quota_info); | 1191 host_node->UpdateOrCreateQuotaNode(quota_info); |
| 1067 } | 1192 } |
| 1068 } | 1193 } |
| 1069 NotifyObserverTreeNodeChanged(root); | 1194 NotifyObserverTreeNodeChanged(root); |
| 1070 NotifyObserverEndBatch(); | 1195 NotifyObserverEndBatch(); |
| 1071 } | 1196 } |
| 1072 | 1197 |
| 1073 void CookiesTreeModel::OnServerBoundCertModelInfoLoaded( | 1198 void CookiesTreeModel::OnServerBoundCertModelInfoLoaded( |
| 1074 const ServerBoundCertList& cert_list) { | 1199 const ServerBoundCertList& cert_list) { |
| 1075 server_bound_cert_list_ = cert_list; | 1200 server_bound_cert_list_ = cert_list; |
| 1076 PopulateServerBoundCertInfoWithFilter(std::wstring()); | 1201 PopulateServerBoundCertInfoWithFilter(string16()); |
| 1077 } | 1202 } |
| 1078 | 1203 |
| 1079 void CookiesTreeModel::PopulateServerBoundCertInfoWithFilter( | 1204 void CookiesTreeModel::PopulateServerBoundCertInfoWithFilter( |
| 1080 const std::wstring& filter) { | 1205 const string16& filter) { |
| 1081 if (server_bound_cert_list_.empty()) | 1206 if (server_bound_cert_list_.empty()) |
| 1082 return; | 1207 return; |
| 1083 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); | 1208 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); |
| 1084 NotifyObserverBeginBatch(); | 1209 NotifyObserverBeginBatch(); |
| 1085 for (ServerBoundCertList::iterator cert_info = | 1210 for (ServerBoundCertList::iterator cert_info = |
| 1086 server_bound_cert_list_.begin(); | 1211 server_bound_cert_list_.begin(); |
| 1087 cert_info != server_bound_cert_list_.end(); | 1212 cert_info != server_bound_cert_list_.end(); |
| 1088 ++cert_info) { | 1213 ++cert_info) { |
| 1089 GURL origin(cert_info->server_identifier()); | 1214 GURL origin(cert_info->server_identifier()); |
| 1090 if (!origin.is_valid()) { | 1215 if (!origin.is_valid()) { |
| 1091 // Domain Bound Cert. Make a valid URL to satisfy the | 1216 // Domain Bound Cert. Make a valid URL to satisfy the |
| 1092 // CookieTreeRootNode::GetOrCreateOriginNode interface. | 1217 // CookieTreeRootNode::GetOrCreateHostNode interface. |
| 1093 origin = GURL(std::string(chrome::kHttpsScheme) + | 1218 origin = GURL(std::string(chrome::kHttpsScheme) + |
| 1094 content::kStandardSchemeSeparator + | 1219 content::kStandardSchemeSeparator + |
| 1095 cert_info->server_identifier() + "/"); | 1220 cert_info->server_identifier() + "/"); |
| 1096 } | 1221 } |
| 1097 std::wstring title = CookieTreeOriginNode::TitleForUrl(origin); | 1222 string16 title = CookieTreeHostNode::TitleForUrl(origin); |
| 1098 | 1223 |
| 1099 if (!filter.size() || title.find(filter) != std::wstring::npos) { | 1224 if (!filter.size() || title.find(filter) != std::string::npos) { |
| 1100 CookieTreeOriginNode* origin_node = | 1225 CookieTreeHostNode* host_node = |
| 1101 root->GetOrCreateOriginNode(origin); | 1226 root->GetOrCreateHostNode(origin); |
| 1102 CookieTreeServerBoundCertsNode* server_bound_certs_node = | 1227 CookieTreeServerBoundCertsNode* server_bound_certs_node = |
| 1103 origin_node->GetOrCreateServerBoundCertsNode(); | 1228 host_node->GetOrCreateServerBoundCertsNode(); |
| 1104 server_bound_certs_node->AddServerBoundCertNode( | 1229 server_bound_certs_node->AddServerBoundCertNode( |
| 1105 new CookieTreeServerBoundCertNode(cert_info)); | 1230 new CookieTreeServerBoundCertNode(cert_info)); |
| 1106 } | 1231 } |
| 1107 } | 1232 } |
| 1108 NotifyObserverTreeNodeChanged(root); | 1233 NotifyObserverTreeNodeChanged(root); |
| 1109 NotifyObserverEndBatch(); | 1234 NotifyObserverEndBatch(); |
| 1110 } | 1235 } |
| 1111 | 1236 |
| 1112 void CookiesTreeModel::NotifyObserverBeginBatch() { | 1237 void CookiesTreeModel::NotifyObserverBeginBatch() { |
| 1113 // Only notify the model once if we're batching in a nested manner. | 1238 // Only notify the model once if we're batching in a nested manner. |
| 1114 if (batch_update_++ == 0) { | 1239 if (batch_update_++ == 0) { |
| 1115 FOR_EACH_OBSERVER(Observer, | 1240 FOR_EACH_OBSERVER(Observer, |
| 1116 cookies_observer_list_, | 1241 cookies_observer_list_, |
| 1117 TreeModelBeginBatch(this)); | 1242 TreeModelBeginBatch(this)); |
| 1118 } | 1243 } |
| 1119 } | 1244 } |
| 1120 | 1245 |
| 1121 void CookiesTreeModel::NotifyObserverEndBatch() { | 1246 void CookiesTreeModel::NotifyObserverEndBatch() { |
| 1122 // Only notify the observers if this is the outermost call to EndBatch() if | 1247 // Only notify the observers if this is the outermost call to EndBatch() if |
| 1123 // called in a nested manner. | 1248 // called in a nested manner. |
| 1124 if (--batch_update_ == 0) { | 1249 if (--batch_update_ == 0) { |
| 1125 FOR_EACH_OBSERVER(Observer, | 1250 FOR_EACH_OBSERVER(Observer, |
| 1126 cookies_observer_list_, | 1251 cookies_observer_list_, |
| 1127 TreeModelEndBatch(this)); | 1252 TreeModelEndBatch(this)); |
| 1128 } | 1253 } |
| 1129 } | 1254 } |
| OLD | NEW |