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

Add Sync feature flags #607

Merged
merged 17 commits into from
Dec 20, 2023
Merged

Add Sync feature flags #607

merged 17 commits into from
Dec 20, 2023

Conversation

ayoy
Copy link
Contributor

@ayoy ayoy commented Dec 19, 2023

Please review the release process for BrowserServicesKit here.

Required:

Task/Issue URL: https://app.asana.com/0/0/1206046777189407/f
iOS PR: duckduckgo/iOS#2279
macOS PR: duckduckgo/macos-browser#1992
What kind of version bump will this require?: Major

Description:
This change add support for Sync feature in Privacy Configuration, together with
4 subfeatures defining availability of various parts of Sync experience.
DDGSyncing gets a read-only feature flag variable as well as a publisher.
PrivacyConfigurationManager is now a Sync dependency, and DDGSync takes
care internally of listening to Privacy Config changes and updating feature flags
as needed.
Feature flag responsible for actual data syncing is handled internally in DDGSync
by cancelling all pending sync operations and disabling adding new operations.
Other feature flags should be handled by client apps.

Steps to test this PR:

  1. Fetch existing privacy config files for iOS and macOS.
  2. Serve them from a different location.
  3. Run each app, update Privacy Config URL (for macOS this can be done in runtime via Debug Menu).
  4. Manipulate feature flags and verify that they work according to the specification.

OS Testing:

  • iOS 14
  • iOS 15
  • iOS 16
  • macOS 10.15
  • macOS 11
  • macOS 12

Internal references:

Software Engineering Expectations
Technical Design Template

@ayoy ayoy self-assigned this Dec 19, 2023
@ayoy ayoy requested a review from bwaresiak December 20, 2023 07:41
@ayoy ayoy assigned bwaresiak and unassigned ayoy Dec 20, 2023
@ayoy ayoy marked this pull request as ready for review December 20, 2023 07:41
Copy link
Collaborator

@bwaresiak bwaresiak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job!

@ayoy ayoy merged commit d671acc into main Dec 20, 2023
5 checks passed
@ayoy ayoy deleted the dominik/sync-feature-flags branch December 20, 2023 15:36
samsymons added a commit that referenced this pull request Dec 21, 2023
* main: (39 commits)
  Fix privacy config fetch in debug mode (#606)
  Expose Internal User managing from Config (#610)
  Add Sync feature flags (#607)
  Fix Networking import into TestUtils (#609)
  Add Sync Success Rate pixel (#605)
  Add new logger (#604)
  Prevent VPN server list persistence failures (#603)
  SwiftLint plugin (#393)
  Update autofill to 10.0.2 (#599)
  Remove the reconnect/disconnect logic from the connection tester
  Fix an IPv6 regression. (#598)
  Quality metrics for Sync (#597)
  Report NetP connection attempts, tunnel failures, and latency (#584)
  Implement deleteAccount Sync endpoint (#596)
  Ensure that LinkPresentation framework is called on main thread (#595)
  No longer excluding the 10.0.0.0/8 range (#594)
  Update autofill to 10.0.1 (#591)
  Implement deleteAccount Sync endpoint (#596)
  Ensure that LinkPresentation framework is called on main thread (#595)
  No longer excluding the 10.0.0.0/8 range (#594)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants