1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-19 02:44:01 +00:00
Commit Graph

2494 Commits

Author SHA1 Message Date
bw-ghapp[bot]
2f967e798f Autosync the updated translations (#17712)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-17 09:24:31 -08:00
Github Actions
77dbb14002 Bumped client version(s) 2026-02-17 09:24:30 -08:00
Bernd Schoolmann
066ab2e0c8 [PM-28446] Log package types (#17496)
* User agent

* Update to use header

* Fix build on cli

* Replace unsandboxed with unknown

* Apply feedback

* Prevent sending null values
2026-02-17 09:24:29 -08:00
John Harrington
1931e9ab4d PM-22143 Refactor TS enums to be const objects (Send specific enums) (#16399) 2026-02-17 09:24:29 -08:00
Jordan Aasen
3378c4a62d [PM-23384] - adjust copy for monthly price in Premium Upgrade dialog (#17668)
* adjust copy for month/annual price

* use i18n pipe

* remove annually key

* change per month to month
2026-02-17 09:24:29 -08:00
Nick Krantz
9a1fb7afb6 use default-trailing slot for attachments on the at-risk passwords page (#17203) 2026-02-17 09:24:26 -08:00
Nick Krantz
1f68368d36 update translation key to use noun form of archive (#17500) 2026-02-17 09:24:26 -08:00
Jordan Aasen
231ec865d0 [PM-28817] - update copy for vault premium spotlight (#17667)
* update copy for vault premium spotlight

* remove unecessary observable

* fix logic
2026-02-17 09:24:25 -08:00
Daniel Riera
49a555c2d9 [PM-27821]Add validation of extension origin for uses of window.postMessage (#17476)
* PM-27821 - Replace chrome.runtime.getURL() with BrowserApi.getRuntimeURL() for consistency
- Add extension origin validation for all window.postMessage calls
- Implement token-based authentication for inline menu communications
- Add message source validation (event.source === globalThis.parent)
- Add command presence validation (- Update notification bar to validate message origins and commands
- Add extensionOrigin property to services using postMessage
- Generate session tokens for inline menu containers (32-char random)
- Validate tokens in message handlers to prevent unauthorized commands

* Add explicit token validation

* only set when receiving the trusted initNotificationBar message

* await windowmessageorigin before posting to parent

* fix tests

* the parent must include its origin in the message for notification bar race condition

* reduce if statements to one block and comment

* extract parentOrigin from the URL and set windoMessageOrigin accordingly

* consolidate if statements

* add bar.spec file

* fix merge conflict
2026-02-17 09:24:24 -08:00
Jordan Aasen
81967f83e2 [PM-28376] - update copy for autofill confirmation dialog url list expand button (#17594)
* update copy for autofill confirmation dialog url list expand button

* fix tests
2026-02-17 09:24:24 -08:00
Nick Krantz
ec4773e9bc [PM-26359] Archive Upgrade - Browser (#16904)
* add archive upgrade flow to more options menu

* add reprompt for archiving a cipher

* add premium badge for archive in settings

* update showArchive to only look at the feature flag

* add premium badge for browser settings

* add event to prompt for premium

* formatting

* update test
2026-02-17 09:24:24 -08:00
Dave
cca7fe6a40 feat(user-decryption-options) [PM-26413]: Remove ActiveUserState from UserDecryptionOptionsService (#16894)
* feat(user-decryption-options) [PM-26413]: Update UserDecryptionOptionsService and tests to use UserId-only APIs.

* feat(user-decryption-options) [PM-26413]: Update InternalUserDecryptionOptionsService call sites to use UserId-only API.

* feat(user-decryption-options) [PM-26413] Update userDecryptionOptions$ call sites to use the UserId-only API.

* feat(user-decryption-options) [PM-26413]: Update additional call sites.

* feat(user-decryption-options) [PM-26413]: Update dependencies and an additional call site.

* feat(user-verification-service) [PM-26413]: Replace where allowed by unrestricted imports invocation of UserVerificationService.hasMasterPassword (deprecated) with UserDecryptionOptions.hasMasterPasswordById$. Additional work to complete as tech debt tracked in PM-27009.

* feat(user-decryption-options) [PM-26413]: Update for non-null strict adherence.

* feat(user-decryption-options) [PM-26413]: Update type safety and defensive returns.

* chore(user-decryption-options) [PM-26413]: Comment cleanup.

* feat(user-decryption-options) [PM-26413]: Update tests.

* feat(user-decryption-options) [PM-26413]: Standardize null-checking on active account id for new API consumption.

* feat(vault-timeout-settings-service) [PM-26413]: Add test cases to illustrate null active account from AccountService.

* fix(fido2-user-verification-service-spec) [PM-26413]: Update test harness to use FakeAccountService.

* fix(downstream-components) [PM-26413]: Prefer use of the getUserId operator in all authenticated contexts for user id provided to UserDecryptionOptionsService.

---------

Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
2026-02-17 09:24:23 -08:00
Ben Brooks
e37a78ea15 Revert "Lets shadow DOM check signal page update (#16114)" (commit 6129ca5366) (#17503)
Signed-off-by: Ben Brooks <bbrooks@bitwarden.com>
2026-02-17 09:24:23 -08:00
Bryan Cunningham
1e7107379d [CL-761] Enable strict template typechecking (#17334)
* enable strict template typechecking

* add callout component to module

* fixing popup action types

* fixing cipher item copy types

* fix archive cipher type

* fixing trash list items types

* fix remaining trash list item type errors

* use CipherViewLike as correct type

* change popup back directive to attribute selector

* allow undefined in popupBackAction handler

* Remove undefined from type

* fix error with firefox commercial build

---------

Co-authored-by: Vicki League <vleague@bitwarden.com>
2026-02-17 09:24:23 -08:00
Jordan Aasen
4f96a142d8 [PM-24722][PM-27695] - add persistent callout in settings for non-premium users (#17246)
* add persistent callout in settings for non-premium users

* remove premium v2 component

* add spec

* remove premium-v2.component.html

* fix title

* fix typo

* conditionally render h2

* re-add pemiumv2component. change class prop to observable

* change from bold to semibold

* remove unecessary tw classes. use transform: booleanAttribute

* add spotlight specs

* code cleanup
2026-02-17 09:24:21 -08:00
blackwood
024b2c7ee4 Allows limited internal message posting when host experience content is controlled (#17313) 2026-02-17 09:24:21 -08:00
Leslie Tilton
107f66257c Correct phishing blocker file structure (#17477) 2026-02-17 09:24:20 -08:00
Bernd Schoolmann
b183dd67ed Fix biometrics unlock when pin is enabled (#17528) 2026-02-17 09:24:20 -08:00
Daniel Riera
c3dd485eaf [PM-28516] Inline menu is not working in main (#17524)
* PM-28516 alidate iframe and stylesheet URLs against their own origins to handle
cases where chrome assigns different extension ids in different contexts

* switch to regex to match exisiting match pattern

* updated regex to account for safari
2026-02-17 09:24:19 -08:00
Dave
fa0a26ecbb fix(two-factor) [PM-21204]: Users without premium cannot disable premium 2FA (#17134)
* refactor(two-factor-service) [PM-21204]: Stub API methods in TwoFactorService (domain).

* refactor(two-factor-service) [PM-21204]: Build out stubs and add documentation.

* refactor(two-factor-service) [PM-21204]: Update TwoFactorApiService call sites to use TwoFactorService.

* refactor(two-fatcor) [PM-21204]: Remove deprecated and unused formPromise methods.

* refactor(two-factor) [PM-21204]: Move 2FA-supporting services into common/auth/two-factor feature namespace.

* refactor(two-factor) [PM-21204]: Update imports for service/init containers.

* feat(two-factor) [PM-21204]: Add a disabling flow for Premium 2FA when enabled on a non-Premium account.

* fix(two-factor-service) [PM-21204]: Fix type-safety of module constants.

* fix(multiple) [PM-21204]: Prettier.

* fix(user-verification-dialog) [PM-21204]: Remove bodyText configuration for this use.

* fix(user-verification-dialog) [PM-21204]: Improve the error message displayed to the user.
2026-02-17 09:24:18 -08:00
bw-ghapp[bot]
981c6dd76f Autosync the updated translations (#17529)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-17 09:24:15 -08:00
Addison Beck
927e81249a chore: create eslint rule to catch insecure page script injection (#17437)
* chore: create eslint rule to catch insecure page script injection

* chore: ignore existing lints

* review: tighten rule scope

* review: add tests
2026-02-17 09:24:15 -08:00
Jeffrey Holland
0c8bb46b44 Autofill/pm 25597 plex password generation (#16997)
* Correctly fill generated passwords and current password on plex.tv

* Correctly fill generated passwords and current password on plex.tv

* Leave existing forEach

* Add tests for changes
2026-02-17 09:24:14 -08:00
Nick Krantz
69a4740c2f [PM-26688][PM-27710] Delay skeletons from showing + search (#17394)
* add custom operator for loading skeleton delays

* add `isCipherSearching$` observable to search service

* prevent vault skeleton from showing immediately

* add skeleton for search + delay to sends

* update fade-in-out component selector

* add fade-in-out component for generic use

* address memory leak by using defer to encapsulate `skeletonShownAt`

* add missing provider
2026-02-17 09:24:13 -08:00
Jonathan Prusik
c6ec5b955f [PM-27797] Prevent host page manipulation of inline menu popover attribute (#17400)
* turn off inline experience if host page aggressively competes for top of top-layer

* add alert message for top-layer hijack scenarios

* widen the backoff threshold

* refactor backoff logic to include popover attribute mutations

* improve getPageIsOpaque check

* do not attempt inline menu insertion if it has been disabled for security concerns

* fix typo

* cleanup

* add tests
2026-02-17 09:24:12 -08:00
Andy Pixley
c08469d142 [BRE-1303] Providing method for pinning Chrome extension ID for dev (#17432) 2026-02-17 09:24:12 -08:00
Addison Beck
74d3675360 fix: add world: MAIN to Firefox page script registration (#17466)
* chore: update @types/firefox-webext-browser

* fix: add world: MAIN to Firefox page script registration

* review: add world property to registration type
2026-02-17 09:24:12 -08:00
Addison Beck
42e58f81e3 fix: enable dynamic URLs for Chrome web accessible resources (#17429)
This commit adds use_dynamic_url: true to the extension's web_accessible_resources configuration. When enabled, Chrome generates random session-based GUIDs for extension resource URLs instead of using the predictable static extension ID. This enhances privacy by making extension resource URLs unpredictable and prevents third-party enumeration of installed extensions.

The feature is supported in Chrome 102+ and changes resource URLs from chrome-extension://[static-id]/resource to chrome-extension://[random-guid]/resource, with GUIDs regenerating each browser session while maintaining all existing extension functionality.

Addresses: https://bitwarden.atlassian.net/browse/PM-28344
2026-02-17 09:24:12 -08:00
Github Actions
6c781e3259 Bumped client version(s) 2026-02-17 09:24:09 -08:00
Jonathan Prusik
28c48939d9 [PM-27915] Add additional global styling collision defenses for pseudo-elements (#17340)
* add additional global styling collision defenses for pseudo-elements

* move internal stylesheet into closed shadow root
2026-02-17 09:24:07 -08:00
Will Martin
86c9554ac8 [PM-28071] add prod test domain for phishing detection (#17450) 2026-02-17 09:24:07 -08:00
bw-ghapp[bot]
b1206b84e1 Autosync the updated translations (#17461)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-17 09:24:06 -08:00
Daniel Riera
2ac4f32ce5 Pm 27900 add additional hardening in extension frame validation (#17265)
* PM-27900 harden iframe, origin route tightening and test updates

* reduce comments to make more legible

* Removes referrer check in favor of PM-27822 #17313 bitwarden/clients@4206447cfe

* nake token optional since it is later set

* whitelist -> allowlist

* improve notes on unsafe

* improve content handler notes

* order allowlist

* improve jsdoc on ismessagefromextension method

* cover additional test cases

* rename verifytoken and document more clear, update referrer

---------

Co-authored-by: Miles Blackwood <mrobinson@bitwarden.com>
2026-02-17 09:24:06 -08:00
Oscar Hinton
f232192ad2 [PM-28231] Enable component-class-suffix (#17384)
* Enable component-class-suffix

* Rename file
2026-02-17 09:24:03 -08:00
Maximilian Power
8962c466a8 Fix Firefox phishing blocker continue button by awaiting tab navigation promises (#17436) 2026-02-17 09:24:03 -08:00
Jordan Aasen
1d46719282 [PM-23384] - Browser extension spotlight directing to Premium signup in web (#17343)
* premium upgrade nudge

* add specs

* clean up vault template and specs

* fix date comparison. add more specs for date

* fix spec

* fix specs

* make prop private
2026-02-17 09:24:02 -08:00
Matt Gibson
d337de83ad [PM-28038][PM-28276] Ignore url case for origin matching (#17355)
* ignore url case for origin matching

* Fixup typo

* Inject log services
2026-02-17 09:23:59 -08:00
Alex Dragovich
a50a79e257 [PM-27465] Fixing cancel button on Send and Vault export (#17138) 2026-02-17 09:23:59 -08:00
Jason Ng
0d2d8c3a2a [PM-26687] send skeleton (#17333)
* adding skeleton to send
2026-02-17 09:23:58 -08:00
Daniel Riera
91e08139dd [PM-4903] - If you back out of autofill flow from locked vault screen, credentials autofilled on normal unlock (#17283)
* PM-4903- added a check for auth status and popout tabs, if no popup tab and auth is locked, abandon autofill

* add test

* clear all notifications if unlock popout closed

* add more tests and use tabid for performance optimization
2026-02-17 09:23:58 -08:00
bw-ghapp[bot]
0777e183cc Autosync the updated translations (#17379)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-17 09:23:55 -08:00
Andreas Coroiu
73bc7bb76b [PM-18046] Implement session storage (#17346)
* feat: add support for IPC client managed session storage

* feat: update SDK

* fix: using undecorated service in jslib module directly

* feat: add test case for web

* chore: document why we use any type

* fix: `ipc` too short

* typo: omg

* Revert "typo: omg"

This reverts commit 559b05eb5a.

* Revert "fix: `ipc` too short"

This reverts commit 35fc99e10b.

* fix: use camelCase
2026-02-17 09:23:54 -08:00
Mark Youssef
b7c8469256 [CL-672] update mobile design of dialog (#14828)
---------

Co-authored-by: Vicki League <vleague@bitwarden.com>
2026-02-17 09:23:54 -08:00
Oscar Hinton
a4d9f6ec66 [CL-738] Migrate disclosure component (#17206) 2026-02-17 09:23:53 -08:00
Jordan Aasen
1f5da3499d [PM-27661] - Multiple URIs - Add a Collapse Button after clicking View All for Saved Websites (#17352)
* use signals. add toggleable list view.

* use @for. remove redundant if statement

* fix template variable name

* clean up test setup

* Update apps/browser/src/vault/popup/components/vault-v2/autofill-confirmation-dialog/autofill-confirmation-dialog.component.spec.ts

Co-authored-by: Nik Gilmore <ngilmore@bitwarden.com>

---------

Co-authored-by: Nik Gilmore <ngilmore@bitwarden.com>
2026-02-17 09:23:51 -08:00
Daniel Riera
afcbed8a81 [PM-26916] inline menu not autofilling email field for oatsovernight.com (#17182)
* PM-26916 utilize opid on focused fields as first validation in order to avoid erroneously filling other similar fields

* extract logic to helper and take totp and multiple forms into account

* run prettier

* avoid filling with opid if already filled

* clean up comments and avoid early return so all fields are scanned

* add tests
2026-02-17 09:23:49 -08:00
Jeffrey Holland
bb570c54f8 Display autofill overlay for zoom.us signin password (#16900) 2026-02-17 09:23:49 -08:00
Nick Krantz
721a05a43a [PM-27520] Allow for search while vault is loading (#17274)
* allow for search while vault is loading

* fix comment wording

* remove subscription return value - it is not used

* update `distinctUntilChanged` to account for tuple

* use feature flag to determine search pattern

* fix tests & lint issues

* fix lint errors part 2
2026-02-17 09:23:49 -08:00
Maciej Zieniuk
418d03ce78 moving ownership of Auth vault timeout input component to KM (#17180)
(cherry picked from commit 5e595dabf71cdb312ae9e1e3bcc3121b3aebf19f)
2026-02-17 09:23:48 -08:00
Nick Krantz
d06052e5b4 [PM-25084] Vault Skeleton loading (#17321)
* add import to overflow styles to override the overflow applied by virtual scrolling

* add position relative so absolute children display in scrolling context rather over the entire page

* add fade in skeleton to vault page

* refactor vault loading state to shared service

* disable search while loading

* add live announcement when vault is loading / loaded

* simplify announcement

* resolve CI issues

* add feature flag for skeletons

* add feature flag observables for loading state

* update component naming
2026-02-17 09:23:46 -08:00