プロキシ切り替えるクロム拡張作った


学校のネットワークに繋いだら学校のプロキシに、家に戻ったらプロキシの自動検出に手動で切り替えてたのだけれども、
面倒くさかったから勉強も兼ねてクロム拡張を作った。

マニュフェストファイルはこんな感じ

{
  "manifest_version": 2,
  "name": "Proxy Changer",
  "version": "1.0",
  "description": "change http proxy",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "tabs",
    "proxy"
  ],
  "icons" : {
    "128": "icon.png"
  }
}

続いてhtml

<!DOCTYPE HTML>

<html lnag="ja">
  <head>
    <meta charset="utf-8">
    <title>proxy changer</title>
  </head>
  <body>
    <button id="scholl">scholl proxy</button>
    <button id="outer">outer proxy</button>

    <script src="background.js"></script>
  </body>

</html>

js

window.onload=function(){
  document.getElementById("scholl").addEventListener("click", changeShollProxy);
  document.getElementById("outer").addEventListener("click", changeOuterProxy);
}

var config = {
    mode: "fixed_servers",
    rules: {
      proxyForHttp: {
        scheme: "http",
        host: "xx.xx.xx.xx",
        port: xxxx
      },
      bypassList: ["127.0.0.1"]
    }
  };


function changeShollProxy(){
  chrome.proxy.settings.set(
    {value: config, scope: "regular"},
    function(){}
  );
}

function changeOuterProxy(){
  config.mode = "auto_detect";
  chrome.proxy.settings.set(
    {value: config, scope: "regular"},
    function(){}
  );

}

html適当なのは許して
本当は

<button id="scholl" onclick="chagneSchollProxy">scholl</button>

みたいにしたかったけど、クロム拡張では出来ないみたい(違ってたらごめんなさい)。

参考
いまさらまとめるChrome ExtensionでのJavaScript挿入 - console.lealog();

https://developer.chrome.com/extensions/proxy