summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2023-09-29 13:49:06 +0200
committerDavid Lönnhager <david.l@mullvad.net>2023-09-29 14:34:59 +0200
commite67ded577e10355b115b78600924bba797afabc9 (patch)
tree37867cd80dda649ce3aba9f970f19ab618e15745
parent4065b91a915853548f3ba4799e5b01e40381cc4d (diff)
downloadmullvadvpn-e67ded577e10355b115b78600924bba797afabc9.tar.xz
mullvadvpn-e67ded577e10355b115b78600924bba797afabc9.zip
Add social media blocking server
-rw-r--r--gui/locales/messages.pot5
-rw-r--r--gui/src/main/daemon-rpc.ts2
-rw-r--r--gui/src/main/default-settings.ts1
-rw-r--r--gui/src/renderer/components/CustomDnsSettings.tsx3
-rw-r--r--gui/src/renderer/components/VpnSettings.tsx26
-rw-r--r--gui/src/renderer/redux/settings/reducers.ts1
-rw-r--r--gui/src/shared/daemon-rpc-types.ts1
7 files changed, 38 insertions, 1 deletions
diff --git a/gui/locales/messages.pot b/gui/locales/messages.pot
index b8b5552ecd..26035a4321 100644
--- a/gui/locales/messages.pot
+++ b/gui/locales/messages.pot
@@ -1453,6 +1453,11 @@ msgctxt "vpn-settings-view"
msgid "Malware"
msgstr ""
+#. Label for settings that enables block of social media.
+msgctxt "vpn-settings-view"
+msgid "Social media"
+msgstr ""
+
msgctxt "vpn-settings-view"
msgid "The app’s built-in kill switch is always on. This setting will additionally block the internet if clicking Disconnect or Quit."
msgstr ""
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts
index ed9fb77b48..fbaa2fe9d9 100644
--- a/gui/src/main/daemon-rpc.ts
+++ b/gui/src/main/daemon-rpc.ts
@@ -539,6 +539,7 @@ export class DaemonRpc {
defaultOptions.setBlockMalware(dns.defaultOptions.blockMalware);
defaultOptions.setBlockAdultContent(dns.defaultOptions.blockAdultContent);
defaultOptions.setBlockGambling(dns.defaultOptions.blockGambling);
+ defaultOptions.setBlockSocialMedia(dns.defaultOptions.blockSocialMedia);
dnsOptions.setDefaultOptions(defaultOptions);
const customOptions = new grpcTypes.CustomDnsOptions();
@@ -1272,6 +1273,7 @@ function convertFromTunnelOptions(tunnelOptions: grpcTypes.TunnelOptions.AsObjec
blockMalware: tunnelOptions.dnsOptions?.defaultOptions?.blockMalware ?? false,
blockAdultContent: tunnelOptions.dnsOptions?.defaultOptions?.blockAdultContent ?? false,
blockGambling: tunnelOptions.dnsOptions?.defaultOptions?.blockGambling ?? false,
+ blockSocialMedia: tunnelOptions.dnsOptions?.defaultOptions?.blockSocialMedia ?? false,
},
customOptions: {
addresses: tunnelOptions.dnsOptions?.customOptions?.addressesList ?? [],
diff --git a/gui/src/main/default-settings.ts b/gui/src/main/default-settings.ts
index 9989575f80..40c75042f8 100644
--- a/gui/src/main/default-settings.ts
+++ b/gui/src/main/default-settings.ts
@@ -55,6 +55,7 @@ export function getDefaultSettings(): ISettings {
blockMalware: false,
blockAdultContent: false,
blockGambling: false,
+ blockSocialMedia: false,
},
customOptions: {
addresses: [],
diff --git a/gui/src/renderer/components/CustomDnsSettings.tsx b/gui/src/renderer/components/CustomDnsSettings.tsx
index fbf7d3dce0..824e010970 100644
--- a/gui/src/renderer/components/CustomDnsSettings.tsx
+++ b/gui/src/renderer/components/CustomDnsSettings.tsx
@@ -52,7 +52,8 @@ export default function CustomDnsSettings() {
!dns.defaultOptions.blockTrackers &&
!dns.defaultOptions.blockMalware &&
!dns.defaultOptions.blockAdultContent &&
- !dns.defaultOptions.blockGambling),
+ !dns.defaultOptions.blockGambling &&
+ !dns.defaultOptions.blockSocialMedia),
[dns],
);
diff --git a/gui/src/renderer/components/VpnSettings.tsx b/gui/src/renderer/components/VpnSettings.tsx
index 676ae4f484..13a4503d71 100644
--- a/gui/src/renderer/components/VpnSettings.tsx
+++ b/gui/src/renderer/components/VpnSettings.tsx
@@ -285,6 +285,7 @@ function DnsBlockers() {
<BlockMalware />
<BlockGambling />
<BlockAdultContent />
+ <BlockSocialMedia />
</Cell.ExpandableSection>
);
}
@@ -420,6 +421,31 @@ function BlockAdultContent() {
/>
</AriaInput>
</StyledSectionItem>
+ </AriaInputGroup>
+ );
+}
+
+function BlockSocialMedia() {
+ const [dns, setBlockSocialMedia] = useDns('blockSocialMedia');
+
+ return (
+ <AriaInputGroup>
+ <StyledSectionItem disabled={dns.state === 'custom'}>
+ <AriaLabel>
+ <Cell.InputLabel>
+ {
+ // TRANSLATORS: Label for settings that enables block of social media.
+ messages.pgettext('vpn-settings-view', 'Social media')
+ }
+ </Cell.InputLabel>
+ </AriaLabel>
+ <AriaInput>
+ <Cell.Switch
+ isOn={dns.state === 'default' && dns.defaultOptions.blockSocialMedia}
+ onChange={setBlockSocialMedia}
+ />
+ </AriaInput>
+ </StyledSectionItem>
{dns.state === 'custom' && <CustomDnsEnabledFooter />}
</AriaInputGroup>
);
diff --git a/gui/src/renderer/redux/settings/reducers.ts b/gui/src/renderer/redux/settings/reducers.ts
index 576253bb48..2030d70844 100644
--- a/gui/src/renderer/redux/settings/reducers.ts
+++ b/gui/src/renderer/redux/settings/reducers.ts
@@ -155,6 +155,7 @@ const initialState: ISettingsReduxState = {
blockMalware: false,
blockAdultContent: false,
blockGambling: false,
+ blockSocialMedia: false,
},
customOptions: {
addresses: [],
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts
index a336d00d27..9af927070a 100644
--- a/gui/src/shared/daemon-rpc-types.ts
+++ b/gui/src/shared/daemon-rpc-types.ts
@@ -328,6 +328,7 @@ export interface IDnsOptions {
blockMalware: boolean;
blockAdultContent: boolean;
blockGambling: boolean;
+ blockSocialMedia: boolean;
};
}