Skip to content
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

Display error messaging for cancelled subscriptions #2394

Merged
merged 115 commits into from
Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from 98 commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
d08b1f6
Point to BSK branch and make compile
graeme Feb 15, 2024
ef56ab2
Add basic hardcoded SubscriptionExpiredView
graeme Feb 19, 2024
77fa698
Show subscription expired prompt
graeme Feb 20, 2024
4b96312
Show expired entitlement notifications
graeme Feb 20, 2024
c71c7a8
wip
graeme Feb 23, 2024
b7b881b
wip
graeme Feb 26, 2024
8280c5a
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Feb 26, 2024
1d2744b
Get it compiling again
graeme Feb 27, 2024
52f17d4
Update to handle recent merge from Anh
graeme Feb 29, 2024
fed430b
Use subscription app group for AccountManager
graeme Feb 29, 2024
c00bbb1
Pull out AccountManager extension into file
graeme Feb 29, 2024
38a20b3
wip
graeme Feb 29, 2024
8b9fce7
Point to BSK commit
graeme Feb 29, 2024
2c48e94
Use subscription app group for AccountManager
graeme Feb 29, 2024
a322b65
Fix some stuff post-cherry-picking
graeme Feb 29, 2024
d068dff
Point to BSK commit with migration
graeme Mar 1, 2024
3102a55
Migrate access token
graeme Mar 1, 2024
0a2c615
Merge remote-tracking branch 'origin/main' into graeme/subscription-k…
graeme Mar 1, 2024
17612bf
Point to update BSK branch after main merge
graeme Mar 1, 2024
0299187
Merge branch 'graeme/subscription-keychain-sharing' into graeme/entit…
graeme Mar 1, 2024
2266042
Few fixes post merge of token branch
graeme Mar 1, 2024
4f0069c
wip
graeme Mar 5, 2024
0d92bdd
Point to updated BSK branch
graeme Mar 5, 2024
0072d39
Uncomment accidentally commented code
graeme Mar 5, 2024
8a1b8b6
Remove AccountManager from NetPTunnelController for now
graeme Mar 5, 2024
8838386
Merge branch 'main' into graeme/subscription-keychain-sharing
graeme Mar 5, 2024
9fda945
Revert change to xcsttrings
graeme Mar 6, 2024
01fb050
Merge branch 'main' into graeme/subscription-keychain-sharing
graeme Mar 6, 2024
32d9ec4
Remove accidental service env change
graeme Mar 6, 2024
6d1ed5f
Revert change to netP keychain group
graeme Mar 6, 2024
329b486
Merge branch 'graeme/subscription-keychain-sharing' into graeme/entit…
graeme Mar 6, 2024
cd0de7e
Subscription flag AccountManagerExtension
graeme Mar 6, 2024
6231a8e
Subscription flag AccountManagerExtension
graeme Mar 6, 2024
e4e6ccf
wip
graeme Mar 6, 2024
7116ef0
Remove Subscription reference from VPNAppStore
graeme Mar 6, 2024
3c47313
Merge branch 'graeme/subscription-keychain-sharing' into graeme/entit…
graeme Mar 6, 2024
1ebdf41
appGroup -> subscriptionAppGroup
graeme Mar 6, 2024
a562787
Merge branch 'graeme/subscription-keychain-sharing' into graeme/entit…
graeme Mar 6, 2024
3432ea7
Use UserDefaults for communicating entitlements validity
graeme Mar 6, 2024
984febe
Fix entitlements notification
graeme Mar 7, 2024
4bd9845
Properly enable SUBSCRIPTION flag
graeme Mar 7, 2024
423f4a9
Entitlements monitoring. It works. Lord be praised
graeme Mar 7, 2024
7f6fc74
Remove commented out code
graeme Mar 7, 2024
f15ddc7
Just some stuff that shoulda been committed...
graeme Mar 7, 2024
14e6012
Handle entitlements expiring removing VPN settings
graeme Mar 7, 2024
ee262e5
Add entitlements moniroting for app
graeme Mar 7, 2024
8297ace
Launch privacy pro page from status view
graeme Mar 7, 2024
85c556c
Tidy up var
graeme Mar 7, 2024
5beb8f4
Remove unneeded code
graeme Mar 7, 2024
87f58a4
Move user defaults observation to main thread
graeme Mar 7, 2024
89393ae
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 8, 2024
36f8ea3
Point to update BSK branch
graeme Mar 8, 2024
7ccfee5
Add Subscription flag to extensions
graeme Mar 8, 2024
b82f13d
Inject netP token store into accountmanager for entitlements check
graeme Mar 8, 2024
306dd22
Send notification from agent on entitlement expiry
graeme Mar 8, 2024
f24da6b
Make sure subs environment properly set up
graeme Mar 8, 2024
f914518
Remove unnecessary entitlementCheck injection
graeme Mar 12, 2024
cc5ef2a
Handle uninstall button action from expired prompt
graeme Mar 12, 2024
08c8079
Show uninstalled message on uninstall
graeme Mar 12, 2024
62d0617
Tidy up UD extension key declaration
graeme Mar 12, 2024
77ef34a
Adapt bouncer for subscriptions
graeme Mar 12, 2024
6d62ea0
Tidy up
graeme Mar 12, 2024
415d06d
Fix issue with bouncer
graeme Mar 12, 2024
bbe1995
Point to updated BSK version
graeme Mar 13, 2024
190f987
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 13, 2024
e003799
Point to updated BSK
graeme Mar 13, 2024
6acbc36
Update network extension code for new accountmanager changes
graeme Mar 13, 2024
d4005ae
Fix swiftlint issue
graeme Mar 13, 2024
79475fb
Fix tests
graeme Mar 13, 2024
edfcf21
Slight prompt view tidy up
graeme Mar 13, 2024
8274c5d
Fix prompt padding
graeme Mar 13, 2024
c55a1ae
No entitlements cache in macpackettunnelprovider
graeme Mar 13, 2024
bd67a2f
Define cache policy for AccountManager
graeme Mar 13, 2024
9f25b60
Wrap forgotten subscription code
graeme Mar 13, 2024
0143878
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 13, 2024
ca07f4c
Reduce expired view title font size
graeme Mar 13, 2024
ba1c474
Revert InfoPlist.xcstrings change
graeme Mar 14, 2024
88e71ac
Remove SUBSCRIPTION flag from app extension target
graeme Mar 14, 2024
cf4d0e2
Add SUBSCRIPTION flag to the dev ID vpn targets
graeme Mar 14, 2024
e41ff3e
Shorten expiry notification title to fit UI
graeme Mar 14, 2024
2264443
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 14, 2024
ea50ef5
Point to BSK branch
graeme Mar 14, 2024
4862c41
Fixes after difficult merge conflicts
graeme Mar 14, 2024
aee85b0
Fix token fetching after merge
graeme Mar 14, 2024
aa64fe3
Fix locations fetching
graeme Mar 14, 2024
9d87dab
Fix non-sub access token provider
graeme Mar 14, 2024
3d0a748
Revert to subs compiler flag for init of token store
graeme Mar 14, 2024
0fcb50b
Revert "Revert to subs compiler flag for init of token store"
graeme Mar 14, 2024
0f19b47
Make subs event handler lazy to prevent crash
graeme Mar 14, 2024
944ddce
Remove crashy stuff from subsfeatureavailaibility
graeme Mar 14, 2024
898da73
Also check waitlist token for expiry prompt
graeme Mar 15, 2024
f5b2393
Revert "Also check waitlist token for expiry prompt"
graeme Mar 15, 2024
bada414
Utilise yet another UserDefault for waitlist state
graeme Mar 15, 2024
b45681d
Invert the UD validity bool to fix for waitlist
graeme Mar 18, 2024
f20cbff
Don't run entitlements check if not authenticated
graeme Mar 18, 2024
d4fa384
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 18, 2024
52a1d79
Update Package.resolved after merge
graeme Mar 18, 2024
a3083f6
Remove unused notification constant
graeme Mar 18, 2024
5fe65e9
Remove unnecessary Task dispatch
graeme Mar 18, 2024
6509729
Make the bouncer call block subsequent actions
graeme Mar 18, 2024
fd39413
Remove subscription lib staging configuration
graeme Mar 18, 2024
6a25ed4
replace NSnotification for VPN uninstalled
graeme Mar 18, 2024
112a9fe
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 18, 2024
2e42598
Point to updated BSK branch
graeme Mar 18, 2024
e33b7d1
Remove warning
graeme Mar 18, 2024
74f257d
Set subs env based on VPN in agent and extension
graeme Mar 18, 2024
70b2521
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 19, 2024
1d3f081
Update bouncer after main merge
graeme Mar 19, 2024
fcb7a83
Adapt to token fetching changes
graeme Mar 19, 2024
bedbfdf
Fixes after merging main
graeme Mar 19, 2024
3a80d5f
Merge remote-tracking branch 'origin/main' into graeme/entitlements-c…
graeme Mar 19, 2024
f72d958
Print out the type of the delegate to see why the cast failed.
samsymons Mar 19, 2024
a6d68d3
Try another change to get CI working.
samsymons Mar 19, 2024
3c0dfe1
Point to BSK release
graeme Mar 19, 2024
81ddbb8
Create internalUserDecider instance privately
graeme Mar 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Configuration/App/NetworkProtection/DuckDuckGoVPN.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*] =
PROVISIONING_PROFILE_SPECIFIER[config=Review][sdk=macosx*] = macOS NetP VPN App - Review (XPC)
PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=macosx*] = macOS NetP VPN App - Release (XPC)

FEATURE_FLAGS[arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[config=CI][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[config=Debug][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[config=Review][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
FEATURE_FLAGS[config=CI][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
FEATURE_FLAGS[config=Debug][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
FEATURE_FLAGS[config=Review][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
graeme marked this conversation as resolved.
Show resolved Hide resolved

SWIFT_OBJC_BRIDGING_HEADER =
SKIP_INSTALL = YES
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ INFOPLIST_FILE = NetworkProtectionSystemExtension/Info.plist
INFOPLIST_KEY_NSHumanReadableCopyright = Copyright © 2023 DuckDuckGo. All rights reserved.
INFOPLIST_KEY_NSSystemExtensionUsageDescription = DuckDuckGo VPN

FEATURE_FLAGS[arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[config=CI][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[config=Debug][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[config=Review][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION
FEATURE_FLAGS[arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
FEATURE_FLAGS[config=CI][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
FEATURE_FLAGS[config=Debug][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
FEATURE_FLAGS[config=Review][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_EXTENSION NETWORK_PROTECTION SUBSCRIPTION
graeme marked this conversation as resolved.
Show resolved Hide resolved

PRODUCT_BUNDLE_IDENTIFIER[sdk=*] = $(SYSEX_BUNDLE_ID)
PRODUCT_BUNDLE_IDENTIFIER[config=CI][sdk=*] = $(SYSEX_BUNDLE_ID)
Expand Down
33 changes: 27 additions & 6 deletions DuckDuckGo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -2235,8 +2235,6 @@
7BA7CC562AD11FFB0042E5CE /* NetworkProtectionOptionKeyExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D605F2A0B29FA00BCD287 /* NetworkProtectionOptionKeyExtension.swift */; };
7BA7CC582AD1203A0042E5CE /* UserText+NetworkProtection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60D22A0C84F700BCD287 /* UserText+NetworkProtection.swift */; };
7BA7CC592AD1203B0042E5CE /* UserText+NetworkProtection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60D22A0C84F700BCD287 /* UserText+NetworkProtection.swift */; };
7BA7CC5A2AD120640042E5CE /* NetworkProtection+ConvenienceInitializers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60692A0B29FA00BCD287 /* NetworkProtection+ConvenienceInitializers.swift */; };
7BA7CC5B2AD120640042E5CE /* NetworkProtection+ConvenienceInitializers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60692A0B29FA00BCD287 /* NetworkProtection+ConvenienceInitializers.swift */; };
7BA7CC5C2AD120C30042E5CE /* EventMapping+NetworkProtectionError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60722A0B29FA00BCD287 /* EventMapping+NetworkProtectionError.swift */; };
7BA7CC5D2AD120C30042E5CE /* EventMapping+NetworkProtectionError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60722A0B29FA00BCD287 /* EventMapping+NetworkProtectionError.swift */; };
7BA7CC5F2AD1210C0042E5CE /* Networking in Frameworks */ = {isa = PBXBuildFile; productRef = 7BA7CC5E2AD1210C0042E5CE /* Networking */; };
Expand Down Expand Up @@ -3121,6 +3119,11 @@
EE0629762B90EE8C00D868B4 /* AccountManagerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0629712B90EE8C00D868B4 /* AccountManagerExtension.swift */; };
EE2F9C5B2B90F2FF00D45FC9 /* Subscription in Frameworks */ = {isa = PBXBuildFile; productRef = EE2F9C5A2B90F2FF00D45FC9 /* Subscription */; };
EE339228291BDEFD009F62C1 /* JSAlertController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE339227291BDEFD009F62C1 /* JSAlertController.swift */; };
EE3424602BA0853900173B1B /* VPNUninstaller.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE34245D2BA0853900173B1B /* VPNUninstaller.swift */; };
EE3424612BA0853900173B1B /* VPNUninstaller.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE34245D2BA0853900173B1B /* VPNUninstaller.swift */; };
EE66418C2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE66418B2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift */; };
EE66418D2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE66418B2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift */; };
EE66418F2B9B1BD1005BCD17 /* Subscription in Frameworks */ = {isa = PBXBuildFile; productRef = EE66418E2B9B1BD1005BCD17 /* Subscription */; };
EE66666F2B56EDE4001D898D /* VPNLocationsHostingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE66666E2B56EDE4001D898D /* VPNLocationsHostingViewController.swift */; };
EE6666702B56EDE4001D898D /* VPNLocationsHostingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE66666E2B56EDE4001D898D /* VPNLocationsHostingViewController.swift */; };
EE6666712B56EDE4001D898D /* VPNLocationsHostingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE66666E2B56EDE4001D898D /* VPNLocationsHostingViewController.swift */; };
Expand Down Expand Up @@ -3156,6 +3159,8 @@
EEC8EB402982CD550065AA39 /* JSAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEF53E172950CED5002D78F4 /* JSAlertViewModelTests.swift */; };
EECE10E529DD77E60044D027 /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = EECE10E429DD77E60044D027 /* FeatureFlag.swift */; };
EECE10E629DD77E60044D027 /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = EECE10E429DD77E60044D027 /* FeatureFlag.swift */; };
EEDE50112BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEDE50102BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift */; };
EEDE50122BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEDE50102BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift */; };
EEF12E6F2A2111880023E6BF /* MacPacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEF12E6D2A2111880023E6BF /* MacPacketTunnelProvider.swift */; };
EEF53E182950CED5002D78F4 /* JSAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEF53E172950CED5002D78F4 /* JSAlertViewModelTests.swift */; };
F1D43AEE2B98D8DF00BAB743 /* MainMenuActions+VanillaBrowser.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D43AED2B98D8DF00BAB743 /* MainMenuActions+VanillaBrowser.swift */; };
Expand Down Expand Up @@ -4497,6 +4502,8 @@
EAFAD6C92728BD1200F9DF00 /* clickToLoad.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = clickToLoad.js; sourceTree = "<group>"; };
EE0629712B90EE8C00D868B4 /* AccountManagerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManagerExtension.swift; sourceTree = "<group>"; };
EE339227291BDEFD009F62C1 /* JSAlertController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSAlertController.swift; sourceTree = "<group>"; };
EE34245D2BA0853900173B1B /* VPNUninstaller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNUninstaller.swift; sourceTree = "<group>"; };
EE66418B2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift"; sourceTree = "<group>"; };
EE66666E2B56EDE4001D898D /* VPNLocationsHostingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNLocationsHostingViewController.swift; sourceTree = "<group>"; };
EEA3EEB02B24EBD000E8333A /* NetworkProtectionVPNCountryLabelsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkProtectionVPNCountryLabelsModel.swift; sourceTree = "<group>"; };
EEA3EEB22B24EC0600E8333A /* VPNLocationViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VPNLocationViewModel.swift; sourceTree = "<group>"; };
Expand All @@ -4507,6 +4514,7 @@
EEC4A66C2B2C894F00F7C0AA /* VPNLocationPreferenceItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNLocationPreferenceItemModel.swift; sourceTree = "<group>"; };
EEC4A6702B2C90AB00F7C0AA /* VPNLocationPreferenceItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNLocationPreferenceItem.swift; sourceTree = "<group>"; };
EECE10E429DD77E60044D027 /* FeatureFlag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlag.swift; sourceTree = "<group>"; };
EEDE50102BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NetworkProtection+VPNAgentConvenienceInitializers.swift"; sourceTree = "<group>"; };
EEF12E6D2A2111880023E6BF /* MacPacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MacPacketTunnelProvider.swift; sourceTree = "<group>"; };
EEF53E172950CED5002D78F4 /* JSAlertViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSAlertViewModelTests.swift; sourceTree = "<group>"; };
F1D43AED2B98D8DF00BAB743 /* MainMenuActions+VanillaBrowser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MainMenuActions+VanillaBrowser.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -4593,6 +4601,7 @@
buildActionMask = 2147483647;
files = (
37269F012B332FC8005E8E46 /* Common in Frameworks */,
EE66418F2B9B1BD1005BCD17 /* Subscription in Frameworks */,
EE7295E92A545BC4008C0991 /* NetworkProtection in Frameworks */,
4B2537772A11BFE100610219 /* PixelKit in Frameworks */,
7BBE2B7B2B61663C00697445 /* NetworkProtectionProxy in Frameworks */,
Expand Down Expand Up @@ -5602,6 +5611,7 @@
4B41ED9F2B15437A001EEDF4 /* NetworkProtectionNotificationsPresenterFactory.swift */,
EEF12E6D2A2111880023E6BF /* MacPacketTunnelProvider.swift */,
7B0099802B65C6B300FE7C31 /* MacTransparentProxyProvider.swift */,
EE66418B2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift */,
);
path = NetworkExtensionTargets;
sourceTree = "<group>";
Expand Down Expand Up @@ -6251,9 +6261,11 @@
7BA7CC132AD11DC80042E5CE /* AppLauncher+DefaultInitializer.swift */,
7BA7CC0E2AD11DC80042E5CE /* DuckDuckGoVPNAppDelegate.swift */,
7BD1688D2AD4A4C400D24876 /* NetworkExtensionController.swift */,
EEDE50102BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift */,
7BA7CC152AD11DC80042E5CE /* NetworkProtectionBouncer.swift */,
7B8DB3192B504D7500EC16DA /* VPNAppEventsHandler.swift */,
7B0694972B6E980F00FA4DBA /* VPNProxyLauncher.swift */,
EE34245D2BA0853900173B1B /* VPNUninstaller.swift */,
7BA7CC112AD11DC80042E5CE /* TunnelControllerIPCService.swift */,
7BA7CC172AD11DC80042E5CE /* UserText.swift */,
7BA7CC122AD11DC80042E5CE /* Assets.xcassets */,
Expand Down Expand Up @@ -8586,6 +8598,7 @@
EE7295E82A545BC4008C0991 /* NetworkProtection */,
37269F002B332FC8005E8E46 /* Common */,
7BBE2B7A2B61663C00697445 /* NetworkProtectionProxy */,
EE66418E2B9B1BD1005BCD17 /* Subscription */,
);
productName = NetworkProtectionSystemExtension;
productReference = 4B25375A2A11BE7300610219 /* com.duckduckgo.macos.vpn.network-extension.debug.systemextension */;
Expand Down Expand Up @@ -10812,6 +10825,7 @@
files = (
4B25377A2A11C01700610219 /* UserText+NetworkProtectionExtensions.swift in Sources */,
B65DA5F42A77D3FA00CBEE8D /* BundleExtension.swift in Sources */,
EE66418D2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift in Sources */,
4B2D062D2A11C12300DE1F49 /* Logging.swift in Sources */,
7B2E52252A5FEC09000C6D39 /* NetworkProtectionAgentNotificationsPresenter.swift in Sources */,
B602E8232A1E260E006D261F /* Bundle+NetworkProtectionExtensions.swift in Sources */,
Expand All @@ -10835,10 +10849,10 @@
files = (
B6F92BA22A691580002ABA6B /* UserDefaultsWrapper.swift in Sources */,
4B2D065B2A11D1FF00DE1F49 /* Logging.swift in Sources */,
7BA7CC5B2AD120640042E5CE /* NetworkProtection+ConvenienceInitializers.swift in Sources */,
7BA7CC3A2AD11E2D0042E5CE /* DuckDuckGoVPNAppDelegate.swift in Sources */,
7BAF9E4C2A8A3CCA002D3B6E /* UserDefaults+NetworkProtectionShared.swift in Sources */,
7BA7CC592AD1203B0042E5CE /* UserText+NetworkProtection.swift in Sources */,
EEDE50112BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift in Sources */,
7BA7CC562AD11FFB0042E5CE /* NetworkProtectionOptionKeyExtension.swift in Sources */,
7B2DDCFA2A93B25F0039D884 /* KeychainType+ClientDefault.swift in Sources */,
7BA7CC4C2AD11EC70042E5CE /* NetworkProtectionControllerErrorStore.swift in Sources */,
Expand All @@ -10849,6 +10863,7 @@
EE0629742B90EE8C00D868B4 /* AccountManagerExtension.swift in Sources */,
7BA7CC5D2AD120C30042E5CE /* EventMapping+NetworkProtectionError.swift in Sources */,
7BA7CC4A2AD11EA00042E5CE /* NetworkProtectionTunnelController.swift in Sources */,
EE3424602BA0853900173B1B /* VPNUninstaller.swift in Sources */,
7BD1688E2AD4A4C400D24876 /* NetworkExtensionController.swift in Sources */,
7BA7CC3E2AD11E380042E5CE /* TunnelControllerIPCService.swift in Sources */,
7BA7CC402AD11E3D0042E5CE /* AppLauncher+DefaultInitializer.swift in Sources */,
Expand All @@ -10872,9 +10887,9 @@
4BA7C4DB2B3F63AE00AFE511 /* NetworkExtensionController.swift in Sources */,
4B2D067C2A13340900DE1F49 /* Logging.swift in Sources */,
7B1459552B7D438F00047F2C /* VPNProxyLauncher.swift in Sources */,
EEDE50122BA360C80017F3C4 /* NetworkProtection+VPNAgentConvenienceInitializers.swift in Sources */,
B6F92BAD2A6937B5002ABA6B /* OptionalExtension.swift in Sources */,
4BA7C4D92B3F61FB00AFE511 /* BundleExtension.swift in Sources */,
7BA7CC5A2AD120640042E5CE /* NetworkProtection+ConvenienceInitializers.swift in Sources */,
EEC589DC2A4F1CE800BCD60C /* AppLauncher.swift in Sources */,
7BA7CC3F2AD11E3D0042E5CE /* AppLauncher+DefaultInitializer.swift in Sources */,
4B0EF7292B5780EB009D6481 /* VPNAppEventsHandler.swift in Sources */,
Expand All @@ -10883,6 +10898,7 @@
EE0629752B90EE8C00D868B4 /* AccountManagerExtension.swift in Sources */,
7BA7CC582AD1203A0042E5CE /* UserText+NetworkProtection.swift in Sources */,
7BA7CC4B2AD11EC60042E5CE /* NetworkProtectionControllerErrorStore.swift in Sources */,
EE3424612BA0853900173B1B /* VPNUninstaller.swift in Sources */,
4BF0E5152AD25A2600FFEC9E /* DuckDuckGoUserAgent.swift in Sources */,
7BFE95592A9DF2AF0081ABE9 /* UserDefaults+NetworkProtectionWaitlist.swift in Sources */,
7BA7CC5C2AD120C30042E5CE /* EventMapping+NetworkProtectionError.swift in Sources */,
Expand Down Expand Up @@ -10920,6 +10936,7 @@
4B41EDA02B15437A001EEDF4 /* NetworkProtectionNotificationsPresenterFactory.swift in Sources */,
7B25856C2BA2F2D000D49F79 /* AppLauncher.swift in Sources */,
4B4D609F2A0B2C7300BCD287 /* Logging.swift in Sources */,
EE66418C2B9B1981005BCD17 /* NetworkProtectionTokenStore+SubscriptionTokenKeychainStorage.swift in Sources */,
7B7DFB202B7E736B009EA1A3 /* MacPacketTunnelProvider.swift in Sources */,
4B4D60A12A0B2D6100BCD287 /* NetworkProtectionOptionKeyExtension.swift in Sources */,
B602E8182A1E2570006D261F /* URL+NetworkProtection.swift in Sources */,
Expand Down Expand Up @@ -13754,8 +13771,8 @@
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/duckduckgo/BrowserServicesKit";
requirement = {
kind = exactVersion;
version = 125.0.2;
branch = "graeme/expired-entitlements-stuff";
kind = branch;
};
};
AA06B6B52672AF8100F541C5 /* XCRemoteSwiftPackageReference "Sparkle" */ = {
Expand Down Expand Up @@ -14440,6 +14457,10 @@
package = 9807F643278CA16F00E1547B /* XCRemoteSwiftPackageReference "BrowserServicesKit" */;
productName = Subscription;
};
EE66418E2B9B1BD1005BCD17 /* Subscription */ = {
isa = XCSwiftPackageProductDependency;
productName = Subscription;
};
EE7295E22A545B9A008C0991 /* NetworkProtection */ = {
isa = XCSwiftPackageProductDependency;
package = 9807F643278CA16F00E1547B /* XCRemoteSwiftPackageReference "BrowserServicesKit" */;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/duckduckgo/BrowserServicesKit",
"state" : {
"revision" : "810bf41347ff437b5d0154405a238553537240a4",
"version" : "125.0.2"
"branch" : "graeme/expired-entitlements-stuff",
"revision" : "0b65748909e192c6278290b0a340f03c6b53fcaa"
}
},
{
Expand Down
3 changes: 2 additions & 1 deletion DuckDuckGo/Application/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ final class AppDelegate: NSObject, NSApplicationDelegate, FileDownloadManagerDel
var privacyDashboardWindow: NSWindow?

#if NETWORK_PROTECTION && SUBSCRIPTION
private let networkProtectionSubscriptionEventHandler = NetworkProtectionSubscriptionEventHandler()
// Needs to be lazy as indirectly depends on AppDelegate
private lazy var networkProtectionSubscriptionEventHandler = NetworkProtectionSubscriptionEventHandler()
#endif

#if DBP && SUBSCRIPTION
Expand Down
6 changes: 5 additions & 1 deletion DuckDuckGo/Application/URLEventHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,12 @@ final class URLEventHandler {
case AppLaunchCommand.showVPNLocations.launchURL:
WindowControllersManager.shared.showPreferencesTab(withSelectedPane: .vpn)
WindowControllersManager.shared.showLocationPickerSheet()
case AppLaunchCommand.moveAppToApplications.launchURL:
#if SUBSCRIPTION
case AppLaunchCommand.showPrivacyPro.launchURL:
WindowControllersManager.shared.showTab(with: .subscription(.subscriptionPurchase))
#endif
#if !APPSTORE && !DEBUG
case AppLaunchCommand.moveAppToApplications.launchURL:
// this should be run after NSApplication.shared is set
PFMoveToApplicationsFolderIfNecessary(false)
#endif
Expand Down
2 changes: 1 addition & 1 deletion DuckDuckGo/InfoPlist.xcstrings
Original file line number Diff line number Diff line change
Expand Up @@ -363,4 +363,4 @@
}
},
"version" : "1.0"
}
}
2 changes: 1 addition & 1 deletion DuckDuckGo/MainWindow/MainViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ final class MainViewController: NSViewController {
let ipcClient = TunnelControllerIPCClient(machServiceName: vpnBundleID)
ipcClient.register()

return NetworkProtectionNavBarPopoverManager(ipcClient: ipcClient)
return NetworkProtectionNavBarPopoverManager(ipcClient: ipcClient, networkProtectionFeatureDisabler: NetworkProtectionFeatureDisabler())
}()
let networkProtectionStatusReporter: NetworkProtectionStatusReporter = {
var connectivityIssuesObserver: ConnectivityIssueObserver!
Expand Down
Loading
Loading