| Index: chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
|
| index a2eb7357ddffd9dba8cab37d204fbc5dec706903..9f40a9c07f699fd71c9a27ef1a5a2b49d69bdee8 100644
|
| --- a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
|
| @@ -39,7 +39,8 @@ namespace {
|
| //
|
| // The list is sorted by the path.
|
| void GetGCacheContents(const FilePath& root_path,
|
| - base::ListValue* gcache_contents) {
|
| + base::ListValue* gcache_contents,
|
| + base::DictionaryValue* gcache_summary) {
|
| using file_util::FileEnumerator;
|
| // Use this map to sort the result list by the path.
|
| std::map<FilePath, DictionaryValue*> files;
|
| @@ -52,6 +53,7 @@ void GetGCacheContents(const FilePath& root_path,
|
| true, // recursive
|
| static_cast<FileEnumerator::FileType>(options));
|
|
|
| + int64 total_size = 0;
|
| for (FilePath current = enumerator.Next(); !current.empty();
|
| current = enumerator.Next()) {
|
| FileEnumerator::FindInfo find_info;
|
| @@ -70,8 +72,9 @@ void GetGCacheContents(const FilePath& root_path,
|
| entry->SetBoolean("is_symbolic_link", is_symbolic_link);
|
| entry->SetString("last_modified",
|
| gdata::util::FormatTimeAsString(last_modified));
|
| -
|
| files[current] = entry;
|
| +
|
| + total_size += size;
|
| }
|
|
|
| // Convert |files| into |gcache_contents|.
|
| @@ -79,6 +82,8 @@ void GetGCacheContents(const FilePath& root_path,
|
| iter = files.begin(); iter != files.end(); ++iter) {
|
| gcache_contents->Append(iter->second);
|
| }
|
| +
|
| + gcache_summary->SetDouble("total_size", total_size);
|
| }
|
|
|
| // Formats |entry| into text.
|
| @@ -159,7 +164,8 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
|
| void OnPageLoaded(const base::ListValue* args);
|
|
|
| // Called when GetGCacheContents() is complete.
|
| - void OnGetGCacheContents(base::ListValue* gcache_contents);
|
| + void OnGetGCacheContents(base::ListValue* gcache_contents,
|
| + base::DictionaryValue* cache_summary);
|
|
|
| // Called when ReadDirectoryByPath() is complete.
|
| void OnReadDirectoryByPath(const FilePath& parent_path,
|
| @@ -217,18 +223,27 @@ void DriveInternalsWebUIHandler::OnPageLoaded(const base::ListValue* args) {
|
| const FilePath root_path =
|
| gdata::GDataCache::GetCacheRootPath(profile);
|
| base::ListValue* gcache_contents = new ListValue;
|
| + base::DictionaryValue* gcache_summary = new DictionaryValue;
|
| content::BrowserThread::PostBlockingPoolTaskAndReply(
|
| FROM_HERE,
|
| - base::Bind(&GetGCacheContents, root_path, gcache_contents),
|
| + base::Bind(&GetGCacheContents,
|
| + root_path,
|
| + gcache_contents,
|
| + gcache_summary),
|
| base::Bind(&DriveInternalsWebUIHandler::OnGetGCacheContents,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| - base::Owned(gcache_contents)));
|
| + base::Owned(gcache_contents),
|
| + base::Owned(gcache_summary)));
|
| }
|
|
|
| void DriveInternalsWebUIHandler::OnGetGCacheContents(
|
| - base::ListValue* gcache_contents) {
|
| + base::ListValue* gcache_contents,
|
| + base::DictionaryValue* gcache_summary) {
|
| DCHECK(gcache_contents);
|
| - web_ui()->CallJavascriptFunction("updateGCacheContents", *gcache_contents);
|
| + DCHECK(gcache_summary);
|
| + web_ui()->CallJavascriptFunction("updateGCacheContents",
|
| + *gcache_contents,
|
| + *gcache_summary);
|
|
|
| // Start updating the file system tree section, if we have access token.
|
| gdata::GDataSystemService* system_service = GetSystemService();
|
|
|