| Index: chrome/browser/ui/webui/cookies_tree_model_util.cc
|
| diff --git a/chrome/browser/ui/webui/cookies_tree_model_util.cc b/chrome/browser/ui/webui/cookies_tree_model_util.cc
|
| index ac744b49e1e1ac5222a38dc77e0864ff30ec5309..05dc69c11e5827e509b71c05e911003b7304a34e 100644
|
| --- a/chrome/browser/ui/webui/cookies_tree_model_util.cc
|
| +++ b/chrome/browser/ui/webui/cookies_tree_model_util.cc
|
| @@ -41,6 +41,13 @@ static const char kKeyModified[] = "modified";
|
| static const char kKeyPersistent[] = "persistent";
|
| static const char kKeyTemporary[] = "temporary";
|
|
|
| +static const char kKeyTotalUsage[] = "totalUsage";
|
| +static const char kKeyTemporaryUsage[] = "temporaryUsage";
|
| +static const char kKeyPersistentUsage[] = "persistentUsage";
|
| +static const char kKeyPersistentQuota[] = "persistentQuota";
|
| +
|
| +static const int64 kNegligibleUsage = 1024; // 1KiB
|
| +
|
| // Encodes a pointer value into a hex string.
|
| std::string PointerToHexString(const void* pointer) {
|
| return base::HexEncode(&pointer, sizeof(pointer));
|
| @@ -65,7 +72,7 @@ std::string GetTreeNodeId(CookieTreeNode* node) {
|
| return PointerToHexString(node);
|
| }
|
|
|
| -void GetCookieTreeNodeDictionary(const CookieTreeNode& node,
|
| +bool GetCookieTreeNodeDictionary(const CookieTreeNode& node,
|
| DictionaryValue* dict) {
|
| // Use node's address as an id for WebUI to look it up.
|
| dict->SetString(kKeyId, PointerToHexString(&node));
|
| @@ -190,12 +197,36 @@ void GetCookieTreeNodeDictionary(const CookieTreeNode& node,
|
| IDS_COOKIES_FILE_SYSTEM_USAGE_NONE));
|
| break;
|
| }
|
| + case CookieTreeNode::DetailedInfo::TYPE_QUOTA: {
|
| + dict->SetString(kKeyType, "quota");
|
| + dict->SetString(kKeyIcon, "chrome://theme/IDR_COOKIE_STORAGE_ICON");
|
| +
|
| + const BrowsingDataQuotaHelper::QuotaInfo& quota_info =
|
| + *node.GetDetailedInfo().quota_info;
|
| + if (quota_info.temporary_usage + quota_info.persistent_usage <=
|
| + kNegligibleUsage)
|
| + return false;
|
| +
|
| + dict->SetString(kKeyOrigin, quota_info.host);
|
| + dict->SetString(kKeyTotalUsage,
|
| + UTF16ToUTF8(ui::FormatBytes(
|
| + quota_info.temporary_usage +
|
| + quota_info.persistent_usage)));
|
| + dict->SetString(kKeyTemporaryUsage,
|
| + UTF16ToUTF8(ui::FormatBytes(
|
| + quota_info.temporary_usage)));
|
| + dict->SetString(kKeyPersistentUsage,
|
| + UTF16ToUTF8(ui::FormatBytes(
|
| + quota_info.persistent_usage)));
|
| + break;
|
| + }
|
| default:
|
| #if defined(OS_MACOSX)
|
| dict->SetString(kKeyIcon, "chrome://theme/IDR_BOOKMARK_BAR_FOLDER");
|
| #endif
|
| break;
|
| }
|
| + return true;
|
| }
|
|
|
| void GetChildNodeList(CookieTreeNode* parent, int start, int count,
|
| @@ -203,8 +234,10 @@ void GetChildNodeList(CookieTreeNode* parent, int start, int count,
|
| for (int i = 0; i < count; ++i) {
|
| DictionaryValue* dict = new DictionaryValue;
|
| CookieTreeNode* child = parent->GetChild(start + i);
|
| - GetCookieTreeNodeDictionary(*child, dict);
|
| - nodes->Append(dict);
|
| + if (GetCookieTreeNodeDictionary(*child, dict))
|
| + nodes->Append(dict);
|
| + else
|
| + delete dict;
|
| }
|
| }
|
|
|
|
|