diff --git a/app/browser/reducers/tabsReducer.js b/app/browser/reducers/tabsReducer.js
index c8e4d2a56bc..7c5ff91b471 100644
--- a/app/browser/reducers/tabsReducer.js
+++ b/app/browser/reducers/tabsReducer.js
@@ -22,9 +22,11 @@ const updateState = require('../../common/state/updateState')
const appConfig = require('../../../js/constants/appConfig')
const appConstants = require('../../../js/constants/appConstants')
const windowConstants = require('../../../js/constants/windowConstants')
+const webrtcConstants = require('../../../js/constants/webrtcConstants')
const dragTypes = require('../../../js/constants/dragTypes')
const tabActionConsts = require('../../common/constants/tabAction')
const appActions = require('../../../js/actions/appActions')
+const settings = require('../../../js/constants/settings')
// Utils
const tabs = require('../tabs')
@@ -37,23 +39,27 @@ const flash = require('../../../js/flash')
const {isSourceAboutUrl, isTargetAboutUrl, isNavigatableAboutPage} = require('../../../js/lib/appUrlUtil')
const {shouldDebugTabEvents} = require('../../cmdLine')
-const WEBRTC_DEFAULT = 'default'
-const WEBRTC_DISABLE_NON_PROXY = 'disable_non_proxied_udp'
-
const getWebRTCPolicy = (state, tabId) => {
+ const webrtcSetting = state.getIn(['settings', settings.WEBRTC_POLICY])
+ if (webrtcSetting && webrtcSetting !== webrtcConstants.default) {
+ // Global webrtc setting overrides fingerprinting shield setting
+ return webrtcSetting
+ }
+
const tabValue = tabState.getByTabId(state, tabId)
if (tabValue == null) {
- return WEBRTC_DEFAULT
+ return webrtcConstants.default
}
+
const allSiteSettings = siteSettingsState.getAllSiteSettings(state, tabValue.get('incognito') === true)
const tabSiteSettings =
siteSettings.getSiteSettingsForURL(allSiteSettings, tabValue.get('url'))
const activeSiteSettings = siteSettings.activeSettings(tabSiteSettings, state, appConfig)
if (!activeSiteSettings || activeSiteSettings.fingerprintingProtection !== true) {
- return WEBRTC_DEFAULT
+ return webrtcConstants.default
} else {
- return WEBRTC_DISABLE_NON_PROXY
+ return webrtcConstants.disableNonProxiedUdp
}
}
diff --git a/app/extensions/brave/locales/en-US/preferences.properties b/app/extensions/brave/locales/en-US/preferences.properties
index 8d512f503a4..70ef72302cc 100644
--- a/app/extensions/brave/locales/en-US/preferences.properties
+++ b/app/extensions/brave/locales/en-US/preferences.properties
@@ -106,11 +106,11 @@ dashboardShowImages=Show images
dashlane=Dashlane® (requires application)
date=Date
default=Default
-default=Default
defaultBrowser=Brave is your default browser.
defaultWalletStatus=Thanks for helping support your favorite websites!
defaultZoomLevel=Default zoom level
deletedSitesHeader=Deleted Sites
+disableNonProxiedUdp=Disable non-proxied UDP
disableTitleMode=Always show the URL bar
disconnect=Disconnect
dollarsPaid=Amount
@@ -262,6 +262,8 @@ promotionClaimedErrorMessage=The promotion has ended.
promotionClaimedErrorText=There may be additional Basic Attention Token promotions in the future so stay tuned
promotionClaimedErrorTitle=Sorry!
protocolRegistrationPermission=Protocol registration
+publicOnly=Default public interface only
+publicPrivate=Default public and private interfaces
publisher=Site
publisherMediaName={{publisherName}} on {{provider}}
publishers=Publishers
@@ -390,6 +392,8 @@ viewPaymentHistory= {{date}}
views=Views
visit=visit
visits=Visits
+webrtcPolicy=WebRTC IP Handling Policy
+webrtcPolicyExplanation=What do these policies mean?
wideURLbar=Use wide URL bar
widevine=Run Google Widevine
widevineSection=Google Widevine Support
diff --git a/app/renderer/components/preferences/advancedTab.js b/app/renderer/components/preferences/advancedTab.js
index 813973a2963..206b16f9a9e 100644
--- a/app/renderer/components/preferences/advancedTab.js
+++ b/app/renderer/components/preferences/advancedTab.js
@@ -11,6 +11,7 @@ const locale = require('../../../../js/l10n')
// Actions
const {getSetting} = require('../../../../js/settings')
+const aboutActions = require('../../../../js/about/aboutActions')
// Components
const {SettingsList, SettingItem, SettingCheckbox} = require('../common/settings')
@@ -19,6 +20,7 @@ const {DefaultSectionTitle} = require('../common/sectionTitle')
// Constants
const settings = require('../../../../js/constants/settings')
+const webrtcConstants = require('../../../../js/constants/webrtcConstants')
const {scaleSize} = require('../../../common/constants/toolbarUserInterfaceScale')
// Utils
@@ -153,6 +155,30 @@ class AdvancedTab extends ImmutableComponent {
/>
{this.spellCheckLanguages}
+
+
+
+ {
+ Object.keys(webrtcConstants)
+ .map((policy) => )
+ }
+
+
+