system.network

The system.network permission allows an extension to access information about the system's network interfaces.

What it does

  • Grants access to the chrome.system.network API.
  • Allows an extension to get a list of all network adapters available on the system (e.g., Ethernet, Wi-Fi).
  • For each adapter, it provides the interface name, the assigned IP address (IPv4 or IPv6), and the network prefix length. (MAC addresses are not exposed by chrome.system.network; on managed ChromeOS devices the MAC is available via chrome.enterprise.networkingAttributes instead.)

When to use it

This is for specialized extensions that need detailed network configuration information, often for troubleshooting or system analysis.

Examples:

  • A networking tool for developers or system administrators.
  • A support extension that gathers system information to help diagnose a problem.
  • An extension that needs to bind to a specific local IP address for a server socket (used with the sockets permission).

Manifest Declaration

{
  "name": "My Network Info Tool",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": [
    "system.network"
  ]
}

Security & Privacy

Why is it medium risk?

This permission lets an extension see technical details about your network configuration: the names of your network adapters and the local IP addresses assigned to each (IPv4 and IPv6).

Local IPs reveal which network the device is on (home Wi-Fi vs. corporate vs. coffee shop) and can be combined with other signals for device fingerprinting. The extension cannot see your network traffic through this permission alone, but the information returned is more sensitive than typical low-risk system metadata. Most extensions do not need it.

API Usage Example

This example gets all network interfaces and logs their properties.

// background.js or popup.js

async function getNetworkInterfaces() {
  if (!chrome.system.network) {
    console.log('System Network API not available.');
    return;
  }
  try {
    const interfaces = await chrome.system.network.getNetworkInterfaces();
    if (interfaces.length > 0) {
      console.log(`Found ${interfaces.length} network interface(s):`);
      interfaces.forEach(iface => {
        console.log(`  - Name: ${iface.name}`);
        console.log(`    Address: ${iface.address}/${iface.prefixLength}`);
      });
    } else {
      console.log('No network interfaces found.');
    }
  } catch (error) {
    console.error('Error getting network info:', error);
  }
}

getNetworkInterfaces();

Extensions with the system.network permission

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

Permission Metrics

Popularity

Security Risk


Usage by Platform