バックグラウンドスクリプトで
chrome.webRequest.onBeforeSendHeaders.addListener(
function(info) {
var headers = info.requestHeaders;
headers.forEach(function(header, i) {
if(header.name.toLowerCase() == 'user-agent'){
header.value = "書き換えたいユーザーエージェント";
}
});
return {requestHeaders: headers};
},{
urls: [
<対象サイトたちのマッチパターン列挙>
],
types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest"]
},[
"blocking",
"requestHeaders"
]
);
あとはmanifestのpermissionsに
"webRequest",
"webRequestBlocking",
<対象サイトたちのマッチパターン列挙>
を追加する
注意事項としては、event pages(manifestのbackground.persistent = falseの場合)では使えない
event pagesは同様の機能を実装するのにdeclarativeWebRequestを使う必要があるが、これが現在まだβ段階でこの機能を組み込んだ拡張を作ると警告が出る