Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1333)

Side by Side Diff: chrome/browser/ui/webui/options/chromeos/storage_manager_handler.cc

Issue 2111043003: Storage manager: Show the disk usage of other users. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix typo and the order of storage items. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/options/chromeos/storage_manager_handler.h" 5 #include "chrome/browser/ui/webui/options/chromeos/storage_manager_handler.h"
6 6
7 #include <algorithm>
8 #include <numeric>
7 #include <string> 9 #include <string>
8 10
9 #include "base/files/file_util.h" 11 #include "base/files/file_util.h"
10 #include "base/sys_info.h" 12 #include "base/sys_info.h"
11 #include "chrome/browser/browser_process.h" 13 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/chromeos/arc/arc_auth_service.h" 14 #include "chrome/browser/chromeos/arc/arc_auth_service.h"
13 #include "chrome/browser/chromeos/drive/file_system_util.h" 15 #include "chrome/browser/chromeos/drive/file_system_util.h"
14 #include "chrome/browser/chromeos/file_manager/path_util.h" 16 #include "chrome/browser/chromeos/file_manager/path_util.h"
15 #include "chrome/browser/platform_util.h" 17 #include "chrome/browser/platform_util.h"
16 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/grit/generated_resources.h" 19 #include "chrome/grit/generated_resources.h"
20 #include "chromeos/cryptohome/homedir_methods.h"
18 #include "components/browsing_data/storage_partition_http_cache_data_remover.h" 21 #include "components/browsing_data/storage_partition_http_cache_data_remover.h"
19 #include "components/drive/chromeos/file_system_interface.h" 22 #include "components/drive/chromeos/file_system_interface.h"
23 #include "components/user_manager/user_manager.h"
20 #include "content/public/browser/browser_context.h" 24 #include "content/public/browser/browser_context.h"
21 #include "content/public/browser/browser_thread.h" 25 #include "content/public/browser/browser_thread.h"
22 #include "ui/base/l10n/l10n_util.h" 26 #include "ui/base/l10n/l10n_util.h"
23 #include "ui/base/text/bytes_formatting.h" 27 #include "ui/base/text/bytes_formatting.h"
24 28
25 namespace chromeos { 29 namespace chromeos {
26 namespace options { 30 namespace options {
27 namespace { 31 namespace {
28 32
29 void GetSizeStatOnBlockingPool(const base::FilePath& mount_path, 33 void GetSizeStatOnBlockingPool(const base::FilePath& mount_path,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 localized_strings->SetString( 79 localized_strings->SetString(
76 "storageSubitemLabelDownloads", l10n_util::GetStringUTF16( 80 "storageSubitemLabelDownloads", l10n_util::GetStringUTF16(
77 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_DOWNLOADS)); 81 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_DOWNLOADS));
78 localized_strings->SetString( 82 localized_strings->SetString(
79 "storageSubitemLabelDriveCache", l10n_util::GetStringUTF16( 83 "storageSubitemLabelDriveCache", l10n_util::GetStringUTF16(
80 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_DRIVE_CACHE)); 84 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_DRIVE_CACHE));
81 localized_strings->SetString( 85 localized_strings->SetString(
82 "storageSubitemLabelBrowsingData", l10n_util::GetStringUTF16( 86 "storageSubitemLabelBrowsingData", l10n_util::GetStringUTF16(
83 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_BROWSING_DATA)); 87 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_BROWSING_DATA));
84 localized_strings->SetString( 88 localized_strings->SetString(
89 "storageSubitemLabelOtherUsers", l10n_util::GetStringUTF16(
90 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_OTHER_USERS));
91 localized_strings->SetString(
85 "storageSubitemLabelArc", l10n_util::GetStringUTF16( 92 "storageSubitemLabelArc", l10n_util::GetStringUTF16(
86 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_ARC)); 93 IDS_OPTIONS_SETTINGS_STORAGE_SUBITEM_LABEL_ARC));
87 localized_strings->SetString( 94 localized_strings->SetString(
88 "storageSizeCalculating", l10n_util::GetStringUTF16( 95 "storageSizeCalculating", l10n_util::GetStringUTF16(
89 IDS_OPTIONS_SETTINGS_STORAGE_SIZE_CALCULATING)); 96 IDS_OPTIONS_SETTINGS_STORAGE_SIZE_CALCULATING));
90 localized_strings->SetString( 97 localized_strings->SetString(
91 "storageClearDriveCacheDialogTitle", l10n_util::GetStringUTF16( 98 "storageClearDriveCacheDialogTitle", l10n_util::GetStringUTF16(
92 IDS_OPTIONS_SETTINGS_STORAGE_CLEAR_DRIVE_CACHE_DIALOG_TITLE)); 99 IDS_OPTIONS_SETTINGS_STORAGE_CLEAR_DRIVE_CACHE_DIALOG_TITLE));
93 localized_strings->SetString( 100 localized_strings->SetString(
94 "storageClearDriveCacheDescription", l10n_util::GetStringUTF16( 101 "storageClearDriveCacheDescription", l10n_util::GetStringUTF16(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 base::Bind(&StorageManagerHandler::HandleClearDriveCache, 147 base::Bind(&StorageManagerHandler::HandleClearDriveCache,
141 base::Unretained(this))); 148 base::Unretained(this)));
142 } 149 }
143 150
144 void StorageManagerHandler::HandleUpdateStorageInfo( 151 void StorageManagerHandler::HandleUpdateStorageInfo(
145 const base::ListValue* unused_args) { 152 const base::ListValue* unused_args) {
146 UpdateSizeStat(); 153 UpdateSizeStat();
147 UpdateDownloadsSize(); 154 UpdateDownloadsSize();
148 UpdateDriveCacheSize(); 155 UpdateDriveCacheSize();
149 UpdateBrowsingDataSize(); 156 UpdateBrowsingDataSize();
157 UpdateOtherUsersSize();
150 UpdateArcSize(); 158 UpdateArcSize();
151 } 159 }
152 160
153 void StorageManagerHandler::HandleOpenDownloads( 161 void StorageManagerHandler::HandleOpenDownloads(
154 const base::ListValue* unused_args) { 162 const base::ListValue* unused_args) {
155 Profile* const profile = Profile::FromWebUI(web_ui()); 163 Profile* const profile = Profile::FromWebUI(web_ui());
156 const base::FilePath downloads_path = 164 const base::FilePath downloads_path =
157 file_manager::util::GetDownloadsFolderForProfile(profile); 165 file_manager::util::GetDownloadsFolderForProfile(profile);
158 platform_util::OpenItem( 166 platform_util::OpenItem(
159 profile, 167 profile,
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 browser_site_data_size_ = size; 277 browser_site_data_size_ = size;
270 else 278 else
271 browser_cache_size_ = size; 279 browser_cache_size_ = size;
272 280
273 web_ui()->CallJavascriptFunctionUnsafe( 281 web_ui()->CallJavascriptFunctionUnsafe(
274 "options.StorageManager.setBrowsingDataSize", 282 "options.StorageManager.setBrowsingDataSize",
275 base::StringValue(ui::FormatBytes(static_cast<int64_t>( 283 base::StringValue(ui::FormatBytes(static_cast<int64_t>(
276 browser_cache_size_ + browser_site_data_size_)))); 284 browser_cache_size_ + browser_site_data_size_))));
277 } 285 }
278 286
287 void StorageManagerHandler::UpdateOtherUsersSize() {
288 other_users_.clear();
289 user_sizes_.clear();
290 const user_manager::UserList& users =
291 user_manager::UserManager::Get()->GetUsers();
292 for (const auto& user : users) {
293 if (user->is_active())
294 continue;
295 other_users_.push_back(user);
296 cryptohome::HomedirMethods::GetInstance()->GetAccountDiskUsage(
297 cryptohome::Identification(user->GetAccountId()),
298 base::Bind(&StorageManagerHandler::OnGetOtherUserSize,
299 weak_ptr_factory_.GetWeakPtr()));
300 }
301 }
302
303 void StorageManagerHandler::OnGetOtherUserSize(bool success, int64_t size) {
304 user_sizes_.push_back(success ? size : -1);
305 if (user_sizes_.size() == other_users_.size()) {
306 base::StringValue other_users_size(l10n_util::GetStringUTF16(
307 IDS_OPTIONS_SETTINGS_STORAGE_SIZE_UNKNOWN));
308 // If all the requests succeed, shows the total bytes in the UI.
309 if (std::count(user_sizes_.begin(), user_sizes_.end(), -1) == 0) {
310 other_users_size = base::StringValue(ui::FormatBytes(
311 std::accumulate(user_sizes_.begin(), user_sizes_.end(), 0LL)));
312 }
313 web_ui()->CallJavascriptFunctionUnsafe(
314 "options.StorageManager.setOtherUsersSize", other_users_size);
315 }
316 }
317
279 void StorageManagerHandler::UpdateArcSize() { 318 void StorageManagerHandler::UpdateArcSize() {
280 Profile* const profile = Profile::FromWebUI(web_ui()); 319 Profile* const profile = Profile::FromWebUI(web_ui());
281 if (!arc::ArcAuthService::IsAllowedForProfile(profile) || 320 if (!arc::ArcAuthService::IsAllowedForProfile(profile) ||
282 arc::ArcAuthService::IsOptInVerificationDisabled() || 321 arc::ArcAuthService::IsOptInVerificationDisabled() ||
283 !arc::ArcAuthService::Get()->IsArcEnabled()) { 322 !arc::ArcAuthService::Get()->IsArcEnabled()) {
284 return; 323 return;
285 } 324 }
286 325
287 // Shows the item "Android apps and cache" and start calculating size. 326 // Shows the item "Android apps and cache" and start calculating size.
288 web_ui()->CallJavascriptFunctionUnsafe( 327 web_ui()->CallJavascriptFunctionUnsafe(
(...skipping 24 matching lines...) Expand all
313 web_ui()->CallJavascriptFunctionUnsafe("options.StorageManager.setArcSize", 352 web_ui()->CallJavascriptFunctionUnsafe("options.StorageManager.setArcSize",
314 arc_size); 353 arc_size);
315 } 354 }
316 355
317 void StorageManagerHandler::OnClearDriveCacheDone(bool success) { 356 void StorageManagerHandler::OnClearDriveCacheDone(bool success) {
318 UpdateDriveCacheSize(); 357 UpdateDriveCacheSize();
319 } 358 }
320 359
321 } // namespace options 360 } // namespace options
322 } // namespace chromeos 361 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/storage_manager_handler.h ('k') | chromeos/cryptohome/homedir_methods.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698