ChromeSystemStorage class
Use the chrome.system.storage API to query storage device information and
be notified when a removable storage device is attached and detached.
class ChromeSystemStorage extends ChromeApi {
 static final JsObject _system_storage = chrome['system']['storage'];
 ChromeSystemStorage._();
 bool get available => _system_storage != null;
 /**
  * Get the storage information from the system. The argument passed to the
  * callback is an array of StorageUnitInfo objects.
  */
 Future<List<StorageUnitInfo>> getInfo() {
   if (_system_storage == null) _throwNotAvailable();
   var completer = new ChromeCompleter<List<StorageUnitInfo>>.oneArg((e) => listify(e, _createStorageUnitInfo));
   _system_storage.callMethod('getInfo', [completer.callback]);
   return completer.future;
 }
 /**
  * Ejects a removable storage device.
  */
 Future<EjectDeviceResultCode> ejectDevice(String id) {
   if (_system_storage == null) _throwNotAvailable();
   var completer = new ChromeCompleter<EjectDeviceResultCode>.oneArg(_createEjectDeviceResultCode);
   _system_storage.callMethod('ejectDevice', [id, completer.callback]);
   return completer.future;
 }
 /**
  * Get the available capacity of a specified [id] storage device. The [id] is
  * the transient device ID from StorageUnitInfo.
  */
 Future<StorageAvailableCapacityInfo> getAvailableCapacity(String id) {
   if (_system_storage == null) _throwNotAvailable();
   var completer = new ChromeCompleter<StorageAvailableCapacityInfo>.oneArg(_createStorageAvailableCapacityInfo);
   _system_storage.callMethod('getAvailableCapacity', [id, completer.callback]);
   return completer.future;
 }
 Stream<StorageUnitInfo> get onAttached => _onAttached.stream;
 final ChromeStreamController<StorageUnitInfo> _onAttached =
     new ChromeStreamController<StorageUnitInfo>.oneArg(_system_storage, 'onAttached', _createStorageUnitInfo);
 Stream<String> get onDetached => _onDetached.stream;
 final ChromeStreamController<String> _onDetached =
     new ChromeStreamController<String>.oneArg(_system_storage, 'onDetached', selfConverter);
 void _throwNotAvailable() {
   throw new UnsupportedError("'chrome.system.storage' is not available");
 }
}
Extends
ChromeApi > ChromeSystemStorage
Properties
final bool available #
Returns true if the API is available. The common causes of an API not being avilable are:
- a permission is missing in the application's manifest.json file
 - the API is defined on a newer version of Chrome then the current runtime
 
docs inherited from ChromeApi 
bool get available => _system_storage != null;
final Stream<StorageUnitInfo> onAttached #
Stream<StorageUnitInfo> get onAttached => _onAttached.stream;
final Stream<String> onDetached #
Stream<String> get onDetached => _onDetached.stream;
Methods
Future<EjectDeviceResultCode> ejectDevice(String id) #
Ejects a removable storage device.
Future<EjectDeviceResultCode> ejectDevice(String id) {
 if (_system_storage == null) _throwNotAvailable();
 var completer = new ChromeCompleter<EjectDeviceResultCode>.oneArg(_createEjectDeviceResultCode);
 _system_storage.callMethod('ejectDevice', [id, completer.callback]);
 return completer.future;
}
Future<StorageAvailableCapacityInfo> getAvailableCapacity(String id) #
Get the available capacity of a specified id storage device. The id is the transient device ID from StorageUnitInfo.
Future<StorageAvailableCapacityInfo> getAvailableCapacity(String id) {
 if (_system_storage == null) _throwNotAvailable();
 var completer = new ChromeCompleter<StorageAvailableCapacityInfo>.oneArg(_createStorageAvailableCapacityInfo);
 _system_storage.callMethod('getAvailableCapacity', [id, completer.callback]);
 return completer.future;
}
Future<List<StorageUnitInfo>> getInfo() #
Get the storage information from the system. The argument passed to the callback is an array of StorageUnitInfo objects.
Future<List<StorageUnitInfo>> getInfo() {
 if (_system_storage == null) _throwNotAvailable();
 var completer = new ChromeCompleter<List<StorageUnitInfo>>.oneArg((e) => listify(e, _createStorageUnitInfo));
 _system_storage.callMethod('getInfo', [completer.callback]);
 return completer.future;
}