OLD | NEW |
---|---|
1 <h2 id="manifest">Manifest</h2> | 1 <h2 id="manifest">Manifest</h2> |
2 <p>You must declare the "fileSystemProvider" permission | 2 <p>You must declare the "fileSystemProvider" permission and section |
3 in the <a href="manifest">extension manifest</a> | 3 in the <a href="manifest">extension manifest</a> |
4 to use the File System Provider API. | 4 to use the File System Provider API. |
5 For example:</p> | 5 For example:</p> |
6 <pre data-filename="manifest.json"> | 6 <pre data-filename="manifest.json"> |
7 { | 7 { |
8 "name": "My extension", | 8 "name": "My {{platform}}", |
9 ... | 9 ... |
10 <b>"permissions": [ | 10 "permissions": [ |
11 "fileSystemProvider" | 11 "fileSystemProvider" |
12 ]</b>, | 12 ], |
13 ... | |
14 "file_system_provider_capabilities": [ | |
15 "configurable": true, | |
16 "multiple_mounts": true, | |
17 <a name="manifest-source"></a>"source": "network" | |
not at google - send to devlin
2015/05/12 20:58:34
is this to get an anchor target? Another reasonabl
mtomasz
2015/05/13 00:48:18
Good point. <a name> seems deprecated in html5. Re
| |
18 ], | |
13 ... | 19 ... |
14 } | 20 } |
15 </pre> | 21 </pre> |
16 | 22 |
23 <p class="api_reference"> | |
24 The <code>file_system_provider</code> section must be declared as follows: | |
25 {{+partials.manifest_type | |
26 type:apis.extensions.manifestTypes.byName.FileSystemProviderCapabilities /}} | |
27 </p> | |
28 <p> | |
29 Files app uses above information in order to render related UI elements | |
30 approprietly. For example, if <code>configurable</code> is set to | |
31 </code>true</code>, then a menu item for configuring volumes will be rendered. | |
32 Similarly, if <code>multiple_mounts</code> is set to <code>true</code>, then | |
33 Files app will allow to add more than one mount points from the UI. | |
34 </p> | |
35 | |
17 <h2 id="overview">Overview</h2> | 36 <h2 id="overview">Overview</h2> |
18 <p> | 37 <p> |
19 File System Provider API allows extensions to support virtual file systems, | 38 File System Provider API allows extensions to support virtual file systems, |
20 which are available in the file manager on Chrome OS. | 39 which are available in the file manager on Chrome OS. |
21 Use cases include decompressing archives and accessing files in a cloud | 40 Use cases include decompressing archives and accessing files in a cloud |
22 service other than Drive. | 41 service other than Drive. |
23 </p> | 42 </p> |
24 | 43 |
25 <h2 id="archives">File handlers</h2> | 44 <h2 id="archives">Mounting file systems</h2> |
26 <p> | 45 <p> |
27 Provided file systems can either provide file system contents from an external | 46 Providing extensions can either provide file system contents from an external |
28 source (such as a remote server), or using a local file (such as an archive) as | 47 source (such as a remote server or a USB device), or using a local file (such as |
29 its input. | 48 an archive) as its input. |
30 </p> | 49 </p> |
31 <p> | 50 <p> |
32 In the second case, the providing extension should have a | 51 {{?is_apps}} |
52 For file handlers, the providing extension should have a | |
33 <a href="manifest/file_handlers">file_handlers</a> manifest entry in order | 53 <a href="manifest/file_handlers">file_handlers</a> manifest entry in order |
34 to be launched when the file is selected in the file manager. | 54 to be launched when the file is selected in the file manager. |
35 When the extension is executed with a file to be handled, it has to mount a | 55 When the extension is executed with a file to be handled, it has to mount a |
36 file system and start serving contents from the provided file. | 56 file system and start serving contents from the provided file. |
57 {{:is_apps}} | |
58 In order to write file systems which are file handlers (source is | |
59 <code>"file"</code>) the provider must be a packaged app, as the | |
60 <code>onLaunched</code>event is not available to extensions. | |
61 {{/is_apps}} | |
62 </p> | |
63 <p> | |
64 If the source is network or a device, then the file system should be mounted | |
65 when $(ref:onMountRequested) event is called. | |
66 </p> | |
67 <p> | |
68 <table id="source-table"> | |
69 <tr> | |
70 <th> | |
71 <a href="#manifest-source">Source</a> of the file system data | |
72 </th> | |
73 <th>Entry point</th> | |
74 </tr> | |
75 <tr> | |
76 <td> | |
77 <code>"file"</code> | |
78 </td> | |
79 <td> | |
80 {{?is_apps}} | |
81 $(ref:app.runtime.onLaunched) | |
82 {{:is_apps}} | |
83 Available to <a href="/apps/fileSystemProvider#source-table">packaged | |
84 apps</a> only. | |
85 {{/is_apps}} | |
86 </td> | |
87 </tr> | |
88 <tr> | |
89 <td> | |
90 <code>"device"</code> or <code>"network"</code> | |
91 </td> | |
92 <td> | |
93 $(ref:onMountRequested) | |
94 </td> | |
95 </tr> | |
96 </table> | |
97 </p> | |
98 | |
99 <h2 id="archives">Configuring file systems</h2> | |
100 <p> | |
101 Provided file systems once mounted can be configured via the | |
102 $(ref:onConfigureRequested) event. It's especially useful for file systems which | |
103 provide contents via network in order to set proper credentials. Handling this | |
104 event is optional. | |
37 </p> | 105 </p> |
38 | 106 |
39 <h2 id="archives">Life cycle</h2> | 107 <h2 id="archives">Life cycle</h2> |
40 <p> | 108 <p> |
41 Provided file systems once mounted are remembered by Chrome and remounted | 109 Provided file systems once mounted are remembered by Chrome and remounted |
42 automatically after reboot or restart. Hence, once a file system is | 110 automatically after reboot or restart. Hence, once a file system is |
43 <a href="method-mount">mounted</a> by a providing extension, it will stay until | 111 $(ref:mount mounted) by a providing extension, it will stay until either the |
44 either the extension is unloaded, or the extension calls the | 112 extension is unloaded, or the extension calls the $(ref:unmount) method. |
45 <a href="#method-unmount"> unmount</a> method. | |
46 </p> | 113 </p> |
114 {{?is_apps}} | |
47 <p> | 115 <p> |
48 In case of acting as a file handler, the handled file may need to be stored | 116 In case of acting as a file handler, the handled file may need to be stored |
49 to access it after either a reboot, or suspending and resuming an event page | 117 to access it after either a reboot, or suspending and resuming an event page |
50 of the providing extension. In such case | 118 of the providing extension. In such case $(ref:fileSystem.retainEntry) and |
51 <a href="fileSystem#method-retainEntry">chrome.fileSystem.retainEntry</a> and | 119 $(ref:fileSystem.restoreEntry) should be used. |
52 <a href="fileSystem#method-restoreEntry">chrome.fileSystem.restoreEntry</a> | |
53 should be used. | |
54 </p> | 120 </p> |
121 {{/is_apps}} | |
OLD | NEW |