// Copyright 2026 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. [ExternalExtensionType="fileManagerPrivate.SearchType"] typedef object FileManagerPrivateSearchType; [ExternalExtensionType="fileManagerPrivate.FileCategory"] typedef object FileManagerPrivateFileCategory; [ExternalExtensionType="fileManagerPrivate.EntryProperties"] typedef object FileManagerPrivateEntryProperties; [ExternalExtensionType="fileSystemProvider.Action"] typedef object FileSystemProviderAction; [ExternalExtensionType="fileManagerPrivate.MediaMetadata"] typedef object FileManagerPrivateMediaMetadata; [ExternalExtensionType="fileManagerPrivate.TaskResult"] typedef object FileManagerPrivateTaskResult; [ExternalExtensionType="fileManagerPrivate.ResultingTasks"] typedef object FileManagerPrivateResultingTasks; [ExternalExtensionType="fileManagerPrivate.DlpMetadata"] typedef object FileManagerPrivateDlpMetadata; [ExternalExtensionType="fileManagerPrivate.DriveQuotaMetadata"] typedef object FileManagerPrivateDriveQuotaMetadata; [ExternalExtensionType="fileManagerPrivate.EntryPropertyName"] typedef object FileManagerPrivateEntryPropertyName; [ExternalExtensionType="fileManagerPrivate.FileTaskDescriptor"] typedef object FileManagerPrivateFileTaskDescriptor; [ExternalExtensionType="fileManagerPrivate.GetVolumeRootOptions"] typedef object FileManagerPrivateGetVolumeRootOptions; [ExternalExtensionType="fileManagerPrivate.SourceRestriction"] typedef object FileManagerPrivateSourceRestriction; [ExternalExtensionType="fileManagerPrivate.IoTaskType"] typedef object FileManagerPrivateIoTaskType; // Entry information that renderers need to create an Entry instance. dictionary EntryDescription { required DOMString fileSystemName; required DOMString fileSystemRoot; required DOMString fileFullPath; required boolean fileIsDirectory; }; dictionary IOTaskParams { DOMString destinationFolderUrl; DOMString password; boolean showNotification; }; dictionary ParsedTrashInfoFile { required EntryDescription restoreEntry; required DOMString trashInfoFileName; required double deletionDate; }; dictionary SearchFilesParams { DOMString rootUrl; required DOMString query; required FileManagerPrivateSearchType types; required long maxResults; required double modifiedTimestamp; required FileManagerPrivateFileCategory category; }; dictionary CrostiniSharedPathResponse { required sequence entries; required boolean firstForSession; }; // Internal, used by fileManagerPrivate's custom bindings. [platforms=("chromeos"), implemented_in="chrome/browser/ash/extensions/file_manager/file_manager_private_api_functions.h"] interface FileManagerPrivateInternal { // |PromiseValue|: entries static Promise> resolveIsolatedEntries( sequence urls); // |PromiseValue|: entryProperties static Promise> getEntryProperties(sequence urls, sequence names); // |PromiseValue|: success static Promise addFileWatch(DOMString url); // |PromiseValue|: success static Promise removeFileWatch(DOMString url); // |PromiseValue|: actions static Promise> getCustomActions( sequence urls); static Promise executeCustomAction( sequence urls, DOMString actionId); // |PromiseValue|: result static Promise getContentMimeType(DOMString blobUUID); // |PromiseValue|: result static Promise getContentMetadata( DOMString blobUUID, DOMString mimeType, boolean includeImages); static Promise pinDriveFile(DOMString url, boolean pin); // |PromiseValue|: result static Promise executeTask( FileManagerPrivateFileTaskDescriptor descriptor, sequence urls); // |PromiseValue|: entries static Promise> searchFiles( SearchFilesParams searchParams); static Promise setDefaultTask( FileManagerPrivateFileTaskDescriptor descriptor, sequence urls, sequence mimeTypes); // |PromiseValue|: resultingTasks static Promise getFileTasks( sequence urls, sequence dlpSourceUrls); // |PromiseValue|: entries static Promise> getDisallowedTransfers( sequence entries, DOMString destinationEntry, boolean isMove); // |PromiseValue|: entries static Promise> getDlpMetadata( sequence entries); // |PromiseValue|: driveQuotaMetadata static Promise getDriveQuotaMetadata( DOMString url); // |PromiseValue|: result static Promise validatePathNameLength( DOMString parentUrl, DOMString name); // |PromiseValue|: size static Promise getDirectorySize(DOMString url); // |PromiseValue|: rootDir static Promise getVolumeRoot( FileManagerPrivateGetVolumeRootOptions options); // |PromiseValue|: entries static Promise> getRecentFiles( FileManagerPrivateSourceRestriction restriction, DOMString query, long cutoff_days, FileManagerPrivateFileCategory file_category, boolean invalidate_cache); static Promise sharePathsWithCrostini( DOMString vmName, sequence urls, boolean persist); static Promise unsharePathWithCrostini( DOMString vmName, DOMString url); // |PromiseValue|: response static Promise getCrostiniSharedPaths( boolean observeFirstForSession, DOMString vmName); static undefined importCrostiniImage(DOMString url); static Promise toggleAddedToHoldingSpace( sequence urls, boolean add); // |PromiseValue|: taskId static Promise startIOTask( FileManagerPrivateIoTaskType type, sequence urls, IOTaskParams params); // |PromiseValue|: files static Promise> parseTrashInfoFiles( sequence urls); }; partial interface Browser { static attribute FileManagerPrivateInternal fileManagerPrivateInternal; };