Расширение Chrome: блокировка элементов страницы перед доступом
Я пытаюсь заблокировать элементы на веб-странице, но я хочу сделать это до их загрузки. Так, например, я мог бы использовать
chrome.webRequest.onBeforeRequest.addListener(...);
И перенаправить / отменить запрос. Но я хочу проверить фактическое содержание запроса. То, что я делаю сейчас, это началоXMLHttpRequest
загрузить url / object самостоятельно, проверить содержимое и заблокировать его при необходимости. Однако основная проблема заключается в том, что на самом деле не так много объектов заблокированы. Это означает, что каждый объект загружается дважды: один раз для «моего осмотра» и один раз, после того как я сказал «хорошо, вы можете загрузить его».
Как я могу перехватить процесс загрузки, чтобы я мог проверить его на лету и передать байты данных, если они разрешены?
Надеюсь, вы понимаете мой вопрос, спасибо :-)
Пример того, как я делаю это прямо сейчас:
function shall_be_blocked(info){
var xhr = new XMLHttpRequest();
xhr.open("GET", file, false);
//... #load the file and inspect the bytes
if (xhr.responseText=="block it") {
return true;
}
return false;
}
chrome.webRequest.onBeforeRequest.addListener(
function(info) {
ret = shall_be_blocked(info);
if (ret ...){return {cancel:true};}//loads the file once, as it is getting blocked
return {};//loads the file twice
},
{},["blocking"]
);