privacy.network

The privacy.network property contains privacy-related network settings. Each property is a types.BrowserSetting object.

Default values for these properties tend to vary across browsers.

Properties

networkPredictionEnabled

A types.BrowserSetting object whose underlying value is a boolean. If true, the browser attempts to speed up web browsing by pre-resolving DNS entries, prerendering sites (using, for example, <link rel='prefetch' …>), and preemptively opening TCP and TLS connections to servers.

peerConnectionEnabled

A types.BrowserSetting object whose underlying value is a boolean. If false, the RTCPeerConnection interface is disabled. Note that getUserMedia() is not affected by this setting.

webRTCIPHandlingPolicy

A types.BrowserSetting object whose underlying value is a string. This setting allows users to specify the media performance/privacy tradeoffs which affect how WebRTC traffic will be routed and how much local address information is exposed. It may take any one of the following values, from least private to most private:

  • default
  • default_public_and_private_interfaces
  • default_public_interface_only
  • disable_non_proxied_udp
  • proxy_only (only connections using TURN on a TCP connection through a proxy are allowed)
httpsOnlyMode

This setting allows your extension to determine if a user has enabled HTTPS-Only mode. This property is read-only on all platforms. Its underlying value is a string that may take one of three values:

  • "always": HTTPS-Only mode is on.
  • "never": HTTPS-Only mode is off.
  • "private_browsing": HTTPS-Only mode is on in private browsing windows only.
globalPrivacyControl

this setting allows your extension to determine if a user has enabled Global Privacy Control. This property is read-only on all platforms. Its underlying value is a boolean where true indicates that the browser sends Global Privacy Control signals and false indicates the browser does not send the signals.

Examples

Set the webRTCIPHandlingPolicy property:

js
function onSet(result) {
  if (result) {
    console.log("success");
  } else {
    console.log("failure");
  }
}

browser.browserAction.onClicked.addListener(() => {
  let getting = browser.privacy.network.webRTCIPHandlingPolicy.get({});
  getting.then((got) => {
    console.log(got.value);
    if (
      got.levelOfControl === "controlled_by_this_extension" ||
      got.levelOfControl === "controllable_by_this_extension"
    ) {
      let setting = browser.privacy.network.webRTCIPHandlingPolicy.set({
        value: "default_public_interface_only",
      });
      setting.then(onSet);
    } else {
      console.log("Not able to set webRTCIPHandlingPolicy");
    }
  });
});

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
network
Chrome – Full support
Chrome 18 (Release date: 2012-03-28)
footnote Full support
Edge – Full support
Edge 79 (Release date: 2020-01-15)
footnote Full support
Firefox – Full support
Firefox 54 (Release date: 2017-06-13)
footnote Full support
Opera – Full support
Opera 15 (Release date: 2013-07-02)
footnote Full support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 54 (Release date: 2017-06-13)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
globalPrivacyControl
Chrome – No support
Chrome
footnote No support
Edge – No support
Edge
footnote No support
Firefox – Full support
Firefox 95 (Release date: 2021-12-07)
footnote Full support
Opera – No support
Opera
footnote No support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 95 (Release date: 2021-12-07)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
httpsOnlyMode
Chrome – No support
Chrome
footnote No support
Edge – No support
Edge
footnote No support
Firefox – Full support
Firefox 84 (Release date: 2020-12-15)
footnote Full support
Opera – No support
Opera
footnote No support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 84 (Release date: 2020-12-15)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
networkPredictionEnabled
Chrome – Full support
Chrome 18 (Release date: 2012-03-28)
footnote Full support
Edge – Full support
Edge 79 (Release date: 2020-01-15)
footnote Full support
Firefox – Full support
Firefox 54 (Release date: 2017-06-13)
footnote Full support
Opera – Full support
Opera 15 (Release date: 2013-07-02)
footnote Full support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 54 (Release date: 2017-06-13)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
peerConnectionEnabled
Chrome – No support
Chrome
footnote No support
Edge – No support
Edge
footnote No support
Firefox – Full support
Firefox 55 (Release date: 2017-08-08)
footnote Full support
Opera – No support
Opera
footnote No support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 55 (Release date: 2017-08-08)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
webRTCIPHandlingPolicy
Chrome – Full support
Chrome 48 (Release date: 2016-01-20)
footnote Full support
Edge – Full support
Edge 79 (Release date: 2020-01-15)
footnote Full support
Firefox – Full support
Firefox 54 (Release date: 2017-06-13)
footnote
footnote Starting in Firefox 70, a value of disable_non_proxied_udp requires a proxy if one is configured, but allows connections to go through if no proxy is set up. Previously, in this mode WebRTC could only be used if a proxy was configured and TURN over TCP was available; this behavior is now exposed as proxy_only.
Opera – Full support
Opera 35 (Release date: 2016-02-02)
footnote Full support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 54 (Release date: 2017-06-13)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

Note: This API is based on Chromium's chrome.privacy API. This documentation is derived from privacy.json in the Chromium code.