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

Side by Side Diff: chrome/browser/extensions/api/system_info/system_info_api.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/system_info_api.h" 5 #include "chrome/browser/extensions/api/system_info/system_info_api.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/lazy_instance.h" 11 #include "base/lazy_instance.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/memory/singleton.h" 13 #include "base/memory/singleton.h"
14 #include "base/strings/string_util.h" 14 #include "base/strings/string_util.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
17 #include "chrome/browser/extensions/api/system_info_storage/storage_info_provide r.h" 17 #include "chrome/browser/extensions/api/system_storage/storage_info_provider.h"
18 #include "chrome/browser/extensions/event_names.h" 18 #include "chrome/browser/extensions/event_names.h"
19 #include "chrome/browser/extensions/event_router_forwarder.h" 19 #include "chrome/browser/extensions/event_router_forwarder.h"
20 #include "chrome/browser/storage_monitor/removable_storage_observer.h" 20 #include "chrome/browser/storage_monitor/removable_storage_observer.h"
21 #include "chrome/browser/storage_monitor/storage_info.h" 21 #include "chrome/browser/storage_monitor/storage_info.h"
22 #include "chrome/browser/storage_monitor/storage_monitor.h" 22 #include "chrome/browser/storage_monitor/storage_monitor.h"
23 #include "chrome/common/extensions/api/experimental_system_info_storage.h" 23 #include "chrome/common/extensions/api/system_storage.h"
24 #include "ui/gfx/display_observer.h" 24 #include "ui/gfx/display_observer.h"
25 25
26 #if defined(USE_ASH) 26 #if defined(USE_ASH)
27 #include "ash/screen_ash.h" 27 #include "ash/screen_ash.h"
28 #include "ash/shell.h" 28 #include "ash/shell.h"
29 #endif 29 #endif
30 30
31 namespace extensions { 31 namespace extensions {
32 32
33 using api::experimental_system_info_storage::StorageFreeSpaceChangeInfo; 33 using api::system_storage::StorageFreeSpaceChangeInfo;
34 using api::experimental_system_info_storage::StorageUnitInfo; 34 using api::system_storage::StorageUnitInfo;
35 using api::experimental_system_info_storage::StorageUnitType; 35 using api::system_storage::StorageUnitType;
36 using content::BrowserThread; 36 using content::BrowserThread;
37 37
38 namespace { 38 namespace {
39 39
40 // The display events use the "systemInfo" prefix. 40 // The display events use the "systemInfo" prefix.
41 const char kSystemInfoEventPrefix[] = "systemInfo"; 41 const char kSystemInfoEventPrefix[] = "systemInfo";
42 // The storage events still use the "experimental.systemInfo" prefix. 42 // The storage events still use the "experimental.systemInfo" prefix.
43 const char kExperimentalSystemInfoEventPrefix[] = "experimental.systemInfo"; 43 const char kExperimentalSystemInfoEventPrefix[] = "experimental.systemInfo";
44 44
45 bool IsDisplayChangedEvent(const std::string& event_name) { 45 bool IsDisplayChangedEvent(const std::string& event_name) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 virtual void OnDisplayBoundsChanged(const gfx::Display& display) OVERRIDE; 78 virtual void OnDisplayBoundsChanged(const gfx::Display& display) OVERRIDE;
79 virtual void OnDisplayAdded(const gfx::Display& new_display) OVERRIDE; 79 virtual void OnDisplayAdded(const gfx::Display& new_display) OVERRIDE;
80 virtual void OnDisplayRemoved(const gfx::Display& old_display) OVERRIDE; 80 virtual void OnDisplayRemoved(const gfx::Display& old_display) OVERRIDE;
81 81
82 // chrome::RemovableStorageObserver implementation. 82 // chrome::RemovableStorageObserver implementation.
83 virtual void OnRemovableStorageAttached( 83 virtual void OnRemovableStorageAttached(
84 const chrome::StorageInfo& info) OVERRIDE; 84 const chrome::StorageInfo& info) OVERRIDE;
85 virtual void OnRemovableStorageDetached( 85 virtual void OnRemovableStorageDetached(
86 const chrome::StorageInfo& info) OVERRIDE; 86 const chrome::StorageInfo& info) OVERRIDE;
87 87
88 void DispatchStorageAttachedEvent(const chrome::StorageInfo& info, 88 void DispatchStorageAttachedEvent(const chrome::StorageInfo& info);
89 int64 avail_bytes);
90 89
91 // Called from any thread to dispatch the systemInfo event to all extension 90 // Called from any thread to dispatch the systemInfo event to all extension
92 // processes cross multiple profiles. 91 // processes cross multiple profiles.
93 void DispatchEvent(const std::string& event_name, 92 void DispatchEvent(const std::string& event_name,
94 scoped_ptr<base::ListValue> args); 93 scoped_ptr<base::ListValue> args);
95 94
96 // The callbacks of querying storage info to start and stop watching the 95 // The callbacks of querying storage info to start and stop watching the
97 // storages. Called from UI thread. 96 // storages. Called from UI thread.
98 void StartWatchingStorages(bool success); 97 void StartWatchingStorages(bool success);
99 void StopWatchingStorages(bool success); 98 void StopWatchingStorages(bool success);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 info.available_capacity = static_cast<double>(new_value); 209 info.available_capacity = static_cast<double>(new_value);
211 210
212 scoped_ptr<base::ListValue> args(new base::ListValue()); 211 scoped_ptr<base::ListValue> args(new base::ListValue());
213 args->Append(info.ToValue().release()); 212 args->Append(info.ToValue().release());
214 213
215 DispatchEvent(event_names::kOnStorageAvailableCapacityChanged, args.Pass()); 214 DispatchEvent(event_names::kOnStorageAvailableCapacityChanged, args.Pass());
216 } 215 }
217 216
218 void SystemInfoEventRouter::OnRemovableStorageAttached( 217 void SystemInfoEventRouter::OnRemovableStorageAttached(
219 const chrome::StorageInfo& info) { 218 const chrome::StorageInfo& info) {
220 base::PostTaskAndReplyWithResult( 219 DispatchStorageAttachedEvent(info);
not at google - send to devlin 2013/07/18 17:06:18 it looks like this patch is more than just a renam
Haojian Wu 2013/07/19 08:47:12 Actually this patch also update the storage APIs d
not at google - send to devlin 2013/07/22 15:55:57 Yes that is my point. The CL description says it's
221 BrowserThread::GetBlockingPool()->GetTaskRunnerWithShutdownBehavior(
222 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN),
223 FROM_HERE,
224 base::Bind(&StorageInfoProvider::GetStorageFreeSpaceFromTransientId,
225 StorageInfoProvider::Get(),
226 StorageInfoProvider::Get()->GetTransientIdForDeviceId(
227 info.device_id())),
228 base::Bind(&SystemInfoEventRouter::DispatchStorageAttachedEvent,
229 // Since SystemInfoEventRouter is a global lazy instance, this
230 // pointer will be alive when the reply comes back.
231 base::Unretained(this),
232 info));
233 } 220 }
234 221
235 void SystemInfoEventRouter::DispatchStorageAttachedEvent( 222 void SystemInfoEventRouter::DispatchStorageAttachedEvent(
236 const chrome::StorageInfo& info, int64 avail_bytes) { 223 const chrome::StorageInfo& info) {
237 StorageUnitInfo unit; 224 StorageUnitInfo unit;
238 systeminfo::BuildStorageUnitInfo(info, &unit); 225 systeminfo::BuildStorageUnitInfo(info, &unit);
239 226
240 unit.available_capacity =
241 avail_bytes > 0 ? static_cast<double>(avail_bytes) : 0;
242
243 scoped_ptr<base::ListValue> args(new base::ListValue); 227 scoped_ptr<base::ListValue> args(new base::ListValue);
244 args->Append(unit.ToValue().release()); 228 args->Append(unit.ToValue().release());
245 DispatchEvent(event_names::kOnStorageAttached, args.Pass()); 229 DispatchEvent(event_names::kOnStorageAttached, args.Pass());
246 } 230 }
247 231
248 void SystemInfoEventRouter::OnRemovableStorageDetached( 232 void SystemInfoEventRouter::OnRemovableStorageDetached(
249 const chrome::StorageInfo& info) { 233 const chrome::StorageInfo& info) {
250 scoped_ptr<base::ListValue> args(new base::ListValue); 234 scoped_ptr<base::ListValue> args(new base::ListValue);
251 args->Append(new base::StringValue(StorageInfoProvider::Get()-> 235 args->Append(new base::StringValue(StorageInfoProvider::Get()->
252 GetTransientIdForDeviceId(info.device_id()))); 236 GetTransientIdForDeviceId(info.device_id())));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 290
307 void SystemInfoAPI::OnListenerAdded(const EventListenerInfo& details) { 291 void SystemInfoAPI::OnListenerAdded(const EventListenerInfo& details) {
308 SystemInfoEventRouter::GetInstance()->AddEventListener(details.event_name); 292 SystemInfoEventRouter::GetInstance()->AddEventListener(details.event_name);
309 } 293 }
310 294
311 void SystemInfoAPI::OnListenerRemoved(const EventListenerInfo& details) { 295 void SystemInfoAPI::OnListenerRemoved(const EventListenerInfo& details) {
312 SystemInfoEventRouter::GetInstance()->RemoveEventListener(details.event_name); 296 SystemInfoEventRouter::GetInstance()->RemoveEventListener(details.event_name);
313 } 297 }
314 298
315 } // namespace extensions 299 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698