chrome.webRequest.onBeforeSendHeaders установить cookie из хранилища?
Я работаю над веб-расширением, у меня есть базовые знания в "VanillaJS", и последние 2 дня я пытаюсь заставить его работать: я хочу добавить пользовательское значение в заголовок файла cookie для конкретного запроса. Значение сохраняется с помощью chrome.storage.sync.set. Значение выводится обратно, но не отправляется вперед в запросе.
Мой манифест.json:
{
"manifest_version": 2,
"name": "My Extension",
"version": "1.0.0",
"background": {
"scripts" : ["background.js"]
},
"permissions": [
"<all_urls>", /* for later use */
"storage",
"webRequest",
"webRequestBlocking"
]
}
Мой background.js:
chrome.storage.sync.set({ "asym": "; param=value;" }, function() {
alert("set"); // or console.log
});
function gAsyVal(callback) {
chrome.storage.sync.get(["asym"], function(obj) {
callback(obj.asym);
});
}
chrome.webRequest.onBeforeSendHeaders.addListener(
function(info) {
var Headers = info.requestHeaders;
for (var i = 0; i < Headers.length; ++i) {
if (Headers[i].name === 'Cookie') {
gAsyVal(pAsyVal);
function pAsyVal(val) {
Headers[i].value = Headers[i].value + val;
alert(Headers[i].value); //I see the final cookie but in the end is blank
}
break;
}
}
return { requestHeaders: Headers };
}, { urls: ["https://www.httpwatch.com/httpgallery/cookies/"] }, ["blocking", "requestHeaders"]);
Я знаю, что такое асинхронная функция, но не знаю, как реализовать ее в моем случае, потому что у меня недостаточно знаний. Я работаю в Google Chrome 63.0.3239.132/64-bit.
Спасибо за ваши увлечения!