Skip to content

Conversation

@janbrasna
Copy link
Contributor

📜 Tickets

Jira ticket FXIOS-13960
Github issue #30264

💡 Description

Stops flipping AppInfo.isChinaEdition based on just the app/device regional locale (while keeping other testing, debug & hidden prefs intact, full removal to be ticketed separately).

Desktop and Android stopped shipping their repacks similarly configured earlier this year.

The domestic infra is going away. FxA mozilla/application-services#7060 will point it to prod anyways soon; this accompanies it by hiding the prefs that stop having any effect. Everyone will get just the same global experience.

(If that proves to be a viable change in behavior going forwards, all the supporting settings, screens, config, debug settings, and testing stack can be removed as a next step.)

📝 Checklist

  • I filled in the ticket numbers and a description of my work
  • I updated the PR name to follow our PR naming guidelines
  • I ensured unit tests pass and wrote tests for new code
  • If needed, I updated documentation and added comments to complex code

@janbrasna janbrasna requested a review from a team as a code owner November 16, 2025 21:49
Copy link
Contributor Author

@janbrasna janbrasna left a comment

Choose a reason for hiding this comment

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

Given I wasn't able to find any plans for anything else than desktop, I'm basing this mostly on assumptions, and timing inferred from other products. This for now handles mostly new users, so they don't hit a dead end; the experience for existing signed-in users is perhaps more bumpy in case they were not targeted with any messaging how to proceed (or, have that awareness from, say, desktop previously…) — the idea basically is that by now everyone will be signed out anyways, so there's no harm to disable the domestic specifics and allow using the global features now, which after the A-S changeset ships would be the only endpoint no matter switches and prefs anyway.

(But I'm noting the rough edges in case QA wants to verify the scenarios in terms of being authenticated against an unavailable endpoint a little further…)

Comment on lines 41 to 47
if UserDefaults.standard.bool(forKey: AppInfo.debugPrefIsChinaEdition) {
return true
}
return Locale.current.identifier == "zh_CN"
// FIXME: FXIOS-13960 China FxA is no longer available, do not enable ChinaEdition based on locale
// return Locale.current.identifier == "zh_CN"
return false
}()
Copy link
Contributor Author

Choose a reason for hiding this comment

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

So basically this now only honors debugPrefIsChinaEdition (which then allows tinkering with the pref), otherwise appears "global":

🎥 Demos

Simulator.Screen.Recording.-.iPhone.16e.-.2025-11-17.at.00.05.40.mov

… e.g. it still honors KeyEnableChinaSyncService from past (or set while debugPrefIsChinaEdition) or from LaunchArguments — ideally there would be a followup to offboard people from the old service, and tell them to register for a new global account and sync with it, so that the app state doesn't keep the dead credentials for an offline endpoint for posterity? E.g. those signed in to the old sync would go through similar steps as the switch did:

to tell them to re-login (or sign up), as the domestic and global accounts don't share data or credentials.

However I'm not sure how realistic that is, in case the endpoint is dead already, and folks have basically either moved off, or are stuck (getting errors?) and not having the data synced anyways. Once the A-S patch linked above lands in a release, it will stop pointing to the domestic endpoint anyway — what happens when the authentication fails? Does it trigger a new re-login flow?

(Wondering whether FxA folks could add a note for zh-CN visitors on that login page to remind them their former domestic credentials won't work, and they should create a new account if they don't have one already…)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

FYI: The upstream A-S change landed in v147 already: mozilla/application-services@v146.0.2...v147.0 — so this would always point to the global server anyway.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 3, 2025

This PR has been automatically marked as stale. Please leave any comment to keep this PR opened. It will be closed automatically if no further update occurs in the next 7 days. Thank you for your contributions!

@github-actions github-actions bot added stale Stalebot use this label to stale issues and PRs and removed stale Stalebot use this label to stale issues and PRs labels Dec 3, 2025
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