Repository navigation
fix(settings): wrap password strength bullets in translate="no" spans - #21664
fxa-agent[bot] wants to merge 1 commit into
Conversation
Because: * Chrome Translate replaces the bare bullet text nodes in the password rules with <font>, and React then throws NotFoundError on the first keystroke. This commit: * Puts each bullet in PasswordStrengthInline in a <span translate="no">. * Replaces each bullet and icon pair with one ternary, with the same conditions. Closes FXA-14838
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Mark empty-state bullets as non-translatable packages/fxa-settings/src/components/PasswordStrengthInline/index.tsx |
The minimum-length, not-email, not-common, and password-match indicators wrap their empty-state bullets in spans marked translate="no". Validation icon paths and display conditions are unchanged. |
Estimated code review effort: 1 (Trivial) | ~4 minutes
Change: Bug fix
Suggested reviewers: dschom
Merge Risk: 
Minimal · up to 57e04
-
The change is ready to merge with no identified functional or availability risk.
Pre-merge checks: 
8
-
Full details: Title check
-
Explanation
The title uses the required
fix(scope): subjectformat, identifies the settings scope and password strength bullet change, uses imperative present tense, starts the subject in lowercase, has no trailing period, and is 69 characters long.
Full details: Sensitive Data Protection And Privacy
-
Explanation
PASS. The pull request changes only
PasswordStrengthInline/index.tsx. It replaces bare bullet text withspan translate="no"elements and preserves existing validation conditions. The diff adds no logging, metrics, Sentry events, error messages, data collection, third-party integrations, credentials, or query/cache changes.
Full details: Security, Audit, And Regulatory Control Integrity
-
Explanation
PASS: The pull request changes only
PasswordStrengthInline/index.tsx. It wraps existing bullet characters inspan translate="no"elements and preserves the existing password validation conditions andhasErrorvalues. The diff contains no changes to authentication, session or token validation, rate limiting, cryptography, webhook verification, audit logging, or PCI/GDPR controls.
Full details: Performance And Algorithmic Complexity Review
-
Explanation
The PR changes only
PasswordStrengthInline/index.tsx. It replaces five bare bullet text nodes withtranslate="no"spans and equivalent ternary branches. The change adds no loops, data-store calls, unbounded state, synchronous expensive work, or new React rerender paths. The existinguseMemodependency and validation conditions remain unchanged.
Full details: Database Migration Safety
-
Explanation
The pull request changes only
packages/fxa-settings/src/components/PasswordStrengthInline/index.tsx. No file underpackages/db-migrations/databases/*/patches/or anytarget-patch.jsonis modified, added, or deleted. The database migration safety conditions are therefore not triggered.
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
Because
•text nodes in the password rules with<font>elements.NotFoundError.This pull request
PasswordStrengthInline/index.tsx. Each•is now inside<span translate="no">.ValidationIcon.hasErrorvalues are the same. The rendered output looks the same.Risk
Risk: Medium (the worst of the three below)
Issue that this pull request solves
Closes: https://mozilla-hub.atlassian.net/browse/FXA-14838
Checklist
Put an
xin the boxes that applyHow to review (Optional)
packages/fxa-settings/src/components/PasswordStrengthInline/index.tsxScreenshots (Optional)
No visible change. Videos of the two functional flows are attached.
Other information (Optional)
Tests I ran:
PasswordStrengthInline/index.test.tsx: passed.tsc --noEmitfor fxa-settings: passed.signup.spec.ts"signup web" passed.resetPassword.spec.ts"can reset password" passed.Reproduction check, not in the PR:
<font>•</font>. Then it re-rendered with a non-empty password.passwordFormType"reset").NotFoundError. With this change: 2 of 2 passed.Follow-up, out of scope:
packages/fxa-settings/src/lib/recovery-phone-utils.tsxalso returns a bare•string.Merge Confidence: 4/5
Wraps each password-requirement bullet in a
<span translate="no">to prevent browser translation from replacing the bullet text node. The existing conditions and validation icons remain unchanged. The change is limited to the password-strength component.Test results are not verified from the supplied evidence.