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; |
} |
} |