From a13907999ae9a07ab78acf92e4bbebce5ee34e21 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Fri, 22 Nov 2024 17:15:54 +0100 Subject: [PATCH 01/14] Point to partial save branch --- DuckDuckGo.xcodeproj/project.pbxproj | 4 ++-- .../xcshareddata/swiftpm/Package.resolved | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 807e0a8324..b64f766658 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -11371,8 +11371,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { - kind = exactVersion; - version = 218.0.1; + branch = "graeme/partial-form-save"; + kind = branch; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 67a1291f05..f7fe3d7074 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "bbcb41c87c5788718a43883b5b10eb3b4f54aff3", - "version" : "218.0.1" + "branch" : "graeme/partial-form-save", + "revision" : "655ef65c3873621e1f2e41fcceca0b260fd987e7" } }, { @@ -59,8 +59,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/duckduckgo/duckduckgo-autofill.git", "state" : { - "revision" : "c992041d16ec10d790e6204dce9abf9966d1363c", - "version" : "15.1.0" + "branch" : "dbajpeyi/feature/partial-form-save", + "revision" : "e1030b4292f39b18f1e0f0701a6e8d1a68cfa8cd" } }, { From ad17a09da4da55fd0fe8c0a10da4980bd657c66c Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 25 Nov 2024 13:58:57 +0100 Subject: [PATCH 02/14] Autofill update --- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index f7fe3d7074..a4a12fa2b9 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -60,7 +60,7 @@ "location" : "https://github.com/duckduckgo/duckduckgo-autofill.git", "state" : { "branch" : "dbajpeyi/feature/partial-form-save", - "revision" : "e1030b4292f39b18f1e0f0701a6e8d1a68cfa8cd" + "revision" : "07db870dc0cfbbac37bebef00231048ee09066b3" } }, { From 71257e3d1be1e8a09ea28da59e522a3c6062ac86 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Wed, 27 Nov 2024 18:43:12 +0100 Subject: [PATCH 03/14] Update BSK --- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index a4a12fa2b9..139e6a5696 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,7 +33,7 @@ "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { "branch" : "graeme/partial-form-save", - "revision" : "655ef65c3873621e1f2e41fcceca0b260fd987e7" + "revision" : "37d305dfefcac8a56193bdd249d82e541d16d5ed" } }, { From 5bdfa85db0052301ad91c2590a21099fd00fcc5c Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Thu, 28 Nov 2024 16:47:57 +0100 Subject: [PATCH 04/14] Update BSK branch --- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 139e6a5696..e4e5e15e2c 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,7 +33,7 @@ "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { "branch" : "graeme/partial-form-save", - "revision" : "37d305dfefcac8a56193bdd249d82e541d16d5ed" + "revision" : "6a90b25496e0ca74fab67d87dceb2367c7a3505a" } }, { From 2ae632abbce267aeff74231721fedb65ff3ee6d0 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Fri, 29 Nov 2024 17:46:19 +0100 Subject: [PATCH 05/14] Update BSK with frontend fix --- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index e4e5e15e2c..abc745cb99 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -60,7 +60,7 @@ "location" : "https://github.com/duckduckgo/duckduckgo-autofill.git", "state" : { "branch" : "dbajpeyi/feature/partial-form-save", - "revision" : "07db870dc0cfbbac37bebef00231048ee09066b3" + "revision" : "716516696e93bad824015d9e1b3d5d9132a5f631" } }, { From 2a7121e72470cdc946822e2adff51d8fb2eef6b7 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 10:57:46 +0100 Subject: [PATCH 06/14] Update BSK --- DuckDuckGo.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/swiftpm/Package.resolved | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index b64f766658..12cf80a103 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -11371,7 +11371,7 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { - branch = "graeme/partial-form-save"; + branch = "graeme/partial-form-save-refactor"; kind = branch; }; }; diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index abc745cb99..1780397a02 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "branch" : "graeme/partial-form-save", - "revision" : "6a90b25496e0ca74fab67d87dceb2367c7a3505a" + "branch" : "graeme/partial-form-save-refactor", + "revision" : "59198dd08ffd458c148823f81f830c7e29b4539b" } }, { @@ -59,8 +59,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/duckduckgo/duckduckgo-autofill.git", "state" : { - "branch" : "dbajpeyi/feature/partial-form-save", - "revision" : "716516696e93bad824015d9e1b3d5d9132a5f631" + "revision" : "88982a3802ac504e2f1a118a73bfdf2d8f4a7735", + "version" : "16.0.0" } }, { From 738f988d3be3d41fb2b4ee274aa157d0341e7c31 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 10:57:54 +0100 Subject: [PATCH 07/14] Add feature flag --- Core/FeatureFlag.swift | 3 +++ DuckDuckGo/EmailSignupViewController.swift | 1 + DuckDuckGo/TabViewController.swift | 1 + 3 files changed, 5 insertions(+) diff --git a/Core/FeatureFlag.swift b/Core/FeatureFlag.swift index 8bf183dafd..0caf2bb0c9 100644 --- a/Core/FeatureFlag.swift +++ b/Core/FeatureFlag.swift @@ -32,6 +32,7 @@ public enum FeatureFlag: String { case autofillFailureReporting case autofillOnForExistingUsers case autofillUnknownUsernameCategorization + case autofillPartialFormSaves case incontextSignup case autoconsentOnByDefault case history @@ -101,6 +102,8 @@ extension FeatureFlag: FeatureFlagDescribing { return .remoteReleasable(.subfeature(AutofillSubfeature.onForExistingUsers)) case .autofillUnknownUsernameCategorization: return .remoteReleasable(.subfeature(AutofillSubfeature.unknownUsernameCategorization)) + case .autofillPartialFormSaves: + return .internalOnly() case .incontextSignup: return .remoteReleasable(.feature(.incontextSignup)) case .autoconsentOnByDefault: diff --git a/DuckDuckGo/EmailSignupViewController.swift b/DuckDuckGo/EmailSignupViewController.swift index 056f861310..19b89ceb11 100644 --- a/DuckDuckGo/EmailSignupViewController.swift +++ b/DuckDuckGo/EmailSignupViewController.swift @@ -64,6 +64,7 @@ class EmailSignupViewController: UIViewController { lazy private var vaultManager: SecureVaultManager = { let manager = SecureVaultManager(includePartialAccountMatches: true, + shouldAllowPartialFormSaves: featureFlagger.isFeatureOn(.autofillPartialFormSaves), tld: AppDependencyProvider.shared.storageCache.tld) manager.delegate = self return manager diff --git a/DuckDuckGo/TabViewController.swift b/DuckDuckGo/TabViewController.swift index bc248cd104..042d6f3925 100644 --- a/DuckDuckGo/TabViewController.swift +++ b/DuckDuckGo/TabViewController.swift @@ -270,6 +270,7 @@ class TabViewController: UIViewController { lazy var vaultManager: SecureVaultManager = { let manager = SecureVaultManager(includePartialAccountMatches: true, + shouldAllowPartialFormSaves: featureFlagger.isFeatureOn(.autofillPartialFormSaves), tld: AppDependencyProvider.shared.storageCache.tld) manager.delegate = self return manager From e995ff37d5436f56fbf597281269f50cd7229a75 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 11:45:11 +0100 Subject: [PATCH 08/14] Point to latest BSK --- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 1780397a02..15514d4225 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,7 +33,7 @@ "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { "branch" : "graeme/partial-form-save-refactor", - "revision" : "59198dd08ffd458c148823f81f830c7e29b4539b" + "revision" : "ef4db7b7ba39f13eb82c057b6730835e2b5495d5" } }, { From 2a43bde68448639859125805363b9733dd760bbf Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 15:52:20 +0100 Subject: [PATCH 09/14] Update BSK again --- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 15514d4225..3b7da2940c 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,7 +33,7 @@ "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { "branch" : "graeme/partial-form-save-refactor", - "revision" : "ef4db7b7ba39f13eb82c057b6730835e2b5495d5" + "revision" : "803f4628ecc09d1a15a145442d0d30ecda3c182f" } }, { From d8f2bce24fc272fddcfaabafe575c7630b8bae4e Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 15:52:38 +0100 Subject: [PATCH 10/14] Send backfilled param with update pixels --- Core/Pixel.swift | 1 + DuckDuckGo/SaveAutofillLoginManager.swift | 13 +++++++++++-- DuckDuckGo/SaveLoginViewController.swift | 18 ++++++++++++------ DuckDuckGo/SaveLoginViewModel.swift | 8 ++++++-- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Core/Pixel.swift b/Core/Pixel.swift index 04f48ee03f..ded3c22a2c 100644 --- a/Core/Pixel.swift +++ b/Core/Pixel.swift @@ -147,6 +147,7 @@ public struct PixelParameters { // Autofill public static let countBucket = "count_bucket" + public static let backfilled = "backfilled" // Privacy Dashboard public static let daysSinceInstall = "daysSinceInstall" diff --git a/DuckDuckGo/SaveAutofillLoginManager.swift b/DuckDuckGo/SaveAutofillLoginManager.swift index ea932d0ce0..4749b6dfd4 100644 --- a/DuckDuckGo/SaveAutofillLoginManager.swift +++ b/DuckDuckGo/SaveAutofillLoginManager.swift @@ -29,6 +29,7 @@ protocol SaveAutofillLoginManagerProtocol { var isPasswordOnlyAccount: Bool { get } var hasOtherCredentialsOnSameDomain: Bool { get } var hasSavedMatchingPasswordWithoutUsername: Bool { get } + var hasSavedMatchingUsernameWithoutPassword: Bool { get } var hasSavedMatchingUsername: Bool { get } static func saveCredentials(_ credentials: SecureVaultModels.WebsiteCredentials, with factory: AutofillVaultFactory) throws -> Int64 @@ -85,7 +86,15 @@ final class SaveAutofillLoginManager: SaveAutofillLoginManagerProtocol { var hasSavedMatchingUsername: Bool { savedMatchingUsernameCredential != nil } - + + var hasSavedMatchingUsernameWithoutPassword: Bool { + if let savedMatchingUsernameCredential { + return savedMatchingUsernameCredential.password.flatMap { String(data: $0, encoding: .utf8) }.isNilOrEmpty + } else { + return false + } + } + func prepareData(completion: @escaping () -> Void) { fetchDomainStoredCredentials { [weak self] credentials in self?.domainStoredCredentials = credentials @@ -112,7 +121,7 @@ final class SaveAutofillLoginManager: SaveAutofillLoginManagerProtocol { let credentialsWithSameUsername = domainStoredCredentials.filter { $0.account.username == credentials.account.username } return credentialsWithSameUsername.first } - + private func fetchDomainStoredCredentials(completion: @escaping ([SecureVaultModels.WebsiteCredentials]) -> Void) { DispatchQueue.global(qos: .userInteractive).async { var result = [SecureVaultModels.WebsiteCredentials]() diff --git a/DuckDuckGo/SaveLoginViewController.swift b/DuckDuckGo/SaveLoginViewController.swift index 610e8bb0fb..31dad0e309 100644 --- a/DuckDuckGo/SaveLoginViewController.swift +++ b/DuckDuckGo/SaveLoginViewController.swift @@ -77,9 +77,11 @@ class SaveLoginViewController: UIViewController { case .savePassword: Pixel.fire(pixel: .autofillLoginsSavePasswordModalDismissed) case .updateUsername: - Pixel.fire(pixel: .autofillLoginsUpdateUsernameModalDismissed) + let isBackfilled = viewModel.isUpdatingEmptyUsername + Pixel.fire(pixel: .autofillLoginsUpdateUsernameModalDismissed, withAdditionalParameters: [PixelParameters.backfilled: String(describing: isBackfilled)]) case .updatePassword: - Pixel.fire(pixel: .autofillLoginsUpdatePasswordModalDismissed) + let isBackfilled = viewModel.isUpdatingEmptyPassword + Pixel.fire(pixel: .autofillLoginsUpdatePasswordModalDismissed, withAdditionalParameters: [PixelParameters.backfilled: String(describing: isBackfilled)]) } viewModel.viewControllerDidDisappear() @@ -103,9 +105,11 @@ class SaveLoginViewController: UIViewController { case .savePassword: Pixel.fire(pixel: .autofillLoginsSavePasswordModalDisplayed) case .updateUsername: - Pixel.fire(pixel: .autofillLoginsUpdateUsernameModalDisplayed) + let isBackfilled = saveViewModel.isUpdatingEmptyUsername + Pixel.fire(pixel: .autofillLoginsUpdateUsernameModalDisplayed, withAdditionalParameters: [PixelParameters.backfilled: String(describing: isBackfilled)]) case .updatePassword: - Pixel.fire(pixel: .autofillLoginsUpdatePasswordModalDisplayed) + let isBackfilled = saveViewModel.isUpdatingEmptyPassword + Pixel.fire(pixel: .autofillLoginsUpdatePasswordModalDisplayed, withAdditionalParameters: [PixelParameters.backfilled: String(describing: isBackfilled)]) } } } @@ -124,9 +128,11 @@ extension SaveLoginViewController: SaveLoginViewModelDelegate { delegate?.saveLoginViewController(self, didSaveCredentials: credentialManager.credentials) case .updatePassword, .updateUsername: if viewModel.layoutType == .updatePassword { - Pixel.fire(pixel: .autofillLoginsUpdatePasswordModalConfirmed) + let isBackfilled = viewModel.isUpdatingEmptyPassword + Pixel.fire(pixel: .autofillLoginsUpdatePasswordModalConfirmed, withAdditionalParameters: [PixelParameters.backfilled: String(describing: isBackfilled)]) } else { - Pixel.fire(pixel: .autofillLoginsUpdateUsernameModalConfirmed) + let isBackfilled = viewModel.isUpdatingEmptyUsername + Pixel.fire(pixel: .autofillLoginsUpdateUsernameModalConfirmed, withAdditionalParameters: [PixelParameters.backfilled: String(describing: isBackfilled)]) } delegate?.saveLoginViewController(self, didUpdateCredentials: credentialManager.credentials) } diff --git a/DuckDuckGo/SaveLoginViewModel.swift b/DuckDuckGo/SaveLoginViewModel.swift index d8adba63dc..b1e57ef935 100644 --- a/DuckDuckGo/SaveLoginViewModel.swift +++ b/DuckDuckGo/SaveLoginViewModel.swift @@ -88,10 +88,14 @@ final class SaveLoginViewModel: ObservableObject { credentialManager.hasSavedMatchingUsername } - var isUpdatingUsername: Bool { + var isUpdatingEmptyUsername: Bool { credentialManager.hasSavedMatchingPasswordWithoutUsername } + var isUpdatingEmptyPassword: Bool { + credentialManager.hasSavedMatchingUsernameWithoutPassword + } + var hiddenPassword: String { PasswordHider(password: credentialManager.visiblePassword).hiddenPassword } @@ -132,7 +136,7 @@ final class SaveLoginViewModel: ObservableObject { return .savePassword } - if isUpdatingUsername { + if isUpdatingEmptyUsername { return .updateUsername } From fe4c6137fd154bd8c7b2651cb3b7bfa588694e3e Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 16:08:01 +0100 Subject: [PATCH 11/14] Fix mock --- DuckDuckGo/SaveLoginView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/DuckDuckGo/SaveLoginView.swift b/DuckDuckGo/SaveLoginView.swift index 2a738213d0..1b624ca3c4 100644 --- a/DuckDuckGo/SaveLoginView.swift +++ b/DuckDuckGo/SaveLoginView.swift @@ -264,6 +264,7 @@ private enum Const { struct SaveLoginView_Previews: PreviewProvider { private struct MockManager: SaveAutofillLoginManagerProtocol { + var hasSavedMatchingUsernameWithoutPassword: Bool { false } var username: String { "dax@duck.com" } var visiblePassword: String { "supersecurepasswordquack" } From 10df761696241d023d18ba2ec337d4880e0d72e2 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 18:32:03 +0100 Subject: [PATCH 12/14] Point to remote feature flag --- Core/FeatureFlag.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/FeatureFlag.swift b/Core/FeatureFlag.swift index 0caf2bb0c9..7ec10ba680 100644 --- a/Core/FeatureFlag.swift +++ b/Core/FeatureFlag.swift @@ -103,7 +103,7 @@ extension FeatureFlag: FeatureFlagDescribing { case .autofillUnknownUsernameCategorization: return .remoteReleasable(.subfeature(AutofillSubfeature.unknownUsernameCategorization)) case .autofillPartialFormSaves: - return .internalOnly() + return .remoteReleasable(.subfeature(AutofillSubfeature.partialFormSaves)) case .incontextSignup: return .remoteReleasable(.feature(.incontextSignup)) case .autoconsentOnByDefault: From e969522a5d83b8cba72054d62c1447e1e300ca31 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 18:35:04 +0100 Subject: [PATCH 13/14] Update BSK with TLD change --- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 3b7da2940c..80ec95af26 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,7 +33,7 @@ "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { "branch" : "graeme/partial-form-save-refactor", - "revision" : "803f4628ecc09d1a15a145442d0d30ecda3c182f" + "revision" : "2d9339d4e20353a06d35e7747f1c167db549df5e" } }, { From 081e560fe14ea0e56ee90178a5e826a9e1df2d70 Mon Sep 17 00:00:00 2001 From: Graeme Arthur Date: Mon, 9 Dec 2024 18:41:17 +0100 Subject: [PATCH 14/14] Point to BSK 219.0.0 --- DuckDuckGo.xcodeproj/project.pbxproj | 4 ++-- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 225870f26e..7acbc8ef8c 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -11371,8 +11371,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { - branch = "graeme/partial-form-save-refactor"; - kind = branch; + kind = exactVersion; + version = 219.0.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 80ec95af26..f2ec97c5fa 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "branch" : "graeme/partial-form-save-refactor", - "revision" : "2d9339d4e20353a06d35e7747f1c167db549df5e" + "revision" : "20df9e22d5a69acfc25204fb0228a9d6f79b721f", + "version" : "219.0.0" } }, {