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

41 Commits

Author SHA1 Message Date
neuronull
18456c0ff3 claude: IPC Handler Registration in Constructor 2025-10-29 15:18:44 -06:00
neuronull
3c7f570a7e claude: concatMap 2025-10-29 15:17:45 -06:00
neuronull
69107b69d6 claude: === 2025-10-29 15:17:16 -06:00
neuronull
424d4005b8 claude: multiple listeners 2025-10-29 15:16:53 -06:00
neuronull
cc855c375c claude: try/catch 2025-10-29 15:14:24 -06:00
neuronull
bb8adb439e claude: takeUntilDestroyed 2025-10-29 15:12:39 -06:00
neuronull
dc743355fb improve IPC message args 2025-10-29 09:48:45 -06:00
neuronull
45ec0f64f2 add back disable on will-quit signal 2025-10-27 15:53:30 -06:00
neuronull
148be5f228 lint 2025-10-27 15:38:53 -06:00
neuronull
2dd6cd1b3a Desktop Autotype toggle on vault lock/unlock 2025-10-27 15:10:44 -06:00
Oscar Hinton
532546ea7d Autofill - Prefer signal & change detection (#16942) 2025-10-21 15:48:31 +02:00
Daniel Riera
5de8a145ec [PM-26410] Update autotype policy to include all org members (#16689)
* PM-26410 use policies$ to apply default behavior to all org members

* linting error, remove unused imports
2025-10-01 16:20:03 -04:00
Colton Hurst
8cb908ef68 [PM-26319] Fix default ctrl-shift-b issue (#16683) 2025-10-01 15:03:52 -04:00
neuronull
177481935f Fix desktop windows autotype disabled on first login (#16669) 2025-10-01 07:30:03 -06:00
Colton Hurst
fc53eae4c5 [PM-22758] Configurable Keyboard Shortcut for Autotype (#16613)
* [PM-22785] Initial push with configuration and ipc changes for the configurable autotype keyboard shortcut

* [PM-22785] Add messy code with working configurable hotkey

* [PM-22785] Add more messy rust code

* [PM-22785] Add temp changes with configurable hotkey ui

* Add shortcut display to settings

* [PM-22785] Logic updates. Ran npm run prettier and lint:fix.

* [PM-22785] Add back disableAutotype with refactors.

* [PM-22785] Clean up Rust code

* [PM-22785] Clean up Rust code v2

* [PM-22785] Add unicode bounds in Rust code

* [PM-22785] Update rust code comments

* [PM-22785] Add unicode_value byte length check post-encoding

* [PM-22785] Extract encoding to a separate function

* Various fixes for the autotype setting label

* Misc component fixes

* Disallow nunmbers and allow Win key

* Themify edit shortcut

* Change display of Super to Win

* Create autotype format method

* Autotpe modal cleanup

* [PM-22785] Some cleanup

* Add unit tests and adjust error handling

* [PM-22785] Fix build issues on Mac and Linux

* [PM-22785] Linting fix

* Remove unused message

* [PM-22785] Linting fix

* [PM-22785] More linting fix

* [PM-22785] Address initial PR comments

* [PM-22785] Comment change

* [PM-22785] If statement change

* [PM-22785] Update with fixes from PR comments

* [PM-22785] Update with fixes from PR comments version ?

* add unit tests for get_alphabetic_hot_key()

* Fix tests

* Add missing mock to tests

* [PM-22785] Update with small fixes via PR comments

---------

Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com>
Co-authored-by: neuronull <9162534+neuronull@users.noreply.github.com>
2025-09-29 14:20:15 +00:00
Colton Hurst
7baf250288 [PM-26192] Integrate the new Autotype Default Policy (#16604)
* Add current WIP autotype policy integration work

* [PM-26192] Add working code that fully integrates the autotype default policy

* [PM-26192] Add comments

* Update apps/desktop/src/autofill/services/desktop-autotype.service.ts

Co-authored-by: Jonathan Prusik <jprusik@users.noreply.github.com>

---------

Co-authored-by: Jonathan Prusik <jprusik@users.noreply.github.com>
2025-09-26 15:31:31 +00:00
Daniel Riera
2f34c6b9c6 [PM-26053] Create Autotype Desktop Default Setting Policy for use within the desktop autotype service (#16537)
* add policy type enum

* desktop autotype service which emits an observable

* add desktop autotype default setting policy to the app constructor

* update service module to include DesktopAutotypeDefaultSettingPolicy

* flag the service

* add tests

* address comments, switch to null remove false, update tests
2025-09-25 18:09:53 -04:00
Colton Hurst
3ca1395472 Separate Autotype Setting Observable (#16521)
* Update the default autotype user setting to be separately represented

* rxjs update

* settings.component.spec.ts update
2025-09-22 19:08:11 -04:00
Colton Hurst
51ed3d8aed [PM-26013] Small Autotype Updates (#16498)
* [PM-26013] Update the default hotkey and change the uri scheme for autotype.

* [PM-26013] Edit the matching logic for the autotype uri prefix.
2025-09-19 13:04:47 -04:00
Colton Hurst
896f54696b [PM-24158] Add Premium Check (#16042)
* [PM-24158] Add initial premium check

* [PM-24158] Add premium membership dialog fix

* [PM-24158] Small updates

* [PM-24158] Set hasPremium to false upon initialization

* [PM-24158] Partial update to settings component tests

* [PM-24158] Fix billing mocked return value and add mac OS autotype test

* [PM-24158] Add missing premium checks

* [PM-24158] Update provider

* [PM-24158] Renamed autotype resolved value

* [PM-24158] Update missed resolvedAutotypeEnabled refactor

* [PM-24158] Fix tests
2025-09-04 12:33:39 -04:00
Bernd Schoolmann
10a5eba05f Remove limitation on ssh agent + collections (#15441) 2025-09-04 18:05:18 +02:00
Colton Hurst
a9c7936334 [PM-22789] Handle Autotype Hotkey Event (#15840)
* [PM-22789] Handle full hotkey event for autotype

* [PM-22789] Move userId into windows conditional check

* [PM-22789] Refactor autotype service observables

* [PM-22789] Address PR comments

* [PM-22789] Refactor stringIsNotUndefinedNullAndEmpty() function
2025-08-05 12:59:32 -04:00
Colton Hurst
8811ec41ab [PM-22788] Add Autotype Crate and Windowing Functions (#15317)
* [PM-22783] Add initial feature flag and settings toggle for autotype MVP

* [PM-22783] Undo Cargo.lock changes

* [PM-22783] Disable console.log block

* [PM-22783] Lint fix

* [PM-22783] Small updates

* [PM-22783] Build fix

* [PM-22783] Use combineLatest in updating the desktop autotype service

* [PM-22783] Check if the user is on Windows

* [PM-22783] Undo access selector html change, linting keeps removing this

* [PM-22783] Fix failing test

* [PM-22788] Add initial desktop native autotype crate based on spike ticket investigation

* [PM-22788] cargo fmt

* [PM-22783] Update autotypeEnabled to be stored in service

* [PM-22783] Add todo comments

* [PM-22783] Add SlimConfigService and MainDesktopAutotypeService

* [PM-22783] Small fixes

* [PM-22788] Add get_foreground_window_title() and cleanup

* [PM-22788] Add comment

* [PM-22788] Lint and cross platform build fixes

* [PM-22788] Update windows.rs in autotype_internal

* [PM-22788] Update windows.rs and dummy.rs in autotype_internal

* [PM-22788] cargo fmt

* [PM-22788] Edit napi result types

* [PM-22788] Edit napi result types again

* [PM-22788] Add autofill as a codeowner of the desktop_native/autotype directory

* [PM-22788] Refactor autotype code

* [PM-22788] Move autotype dependency out of windows only due to abstraction change

* [PM-22788] Fix lint errors

* [PM-22788] Updates based on PR comments

* [PM-22788] cargo fmt
2025-07-18 10:30:19 -04:00
Colton Hurst
d545912b67 [PM-22783] Add Feature Flag, Settings Toggle, and Services for Autotype MVP (#15262)
* [PM-22783] Add initial feature flag and settings toggle for autotype MVP

* [PM-22783] Undo Cargo.lock changes

* [PM-22783] Disable console.log block

* [PM-22783] Lint fix

* [PM-22783] Small updates

* [PM-22783] Build fix

* [PM-22783] Use combineLatest in updating the desktop autotype service

* [PM-22783] Check if the user is on Windows

* [PM-22783] Undo access selector html change, linting keeps removing this

* [PM-22783] Fix failing test

* [PM-22783] Update autotypeEnabled to be stored in service

* [PM-22783] Add todo comments

* [PM-22783] Add SlimConfigService and MainDesktopAutotypeService

* [PM-22783] Small fixes
2025-07-15 11:49:15 -04:00
Anders Åberg
5eca3a5916 [PM-18809] Passkey: use ArrayBuffer instead of Uint8Array (#15092)
* Passkey: use ArrayBuffer instead of Uint8Array to conform WebAuthn spec

* ArrayBufferView generics was too modern for this project

* Correctly update the types from Uint8arrays to ArrayBuffers

* Fixed broken tests + bugs

* Removed arrayBufferViewToArrayBuffer as it's not needed in this invocation paths

---------

Co-authored-by: ozraru <ozraru@raru.work>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
2025-07-01 21:00:13 +02:00
Zihad
b43e09ea6f fix: only start ssh agent if it's enabled (#13464)
closes #13150

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
2025-06-09 10:05:34 -04:00
Addison Beck
26caeb3083 Implement and extend tsconfig.base across projects (#14554)
* Implement and extend tsconfig.base across projects

* fixup! Merge remote-tracking branch 'origin/main' into rename-tsconfig

* fix: import tsconfig.base from components

* fix: skip typechecking node modules

* fixing tests

* fix the tests for real

* undo accidentally change
2025-06-02 20:38:17 +00:00
SmithThe4th
ad3121f535 [PM-12423] Migrate Cipher Decryption to Use SDK (#14206)
* Created mappings for client domain object to SDK

* Add abstract decrypt observable

* Added todo for future consideration

* Added implementation to cipher service

* Added adapter and unit tests

* Created cipher encryption abstraction and service

* Register cipher encryption service

* Added tests for the cipher encryption service

* changed signature

* Updated feature flag name

* added new function to be used for decrypting ciphers

* Added new encryptedKey field

* added new function to be used for decrypting ciphers

* Manually set fields

* Added encrypted key in attachment view

* Fixed test

* Updated references to use decrypt with feature flag

* Added dependency

* updated package.json

* lint fix

* fixed tests

* Fixed small mapping issues

* Fixed test

* Added function to decrypt fido2 key value

* Added function to decrypt fido2 key value and updated test

* updated to use sdk function without prociding the key

* updated localdata sdk type change

* decrypt attachment content using sdk

* Fixed dependency issues

* updated package.json

* Refactored service to handle getting decrypted buffer using the legacy and sdk implementations

* updated services and component to use refactored version

* Updated decryptCiphersWithSdk to use decryptManyLegacy for batch decryption, ensuring the SDK is only called once per batch

* Fixed merge conflicts

* Fixed merge conflicts

* Fixed merge conflicts

* Fixed lint issues

* Moved getDecryptedAttachmentBuffer to cipher service

* Moved getDecryptedAttachmentBuffer to cipher service

* ensure CipherView properties are null instead of undefined

* Fixed test

* ensure AttachmentView properties are null instead of undefined

* Linked ticket in comment

* removed unused orgKey
2025-05-14 07:30:01 -07:00
Patrick-Pimentel-Bitwarden
0b0397c3f0 fix(enums-eslint): Enum Rule for ESLint (#14650)
* fix(enums-eslint): Enum Rule for ESLint - Added enums in the warnings for eslint.

* fix(enums-eslint): Enum Rule for ESLint - Updated to error in both places for enums.

* fix(enums-eslint): Enum Rule for ESLint - Added new eslint plugin for warning on enums.

* fix(enums-eslint): Enum Rule for ESLint - Changed based on suggestion.

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* refactor(browser-platform-utils): Remove Deprecation and Fix Code - Changed usages of firefox to private and moved the usages to the preferred public method and removed the deprecations.

* fix(enums-eslint): Enum Rule for ESLint - Updated to error and added disable rules for all other places.

* fix(enums-eslint): Enum Rule for ESLint - Undid other changes by accident
2025-05-13 10:07:38 -04:00
Bernd Schoolmann
961be9ed6a [BEEEP/PM-15871] Add SSH-agent "never" and "remember until lock" reprompt settings (#13995)
* Add remember ssh authorizations setting

* Fix tests

* Fix authorization setting

* More detailed setting

* Add default value

* Cleanup
2025-05-05 23:09:27 +02:00
Bernd Schoolmann
a80d289b1b [PM-17809] Fix org-owned ssh showing up in ssh list request (#13175)
* Fix org keys showing up in list request

* Change from tripleequal to double equal
2025-03-27 10:10:06 -04:00
Anders Åberg
8e455007c0 PM-19095: Wire passkey autofill to UI (#13051)
* Passkey stuff

Co-authored-by: Anders Åberg <github@andersaberg.com>

* Ugly hacks

* Work On Modal State Management

* Applying modalStyles

* modal

* Improved hide/show

* fixed promise

* File name

* fix prettier

* Protecting against null API's and undefined data

* Only show fake popup to devs

* cleanup mock code

* rename minmimal-app to modal-app

* Added comment

* Added comment

* removed old comment

* Avoided changing minimum size

* Add small comment

* Rename component

* adress feedback

* Fixed uppercase file

* Fixed build

* Added codeowners

* added void

* commentary

* feat: reset setting on app start

* Moved reset to be in main / process launch

* Add comment to create window

* Added a little bit of styling

* Use Messaging service to loadUrl

* Enable passkeysautofill

* Add logging

* halfbaked

* Integration working

* And now it works without extra delay

* Clean up

* add note about messaging

* lb

* removed console.logs

* Cleanup and adress review feedback

* This hides the swift UI

* pick credential, draft

* Remove logger

* a whole lot of wiring

* not working

* Improved wiring

* Cancel after 90s

* Introduced observable

* Launching bitwarden if its not running

* Passing position from native to electron

* Rename inModalMode to modalMode

* remove tap

* revert spaces

* added back isDev

* cleaned up a bit

* Cleanup swift file

* tweaked logging

* clean up

* Update apps/desktop/macos/autofill-extension/CredentialProviderViewController.swift

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Update apps/desktop/src/platform/main/autofill/native-autofill.main.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Update apps/desktop/src/platform/services/desktop-settings.service.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* adress position feedback

* Update apps/desktop/macos/autofill-extension/CredentialProviderViewController.swift

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Removed extra logging

* Adjusted error logging

* Use .error to log errors

* remove dead code

* Update desktop-autofill.service.ts

* use parseCredentialId instead of guidToRawFormat

* Update apps/desktop/src/autofill/services/desktop-autofill.service.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Change windowXy to a Record instead of [number,number]

* Update apps/desktop/src/autofill/services/desktop-fido2-user-interface.service.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Remove unsued dep and comment

* changed timeout to be spec recommended maxium, 10 minutes, for now.

* Correctly assume UP

* Removed extra cancelRequest in deinint

* Add timeout and UV to confirmChoseCipher

UV is performed by UI, not the service

* Improved docs regarding undefined cipherId

* cleanup: UP is no longer undefined

* Run completeError if ipc messages conversion failed

* don't throw, instead return undefined

* Disabled passkey provider

* Throw error if no activeUserId was found

* removed comment

* Fixed lint

* removed unsued service

* reset entitlement formatting

* Update entitlements.mas.plist

---------

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
Co-authored-by: Colton Hurst <colton@coltonhurst.com>
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
2025-03-24 07:50:11 -04:00
Bernd Schoolmann
83de125ae9 [PM-15149] Remove ssh feature flag (#13506)
* Remove ssh feature flag

* Remove isSshKeyENabled in type-filter.component
2025-03-12 14:19:49 +01:00
Bernd Schoolmann
01f6fd7ee3 [PM-16227] Move import to sdk and enable it in browser/web (#12479)
* Move import to sdk and enable it in browser/web

* Add uncomitted files

* Update package lock

* Fix prettier formatting

* Fix build

* Rewrite import logic

* Update ssh import logic for cipher form component

* Fix build on browser

* Break early in retry logic

* Fix build

* Fix build

* Fix build errors

* Update paste icons and throw error on wrong import

* Fix tests

* Fix build for cli

* Undo change to jest config

* Undo change to feature flag enum

* Remove unneeded lifetime

* Fix browser build

* Refactor control flow

* Fix i18n key and improve import behavior

* Remove for loop limit

* Clean up tests

* Remove unused code

* Update libs/vault/src/cipher-form/components/sshkey-section/sshkey-section.component.ts

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>

* Move import logic to service and add tests

* Fix linting

* Remove erroneous includes

* Attempt to fix storybook

* Fix storybook, explicitly implement ssh-import-prompt service abstraction

* Fix eslint

* Update libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts

Co-authored-by:  Audrey  <ajensen@bitwarden.com>

* Fix services module

* Remove ssh import sdk init code

* Add tests for errors

* Fix import

* Fix import

* Fix pkcs8 encrypted key not parsing

* Fix import button showing on web

---------

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
Co-authored-by:  Audrey  <ajensen@bitwarden.com>
2025-03-10 18:41:47 +01:00
Colton Hurst
3bd60786b1 Move SSH Agent Files to Autofill Ownership (#13473)
* Move SSH agent files to Autofill ownership

* Fix ssh-agent.service.ts imports
2025-03-04 12:31:36 -05:00
Maciej Zieniuk
78202e14ae [PM-15882] Remove unlock with PIN policy (#13352)
* Remove policy with PIN in Web Vault

* Remove policy with PIN in Browser Extension

* Remove policy with PIN in Desktop

* Remove policy with PIN in Desktop

* unit tests coverage

* unit tests coverage

* unit tests coverage

* private access method error

* private access method error

* private access method error

* PM-18498: Unlock Options Padding Off When PIN Is Removed

* PM-18498: Unlock Options Padding Off When PIN Is Removed
2025-02-21 22:16:13 +01:00
SmithThe4th
a2945203f4 [PM-12047] Remove usage of ActiveUserState from cipher.service (#12814)
* Cipher service web changes

* Updated browser client to pass user id to cipher service observable changes

* Cli changes

* desktop changes

* Fixed test

* Libs changes

* Fixed merge conflicts

* Fixed merge conflicts

* removed duplicate reference fixed conflict

* Fixed test

* Fixed test

* Fixed test

* Fixed desturcturing issue on failed to decrypt ciphers cipher service

* Updated abstraction to use method syntax

* Fixed conflicts

* Fixed test on add edit v2

Passed active userId to delete function

* Used getUserId utility function

* made vault changes

* made suggestion changes

* made suggestion changes

* made suggestion changes

* Replace getUserId function calls with pipe operator syntax for better consistency

* fixed merge conflicts

* revert mistake made of usinf account activity during merge conflict fix

* fixed conflicts

* fixed tests
2025-02-12 08:53:31 -05:00
Colton Hurst
997d40f65a PM-16234: Move DesktopFido2UserInterfaceService and DesktopFido2UserInterfaceSession to autofill ownership (#12482) 2024-12-19 14:54:59 -05:00
Daniel García
51f6594d4b [PM-9473] Add messaging for macOS passkey extension and desktop (#10768)
* Add messaging for macos passkey provider

* fix: credential id conversion

* Make build.sh executable

Co-authored-by: Colton Hurst <colton@coltonhurst.com>

* chore: add TODO

---------

Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
Co-authored-by: Colton Hurst <colton@coltonhurst.com>
2024-12-19 09:00:21 +01:00
Andreas Coroiu
f16bfa4cd2 [PM-9035] desktop build logic to provide credentials to os on sync (#10181)
* feat: scaffold desktop_objc

* feat: rename fido2 to autofill

* feat: scaffold electron autofill

* feat: auto call hello world on init

* feat: scaffold call to basic objc function

* feat: simple log that checks if autofill is enabled

* feat: adding some availability guards

* feat: scaffold services and allow calls from inspector

* feat: create custom type for returning strings across rust/objc boundary

* chore: clean up comments

* feat: enable ARC

* feat: add util function `c_string_to_nsstring`

* chore: refactor and rename to `run_command`

* feat: add try-catch around command execution

* feat: properly implement command calling

Add static typing. Add proper error handling.

* feat: add autoreleasepool to avoid memory leaks

* chore: change objc names to camelCase

* fix: error returning

* feat: extract some helper functions into utils class

* feat: scaffold status command

* feat: implement status command

* feat: implement password credential mapping

* wip: implement sync command

This crashes because we are not properly handling the fact that `saveCredentialIdentities` uses callbacks, resulting in a race condition where we try to access a variable (result) that has already gotten dealloc'd.

* feat: first version of callback

* feat: make run_command async

* feat: functioning callback returns

* chore: refactor to make objc code easier to read and use

* feat: refactor everything to use new callback return method

* feat: re-implement status command with callback

* fix: warning about CommandContext not being FFI-safe

* feat: implement sync command using callbacks

* feat: implement manual password credential sync

* feat: add auto syncing

* docs: add todo

* feat: add support for passkeys

* chore: move desktop autofill service to init service

* feat: auto-add all .m files to builder

* fix: native build on unix and windows

* fix: unused compiler warnings

* fix: napi type exports

* feat: add corresponding dist command

* feat: comment signing profile until we fix signing

* fix: build breaking on non-macOS platforms

* chore: cargo lock update

* chore: revert accidental version change

* feat: put sync behind feature flag

* chore: put files in autofill folder

* fix: obj-c code not recompiling on changes

* feat: add `namespace` to commands

* fix: linting complaining about flag

* feat: add autofill as owner of their objc code

* chore: make autofill owner of run_command in core crate

* fix: re-add napi annotation

* fix: remove dev bypass
2024-12-06 16:31:30 +01:00
Oscar Hinton
51f46e797c [PM-5571] Migrate enableDDG to state provider framework (#8384)
Migrate enableDuckDuckGo to state provider framework.
2024-03-22 13:32:03 -04:00