diff options
-rw-r--r-- | platform/chromium/vapi-background.js | 9 | ||||
-rw-r--r-- | platform/firefox/vapi-background.js | 10 | ||||
-rw-r--r-- | src/_locales/en/messages.json | 4 | ||||
-rw-r--r-- | src/js/background.js | 3 | ||||
-rw-r--r-- | src/js/settings.js | 6 | ||||
-rw-r--r-- | src/js/start.js | 3 | ||||
-rw-r--r-- | src/js/ublock.js | 3 | ||||
-rw-r--r-- | src/settings.html | 1 |
8 files changed, 37 insertions, 2 deletions
diff --git a/platform/chromium/vapi-background.js b/platform/chromium/vapi-background.js index 3d0ccaf..9413033 100644 --- a/platform/chromium/vapi-background.js +++ b/platform/chromium/vapi-background.js @@ -85,6 +85,15 @@ vAPI.browserSettings = { }); break; + case 'webrtcIPAddress': + if ( typeof chrome.privacy.network.webRTCMultipleRoutesEnabled === 'object' ) { + chrome.privacy.network.webRTCMultipleRoutesEnabled.set({ + value: !!details[setting], + scope: 'regular' + }); + } + break; + default: break; } diff --git a/platform/firefox/vapi-background.js b/platform/firefox/vapi-background.js index 67fa567..3d73648 100644 --- a/platform/firefox/vapi-background.js +++ b/platform/firefox/vapi-background.js @@ -195,6 +195,16 @@ vAPI.browserSettings = { } break; + case 'webrtcIPAddress': + this.rememberOriginalValue('media.peerconnection', 'enabled'); + value = !!details[setting]; + if ( value === true ) { + this.clear('media.peerconnection', 'enabled'); + } else { + this.setBool('media.peerconnection', 'enabled', false); + } + break; + default: break; } diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 359154a..a26f4aa 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -183,6 +183,10 @@ "message":"Disable hyperlink auditing/beacon", "description":"English: " }, + "settingsWebRTCIPAddressHiddenPrompt":{ + "message":"Prevent WebRTC from leaking local IP address", + "description":"English: " + }, "settingsExperimentalPrompt":{ "message":"Enable experimental features (<a href='https:\/\/github.com\/gorhill\/uBlock\/wiki\/Experimental-features'>About<\/a>)", "description":"English: Enable experimental features" diff --git a/src/js/background.js b/src/js/background.js index 5d110c9..8c47c2a 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -65,7 +65,8 @@ return { parseAllABPHideFilters: true, prefetchingDisabled: true, requestLogMaxEntries: 1000, - showIconBadge: true + showIconBadge: true, + webrtcIPAddressHidden: false }, // https://github.com/chrisaljoudi/uBlock/issues/180 diff --git a/src/js/settings.js b/src/js/settings.js index 179a545..fdf1c25 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -204,6 +204,12 @@ var onUserSettingsReceived = function(details) { changeUserSettings('hyperlinkAuditingDisabled', this.checked); }); + uDom('#webrtc-ipaddress-hidden') + .prop('checked', details.webrtcIPAddressHidden === true) + .on('change', function(){ + changeUserSettings('webrtcIPAddressHidden', this.checked); + }); + uDom('#experimental-enabled') .prop('checked', details.experimentalEnabled === true) .on('change', function(){ diff --git a/src/js/start.js b/src/js/start.js index 1e882ca..c08d010 100644 --- a/src/js/start.js +++ b/src/js/start.js @@ -159,7 +159,8 @@ var onUserSettingsReady = function(fetched) { µb.contextMenu.toggle(userSettings.contextMenuEnabled); vAPI.browserSettings.set({ 'hyperlinkAuditing': !userSettings.hyperlinkAuditingDisabled, - 'prefetching': !userSettings.prefetchingDisabled + 'prefetching': !userSettings.prefetchingDisabled, + 'webrtcIPAddress': !userSettings.webrtcIPAddressHidden }); µb.permanentFirewall.fromString(fetched.dynamicFilteringString); diff --git a/src/js/ublock.js b/src/js/ublock.js index aa13d41..eeb5e05 100644 --- a/src/js/ublock.js +++ b/src/js/ublock.js @@ -279,6 +279,9 @@ var matchWhitelistDirective = function(url, hostname, directive) { case 'prefetchingDisabled': vAPI.browserSettings.set({ 'prefetching': !value }); break; + case 'webrtcIPAddressHidden': + vAPI.browserSettings.set({ 'webrtcIPAddress': !value }); + break; default: break; } diff --git a/src/settings.html b/src/settings.html index 07f8ff9..53f108e 100644 --- a/src/settings.html +++ b/src/settings.html @@ -19,6 +19,7 @@ <li class="subgroup"><span data-i18n="3pGroupPrivacy"></span><ul> <li><input id="prefetching-disabled" type="checkbox"><label data-i18n="settingsPrefetchingDisabledPrompt" for="prefetching-disabled"></label> <a class="fa info" href="https://wikipedia.org/wiki/Link_prefetching#Issues_and_criticisms" target="_blank"></a> <li><input id="hyperlink-auditing-disabled" type="checkbox"><label data-i18n="settingsHyperlinkAuditingDisabledPrompt" for="hyperlink-auditing-disabled"></label> <a class="fa info" href="http://www.wilderssecurity.com/threads/hyperlink-auditing-aka-a-ping-and-beacon-aka-navigator-sendbeacon.364904/" target="_blank"></a> + <li><input id="webrtc-ipaddress-hidden" type="checkbox"><label data-i18n="settingsWebRTCIPAddressHiddenPrompt" for="webrtc-ipaddress-hidden"></label> </ul> </ul> |