1{
2  // chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/
3  "key": "MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDlhpGghtnNJ7pluQN0RDwbUxwwi99oM35ZEaFYvxPLrf0fIEC18cfDdJi6u4aJ+UoSpgzK731L0P/k4LvK2Rz9kVKOy0+IvuRrWkT7lbrLfA1UEBh02OA1AAshjmyRg4IxCqgl8ia8XWq6HKegS1y1KXZYGgb4qp7Bh9VC4cIzswIBIw==",
4  "manifest_version": 2,
5  "name": "Files",
6  "version": "3.0",
7  "description": "File Manager",
8  "incognito" : "split",
9  "icons": {
10    "16": "common/images/icon16.png",
11    "32": "common/images/icon32.png",
12    "48": "common/images/icon48.png",
13    "64": "common/images/icon64.png",
14    "96": "common/images/icon96.png",
15    "128": "common/images/icon128.png",
16    "256": "common/images/icon256.png"
17  },
18  "permissions": [
19    "contextMenus",
20    "experimental",
21    "echoPrivate",
22    "storage",
23    "fileBrowserHandler",
24    "fileBrowserPrivate",
25    "fullscreen",
26    "mediaPlayerPrivate",
27    "mediaGalleriesPrivate",
28    "metricsPrivate",
29    "notifications",
30    "commandLinePrivate",
31    "unlimitedStorage",
32    "webview",
33    // Comment out chrome:// permissions to debug on a desktop browser.
34    "chrome://extension-icon/",
35    "chrome://resources/",
36    "chrome://theme/",
37    "tabs",
38    "clipboardWrite",
39    "clipboardRead",
40    "power",
41    "https://docs.google.com/",
42    "https://*.googleusercontent.com/",
43    "https://drive.google.com/"
44  ],
45  "file_browser_handlers": [
46    {
47      "id": "play",
48      "default_title": "__MSG_PLAY_MEDIA__",
49      "default_icon": "common/images/file_types/200/audio.png",
50      "file_filters": [
51        "filesystem:*.amr",
52        "filesystem:*.flac",
53        "filesystem:*.m4a",
54        "filesystem:*.mp3",
55        "filesystem:*.oga",
56        "filesystem:*.ogg",
57        "filesystem:*.wav"
58      ]
59    },
60    {
61      "id": "watch",
62      "default_title": "__MSG_PLAY_MEDIA__",
63      "default_icon": "common/images/file_types/200/video.png",
64      "file_filters": [
65        "filesystem:*.3gp",
66        "filesystem:*.avi",
67        "filesystem:*.m4v",
68        "filesystem:*.mkv",
69        "filesystem:*.mov",
70        "filesystem:*.mp4",
71        "filesystem:*.mpeg",
72        "filesystem:*.mpeg4",
73        "filesystem:*.mpg",
74        "filesystem:*.mpg4",
75        "filesystem:*.ogm",
76        "filesystem:*.ogv",
77        "filesystem:*.ogx",
78        "filesystem:*.webm"
79      ]
80    },
81    {
82      "id": "mount-archive",
83      "default_title": "__MSG_MOUNT_ARCHIVE__",
84      "default_icon": "common/images/file_types/200/archive.png",
85      "file_filters": [
86        "filesystem:*.rar",
87        "filesystem:*.zip"
88      ]
89    },
90    {
91      "id": "view-pdf",
92      "default_title": "__MSG_OPEN_ACTION__",
93      "default_icon": "common/images/file_types/200/pdf.png",
94      "file_filters": [
95        "filesystem:*.pdf"
96      ]
97    },
98    {
99      "id": "view-swf",
100      "default_title": "__MSG_OPEN_ACTION__",
101      "default_icon": "common/images/file_types/200/generic.png",
102      "file_filters": [
103        "filesystem:*.swf"
104      ]
105    },
106    {
107      "id": "view-in-browser",
108      "default_title": "__MSG_OPEN_ACTION__",
109      "default_icon": "common/images/file_types/200/generic.png",
110      "file_filters": [
111        "filesystem:*.htm",
112        "filesystem:*.html",
113        "filesystem:*.mht",
114        "filesystem:*.mhtml",
115        "filesystem:*.txt"
116      ]
117    },
118    {
119      "id": "gallery",
120      "default_title": "__MSG_OPEN_ACTION__",
121      "default_icon": "common/images/file_types/200/image.png",
122      "file_filters": [
123        // Image formats
124        "filesystem:*.bmp",
125        "filesystem:*.gif",
126        "filesystem:*.ico",
127        "filesystem:*.jpg",
128        "filesystem:*.jpeg",
129        "filesystem:*.png",
130        "filesystem:*.webp",
131        // Video formats
132        "filesystem:*.3gp",
133        "filesystem:*.avi",
134        "filesystem:*.m4v",
135        "filesystem:*.mkv",
136        "filesystem:*.mov",
137        "filesystem:*.mp4",
138        "filesystem:*.mpeg",
139        "filesystem:*.mpeg4",
140        "filesystem:*.mpg",
141        "filesystem:*.mpg4",
142        "filesystem:*.ogm",
143        "filesystem:*.ogv",
144        "filesystem:*.ogx",
145        "filesystem:*.webm"
146      ]
147    },
148    {
149      "id": "open-hosted-generic",
150      "default_title": "__MSG_HOSTED__",
151      "default_icon": "common/images/file_types/200generic.png",
152      "file_filters": [
153        "filesystem:*.gdraw",
154        "filesystem:*.gtable",
155        "filesystem:*.gform"
156      ]
157    },
158    {
159      "id": "open-hosted-gdoc",
160      "default_title": "__MSG_HOSTED__",
161      "default_icon": "common/images/file_types/200/generic.png",
162      "file_filters": [
163        "filesystem:*.gdoc"
164      ]
165    },
166    {
167      "id": "open-hosted-gsheet",
168      "default_title": "__MSG_HOSTED__",
169      "default_icon": "common/images/file_types/200/generic.png",
170      "file_filters": [
171        "filesystem:*.gsheet"
172      ]
173    },
174    {
175      "id": "open-hosted-gslides",
176      "default_title": "__MSG_HOSTED__",
177      "default_icon": "common/images/file_types/200/generic.png",
178      "file_filters": [
179        "filesystem:*.gslides"
180      ]
181    },
182    // The following handlers are used only internally, therefore they do not
183    // have any file filter.
184    // Automatically opens a volume and later close Files.app when unmounted.
185    {
186      "id": "auto-open",
187      "default_title": "__MSG_OPEN_ACTION__",
188      "default_icon": "common/images/file_types/200/generic.png",
189      "file_filters": []
190    },
191    // Selects the passed file after launching Files.app.
192    {
193      "id": "select",
194      "default_title": "__MSG_OPEN_ACTION__",
195      "default_icon": "common/images/file_types/200/generic.png",
196      "file_filters": []
197    },
198    // Opens the passed directory after launching Files.app.
199    {
200      "id": "open",
201      "default_title": "__MSG_OPEN_ACTION__",
202      "default_icon": "common/images/file_types/200/generic.png",
203      "file_filters": []
204    }
205  ],
206  // Required to import scripts in a web worker. Note, that in Apps v2, it is
207  // enough that anything is passed to web_accessible_resources. If there is
208  // at least any file, then all files are allowed. http://crbug.com/179127.
209  "web_accessible_resources": ["foreground/js/metadata/byte_reader.js"],
210  "app": {
211    "background": {
212      "scripts": [
213        "chrome://resources/js/load_time_data.js",
214        "chrome://resources/js/cr.js",
215        "chrome://resources/js/cr/event_target.js",
216        "chrome://resources/js/cr/ui/array_data_model.js",
217        "common/js/async_util.js",
218        "common/js/path_util.js",
219        "common/js/progress_center_common.js",
220        "common/js/util.js",
221        "background/js/volume_manager.js",
222        "background/js/file_operation_handler.js",
223        "background/js/file_operation_manager.js",
224        "background/js/test_util.js",
225        "background/js/progress_center.js",
226        "background/js/background.js"]
227    },
228    // chrome-extension://pmfjbimdmchhbnneeidfognadeopoehp is the image loader extension.
229    "content_security_policy": "default-src 'none'; script-src 'self' chrome://resources chrome-extension://pmfjbimdmchhbnneeidfognadeopoehp; style-src 'self' 'unsafe-inline' chrome://resources; frame-src 'self' about:; img-src 'self' chrome://resources chrome://theme data: https://docs.google.com https://*.googleusercontent.com chrome://extension-icon; media-src 'self' https://*.googleusercontent.com; connect-src https://drive.google.com; object-src 'self'"
230  }
231}
232