1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- module crosapi.mojom;
- import "mojo/public/mojom/base/file_path.mojom";
- // Volume info for chrome.fileSystem API usage, serving as intermediary from
- // file_manager::Volume to file_system::Volume, with additional fields.
- [Stable]
- struct Volume {
- string volume_id@0;
- string volume_label@1;
- // Equivalent to !is_read_only.
- bool writable@2;
- mojo_base.mojom.FilePath mount_path@3;
- // Whether the volume can be used by lacros-chrome. This is needed because
- // virtual file system support in lacros-chrome is WIP.
- // TODO(crbug.com/1296438): Deprecate once VFS works fully.
- bool is_available_to_lacros@4;
- };
- // Interface for volume list observers. Implemented by lacros-chrome. Used by
- // ash-chrome to send Volume list info and updates.
- [Stable, Uuid="ed85b34f-5ccc-41cd-b688-c0601dd629c3"]
- interface VolumeListObserver {
- // Called when the volume list changes.
- OnVolumeListChanged@0(array<Volume> volume_list);
- };
- // Interface with Ash volume manager. Implemented in ash-chrome.
- [Stable, Uuid="a5f21bb6-e2f9-4ddf-a01a-f73c09915936"]
- interface VolumeManager {
- // Adds an observer for volume list changes.
- AddVolumeListObserver@0(pending_remote<VolumeListObserver> observer);
- // Returns an unfiltered list of volumes.
- GetFullVolumeList@1() => (array<Volume> result);
- // Returns data needed to mount a volume identified by |volume_id|, or empty
- // on error.
- GetVolumeMountInfo@2(string volume_id) => (Volume? result);
- };
|