-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remediate TunnelVision, TunnelCrack and fix "Exclude Local Networks" #3422
Conversation
…apter don't do it automatically
@@ -41,6 +41,9 @@ public enum FeatureFlag: String { | |||
|
|||
/// https://app.asana.com/0/72649045549333/1208231259093710/f | |||
case networkProtectionUserTips | |||
|
|||
/// /// https://app.asana.com/0/72649045549333/1208617860225199/f | |||
case networkProtectionEnforceRoutes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New remote feature flag for the enforce routes changes.
.targetting(self) | ||
|
||
NSMenuItem(title: "Remove VPN configuration", action: #selector(NetworkProtectionDebugMenu.removeVPNConfiguration(_:))) | ||
NSMenuItem(title: "Reset Site Issue Alert", action: #selector(NetworkProtectionDebugMenu.resetSiteIssuesAlert(_:))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was moved to organize the reset options: first go the general reset options, then single components, then subfeatures.
DuckDuckGo/NetworkProtection/AppTargets/BothAppTargets/NetworkProtectionDebugMenu.swift
Outdated
Show resolved
Hide resolved
Task { | ||
try await Task.sleep(interval: 0.1) | ||
try await debugUtilities.restartAdapter() | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wait a bit then restart the adapter so changes are applied. If we try to reset immediately the changes don't make it to the system extension in time.
DuckDuckGo/NetworkProtection/AppTargets/BothAppTargets/NetworkProtectionTunnelController.swift
Show resolved
Hide resolved
@@ -349,23 +349,19 @@ final class NetworkProtectionTunnelController: TunnelController, TunnelSessionPr | |||
protocolConfiguration.providerBundleIdentifier = Bundle.tunnelExtensionBundleID | |||
protocolConfiguration.providerConfiguration = [ | |||
NetworkProtectionOptionKey.defaultPixelHeaders: APIRequest.Headers().httpHeaders, | |||
NetworkProtectionOptionKey.includedRoutes: includedRoutes().map(\.stringRepresentation) as NSArray |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're no longer going to pass routes. The extension will calculate the appropriate routes based on all the settings.
DuckDuckGo/NetworkProtection/AppTargets/BothAppTargets/NetworkProtectionTunnelController.swift
Show resolved
Hide resolved
DuckDuckGo/NetworkProtection/AppTargets/BothAppTargets/NetworkProtectionTunnelController.swift
Show resolved
Hide resolved
DuckDuckGo/NetworkProtection/AppTargets/BothAppTargets/NetworkProtectionTunnelController.swift
Show resolved
Hide resolved
DuckDuckGo/NetworkProtection/AppTargets/BothAppTargets/NetworkProtectionTunnelController.swift
Outdated
Show resolved
Hide resolved
LocalPackages/FeatureFlags/Sources/FeatureFlags/FeatureFlag.swift
Outdated
Show resolved
Hide resolved
Co-authored-by: Sam Symons <[email protected]>
…s-browser into diego/fix-tunnelvision-2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fairly straightforward, and well implemented. Tested the build, seems to work as expected with the feature flagging too.
…1039) Task/Issue URL: https://app.asana.com/0/1206580121312550/1208686409805161/f Tech Design URL: https://app.asana.com/0/481882893211075/1208643192597095/f iOS PR: duckduckgo/iOS#3460 macOS PR: duckduckgo/macos-browser#3422 What kind of version bump will this require?: Major ## Description Remediate TunnelVision, TunnelCrack and fix "Exclude Local Networks".
…3460) Task/Issue URL: https://app.asana.com/0/1206580121312550/1208686409805161/f Tech Design URL: https://app.asana.com/0/481882893211075/1208643192597095/f macOS PR: duckduckgo/macos-browser#3422 BSK PR: duckduckgo/BrowserServicesKit#1039 ## Description Remediate TunnelVision, TunnelCrack and fix "Exclude Local Networks".
# By Dax the Duck (5) and others # Via GitHub (3) and Juan Manuel Pereira (1) * main: Remediate TunnelVision, TunnelCrack and fix "Exclude Local Networks" (#3422) Sync: Send pixels for account removal + decoding issues (#3530) Send success pixel on successful data import (#3437) Bump version to 1.114.0 (304) Set marketing version to 1.114.0 Update embedded files Introduce report broken site prompt on triple refresh page (#3523) add state for import (#3485) Bump version to 1.113.0 (303) Do not use suggestion view controller visibility to set suggestion (#3529) Fix SwiftLint Fix SwiftLint Update phishing protection datasets to 1686837 (#3494) Bump version to 1.113.0 (302) Update permission string for location popup (#3526) Send auth state with sync unexpectedly disabled pixel (#3521) # Conflicts: # DuckDuckGo.xcodeproj/project.pbxproj # DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Task/Issue URL: https://app.asana.com/0/1206580121312550/1208686409805161/f
Tech Design URL: https://app.asana.com/0/481882893211075/1208643192597095/f
iOS PR: iOS PR: duckduckgo/iOS#3460
BSK PR: duckduckgo/BrowserServicesKit#1039
Description
Remediate TunnelVision, TunnelCrack and fix "Exclude Local Networks".
Testing
Test 1: External Users aren't affected
Prerequisites:
Steps:
excludeLocalNetworks
, because whenenforceRoutes
is OFF, you'll be able to access your local network devices, but when it's ON you won't be able to access those devices.Test 2: Internal Users get new routing
Prerequisites:
enforceRoutes
remote feature flag is ON.Steps:
2. Star the VPN (the first time you start the VPN as an internal user, "Enforce routes" should be enabled).
3. Make sure you can access the internet.
4. Make sure you cannot access local devices.
Test 3: Internal Users can override enforce routes.
Prerequisites:
Steps:
Test 4: TunnelVision fixed when enforceRoutes is ON.
Prerequisites:
Steps:
Test 5: TunnelCrack blocks all VPN traffic.
Prerequisites:
Steps:
Please note: I'm suggesting we show a warning here, but this will be tackled as a follow-up task.
Definition of Done:
Internal references:
Pull Request Review Checklist
Software Engineering Expectations
Technical Design Template
Pull Request Documentation