-
Notifications
You must be signed in to change notification settings - Fork 11
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
VPN Domain exclusions (internal release) #3045
Conversation
import NetworkProtectionProxy | ||
|
||
protocol ExcludedDomainsViewModel { | ||
var domains: [String] { get } |
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.
Maybe we can use a Set for this instead of an Array?
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.
I considered that - the issue is that the underlying data in VPNSettings is an Array as we can't store a Set
. I'm not sure this will work well if we change the structure.
Will explore in follow-up work if you don't mind since it's a detail.
AddExcludedDomainView(title: "Add Website Exclusion", buttonsState: .compressed, cancelActionTitle: "Cancel", cancelAction: { dismiss in | ||
|
||
dismiss() | ||
}, defaultActionTitle: "Add Website") { [weak self] domain, dismiss in |
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.
Missing localizations
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.
AFAIK we're currently not localizing the VPN. I'll leave as-is but if this is wrong, let me know and we can follow-up.
LocalPackages/NetworkProtectionMac/Sources/VPNAppLauncher/AppLauncher+VPNUIActionHandler.swift
Outdated
Show resolved
Hide resolved
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.
Testing steps work well, thanks for the detailed instruction. I'm still going through this, will add more comments later.
I think moving the refactoring into a separate PR would've made this more focused and easier to follow (e.g. the VPNUIActionHandler extraction, simplification of the popover initializer, update to the debug info view, etc)
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.
Not in the scope of this PR, but we should probably adopt similar domain processing logic from FireproofDomains
...lPackages/NetworkProtectionMac/Sources/NetworkProtectionProxy/TransparentProxyProvider.swift
Outdated
Show resolved
Hide resolved
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.
No blockers, mostly nits. Let's get this in internal users' hands 🙌
Task/Issue URL: https://app.asana.com/0/0/1207936340790549/f iOS PR: duckduckgo/iOS#3164 macOS PR: duckduckgo/macos-browser#3045 What kind of version bump will this require?: Patch ## Description Adds BSK support for implements domain exclusions in macOS for internal users only.
… iOS. (#3164) Task/Issue URL: https://app.asana.com/0/0/1207936340790549/f BSK PR: duckduckgo/BrowserServicesKit#918 macOS PR: duckduckgo/macos-browser#3045 ## Description Integrates latest macOS BSK changes for supporting domain exclusions.
Task/Issue URL: https://app.asana.com/0/0/1207936340790549/f iOS PR: duckduckgo/iOS#3164 macOS PR: duckduckgo/macos-browser#3045 What kind of version bump will this require?: Patch ## Description Adds BSK support for implements domain exclusions in macOS for internal users only.
… iOS. (#3164) Task/Issue URL: https://app.asana.com/0/0/1207936340790549/f BSK PR: duckduckgo/BrowserServicesKit#918 macOS PR: duckduckgo/macos-browser#3045 ## Description Integrates latest macOS BSK changes for supporting domain exclusions.
Task/Issue URL: https://app.asana.com/0/0/1207936340790549/f BSK PR: duckduckgo/BrowserServicesKit#918 iOS PR: duckduckgo/iOS#3164 ## Description Implements domain exclusions for internal users only.
Task/Issue URL: https://app.asana.com/0/0/1207936340790549/f
BSK PR: duckduckgo/BrowserServicesKit#918
iOS PR: duckduckgo/iOS#3164
Description
Implements domain exclusions for internal users only.
Testing
The tests were ordered in a way to try and make it easy to run them sequentially.
Make sure external users can't access domain exclusions
Make sure internal users can access domain exclusions through the in-app status view
Make sure internal users can access domain exclusions through settings
Definition of Done:
Internal references:
Pull Request Review Checklist
Software Engineering Expectations
Technical Design Template
Pull Request Documentation