Я пытаюсь настроить расширение Chrome, подобное http://code.google.com/chrome/extensions/trunk/samples.html#webrequest, за исключением того, что вместо прослушивания запроса get по какой-либо причине мы будем перенаправлять на определенную известную страницу, когда запрос get завершается неудачей.
manifest.json:
{
"name": "Custom Error",
"version": "0.1",
"description": "Redirect all navigation errors to specified location/file.",
"permissions": [
"webRequest",
"tabs",
"<all_urls>"
],
"background": {
"page": ["error_listener.html"]
}
}
error_listener.html:
<!doctype html>
<script>
chrome.webRequest.onErrorOccurred.addListener(
function onErrorOccurred(details) {
console.log('onBeforeRequest ', details.url);
return { redirectUrl: 'http://www.google.com' }
},
{urls: ["<all_urls>"]}
//{urls: ["http://*/*", "https://*/*"]}
);
//chrome.tabs.update(details.tabId, {url: "http://www.google.com", ['blocking']});
//alert("what?");
</script>
Расширение загружается без указанных ошибок, но вкладка браузера не перенаправляется. Я пробовал это использовать Chrome 16 и Chrome 17; при использовании Chrome 16 я изменил «chrome.webRequest» на «chrome.experimental.webRequest» и добавил «экспериментальный» в список разрешений.
Пока что кажется, что проблема заключается в том, что, хотя расширение выглядит загруженным, если смотреть на расширения chrome: //, файлы фактически не загружаются - при использовании Инструментов разработчика я не вижу никакой ссылки на error_listener .html.
Я также пытался запустить Chrome 17 со следующими флагами:
8611 25/01/12-11:22:05> google-chrome --restore-last-session
--debug-on-start --log-level=0 --enable-logging
--enable-extension-activity-logging --enable-extension-alerts
--debug-plugin-loading --debug-print | tee > log1.txt
Очевидно, я просто как бы ковыряюсь в темноте с этой командной строкой. У кого-нибудь есть какие-либо подсказки относительно того, как заставить это работать? Заранее спасибо за помощь!