| // Copyright 2013 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // fileManagerPrivate API. |
| // This is a private API used by the file manager on ChromeOS. The API can |
| // roughly be divided into two parts: functions and events. |
| // |
| // Functions: The Functions interface defines a number of privileged operations |
| // that allow File Manager to execute tasks not available via public APIs. Most |
| // of the time this is due to the fact that enabling those tasks via public APIs |
| // would allow malicious applications to either take control of the hardware |
| // or leak private information about the user. None of these API must be exposed |
| // in any public services. |
| // |
| // Events: The Event interface defines a number of events that are supported |
| // by the API. These events allow one to register, in JavaScript, a listener |
| // that is invoked with event's parameters, every time the event is observed |
| // by the file_manager::EventRouter. |
| // |
| // Both the functions and events interface are only available to clients that |
| // are explicitly granted permission to use the fileManagerPrivate API. This |
| // API is not available to any client without code reviewed changes |
| // (eg. via _api_features.json) |
| // |
| // CAVEAT: An application A registering as a listener to any events must assume |
| // that an application B can listen to any events that are destined for A, where |
| // A and B are any applications that are granted access to fileManagerPrivate. |
| // For example, if applications A and B listen to onDirectoryChanged events on |
| // two unique paths, they both receive events about changes in either path. This |
| // is due to the fact that events are broadcasted to ALL listeners. It is the |
| // responsibility of the listener to discard events not destined for it. It is |
| // also the responsibility of all listeners not to log information transmitted |
| // in those events, as it may record in logs information that is private to a |
| // given user (e.g., the full paths and name of a given file). This API is |
| // designed with the assumption that all users are equal in terms of their |
| // permission to observe events, call the function interface and access the file |
| // system of the device. As the API is only used by Chrome OS' File Manager, and |
| // the File Manager is being used by the user to access their own files, this |
| // assumption holds true. |
| // |
| // The API defined in this file may use W3C Entry object (FileEntry and |
| // DirectoryEntry). Since these cannot be directly sent or received by the C++ |
| // code, there exists an additional layer, in file_manager_private_internal.idl, |
| // that provides translation from or to W3C Entry objects. |
| [platforms=("chromeos"), |
| implemented_in="chrome/browser/ash/extensions/file_manager/file_manager_private_api_functions.h"] |
| namespace fileManagerPrivate { |
| // Type of the mounted volume. |
| enum VolumeType { drive, downloads, removable, archive, provided, mtp, |
| media_view, crostini, android_files, documents_provider, |
| testing, smb, system_internal, guest_os }; |
| |
| // Device type. Available if this is removable volume. |
| enum DeviceType { usb, sd, optical, mobile, unknown }; |
| |
| // List of device connection statuses. |
| enum DeviceConnectionState {OFFLINE, ONLINE}; |
| |
| // List of connection types of drive. |
| enum DriveConnectionStateType {OFFLINE, METERED, ONLINE}; |
| |
| // List of reasons of DriveConnectionStateType. |
| enum DriveOfflineReason {NOT_READY, NO_NETWORK, NO_SERVICE}; |
| |
| // Additional information of the context the volume was mounted. |
| enum MountContext { user, auto }; |
| |
| // Is the event raised for mounting or unmounting. |
| enum MountCompletedEventType { mount, unmount }; |
| |
| // Event type that tells listeners if mount was successful or an error |
| // occurred. It also specifies the error. |
| enum MountError { |
| success, |
| in_progress, |
| unknown_error, |
| internal_error, |
| invalid_argument, |
| invalid_path, |
| path_already_mounted, |
| path_not_mounted, |
| directory_creation_failed, |
| invalid_mount_options, |
| insufficient_permissions, |
| mount_program_not_found, |
| mount_program_failed, |
| invalid_device_path, |
| unknown_filesystem, |
| unsupported_filesystem, |
| need_password, |
| cancelled, |
| busy |
| }; |
| |
| // Filesystem to format to. |
| enum FormatFileSystemType { vfat, exfat, ntfs }; |
| |
| // File transfer progress state. |
| enum TransferState { in_progress, queued, completed, failed }; |
| |
| // The response when starting installing a Linux package. |
| enum InstallLinuxPackageStatus { |
| started, |
| failed, |
| install_already_active |
| }; |
| |
| // Specifies type of event that is raised. |
| enum FileWatchEventType { changed, error }; |
| |
| // Specifies type of change in file watch event. |
| enum ChangeType { add_or_update, delete }; |
| |
| // The type of entry that is needed. Default to ALL. |
| enum SearchType { EXCLUDE_DIRECTORIES, SHARED_WITH_ME, OFFLINE, ALL }; |
| |
| // Zooming mode. |
| enum ZoomOperationType { in, out, reset }; |
| |
| // Specifies how to open inspector. |
| enum InspectionType { |
| // Open inspector for foreground page. |
| normal, |
| // Open inspector for foreground page and bring focus to the console. |
| console, |
| // Open inspector for foreground page in inspect element mode. |
| element, |
| // Open inspector for background page. |
| background |
| }; |
| |
| // Device event type. |
| enum DeviceEventType { |
| // If the device is disabled by preference. |
| disabled, |
| // Device is removed. |
| removed, |
| // Device is hard unplugged. |
| hard_unplugged, |
| // Format started. |
| format_start, |
| // Format succeeded. |
| format_success, |
| // Format failed. |
| format_fail, |
| // Rename started. |
| rename_start, |
| // Rename succeeded. |
| rename_success, |
| // Rename failed. |
| rename_fail, |
| // Partition started. |
| partition_start, |
| // Partition succeeded. |
| partition_success, |
| // Partition failed. |
| partition_fail |
| }; |
| |
| // Drive sync error type. |
| // Keep it synced with DriveError::Type in drivefs.mojom. |
| enum DriveSyncErrorType { |
| // Request to delete a file without permission. |
| delete_without_permission, |
| // Google Drive is temporarily unavailable. |
| service_unavailable, |
| // There is no server space for the user to sync a file. |
| no_server_space, |
| // There is no server space for the organization to sync a file. |
| no_server_space_organization, |
| // There is no local space to sync a file. |
| no_local_space, |
| // There is no space left on a shared drive. |
| no_shared_drive_space, |
| // Miscellaneous errors other than listed above. |
| misc |
| }; |
| |
| // Drive confirm dialog type. |
| // Keep it synced with DialogReason::Type in drivefs.mojom. |
| enum DriveConfirmDialogType { |
| // Request to enable Docs Offline to allow saving hosted files offline. |
| enable_docs_offline |
| }; |
| |
| // Possible result of dialog displayed as a result of the onDriveConfirmDialog |
| // event. Sent back to the browser via notifyDriveDialogResult(). |
| enum DriveDialogResult { |
| // The dialog was not displayed to the user. |
| not_displayed, |
| // The user accepted the action proposed by the dialog. |
| accept, |
| // The user rejected the action proposed by the dialog. |
| reject, |
| // The user closed the dialog without selecting an option. |
| dismiss |
| }; |
| |
| // Result of task execution. If changing, update the strings used in |
| // ui/file_manager/file_manager/foreground/js/file_tasks.js |
| enum TaskResult { |
| // The task execution succeeded and a new window/tab was opened on the current |
| // desktop. |
| opened, |
| // The task execution succeeded and the message was sent to the proper |
| // extension or app. This could result in a window being opened on a different |
| // desktop. |
| message_sent, |
| // The task execution failed. |
| failed, |
| // No URL is specified. |
| empty, |
| // The task was a |plugin_vm| task, and the file was in an unshared directory |
| failed_plugin_vm_directory_not_shared |
| }; |
| |
| // Drive share type. |
| enum DriveShareType { |
| can_edit, |
| can_comment, |
| can_view |
| }; |
| |
| // Names of properties for getEntryProperties(). |
| enum EntryPropertyName { |
| size, |
| modificationTime, |
| modificationByMeTime, |
| thumbnailUrl, |
| croppedThumbnailUrl, |
| imageWidth, |
| imageHeight, |
| imageRotation, |
| pinned, |
| present, |
| hosted, |
| availableOffline, |
| availableWhenMetered, |
| dirty, |
| customIconUrl, |
| contentMimeType, |
| sharedWithMe, |
| shared, |
| starred, |
| externalFileUrl, |
| alternateUrl, |
| shareUrl, |
| canCopy, |
| canDelete, |
| canRename, |
| canAddChildren, |
| canShare, |
| canPin, |
| isMachineRoot, |
| isExternalMedia, |
| isArbitrarySyncFolder, |
| syncStatus, |
| progress, |
| shortcut, |
| syncCompletedTime |
| }; |
| |
| // Source of the volume data. |
| enum Source { |
| file, |
| device, |
| network, |
| system |
| }; |
| |
| // Recent file sources allowed in getRecentFiles(). |
| enum SourceRestriction { |
| // Allows any source. |
| any_source, |
| |
| // Allows source with native local file system only. |
| native_source |
| }; |
| |
| // File categories to filter results from getRecentFiles(). |
| enum FileCategory { |
| all, |
| audio, |
| image, |
| video, |
| document |
| }; |
| |
| enum CrostiniEventType { |
| enable, |
| disable, |
| share, |
| unshare, |
| drop_failed_plugin_vm_directory_not_shared |
| }; |
| |
| enum ProviderSource { |
| file, |
| device, |
| network |
| }; |
| |
| enum SharesheetLaunchSource { |
| context_menu, |
| sharesheet_button, |
| unknown |
| }; |
| |
| enum IoTaskState { |
| queued, |
| scanning, |
| in_progress, |
| paused, |
| success, |
| error, |
| need_password, |
| cancelled |
| }; |
| |
| enum IoTaskType { |
| copy, |
| delete, |
| empty_trash, |
| extract, |
| move, |
| restore, |
| restore_to_destination, |
| trash, |
| zip |
| }; |
| |
| enum PolicyErrorType { |
| dlp, |
| enterprise_connectors, |
| dlp_warning_timeout |
| }; |
| |
| enum PolicyDialogType { |
| warning, |
| error |
| }; |
| |
| enum RecentDateBucket { |
| today, |
| yesterday, |
| earlier_this_week, |
| earlier_this_month, |
| earlier_this_year, |
| older |
| }; |
| |
| enum VmType { termina, plugin_vm, borealis, bruschetta, arcvm }; |
| |
| enum UserType { |
| // User doesn't belong to any organization. |
| unmanaged, |
| // User is a member of an organization. |
| organization |
| }; |
| |
| enum DlpLevel { |
| // Report every action to the admin, doesn't affect the user. |
| report, |
| // Warn the user on every action. |
| warn, |
| // Block the user on every action. |
| block, |
| // No restriction. |
| allow |
| }; |
| |
| enum SyncStatus { |
| // No sync status available for file. |
| not_found, |
| // File is queued up for syncing. |
| queued, |
| // File is currently being synced. |
| in_progress, |
| // File is done syncing. |
| completed, |
| // There was an error syncing the file. |
| error |
| }; |
| |
| // Describes how admin policy affects the default task in a ResultingTasks. |
| // See chrome/browser/ash/file_manager/file_tasks.h for details. |
| enum PolicyDefaultHandlerStatus { |
| default_handler_assigned_by_policy, |
| incorrect_assignment |
| }; |
| |
| // Describes the stage the bulk pinning manager is in. This enum should be kept |
| // in sync with chromeos/ash/components/drivefs/mojom/pin_manager_types.mojom. |
| enum BulkPinStage { |
| // Initial stage. |
| stopped, |
| |
| // Paused because of unfavorable network conditions. |
| paused_offline, |
| // Paused due to battery saver mode active. |
| paused_battery_saver, |
| |
| // In-progress stages. |
| getting_free_space, |
| listing_files, |
| syncing, |
| |
| // Final success stage. |
| success, |
| |
| // Final error stages. |
| not_enough_space, |
| cannot_get_free_space, |
| cannot_list_files, |
| cannot_enable_docs_offline |
| }; |
| |
| // These three fields together uniquely identify a task. |
| dictionary FileTaskDescriptor { |
| DOMString appId; |
| DOMString taskType; |
| DOMString actionId; |
| }; |
| |
| // A file task represents an action that the file manager can perform over the |
| // currently selected files. See chrome/browser/ash/file_manager/file_tasks.h |
| // for details about how file tasks are handled. |
| dictionary FileTask { |
| // Unique identifier for the task. |
| FileTaskDescriptor descriptor; |
| |
| // Task title (ex. App name). |
| DOMString title; |
| |
| // Task icon url (from chrome://extension-icon/...) |
| DOMString? iconUrl; |
| |
| // True if this task is a default task for the selected files. |
| boolean? isDefault; |
| |
| // True if this task is from generic file handler. Generic file handler is a |
| // file handler which handles any type of files (e.g. extensions: ["*"], |
| // types: ["*/*"]). Partial wild card (e.g. types: ["image/*"]) is not |
| // generic file handler. |
| boolean? isGenericFileHandler; |
| |
| // True if this is task is blocked by Data Leak Prevention (DLP). |
| boolean? isDlpBlocked; |
| }; |
| |
| // Represents a set of tasks capable of handling file entries. |
| // See chrome/browser/ash/file_manager/file_tasks.h for details. |
| dictionary ResultingTasks { |
| FileTask[] tasks; |
| |
| // Note that this field is non-null if and only if at least one entry has been affected by policy. |
| PolicyDefaultHandlerStatus? policyDefaultHandlerStatus; |
| }; |
| |
| // Additional entry properties. |
| dictionary EntryProperties { |
| // Size of this file. |
| double? size; |
| |
| // Timestamp of entry update time, in milliseconds past the epoch. |
| double? modificationTime; |
| |
| // Timestamp of entry update time by me, in milliseconds past the epoch. |
| double? modificationByMeTime; |
| |
| // Date bucket calculated by |modificationTime| or |modificationByMeTime|. |
| RecentDateBucket? recentDateBucket; |
| |
| // URL to the Drive thumbnail image for this file. |
| DOMString? thumbnailUrl; |
| |
| // URL to the Drive cropped thumbnail image for this file. |
| DOMString? croppedThumbnailUrl; |
| |
| // Width, if the entry is an image. |
| long? imageWidth; |
| |
| // Height, if the entry is an image. |
| long? imageHeight; |
| |
| // Rotation in clockwise degrees, if the entry is an image. |
| long? imageRotation; |
| |
| // True if the file is pinned in cache. |
| boolean? pinned; |
| |
| // True if the file is present in cache. |
| boolean? present; |
| |
| // True if the file is hosted on a server instead of local. |
| boolean? hosted; |
| |
| // True if the file is available offline. |
| boolean? availableOffline; |
| |
| // True if the file is available on metered connection. |
| boolean? availableWhenMetered; |
| |
| // True if the file has local change (has not been fully synced to the cloud). |
| boolean? dirty; |
| |
| // URL to the custom icon for this file. |
| DOMString? customIconUrl; |
| |
| // Drive MIME type for this file. |
| DOMString? contentMimeType; |
| |
| // True if the entry is labeled as shared-with-me. |
| boolean? sharedWithMe; |
| |
| // True if the entry is labeled as shared (either from me to others or to me |
| // by others.) |
| boolean? shared; |
| |
| // True if the entry is starred by the user. |
| boolean? starred; |
| |
| // externalfile:// URL to open the file in browser. |
| DOMString? externalFileUrl; |
| |
| // https:// URL to open the file or folder in the Drive website. |
| DOMString? alternateUrl; |
| |
| // https:// URL to open the file or folder in the Drive website with the |
| // sharing dialog open. |
| DOMString? shareUrl; |
| |
| // True if the entry can be copied by the user. |
| boolean? canCopy; |
| |
| // True if the entry can be deleted by the user. |
| boolean? canDelete; |
| |
| // True if the entry can be renamed by the user. |
| boolean? canRename; |
| |
| // True if the entry can have children added to it by the user (directories |
| // only). |
| boolean? canAddChildren; |
| |
| // True if the entry can be shared by the user. |
| boolean? canShare; |
| |
| // True if the entry can be pinned by the user. |
| boolean? canPin; |
| |
| // True if the entry is a machine root for backup and sync. |
| boolean? isMachineRoot; |
| |
| // True if the entry is a external media folder, that contains one time only |
| // uploads for USB devices, SD cards etc. |
| boolean? isExternalMedia; |
| |
| // True if the entry is an arbitrary sync folder. |
| boolean? isArbitrarySyncFolder; |
| |
| // Sync status for files tracked by different cloud filesystem providers. |
| SyncStatus? syncStatus; |
| |
| // Progress representing some ongoing operation with the file. |
| // E.g., pasting, syncing. Note: currently, this is exclusively being used |
| // for Drive syncing. |
| double? progress; |
| |
| // Time in milliseconds since the epoch when the file last received a |
| // "completed" sync status. |
| double? syncCompletedTime; |
| |
| // True if the entry is a shortcut. |
| boolean? shortcut; |
| }; |
| |
| // Information about total and remaining size on the mount point. |
| dictionary MountPointSizeStats { |
| // Approximate total available size on the mount point. |
| double totalSize; |
| |
| // Approximate remaining available size on the mount point. |
| double remainingSize; |
| }; |
| |
| dictionary SearchDriveResponse { |
| // Search results. |
| [instanceOf=Entry] object[] entries; |
| |
| // ID of the feed that contains next chunk of the search result. |
| // Should be sent to the next searchDrive request to perform |
| // incremental search. |
| DOMString nextFeed; |
| }; |
| |
| // Free and total space available in Drive relative to both the user and their |
| // organization, if they belong to one. |
| dictionary DriveQuotaMetadata { |
| UserType userType; |
| |
| // How much space the individual user, or shared drive has used. |
| double usedBytes; |
| // The individual user, or shared drive limit. -1 means infinite. |
| double totalBytes; |
| |
| // The following two fields only have meaning if user_type is kOrganization. |
| // Whether the organization has exceeded its storage limit. |
| boolean organizationLimitExceeded; |
| // Name of the organization the user belongs to. |
| DOMString organizationName; |
| }; |
| |
| // Information about a profile. |
| dictionary ProfileInfo { |
| // Profile ID. This is currently e-mail address of the profile. |
| DOMString profileId; |
| |
| // The name of the profile for display purpose. |
| DOMString displayName; |
| |
| // True if the profile is the one running the current file manager instance. |
| // TODO(hirono): Remove the property because of the design change of |
| // multi-profile suuport. |
| boolean isCurrentProfile; |
| }; |
| |
| // The return data for getProfiles() API. |
| dictionary ProfilesResponse { |
| // List of profile information. |
| ProfileInfo[] profiles; |
| |
| // ID of the profile that runs the application instance. |
| DOMString currentProfileId; |
| |
| // ID of the profile that shows the application window. |
| DOMString displayedProfileId; |
| }; |
| |
| // Represents an icon in multiple dimensions. All are optional. |
| dictionary IconSet { |
| DOMString? icon16x16Url; |
| DOMString? icon32x32Url; |
| }; |
| |
| // Mounted disk volume metadata. |
| dictionary VolumeMetadata { |
| // ID of the disk volume. |
| DOMString volumeId; |
| |
| // Id the provided file system (for provided file systems). |
| DOMString? fileSystemId; |
| |
| // ID of the provider, if the volume is backed by FSP. |
| DOMString? providerId; |
| |
| // Source of the volume's data. |
| Source source; |
| |
| // Label of the volume (if available). |
| DOMString? volumeLabel; |
| |
| // Description of the profile where the volume belongs. |
| // TODO(hirono): Remove the property because of the design change of |
| // multi-profile support. |
| ProfileInfo profile; |
| |
| // The path to the mounted device, archive file or network resource. |
| DOMString? sourcePath; |
| |
| // Type of the mounted volume. |
| VolumeType volumeType; |
| |
| // Device type. Available if this is removable volume. |
| DeviceType? deviceType; |
| |
| // Path to identify the device. This is consistent with DeviceEvent's |
| // devicePath. |
| DOMString? devicePath; |
| |
| // Whether the device is parent or not (i.e. sdb rather than sdb1). |
| boolean? isParentDevice; |
| |
| // Flag that specifies if volume is mounted in read-only mode. |
| boolean isReadOnly; |
| |
| // Flag that specifies if the device is write-protected. |
| // Valid only for the volumes of removable device partitions. |
| boolean isReadOnlyRemovableDevice; |
| |
| // Flag that specifies whether the volume contains media. |
| boolean hasMedia; |
| |
| // Flag that specifies whether the volume is configurable. |
| boolean configurable; |
| |
| // Flag that specifies whether the volume is watchable. |
| boolean watchable; |
| |
| // Additional data about mount, for example, that the filesystem is not |
| // supported. |
| MountError? mountCondition; |
| |
| // Context in which the volume has been mounted. |
| MountContext? mountContext; |
| |
| // File system type indentifier. |
| DOMString? diskFileSystemType; |
| |
| // Icons for the volume. |
| IconSet iconSet; |
| |
| // Drive label of the volume. Removable partitions that belong to the |
| // same physical removable device share the same drive label. |
| DOMString? driveLabel; |
| |
| // The path on the remote host where this volume is mounted, for crostini this |
| // is the user's homedir (/home/<username>). |
| DOMString? remoteMountPath; |
| |
| // Flag that specifies whether the volume is hidden from the user. |
| boolean hidden; |
| |
| // Type of the VM which owns this volume. |
| VmType? vmType; |
| }; |
| |
| // Payload data for mount event. |
| dictionary MountCompletedEvent { |
| // Is the event raised for mounting or unmounting. |
| MountCompletedEventType eventType; |
| |
| // Event type that tells listeners if mount was successful or an error |
| // occurred. It also specifies the error. |
| MountError status; |
| |
| // Metadata of the mounted volume. |
| VolumeMetadata volumeMetadata; |
| |
| // Whether the volume event should be notified or not. |
| boolean shouldNotify; |
| }; |
| |
| // Payload data for aggregate file transfer status updates. |
| dictionary FileTransferStatus { |
| // URL of file that is being transferred. |
| DOMString fileUrl; |
| |
| // File transfer progress state. |
| TransferState transferState; |
| |
| // Approximated completed portion of the transfer operation. |
| double processed; |
| |
| // Approximated total size of transfer operation. |
| double total; |
| |
| // Total number of jobs. |
| long numTotalJobs; |
| |
| // Indicates whether a notification should be shown for the transfer update. |
| boolean showNotification; |
| |
| // If true, hide when a job is completed when there are zero jobs in |
| // progress. Otherwise, hide when one job is in progress. |
| boolean hideWhenZeroJobs; |
| }; |
| |
| // Information about the syncing state of an individual file. |
| dictionary SyncState { |
| // URL of file that is being transferred. |
| DOMString fileUrl; |
| |
| // File transfer progress state. |
| SyncStatus syncStatus; |
| |
| // Transfer progress so far. Ranges from 0 to 1. |
| double progress; |
| }; |
| |
| // Error during the drive sync. |
| dictionary DriveSyncErrorEvent { |
| // Error type. |
| DriveSyncErrorType type; |
| |
| // File URL of the entry that the error happens to. |
| DOMString fileUrl; |
| |
| // Shared drive name if the error relates to a shared drive. |
| DOMString? sharedDrive; |
| }; |
| |
| // Confirmation dialog from Drive asking the user to accept or reject an |
| // action. |
| dictionary DriveConfirmDialogEvent { |
| // Dialog type. |
| DriveConfirmDialogType type; |
| |
| // File URL of the entry associated with the dialog. |
| DOMString fileUrl; |
| }; |
| |
| // Detailed information of change. |
| dictionary FileChange { |
| // URL of changed file (or directory). |
| DOMString url; |
| |
| // Type of change, which may be multiple. |
| ChangeType[] changes; |
| }; |
| |
| // Directory change notification details. |
| dictionary FileWatchEvent { |
| // Specifies type of event that is raised. |
| FileWatchEventType eventType; |
| |
| // An Entry object which represents a changed directory. The conversion into a |
| // kind of FileEntry object is done in |
| // file_browser_handler_custom_bindings.cc. For filesystem API's Entry |
| // interface, see <a |
| // href='http://www.w3.org/TR/file-system-api/#the-entry-interface'>The Entry |
| // interface</a>. |
| [instanceOf=Entry] object entry; |
| |
| // Detailed change information of change. It would be null if the detailed |
| // information is not available. |
| FileChange[]? changedFiles; |
| }; |
| |
| // Parameters passed to fileManagerPrivateInternal.getVolumeRoot function. |
| dictionary GetVolumeRootOptions { |
| // The ID of the requested volume. |
| DOMString volumeId; |
| |
| // Whether the requested file system should be writable. The default is |
| // read-only. |
| boolean? writable; |
| }; |
| |
| dictionary Preferences { |
| boolean driveEnabled; |
| boolean driveSyncEnabledOnMeteredNetwork; |
| boolean searchSuggestEnabled; |
| boolean use24hourClock; |
| DOMString timezone; |
| boolean arcEnabled; |
| boolean arcRemovableMediaAccessEnabled; |
| DOMString[] folderShortcuts; |
| boolean trashEnabled; |
| double officeFileMovedOneDrive; |
| double officeFileMovedGoogleDrive; |
| boolean driveFsBulkPinningAvailable; |
| boolean driveFsBulkPinningEnabled; |
| boolean localUserFilesAllowed; |
| }; |
| |
| dictionary PreferencesChange { |
| boolean? driveSyncEnabledOnMeteredNetwork; |
| boolean? arcEnabled; |
| boolean? arcRemovableMediaAccessEnabled; |
| DOMString[]? folderShortcuts; |
| boolean? driveFsBulkPinningEnabled; |
| }; |
| |
| dictionary SearchParams { |
| // Search query. |
| DOMString query; |
| |
| // The category of files to which the search is limited. |
| FileCategory? category; |
| |
| // The minimum modified time of the files to be returned |
| double? modifiedTimestamp; |
| |
| // ID of the search feed that should be fetched next. Value passed here should |
| // be gotten from previous searchDrive call. It can be empty for the initial |
| // search request. |
| DOMString nextFeed; |
| }; |
| |
| dictionary SearchMetadataParams { |
| // Optional root directory from which to start the search. If not present, |
| // the search begins at the local root. |
| [instanceOf=DirectoryEntry] object? rootDir; |
| |
| // Search query. It can be empty. Any filename matches to an empty query. |
| DOMString query; |
| |
| // The type of entry that is needed. Default to ALL. |
| SearchType types; |
| |
| // Maximum number of results. |
| long maxResults; |
| |
| // Modified timestamp. The file must have modified timestamp more recent |
| // than this to be included in results. |
| double? modifiedTimestamp; |
| |
| // The category of files to which the search is limited. |
| FileCategory? category; |
| }; |
| |
| // Entry and Drive-related properties representing a search result. |
| dictionary DriveMetadataSearchResult { |
| // A dictionary object which represents a Drive file. This will be converted |
| // into a kind of FileEntry object. See |
| // file_browser_handler_custom_bindings.cc for details. For filesystem API's |
| // Entry interface, see <a |
| // href='http://www.w3.org/TR/file-system-api/#the-entry-interface'>The Entry |
| // interface</a>. |
| [instanceOf=Entry] object entry; |
| |
| // The base name of a Drive file that matched the search query. The matched |
| // sub strings are highlighted with <b> element. Meta characters are escaped |
| // like <. |
| DOMString highlightedBaseName; |
| |
| // Whether the file is available while offline. May be unset if not |
| // applicable. |
| boolean? availableOffline; |
| }; |
| |
| dictionary DriveConnectionState { |
| DriveConnectionStateType type; |
| |
| // Reasons of offline. |
| DriveOfflineReason? reason; |
| }; |
| |
| // Device event dispatched to listeners of onDeviceChaged. See also |
| // DeviceEventType to know when the event dispatched. |
| dictionary DeviceEvent { |
| // Event type of the device event. |
| DeviceEventType type; |
| // Device path to identify the device. |
| DOMString devicePath; |
| // Human readable label for the device. |
| DOMString deviceLabel; |
| }; |
| |
| // Describes an installed provider. |
| dictionary Provider { |
| // ID of the provider. |
| DOMString providerId; |
| |
| // Set of icons for the provider. |
| IconSet iconSet; |
| |
| // Name of the provider. |
| DOMString name; |
| |
| // Whether supports configuration dialog. |
| boolean configurable; |
| |
| // Whether supports watching entries. |
| boolean watchable; |
| |
| // Whether supports mounting multiple instances. |
| boolean multipleMounts; |
| |
| // Source of file systems' data. |
| ProviderSource source; |
| }; |
| |
| // chrome/common/extensions/api/file_system_provider.idl:Action |
| // Information about an action for an entry. |
| dictionary FileSystemProviderAction { |
| // The identifier of the action. Any string or $(ref:CommonActionId) for |
| // common actions. |
| DOMString id; |
| |
| // The title of the action. It may be ignored for common actions. |
| DOMString? title; |
| }; |
| |
| // Information about a Linux package in response to GetLinuxPackageInfo. |
| dictionary LinuxPackageInfo { |
| DOMString name; |
| DOMString version; |
| |
| // A one-line summary of the project. Almost always present. |
| DOMString? summary; |
| // A longer description of the project. Almost always present. |
| DOMString? description; |
| }; |
| |
| // Payload data for crostini event. |
| dictionary CrostiniEvent { |
| // Is the event raised for enable, disable, share, or unshare. |
| CrostiniEventType eventType; |
| |
| // VM that this event relates to. |
| DOMString vmName; |
| |
| // Name of the container this event relates to. |
| DOMString containerName; |
| |
| // Paths that have been shared or unshared. |
| [instanceOf=Entry] object[] entries; |
| }; |
| |
| dictionary CrostiniSharedPathResponse { |
| // Entries shared with crostini container. |
| [instanceOf=Entry] object[] entries; |
| |
| // true the first time this is called for the session. |
| boolean firstForSession; |
| }; |
| |
| // Represents an Android app (activity). |
| dictionary AndroidApp { |
| // Name of the app to be shown to the user (e.g. Photos). |
| DOMString name; |
| |
| // Package name (e.g. com.google.android.apps.photos). |
| DOMString packageName; |
| |
| // Activity name (e.g. .PhotosPickerActivity). |
| DOMString activityName; |
| |
| // App icon. |
| IconSet? iconSet; |
| }; |
| |
| dictionary StreamInfo { |
| // The stream type e.g., "mp3", "h264", "ogg". |
| DOMString type; |
| |
| // An unfiltered string->string dictionary of tags from the stream. |
| object tags; |
| }; |
| |
| dictionary AttachedImages { |
| // Data encoded as a dataURL. |
| DOMString data; |
| |
| // Data type. |
| DOMString type; |
| }; |
| |
| dictionary MediaMetadata { |
| // Content mime type. |
| DOMString mimeType; |
| |
| // Defined for video. In pixels. |
| long? height; |
| long? width; |
| |
| // Defined for audio and video. In seconds. |
| double? duration; |
| |
| // Defined for video. In degrees. |
| long? rotation; |
| |
| // Defined for audio and video. |
| DOMString? album; |
| DOMString? artist; |
| DOMString? comment; |
| DOMString? copyright; |
| long? disc; |
| DOMString? genre; |
| DOMString? language; |
| DOMString? title; |
| long? track; |
| |
| // All the metadata in the media file. For formats with multiple streams, |
| // stream order is preserved. Container metadata is the first stream. |
| StreamInfo[] rawTags; |
| |
| // Raw images embedded in the media file. This is most often audio album |
| // art or video thumbnails. |
| AttachedImages[] attachedImages; |
| }; |
| |
| dictionary HoldingSpaceState { |
| // File system URLs of items pinned to the holding space. |
| DOMString[] itemUrls; |
| }; |
| |
| dictionary OpenWindowParams { |
| // The desired target directory when opening a new window. If omitted Files |
| // app displays the default directory: MyFiles. |
| DOMString? currentDirectoryURL; |
| |
| // The URL for a file or directory to be selected once a new window is |
| // spawned. |
| DOMString? selectionURL; |
| }; |
| |
| dictionary IoTaskParams { |
| // Destination folder for tasks that require one. Not required by |delete| |
| // task. |
| [instanceOf=DirectoryEntry] object? destinationFolder; |
| |
| // Password used for unpacking encrypted archives. |
| DOMString? password; |
| |
| // Whether to display a notification in the UI. This does not stop the |
| // IOProgressStatus event propagating instead it provides a true boolean on |
| // the event that the UI can choose to show / hide the notification. |
| boolean? showNotification; |
| }; |
| |
| // Holds information about data protection policy errors, see file_manager::io_task::PolicyError. |
| dictionary PolicyError { |
| // Type of the error. |
| PolicyErrorType type; |
| // The number of files blocked by the policy. |
| long policyFileCount; |
| // The name of the first blocked file. Used for notifications. |
| DOMString fileName; |
| // Normally the review button is only shown when `policyFileCount` is >1, this option allows to force |
| // the display of the review button irrespective of other conditions. |
| boolean alwaysShowReview; |
| }; |
| |
| // IO task state::PAUSED name conflict parameters, see file_manager::io_task::ConflictPauseParams. |
| dictionary ConflictPauseParams { |
| // The conflict file name. |
| DOMString? conflictName; |
| |
| // True if the conflict file name is a directory. |
| boolean? conflictIsDirectory; |
| |
| // Set true if there are potentially multiple conflicted file names. |
| boolean? conflictMultiple; |
| |
| // The conflict copy or move target URL. |
| DOMString? conflictTargetUrl; |
| }; |
| |
| // IO task state::PAUSED policy parameters, see file_manager::io_task::PolicyPauseParams. |
| dictionary PolicyPauseParams { |
| // One of DLP or Enterprise Connectors. |
| PolicyErrorType type; |
| // The number of files under warning restriction. |
| long policyFileCount; |
| // The name of the first file under warning restriction. Used for notifications. |
| DOMString fileName; |
| // Normally the review button is only shown when `policyFileCount` is >1, this option allows to force |
| // the display of the review button irrespective of other conditions. |
| boolean alwaysShowReview; |
| }; |
| |
| // IO task state::PAUSED parameters, see file_manager::io_task::PauseParams. |
| dictionary PauseParams { |
| // Set iff pausing due to name conflict. |
| ConflictPauseParams? conflictParams; |
| // Set iff pausing due to policy. |
| PolicyPauseParams? policyParams; |
| }; |
| |
| // Resume IO Task parameters, see file_manager::io_task::ConflictResumeParams. |
| dictionary ConflictResumeParams { |
| // How to resolve a CopyOrMoveIOTask file name conflict: either 'keepboth' |
| // or 'replace'. |
| DOMString? conflictResolve; |
| |
| // Set true if conflictResolve should apply to future file name conflicts. |
| boolean? conflictApplyToAll; |
| }; |
| |
| // Resume IO Task parameters, see file_manager::io_task::PolicyResumeParams. |
| dictionary PolicyResumeParams { |
| PolicyErrorType type; |
| }; |
| |
| // Resume IO Task parameters, see file_manager::io_task::ResumeParams. |
| dictionary ResumeParams { |
| // Set iff paused due to name conflict. |
| ConflictResumeParams? conflictParams; |
| // Set iff paused due to policy. |
| PolicyResumeParams? policyParams; |
| }; |
| |
| // IO Task Progress status, see file_manager::io_task::ProgressStatus. |
| dictionary ProgressStatus { |
| |
| // Type of the task sending the progress. |
| IoTaskType type; |
| |
| // Current state of the task sending the progress. |
| IoTaskState state; |
| |
| // Type of policy error that occurred, if any. |
| // Used only if Data Leak Prevention or Enterprise Connectors policies apply. |
| PolicyError? policyError; |
| |
| // Name of the first source entry. |
| DOMString sourceName; |
| |
| // Number of remaining entries to be processed. |
| long numRemainingItems; |
| |
| // Total number of entries to be processed. |
| long itemCount; |
| |
| // Name of the destination folder for operations that transfer files to a |
| // directory (e.g. copy or move). |
| DOMString destinationName; |
| |
| // ProgressStatus over all |sources|. |
| long bytesTransferred; |
| |
| // Total size of all |sources|. |
| long totalBytes; |
| |
| // The task id for this progress status. |
| long taskId; |
| |
| // The estimate time to finish the operation. |
| double remainingSeconds; |
| |
| // Number of sources scanned. Only used when in SCANNING state. |
| // When scanning files, the progress is roughly the percentage of the |
| // number of scanned items out of the total items. This isn't always |
| // accurate, e.g. when uploading entire folders or because some items |
| // are not scanned at all. The goal is to show the user that some |
| // progress is happening. |
| long sourcesScanned; |
| |
| // Whether notifications should be shown on progress status. |
| boolean showNotification; |
| |
| // The name of the last error that happened. |
| DOMString errorName; |
| |
| // I/O task state::PAUSED parameters. |
| PauseParams? pauseParams; |
| |
| // The files affected by the IOTask. Currently only returned for TrashIOTask. |
| [instanceOf=Entry] object[]? outputs; |
| |
| // List of files skipped during the operation because we couldn't decrypt |
| // them. |
| DOMString[] skippedEncryptedFiles; |
| |
| // Volume id of the destination for operations that transfer files to a |
| // directory (e.g. copy or move). |
| DOMString destinationVolumeId; |
| }; |
| |
| dictionary DlpMetadata { |
| // The source URL of the file, if it's been downloaded. |
| DOMString sourceUrl; |
| |
| // True if there is any DLP policy on the file, false otherwise. |
| boolean isDlpRestricted; |
| |
| // True if the file cannot be accessed by a specific destination, |
| // which is passed when collecting the metadata. |
| boolean isRestrictedForDestination; |
| }; |
| |
| dictionary DlpRestrictionDetails { |
| // The level for which the restriction is enforced. |
| DlpLevel level; |
| |
| // List of URLs for which the restriction is enforced. |
| DOMString[] urls; |
| |
| // List of components for which the restriction is enforced. |
| VolumeType[] components; |
| }; |
| |
| dictionary DialogCallerInformation { |
| // The URL of the caller. |
| DOMString? url; |
| |
| // The component type of the caller. |
| VolumeType? component; |
| }; |
| |
| // A Guest OS that supports guest->host file sharing. This definition should |
| // match the one in file_manager_private.js. |
| dictionary MountableGuest { |
| // The ID of this guest, used to identify it in calls to the backend. |
| long id; |
| |
| // The localised display name of this guest as e.g. shown in the sidebar. |
| DOMString displayName; |
| |
| // The type of the VM backing this guest. |
| VmType vmType; |
| }; |
| |
| dictionary ParsedTrashInfoFile { |
| // The entry that the trashed file should be restored to. This does not exist |
| // but is used to identify whether the parent location still exists and |
| // identify the file name to restore to. |
| [instanceOf=Entry] object restoreEntry; |
| |
| // The file name for the .trashinfo. |
| DOMString trashInfoFileName; |
| |
| // The date the file was originally deleted. |
| double deletionDate; |
| }; |
| |
| // The current progress of the bulk pinning manager. This is a subset of the |
| // Progress struct in chromeos/ash/components/drivefs/drivefs_pinning_manager.h |
| dictionary BulkPinProgress { |
| // The stage the bulk pin manager is in. |
| BulkPinStage stage; |
| |
| // Estimated amount of free space on the stateful partition in bytes. |
| double freeSpaceBytes; |
| |
| // Estimated amount of free space required in order to successfully complete |
| // pinning. |
| double requiredSpaceBytes; |
| |
| // Estimated amount of bytes remaining to be downloaded in order to |
| // successfully complete pinning. |
| double bytesToPin; |
| |
| // Bytes that have been downloaded so far. |
| double pinnedBytes; |
| |
| // Total number of files to pin. |
| long filesToPin; |
| |
| // Show the total number of files enumerated during the Listing files stage. |
| long listedFiles; |
| |
| // Estimated time remaining to pin all the `bytesToPin`. |
| double remainingSeconds; |
| |
| // Should the bulk-pinning manager actually pin files, or should it stop after |
| // checking the space requirements? |
| boolean shouldPin; |
| |
| // Has the bulk-pinning manager ever emptied its set of tracked items? |
| boolean emptiedQueue; |
| }; |
| |
| // Represents a custom view of files to be displayed. |
| dictionary MaterializedView { |
| // Unique indentifier for the view. |
| long viewId; |
| |
| // Name of the view displayed to the user. |
| DOMString name; |
| }; |
| |
| // Representation of an entry as a replacement for File/Directory Entries. |
| dictionary EntryData { |
| // File system URL of the entry. |
| DOMString entryUrl; |
| }; |
| |
| // Callback that does not take arguments. |
| callback SimpleCallback = void(); |
| |
| // |result| Boolean result returned by the invoked function. |
| callback BooleanCallback = void(boolean result); |
| |
| // |result| Result of the task execution. |
| callback ExecuteTaskCallback = void(TaskResult result); |
| |
| // |resultingTasks| The list of matched file entries for this task. |
| callback GetFileTasksCallback = void(ResultingTasks resultingTasks); |
| |
| // |result| Mime type of the file. |
| callback GetMimeTypeCallback = void(DOMString result); |
| |
| // |result| Content sniffed mime type of the file. |
| callback GetContentMimeTypeCallback = void(DOMString result); |
| |
| // |result| Metadata of the Audio or Video file. |
| callback GetContentMetadataCallback = void(MediaMetadata result); |
| |
| // |result| Hash containing the string assets. |
| callback GetStringsCallback = void(object result); |
| |
| // |success| True when file watch is successfully added. |
| callback AddFileWatchCallback = void(optional boolean success); |
| |
| // |success| True when file watch is successfully removed. |
| callback RemoveFileWatchCallback = void(optional boolean success); |
| |
| // |entryProperties| A dictionary containing properties of the requested |
| // entries. |
| callback GetEntryPropertiesCallback = |
| void(EntryProperties[] entryProperties); |
| |
| // |sourcePath| Source path of the mount. |
| callback AddMountCallback = void(DOMString sourcePath); |
| |
| // |volumeMetadataList| The list of VolumeMetadata representing mounted volumes. |
| callback GetVolumeMetadataListCallback = |
| void(VolumeMetadata[] volumeMetadataList); |
| |
| // |disallowedEntries| A list of files not allowed to be transfered. |
| callback GetDisallowedTransfersCallback = |
| void([instanceOf=Entry] object[] disallowedEntries); |
| |
| // |dlpMetadata| A list of DlpMetadata containing DLP information about |
| // the entries. |
| callback GetDlpMetadataCallback = |
| void(DlpMetadata[] dlpMetadata); |
| |
| // |restrictionDetails| A list of DlpRestrictionDetails containing |
| // summarized restriction information about an entry. |
| callback GetDlpRestrictionDetailsCallback = |
| void(DlpRestrictionDetails[] restrictionDetails); |
| |
| // |blockedComponents| A list of components (subset of VolumeType) to which |
| // transferring an Entry is blocked by Data Leak Prevention (DLP) policy. |
| callback GetDlpBlockedComponentsCallback = void(VolumeType[] blockedComponents); |
| |
| // |caller| Either the URL or a component (subset of VolumeType) of |
| // the caller that created the dialog (Save As/File Picker). |
| callback GetDialogCallerCallback = void(DialogCallerInformation caller); |
| |
| // |taskId| ID of the task that was started. Can be used to cancel ongoing task. |
| callback IOTaskIdCallback = void(long taskId); |
| |
| // |sizeStats| Name/value pairs of size stats. Will be undefined if stats could |
| // not be determined. |
| callback GetSizeStatsCallback = void(optional MountPointSizeStats sizeStats); |
| |
| // |driveQuotaMetadata| Name/value pairs of drive quota metadata. Will be |
| // undefined if quota metadata could not be determined. |
| callback GetDriveQuotaMetadataCallback = void(optional DriveQuotaMetadata driveQuotaMetadata); |
| |
| callback GetPreferencesCallback = void(Preferences result); |
| |
| // |entries| |
| // |nextFeed| ID of the feed that contains next chunk of the search result. |
| // Should be sent to the next searchDrive request to perform |
| // incremental search. |
| callback SearchDriveCallback = void(SearchDriveResponse response); |
| |
| callback SearchDriveMetadataCallback = |
| void(DriveMetadataSearchResult[] results); |
| |
| callback SearchFilesCallback = void([instanceOf=Entry] object[] entries); |
| |
| // |paths| A map of hash to array of drive paths. The array can be empty |
| // if the corresponding file is not found. However, the array will only |
| // contain at most one path per hash. |
| callback SearchFilesByHashesCallback = void(object paths); |
| |
| callback GetDeviceConnectionStateCallback = void(DeviceConnectionState result); |
| |
| callback GetDriveConnectionStateCallback = void(DriveConnectionState result); |
| |
| // |result| true if the length is in the valid range, false otherwise. |
| callback ValidatePathNameLengthCallback = void(boolean result); |
| |
| callback GetProfilesCallback = void(ProfilesResponse response); |
| |
| // |entries| External entries. |
| callback ResolveEntriesCallback = |
| void([instanceOf=Entry] object[] entries); |
| |
| // |checksum| Result checksum. |
| callback ComputeChecksumCallback = void(DOMString checksum); |
| |
| // |extensions| List of providers. |
| callback GetProvidersCallback = void(Provider[] extensions); |
| |
| // |actions| List of actions. |
| callback GetCustomActionsCallback = void(FileSystemProviderAction[] actions); |
| |
| // |size| result size. |
| callback GetDirectorySizeCallback = void(double size); |
| |
| // |entries| Recently modified entries. |
| callback GetRecentFilesCallback = void([instanceOf=Entry] object[] entries); |
| |
| // |rootDir| The root directory of the volume to which access was requested. |
| callback GetVolumeRootCallback = |
| void([instanceOf=DirectoryEntry] object rootDir); |
| |
| callback GetCrostiniSharedPathsCallback = |
| void(CrostiniSharedPathResponse response); |
| |
| // |linux_package_info| Package info for the queried package. |
| callback GetLinuxPackageInfoCallback = |
| void(LinuxPackageInfo linux_package_info); |
| |
| callback InstallLinuxPackageCallback = void(InstallLinuxPackageStatus status); |
| |
| // |apps| List of Android picker apps. |
| callback GetAndroidPickerAppsCallback = void(AndroidApp[] apps); |
| |
| // |state| Describes the current holding space state. |
| callback HoldingSpaceStateCallback = void(HoldingSpaceState state); |
| |
| // |guests| List of Guest OSs which have available mounts. |
| callback ListMountableGuestsCallback = void(MountableGuest[] guest); |
| |
| callback ParseTrashInfoFilesCallback = void(ParsedTrashInfoFile[] files); |
| |
| callback GetBulkPinProgressCallback = void(BulkPinProgress progress); |
| |
| callback GetMaterializedViewsCallback = void(MaterializedView[] views); |
| |
| callback ReadMaterializedViewCallback = void(EntryData[] files); |
| |
| interface Functions { |
| // Cancels file selection. |
| static void cancelDialog(); |
| |
| // Executes file browser task over selected files. |
| // |descriptor| The unique identifier of task to execute. |
| // |entries| Array of entries |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void executeTask(FileTaskDescriptor descriptor, |
| [instanceOf=Entry] object[] entries, |
| ExecuteTaskCallback callback); |
| |
| // Sets the default task for the supplied MIME types and path extensions. |
| // Lists of MIME types and URLs may contain duplicates. Additionally, the |
| // list of MIME types can be empty. |
| // |descriptor| The unique identifier of task to mark as default. |
| // |entries| Array of selected entries to extract path extensions from. |
| // |mimeTypes| Array of selected file MIME types. |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void setDefaultTask(FileTaskDescriptor descriptor, |
| [instanceOf=Entry] object[] entries, |
| DOMString[] mimeTypes, |
| SimpleCallback callback); |
| |
| // Gets the list of tasks that can be performed over selected files. |
| // |entries| Array of selected entries |
| // |dlpSourceUrls| Array of source URLs corresponding to the entries, used to |
| // check Data Leak Prevention (DLP) restrictions |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void getFileTasks([instanceOf=Entry] object[] entries, |
| DOMString[] dlpSourceUrls, |
| GetFileTasksCallback callback); |
| |
| // Gets the MIME type of an entry. |
| // |entry| The entry to be checked. |
| // |callback| |
| static void getMimeType(DOMString url, |
| GetMimeTypeCallback callback); |
| |
| // Gets the content sniffed MIME type of a file. |
| // |fileEntry| The file entry to be checked. |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void getContentMimeType([instanceOf=FileEntry] object fileEntry, |
| GetContentMimeTypeCallback callback); |
| |
| // Gets metadata from an Audio or Video file. |
| // |fileEntry| The file entry to be checked. |
| // |mimeType| Content sniffed mimeType of the file. |
| // |includeImages| False returns metadata tags only. True returns |
| // metadata tags and metadata (thumbnail) images. |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void getContentMetadata([instanceOf=FileEntry] object fileEntry, |
| DOMString mimeType, |
| boolean includeImages, |
| GetContentMetadataCallback callback); |
| |
| // Gets localized strings and initialization data. |
| // |callback| |
| [doesNotSupportPromises] |
| static void getStrings(GetStringsCallback callback); |
| |
| // Adds file watch. |
| // |entry| Entry to watch |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void addFileWatch([instanceOf=Entry] object entry, |
| AddFileWatchCallback callback); |
| |
| // Removes file watch. |
| // |entry| Watched entry |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void removeFileWatch([instanceOf=Entry] object entry, |
| RemoveFileWatchCallback callback); |
| |
| // Enables the extenal file scheme necessary to initiate drags to the browser |
| // window for files on the external backend. |
| static void enableExternalFileScheme(); |
| |
| // Requests granting R/W permissions for the passed entries. It's a best |
| // effort operation. Some files may not be granted access if the url is |
| // invalid or not backed by the external file system. |
| // |entryUrls| Urls for the entries to be accessed. |
| // |callback| |
| [doesNotSupportPromises] |
| static void grantAccess(DOMString[] entryUrls, SimpleCallback callback); |
| |
| // Selects multiple files. |
| // |selectedPaths| Array of selected paths |
| // |shouldReturnLocalPath| true if paths need to be resolved to local paths. |
| // |callback| |
| [doesNotSupportPromises] |
| static void selectFiles(DOMString[] selectedPaths, |
| boolean shouldReturnLocalPath, |
| SimpleCallback callback); |
| |
| // Selects a file. |
| // |selectedPath| A selected path |
| // |index| Index of Filter |
| // |forOpening| true if paths are selected for opening. false if for saving. |
| // |shouldReturnLocalPath| true if paths need to be resolved to local paths. |
| // |callback| |
| [doesNotSupportPromises] |
| static void selectFile(DOMString selectedPath, |
| long index, |
| boolean forOpening, |
| boolean shouldReturnLocalPath, |
| SimpleCallback callback); |
| |
| // Requests additional properties for files. |
| // |entries| list of entries |
| // |names| list of requested properties by their names. |
| // |callback| Completion callback. May return less than requested properties |
| // if some are not available. In the same time, it can return properties |
| // which were not requested (if it's cheap to compute them). |
| [nocompile, doesNotSupportPromises] |
| static void getEntryProperties( |
| [instanceOf=Entry] object[] entries, |
| EntryPropertyName[] names, |
| GetEntryPropertiesCallback callback); |
| |
| // Pins/unpins a Drive file in the cache. |
| // |entry| Entry to pin/unpin. |
| // |pin| Pass true to pin the file. |
| // |callback| Completion callback. $(ref:runtime.lastError) will be set if |
| // there was an error. |
| [nocompile, doesNotSupportPromises] |
| static void pinDriveFile([instanceOf=Entry] object entry, |
| boolean pin, |
| SimpleCallback callback); |
| |
| // Resolves entries in the isolated file system and returns corresponding |
| // entries in the external file system mounted to Chrome OS file manager |
| // backend. If resolving entry fails, the entry will be just ignored and the |
| // corresponding entry does not appear in the result. |
| [nocompile, doesNotSupportPromises] |
| static void resolveIsolatedEntries( |
| [instanceOf=Entry] object[] entries, |
| ResolveEntriesCallback callback); |
| |
| // Mounts a resource or an archive. |
| // |fileUrl| Mount point source. |
| // |password| Optional password to decrypt the archive. |
| // |callback| Callback called with the source path of the mount. |
| [doesNotSupportPromises] |
| static void addMount(DOMString fileUrl, optional DOMString password, |
| AddMountCallback callback); |
| |
| // Cancels an archive mounting operation. |
| // |fileUrl| Mount point source. Should be same as the one passed to addMount. |
| // |callback| |
| [doesNotSupportPromises] |
| static void cancelMounting(DOMString fileUrl, SimpleCallback callback); |
| |
| // Unmounts a mounted resource. |
| // |volumeId| An ID of the volume. |
| [doesNotSupportPromises] |
| static void removeMount(DOMString volumeId, SimpleCallback callback); |
| |
| // Get the list of mounted volumes. |
| // |callback| |
| [doesNotSupportPromises] |
| static void getVolumeMetadataList(GetVolumeMetadataListCallback callback); |
| |
| // Returns the list of files not allowed to be transfered. |
| // |entries| List of the source entries to be transfered. |
| // |destinationEntry| Entry for the destination (parent) directory. |
| // |isMove| True if the operation is move, false otherwise. |
| // |callback| Result callback. |
| [nocompile, doesNotSupportPromises] |
| static void getDisallowedTransfers( |
| [instanceOf=Entry] object[] entries, |
| [instanceOf=DirectoryEntry] object destinationEntry, |
| boolean isMove, |
| GetDisallowedTransfersCallback callback); |
| |
| // Returns the list of DlpMetadata containing DLP information |
| // about the entries. |
| // |entries| List of the source entries to be checked. |
| // |callback| Result callback. |
| [nocompile, doesNotSupportPromises] |
| static void getDlpMetadata( |
| [instanceOf=Entry] object[] entries, |
| GetDlpMetadataCallback callback); |
| |
| // Retrieves Data Leak Prevention (DLP) restriction details. |
| // |sourceUrl| Source URL of the Entry for which the details should be shown. |
| // |callback| Result callback. |
| [doesNotSupportPromises] |
| static void getDlpRestrictionDetails( |
| DOMString sourceUrl, |
| GetDlpRestrictionDetailsCallback callback); |
| |
| // Retrieves the list of components to which the transfer of an Entry |
| // is blocked by Data Leak Prevention (DLP) policy. |
| // |sourceUrl| Source URL of the Entry that should be checked. |
| // |callback| Result callback. |
| [doesNotSupportPromises] |
| static void getDlpBlockedComponents( |
| DOMString sourceUrl, |
| GetDlpBlockedComponentsCallback callback); |
| |
| // Retrieves the caller that created the dialog (Save As/File Picker). |
| // |callback| Result callback. |
| [doesNotSupportPromises] |
| static void getDialogCaller(GetDialogCallerCallback callback); |
| |
| // Retrieves total and remaining size of a mount point. |
| // |volumeId| ID of the volume to be checked. |
| // |callback| |
| [doesNotSupportPromises] |
| static void getSizeStats(DOMString volumeId, GetSizeStatsCallback callback); |
| |
| |
| // Retrieves metadata about the user's Drive volume's quota. |
| // |entry| If entry is within a Shared Drive, then the applicable shared |
| // drive quota is returned, else the overall Drive quota is returned. |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void getDriveQuotaMetadata([instanceOf=Entry] object entry, |
| GetDriveQuotaMetadataCallback callback); |
| |
| // Formats a mounted volume. |
| // |volumeId| ID of the volume to be formatted. |
| // |filesystem| Filesystem type to be formatted to. |
| // |volumeLabel| Label of the drive after formatting. |
| static void formatVolume(DOMString volumeId, |
| FormatFileSystemType filesystem, |
| DOMString volumeLabel); |
| |
| // Deletes partitions of removable device, creates a new partition and format |
| // it. |
| // |deviceStoragePath| Storage path of the device to be formatted. |
| // |filesystem| Filesystem type to be formatted to. |
| // |volumeLabel| Label of the drive after formatting. |
| static void singlePartitionFormat(DOMString deviceStoragePath, |
| FormatFileSystemType filesystem, |
| DOMString volumeLabel); |
| |
| // Renames a mounted volume. |
| // |volumeId| ID of the volume to be renamed. |
| // |newName| New name of the target volume. |
| static void renameVolume(DOMString volumeId, DOMString newName); |
| |
| // Retrieves file manager preferences. |
| // |callback| |
| [doesNotSupportPromises] |
| static void getPreferences(GetPreferencesCallback callback); |
| |
| // Sets file manager preferences. |
| // |changeInfo| |
| static void setPreferences(PreferencesChange changeInfo); |
| |
| // Performs drive content search. |
| // |searchParams| |
| // |callback| |
| [doesNotSupportPromises] |
| static void searchDrive(SearchParams searchParams, |
| SearchDriveCallback callback); |
| |
| // Performs drive metadata search. |
| // |searchParams| |
| // |callback| |
| [doesNotSupportPromises] |
| static void searchDriveMetadata(SearchMetadataParams searchParams, |
| SearchDriveMetadataCallback callback); |
| |
| // Search files in My Files. |
| [nocompile, doesNotSupportPromises] |
| static void searchFiles(SearchMetadataParams searchParams, |
| SearchFilesCallback callback); |
| |
| // Retrieves the current device connection status. |
| // |callback| |
| [doesNotSupportPromises] |
| static void getDeviceConnectionState(GetDeviceConnectionStateCallback callback); |
| |
| // Retrieves the state of the current drive connection. |
| // |callback| |
| [doesNotSupportPromises] |
| static void getDriveConnectionState(GetDriveConnectionStateCallback callback); |
| |
| // Checks whether the path name length fits in the limit of the filesystem. |
| // |parentEntry| The entry of the parent directory entry. |
| // |name| The name of the file. |
| // |callback| Called back when the check is finished. |
| [nocompile, doesNotSupportPromises] |
| static void validatePathNameLength( |
| [instanceOf=DirectoryEntry] object parentEntry, |
| DOMString name, |
| ValidatePathNameLengthCallback callback); |
| |
| // Changes the zoom factor of the Files app. |
| // |operation| Zooming mode. |
| static void zoom(ZoomOperationType operation); |
| |
| // Obtains a list of profiles that are logged-in. |
| [doesNotSupportPromises] |
| static void getProfiles(GetProfilesCallback callback); |
| |
| // Opens inspector window. |
| // |type| InspectionType which specifies how to open inspector. |
| static void openInspector(InspectionType type); |
| |
| // Opens page in Settings window. |
| // |subPage| Name of a subPage to show. |
| static void openSettingsSubpage(DOMString subPage); |
| |
| // Returns list of available providers. |
| [doesNotSupportPromises] |
| static void getProviders(GetProvidersCallback callback); |
| |
| // Requests adding a new provided file system. On failure, sets |
| // $(ref:runtime.lastError). |
| [doesNotSupportPromises] |
| static void addProvidedFileSystem(DOMString providerId, |
| SimpleCallback callback); |
| |
| // Requests configuring an existing volume. On failure, sets |
| // $(ref:runtime.lastError). |
| [doesNotSupportPromises] |
| static void configureVolume(DOMString volumeId, SimpleCallback callback); |
| |
| // Requests list of custom actions for the specified entries. On failure, sets |
| // $(ref:runtime.lastError). |
| [nocompile, doesNotSupportPromises] |
| static void getCustomActions([instanceOf=Entry] object[] entries, |
| GetCustomActionsCallback callback); |
| |
| // Executes a custom action for a set of entries. On failure, sets |
| // $(ref:runtime.lastError). |
| [nocompile, doesNotSupportPromises] |
| static void executeCustomAction([instanceOf=Entry] object[] entries, |
| DOMString actionId, |
| SimpleCallback callback); |
| |
| // Get the total size of a directory. |
| // |entry| Entry of the target directory. |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void getDirectorySize([instanceOf=DirectoryEntry] object entry, |
| GetDirectorySizeCallback callback); |
| |
| // Gets recently modified files across file systems. |
| // |restriction| Flag to restrict sources of recent files. |
| // |fileType| Requested file type to filter recent files. |
| // |query| When not empty, removes files with non-matching names. |
| // |cutoffDays| Specifies oldest modification time. |
| // |callback| Called with zero or more matched files. |
| [nocompile, doesNotSupportPromises] |
| static void getRecentFiles(SourceRestriction restriction, |
| DOMString query, |
| long cutoffDays, |
| FileCategory fileCategory, |
| boolean invalidateCache, |
| GetRecentFilesCallback callback); |
| |
| // Requests the root directory of the volume with the ID specified in |
| // |options.volumeId|. |
| [nocompile, doesNotSupportPromises] |
| static void getVolumeRoot(GetVolumeRootOptions options, |
| GetVolumeRootCallback callback); |
| |
| // Starts and mounts crostini container. |
| // |callback| |
| [doesNotSupportPromises] |
| static void mountCrostini(SimpleCallback callback); |
| |
| // Shares paths with crostini container. |
| // |vmName| VM to share path with. |
| // |entries| Entries of the files or directories to share. |
| // |persist| If true, shares will persist across restarts. |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void sharePathsWithCrostini(DOMString vmName, |
| [instanceOf=Entry] object[] entries, |
| boolean persist, |
| SimpleCallback callback); |
| |
| // Unshares path with crostini container. |
| // |vmName| VM to unshare path from. |
| // |entry| Entry of the file or directory to unshare. |
| // |callback| |
| [nocompile, doesNotSupportPromises] |
| static void unsharePathWithCrostini(DOMString vmName, |
| [instanceOf=Entry] object entry, |
| SimpleCallback callback); |
| |
| // Returns list of paths shared with crostini container. |
| // |observeFirstForSession| If true, callback provides whether this is the |
| // |vmName| VM to get shared paths of. |
| // first time this function has been called with observeFirstForSession true. |
| [nocompile, doesNotSupportPromises] |
| static void getCrostiniSharedPaths(boolean observeFirstForSession, |
| DOMString vmName, |
| GetCrostiniSharedPathsCallback callback); |
| |
| // Requests information about a Linux package. |entry| is a .deb file. |
| [nocompile, doesNotSupportPromises] |
| static void getLinuxPackageInfo([instanceOf=Entry] object entry, |
| GetLinuxPackageInfoCallback callback); |
| |
| // Starts installation of a Linux package. |
| [nocompile, doesNotSupportPromises] |
| static void installLinuxPackage([instanceOf=Entry] object entry, |
| InstallLinuxPackageCallback callback); |
| |
| // Imports a Crostini Image File (.tini). This overrides the existing Linux |
| // apps and files. |
| [nocompile] |
| static void importCrostiniImage([instanceOf=Entry] object entry); |
| |
| // Returns a list of Android picker apps to be shown in file selector. |
| [doesNotSupportPromises] |
| static void getAndroidPickerApps(DOMString[] extensions, |
| GetAndroidPickerAppsCallback callback); |
| |
| // Called when the user selects an Android picker app in file selector. |
| [doesNotSupportPromises] |
| static void selectAndroidPickerApp(AndroidApp androidApp, |
| SimpleCallback callback); |
| |
| // Return true if sharesheet contains share targets for entries. |
| // |entries| Array of selected entries |
| // |callback| is called with error in case of failure and with no arguments |
| // if successfully launched the Sharesheet dialog, but before user has |
| // finished the sharing. |
| static void sharesheetHasTargets(DOMString[] fileUrls, |
| BooleanCallback callback); |
| |
| // Invoke Sharesheet for selected files. |
| // |entries| Array of selected entries. |
| // |launchSource| Source from which sharesheet was invoked. |
| // |dlpSourceUrls| Array of source URLs corresponding to the entries, used to |
| // check Data Leak Prevention (DLP) restrictions |
| // |callback| |
| static void invokeSharesheet(DOMString[] fileUrls, |
| SharesheetLaunchSource launchSource, |
| DOMString[] dlpSourceUrls, |
| SimpleCallback callback); |
| |
| // Adds or removes a list of entries to temporary holding space. Any entries |
| // whose current holding space state matches the intended state will be |
| // skipped. |
| // |entries| The list of entries whose holding space needs to be updated. |
| // |add| Whether items should be added or removed from the holding space. |
| // |callback| Completion callback. |
| [nocompile, doesNotSupportPromises] |
| static void toggleAddedToHoldingSpace([instanceOf=Entry] object[] entries, |
| boolean added, |
| optional SimpleCallback callback); |
| |
| // Retrieves the current holding space state, for example the list of items |
| // the holding space currently contains. |
| // |callback| The result callback. |
| [doesNotSupportPromises] |
| static void getHoldingSpaceState(HoldingSpaceStateCallback callback); |
| |
| // Returns true via `callback` if tablet mode is enabled, false otherwise. |
| [doesNotSupportPromises] |
| static void isTabletModeEnabled(BooleanCallback callback); |
| |
| // Notifies the browser of the result of a dialog displayed earlier as a |
| // result of the onDriveConfirmDialog event. |
| static void notifyDriveDialogResult(DriveDialogResult result); |
| |
| // Opens a new browser tab and navigates to `url`. |
| static void openURL(DOMString url); |
| |
| // Creates a new Files app window in the directory provided in `params`. |
| [doesNotSupportPromises] |
| static void openWindow(OpenWindowParams params, BooleanCallback callback); |
| |
| // Opens the feedback report window. |
| static void sendFeedback(); |
| |
| // Starts an I/O task of type |type| on |entries|. Task type specific |
| // parameters are passed via |params|. |
| [nocompile, doesNotSupportPromises] |
| static void startIOTask( |
| IoTaskType type, |
| [instanceOf=Entry] object[] entries, |
| IoTaskParams params, |
| optional IOTaskIdCallback callback); |
| |
| // Cancels an I/O task by id. Task ids are communicated to the Files App in |
| // each I/O task's progress status. |
| static void cancelIOTask(long taskId); |
| |
| // Resumes an I/O task by id. Task ids are communicated to the Files App in |
| // each I/O task's progress status. |
| static void resumeIOTask(long taskId, ResumeParams params); |
| |
| // Notifies the browser that any info still stored about an already completed |
| // I/O task identified by |taskId| can be cleared. |
| [doesNotSupportPromises] |
| static void dismissIOTask(long taskId, SimpleCallback callback); |
| |
| // Shows a policy dialog for a task. Task ids are communicated to the Files |
| // App in each I/O task's progress status. |
| [doesNotSupportPromises] |
| static void showPolicyDialog( |
| long taskId, |
| PolicyDialogType type, |
| SimpleCallback callback); |
| |
| // Makes I/O tasks in state::PAUSED emit (broadcast) their current I/O task |
| // progress status. |
| [doesNotSupportPromises] |
| static void progressPausedTasks(SimpleCallback callback); |
| |
| // Lists mountable Guest OSs. |
| [doesNotSupportPromises] |
| static void listMountableGuests(ListMountableGuestsCallback callback); |
| |
| // Starts and mounts the target Guest OS. |
| // |callback| |
| [doesNotSupportPromises] |
| static void mountGuest(long id, SimpleCallback callback); |
| |
| // Tells DriveFS to update its cached pin states of hosted files (once). |
| static void pollDriveHostedFilePinStates(); |
| |
| // Opens the dialog to manage the currently syncing folders. |
| static void openManageSyncSettings(); |
| |
| // Validates and parses the supplied `entries` as .trashinfo files. |
| [nocompile, doesNotSupportPromises] |
| static void parseTrashInfoFiles([instanceOf=Entry] object[] entries, |
| ParseTrashInfoFilesCallback callback); |
| |
| // Returns the current progress of the bulk pinning manager. |
| [doesNotSupportPromises] |
| static void getBulkPinProgress(GetBulkPinProgressCallback callback); |
| |
| // Starts calculating the space required to pin all the items in a users My |
| // drive. |
| [doesNotSupportPromises] |
| static void calculateBulkPinRequiredSpace(SimpleCallback callback); |
| |
| // Returns a list of views that can be displayed to the user. |
| static void getMaterializedViews(GetMaterializedViewsCallback callback); |
| |
| // Returns the list of entries contained in the view identified by `viewId`. |
| static void readMaterializedView(long viewId, |
| ReadMaterializedViewCallback callback); |
| }; |
| |
| // Events supported by fileManagerPrivate API. These events are broadcasted. |
| // See the note at the top of the file with regards implications of event |
| // broadcasting to applications that can use fileManagerPrivate Event API. |
| interface Events { |
| static void onMountCompleted(MountCompletedEvent event); |
| |
| static void onFileTransfersUpdated(FileTransferStatus event); |
| |
| static void onPinTransfersUpdated(FileTransferStatus event); |
| |
| static void onIndividualFileTransfersUpdated(SyncState[] event); |
| |
| static void onDirectoryChanged(FileWatchEvent event); |
| |
| static void onPreferencesChanged(); |
| |
| static void onDeviceConnectionStatusChanged(DeviceConnectionState state); |
| |
| static void onDriveConnectionStatusChanged(); |
| |
| static void onDeviceChanged(DeviceEvent event); |
| |
| static void onDriveSyncError(DriveSyncErrorEvent event); |
| |
| static void onDriveConfirmDialog(DriveConfirmDialogEvent event); |
| |
| static void onAppsUpdated(); |
| |
| static void onCrostiniChanged(CrostiniEvent event); |
| |
| static void onTabletModeChanged(boolean enabled); |
| |
| static void onIOTaskProgressStatus(ProgressStatus status); |
| |
| // Event broadcast when the list of Guest OSs that support Guest->Host file |
| // sharing changes. |
| static void onMountableGuestsChanged(MountableGuest[] guests); |
| |
| static void onBulkPinProgress(BulkPinProgress progress); |
| }; |
| }; |