I am developting chrome-extension.
I want to change UserAgent of browser with rewriting http header using chrome-webrequest API, but something is wrong...
I want this codes to behave expected, but I don't know what to do.
Can I give me advices??
BrowserConfig.js
class BrowserConfig {
apply (userAgent, language) {
let targetURL = "<all_urls>"
function rewriteHeader(e) {
e.requestHeaders.forEach(function(header){
let headerName = header.name.toLowerCase();
if (headerName === "user-agent") {
header.value = userAgent;
}
});
return {requestHeaders: e.requestHeaders};
}
chrome.webRequest.onBeforeSendHeaders.addListener(
rewriteHeader,
{urls: [targetURL]},
["blocking", "requestHeaders", "extraHeaders"]
);
}
background.js
import BrowserConfig from 'pass/to/BrowserConfig.js'
const browserConfig = new BrowserConfig()
// browserOptions example... {userAgent: HeadlessChrome}
chrome.storage.local.get('browserOptions', ({ browserOptions }) => {
this.browserConfig.apply(browserOptions.userAgent)
})
Expected Behavior
Every time set browserOption, UserAgent change to desired
ex.)
1st: browserOption = {userAgent: HeadlessBrowser} => userAgent: HeadlessBrowser
2nd: browserOption = {userAgent: aaaaaa} => userAgent: aaaaaa
Actual Behavior
Only once, I can change UserAgent to desired. But, from the second time, I cannot change it.
ex.)
1st: browserOption = {userAgent: HeadlessBrowser} => userAgent: HeadlessBrowser
2nd~: browserOption = {userAgent: aaaaaa} => userAgent: HeadlessBrowser