| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Use the <code>chrome.system.storage</code> API to query storage device |
| // information and be notified when a removable storage device is attached and |
| // detached or the available capacity changes. |
| namespace system.storage { |
| |
| enum StorageUnitType { |
| // The storage has fixed media, e.g. hard disk or SSD. |
| fixed, |
| // The storage is removable, e.g. USB flash drive. |
| removable, |
| // The storage type is unknown. |
| unknown |
| }; |
| |
| dictionary StorageUnitInfo { |
| // The unique storage id. It will use the transient ID. |
| DOMString id; |
| // The name of the storage unit. |
| DOMString name; |
| // The media type of the storage unit. |
| StorageUnitType type; |
| // The total amount of the storage space, in bytes. |
| double capacity; |
| }; |
| |
| dictionary StorageFreeSpaceChangeInfo { |
| // The transient id of the storage unit already changed. |
| DOMString id; |
| // The new value of the available capacity. |
| double availableCapacity; |
| }; |
| |
| // A dictionary that describes the add particular storage device watch |
| // request results. |
| dictionary AddAvailableCapacityWatchResult { |
| DOMString id; |
| boolean success; |
| }; |
| |
| [inline_doc] enum EjectDeviceResultCode { |
| // The ejection command is successful -- the application can prompt the user |
| // to remove the device. |
| success, |
| // The device is in use by another application. The ejection did not |
| // succeed; the user should not remove the device until the other |
| // application is done with the device. |
| in_use, |
| // There is no such device known. |
| no_such_device, |
| // The ejection command failed. |
| failure |
| }; |
| |
| callback AddAvailableCapacityWatchCallback = void ( |
| AddAvailableCapacityWatchResult info); |
| |
| callback GetAllAvailableCapacityWatchesCallback = void ( |
| DOMString[] storageIds); |
| |
| callback EjectDeviceCallback = void (EjectDeviceResultCode result); |
| |
| callback StorageInfoCallback = void (StorageUnitInfo[] info); |
| |
| interface Functions { |
| // Get the storage information from the system. The argument passed to the |
| // callback is an array of StorageUnitInfo objects. |
| static void getInfo(StorageInfoCallback callback); |
| |
| // Ejects a removable storage device. |
| // Note: We plan to move this function into a namespace that indicates it |
| // that modifies the state of the system rather than just gathering |
| // information. |
| static void ejectDevice(DOMString id, EjectDeviceCallback callback); |
| |
| // Monitor a particular storage device available change capacity. |
| static void addAvailableCapacityWatch( |
| DOMString id, |
| AddAvailableCapacityWatchCallback callback); |
| |
| // Remove the monitor of a particular device. |
| static void removeAvailableCapacityWatch(DOMString id); |
| |
| // Get all the watched storage devices. |
| static void getAllAvailableCapacityWatches( |
| GetAllAvailableCapacityWatchesCallback callback); |
| |
| // Remove all the storage devices monitors. |
| static void removeAllAvailableCapacityWatches(); |
| }; |
| |
| interface Events { |
| // Fired when a new removable storage is attached to the system. |
| static void onAttached(StorageUnitInfo info); |
| |
| // Fired when a removable storage is detached from the system. |
| static void onDetached(DOMString id); |
| |
| // Fired when the storage device available capacity is changed. |
| // |info|: The changed information for the specified storage unit. |
| static void onAvailableCapacityChanged(StorageFreeSpaceChangeInfo info); |
| }; |
| |
| }; |
| |