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
.
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
}
});
});