Chrome Extension開発を勉強してみる (9) - webRequest -

2012-07-18T00:00:00+09:00 Chrome Extension JavaScript

webRequestを使う事でロードしている(しようとしている)のを取得したり、ヘッダーを書き換えたり出来る模様(但し、書き換えられるヘッダーは限られるっぽい)

manifest.json

{
  "name": "test",
  "version": "0.1",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["webRequest", "webRequestBlocking", "http://*/", "https://*/"]
}

特にwebRequestなんちゃらは指定しないとこのAPI自体が使えない。webRequestはchrome.webRequestだけど、このパーミッションを設定しなかったらundefinedになる模様

background.js

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    var detail = { "url": details.url, "headers": {} };

    details.requestHeaders.forEach(function(header) {
      if ("name" in header && header.name === "User-Agent") {
        header.value = "iPhone";
      }

      detail.headers[header.name] = header.value;
    });

    console.log(detail);

    return { "requestHeaders": details.requestHeaders };
  },
  { "urls": ["*://*/*"] },
  ["requestHeaders", "blocking"]
);

っていう感じ。別にここで書かなくてもドキュメント読めば良い気がするので詳細は省略

http://code.google.com/chrome/extensions/webRequest.html

Chrome Extension開発を勉強してみる (10) - chrome.privacy - Native Client(NaCl)をやってみる (2) - NativeClient側でメッセージ受信 -