summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authormichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-27 03:22:45 +0000
committermichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-27 03:22:45 +0000
commit41f1bf2c9c0009951467823409446c2644bfde98 (patch)
tree8906c4cb720a8dfa275d0177a8a9fe619a68a9c6 /chrome/browser
parent82f88c5fbe2bfed02de4de0fb1a2ea98942c4e0e (diff)
downloadchromium_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.h13
-rw-r--r--chrome/browser/browsing_data_local_storage_helper.h9
-rw-r--r--chrome/browser/cookies_tree_model.cc81
-rw-r--r--chrome/browser/cookies_tree_model.h2
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_;