Skip to content

[PM-32445] Extension Scrollbar Fix#20478

Draft
rr-bw wants to merge 19 commits intomainfrom
auth/pm-32445/extension-scrollbar-bug-fix
Draft

[PM-32445] Extension Scrollbar Fix#20478
rr-bw wants to merge 19 commits intomainfrom
auth/pm-32445/extension-scrollbar-bug-fix

Conversation

@rr-bw
Copy link
Copy Markdown
Contributor

@rr-bw rr-bw commented May 1, 2026

🎟️ Tracking

PM-32445

📔 Objective

This PR makes design tweaks to 3 pages on the Extension to ensure that a scrollbar does not appear:

  • /login
  • /login-with-passkey
  • /signup

There are two general "groups" of changes here:

  1. Changes that must be made in the app-routing.module.ts via route properties (ExtensionAnonLayoutWrapperData and AnonLayoutWrapperData). These changes effect the anon layout structure of the page (hero and footer sections).
  2. Changes that must be made on the individual components via client-specific services (a Default service and an Extension service). These are changes that apply to the component content itself.

📸 Screenshots

Extension - /login page (email entry screen)

login-email-entry

Extension - /login page (master password entry screen)

login-mp-entry

Extension - /login-with-passkey page (reading passkey screen)

passkey-reading

Extension - /login-with-passkey page (failure screen)

passkey-failed

Extension - /signup

signup

Web - Smoke Test

This video shows that Web UI remains unchanged (i.e. the Extension changes did not leak to Web)

web-smoke-test.mov

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 1, 2026

@codecov
Copy link
Copy Markdown

codecov Bot commented May 1, 2026

Codecov Report

❌ Patch coverage is 18.66667% with 61 lines in your changes missing coverage. Please review.
✅ Project coverage is 47.07%. Comparing base (4a50dd3) to head (3738812).
⚠️ Report is 6 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...login-via-webauthn/login-via-webauthn.component.ts 0.00% 12 Missing ⚠️
.../extension-login-via-webauthn-component.service.ts 0.00% 7 Missing ⚠️
...wrapper/extension-anon-layout-wrapper.component.ts 0.00% 6 Missing ⚠️
.../extension-registration-start-component.service.ts 0.00% 5 Missing ⚠️
...hn/default-login-via-webauthn-component.service.ts 0.00% 5 Missing ⚠️
...registration-start/registration-start.component.ts 0.00% 5 Missing ⚠️
libs/auth/src/angular/login/login.component.ts 0.00% 4 Missing ⚠️
...n/registration-start/registration-start.stories.ts 0.00% 4 Missing ⚠️
apps/browser/src/popup/services/services.module.ts 0.00% 3 Missing ⚠️
...rt/default-registration-start-component.service.ts 0.00% 3 Missing ⚠️
... and 6 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #20478      +/-   ##
==========================================
- Coverage   47.09%   47.07%   -0.02%     
==========================================
  Files        3949     3954       +5     
  Lines      119744   119765      +21     
  Branches    18345    18349       +4     
==========================================
- Hits        56393    56385       -8     
- Misses      59115    59147      +32     
+ Partials     4236     4233       -3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@rr-bw rr-bw added the ai-review Request a Claude code review label May 1, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

Reviewed a UI refinement that fixes the extension scrollbar issue by introducing per-client component configuration services for LoginComponent, LoginViaWebAuthnComponent, and RegistrationStartComponent, plus an adjustedLayout flag on AnonLayoutComponent and its child layout components. The pattern follows the existing DefaultLoginComponentService approach: an abstract class with concrete Default* and Extension* implementations registered through Angular DI. All three new abstract services are backed by concrete implementations in every client that consumes the parent component (web/browser for login + webauthn, web/desktop/browser for registration), and the storybook decorators were updated to mock the browser variant correctly. Translation keys (hint, useDifferentLoginMethod, receiveMarketingEmailsShort) were added to the affected locale files.

Code Review Details

No findings.

},
"receiveMarketingEmailsShort": {
"message": "Receive updates from Bitwarden in your inbox."
},
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This translations is not used on the Web app, but adding it here so that PreloadedEnglishI18nModule (located in web) works correctly in registartion-start.stories.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant