Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / closure_compiler / externs / file_manager_private.js
blob0028f3ccdf9ada41b66cca2bd049f3dab4b00131
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /** @fileoverview Externs generated from namespace: fileManagerPrivate */
7 /**
8  * @typedef {{
9  *   taskId: string,
10  *   title: string,
11  *   iconUrl: string,
12  *   isDefault: boolean
13  * }}
14  */
15 var FileTask;
17 /**
18  * @typedef {{
19  *   size: (number|undefined),
20  *   modificationTime: (number|undefined),
21  *   thumbnailUrl: (string|undefined),
22  *   croppedThumbnailUrl: (string|undefined),
23  *   externalFileUrl: (string|undefined),
24  *   imageWidth: (number|undefined),
25  *   imageHeight: (number|undefined),
26  *   imageRotation: (number|undefined),
27  *   pinned: (boolean|undefined),
28  *   present: (boolean|undefined),
29  *   hosted: (boolean|undefined),
30  *   dirty: (boolean|undefined),
31  *   availableOffline: (boolean|undefined),
32  *   availableWhenMetered: (boolean|undefined),
33  *   customIconUrl: (string|undefined),
34  *   contentMimeType: (string|undefined),
35  *   sharedWithMe: (boolean|undefined),
36  *   shared: (boolean|undefined)
37  * }}
38  */
39 var EntryProperties;
41 /**
42  * @typedef {{
43  *   totalSize: number,
44  *   remainingSize: number
45  * }}
46  */
47 var MountPointSizeStats;
49 /**
50  * @typedef {{
51  *   profileId: string,
52  *   displayName: string,
53  *   isCurrentProfile: boolean
54  * }}
55  */
56 var ProfileInfo;
58 /**
59  * @typedef {{
60  *   volumeId: string,
61  *   fileSystemId: (string|undefined),
62  *   extensionId: (string|undefined),
63  *   source: string,
64  *   volumeLabel: (string|undefined),
65  *   profile: ProfileInfo,
66  *   sourcePath: (string|undefined),
67  *   volumeType: string,
68  *   deviceType: (string|undefined),
69  *   devicePath: (string|undefined),
70  *   isParentDevice: (boolean|undefined),
71  *   isReadOnly: boolean,
72  *   hasMedia: boolean,
73  *   configurable: boolean,
74  *   watchable: boolean,
75  *   mountCondition: (string|undefined),
76  *   mountContext: (string|undefined)
77  * }}
78  */
79 var VolumeMetadata;
81 /**
82  * @typedef {{
83  *   eventType: string,
84  *   status: string,
85  *   volumeMetadata: VolumeMetadata,
86  *   shouldNotify: boolean
87  * }}
88  */
89 var MountCompletedEvent;
91 /**
92  * @typedef {{
93  *   fileUrl: string,
94  *   transferState: string,
95  *   transferType: string,
96  *   processed: number,
97  *   total: number,
98  *   num_total_jobs: number
99  * }}
100  */
101 var FileTransferStatus;
104  * @typedef {{
105  *   type: string,
106  *   fileUrl: string
107  * }}
108  */
109 var DriveSyncErrorEvent;
112  * @typedef {{
113  *   type: string,
114  *   sourceUrl: (string|undefined),
115  *   destinationUrl: (string|undefined),
116  *   size: (number|undefined),
117  *   error: (string|undefined)
118  * }}
119  */
120 var CopyProgressStatus;
123  * @typedef {{
124  *   url: string,
125  *   changes: Array
126  * }}
127  */
128 var FileChange;
131  * @typedef {{
132  *   eventType: string,
133  *   entry: Object,
134  *   changedFiles: (Array|undefined)
135  * }}
136  */
137 var FileWatchEvent;
140  * @typedef {{
141  *   driveEnabled: boolean,
142  *   cellularDisabled: boolean,
143  *   hostedFilesDisabled: boolean,
144  *   searchSuggestEnabled: boolean,
145  *   use24hourClock: boolean,
146  *   allowRedeemOffers: boolean,
147  *   timezone: string
148  * }}
149  */
150 var Preferences;
153  * @typedef {{
154  *   cellularDisabled: (boolean|undefined),
155  *   hostedFilesDisabled: (boolean|undefined)
156  * }}
157  */
158 var PreferencesChange;
161  * @typedef {{
162  *   query: string,
163  *   nextFeed: string
164  * }}
165  */
166 var SearchParams;
169  * @typedef {{
170  *   query: string,
171  *   types: string,
172  *   maxResults: number
173  * }}
174  */
175 var SearchMetadataParams;
178  * @typedef {{
179  *   entry: Object,
180  *   highlightedBaseName: string
181  * }}
182  */
183 var SearchResult;
186  * @typedef {{
187  *   type: string,
188  *   reason: (string|undefined)
189  * }}
190  */
191 var DriveConnectionState;
194  * @typedef {{
195  *   type: string,
196  *   devicePath: string
197  * }}
198  */
199 var DeviceEvent;
202  * @typedef {{
203  *   extensionId: string,
204  *   name: string,
205  *   configurable: boolean,
206  *   watchable: boolean,
207  *   multipleMounts: boolean,
208  *   source: string
209  * }}
210  */
211 var ProvidingExtension;
214  * @typedef {{
215  *   id: string,
216  *   title: (string|undefined)
217  * }}
218  */
219 var EntryAction;
222  * @const
223  */
224 chrome.fileManagerPrivate = {};
227  * Logout the current user for navigating to the re-authentication screen for
228  * the Google account.
229  */
230 chrome.fileManagerPrivate.logoutUserForReauthentication = function() {};
233  * Cancels file selection.
234  */
235 chrome.fileManagerPrivate.cancelDialog = function() {};
238  * Executes file browser task over selected files. |taskId| The unique
239  * identifier of task to execute. |entries| Array of file entries |callback|
240  * @param {string} taskId
241  * @param {!Array<!Entry>} entries
242  * @param {function((boolean|undefined))} callback |result| Result of the task
243  *     execution.
244  */
245 chrome.fileManagerPrivate.executeTask = function(taskId, entries, callback) {};
248  * Sets the default task for the supplied MIME types and path extensions.
249  * Lists of MIME types and entries may contain duplicates.
250  * |taskId| The unique identifier of task to mark as default. |entries| Array
251  * of selected file entries to extract path extensions from. |mimeTypes| Array
252  * of selected file MIME types. |callback|
253  * @param {string} taskId
254  * @param {!Array<!Entry>} entries
255  * @param {!Array<string>} mimeTypes
256  * @param {!function()} callback Callback that does not take arguments.
257  */
258 chrome.fileManagerPrivate.setDefaultTask = function(taskId, entries, mimeTypes,
259     callback) {};
262  * Gets the list of tasks that can be performed over selected files. |entries|
263  * Array of selected entries |callback|
264  * @param {!Array<!Entry>} entries
265  * @param {function((!Array<!FileTask>|undefined))} callback |tasks| The list of
266  *     matched file entries for this task.
267  */
268 chrome.fileManagerPrivate.getFileTasks = function(entries, callback) {};
271  * Gets localized strings and initialization data. |callback|
272  * @param {function((!Object|undefined))} callback |result| Hash containing the
273  *     string assets.
274  */
275 chrome.fileManagerPrivate.getStrings = function(callback) {};
278  * Adds file watch. |entry| Entry of file to watch |callback|
279  * @param {!Entry} entry
280  * @param {function((boolean|undefined))} callback |success| True when file
281  *     watch is successfully added.
282  */
283 chrome.fileManagerPrivate.addFileWatch = function(entry, callback) {};
286  * Removes file watch. |entry| Entry of watched file to remove |callback|
287  * @param {!Entry} entry
288  * @param {function((boolean|undefined))} callback |success| True when file
289  *     watch is successfully
290  * removed.
291  */
292 chrome.fileManagerPrivate.removeFileWatch = function(entry, callback) {};
295  * Enables the extenal file scheme necessary to initiate drags to the browser
296  * window for files on the external backend.
297  */
298 chrome.fileManagerPrivate.enableExternalFileScheme = function() {};
301  * Requests R/W access to the specified entries as |entryUrls|. Note, that only
302  * files backed by external file system backend will be granted the access.
303  * @param {!Array<string>} entryUrls
304  * @param {function()} callback Completion callback.
305  */
306 chrome.fileManagerPrivate.grantAccess = function(entryUrls, callback) {};
309  * Selects multiple files. |selectedPaths| Array of selected paths
310  * |shouldReturnLocalPath| true if paths need to be resolved to local paths.
311  * |callback|
312  * @param {!Array<string>} selectedPaths
313  * @param {boolean} shouldReturnLocalPath
314  * @param {function()} callback Callback that does not take arguments.
315  */
316 chrome.fileManagerPrivate.selectFiles = function(selectedPaths,
317     shouldReturnLocalPath, callback) {};
320  * Selects a file. |selectedPath| A selected path |index| Index of Filter
321  * |forOpening| true if paths are selected for opening. false if for saving.
322  * |shouldReturnLocalPath| true if paths need to be resolved to local paths.
323  * |callback|
324  * @param {string} selectedPath
325  * @param {number} index
326  * @param {boolean} forOpening
327  * @param {boolean} shouldReturnLocalPath
328  * @param {function()} callback Callback that does not take arguments.
329  */
330 chrome.fileManagerPrivate.selectFile = function(selectedPath, index, forOpening,
331     shouldReturnLocalPath, callback) {};
334  * Requests additional properties for files. |entries| list of entries of files
335  * |callback|
336  * @param {!Array<!Entry>} entries
337  * @param {!Array<string>} names
338  * @param {function((!Array<!EntryProperties>|undefined))} callback
339  *     |entryProperties| A dictionary containing properties of the requested
340  *     entries.
341  */
342 chrome.fileManagerPrivate.getEntryProperties = function(entries, names,
343     callback) {};
346  * Pins/unpins a Drive file in the cache. |entry| Entry of a file to pin/unpin.
347  * |pin| Pass true to pin the file. |callback| Completion callback.
348  * $(ref:runtime.lastError) will be set if     there was an error.
349  * @param {!Entry} entry
350  * @param {boolean} pin
351  * @param {function()} callback Callback that does not take arguments.
352  */
353 chrome.fileManagerPrivate.pinDriveFile = function(entry, pin, callback) {};
356  * Resolves file entries in the isolated file system and returns corresponding
357  * entries in the external file system mounted to Chrome OS file manager
358  * backend. If resolving entry fails, the entry will be just ignored and the
359  * corresponding entry does not appear in the result.
360  * @param {!Array<!Entry>} entries
361  * @param {function((!Array<!Entry>|undefined))} callback Completion callback
362  *     with resolved entries.
363  */
364 chrome.fileManagerPrivate.resolveIsolatedEntries = function(entries,
365     callback) {};
368  * Mount a resource or a file. |source| Mount point source. For compressed
369  * files it is relative file path     within external file system |callback|
370  * @param {string} source
371  * @param {function((string|undefined))} callback Callback with source path of
372  *     the mount.
373  */
374 chrome.fileManagerPrivate.addMount = function(source, callback) {};
377  * Unmounts a mounted resource. |volumeId| An ID of the volume.
378  * @param {string} volumeId
379  */
380 chrome.fileManagerPrivate.removeMount = function(volumeId) {};
383  * Get the list of mounted volumes. |callback|
384  * @param {function((!Array<!VolumeMetadata>|undefined))} callback Callback with
385  *     the list of VolumeMetadata representing mounted volumes.
386  */
387 chrome.fileManagerPrivate.getVolumeMetadataList = function(callback) {};
390  * Cancels ongoing file transfers for selected files. |entries| Array of files
391  * for which ongoing transfer should be canceled.
392  * @param {!Array<!FileEntry>} entries
393  * @param {function()} callback
394  */
395 chrome.fileManagerPrivate.cancelFileTransfers = function(entries, callback) {};
398  * Cancels all ongoing file transfers.
399  * @param {function()} callback
400  */
401 chrome.fileManagerPrivate.cancelAllFileTransfers = function(callback) {};
404  * Starts to copy an entry. If the source is a directory, the copy is done
405  * recursively. |entry| Entry of the source entry to be copied. |parent| Entry
406  * of the destination directory. |newName| Name of the new entry. It must not
407  * contain '/'. |callback| Completion callback.
408  * @param {!Entry} entry
409  * @param {!DirectoryEntry} parentEntry
410  * @param {string} newName
411  * @param {function((number|undefined))} callback |copyId| ID of the copy task.
412  *     Can be used to identify the progress, and to cancel the task.
413  */
414 chrome.fileManagerPrivate.startCopy = function(entry, parentEntry, newName,
415     callback) {};
418  * Cancels the running copy task. |copyId| ID of the copy task to be cancelled.
419  * |callback| Completion callback of the cancel.
420  * @param {number} copyId
421  * @param {function()} callback Callback that does not take arguments.
422  */
423 chrome.fileManagerPrivate.cancelCopy = function(copyId, callback) {};
426  * Retrieves total and remaining size of a mount point. |volumeId| ID of the
427  * volume to be checked. |callback|
428  * @param {string} volumeId
429  * @param {function((!MountPointSizeStats|undefined))} callback Name/value pairs
430  *     of size stats. Will be undefined if stats could not be determined.
431  */
432 chrome.fileManagerPrivate.getSizeStats = function(volumeId, callback) {};
435  * Formats a mounted volume. |volumeId| ID of the volume to be formatted.
436  * @param {string} volumeId
437  */
438 chrome.fileManagerPrivate.formatVolume = function(volumeId) {};
441  * Retrieves file manager preferences. |callback|
442  * @param {function((!Preferences|undefined))} callback
443  */
444 chrome.fileManagerPrivate.getPreferences = function(callback) {};
447  * Sets file manager preferences. |changeInfo|
448  * @param {PreferencesChange} changeInfo
449  */
450 chrome.fileManagerPrivate.setPreferences = function(changeInfo) {};
453  * Performs drive content search. |searchParams| |callback|
454  * @param {SearchParams} searchParams
455  * @param {function((!Array<Entry>|undefined), (string|undefined))} callback
456  * Entries and ID of the feed that contains next chunk of the search result.
457  * Should be sent to the next searchDrive request to perform incremental search.
458  */
459 chrome.fileManagerPrivate.searchDrive = function(searchParams, callback) {};
462  * Performs drive metadata search. |searchParams| |callback|
463  * @param {SearchMetadataParams} searchParams
464  * @param {function((!Array<!SearchResult>|undefined))} callback
465  */
466 chrome.fileManagerPrivate.searchDriveMetadata = function(searchParams,
467     callback) {};
470  * Search for files in the given volume, whose content hash matches the list of
471  * given hashes.
472  * @param {string} volumeId
473  * @param {!Array<string>} hashes
474  * @param {function((!Object<string, !Array<string>>|undefined))} callback
475  */
476 chrome.fileManagerPrivate.searchFilesByHashes = function(volumeId, hashes,
477     callback) {};
480  * Create a zip file for the selected files. |parentEntry| Entry of the
481  * directory containing the selected files. |entries| Selected entries.
482  * The files must be under the directory specified by |parentEntry|. |destName|
483  * Name of the destination zip file. The zip file will be created under the
484  * directory specified by |parentEntry|.
485  * @param {!DirectoryEntry} parentEntry
486  * @param {!Array<!Entry>} entries
487  * @param {string} destName
488  * @param {function((boolean|undefined))} callback
489  */
490 chrome.fileManagerPrivate.zipSelection = function(parentEntry, entries,
491     destName, callback) {};
494  * Retrieves the state of the current drive connection. |callback|
495  * @param {function((!DriveConnectionState|undefined))} callback
496  */
497 chrome.fileManagerPrivate.getDriveConnectionState = function(callback) {};
500  * Checks whether the path name length fits in the limit of the filesystem.
501  * |parentEntry| The parent directory entry. |name| The name of the file.
502  * |callback| Called back when the check is finished.
503  * @param {!DirectoryEntry} parentEntry
504  * @param {string} name
505  * @param {function((boolean|undefined))} callback |result| true if the length
506  *     is in the valid range, false otherwise.
507  */
508 chrome.fileManagerPrivate.validatePathNameLength = function(
509     parentEntry, name, callback) {};
512  * Changes the zoom factor of the Files.app. |operation| Zooming mode.
513  * @param {string} operation
514  */
515 chrome.fileManagerPrivate.zoom = function(operation) {};
518  * Requests a Drive API OAuth2 access token. |refresh| Whether the token should
519  * be refetched instead of using the cached     one. |callback|
520  * @param {boolean} refresh
521  * @param {function((string|undefined))} callback |accessToken| OAuth2 access
522  *     token, or an empty string if failed to fetch.
523  */
524 chrome.fileManagerPrivate.requestAccessToken = function(refresh, callback) {};
527  * Requests a Webstore API OAuth2 access token. |callback|
528  * @param {function((string|undefined))} callback |accessToken| OAuth2 access
529  *     token, or an empty string if failed to fetch.
530  */
531 chrome.fileManagerPrivate.requestWebStoreAccessToken = function(callback) {};
534  * Requests a share dialog url for the specified file.
535  * @param {!Entry} entry
536  * @param {function((string|undefined))} callback Callback with the result url.
537  */
538 chrome.fileManagerPrivate.getShareUrl = function(entry, callback) {};
541  * Requests a download url to download the file contents.
542  * @param {!Entry} entry
543  * @param {function((string|undefined))} callback Callback with the result url.
544  */
545 chrome.fileManagerPrivate.getDownloadUrl = function(entry, callback) {};
548  * Requests to share drive files.
549  * @param {!Entry} entry
550  * @param {string} shareType
551  * @param {function()} callback Callback that does not take arguments.
552  */
553 chrome.fileManagerPrivate.requestDriveShare = function(entry, shareType,
554     callback) {};
557  * Requests to install a webstore item. |item_id| The id of the item to
558  * install. |silentInstallation| False to show installation prompt. True not to
559  * show. |callback|
560  * @param {string} itemId
561  * @param {boolean} silentInstallation
562  * @param {function()} callback Callback that does not take arguments.
563  */
564 chrome.fileManagerPrivate.installWebstoreItem = function(itemId,
565     silentInstallation, callback) {};
568  * Obtains a list of profiles that are logged-in.
569  * @param {function((!Array<!ProfileInfo>|undefined), (string|undefined),
570  *     (string|undefined))} callback Callback with list of profile information,
571  *     |runningProfile| ID of the profile that runs the application instance.
572  *     |showingProfile| ID of the profile that shows the application window.
573  */
574 chrome.fileManagerPrivate.getProfiles = function(callback) {};
577  * Opens inspector window. |type| InspectionType which specifies how to open
578  * inspector.
579  * @param {string} type
580  */
581 chrome.fileManagerPrivate.openInspector = function(type) {};
584  * Computes an MD5 checksum for the given file.
585  * @param {!Entry} entry
586  * @param {function((string|undefined))} callback
587  */
588 chrome.fileManagerPrivate.computeChecksum = function(entry, callback) {};
591  * Gets the MIME type of a file.
592  * @param {!Entry} entry
593  * @param {function((string|undefined))} callback Callback that MIME type of the
594  *     file is passed.
595  */
596 chrome.fileManagerPrivate.getMimeType = function(entry, callback) {};
599  * Gets a flag indicating whether user metrics reporting is enabled.
600  * @param {function((boolean|undefined))} callback
601  */
602 chrome.fileManagerPrivate.isUMAEnabled = function(callback) {};
605  * Sets a tag on a file or a directory. Only Drive files are supported.
606  * @param {!Entry} entry
607  * @param {string} visibility 'private' or 'public'
608  * @param {string} key
609  * @param {string} value
610  * @param {function()} callback
611  */
612 chrome.fileManagerPrivate.setEntryTag = function(entry, visibility, key,
613     value, callback) {};
616  * Gets a flag indicating whether PiexLoader is enabled.
617  * @param {function((boolean|undefined))} callback
618  */
619 chrome.fileManagerPrivate.isPiexLoaderEnabled = function(callback) {};
622  * Returns list of available providing extensions.
623  * @param {function((!Array<!ProvidingExtension>|undefined))} callback
624  */
625 chrome.fileManagerPrivate.getProvidingExtensions = function(callback) {};
628  * Requests adding a new provided file system. If not possible, then an error
629  * via chrome.runtime.lastError is returned.
630  * @param {string} extensionId
631  * @param {function()} callback
632  */
633 chrome.fileManagerPrivate.addProvidedFileSystem =
634     function(extensionId, callback) {};
637  * Requests configuring an existing file system. If not possible, then returns
638  * an error via chrome.runtime.lastError.
639  * @param {string} volumeId
640  * @param {function()} callback
641  */
642 chrome.fileManagerPrivate.configureVolume = function(volumeId, callback) {};
645  * Requests fetching list of actions for the specified entry. If not possible,
646  * then returns an error via chrome.runtime.lastError.
647  * @param {!Entry} entry
648  * @param {function((!Array<!EntryAction>|undefined))} callback
649  */
650 chrome.fileManagerPrivate.getEntryActions = function(entry, callback) {};
653  * Executes the action on the specified entry. If not possible, then returns an
654  * error via chrome.runtime.lastError.
655  * @param {!Entry} entry
656  * @param {string} actionId
657  * @param {function()} callback
658  */
659 chrome.fileManagerPrivate.executeAction = function(
660     entry, actionId, callback) {};
662 /** @type {!ChromeEvent} */
663 chrome.fileManagerPrivate.onMountCompleted;
665 /** @type {!ChromeEvent} */
666 chrome.fileManagerPrivate.onFileTransfersUpdated;
668 /** @type {!ChromeEvent} */
669 chrome.fileManagerPrivate.onCopyProgress;
671 /** @type {!ChromeEvent} */
672 chrome.fileManagerPrivate.onDirectoryChanged;
674 /** @type {!ChromeEvent} */
675 chrome.fileManagerPrivate.onPreferencesChanged;
677 /** @type {!ChromeEvent} */
678 chrome.fileManagerPrivate.onDriveConnectionStatusChanged;
680 /** @type {!ChromeEvent} */
681 chrome.fileManagerPrivate.onDeviceChanged;
683 /** @type {!ChromeEvent} */
684 chrome.fileManagerPrivate.onDriveSyncError;