3 items
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.
Jul 30, 2026
rating_count is the Chrome Web Store ratings count, not a written-review count.
Media assets
Screenshots and videos on the listing.
Has promo video
Whether the listing includes at least one video.
Languages
Declared language locales.
Developer website
Listing exposes a developer website URL.
Contact email
Listing exposes a contact email.
Keyword in name
Case-insensitive substring match in the name.
Keyword in description
Case-insensitive substring match in the description.
Keyword occurrences in description
Count of case-insensitive occurrences in the description.
Category user-count percentile
Share of same-category extensions with fewer users (null if unknown).
These are transparent listing completeness / keyword signals, not a prediction of Chrome Web Store search ranking.