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

Side by Side Diff: chrome/browser/extensions/api/system_storage/storage_info_provider.cc

Issue 18578008: [SystemInfo API] Move Storage API out of experimental namespace and rename to the "system" namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename to the "system" namespace. Created 7 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/api/system_info_storage/storage_info_provide r.h" 5 #include "chrome/browser/extensions/api/system_storage/storage_info_provider.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/sys_info.h" 9 #include "base/sys_info.h"
10 #include "base/threading/sequenced_worker_pool.h" 10 #include "base/threading/sequenced_worker_pool.h"
11 #include "chrome/browser/storage_monitor/storage_monitor.h" 11 #include "chrome/browser/storage_monitor/storage_monitor.h"
12 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
13 13
14 namespace extensions { 14 namespace extensions {
15 15
16 using content::BrowserThread; 16 using content::BrowserThread;
17 using chrome::StorageMonitor; 17 using chrome::StorageMonitor;
18 using api::experimental_system_info_storage::StorageUnitInfo; 18 using api::system_storage::StorageUnitInfo;
19 using api::experimental_system_info_storage::STORAGE_UNIT_TYPE_FIXED; 19 using api::system_storage::STORAGE_UNIT_TYPE_FIXED;
20 using api::experimental_system_info_storage::STORAGE_UNIT_TYPE_REMOVABLE; 20 using api::system_storage::STORAGE_UNIT_TYPE_REMOVABLE;
21 21
22 namespace systeminfo { 22 namespace systeminfo {
23 23
24 const char kStorageTypeUnknown[] = "unknown"; 24 const char kStorageTypeUnknown[] = "unknown";
25 const char kStorageTypeFixed[] = "fixed"; 25 const char kStorageTypeFixed[] = "fixed";
26 const char kStorageTypeRemovable[] = "removable"; 26 const char kStorageTypeRemovable[] = "removable";
27 27
28 void BuildStorageUnitInfo(const chrome::StorageInfo& info, 28 void BuildStorageUnitInfo(const chrome::StorageInfo& info,
29 StorageUnitInfo* unit) { 29 StorageUnitInfo* unit) {
30 unit->id = StorageInfoProvider::Get()->GetTransientIdForDeviceId( 30 unit->id = StorageInfoProvider::Get()->GetTransientIdForDeviceId(
31 info.device_id()); 31 info.device_id());
32 unit->name = UTF16ToUTF8(info.name()); 32 unit->name = UTF16ToUTF8(info.name());
33 // TODO(hmin): Might need to take MTP device into consideration. 33 // TODO(hmin): Might need to take MTP device into consideration.
34 unit->type = chrome::StorageInfo::IsRemovableDevice(info.device_id()) ? 34 unit->type = chrome::StorageInfo::IsRemovableDevice(info.device_id()) ?
35 STORAGE_UNIT_TYPE_REMOVABLE : STORAGE_UNIT_TYPE_FIXED; 35 STORAGE_UNIT_TYPE_REMOVABLE : STORAGE_UNIT_TYPE_FIXED;
36 unit->capacity = static_cast<double>(info.total_size_in_bytes()); 36 unit->capacity = static_cast<double>(info.total_size_in_bytes());
37 unit->available_capacity = 0;
38 } 37 }
39 38
40 } // namespace systeminfo 39 } // namespace systeminfo
41 40
42 const int kDefaultPollingIntervalMs = 1000; 41 const int kDefaultPollingIntervalMs = 1000;
43 const char kWatchingTokenName[] = "_storage_info_watching_token_"; 42 const char kWatchingTokenName[] = "_storage_info_watching_token_";
44 43
45 // Static member intialization. 44 // Static member intialization.
46 template<> 45 template<>
47 base::LazyInstance<scoped_refptr<SystemInfoProvider<StorageUnitInfoList> > > 46 base::LazyInstance<scoped_refptr<SystemInfoProvider<StorageUnitInfoList> > >
(...skipping 22 matching lines...) Expand all
70 const base::Closure& do_query_info_callback) { 69 const base::Closure& do_query_info_callback) {
71 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 70 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
72 // Register the |do_query_info_callback| callback to StorageMonitor. 71 // Register the |do_query_info_callback| callback to StorageMonitor.
73 // See the comments of StorageMonitor::EnsureInitialized about when the 72 // See the comments of StorageMonitor::EnsureInitialized about when the
74 // callback gets run. 73 // callback gets run.
75 StorageMonitor::GetInstance()->EnsureInitialized(do_query_info_callback); 74 StorageMonitor::GetInstance()->EnsureInitialized(do_query_info_callback);
76 } 75 }
77 76
78 bool StorageInfoProvider::QueryInfo() { 77 bool StorageInfoProvider::QueryInfo() {
79 DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); 78 DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread());
80 for (StorageUnitInfoList::iterator it = info_.begin(); 79 // No task to do in worker pool.
81 it != info_.end(); ++it) {
82 int64 amount = GetStorageFreeSpaceFromTransientId((*it)->id);
83 if (amount > 0)
84 (*it)->available_capacity = static_cast<double>(amount);
85 }
86
87 return true; 80 return true;
88 } 81 }
89 82
90 std::vector<chrome::StorageInfo> StorageInfoProvider::GetAllStorages() const { 83 std::vector<chrome::StorageInfo> StorageInfoProvider::GetAllStorages() const {
91 return StorageMonitor::GetInstance()->GetAllAvailableStorages(); 84 return StorageMonitor::GetInstance()->GetAllAvailableStorages();
92 } 85 }
93 86
94 void StorageInfoProvider::GetAllStoragesIntoInfoList() { 87 void StorageInfoProvider::GetAllStoragesIntoInfoList() {
95 info_.clear(); 88 info_.clear();
96 std::vector<chrome::StorageInfo> storage_list = GetAllStorages(); 89 std::vector<chrome::StorageInfo> storage_list = GetAllStorages();
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 const std::string& transient_id) const { 261 const std::string& transient_id) const {
269 return StorageMonitor::GetInstance()->GetDeviceIdForTransientId(transient_id); 262 return StorageMonitor::GetInstance()->GetDeviceIdForTransientId(transient_id);
270 } 263 }
271 264
272 // static 265 // static
273 StorageInfoProvider* StorageInfoProvider::Get() { 266 StorageInfoProvider* StorageInfoProvider::Get() {
274 return StorageInfoProvider::GetInstance<StorageInfoProvider>(); 267 return StorageInfoProvider::GetInstance<StorageInfoProvider>();
275 } 268 }
276 269
277 } // namespace extensions 270 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698