1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-30 16:23:53 +00:00
Commit Graph

6229 Commits

Author SHA1 Message Date
Oscar Hinton
3416977dad Ensure "MyVault" is not identified as an organaization (#18643) (#18647)
When creating a new vault item in the My Vault filter owner would not be set.

(cherry picked from commit a4355dbcab)
2026-01-29 11:49:04 -05:00
Brandon Treston
1e83f6f446 Fix empty toast message when owner deletes himself (#18613)
Co-authored-by: JaredScar <thewolfbadger@gmail.com>
2026-01-27 16:27:22 -05:00
Conner Turnbull
5c3669ad98 [PM-31295] Remove price from next charge on individual subscription page (#18600) (#18608)
* Remove price from next charge on individual subscription page

* Revert subscription-card changes, limit scope to legacy component

(cherry picked from commit 4fad2c3bcd)
2026-01-27 16:22:45 -05:00
Oscar Hinton
6c880ea2ad [PM-31264] Broken vault filters in milestone-1 (#18589) (#18599)
* Fix vault filters

Now uses the same `createFilterFunction` as web rather than the custom proxy like approach.

* Remove provide

(cherry picked from commit cf6d02fafa)
2026-01-27 13:01:06 -06:00
Alex
15ff818fa8 [PM-30808] Migrate Phishing Detection storage to PhishingIndexedDbService (#18517) (#18592)
* Initial changes to look at phishing indexeddb service and removal of obsolete compression code

* Convert background update to rxjs format and trigger via subject. Update test cases

* Added addUrls function to use instead of saveUrls so appending daily does not clear all urls

* Added debug logs to phishing-indexeddb service

* Added a fallback url when downloading phishing url list

* Remove obsolete comments

* Fix testUrl default, false scenario and test cases

* Add default return on isPhishingWebAddress

* Added log statement

* Change hostname to href in hasUrl check

* Save fallback response

* Fix matching subpaths in links. Update test cases

* Fix meta data updates storing last checked instead of last updated

* Update QA phishing url to be normalized

* Filter web addresses

* Return previous meta to keep subscription alive

(cherry picked from commit 178fd9a577)

Co-authored-by: Leslie Tilton <23057410+Banrion@users.noreply.github.com>
2026-01-27 09:30:30 -06:00
Graham Walker
2c3701358d [PM-31203] Change Phishing Url Check to use a Cursor Based Search (#18561) (#18586)
* Initial changes to look at phishing indexeddb service and removal of obsolete compression code

* Convert background update to rxjs format and trigger via subject. Update test cases

* Added addUrls function to use instead of saveUrls so appending daily does not clear all urls

* Added debug logs to phishing-indexeddb service

* Added a fallback url when downloading phishing url list

* Remove obsolete comments

* Fix testUrl default, false scenario and test cases

* Add default return on isPhishingWebAddress

* Added log statement

* Change hostname to href in hasUrl check

* Save fallback response

* Fix matching subpaths in links. Update test cases

* Fix meta data updates storing last checked instead of last updated

* Update QA phishing url to be normalized

* Filter web addresses

* Return previous meta to keep subscription alive

* Change indexeddb lookup from loading all to cursor search

* fix(phishing): improve performance and fix URL matching in phishing detection

Problem:
The cursor-based search takes ~25 seconds to scan the entire phishing database.
For non-phishing URLs (99% of cases), this full scan runs to completion every time.

Before these fixes, opening a new tab triggered this sequence:
1. chrome://newtab/ fires a phishing check
2. Sequential concatMap blocks while cursor scans all 500k+ URLs (~25 sec)
3. User pastes actual URL and hits enter
4. That URL's check waits in queue behind the chrome:// check
5. Total delay: ~50+ seconds for a simple "open tab, paste link" workflow

Even for legitimate phishing checks, the cursor search could take up to 25 seconds
per URL when the fast hasUrl lookup misses due to trailing slash mismatches.

Changes:

phishing-data.service.ts:
- Add protocol filter to early-return for non-http(s) URLs, avoiding
  expensive IndexedDB operations for chrome://, about:, file:// URLs
- Add trailing slash normalization for hasUrl lookup - browsers add
  trailing slashes but DB entries may not have them, causing O(1) lookups
  to miss and fall back to O(n) cursor search unnecessarily
- Add debug logging for hasUrl checks and timing metrics for cursor-based
  search to aid performance debugging

phishing-detection.service.ts:
- Replace concatMap with mergeMap for parallel tab processing - each tab
  check now runs independently instead of sequentially
- Add concurrency limit of 5 to prevent overwhelming IndexedDB while still
  allowing parallel execution

Result:
- New tabs are instant (no IndexedDB calls for non-web URLs)
- One slow phishing check doesn't block other tabs
- Common URL patterns hit the fast O(1) path instead of O(n) cursor scan

* performance debug logs

* disable custom match because too slow

* spec fix

---------


(cherry picked from commit 60c28dd182)

Co-authored-by: Leslie Tilton <23057410+Banrion@users.noreply.github.com>
Co-authored-by: Alex <adewitt@bitwarden.com>
2026-01-27 08:08:46 -06:00
Maciej Zieniuk
193389b958 Wire up DI for PRFUnlockService in desktop (#18587) (#18590)
(cherry picked from commit ec812a7d77)

Co-authored-by: Anders Åberg <anders@andersaberg.com>
2026-01-27 14:15:15 +01:00
bitwarden-devops-bot
c2b55e31cf Bumped client version(s) 2026-01-26 16:06:39 +00:00
Vijay Oommen
2aea6406a5 [PM-29501] Use bit-chip-select when there are too many orgs (#18368) 2026-01-26 09:24:20 -06:00
Oscar Hinton
8bd8a12f65 Fix milestone 1 vault list not showing when not using sdk crypto (#18550) 2026-01-26 10:20:38 -05:00
Jason Ng
47a2f59784 [PM-31188] Desktop Trash Items Context Menu Updates (#18530)
* apply isDeleted check to other options in desktop context menu for items
2026-01-26 10:19:51 -05:00
Vijay Oommen
94c40b53aa PM-30799 added html clean up for the domain (#18393) 2026-01-26 08:05:46 -06:00
bw-ghapp[bot]
46266dfd20 Autosync the updated translations (#18560)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-01-26 12:53:03 +00:00
bw-ghapp[bot]
e03abdaed5 Autosync the updated translations (#18558)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-01-26 13:41:05 +01:00
bw-ghapp[bot]
b744164f7a Autosync the updated translations (#18559)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-01-26 12:33:55 +00:00
Rui Tomé
71db33d45d [PM-28842] Add max length validation to master password policy form (#18237)
* Update master password policy dialog to limit the minimum length to 128

* Update master password policy to use dynamic maximum length from Utils

* Add unit tests for MasterPasswordPolicyComponent to validate password length constraints and scoring
2026-01-26 11:38:10 +00:00
Anders Åberg
903026b574 PM-2035: PRF Unlock (web + extension) (#16662)
* PM-13632: Enable sign in with passkeys in the browser extension

* Refactor component + Icon fix

This commit refactors the login-via-webauthn commit as per @JaredSnider-Bitwarden suggestions. It also fixes an existing issue where Icons are not displayed properly on the web vault.

Remove old one.

Rename the file

Working refactor

Removed the icon from the component

Fixed icons not showing. Changed layout to be 'embedded'

* Add tracking links

* Update app.module.ts

* Remove default Icons on load

* Remove login.module.ts

* Add env changer to the passkey component

* Remove leftover dependencies

* PRF Unlock

Cleanup and testes

* Workaround prf type missing

* Fix any type

* Undo accidental cleanup to keep PR focused

* Undo accidental cleanup to keep PR focused

* Cleaned up public interface

* Use UserId type

* Typed UserId and improved isPrfUnlockAvailable

* Rename key and use zero challenge array

* logservice

* Cleanup rpId handling

* Refactor to separate component + icon

* Moved the prf unlock service impl.

* Fix broken test

* fix tests

* Use isChromium

* Update services.module.ts

* missing , in locales

* Update desktop-lock-component.service.ts

* Fix more desktoptests

* Expect a single UnlockOption from IdTokenResponse, but multiple from sync

* Missing s

* remove catches

* Use new control flow in unlock-via-prf.component.ts

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

* Changed throw behaviour of unlockVaultWithPrf

* remove timeout comment

* refactired webauthm-prf-unlock.service internally

* WebAuthnPrfUnlockServiceAbstraction -> WebAuthnPrfUnlockService

* Fixed any and bad import

* Fix errors after merge

* Added missing PinServiceAbstraction

* Fixed format

* Removed @Inject()

* Fix broken tests after Inject removal

* Return userkey instead of setting it

* Used input/output signals

* removed duplicate MessageSender registration

* nit: Made import relative

* Disable onPush requirement because it would need refactoring the component

* Added feature flag (#17494)

* Fixed ById from main

* Import feature flag from file

* Add missing test providers for MasterPasswordLockComponent

Add WebAuthnPrfUnlockService and DialogService mocks to fix test failures
caused by UnlockViaPrfComponent dependencies.

---------

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2026-01-26 10:53:20 +01:00
bmbitwarden
644caceb08 Pm 30608 defect the send page is not refreshed after removing the text in the search bar (#18421)
* PM-30608 resolved search bug

* PM-30608 resolved x button click issue
2026-01-25 12:04:32 -05:00
Vijay Oommen
cf2427848e [PM-30879] Huntress Integration (#18505) 2026-01-23 13:36:54 -06:00
Thomas Avery
bc8c925cd0 [PM-27486] Remove feature flag PM25174_DisableType0Decryption (#18413) 2026-01-23 11:09:59 -06:00
Jackson Engstrom
57378f1cb3 [PM-20079] Updates header new/invite members button text spacing 2026-01-23 08:48:42 -08:00
Jason Ng
47b574dbc3 [PM-31072] If Archive Item is in Trash, remove Unarchive button (#18481) 2026-01-23 11:30:31 -05:00
Leslie Xiong
f57cb83d46 [BUG FIX]Desktop/Pm 31148/Pm 31149/Unexpected behaviors for Collections and Folders (#18506)
* fixed collections still appearing if all orgs are suspended

* fixed 'No folders' not displaying vault items

* PR followup:
- converted `allOrganizationsDisabled` to computed property
- converted observables to signals
2026-01-23 16:55:41 +01:00
Oscar Hinton
c2f68e0bf6 Use correct key for new send (#18523) 2026-01-23 16:54:24 +01:00
adudek-bw
a8f0bc8d4b Change send success page text to not mention email verification (#18382)
* Change send success page text to not mention email verification

* [PM-30706] replacing message and fixing double word bug

* [PM-30706] improving message parameters

---------

Co-authored-by: Alex Dragovich <46065570+itsadrago@users.noreply.github.com>
Co-authored-by: Alex Dragovich <adragovich@bitwarden.com>
2026-01-23 07:40:41 -08:00
Oscar Hinton
d1c7f995c3 [PM-31158] Change default send to file for old ui (#18526)
* Change default send to file for old ui

* Trigger change detection to ensure signals are refreshed
2026-01-23 16:26:10 +01:00
Oscar Hinton
01d6b3dd1e Disable rounded corner in desktop (#18498) 2026-01-23 15:42:08 +01:00
bw-ghapp[bot]
87c68ada74 Autosync the updated translations (#18514)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-01-23 10:53:16 +01:00
bw-ghapp[bot]
b8a8400ff7 Autosync the updated translations (#18515)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-01-23 10:47:46 +01:00
bw-ghapp[bot]
553708dc58 Autosync the updated translations (#18513)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-01-23 10:26:48 +01:00
John Harrington
f8d2800859 [PM-26989] Add Support For Arc Browser on MacOS (#17909)
* added support for arc browser
2026-01-22 15:56:35 -07:00
Jonathan Prusik
dafa00346c [PM-25615] Handle missing autofillOverlayContentService case (#18369)
* handle missing autofillOverlayContentService case

* additional checks autofillOverlayContentService
2026-01-22 22:10:47 +00:00
Leslie Xiong
a28193f880 fixed misalignment of suspended org icon (#18502) 2026-01-22 17:08:46 -05:00
Nick Krantz
a9d8edc52c [PM-28749] Desktop Transfer Items (#18410)
* add transfer items prompt to desktop

* add transfer service to vault v3
2026-01-22 15:20:53 -06:00
Derek Nance
1baed4dea8 [PM-30470] Revert to using X11 on Linux desktop (#18465) 2026-01-22 15:12:15 -06:00
neuronull
0270474c99 Move approve ssh request out of Platform (#18226) 2026-01-22 13:27:36 -07:00
Nick Krantz
139a5c1eb6 avoid setting width on body when extension is within a tab (#18499) 2026-01-22 14:04:34 -06:00
neuronull
2fac696567 Desktop Autotype windows integration tests (#17639) 2026-01-22 15:38:26 +01:00
Jason Ng
eee6fb895c [PM-30889] Remove clone option from archive item desktop (#18457)
* remove clone option from archive item desktop for users who lose premium status
2026-01-22 08:58:17 -05:00
Maciej Zieniuk
1ccacb03a6 [PM-27233] Support v2 encryption for JIT Password signups (#18222)
* Support v2 encryption for JIT Password signups

* TDE set master password split

* update sdk-internal dependency

* moved encryption v2 to InitializeJitPasswordUserService

* remove account cryptographic state legacy states from #18164

* legacy state comments

* sdk update

* unit test coverage

* consolidate do SetInitialPasswordService

* replace legacy master key with setLegacyMasterKeyFromUnlockData

* typo

* web and desktop overrides with unit tests

* early return

* compact validation

* simplify super prototype
2026-01-22 13:01:49 +01:00
Isaiah Inuwa
d0e3923eb6 Improve desktop autofill developer builds (#18334)
* Consolidate references to credential provider feature flag
* Adjust entitlements and build stuff for macOS autofill credential extension
* Reduce signature time for MAS builds
2026-01-22 12:58:37 +01:00
Oscar Hinton
0433678085 [PM-31029] Add feature flag for milestone 2 (#18458)
* Add feature flag for milestone 2

* Fix test

* Remove OnPush
2026-01-22 10:56:43 +01:00
Oscar Hinton
9a479544a6 Add support for rounded layout (#18283) 2026-01-22 10:25:39 +01:00
Brandon Treston
65abeb51aa [PM-30500] Centralize Organization Data Ownership (#18387)
* remove deprecated OrganizationDataOwnership components, promote vNext

* WIP: add new components and copy

* multi step dialog for organization- data ownership

* disable save

* clean up copy, fix bug

* copy change, update button text

* update copy

* un-rename model

* use policyApiService

* simplify style
2026-01-22 14:47:14 +10:00
Jordan Aasen
464a0427bf [PM-29816] - fix scroll position in browser vault (#18449)
* fix scroll position in browser vault

* use bitScrollLayoutHost
2026-01-21 16:28:39 -08:00
Shane Melton
21eb376b41 [PM-30906] Auto confirm nudge service fix and better nudge documentation (#18419)
* [PM-30906] Refactor AutoConfirmNudgeService to be Browser specific and add additional documentation detailing when this is necessary

* [PM-30906] Add README.md for custom nudge services
2026-01-21 15:32:58 -08:00
Jason Ng
d80ca85e50 [PM-30857] add empty state to desktop archives (#18414)
* add empty state to desktop archives
2026-01-21 18:24:17 -05:00
Todd Martin
0ad1ab448a fix(entitlements): Restrict entitlements for Helium browser to just the directory 2026-01-21 17:27:24 -05:00
Jonathan Prusik
3f466c4b4c refresh top layer when top layer candidate handlers are set up (#18326) 2026-01-21 17:22:45 -05:00
Leslie Tilton
714ff1aba3 Move loading blob to memory to rxjs pipeline triggered implicitly. Removed from constructor. Added dispose to guard against memory leaks (#18480) 2026-01-21 15:09:02 -06:00