Я пытаюсь переопределить file:///
URL-адреса, независимо от того, указывают ли они на файлы или каталоги, чтобы мое расширение отображало собственный браузер файлов для представлений каталогов, а также потенциально позволяло редактировать отдельные файлы для файлов.
Iсделал следующую попытку, но слушатель никогда не был запущен ни для файлов, ни для папок:
browser.webRequest.onBeforeRequest.addListener((details) => {
const {documentUrl, originUrl, type, requestBody, url} = details;
if ((/^file:/).test(originUrl)) {
return {
redirectUrl: browser.extension.getURL('filebrowser/index.html') + '?abc=1'
};
}
}, {
urls: ['file:///*/*']
}, ['blocking']);
Я добавил разрешение "file:///*/*"
в манифест ("<all_urls>"
также не работало) (и ядобавили «web_accessible_resources» для перенаправления, но это даже не было достигнуто).
Я предполагаю, что это может быть из-за https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/RequestFilter#Type, где говорится, что будут работать только запросы, сделанные с использованием HTTP / HTTPSдля событий, несмотря на шаблоны файлов, поддерживающие другие протоколы.Тем не менее, onHeadersReceived
, кажется, получает по крайней мере file:///
файловые запросы (хотя и не запросы каталогов), хотя onBeforeRequest
, который необходим для перенаправлений, не дает.
Может кто-нибудь подтвердить, есть ли какие-либообходные пути?