Мы написали Chrome-расширение, которое, используя событие onBeforeSendHeaders, добавляет cookie в каждый веб-запрос:
chrome.webRequest.onBeforeSendHeaders.addListener(addCookie, {
urls: ["<all_urls>"]
}, ["blocking", "requestHeaders"]);
function addCookie(details) {
if (details.url.match(/ourWebsite/)) {
details.requestHeaders.forEach(function (requestHeader) {
if (requestHeader.name.toLowerCase() === "cookie") {
//Code that adds a cookie with a value
}
});
return {requestHeaders: details.requestHeaders};
}
}
Отлично работает на всех Chrome, но на моем. При отладке расширения я заметил, что массив details.requestHeaders
не имеет заголовка cookie
(это всегда ложь: requestHeader.name.toLowerCase() === "cookie"
).
Моей первой мыслью было, что другое расширение портит наше, поэтому я попытался в режиме инкогнито (где другие расширения не разрешены), но это не сработало.
В манифесте расширения у нас есть и "cookies", и "webRequest" в permissions
.
Есть идеи? Заранее спасибо!