blob: fb8684ec3825ee6b8e6bc529138d2a205187a652 [file] [log] [blame]
// Copyright 2016 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.
/**
* Represents each volume, such as "drive", "download directory", each "USB
* flush storage", or "mounted zip archive" etc.
* @interface
*/
function VolumeInfo() {};
/** @type {VolumeManagerCommon.VolumeType} */
VolumeInfo.prototype.volumeType;
/** @type {string} */
VolumeInfo.prototype.volumeId;
/** @type {FileSystem} */
VolumeInfo.prototype.fileSystem;
/**
* Display root path. It is null before finishing to resolve the entry.
* @type {DirectoryEntry}
*/
VolumeInfo.prototype.displayRoot;
/**
* The volume's fake entries such as Recent, Offline, Shared with me, etc...
* in Google Drive.
* @type {Object<!FakeEntry>}}
*/
VolumeInfo.prototype.fakeEntries;
/**
* This represents if the mounting of the volume is successfully done or not.
* (If error is empty string, the mount is successfully done)
* @type {(string|undefined)}
*/
VolumeInfo.prototype.error;
/**
* The type of device. (e.g. USB, SD card, DVD etc.)
* @type {(string|undefined)}
*/
VolumeInfo.prototype.deviceType;
/**
* If the volume is removable, devicePath is the path of the system device this
* device's block is a part of. (e.g. /sys/devices/pci0000:00/.../8:0:0:0/)
* Otherwise, this should be empty.
* @type {(string|undefined)}
*/
VolumeInfo.prototype.devicePath;
/** @type {boolean} */
VolumeInfo.prototype.isReadOnly;
/** @type {!{displayName:string, isCurrentProfile:boolean}} */
VolumeInfo.prototype.profile;
/**
* Label for the volume if the volume is either removable or a provided file
* system. In case of removables, if disk is a parent, then its label, else
* parent's label (e.g. "TransMemory").
* @type {string}
*/
VolumeInfo.prototype.label;
/**
* ID of an extennsion providing this volume.
* @type {(string|undefined)}
*/
VolumeInfo.prototype.extensionId;
/**
* True if the volume contains media.
* @type {boolean}
*/
VolumeInfo.prototype.hasMedia;
/**
* True if the volume is configurable.
* See https://developer.chrome.com/apps/fileSystemProvider.
* @type {boolean}
*/
VolumeInfo.prototype.configurable;
/**
* True if the volume notifies about changes via file/directory watchers.
* @type {boolean}
*/
VolumeInfo.prototype.watchable;
/** @type {VolumeManagerCommon.Source} */
VolumeInfo.prototype.source;
/**
* Starts resolving the display root and obtains it. It may take long time for
* Drive. Once resolved, it is cached.
*
* @param {function(!DirectoryEntry)=} opt_onSuccess Success callback with the
* display root directory as an argument.
* @param {function(*)=} opt_onFailure Failure callback.
* @return {!Promise.<!DirectoryEntry>}
*/
VolumeInfo.prototype.resolveDisplayRoot = function(
opt_onSuccess, opt_onFailure) {};