blob: f5ca4d56a9c3ac7edd6c789804d3db60c6f48d52 [file] [log] [blame]
// 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.
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 transient ID that uniquely identifies the storage device.
// This ID will be persistent within the same run of a single application.
// It will not be a persistent identifier between different runs of an
// application, or between different applications.
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 StorageAvailableCapacityInfo {
// A copied |id| of getAvailableCapacity function parameter |id|.
DOMString id;
// The available capacity of the storage device, in bytes.
double availableCapacity;
};
[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 EjectDeviceCallback = void (EjectDeviceResultCode result);
callback StorageInfoCallback = void (StorageUnitInfo[] info);
callback GetAvailableCapacityCallback = void (
StorageAvailableCapacityInfo 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.
static void ejectDevice(DOMString id, EjectDeviceCallback callback);
// Get the available capacity of a specified |id| storage device.
// The |id| is the transient device ID from StorageUnitInfo.
static void getAvailableCapacity(DOMString id,
GetAvailableCapacityCallback callback);
};
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);
};
};