diff options
author | michaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-27 03:22:45 +0000 |
---|---|---|
committer | michaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-27 03:22:45 +0000 |
commit | 41f1bf2c9c0009951467823409446c2644bfde98 (patch) | |
tree | 8906c4cb720a8dfa275d0177a8a9fe619a68a9c6 /chrome/browser | |
parent | 82f88c5fbe2bfed02de4de0fb1a2ea98942c4e0e (diff) | |
download | chromium_src-41f1bf2c9c0009951467823409446c2644bfde98.zip chromium_src-41f1bf2c9c0009951467823409446c2644bfde98.tar.gz chromium_src-41f1bf2c9c0009951467823409446c2644bfde98.tar.bz2 |
Clearly identify extension and file:// resources in the cookie tree view.
BUG=none
TEST=manual
Review URL: http://codereview.chromium.org/660236
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40205 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/browsing_data_database_helper.h | 13 | ||||
-rw-r--r-- | chrome/browser/browsing_data_local_storage_helper.h | 9 | ||||
-rw-r--r-- | chrome/browser/cookies_tree_model.cc | 81 | ||||
-rw-r--r-- | chrome/browser/cookies_tree_model.h | 2 |
4 files changed, 83 insertions, 22 deletions
diff --git a/chrome/browser/browsing_data_database_helper.h b/chrome/browser/browsing_data_database_helper.h index 2fa936b..cacba8b 100644 --- a/chrome/browser/browsing_data_database_helper.h +++ b/chrome/browser/browsing_data_database_helper.h @@ -10,6 +10,7 @@ #include "base/callback.h" #include "base/scoped_ptr.h" +#include "chrome/common/url_constants.h" #include "webkit/database/database_tracker.h" class Profile; @@ -41,6 +42,18 @@ class BrowsingDataDatabaseHelper last_modified(last_modified) { } + bool IsExtensionSchemeData() { + return StartsWithASCII(origin_identifier, + std::string(chrome::kExtensionScheme), + true); + } + + bool IsFileSchemeData() { + return StartsWithASCII(origin_identifier, + std::string(chrome::kFileScheme), + true); + } + std::string host; std::string database_name; std::string origin_identifier; diff --git a/chrome/browser/browsing_data_local_storage_helper.h b/chrome/browser/browsing_data_local_storage_helper.h index 9a82b9b..35ca6bd 100644 --- a/chrome/browser/browsing_data_local_storage_helper.h +++ b/chrome/browser/browsing_data_local_storage_helper.h @@ -11,6 +11,7 @@ #include "base/file_path.h" #include "base/scoped_ptr.h" #include "base/time.h" +#include "chrome/common/url_constants.h" class Profile; @@ -46,6 +47,14 @@ class BrowsingDataLocalStorageHelper last_modified(last_modified) { } + bool IsExtensionSchemeData() { + return protocol == chrome::kExtensionScheme; + } + + bool IsFileSchemeData() { + return protocol == chrome::kFileScheme; + } + std::string protocol; std::string host; unsigned short port; diff --git a/chrome/browser/cookies_tree_model.cc b/chrome/browser/cookies_tree_model.cc index c911b00..8e3f611 100644 --- a/chrome/browser/cookies_tree_model.cc +++ b/chrome/browser/cookies_tree_model.cc @@ -15,6 +15,7 @@ #include "base/callback.h" #include "base/linked_ptr.h" #include "base/string_util.h" +#include "chrome/browser/extensions/extensions_service.h" #include "chrome/browser/in_process_webkit/webkit_context.h" #include "chrome/browser/net/chrome_url_request_context.h" #include "chrome/browser/profile.h" @@ -26,6 +27,7 @@ #include "net/url_request/url_request_context.h" #include "third_party/skia/include/core/SkBitmap.h" +static const char kFileOriginNodeName[] = "file://"; /////////////////////////////////////////////////////////////////////////////// // CookieTreeNode, public: @@ -378,14 +380,14 @@ void CookiesTreeModel::LoadCookiesWithFilter(const std::wstring& filter) { all_cookies_ = cookie_monster->GetAllCookies(); CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot()); for (CookieList::iterator it = all_cookies_.begin(); - it != all_cookies_.end(); - ++it) { - // Get the origin cookie + it != all_cookies_.end(); ++it) { + std::wstring origin_node_name = UTF8ToWide(it->first); if (!filter.size() || - (UTF8ToWide(it->first).find(filter) != std::wstring::npos)) { - CookieTreeOriginNode* origin = - root->GetOrCreateOriginNode(UTF8ToWide(it->first)); - CookieTreeCookiesNode* cookies_node = origin->GetOrCreateCookiesNode(); + (origin_node_name.find(filter) != std::wstring::npos)) { + CookieTreeOriginNode* origin_node = + root->GetOrCreateOriginNode(origin_node_name); + CookieTreeCookiesNode* cookies_node = + origin_node->GetOrCreateCookiesNode(); CookieTreeCookieNode* new_cookie = new CookieTreeCookieNode(&*it); cookies_node->AddCookieNode(new_cookie); } @@ -433,12 +435,13 @@ void CookiesTreeModel::PopulateAppCacheInfoWithFilter( for (AppCacheInfoList::const_iterator info = appcache_helper_->info_list().begin(); info != appcache_helper_->info_list().end(); ++info) { - std::wstring host = UTF8ToWide(info->manifest_url.host()); - if (filter.empty() || (host.find(filter) != std::wstring::npos)) { - CookieTreeOriginNode* host_node = - root->GetOrCreateOriginNode(host); + std::wstring origin_node_name = UTF8ToWide(info->manifest_url.host()); + if (filter.empty() || + (origin_node_name.find(filter) != std::wstring::npos)) { + CookieTreeOriginNode* origin_node = + root->GetOrCreateOriginNode(origin_node_name); CookieTreeAppCachesNode* appcaches_node = - host_node->GetOrCreateAppCachesNode(); + origin_node->GetOrCreateAppCachesNode(); appcaches_node->AddAppCacheNode( new CookieTreeAppCacheNode(&(*info))); } @@ -460,12 +463,19 @@ void CookiesTreeModel::PopulateDatabaseInfoWithFilter( for (DatabaseInfoList::iterator database_info = database_info_list_.begin(); database_info != database_info_list_.end(); ++database_info) { - std::string origin = database_info->host.empty() ? - database_info->origin_identifier : database_info->host; + // Determine which 'origin' node to place each 'info' in. + std::wstring origin_node_name; + if (database_info->IsFileSchemeData()) + origin_node_name = UTF8ToWide(kFileOriginNodeName); + else if (database_info->IsExtensionSchemeData()) + origin_node_name = FormExtensionNodeName(database_info->host); + else + origin_node_name = UTF8ToWide(database_info->host); + if (!filter.size() || - (UTF8ToWide(origin).find(filter) != std::wstring::npos)) { - CookieTreeOriginNode* origin_node = root->GetOrCreateOriginNode( - UTF8ToWide(database_info->host)); + (origin_node_name.find(filter) != std::wstring::npos)) { + CookieTreeOriginNode* origin_node = + root->GetOrCreateOriginNode(origin_node_name); CookieTreeDatabasesNode* databases_node = origin_node->GetOrCreateDatabasesNode(); databases_node->AddDatabaseNode( @@ -490,12 +500,19 @@ void CookiesTreeModel::PopulateLocalStorageInfoWithFilter( local_storage_info_list_.begin(); local_storage_info != local_storage_info_list_.end(); ++local_storage_info) { - std::string origin = local_storage_info->host.empty() ? - local_storage_info->database_identifier : local_storage_info->host; + // Determine which 'origin' node to place each 'info' in. + std::wstring origin_node_name; + if (local_storage_info->IsFileSchemeData()) + origin_node_name = UTF8ToWide(kFileOriginNodeName); + else if (local_storage_info->IsExtensionSchemeData()) + origin_node_name = FormExtensionNodeName(local_storage_info->host); + else + origin_node_name = UTF8ToWide(local_storage_info->host); + if (!filter.size() || - (UTF8ToWide(origin).find(filter) != std::wstring::npos)) { - CookieTreeOriginNode* origin_node = root->GetOrCreateOriginNode( - UTF8ToWide(local_storage_info->host)); + (origin_node_name.find(filter) != std::wstring::npos)) { + CookieTreeOriginNode* origin_node = + root->GetOrCreateOriginNode(origin_node_name); CookieTreeLocalStoragesNode* local_storages_node = origin_node->GetOrCreateLocalStoragesNode(); local_storages_node->AddLocalStorageNode( @@ -504,3 +521,23 @@ void CookiesTreeModel::PopulateLocalStorageInfoWithFilter( } NotifyObserverTreeNodeChanged(root); } + +std::wstring CookiesTreeModel::FormExtensionNodeName( + const std::string& extension_id) { + Extension* extension = + profile_->GetExtensionsService()->GetExtensionById(extension_id, true); + std::wstring extension_name = extension ? + UTF8ToWide(extension->name()) : + l10n_util::GetString(IDS_UNKNOWN_PLUGIN_NAME); + + // Since the extension_name will be concatenated with a prefix, we need + // to explicitly set the extension_name to be LTR format if there is no + // strong RTL charater in it. Otherwise, if the prefix is an RTL word, + // the concatenated result might be wrong. For extension named + // "Great Extension!" the concatenated result would be something like + // "!Great Extension :NOISNETXE", in which capital letters "NOISNETXE" + // stand for the Hebrew word for "extension". + l10n_util::AdjustStringForLocaleDirection(extension_name, &extension_name); + return l10n_util::GetStringF(IDS_TASK_MANAGER_EXTENSION_PREFIX, + extension_name); +} diff --git a/chrome/browser/cookies_tree_model.h b/chrome/browser/cookies_tree_model.h index 4ec687d..3fabbaf 100644 --- a/chrome/browser/cookies_tree_model.h +++ b/chrome/browser/cookies_tree_model.h @@ -394,6 +394,8 @@ class CookiesTreeModel : public TreeNodeModel<CookieTreeNode> { void PopulateDatabaseInfoWithFilter(const std::wstring& filter); void PopulateLocalStorageInfoWithFilter(const std::wstring& filter); + std::wstring FormExtensionNodeName(const std::string& extension_id); + // The profile from which this model sources cookies. Profile* profile_; CookieList all_cookies_; |