W3cubDocs

/Web Extensions

privacy.network

BCD tables only load in the browser

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.

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 SSL 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.

Set the webRTCIPHandlingPolicy property:

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

browser.browserAction.onClicked.addListener(() => {

  var 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")) {
      var setting = browser.privacy.network.webRTCIPHandlingPolicy.set({
        value: "default_public_interface_only"
      });
      setting.then(onSet);
    } else {
      console.log("Not able to set webRTCIPHandlingPolicy");
    }
  });

});

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

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy/network