Onboarding: Updated copy and styling for Chrome extension installation option - #2906
Conversation
There was a problem hiding this comment.
Stale comment
Injected PR Evaluation: Web Compatibility & Security
PR: Rachel/chrome extension install updates (
b3475f4b)
Scope: 3 files, allspecial-pages/pages/onboarding/— CSS tooltip styling, English locale string, integration test selectors. Noinjected/,messaging/, or runtime injection changes.
Web Compatibility Assessment
No findings.
This PR does not touch content-scope injection, browser API overrides, wrapper utilities, or third-party page execution paths. Changes are confined to the first-party onboarding special page (embedded UI).
Info —
special-pages/pages/onboarding/public/locales/en/onboarding.json(~L473): Button label updated to title case ("Start Browser Setup"). Other locale files are unchanged; they will retain the previous casing until the updatedenstring is uploaded to Smartling. This is expected workflow, not a runtime regression.Info —
special-pages/pages/onboarding/app/v4/components/GetStartedContent.module.css(~L147–166): Tooltip width (182→228px), typography (10/500/14 → 12/400/15), and background (--ds-surface-primary→--ds-surface-tertiary) are cosmetic. The tertiary surface token is already used by the adjacent checkbox (L92), so this improves visual consistency.pointer-events: noneis preserved; no viewport or layout-shift risk.Info —
special-pages/pages/onboarding/integration-tests/onboarding.v4.spec.js: Test selectors updated to match the new button label. No behavioral test changes.
Security Assessment
No findings.
- No changes to
captured-globals.js, messaging transports, message bridge, ornativeDatahandling.- No new
postMessage,fetch, dynamic code execution, or DOM injection of page-derived values.- Chrome extension install flow (
requestChromeExtensionInstall) is pre-existing and unchanged in this PR.
Risk Level
Low Risk — Special-pages onboarding copy and tooltip CSS only; zero changes to injected runtime, API shims, or messaging security boundaries.
Recommendations
- Info: After merging, include the updated
getStartedButton_v4string in the next Smartling upload so non-English locales get the title-case label.- Info (optional): If screenshot tests cover the Chrome extension tooltip, consider updating baselines; otherwise manual visual check on the getStarted step with
chrome-extension-installenabled is sufficient.Sent by Cursor Automation: Web compat and sec
[Beta] Generated file diffTime updated: Mon, 27 Jul 2026 12:54:49 GMT Apple
File has changed Integration
File has changed Windows
File has changed |
Dismissing stale approval — new commits pushed, awaiting Cursor re-review.
…rings Add getStarted_chromeExtension_label and getStarted_chromeExtension_tooltip for all locales (de, es, fr, it, nl, pl, pt, ru). These shipped English-only in #2810, so non-English users saw the English checkbox label and tooltip via the TranslationProvider fallback. Also refresh getStarted_title_v4 and getStartedButton_v4, whose translations still reflected the pre-#2810 English copy: the clause about deciding when and how to use AI was absent from the title, and the button read a translation of "Let's do it!" instead of "Start browser setup".
Dismissing stale approval — new commits pushed, awaiting Cursor re-review.
Build Branch
Static preview entry points
QR codes (mobile preview)
Integration commandsnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", branch: "pr-releases/rachel/chrome-extension-install-updates")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/rachel/chrome-extension-install-updates
git -C submodules/content-scope-scripts checkout origin/pr-releases/rachel/chrome-extension-install-updatesPin to exact commitnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", revision: "7e3207e2bf9127c95a615135877f5551fd469760")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/rachel/chrome-extension-install-updates
git -C submodules/content-scope-scripts checkout 7e3207e2bf9127c95a615135877f5551fd469760 |
There was a problem hiding this comment.
Injected PR Evaluation: Web Compatibility & Security
Scope: 15 files, all under special-pages/pages/onboarding/ — CSS tooltip styling, locale copy, integration-test selectors, and screenshot baselines. No injected/ changes.
Web Compatibility Assessment
| File | Lines | Severity | Finding |
|---|---|---|---|
| (entire PR) | — | info | Changes are confined to the embedded onboarding special page. No browser API overrides, prototype patches, or third-party page interaction — zero web-compat surface for injected protections. |
GetStartedContent.module.css |
150–164 | info | Tooltip width increased (182→228 px) and typography adjusted to fit longer copy. white-space: normal + overflow-wrap: break-word are already present — good for i18n string length variance. |
public/locales/*/onboarding.json |
various | info | Non-EN locales gain getStarted_chromeExtension_* keys and updated getStarted_title_v4 / getStartedButton_v4 copy. Longer title strings may affect bubble layout on small viewports; screenshot baselines were rebaselined accordingly. |
integration-tests/onboarding.v4.spec.js |
13, 341, 394, 987, 1015 | info | Selector updated to match EN button casing (Start Browser Setup). Test-only; no runtime impact. |
No warnings or errors identified.
Security Assessment
| File | Lines | Severity | Finding |
|---|---|---|---|
| (entire PR) | — | info | No changes to messaging schemas, transports, captured-globals, message-bridge trust boundaries, or native notify/request call sites. |
GetStartedContent.js (unchanged) |
128–131 | info | Tooltip text is rendered as JSX text content ({tooltip}), not dangerouslySetInnerHTML — translation strings cannot inject HTML/CSS. (Pre-existing; not modified in this diff.) |
public/locales/*/onboarding.json |
various | info | Static Smartling-managed strings only; no page-derived or config-derived content in outgoing messages. |
No warnings, errors, or critical findings.
Risk Level
Low Risk — Copy, CSS, locale, and test-only changes within the onboarding special page; no injected runtime, API shimming, or messaging security surface touched.
Recommendations
- None required for injected web-compat or security.
- (Optional, info) Confirm non-EN
getStarted_title_v4strings render acceptably without{newline}on narrow macOS/Windows bubble widths — screenshots cover EN getStarted but not every locale. - (Pre-existing, out of scope)
requestChromeExtensionInstallnotify path inGetStartedContent.js/global.jsis user-opt-in gated by checkbox; no changes needed in this PR.
Sent by Cursor Automation: Web compat and sec




Asana Task/Github Issue: https://app.asana.com/1/137249556945/task/1216850214485079?focus=true
Description
Changes based on ship review feedback to the onboarding getStarted step updated in #2810:
Testing Steps
Checklist
Please tick all that apply:
Note
Low Risk
Copy, CSS, and locale-only changes with test selector updates; no logic or security changes.
Overview
Ship-review follow-up for the v4 getStarted step: Start Browser Setup is now title case in English, and integration tests click that label.
The Chrome extension info tooltip in
GetStartedContent.module.cssis wider, usessurface-tertiary, and uses larger, regular-weight text (12px / 15px line height).Locale files add or refresh v4 get-started copy (including AI-focused
getStarted_title_v4and setup button strings) and addgetStarted_chromeExtension_label/getStarted_chromeExtension_tooltipacross non-English bundles.Reviewed by Cursor Bugbot for commit 7d65797. Bugbot is set up for automated code reviews on this repo. Configure here.