diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-10-02 11:25:04 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-10-04 09:54:18 +0200 |
| commit | ee849a47cd5bda0db5cafef15e4679d1ddd173d2 (patch) | |
| tree | faeecfe212216380d4b859fb62c49e0371da7647 /gui | |
| parent | b71ec360998a29f08c1220de627d078fac575b7c (diff) | |
| download | mullvadvpn-ee849a47cd5bda0db5cafef15e4679d1ddd173d2.tar.xz mullvadvpn-ee849a47cd5bda0db5cafef15e4679d1ddd173d2.zip | |
Remove setting to leak traffic to apple networks
Diffstat (limited to 'gui')
| -rw-r--r-- | gui/locales/messages.pot | 4 | ||||
| -rw-r--r-- | gui/src/main/daemon-rpc.ts | 4 | ||||
| -rw-r--r-- | gui/src/main/default-settings.ts | 1 | ||||
| -rw-r--r-- | gui/src/main/index.ts | 3 | ||||
| -rw-r--r-- | gui/src/main/platform-version.ts | 15 | ||||
| -rw-r--r-- | gui/src/main/settings.ts | 6 | ||||
| -rw-r--r-- | gui/src/renderer/app.tsx | 4 | ||||
| -rw-r--r-- | gui/src/renderer/components/Settings.tsx | 68 | ||||
| -rw-r--r-- | gui/src/renderer/redux/settings/actions.ts | 14 | ||||
| -rw-r--r-- | gui/src/renderer/redux/settings/reducers.ts | 8 | ||||
| -rw-r--r-- | gui/src/renderer/redux/userinterface/actions.ts | 16 | ||||
| -rw-r--r-- | gui/src/renderer/redux/userinterface/reducers.ts | 8 | ||||
| -rw-r--r-- | gui/src/shared/daemon-rpc-types.ts | 1 | ||||
| -rw-r--r-- | gui/src/shared/ipc-schema.ts | 2 | ||||
| -rw-r--r-- | gui/test/e2e/setup/main.ts | 1 |
15 files changed, 7 insertions, 148 deletions
diff --git a/gui/locales/messages.pot b/gui/locales/messages.pot index b60044134e..e9ef237a3a 100644 --- a/gui/locales/messages.pot +++ b/gui/locales/messages.pot @@ -1535,10 +1535,6 @@ msgid "Support" msgstr "" msgctxt "settings-view" -msgid "This a temporary fix and we are currently working on a long-term solution." -msgstr "" - -msgctxt "settings-view" msgid "Update available. Install the latest app version to stay up to date." msgstr "" diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts index 76b7dcb3f6..c504efe2b9 100644 --- a/gui/src/main/daemon-rpc.ts +++ b/gui/src/main/daemon-rpc.ts @@ -421,10 +421,6 @@ export class DaemonRpc extends GrpcClient { await this.call<grpcTypes.DnsOptions, Empty>(this.client.setDnsOptions, dnsOptions); } - public async setAppleServicesBypass(enabled: boolean): Promise<void> { - await this.callBool<Empty>(this.client.setAppleServicesBypass, enabled); - } - public async getVersionInfo(): Promise<IAppVersionInfo> { const response = await this.callEmpty<grpcTypes.AppVersionInfo>(this.client.getVersionInfo); return response.toObject(); diff --git a/gui/src/main/default-settings.ts b/gui/src/main/default-settings.ts index 62f60cf65b..e11a7434e1 100644 --- a/gui/src/main/default-settings.ts +++ b/gui/src/main/default-settings.ts @@ -81,7 +81,6 @@ export function getDefaultSettings(): ISettings { customLists: [], apiAccessMethods: getDefaultApiAccessMethods(), relayOverrides: [], - appleServicesBypass: false, }; } diff --git a/gui/src/main/index.ts b/gui/src/main/index.ts index 3eb0117ffa..400fe39d2a 100644 --- a/gui/src/main/index.ts +++ b/gui/src/main/index.ts @@ -56,7 +56,7 @@ import NotificationController, { NotificationControllerDelegate, NotificationSender, } from './notification-controller'; -import { isMacOs13OrNewer, isMacOs14p6OrNewer } from './platform-version'; +import { isMacOs13OrNewer } from './platform-version'; import * as problemReport from './problem-report'; import { resolveBin } from './proc'; import ReconnectionBackoff from './reconnection-backoff'; @@ -775,7 +775,6 @@ class ApplicationMain navigationHistory: this.navigationHistory, currentApiAccessMethod: this.currentApiAccessMethod, isMacOs13OrNewer: isMacOs13OrNewer(), - isMacOs14p6OrNewer: isMacOs14p6OrNewer(), })); IpcMainEventChannel.map.handleGetData(async () => ({ diff --git a/gui/src/main/platform-version.ts b/gui/src/main/platform-version.ts index 9b483fed65..027434d8d9 100644 --- a/gui/src/main/platform-version.ts +++ b/gui/src/main/platform-version.ts @@ -1,31 +1,24 @@ import os from 'os'; -export function isMacOs11OrNewer(): boolean { +export function isMacOs11OrNewer() { const [major] = parseVersion(); return process.platform === 'darwin' && major >= 20; } -export function isMacOs13OrNewer(): boolean { +export function isMacOs13OrNewer() { const [major] = parseVersion(); return process.platform === 'darwin' && major >= 22; } -export function isMacOs14p6OrNewer(): boolean { - const [major, minor] = parseVersion(); - const darwin24 = major >= 24; - const darwin236 = major == 23 && minor >= 6; // 23.6 is used by macOS 14.6 - return process.platform === 'darwin' && (darwin236 || darwin24); -} - // Windows 11 has the internal version 10.0.22000+. -export function isWindows11OrNewer(): boolean { +export function isWindows11OrNewer() { const [major, minor, patch] = parseVersion(); return ( process.platform === 'win32' && (major > 10 || (major === 10 && (minor > 0 || patch >= 22000))) ); } -function parseVersion(): number[] { +function parseVersion() { return os .release() .split('.') diff --git a/gui/src/main/settings.ts b/gui/src/main/settings.ts index d53219ec6d..03537ba581 100644 --- a/gui/src/main/settings.ts +++ b/gui/src/main/settings.ts @@ -72,9 +72,6 @@ export default class Settings implements Readonly<ISettings> { IpcMainEventChannel.settings.handleSetDnsOptions((dns) => { return this.daemonRpc.setDnsOptions(dns); }); - IpcMainEventChannel.settings.handleSetAppleServicesBypass((enabled) => { - return this.daemonRpc.setAppleServicesBypass(enabled); - }); IpcMainEventChannel.autoStart.handleSet((autoStart: boolean) => { return this.setAutoStart(autoStart); }); @@ -190,9 +187,6 @@ export default class Settings implements Readonly<ISettings> { public get relayOverrides() { return this.settingsValue.relayOverrides; } - public get appleServicesBypass() { - return this.settingsValue.appleServicesBypass; - } public get gui() { return this.guiSettings; diff --git a/gui/src/renderer/app.tsx b/gui/src/renderer/app.tsx index 09c84ea673..6c40b0e908 100644 --- a/gui/src/renderer/app.tsx +++ b/gui/src/renderer/app.tsx @@ -246,7 +246,6 @@ export default class AppRenderer { this.setChangelog(initialState.changelog, initialState.forceShowChanges); this.setCurrentApiAccessMethod(initialState.currentApiAccessMethod); this.reduxActions.userInterface.setIsMacOs13OrNewer(initialState.isMacOs13OrNewer); - this.reduxActions.userInterface.setIsMacOs14p6OrNewer(initialState.isMacOs14p6OrNewer); if (initialState.macOsScrollbarVisibility !== undefined) { this.reduxActions.userInterface.setMacOsScrollbarVisibility( @@ -325,8 +324,6 @@ export default class AppRenderer { IpcRendererEventChannel.settings.updateBridgeSettings(bridgeSettings); public setDnsOptions = (dnsOptions: IDnsOptions) => IpcRendererEventChannel.settings.setDnsOptions(dnsOptions); - public setAppleServicesBypass = (enabled: boolean) => - IpcRendererEventChannel.settings.setAppleServicesBypass(enabled); public clearAccountHistory = () => IpcRendererEventChannel.accountHistory.clear(); public setAutoConnect = (value: boolean) => IpcRendererEventChannel.guiSettings.setAutoConnect(value); @@ -832,7 +829,6 @@ export default class AppRenderer { reduxSettings.updateWireguardDaita(newSettings.tunnelOptions.wireguard.daita); reduxSettings.updateBridgeState(newSettings.bridgeState); reduxSettings.updateDnsOptions(newSettings.tunnelOptions.dns); - reduxSettings.updateAppleServicesBypass(newSettings.appleServicesBypass); reduxSettings.updateSplitTunnelingState(newSettings.splitTunnel.enableExclusions); reduxSettings.updateObfuscationSettings(newSettings.obfuscationSettings); reduxSettings.updateCustomLists(newSettings.customLists); diff --git a/gui/src/renderer/components/Settings.tsx b/gui/src/renderer/components/Settings.tsx index d76ebb242e..0a691d340f 100644 --- a/gui/src/renderer/components/Settings.tsx +++ b/gui/src/renderer/components/Settings.tsx @@ -7,20 +7,10 @@ import { useAppContext } from '../context'; import { useHistory } from '../lib/history'; import { RoutePath } from '../lib/routes'; import { useSelector } from '../redux/store'; -import { - AriaDescribed, - AriaDescription, - AriaDescriptionGroup, - AriaDetails, - AriaInput, - AriaInputGroup, - AriaLabel, -} from './AriaGroup'; +import { AriaDescribed, AriaDescription, AriaDescriptionGroup } from './AriaGroup'; import * as Cell from './cell'; -import InfoButton from './InfoButton'; import { BackAction } from './KeyboardNavigation'; import { Layout, SettingsContainer } from './Layout'; -import { ModalMessage } from './Modal'; import { NavigationBar, NavigationContainer, NavigationItems, TitleBarItem } from './NavigationBar'; import SettingsHeader, { HeaderTitle } from './SettingsHeader'; import { @@ -38,8 +28,6 @@ export default function Support() { const connectedToDaemon = useSelector((state) => state.userInterface.connectedToDaemon); const isMacOs13OrNewer = useSelector((state) => state.userInterface.isMacOs13OrNewer); - const isMacOs14p6OrNewer = useSelector((state) => state.userInterface.isMacOs14p6OrNewer); - const showSubSettings = loginState.type === 'ok' && connectedToDaemon; const showSplitTunneling = window.env.platform !== 'darwin' || isMacOs13OrNewer; @@ -91,12 +79,6 @@ export default function Support() { <ApiAccessMethodsButton /> </Cell.Group> - {isMacOs14p6OrNewer ? ( - <Cell.Group> - <AppleServicesBypass /> - </Cell.Group> - ) : null} - <Cell.Group> <SupportButton /> <AppVersionButton /> @@ -283,54 +265,6 @@ function SupportButton() { ); } -function AppleServicesBypass() { - const { setAppleServicesBypass } = useAppContext(); - const appleServicesBypass = useSelector((state) => state.settings.appleServicesBypass); - - return ( - <AriaInputGroup> - <Cell.Container> - <AriaLabel> - <Cell.InputLabel> - {messages.pgettext('settings-view', 'Apple services bypass')} - </Cell.InputLabel> - </AriaLabel> - <AriaDetails> - <InfoButton> - <ModalMessage> - {messages.pgettext( - 'settings-view', - 'Some Apple services have an issue where the network settings set by Mullvad get ignored, this in turn blocks certain apps.', - )} - </ModalMessage> - <ModalMessage> - {messages.pgettext( - 'settings-view', - 'Enabling this setting allows traffic to specific Apple-owned networks to go outside of the VPN tunnel, allowing services like iMessage and FaceTime to work whilst using Mullvad.', - )} - </ModalMessage> - <ModalMessage> - {messages.pgettext( - 'settings-view', - 'Attention: this traffic will go outside of the VPN tunnel. Any application that tries to can bypass the VPN tunnel and send traffic to these Apple networks.', - )} - </ModalMessage> - <ModalMessage> - {messages.pgettext( - 'settings-view', - 'This a temporary fix and we are currently working on a long-term solution.', - )} - </ModalMessage> - </InfoButton> - </AriaDetails> - <AriaInput> - <Cell.Switch isOn={appleServicesBypass} onChange={setAppleServicesBypass} /> - </AriaInput> - </Cell.Container> - </AriaInputGroup> - ); -} - function DebugButton() { const history = useHistory(); const navigate = useCallback(() => history.push(RoutePath.debug), [history]); diff --git a/gui/src/renderer/redux/settings/actions.ts b/gui/src/renderer/redux/settings/actions.ts index 80ac3707c1..d2a3fb1c4a 100644 --- a/gui/src/renderer/redux/settings/actions.ts +++ b/gui/src/renderer/redux/settings/actions.ts @@ -93,11 +93,6 @@ export interface IUpdateDnsOptionsAction { dns: IDnsOptions; } -export interface ISetAppleServicesBypass { - type: 'SET_APPLE_SERVICES_BYPASS'; - enabled: boolean; -} - export interface IUpdateSplitTunnelingStateAction { type: 'UPDATE_SPLIT_TUNNELING_STATE'; enabled: boolean; @@ -150,7 +145,6 @@ export type SettingsAction = | IUpdateWireguardDaitaAction | IUpdateAutoStartAction | IUpdateDnsOptionsAction - | ISetAppleServicesBypass | IUpdateSplitTunnelingStateAction | ISetSplitTunnelingApplicationsAction | ISetObfuscationSettings @@ -279,13 +273,6 @@ function updateDnsOptions(dns: IDnsOptions): IUpdateDnsOptionsAction { }; } -function updateAppleServicesBypass(enabled: boolean): ISetAppleServicesBypass { - return { - type: 'SET_APPLE_SERVICES_BYPASS', - enabled, - }; -} - function updateSplitTunnelingState(enabled: boolean): IUpdateSplitTunnelingStateAction { return { type: 'UPDATE_SPLIT_TUNNELING_STATE', @@ -356,7 +343,6 @@ export default { updateWireguardDaita, updateAutoStart, updateDnsOptions, - updateAppleServicesBypass, updateSplitTunnelingState, setSplitTunnelingApplications, updateObfuscationSettings, diff --git a/gui/src/renderer/redux/settings/reducers.ts b/gui/src/renderer/redux/settings/reducers.ts index 7f806c248c..6eb595467b 100644 --- a/gui/src/renderer/redux/settings/reducers.ts +++ b/gui/src/renderer/redux/settings/reducers.ts @@ -114,7 +114,6 @@ export interface ISettingsReduxState { daita?: IDaitaSettings; }; dns: IDnsOptions; - appleServicesBypass: boolean; splitTunneling: boolean; splitTunnelingApplications: ISplitTunnelingApplication[]; obfuscationSettings: ObfuscationSettings; @@ -182,7 +181,6 @@ const initialState: ISettingsReduxState = { addresses: [], }, }, - appleServicesBypass: false, splitTunneling: false, splitTunnelingApplications: [], obfuscationSettings: { @@ -312,12 +310,6 @@ export default function ( dns: action.dns, }; - case 'SET_APPLE_SERVICES_BYPASS': - return { - ...state, - appleServicesBypass: action.enabled, - }; - case 'UPDATE_SPLIT_TUNNELING_STATE': return { ...state, diff --git a/gui/src/renderer/redux/userinterface/actions.ts b/gui/src/renderer/redux/userinterface/actions.ts index a5ee138464..238835318e 100644 --- a/gui/src/renderer/redux/userinterface/actions.ts +++ b/gui/src/renderer/redux/userinterface/actions.ts @@ -61,11 +61,6 @@ export interface ISetIsMacOs13OrNewer { isMacOs13OrNewer: boolean; } -export interface ISetIsMacOs14p6OrNewer { - type: 'SET_IS_MACOS14_6_OR_NEWER'; - isMacOs14p6OrNewer: boolean; -} - export type UserInterfaceAction = | IUpdateLocaleAction | IUpdateWindowArrowPositionAction @@ -78,8 +73,7 @@ export type UserInterfaceAction = | ISetForceShowChanges | ISetIsPerformingPostUpgrade | ISetSelectLocationView - | ISetIsMacOs13OrNewer - | ISetIsMacOs14p6OrNewer; + | ISetIsMacOs13OrNewer; function updateLocale(locale: string): IUpdateLocaleAction { return { @@ -166,13 +160,6 @@ function setIsMacOs13OrNewer(isMacOs13OrNewer: boolean): ISetIsMacOs13OrNewer { }; } -function setIsMacOs14p6OrNewer(isMacOs14p6OrNewer: boolean): ISetIsMacOs14p6OrNewer { - return { - type: 'SET_IS_MACOS14_6_OR_NEWER', - isMacOs14p6OrNewer, - }; -} - export default { updateLocale, updateWindowArrowPosition, @@ -186,5 +173,4 @@ export default { setIsPerformingPostUpgrade, setSelectLocationView, setIsMacOs13OrNewer, - setIsMacOs14p6OrNewer, }; diff --git a/gui/src/renderer/redux/userinterface/reducers.ts b/gui/src/renderer/redux/userinterface/reducers.ts index b245522cec..89427e9b06 100644 --- a/gui/src/renderer/redux/userinterface/reducers.ts +++ b/gui/src/renderer/redux/userinterface/reducers.ts @@ -16,7 +16,6 @@ export interface IUserInterfaceReduxState { isPerformingPostUpgrade: boolean; selectLocationView: LocationType; isMacOs13OrNewer: boolean; - isMacOs14p6OrNewer: boolean; } const initialState: IUserInterfaceReduxState = { @@ -31,7 +30,6 @@ const initialState: IUserInterfaceReduxState = { isPerformingPostUpgrade: false, selectLocationView: LocationType.exit, isMacOs13OrNewer: true, - isMacOs14p6OrNewer: true, }; export default function ( @@ -90,12 +88,6 @@ export default function ( isMacOs13OrNewer: action.isMacOs13OrNewer, }; - case 'SET_IS_MACOS14_6_OR_NEWER': - return { - ...state, - isMacOs14p6OrNewer: action.isMacOs14p6OrNewer, - }; - default: return state; } diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts index dcd12d8ccb..a22021a1d0 100644 --- a/gui/src/shared/daemon-rpc-types.ts +++ b/gui/src/shared/daemon-rpc-types.ts @@ -439,7 +439,6 @@ export interface ISettings { customLists: CustomLists; apiAccessMethods: ApiAccessMethodSettings; relayOverrides: Array<RelayOverride>; - appleServicesBypass: boolean; } export type BridgeState = 'auto' | 'on' | 'off'; diff --git a/gui/src/shared/ipc-schema.ts b/gui/src/shared/ipc-schema.ts index ef3bb44c7b..b10c79623e 100644 --- a/gui/src/shared/ipc-schema.ts +++ b/gui/src/shared/ipc-schema.ts @@ -77,7 +77,6 @@ export interface IAppStateSnapshot { navigationHistory?: IHistoryObject; currentApiAccessMethod?: AccessMethodSetting; isMacOs13OrNewer: boolean; - isMacOs14p6OrNewer: boolean; } // The different types of requests are: @@ -187,7 +186,6 @@ export const ipcSchema = { setRelaySettings: invoke<RelaySettings, void>(), updateBridgeSettings: invoke<BridgeSettings, void>(), setDnsOptions: invoke<IDnsOptions, void>(), - setAppleServicesBypass: invoke<boolean, void>(), setObfuscationSettings: invoke<ObfuscationSettings, void>(), addApiAccessMethod: invoke<NewAccessMethodSetting, string>(), updateApiAccessMethod: invoke<AccessMethodSetting, void>(), diff --git a/gui/test/e2e/setup/main.ts b/gui/test/e2e/setup/main.ts index e344a53b90..d8f3ceee48 100644 --- a/gui/test/e2e/setup/main.ts +++ b/gui/test/e2e/setup/main.ts @@ -175,7 +175,6 @@ class ApplicationMain { navigationHistory: undefined, scrollPositions: {}, isMacOs13OrNewer: true, - isMacOs14p6OrNewer: true, })); IpcMainEventChannel.guiSettings.handleSetPreferredLocale((locale) => { |
