Commit Graph

2936 Commits

Author SHA1 Message Date
Nik Gilmore
20a3d48e6a
[PM-33933] Update autofill dialog for 'never' match setting (#20189)
* [PM-33933] Update autofill dialog for 'never' match setting

* Fix bug where the matching URI isn't the 'never' URI
2026-06-03 17:51:52 -04:00
Daniel Riera
06f7747a82
[PM-36277]Save login notification not appearing on Facebook (#20814)
* WIP parking changes, currently created a small helper for notifications which checks if we should defer notifications due to passkey UI

* remove isCredentialRequestInProgress, update tests, early return on null activeRequest in shouldDeferVaultNotification

* preserve isCredentialRequestInProgress
2026-06-03 14:10:31 +00:00
Jordan Aasen
8b48304c99
[PM-31084] - migrate badge to chip-action in vault components (#20606)
* migrate badge to chip

* add type="button"

* fix test

* add missing type attrs

* remove file
2026-06-02 11:30:08 -07:00
adudek-bw
f9c569379c
Add new SendApiServer that uses the SDK (#20170)
* Add new SendApiServer that uses the SDK
2026-06-02 14:19:45 -04:00
blackwood
f0bc8d0c46
[PM-35196] Mutation memory management (#20871)
* pass addedElements to checkForNewShadowRoots

* Fix checkForNewShadowRoots latch and nested-shadow traversal

Two bugs in checkForNewShadowRoots, addressed together because they share
the function and the test surface:

1. pageContainsShadowDom resolved at init() and never re-evaluated. On
   sites that attach shadow DOM after init (e.g., hbomax.com — SPAs that
   boot their custom-element renderers post-LOAD), the short-circuit
   blocked all detection for the rest of the session.

2. The narrow scan used el.querySelectorAll("*"), which does not pierce
   shadow boundaries. A shadow host nested inside another shadow root was
   invisible to the scan even when the latch was on.

Changes:

- Narrow the latch short-circuit: fires only when both
  pageContainsShadowDom is false AND addedElements is empty.
- markShadowDomPresent: a named, one-way sticky-ratchet transition that
  flips the latch when the narrow scan finds a root post-init.
- scanForNewShadowRootInSubtree: a depth-bounded recursive helper that
  pierces nested shadow boundaries (MAX_DEEP_QUERY_RECURSION_DEPTH = 4).
- pendingMutationAddedElements: now Set<Element>; isConnected filter at
  the debounced flush skips dead trees.

* Ancestor suppression and set management.

* Swap MutationRecord[][] for el->set<attr>; swap-on-drain, clear maps, clear shadow-root candidate on overflow and expose stats.

* Short-circuit checkMutationsInShadowRoots when pageContainsShadowDom is false

* Narrow requirePageDetailsUpdate to flag-only; schedule in debounce wrapper

* Collapse observedShadowRoots WeakSet into knownShadowRoots Set

* Gate new-shadow-root detection on addedNodes.length > 0

* Reap detached shadow roots from knownShadowRoots in the drain

* Instrument observer hot paths with stopwatch and fieldsReaped counter

* Remove autofill observer instrumentation.

* Reap unconditionally since shadow hosts may obscure mutated nodes.

* De-abbreviate; reap->purge; explanatory comment on cap.

* Revert "Reap unconditionally since shadow hosts may obscure mutated nodes."

This reverts commit 6637bfd65c.

* Unconditionally purge in processMutations.

---------

Co-authored-by: addisonbeck <github@addisonbeck.com>
2026-06-02 14:17:43 -04:00
Jonathan Prusik
9c7c9ab75b
let the browser client assemble the targeting rules manifest.json URI (#21001) 2026-06-02 13:20:51 -04:00
Konrad
13a1ed21e8
Remove unused strings (#20608)
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
2026-06-02 15:12:10 +00:00
✨ Audrey ✨
1154946ac3
[PM-38243] introduce point-in-time performance metrics (#20888) 2026-06-02 10:46:18 -04:00
Nick Krantz
e926d5c749
[PM-38185] Safari numeric values translations (#20964)
* fix safari bug for numeric values in translation placeholders

* replace strict types - accidental removal
2026-06-02 09:08:51 -05:00
Bernd Schoolmann
d4acb9e67e
[PM-37875] Split out crypto verification UI (#20856)
* Extract user crypto dialog to ui module

* Fix build

* Prettier

* Fix DI injection
2026-06-02 08:13:39 -05:00
github-actions[bot]
157134f500
Bumped client version(s) (#20950)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
2026-06-01 16:57:55 -04:00
bw-ghapp[bot]
8108f172e4
Autosync the updated translations (#20692)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
2026-06-01 22:34:50 +02:00
Nick Krantz
b16d99dafc
[PM-37798] Fix bank account section label to show "Bank account details" (#20779) 2026-06-01 11:13:51 -05:00
Bernd Schoolmann
1ad0d902b2
[Shared Unlock] [PM-35083] Add shared unlock typescript drivers and services (#20589)
* Add shared unlock TS services

* Add newline

* Small cleanup

* Fix type error

* Fix type issue

* Eslint and prettier fixes

* Cleanup

* Prevent eslint error

* Prettier

* Add tests

* Cleanup

* Fix type issue

* Cleanup

* Implement basic version of flagged biometrics ipc over sdk ipc

* Move code

* Noop ipc service

* Clean up unlock service

* Undo change to spec ts

* Rename unlock decrypted key

* Remove unused var

* Remove unused import

* Prettier

* Fix eslint

* Ensure connected

* Undo changes to electron key service

* Newline

* Newline

* Remove biometrics.ts

* Fix

* Use unlock service for unlocking on shared unlock

* Cleanup comment

* Cleanup

* Prettier and eslint cleanup

* Prettier

* Fix test

* Eslint

* Fix types

* Remove log

* Remove service

* Remove unused file

* Cleanup

* Fix DI

* Set unlock service on biometric service

* Address feedback

* Await floating promise

* Prettier

* Convert driver to class

* Relative imports

* Relative imports

* Remove unused code

* Non null assertion
2026-06-01 09:26:21 -04:00
Bernd Schoolmann
ceb7cd4a5f
[Shared Unlock] [PM-35083] Implement biometrics over sdk IPC (#20689)
* Implement basic version of flagged biometrics ipc over sdk ipc

* Move code

* Noop ipc service

* Clean up unlock service

* Undo change to spec ts

* Rename unlock decrypted key

* Remove unused var

* Remove unused import

* Prettier

* Fix eslint

* Ensure connected

* Undo changes to electron key service

* Newline

* Newline

* Cleanup

* Prettier and eslint cleanup

* Prettier

* Fix test

* Eslint

* Fix types

* Remove log

* Remove service

* Remove unused file

* Cleanup

* Fix DI

* Set unlock service on biometric service

* Address feedback

* Await floating promise

* Prettier

* Make biometrics driver a class

* Add error log
2026-06-01 09:00:19 +02:00
Todd Martin
5e09251cee
feat(install-tab): Managed install check for displaying getting started tab
* Propose new managed install check.

* Refactors.

* Inverted the logic to be positive.

* Added Development to allowList, with override.
2026-05-29 15:52:56 -04:00
Leslie Xiong
42b0a4dff2
[CL-963] Update breadcrumb styles (#20085) 2026-05-29 12:59:13 -04:00
Andy Pixley
8bef396f66
[BRE-1949] Removing duplicate messages keys (#20916) 2026-05-29 12:25:23 -04:00
Nick Krantz
ed8b37e025
[PM-35656] Update Copy functionality for new item types (#20708)
* update copy options for new item types

* add event collection for new item types

* bump sdk version

* formatting

* Update apps/desktop/src/vault/app/vault-v3/vault-orig.component.ts

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-05-27 21:32:15 -05:00
Thomas Rittson
007b5d9335
[PM-34157] Wire up SDK to NewPolicyService (#20377)
* Add shim in PolicyService to NewPolicyService
* Wire up NewPoilcyService to SDK
* Use SDK enum
2026-05-28 07:14:53 +10:00
Nick Krantz
500345d57f
[PM-37970] Fix vault list icons for Login and Identity with new item types flag (#20818)
* update cipher icons per the new items feature flag

* fix testing dependencies
2026-05-27 16:01:39 -05:00
Bryan Cunningham
045992b426
[PM-36823] ensure browser uses Inter font (#20864)
* ensure browser uses Inter font

* move override from theme

* match existing import patterns

* update imports

* apply fix to correct tsconfig
2026-05-27 16:31:30 -04:00
Stephon Brown
283a0782c2
[PM-35228] Add Premium Status Changed Push Notification (#20498) 2026-05-27 14:32:17 -04:00
Ben Brooks
7547eafe8f
[PM-34497] Handle Same-Origin iframes in queryDeepSelector (#20401)
* [PM-34497] Extend queryDeepSelector to traverse same-origin iframes
* [PM-34497] Adjust focused field rects by iframe offset for DeepSelector traversal
* [PM-34497] Separate iframe and shadow DOM traversal in queryDeepSelector
* [PM-34497] Fix implicit any type error on next variable in queryDeepSelector
* [PM-34497] Route iframe >>> targeting rule selectors to the correct frame to fix field position
* [PM-34497] Use this.sendExtensionMessage for consistency and testability
* [PM-34497] Remove unnecessary updateOverlayCiphers call
* [PM-34497] Use loop index for targeted field opid uniqueness
* [PM-34497] Inline traverseIframeBoundary at its single call site
* [PM-34497] Add deep selector tests for nested shadow roots and iframes
* [PM-34497] Tag-qualify selectors in deep selector iframe tests
* [PM-34497] Add FIXME for authoritative iframe-vs-shadow boundary handling

---------

Signed-off-by: Ben Brooks <bbrooks@bitwarden.com>
2026-05-27 10:16:17 -07:00
Nancy Sangani
17a32ecda6
[PM-33781] fix(fido2): fall back to browser for hardware/CTAP1 keys not in vault (#19606)
* fix(fido2): fall back to browser for hardware/CTAP1 keys not in vault

* fix(fido2): remove vault-lookup fallback, keep transport-only fallback

* refactor(fido2): replace parallel transport array with single allowedCredentials descriptor list

---------

Co-authored-by: kmancusi0105 <kmancusi@bitwarden.com>
2026-05-27 08:56:11 +02:00
adudek-bw
9cd114cae1
Remove feature flag check from password generation (#20671)
* Remove feature flag check from password generation

* Claude review changes
2026-05-26 17:07:28 -04:00
Jackson Engstrom
adbe9d8b7d
[PM-31832] Update *ngIf/*ngFor to @if/@for in vault browser components (#18818) 2026-05-26 13:10:14 -07:00
Bryan Cunningham
f6ea7dd6bf
[CL-1204] bulk actions bar (#20735)
* adding bulk actions bar

* responsive bulk actions bar

* allow for custom position of menu

* remove border from compact container

* do not screenshot table story

* supress tooltip showing when a menu is open

* updated docs

* add aria-label to icon only actions

* add aria-label to additional actions button

* fix spec descriptions

* add missing translations

* more grammatically corrrect annoucement

* have consumer provide their own menu

* use data holder components to solve for menu complexities

* use actual icon

* fix trigger being added twice

* rebuild focusKeyManager in case actions change

* address strong agree feedback comments

* update spacing tovisually align dividers

* rename input to avoid collision with popover/coachmark position input

* merge positions

* fix test

* simplify compact mode logic

* more verbose keydown handling for a11y

* remove commented code left in error
2026-05-26 11:31:25 -04:00
Todd Martin
ea790ca93f
chore(revert): [PM-37816] Revert removal of Getting Started tab on extension install
This reverts commit 7fb6c8ef0a.
2026-05-21 11:42:02 -04:00
Todd Martin
7fb6c8ef0a
feat(extension-install): [PM-37816] Remove Getting Started tab on extension install 2026-05-20 15:11:22 -04:00
Will Martin
d7d74825f8
[CL-1046] Add no-bit-dialog-wrapper lint rule (#20698)
* [CL-1046] Add no-bit-dialog-wrapper lint rule

Errors when <bit-dialog> or <bit-simple-dialog> appears inside any
parent HTML element. The dialog selector should be applied as an
attribute on the root element (e.g. <form bit-dialog>) so that the
form receives the dialog's height styling.

* Migrate admin console dialogs to new form pattern

Updates organization member, group, collection, provider, and domain verification dialogs to use <form bit-dialog> pattern following the component library updates.

* Migrate auth settings dialogs to new form pattern

Updates two-factor authentication, WebAuthn, and emergency access dialogs to use <form bit-dialog> pattern following the component library updates.

* Migrate Secrets Manager dialogs to new form pattern

Updates project, service account, access token, and secret dialogs to use <form bit-dialog> pattern following the component library updates.

* Migrate remaining dialogs to new form pattern

Applies the <form bit-dialog> / <form bit-simple-dialog> attribute selector
pattern to the rest of the codebase, satisfying the no-bit-dialog-wrapper
lint rule. 55 templates across auth, admin console, billing, vault,
key management, secrets manager, provider, dirt integrations, importer,
browser, and desktop apps.

* Migrate key rotation dialog to new form pattern
2026-05-20 09:47:14 -04:00
Nick Krantz
77218dae08
[CL] disable the CDK from using the native popover API globally (#20730) 2026-05-19 15:59:51 -04:00
Will Martin
69c937e592
[CL-954] Upgrade to Angular 21 (#19725)
* prune desktop packages

* Fix @napi-rs/cli version mismatch in desktop napi workspace

Aligns package.json declaration with the locked version (3.2.0) to
resolve npm workspace inconsistency that was blocking ng update.

* update Storybook to v10

* update Angular to v21

* override jest in ng builder

* Add jest-environment-jsdom as explicit dependency

Previously installed as a side effect of a jest@29 override; removing
that override caused it to disappear from node_modules.

* Add .claude/worktrees/ to .gitignore

* Restore @napi-rs/cli to 3.5.1 to match main

* Pin jest-environment-jsdom to 29.7.0 and add to renovate config

* Override jest-environment-jsdom to 29.7.0 in build-angular context

* Add isolatedModules to libs/subscription tsconfig.spec.json to fix Angular 21 module resolution

* Change moduleResolution to bundler for Angular 21 subpath export compatibility

* Add isolatedModules to Angular libs with old spec tsconfig pattern

* Disable emitDecoratorMetadata in spec tsconfigs with isolatedModules

* Fix HostListener event parameter types for Angular 21 compiler strictness

* Revert accidental change to access-selector spec

* Remove accidentally generated desktop package-lock.json

* Fix type-only imports/exports caught by Rolldown in Storybook v10/Vite v8

* fix vault-wrapper type error from Angular 21 stricter generic inference

ngComponentOutlet accepts Type<unknown>; annotate computed() explicitly
since VaultComponent is generic and VaultOrigComponent is not, preventing
TypeScript from inferring a compatible union constructor type.

* Fix kitchen-sink interaction tests for Storybook v10

Replace fire-and-forget navigateTo + synchronous getByRole with
navigateAndWaitFor<T>, which sets the hash and retries the ready
callback via waitFor. Storybook v10 starts play functions before
Angular's initial router navigation completes, so synchronous DOM
queries after navigation were failing intermittently.

* Provide ZoneJS change detection scheduler for Storybook stories

Angular 21 no longer sets up the ZoneJS change detection scheduler by
default in bootstrapApplication. Storybook's Angular renderer uses
bootstrapApplication internally and does not add provideZoneChangeDetection
automatically, so Default CD components relying on zone.js to trigger
re-renders after async operations were not updating before Chromatic
snapshots.

* Wait for dialog/side nav to render before Chromatic snapshot

After userEvent.click the dialog and side nav open asynchronously.
Without an explicit waitFor, Chromatic captures the snapshot before the
resulting UI state is present.

* Fix kitchen-sink waitFor: re-query side nav button, use querySelector for dialog

- openSideNav: re-query the toggle button inside waitFor to avoid reading
  a stale DOM reference after Angular re-renders the element post-click
- SimpleDialogOpen / VirtualScrollBlockingDialog: replace getByRole("dialog")
  with querySelector("cdk-dialog-container") to avoid testing-library's
  visibility check failing on a momentarily inaccessible overlay element

* Revert kitchen-sink stories to main

* Bump Angular, Storybook, and ng-select to latest patch versions

* Trigger pre-commit hooks on merge

* Regenerate package-lock.json with --force to fix npm ci sync
2026-05-18 10:55:47 -05:00
Leslie Xiong
1053964b03
[CL-999] Update tabs (#20010)
* WIP updated tab styles and added responsive behavior

* fixes after converting class properties to readonly signals

* - updated host binding to component definition
- converted static class properties to `readonly`

* fixed overflow more button tabindex

* - named `tw-group` in `tab-list-item.directive`
- exported `tabListContainerGap` px value

* migrated `@Input` to `model`

* added tab ordering behavior when selecting from overflow menu

* - updated tabs mdx and stories
- updated tab header margin
- fixed selected tab bottom border not displaying
- fixed keyboard nav between tabs

* fixed type error

* - added 'preserveContentTabs' and 'keyboardNavigation' stories to mdx
- updated 'preserveContent' jsdoc to fix formatting in story

* renamed to `TAB_LIST_CONTAINER_GAP`

* - removed `tw-border-0`
- added "more" translation

* added "more" translation to desktop and browser

* added new line

* updated navigation tabs to include 'bitLabelDirective', trailing icons, overflow responsive behavior

* - removed horizontal spacing from tab group and tab body content
- updated tabs in dialog story and 'header' component to horizontally align tabs correctly

* added "more" translation to kitchen-sink stories

* fixed 'EmptyTab' story for overflow tab behavior

* fix chromatic build error

* updated to `contentChild()`

* fixing keyboard navigation

* add specs for tabs components

* remove debugging text

* remove unused input

* use signal and update styles

* fix keyboard navigation and misalignment

* fix berry rendering bug

* remove tab role from more button

* remove getters and use inject

* remove disablePadding left in error

* remove obsolete input

* fix broken aria attr

* update trailingIcon to endIcon

* remove label directive and use start icon

* apply gap to host style property

* fix broken exports and imports

* remove active getter

* use anchors for overflow menu

* render start icon in tab link component

* remove unneeded aria attr

* display start icon in list and use correct menu item slots

* fix overflow label not rendering

* minor grammar update

* remove unused imports

* [CL-667] refactor(components): extract reusable overflow-list directive (#20651)

* refactor(components): extract reusable overflow-list directive

* refactor(overflow-list): collapse measurement effect into afterNextRender

The closure-flag effect was working around a timing claim that doesn't hold:
content queries are populated by ngAfterContentInit, well before afterNextRender
runs. A single afterNextRender callback covers measurement, RO attachment, and
cleanup — no mutable flag, no zombie effect re-firing on every items() change.

* fix(overflow-list): drop host overflow:hidden clipping focus rings

The host's overflow:hidden was clipping tab focus rings (and any other
legitimate visual overflow). Items get [hidden] applied synchronously
when they overflow, so the clipping safety net wasn't earning its cost.

* fix(tab-nav-bar): apply roving tabindex to align with tab-group

tab-nav-bar already installs a FocusKeyManager for arrow-key navigation,
but every tab-link was also a natural tab stop — so users tabbing through
the page hit each link individually instead of one stop for the nav.

Push tabindex state down from the parent in updateActiveLink: the active
(or first non-disabled) link gets 0, the rest get -1. Seeded once from
ngAfterViewInit so the initial route lands with correct tab order.

* update tab group

---------

Co-authored-by: Bryan Cunningham <bryan.cunningham@me.com>
Co-authored-by: Will Martin <contact@willmartian.com>
2026-05-18 08:50:08 -04:00
Bernd Schoolmann
bf51cd9c96
[Shared Unlock] [PM-34508] Default enable native messaging permission on browser (#19907)
* Default enable native messaging

* Fix eslint issues

* Eslint

* Clean up tests

* Clean up tests

* Prettier

* Remove comment

* Cleanup tests

* Cleanup

* Cleanup

* Cleanup

* Remove stale mock

* Prettier
2026-05-18 20:03:28 +09:00
SmithThe4th
c07c4707d0
[PM-29654] Hide copy button when custom field has no value (#20459)
Some checks failed
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
* Hide copy buttone when there is no value

* Added no value entered to the screenreader
2026-05-15 16:26:21 -05:00
Mike Amirault
84a4bdb927
[PM-32743] Convert collections to folders when importing into My Items (#20453)
* [PM-32743] Convert collections to folders when importing into My Items

* Fix multi collection detection bug

* Add tests
2026-05-15 14:03:18 -07:00
Nik Gilmore
83b7f64edd
[PM-37485] Bugfix: Autofill settings do not save in browser extension (#20658) 2026-05-15 13:40:08 -07:00
Daniel Riera
aa5879f4a3
[PM-35378]Remove stale iconServerUrl (#20549)
* update icon component to drop trailing slash

* apply same trailing slash logic in notification background and adjust iconServerUrl type

* remove trailing slash simplification, keep downstream normalization behavior

* align iconsServerUrl typing with buildCipherIcon contract

* testing that the current env url is updated
2026-05-15 14:08:00 -05:00
Jordan Aasen
0acda8661b
[PM-16191] - fix popup width when opening in popped out mode (#20188)
* fix popup width when opening in popped out mode, fix autofill inline menu opening, respect browser size in popped-out mode

* Co-authored-by: capenapplebw <capple@bitwarden.com>
2026-05-15 13:14:35 -04:00
Nick Krantz
a642ed0abf
[PM-32738] Passport Web (#20514)
* add passport translations

* add passport to web app

* add date-field-group to combine logic for reuse across cipher types

* implement date field for passport

* Add missing passport model files and integrate into cipher models

* update section heading

* Remove numeric values from month selector

* add copy action for national identification number

* fix tests

* omit linked types

* add placeholder for AC

* fix test

* emit failures to validation from child form

* remove old tests

* update date field component to match drivers license implementation

* fix removed translations that were duplicates between drivers license PR and passport

* add events for passport number viewed

* fix update to bank account to quiet down the diff

* collect number visible event

* add passport getter

* add fixedWith for icon
2026-05-15 11:17:26 -05:00
Daniel Riera
28d6c2ce2a
[PM-31652]Inline autofill for totp code on vimeo.com login does not appear (#20436)
* add security code to totpFieldNames

* bail early on isEmailField if totpfield, this pattern exists for other checks

* early bail test
2026-05-15 12:08:55 -04:00
bw-ghapp[bot]
746dd3d288
Autosync the updated translations (#20660)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
2026-05-15 09:35:09 +02:00
Bernd Schoolmann
ab941afa89
[PM-31061] Implement biometrics migration (#20506)
* Revert "Revert "[PM-31061] Implement biometrics migration (#20127)" (#20455)"

This reverts commit 7ddfddc695.

* Update sdk

* Clean up lock file

* Restore package lock

* Package lock

* Fix tests

* Remove unused mocks

* Cleanup

* Remove imports

* Revert changes to main.ts

* Deduplicate setting of key id

* Cleanup

* Prettier

* Update libs/common/src/key-management/encrypted-migrator/default-encrypted-migrator.spec.ts

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>

* Update apps/browser/src/key-management/biometrics/foreground-browser-biometrics.ts

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>

---------

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2026-05-15 12:22:41 +09:00
Stephon Brown
464215f317
[PM-29073] Remove Premium Badge Opens New Premium Upgrade Feature Flag (#20287)
* chore(feature-flags): remove PM23713 premium upgrade dialog flag

* refactor(browser): always open unified premium upgrade dialog

* test(browser): update premium upgrade prompt service spec

* refactor(desktop): always open unified premium upgrade dialog

* test(desktop): update premium upgrade prompt service spec

* refactor(web): always open unified premium upgrade dialog and remove dependencies

* refactor(web): remove unused providers from core.module

* test(web): update premium upgrade prompt service spec

* fix(billing): run prettier format

* refactor(desktop): move premium upgrade prompt service to billing directory

* refactor(browser): move browser-premium-upgrade-prompt.service to billing directory

* refactor(web): move web-premium-upgrade-prompt.service to billing directory

* refactor(browser): move browser-premium-upgrade-prompt.service to popup directory

* refactor(web): reorder imports in core.module
2026-05-14 18:43:53 -04:00
Nick Krantz
e3a22ccd34
[PM-34108] Add Driver's License to browser (#20638)
* [PM-34108] Add Driver's License copy actions to browser vault list

* [PM-34108] Add missing Driver's License i18n keys to browser en messages

* prefer else syntax
2026-05-14 09:34:16 -05:00
Nick Krantz
9eb416200b
[PM-36877] Remove nudge from bank account cipher type (#20561) 2026-05-14 08:49:38 -05:00
✨ Audrey ✨
6f3d3239c2
[PM-35399] autofill chrome performance tuning (#20622)
Some checks failed
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
* reduce prevalence of observer cascades and frequency of shadow DOM detection
* probe closed roots only on valid elements
* add fixmes and doc updates for intentional optimizations

---------

Co-authored-by: Marton Danko <marton.danko@worldline.com>
2026-05-13 17:08:44 -04:00
Nick Krantz
607bf07e42
[PM-32693] Driver's License for the Web (#20461)
* add passport and drivers license to cipher for breaking changes

* initial add of drivers license to the web

* fix copy actions and hidden fields for drivers license

* handle events for driver license

* exclude license from filters when feature flag is off

* format dates properly to match designs

* allow for cipher types to not have a nudge associated with them

* fix subtitle to match designs

* update i18n key names to avoid regression

* fix import order

* fix tests

* fix tests

* fix: update i18n key for driver's license in emergency-access dialog

* fix: update i18n keys for driver's license in vault-item-dialog

* fix: remove duplicate keys in cipher test fixture

* fix: correct indentation in permissions ternary operator

* fix: remove redundant ng-container wrapper in vault-cipher-row

* missed a test case fix

* prettier

* add date-field-group to combine logic for reuse across cipher types

* update drivers license components to use new date component

* update strict typing

* fix add-item dialog tests

* Remove passport model files from drivers-license branch

* Remove numeric values from month selector

* update copy actions

* fix tests

* address local code review

* omit linked fields

* Update apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.ts

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* swap order of issuing authority

* surface date errors to parent form

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-05-13 09:49:41 -05:00
github-actions[bot]
6dae1f4a2a
Bump client version(s) (#20626)
* Bumped client version(s)

* minor change to trigger workflows

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Amy Galles <9685081+AmyLGalles@users.noreply.github.com>
2026-05-13 12:09:10 +02:00