Chrome Extension開発を勉強してみる (14) - file:// へのアクセスに関して -
permissionsに設定すればfile://なスキームアクセスも可能なのだけど
{
"name": "test",
"version": "0.1",
"manifest_version": 2,
"browser_action": {
"default_title": "test",
"default_icon": "icon.png"
},
"background": {
"scripts": ["background.js"]
},
"permissions": ["<all_urls>"]
}
というように<all_urls>というようなパーミッションを付与する事でも可能な模様。あんまり望ましくは無いとは思うのですがこれやると
というようにfile://なスキームアクセスを許可を設定したりも出来る。で問題はそれが有効なのかどうかに関して。それはchrome.extension.isAllowedFileSchemeAccessで取得出来る。なのでfile://スキームにアクセス出来るか否かはそれでチェックすれば良い。ソースにすると
(function(undefined) {
chrome.browserAction.onClicked.addListener(function() {
chrome.extension.isAllowedFileSchemeAccess(function(allowed) {
if (allowed) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "file:///home/kinjouj/.vimrc");
xhr.onload = function() {
alert(xhr.responseText);
};
xhr.send(null);
} else {
alert("ERROR: cannot access denied file:// url");
}
});
});
})();
てな感じで引数にはコールバックを取る。でその引数にこのfile://スキームへのアクセスが認可されてるかを取得出来る模様
あんまり用途的なのが思いつかないけど、そういう事も一応出来る的な感じで