Skip to content
This repository was archived by the owner on Feb 24, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
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
38 changes: 31 additions & 7 deletions DuckDuckGo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1112,7 +1112,6 @@
4B4D60D32A0C84F700BCD287 /* UserText+NetworkProtection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60D22A0C84F700BCD287 /* UserText+NetworkProtection.swift */; };
4B4D60D42A0C84F700BCD287 /* UserText+NetworkProtection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60D22A0C84F700BCD287 /* UserText+NetworkProtection.swift */; };
4B4D60DD2A0C875E00BCD287 /* NetworkProtectionOptionKeyExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D605F2A0B29FA00BCD287 /* NetworkProtectionOptionKeyExtension.swift */; };
4B4D60DE2A0C875E00BCD287 /* NetworkProtectionBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D605E2A0B29FA00BCD287 /* NetworkProtectionBundle.swift */; };
4B4D60DF2A0C875F00BCD287 /* NetworkProtectionOptionKeyExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D605F2A0B29FA00BCD287 /* NetworkProtectionOptionKeyExtension.swift */; };
4B4D60E02A0C875F00BCD287 /* NetworkProtectionBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D605E2A0B29FA00BCD287 /* NetworkProtectionBundle.swift */; };
4B4D60E22A0C883A00BCD287 /* Main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4D60E12A0C883A00BCD287 /* Main.swift */; };
Expand Down Expand Up @@ -1323,8 +1322,14 @@
7B1E819E27C8874900FF0E60 /* ContentOverlayPopover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B1E819B27C8874900FF0E60 /* ContentOverlayPopover.swift */; };
7B1E819F27C8874900FF0E60 /* ContentOverlay.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7B1E819C27C8874900FF0E60 /* ContentOverlay.storyboard */; };
7B1E81A027C8874900FF0E60 /* ContentOverlayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B1E819D27C8874900FF0E60 /* ContentOverlayViewController.swift */; };
7B2DDD0B2A93EA570039D884 /* NetworkProtectionAppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDD0A2A93EA570039D884 /* NetworkProtectionAppEvents.swift */; };
7B2DDD0D2A93EB630039D884 /* NetworkProtectionAppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDD0A2A93EA570039D884 /* NetworkProtectionAppEvents.swift */; };
7B2DDCF82A93A8BB0039D884 /* NetworkProtectionAppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDCF72A93A8BB0039D884 /* NetworkProtectionAppEvents.swift */; };
7B2DDCFA2A93B25F0039D884 /* KeychainType+ClientDefault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD3AF5C2A8E7AF1006F9F56 /* KeychainType+ClientDefault.swift */; };
7B2DDCFB2A93B25F0039D884 /* KeychainType+ClientDefault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD3AF5C2A8E7AF1006F9F56 /* KeychainType+ClientDefault.swift */; };
7B2DDD022A93BAA60039D884 /* NetworkProtectionBouncer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDD012A93BAA60039D884 /* NetworkProtectionBouncer.swift */; };
7B2DDD032A93BBEC0039D884 /* NetworkProtectionBouncer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDD012A93BAA60039D884 /* NetworkProtectionBouncer.swift */; };
7B2DDD052A93BEE20039D884 /* FeatureProtectedTunnelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDD042A93BEE20039D884 /* FeatureProtectedTunnelController.swift */; };
7B2DDD072A93C17D0039D884 /* UserText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDD062A93C17D0039D884 /* UserText.swift */; };
7B2DDD092A93C2440039D884 /* AppLauncher+DefaultInitializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2DDD082A93C2440039D884 /* AppLauncher+DefaultInitializer.swift */; };
7B2E52252A5FEC09000C6D39 /* NetworkProtectionAgentNotificationsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B2E52242A5FEC09000C6D39 /* NetworkProtectionAgentNotificationsPresenter.swift */; };
7B430EA12A71411A00BAC4A1 /* NetworkProtectionSimulateFailureMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B430EA02A71411A00BAC4A1 /* NetworkProtectionSimulateFailureMenu.swift */; };
7B430EA22A71411A00BAC4A1 /* NetworkProtectionSimulateFailureMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B430EA02A71411A00BAC4A1 /* NetworkProtectionSimulateFailureMenu.swift */; };
Expand All @@ -1338,6 +1343,7 @@
7BBD45B22A691AB500C83CA9 /* NetworkProtectionDebugUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BBD45B02A691AB500C83CA9 /* NetworkProtectionDebugUtilities.swift */; };
7BBD45B42A691C3A00C83CA9 /* NetworkProtectionLoginItemsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BBD45B32A691C3A00C83CA9 /* NetworkProtectionLoginItemsManager.swift */; };
7BBD45B52A691C3A00C83CA9 /* NetworkProtectionLoginItemsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BBD45B32A691C3A00C83CA9 /* NetworkProtectionLoginItemsManager.swift */; };
7BD3AF5D2A8E7AF1006F9F56 /* KeychainType+ClientDefault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD3AF5C2A8E7AF1006F9F56 /* KeychainType+ClientDefault.swift */; };
7BE146072A6A83C700C313B8 /* NetworkProtectionDebugMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BE146062A6A83C700C313B8 /* NetworkProtectionDebugMenu.swift */; };
7BE146082A6A83C700C313B8 /* NetworkProtectionDebugMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BE146062A6A83C700C313B8 /* NetworkProtectionDebugMenu.swift */; };
85012B0229133F9F003D0DCC /* NavigationBarPopovers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85012B0129133F9F003D0DCC /* NavigationBarPopovers.swift */; };
Expand Down Expand Up @@ -2588,7 +2594,11 @@
7B1E819B27C8874900FF0E60 /* ContentOverlayPopover.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentOverlayPopover.swift; sourceTree = "<group>"; };
7B1E819C27C8874900FF0E60 /* ContentOverlay.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = ContentOverlay.storyboard; sourceTree = "<group>"; };
7B1E819D27C8874900FF0E60 /* ContentOverlayViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentOverlayViewController.swift; sourceTree = "<group>"; };
7B2DDD0A2A93EA570039D884 /* NetworkProtectionAppEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkProtectionAppEvents.swift; sourceTree = "<group>"; };
7B2DDCF72A93A8BB0039D884 /* NetworkProtectionAppEvents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionAppEvents.swift; sourceTree = "<group>"; };
7B2DDD012A93BAA60039D884 /* NetworkProtectionBouncer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionBouncer.swift; sourceTree = "<group>"; };
7B2DDD042A93BEE20039D884 /* FeatureProtectedTunnelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureProtectedTunnelController.swift; sourceTree = "<group>"; };
7B2DDD062A93C17D0039D884 /* UserText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserText.swift; sourceTree = "<group>"; };
7B2DDD082A93C2440039D884 /* AppLauncher+DefaultInitializer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppLauncher+DefaultInitializer.swift"; sourceTree = "<group>"; };
7B2E52242A5FEC09000C6D39 /* NetworkProtectionAgentNotificationsPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkProtectionAgentNotificationsPresenter.swift; sourceTree = "<group>"; };
7B430EA02A71411A00BAC4A1 /* NetworkProtectionSimulateFailureMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionSimulateFailureMenu.swift; sourceTree = "<group>"; };
7B4CE8DA26F02108009134B1 /* UI Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "UI Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
Expand All @@ -2602,6 +2612,7 @@
7BB108582A43375D000AB95F /* PFMoveApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFMoveApplication.m; sourceTree = "<group>"; };
7BBD45B02A691AB500C83CA9 /* NetworkProtectionDebugUtilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionDebugUtilities.swift; sourceTree = "<group>"; };
7BBD45B32A691C3A00C83CA9 /* NetworkProtectionLoginItemsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionLoginItemsManager.swift; sourceTree = "<group>"; };
7BD3AF5C2A8E7AF1006F9F56 /* KeychainType+ClientDefault.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KeychainType+ClientDefault.swift"; sourceTree = "<group>"; };
7BE146062A6A83C700C313B8 /* NetworkProtectionDebugMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionDebugMenu.swift; sourceTree = "<group>"; };
85012B0129133F9F003D0DCC /* NavigationBarPopovers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarPopovers.swift; sourceTree = "<group>"; };
850E8DFA2A6FEC5E00691187 /* BookmarksBarAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksBarAppearance.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -3887,6 +3898,10 @@
isa = PBXGroup;
children = (
4B2D06512A11D19B00DE1F49 /* DuckDuckGoAgentAppDelegate.swift */,
7B2DDD082A93C2440039D884 /* AppLauncher+DefaultInitializer.swift */,
7B2DDD042A93BEE20039D884 /* FeatureProtectedTunnelController.swift */,
7B2DDD012A93BAA60039D884 /* NetworkProtectionBouncer.swift */,
7B2DDD062A93C17D0039D884 /* UserText.swift */,
4B2D06522A11D19B00DE1F49 /* Assets.xcassets */,
4B2D06442A11CFBE00DE1F49 /* DuckDuckGoAgent.entitlements */,
4B2D06532A11D19B00DE1F49 /* DuckDuckGoAgentAppStore.entitlements */,
Expand Down Expand Up @@ -4004,10 +4019,11 @@
4B4D60652A0B29FA00BCD287 /* NetworkProtectionNavBarButtonModel.swift */,
4B8F52402A18326600BE7131 /* NetworkProtectionTunnelController.swift */,
4B4D60692A0B29FA00BCD287 /* NetworkProtection+ConvenienceInitializers.swift */,
7BD3AF5C2A8E7AF1006F9F56 /* KeychainType+ClientDefault.swift */,
4B4D606A2A0B29FA00BCD287 /* NetworkProtectionControllerErrorStore.swift */,
4B4D606B2A0B29FA00BCD287 /* Invite */,
4B4D60722A0B29FA00BCD287 /* EventMapping+NetworkProtectionError.swift */,
7B2DDD0A2A93EA570039D884 /* NetworkProtectionAppEvents.swift */,
7B2DDCF72A93A8BB0039D884 /* NetworkProtectionAppEvents.swift */,
);
path = BothAppTargets;
sourceTree = "<group>";
Expand Down Expand Up @@ -7723,7 +7739,6 @@
3706FB46293F65D500E42796 /* FirePopoverWrapperViewController.swift in Sources */,
3706FB47293F65D500E42796 /* NSPasteboardItemExtension.swift in Sources */,
3706FB48293F65D500E42796 /* AutofillPreferencesModel.swift in Sources */,
4B4D60DE2A0C875E00BCD287 /* NetworkProtectionBundle.swift in Sources */,
3706FB49293F65D500E42796 /* NSException+Catch.swift in Sources */,
3706FB4A293F65D500E42796 /* PasswordManagementNoteModel.swift in Sources */,
3706FB4B293F65D500E42796 /* CookieNotificationAnimationModel.swift in Sources */,
Expand Down Expand Up @@ -8446,13 +8461,18 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7B2DDD052A93BEE20039D884 /* FeatureProtectedTunnelController.swift in Sources */,
B6F92BA22A691580002ABA6B /* UserDefaultsWrapper.swift in Sources */,
4B2D065B2A11D1FF00DE1F49 /* Logging.swift in Sources */,
4B2D06572A11D19B00DE1F49 /* DuckDuckGoAgentAppDelegate.swift in Sources */,
7B2DDCFA2A93B25F0039D884 /* KeychainType+ClientDefault.swift in Sources */,
7B2DDD072A93C17D0039D884 /* UserText.swift in Sources */,
B6F92BAC2A6937B3002ABA6B /* OptionalExtension.swift in Sources */,
7B2DDD092A93C2440039D884 /* AppLauncher+DefaultInitializer.swift in Sources */,
B6F92BAA2A691A44002ABA6B /* NetworkProtectionUserDefaultsConstants.swift in Sources */,
EEC589DB2A4F1CE700BCD60C /* AppLauncher.swift in Sources */,
B65DA5EF2A77CC3A00CBEE8D /* Bundle+NetworkProtectionExtensions.swift in Sources */,
7B2DDD022A93BAA60039D884 /* NetworkProtectionBouncer.swift in Sources */,
B65DA5F12A77D2BC00CBEE8D /* BundleExtension.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -8461,12 +8481,14 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7B2DDCFB2A93B25F0039D884 /* KeychainType+ClientDefault.swift in Sources */,
B6F92BA32A691583002ABA6B /* UserDefaultsWrapper.swift in Sources */,
4B2D067C2A13340900DE1F49 /* Logging.swift in Sources */,
4B2D067A2A1333EF00DE1F49 /* DuckDuckGoAgentAppDelegate.swift in Sources */,
B6F92BAD2A6937B5002ABA6B /* OptionalExtension.swift in Sources */,
B6F92BAB2A691A44002ABA6B /* NetworkProtectionUserDefaultsConstants.swift in Sources */,
EEC589DC2A4F1CE800BCD60C /* AppLauncher.swift in Sources */,
7B2DDD032A93BBEC0039D884 /* NetworkProtectionBouncer.swift in Sources */,
B65DA5F02A77CC3C00CBEE8D /* Bundle+NetworkProtectionExtensions.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -8852,6 +8874,7 @@
4BE65478271FCD41008D1D63 /* PasswordManagementNoteItemView.swift in Sources */,
AA5C8F632591021700748EB7 /* NSApplicationExtension.swift in Sources */,
AA9E9A5625A3AE8400D1959D /* NSWindowExtension.swift in Sources */,
7BD3AF5D2A8E7AF1006F9F56 /* KeychainType+ClientDefault.swift in Sources */,
AAC5E4C725D6A6E8007F5990 /* BookmarkPopover.swift in Sources */,
37CC53F027E8D1440028713D /* PreferencesDownloadsView.swift in Sources */,
B6F7127E29F6779000594A45 /* QRSharingService.swift in Sources */,
Expand Down Expand Up @@ -9149,6 +9172,7 @@
856C98D52570116900A22F1F /* NSWindow+Toast.swift in Sources */,
B31055C427A1BA1D001AC618 /* AutoconsentUserScript.swift in Sources */,
859E7D6B27453BF3009C2B69 /* BookmarksExporter.swift in Sources */,
7B2DDCF82A93A8BB0039D884 /* NetworkProtectionAppEvents.swift in Sources */,
4B5FF67826B602B100D42879 /* FirefoxDataImporter.swift in Sources */,
37AFCE8B27DB69BC00471A10 /* PreferencesGeneralView.swift in Sources */,
37BF3F22286F0A7A00BD9014 /* PinnedTabsView.swift in Sources */,
Expand Down Expand Up @@ -10241,7 +10265,7 @@
repositoryURL = "https://github.com/duckduckgo/BrowserServicesKit";
requirement = {
kind = exactVersion;
version = 75.0.2;
version = 75.0.3;
};
};
AA06B6B52672AF8100F541C5 /* XCRemoteSwiftPackageReference "Sparkle" */ = {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 0 additions & 5 deletions DuckDuckGo/Common/Localizables/UserText.swift
Original file line number Diff line number Diff line change
Expand Up @@ -811,9 +811,4 @@ struct UserText {
static let disableEmailProtectionTitle = NSLocalizedString("disable.email.protection.title", value: "Disable Email Protection Autofill?", comment: "Title for alert shown when user disables email protection")
static let disableEmailProtectionMessage = NSLocalizedString("disable.email.protection.mesage", value: "This will only disable Autofill for Duck Addresses in this browser. \n\n You can still manually enter Duck Addresses and continue to receive forwarded email.", comment: "Message for alert shown when user disables email protection")
static let disable = NSLocalizedString("disable", value: "Disable", comment: "Email protection Disable button text")




}

2 changes: 1 addition & 1 deletion DuckDuckGo/DuckDuckGo.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.duckduckgo.macos.browser</string>
<string>$(AppIdentifierPrefix)com.duckduckgo.network-protection</string>
<string>$(NETP_APP_GROUP)</string>
</array>
<key>com.apple.developer.system-extension.install</key>
<true/>
Expand Down
1 change: 1 addition & 0 deletions DuckDuckGo/DuckDuckGoAppStore.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.duckduckgo.mobile.ios</string>
<string>$(NETP_APP_GROUP)</string>
</array>
</dict>
</plist>
2 changes: 1 addition & 1 deletion DuckDuckGo/DuckDuckGoDebug.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.duckduckgo.macos.browser</string>
<string>$(AppIdentifierPrefix)com.duckduckgo.network-protection</string>
<string>$(NETP_APP_GROUP)</string>
</array>
<key>com.apple.developer.usernotifications.time-sensitive</key>
<true/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
//

import Foundation
import NetworkProtection

enum NetworkProtectionBundle {

Expand Down Expand Up @@ -67,11 +68,11 @@ enum NetworkProtectionBundle {
return extensionBundle
}

static func usesSystemKeychain() -> Bool {
static let keychainType: KeychainType = {
#if NETP_SYSTEM_EXTENSION
true
.system
#else
false
.accessGroup(.named(Bundle.main.appGroupName))
#endif
}
}()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
//
// KeychainType+ClientDefault.swift
//
// Copyright © 2023 DuckDuckGo. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

import Foundation
import NetworkProtection

/// Implements convenience default for the client apps making use of this.
///
/// If you add this to a new target, please make sure this default is the correct one for the target.
/// Because the default may not be right for all targets, please avoid sharing this in a framework directly.
/// This is meant to be a client-specific definition by its own nature.
///
extension KeychainType {
static let `default`: KeychainType = .dataProtection(.named(Bundle.main.appGroupName))
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ extension NetworkProtectionCodeRedemptionCoordinator {

extension NetworkProtectionKeychainTokenStore {
convenience init() {
self.init(useSystemKeychain: false,
self.init(keychainType: .default,
errorEvents: .networkProtectionAppDebugEvents)
}
}

extension NetworkProtectionKeychainKeyStore {
convenience init() {
self.init(useSystemKeychain: false,
self.init(keychainType: .default,
errorEvents: .networkProtectionAppDebugEvents)
}
}
Expand Down
Loading