Creates a chrome extension for the proxy
        Only need to be done this way when using a proxy with auth

def _proxy_extension(self, proxy_parts):
        """
        Creates a chrome extension for the proxy
        Only need to be done this way when using a proxy with auth
        """
        import zipfile
        manifest_json = """
                        {
                            "version": "1.0.0",
                            "manifest_version": 2,
                            "name": "Chrome Proxy",
                            "permissions": [
                                "proxy",
                                "tabs",
                                "unlimitedStorage",
                                "storage",
                                "<all_urls>",
                                "webRequest",
                                "webRequestBlocking"
                            ],
                            "background": {
                                "scripts": ["background.js"]
                            },
                            "minimum_chrome_version":"22.0.0"
                        }
                        """

        background_js = """
                        var config = {{
                                mode: "fixed_servers",
                                rules: {{
                                  singleProxy: {{
                                    scheme: "{schema}",
                                    host: "{host}",
                                    port: parseInt({port})
                                  }},
                                  bypassList: []
                                }}
                              }};

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

                        function callbackFn(details) {{
                            return {{
                                authCredentials: {{
                                    username: "{user}",
                                    password: "{password}"
                                }}
                            }};
                        }}

                        chrome.webRequest.onAuthRequired.addListener(
                                    callbackFn,
                                    {{urls: ["<all_urls>"]}},
                                    ['blocking']
                        );
                        """.format(**proxy_parts)

        plugin_file = 'proxy_auth_plugin.zip'
        with zipfile.ZipFile(plugin_file, 'w') as zp:
            zp.writestr("manifest.json", manifest_json)
            zp.writestr("background.js", background_js)

        return plugin_file