proxy

The proxy permission allows an extension to manage Chrome's proxy settings.

What it does

  • Enables an extension to configure how Chrome connects to the internet.
  • The extension can set a proxy server for all web traffic, routing it through a specific server.
  • It can specify different proxy configurations, such as a direct connection, a system-wide setting, a fixed proxy server, or a PAC (Proxy Auto-Config) script.
  • The extension can change these settings programmatically based on its own logic.

When to use it

This permission is for extensions that provide VPN (Virtual Private Network) services or other network management tools.

Examples:

  • A VPN extension that routes the user's traffic through its own secure servers.
  • A developer tool that switches between different proxy configurations for testing.
  • An extension for a corporate environment that enforces a specific proxy for accessing internal sites.

Manifest Declaration

This permission triggers a warning on installation.

{
  "name": "My Proxy Manager",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": [
    "proxy"
  ],
  "background": {
    "service_worker": "background.js"
  }
}

Security & Privacy

Why is it risky?

This is one of the most powerful and dangerous permissions. It allows an extension to reroute all of your internet traffic through its own servers.

A legitimate VPN extension uses this to protect your privacy. However, a malicious extension could use this permission to:

  • Monitor every website you visit and everything you do online.
  • Steal your passwords, credit card numbers, and other sensitive data as it passes through their server.
  • Inject ads, malware, or fake content into the websites you visit.

You should only grant this permission to well-known, highly trusted VPN or security companies.

API Usage Example

This example sets a SOCKS5 proxy server when the extension is installed.

// background.js

chrome.runtime.onInstalled.addListener(() => {
  const config = {
    mode: "fixed_servers",
    rules: {
      singleProxy: {
        scheme: "socks5",
        host: "my-proxy.example.com",
        port: 1080
      },
      bypassList: ["<local>"]
    }
  };

  chrome.proxy.settings.set({
    value: config,
    scope: 'regular'
  }, () => {
    if (chrome.runtime.lastError) {
      console.error('Failed to set proxy:', chrome.runtime.lastError.message);
    } else {
      console.log('Proxy settings have been configured.');
    }
  });
});

Extensions with the proxy permission

Here are some popular browser extensions that use the "proxy" permission. To explore more, try our Advanced search.

Permission Metrics

Popularity

Security Risk


Usage by Platform