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) => +
+