Item logo image for Go SHP Client

Go SHP Client

ExtensionDeveloper Tools10 users
Item media 3 (screenshot) for Go SHP Client
Item media 1 (screenshot) for Go SHP Client
Item media 2 (screenshot) for Go SHP Client
Item media 3 (screenshot) for Go SHP Client
Item media 1 (screenshot) for Go SHP Client
Item media 1 (screenshot) for Go SHP Client
Item media 2 (screenshot) for Go SHP Client
Item media 3 (screenshot) for Go SHP Client

Overview

Chrome Extension for a go lang secure HTTP proxy.

This is the extension for go-shp (https://github.com/winguse/go-shp). A open source secure HTTP proxy written in golang. The source code can be found in https://github.com/winguse/go-shp/tree/master/extension . This extension include features: 1. set proxy on / off for Chrome 2. rule base proxy selection 3. latency test to select proxy server ## Extension Permissions ### `proxy` Used to configure the browser's system-wide proxy settings via `chrome.proxy.settings.set()`. The extension generates a PAC (Proxy Auto-Config) script from the user's routing rules and proxy host list, and installs it so Chrome knows which requests to tunnel through the proxy and which to send direct. Without this permission the extension cannot route any traffic. ### `webRequest` Used to register a `chrome.webRequest.onAuthRequired` listener. Chrome's proxy API (PAC script) has no mechanism to embed credentials — it only specifies which proxy host to use. When the proxy server responds with HTTP 407 Proxy Authentication Required, Chrome fires this event. The extension intercepts the challenge and supplies the configured username and token so Chrome can retry the request with a `Proxy-Authorization` header automatically. ### `webRequestAuthProvider` Required in Manifest V3 to use the `asyncBlocking` extra info string when calling `chrome.webRequest.onAuthRequired.addListener()`. This grants the listener the ability to asynchronously return `authCredentials` back to Chrome. Without it, the `onAuthRequired` callback cannot actually provide credentials — it can only observe the event. ### `storage` Used to persist the user's configuration across browser sessions via `chrome.storage.local`. This includes proxy host lists, routing rules, credentials, and the latency history used to rank proxy hosts by speed. Without this permission settings would be lost every time the browser is closed. ### `alarms` Used to schedule periodic proxy health checks via `chrome.alarms`. The background service worker probes each configured proxy host at a user-defined interval (default: every minute) to measure latency and update host rankings. Service workers cannot use `setInterval` reliably, so `alarms` is the correct API for recurring background work in MV3. ### Host Permission — `<all_urls>` This extension is designed for self-hosted SHP (Secure HTTP Proxy) deployments. Users run their own proxy servers at arbitrary hostnames and ports — there is no fixed domain that can be listed. The `<all_urls>` host permission is therefore required for the following reasons: - The `webRequest.onAuthRequired` listener must cover all URLs so that 407 authentication challenges from any user-configured proxy host are intercepted, regardless of what domain the user has deployed their server on. - The PAC script routes traffic through proxy hosts that are unknown at extension-build time. The browser needs host permission for the destinations being proxied. - The background health-check probes send requests to `http://<proxy-host><authBasePath>/407` to measure latency. Since the proxy host is user-configured, no specific hostname can be declared in the manifest. No page content is ever read or modified. The extension only observes request metadata (URL, host) and proxy authentication events — it never accesses response bodies or injects scripts into web pages.

Details

  • Version
    1.0.1
  • Updated
    July 30, 2026
  • Offered by
    Yingyu
  • Size
    93.59KiB
  • Languages
    English
  • Developer
    Email
    zippy.indent2u@icloud.com
  • Non-trader
    This developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.

Privacy

Manage extensions and learn how they're being used in your organization
The developer has disclosed that it will not collect or use your data. To learn more, see the developer’s privacy policy.

This developer declares that your data is

  • Not being sold to third parties, outside of the approved use cases
  • Not being used or transferred for purposes that are unrelated to the item's core functionality
  • Not being used or transferred to determine creditworthiness or for lending purposes

Support

For help with questions, suggestions, or problems, please open this page on your desktop browser

Google apps