'fileSystem' is only allowed for packaged apps, and this is a legacy packaged app
google-chrome, google-chrome-app, google-chrome-extension
Solution
Packaged apps have a different structure in the "app" section of the manifest. Your manifest.json would be something like:
{
"name": "MyApp",
"version": "1.0",
"manifest_version": 2,
"app": {
"background": {
"scripts": [
"main.js"
]
}
},
"icons": {
"128": "favicon.ico"
},
"permissions": [
"fileSystem"
]
}
and you would also need a background script ("main.js" in this sample) that opens your index.html when the user clicks on the app icon:
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('index.html', {
bounds: {
width: 500,
height: 300
}
});
});
Problem
I need to use the fileSystem permission in the manifest.js, so I can read/write files from my Chrome extension. When I load my extension with the "Load unpacked extension" button, Chrome displays: ``` 'fileSystem' is only allowed for packaged apps, and this is a legacy packaged app. ``` So for Chrome my extension is a legacy packaged app. My question is how to technically convert a "legacy packaged app" into a "packaged apps" so I can test the fileSystem API ? Here is my manifest: ``` { "name": "MyApp", "version": "1.0", "manifest_version": 2, "app": { "launch": { "local_path": "index.html" } }, "icons": { "128": "favicon.ico" }, "permissions" : [ "fileSystem" ] } ``` Indeed I'm already using `"manifest_version": 2`.