Chromium Code Reviews| Index: components/arc/common/file_system.mojom |
| diff --git a/components/arc/common/file_system.mojom b/components/arc/common/file_system.mojom |
| index de13a030d0099265c5fd65fb27f39bfade747812..87cb02d756d5018a11b4a96dc014902d0c42ad30 100644 |
| --- a/components/arc/common/file_system.mojom |
| +++ b/components/arc/common/file_system.mojom |
| @@ -2,7 +2,7 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| -// Next MinVersion: 3 |
| +// Next MinVersion: 4 |
| module arc.mojom; |
| @@ -29,7 +29,31 @@ struct Document { |
| uint64 last_modified; |
| }; |
| -// Next method ID: 5 |
| +// Describes the type of a change made to a document. |
| +[Extensible] |
| +enum ChangeType { |
| + // Indicates that the child document list of the watched directory was |
| + // changed. Note that a watcher can be installed only on directory for now. |
| + CHANGED = 0, |
| + |
| + // Indicates that the watched document itself was deleted. |
| + // When OnDocumentChanged() is called with this change type, the corresponding |
| + // watcher has been already uninstalled and the host should not call |
| + // RemoveWatcher(). |
| + DELETED = 1, |
| +}; |
| + |
| + |
| +// Next method ID: 1 |
| +interface FileSystemHost { |
| + // Called when a watched document was changed. |
| + // |type| describes the type of change made to the document. If |type| is |
| + // DELETED, the watcher has been already removed and the host should not call |
| + // RemoveWatcher(). |
| + [MinVersion=3] OnDocumentChanged@0(int64 watcher_id, ChangeType type); |
| +}; |
| + |
| +// Next method ID: 8 |
| interface FileSystemInstance { |
| // Notes about Android Documents Provider: |
| // |
| @@ -47,6 +71,21 @@ interface FileSystemInstance { |
| // https://developer.android.com/guide/topics/providers/document-provider.html |
| // https://developer.android.com/reference/android/provider/DocumentsContract.html |
| + // Installs a document watcher to watch updates of a document. |
| + // |
| + // Note: Currently, watchers can be installed only on directories, and only |
| + // directory content changes are notified. |
| + // |
| + // On success, a positive unique integer is returned as a watcher ID. |
| + // FileSystemHost.OnDocumentChanged() will be called with the watcher ID |
| + // on directory content changes. |
| + // On failure, -1 is returned. |
| + // |
| + // It is allowed to install multiple watchers to the same directory. In that |
| + // case, different watcher IDs are returned. |
| + [MinVersion=3] AddWatcher@6(string authority, string document_id) => |
| + (int64 watcher_id); |
| + |
| // Queries child documents of the directory specified by |authority| and |
| // |parent_document_id| in Documents Provider. |
| // If such a directory does not exist, null is returned. |
| @@ -65,10 +104,20 @@ interface FileSystemInstance { |
| // streams), -1 is returned. |
| [MinVersion=1] GetFileSize@1(string url) => (int64 size); |
| + // Establishes full-duplex communication with the host. |
| + [MinVersion=3] Init@5(FileSystemHost host_ptr); |
| + |
| // Asks the ContentResolver to get a FD to read the file specified by the |
| // URL. |
| [MinVersion=1] OpenFileToRead@2(string url) => (handle? fd); |
| + // Uninstalls a document watcher. |
| + // |
| + // It fails if the specified watcher does not exist. Note that a watcher |
| + // can be automatically uninstalled when a watched document is deleted |
| + // (notified by OnDocumentChanged() with |type| = DELETED). |
|
hidehiko
2017/02/23 11:19:58
My understanding is; until this callback is called
Shuhei Takahashi
2017/02/24 05:02:20
I added a comment to guarantee OnDocumentChanged()
|
| + [MinVersion=3] RemoveWatcher@7(int64 watcher_id) => (bool success); |
| + |
| // Requests MediaProvider to scan specified files. |
| // When the specified file does not exist, the corresponding entry in |
| // MediaProvider is removed. |