Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: chrome/common/extensions/api/file_system.idl

Issue 23146016: Add support for directory access to the file system API. (Closed) Base URL: http://git.chromium.org/chromium/src.git@simpler-write-permissions
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Use the <code>chrome.fileSystem</code> API to create, read, navigate, 5 // Use the <code>chrome.fileSystem</code> API to create, read, navigate,
6 // and write to a sandboxed section of the user's local file system. With this 6 // and write to a sandboxed section of the user's local file system. With this
7 // API, packaged apps can read and write to a user-selected location. For 7 // API, packaged apps can read and write to a user-selected location. For
8 // example, a text editor app can use the API to read and write local documents. 8 // example, a text editor app can use the API to read and write local documents.
9 namespace fileSystem { 9 namespace fileSystem {
10 dictionary AcceptOption { 10 dictionary AcceptOption {
(...skipping 20 matching lines...) Expand all
31 openFile, 31 openFile,
32 32
33 // Prompts the user to open an existing file and returns a writable 33 // Prompts the user to open an existing file and returns a writable
34 // FileEntry on success. Calls using this type will fail unless the 34 // FileEntry on success. Calls using this type will fail unless the
35 // application has the 'write' permission under 'fileSystem'. 35 // application has the 'write' permission under 'fileSystem'.
36 openWritableFile, 36 openWritableFile,
37 37
38 // Prompts the user to open an existing file or a new file and returns a 38 // Prompts the user to open an existing file or a new file and returns a
39 // writable FileEntry on success. Calls using this type will fail unless the 39 // writable FileEntry on success. Calls using this type will fail unless the
40 // application has the 'write' permission under 'fileSystem'. 40 // application has the 'write' permission under 'fileSystem'.
41 saveFile 41 saveFile,
42
43 // Prompts the user to open a directory and returns a DirectoryEntry on
44 // success. Calls using this type will fail unless the application has the
45 // 'directory' permission under 'fileSystem'. If the application has the
46 // 'write' permission under 'fileSystem', the returned DirectoryEntry will
47 // be writable; otherwise it will be read-only. New in Chrome 31.
48 openDirectory
42 }; 49 };
43 50
44 dictionary ChooseEntryOptions { 51 dictionary ChooseEntryOptions {
45 // Type of the prompt to show. The default is 'openFile'. From Chrome 31 52 // Type of the prompt to show. The default is 'openFile'. From Chrome 31
46 // onwards, 'openWritableFile' is deprecated and 'openFile' will return a 53 // onwards, 'openWritableFile' is deprecated and 'openFile' will return a
47 // writable file entry for apps with the 'write' permission under 54 // writable file entry for apps with the 'write' permission under
48 // 'fileSystem'. 55 // 'fileSystem'.
49 ChooseEntryType? type; 56 ChooseEntryType? type;
50 57
51 // The suggested file name that will be presented to the user as the 58 // The suggested file name that will be presented to the user as the
52 // default name to read or write. This is optional. 59 // default name to read or write. This is optional.
53 DOMString? suggestedName; 60 DOMString? suggestedName;
54 61
55 // The optional list of accept options for this file opener. Each option 62 // The optional list of accept options for this file opener. Each option
56 // will be presented as a unique group to the end-user. 63 // will be presented as a unique group to the end-user.
57 AcceptOption[]? accepts; 64 AcceptOption[]? accepts;
58 65
59 // Whether to accept all file types, in addition to the options specified 66 // Whether to accept all file types, in addition to the options specified
60 // in the accepts argument. The default is true. If the accepts field is 67 // in the accepts argument. The default is true. If the accepts field is
61 // unset or contains no valid entries, this will always be reset to true. 68 // unset or contains no valid entries, this will always be reset to true.
62 boolean? acceptsAllTypes; 69 boolean? acceptsAllTypes;
63 70
64 // Whether to accept multiple files. This is only supported for openFile and 71 // Whether to accept multiple files. This is only supported for openFile and
65 // openWritableFile. The callback to chooseEntry will be called with a list 72 // openWritableFile. The callback to chooseEntry will be called with a list
66 // of entries if this is set to true. Otherwise it will be called with a 73 // of entries if this is set to true. Otherwise it will be called with a
67 // single Entry. 74 // single Entry.
68 boolean? acceptsMultiple; 75 boolean? acceptsMultiple;
69 }; 76 };
70 callback GetDisplayPathCallback = void (DOMString displayPath); 77 callback GetDisplayPathCallback = void (DOMString displayPath);
71 callback FileEntryCallback = void ([instanceOf=FileEntry] object fileEntry); 78 callback EntryCallback = void ([instanceOf=Entry] object entry);
72 callback FileEntriesCallback = void ( 79 callback EntriesCallback = void (
73 [instanceOf=FileEntry] optional object fileEntry, 80 [instanceOf=Entry] optional object entry,
74 [instanceOf=FileEntry] optional object[] fileEntries); 81 [instanceOf=FileEntry] optional object[] fileEntries);
75 callback IsWritableCallback = void (boolean isWritable); 82 callback IsWritableCallback = void (boolean isWritable);
76 callback IsRestorableCallback = void (boolean isRestorable); 83 callback IsRestorableCallback = void (boolean isRestorable);
77 84
78 interface Functions { 85 interface Functions {
79 // Get the display path of a FileEntry object. The display path is based on 86 // Get the display path of an Entry object. The display path is based on
80 // the full path of the file on the local file system, but may be made more 87 // the full path of the file or directory on the local file system, but may
81 // readable for display purposes. 88 // be made more readable for display purposes.
82 static void getDisplayPath([instanceOf=FileEntry] object fileEntry, 89 static void getDisplayPath([instanceOf=Entry] object entry,
83 GetDisplayPathCallback callback); 90 GetDisplayPathCallback callback);
84 91
85 // Get a writable FileEntry from another FileEntry. This call will fail if 92 // Get a writable Entry from another Entry. This call will fail if the
86 // the application does not have the 'write' permission under 'fileSystem'. 93 // application does not have the 'write' permission under 'fileSystem'. If
87 static void getWritableEntry([instanceOf=FileEntry] object fileEntry, 94 // entry is a DirectoryEntry, this call will fail if the application does
88 FileEntryCallback callback); 95 // not have the 'directory' permission under 'fileSystem'.
96 static void getWritableEntry([instanceOf=Entry] object entry,
97 EntryCallback callback);
89 98
90 // Gets whether this FileEntry is writable or not. 99 // Gets whether this Entry is writable or not.
91 static void isWritableEntry([instanceOf=FileEntry] object fileEntry, 100 static void isWritableEntry([instanceOf=Entry] object entry,
92 IsWritableCallback callback); 101 IsWritableCallback callback);
93 102
94 // Ask the user to choose a file. 103 // Ask the user to choose a file or directory.
95 static void chooseEntry(optional ChooseEntryOptions options, 104 static void chooseEntry(optional ChooseEntryOptions options,
96 FileEntriesCallback callback); 105 EntriesCallback callback);
97 106
98 // Returns the file entry with the given id if it can be restored. This call 107 // Returns the file entry with the given id if it can be restored. This call
99 // will fail otherwise. This method is new in Chrome 30. 108 // will fail otherwise. This method is new in Chrome 30.
100 static void restoreEntry(DOMString id, FileEntryCallback callback); 109 static void restoreEntry(DOMString id, EntryCallback callback);
101 110
102 // Returns whether a file entry for the given id can be restored, i.e. 111 // Returns whether a file entry for the given id can be restored, i.e.
103 // whether restoreEntry would succeed with this id now. This method is new 112 // whether restoreEntry would succeed with this id now. This method is new
104 // in Chrome 30. 113 // in Chrome 30.
105 static void isRestorable(DOMString id, IsRestorableCallback callback); 114 static void isRestorable(DOMString id, IsRestorableCallback callback);
106 115
107 // Returns an id that can be passed to restoreEntry to regain access to a 116 // Returns an id that can be passed to restoreEntry to regain access to a
108 // given file entry. Only the 500 most recently used entries are retained, 117 // given file entry. Only the 500 most recently used entries are retained,
109 // where calls to retainEntry and restoreEntry count as use. If the app has 118 // where calls to retainEntry and restoreEntry count as use. If the app has
110 // the 'retainEntries' permission under 'fileSystem' (currently restricted 119 // the 'retainEntries' permission under 'fileSystem' (currently restricted
111 // to dev channel), entries are retained indefinitely. Otherwise, entries 120 // to dev channel), entries are retained indefinitely. Otherwise, entries
112 // are retained only while the app is running and across restarts. This 121 // are retained only while the app is running and across restarts. This
113 // method is new in Chrome 30. 122 // method is new in Chrome 30.
114 static DOMString retainEntry([instanceOf=FileEntry] object fileEntry); 123 static DOMString retainEntry([instanceOf=Entry] object entry);
115 }; 124 };
116 }; 125 };
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/_permission_features.json ('k') | chrome/common/extensions/permissions/api_permission.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698