1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-20 18:23:31 +00:00
Commit Graph

187 Commits

Author SHA1 Message Date
neuronull
c2fbd3eb7e More robust error handling for desktop autotype windows implementation (#16501)
* Desktop autotype windows error handling

* create a subdir

* extract window handle to separate file

* remove println in case tracing doesn't make it in

* touchups

* reduce scope of unsafe call

* use tracing

* Fix comparison on GetLastError result

* Remove the WindowHandle wrapper and save it for the unit testing PR

* restore apps/browser/src/platform/system-notifications/browser-system-notification.service.ts

* use the human readable message for GetLastError debug

* don't call GetLastError outside of error path

* add some more debug statements

* feedback coltonhorst: nits, fix false positive when len zero, re-add handle validation

* lint

* feedback coltonhurst: add comments and update var names
2025-09-30 22:22:30 +00:00
neuronull
54a53a1c34 Use tracing in ssh_agent (#16455)
* [BEEEP][PM-255518] Use tracing for improved observability

* feedback dani-garcia: use DefaultVisitor

* set default log level

* convert printlns in objc crate

* convert printlns in autotype crate

* convert printlns in autostart crate

* convert printlns in core/password crate

* convert printlns in core/biometric crate

* convert printlns in napi crate

* convert log usage in macos provider crate

* convert existing log macros to tracing

* fix the cargo.toml sort lint errors

* Revert "fix the cargo.toml sort lint errors"

This reverts commit fd149ab697.

* fix the sort lint using correct cargo sort version

* feedback coltonhurst: more comments/clarity on behavior

* revert changes to ssh_agent

* Use tracing in ssh_agent
2025-09-30 06:33:32 -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
renovate[bot]
adbf80dd39 [deps] Platform: Update Rust crate security-framework to v3.5.0 (#16628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-09-29 11:31:31 +02:00
adudek-bw
f66413e653 Upgrade rusqlite to 0.37.0 (#16530) 2025-09-25 16:54:57 +02:00
Oscar Hinton
87119f9758 Remove allow(clippy::question_mark) (#16565)
Remove the allow(clippy::question_mark) exception by reworking the code to use ?.
2025-09-25 13:31:22 +02:00
neuronull
3f14fdc62d [BEEEP][PM-255518] Use tracing for improved observability (#16321)
* [BEEEP][PM-255518] Use tracing for improved observability

* feedback dani-garcia: use DefaultVisitor

* set default log level

* convert printlns in objc crate

* convert printlns in autotype crate

* convert printlns in autostart crate

* convert printlns in core/password crate

* convert printlns in core/biometric crate

* convert printlns in napi crate

* convert log usage in macos provider crate

* convert existing log macros to tracing

* fix the cargo.toml sort lint errors

* Revert "fix the cargo.toml sort lint errors"

This reverts commit fd149ab697.

* fix the sort lint using correct cargo sort version

* feedback coltonhurst: more comments/clarity on behavior

* revert changes to ssh_agent
2025-09-22 09:56:23 -06: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
adudek-bw
6a7f437b1f Add unit tests to chromium importer (#16462)
* Add unit tests to chromium importer
2025-09-18 13:00:52 -04:00
renovate[bot]
fb2fe703a2 [deps] Platform: Update Rust crate zbus to v5.11.0 (#15289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 14:11:08 +02:00
renovate[bot]
7b248fb481 [deps] Platform: Update macOS/iOS bindings (#12971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 14:10:47 +02:00
Colton Hurst
961cbbe91d Add generated update to index.d.ts (#16408) 2025-09-17 11:22:02 +02:00
Bernd Schoolmann
ea1c3252e8 [BEEEP | PM-25358] Add process isolation on windows and mac desktop main process (#16156)
* Prevent memory dumping and debugger on windows and mac main process

* Fix clippy

* Only isolate process when isdev is false

* Clean up

* Add backticks around link
2025-09-04 21:40:25 +02:00
Daniel James Smith
66f5700a75 [PM-24748][PM-24072] Chromium importer (#16100)
* Add importer dummy lib, add cargo deps for win/mac

* Add Chromium importer source from bitwarden/password-access

* Mod crypto is no more

* Expose some Chromium importer functions via NAPI, replace home with home_dir crate

* Add Chromium importer to the main <-> renderer IPC, export all functions from Rust

* Add password and notes fields to the imported logins

* Fix windows to use homedir instead of home

* Return success/failure results

* Import from account logins and join

* Linux v10 support

* Use mod util on Windows

* Use mod util on macOS

* Refactor to move shared code into chromium.rs

* Fix windows

* Fix Linux as well

* Linux v11 support for Chrome/Gnome, everything is async now

* Support multiple browsers on Linux v11

* Move oo7 to Linux

* Fix Windows

* Fix macOS

* Add support for Brave browser in Linux configuration

* Add support for Opera browser in Linux configuration

* Fix Edge and add Arc on macOS

* Add Opera on macOS

* Add support for Vivaldi browser in macOS configuration

* Add support for Chromium browser in macOS configuration

* Fix Edge on Windows

* Add Opera on Windows

* Add Vivaldi on windows

* Add Chromium to supported browsers on Windows

* stub out UI options for chromium direct import

* call IPC funcs from import-desktop

* add notes to chrome csv importer

* remove (csv) from import tool names and format item names as hostnames

* Add ABE/v20 encryption support

* ABE/v20 architecture description

* Add a build step to produce admin.exe and service.exe

* Add Windows v20/ABE configuration functionality to specify the full path to the admin.exe and service.exe. Use ipc.platform.chromiumImporter.configureWindowsCryptoService to configure the Chromium importer on Windows.

* rename ARCHITECTURE.md to README.md

* aligns with guidance from architecture re: in-repository documentation.
* also fixes a failing lint.

* cargo fmt

* cargo clippy fix

* Declare feature flag for using chromium importer

* Linter fix after executing npm run prettier

* Use feature flag to guard the use of the chromium importer

* Added temporary logging to further debug, why the Angular change detection isn't working as expected

* introduce importer metadata; host metadata from service; includes tests

* fix cli build

* Register autotype module in lib.rs
introduce by a bad merge

* Fix web build

* Fix issue with loaders being undefined and the feature flag turned off

* Add missing Chromium support when selecting chromecsv

* debugging

* remove chromium support from chromecsv metadata

* fix default loader selection

* [PM-24753] cargo lib file (#16090)

* Add new modules

* Fix chromium importer

* Fix compile bugs for toolchain

* remove importer folder

* remove IPC code

* undo setting change

* clippy fixes

* cargo fmt

* clippy fixes

* clippy fixes

* clippy fixes

* clippy fixes

* lint fix

* fix release build

* Add files in CODEOWNERS

* Create tools owned preload.ts

* Move chromium-importer.service under tools-ownership

* Fix typeError
When accessing the Chromium direct import options the file button is hidden, so trying to access it's values will fail

* Fix tools owned preload

* Remove dead code and redundant truncation

* Remove configureWindowsCryptoService function/methods

* Clean up cargo files

* Fix unused async

* Update apps/desktop/desktop_native/bitwarden_chromium_importer/Cargo.toml

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>

* Fix napi deps

* fix lints

* format

* fix linux lint

* fix windows lints

* format

* fix missing `?`

* fix a different missing `?`

---------

Co-authored-by: Dmitry Yakimenko <detunized@gmail.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by:  Audrey  <ajensen@bitwarden.com>
Co-authored-by:  Audrey  <audrey@audreyality.com>
Co-authored-by: adudek-bw <adudek@bitwarden.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2025-09-04 11:21:57 +02:00
Oscar Hinton
97ee61db00 Configure clippy (#16194)
Apply the same clippy configuration as we have in sdk-internal. bitwarden/sdk-internal@49f84e6/Cargo.toml#L91-L94

Adds FIXME comments to all existing violations. unwrap is bad as those will resullt in panics and crash the application. Unused async is ignored in napi since that would require changes to the js side which I don't want to deal with.
2025-08-29 08:27:50 -04:00
Colton Hurst
423b1cf1df Remove BlockInput (#15913)
* Remove block_input

* Add virtual key code comment
2025-08-06 11:08:48 -04:00
Colton Hurst
fd727ffc39 [PM-22790] Adds SendInput() Functionality to the Autotype Crate (#15751)
* [PM-22790] Adds SendInput() functionality to the autotype crate

* [PM-22790] Fixes unused variable linting errors

* [PM-22790] Updated autotype lib.rs comment
2025-07-28 16:26:48 -04:00
Maciej Zieniuk
167fa9a7ab [PM-18054] Chrome extension biometric unlock not functioning correctly with Windows Hello. (#14953)
* Chrome extension biometric unlock not functioning correctly with Windows Hello.

When unlocking via Windows Hello prompt, the popup have to be in the foreground. If it is not, even for short amount of time (few seconds), if later prompt confirmed, it won't return success when returning signed os key half.

* unit test coverage

* unit test coverage

* exclude test files from build

* use electron `setAlwaysOnTop` instead of toggle

* remove Windows os key half created with derive_key_material biometric function, that prompted Windows Hello.

Moves Windows hello prompt into getBiometricKey.
Witness key no longer needed.

* windows crate formatting

* remove biometric on app start for windows

* failing os biometrics windows unit tests

* cleanup of os biometrics windows unit tests

* increased coverage of os biometrics windows unit tests

* open Windows Hello prompt in the currently focused window, instead of always desktop app

* conflict resolution after merge, typescript lint issues, increased test coverage.

* backwards compatibility when require password on start was disabled

* biometric unlock cancellation and error handling

* biometric settings simplifications
2025-07-21 19:35:31 +02: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
Bernd Schoolmann
8250e40c6c [PM-22271] Switch to SDK argon2 implementation, and drop other impls (#15401)
* Switch to SDK argon2 implementation

* Cleanup and update to the latest sdk

* Update package lock

* Remove copy patch

* Fix builds

* Fix test build

* Remove error

* Fix tests

* Fix build

* Run prettier

* Remove argon2 references

* Regenerate index.d.ts for desktop_native napi

* Replace mocked crypto function service type
2025-07-15 11:53:58 +02:00
Daniel García
318040233c [PM-23159] Update arboard and enable exclude from history on Linux (#15393) 2025-07-10 19:17:13 +02:00
Bernd Schoolmann
e7d5cde105 [BEEEP/PM-22958] Update russh version, and add sessionbind information (#14602)
* Update russh version, and add sessionbind information

* Cargo fmt

* Clean up to fix lint

* Attempt to fix windows

* Use expect instead of unwrap

* Fix cargo toml
2025-07-09 16:52:47 +02:00
Daniel García
616ac9a3c8 Fix Clippy 1.88 warnings (#15396)
* Fix Clippy 1.88 warnings

* Fmt
2025-07-01 22:36:18 +02:00
Maciej Zieniuk
8fec95671d [PM-22090] Delete password on Windows desktop throws incorrect error (#15070)
* delete password on Windows desktop throws incorrect error

* delete password on Windows desktop throws incorrect error

* napi documentation improvements

* napi documentation update

* better logging verbosity

* desktop native clippy errors

* unit test coverage

* napi TS documentation JS language friendly

* fixing merge conflicts
2025-06-30 12:38:51 +02:00
renovate[bot]
fc9ce266ba [deps] Platform: Update Rust crate bindgen to v0.72.0 (#15287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-06-23 12:20:56 +02:00
Bernd Schoolmann
c7dcc32ea7 Remove test keys (#15205) 2025-06-16 14:43:11 +02:00
renovate[bot]
41830ae334 [deps] Platform: Update zbus to v5 (major) (#12312)
* [deps] Platform: Update zbus to v5

* adjust for api changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: addisonbeck <github@addisonbeck.com>
2025-06-11 15:45:07 -04:00
renovate[bot]
aac4dc6df4 [deps] Platform: Update napi (#14721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Addison Beck <github@addisonbeck.com>
2025-06-09 16:20:13 -04:00
renovate[bot]
4bf1a3b670 [deps] Platform: Update Rust crate bytes to v1.10.1 (#14922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-28 07:16:46 -07:00
Bernd Schoolmann
04ed114e0e [BEEEP/PM-8492] Add autostart for flatpak (#12016)
* Add autostart for flatpak via ashpd

* Fix clippy errors

* Cargo fmt

* Fix clippy
2025-05-26 00:30:52 +02:00
renovate[bot]
2e4b310137 [deps] Platform: Pin dependencies (#14446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-21 11:04:35 +02:00
renovate[bot]
bc56bc8e37 [deps]: Lock file maintenance (#13866)
* [deps]: Lock file maintenance

* add override for parse5 version to 7.2.1 (7.3.0 has breaking ts changes)

* manual rebuild of package-lock

* fix test event listeners persistence

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Prusik <jprusik@classynemesis.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2025-05-21 09:29:14 +02:00
Daniel García
a02c230e4d Pin rust toolchain (#14817)
* Pin rust toolchain

* Always install targets in build script

* Delete installed toolchains
2025-05-17 22:17:36 +02:00
Colton Hurst
c0ef307e99 PM-21174: Revert 8de42ca (#14735)
Merging at the request of QA
2025-05-16 15:16:22 -04:00
renovate[bot]
ad7c20febc [deps]: Update Rust crate thiserror to v2 (#13865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 13:53:17 -07:00
renovate[bot]
de03e3ef25 [deps]: Update Rust crate tokio to v1.45.0 (#14506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 13:22:54 -07:00
renovate[bot]
6e5a1f184e [deps] Platform: Update Rust crate widestring to v1.2.0 (#14488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 09:30:51 -07:00
renovate[bot]
b611fdfb62 [deps] Platform: Update Rust crate windows-registry to v0.5.1 (#14489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 08:52:14 -07:00
renovate[bot]
89b9ba21ca [deps] Platform: Update Rust crate arboard to v3.5.0 (#14484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 07:15:06 -07:00
renovate[bot]
1edca39fa2 [deps] Platform: Update Rust crate sysinfo to 0.35.0 (#14265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-05-09 17:49:07 +02:00
renovate[bot]
b56cfba5bf [deps] Platform: Update Rust crate rand to v0.9.1 (#13434)
* [deps] Platform: Update Rust crate rand to v0.9.1

* remedy new lint errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: addisonbeck <github@addisonbeck.com>
2025-05-08 21:04:29 +02:00
renovate[bot]
e6bc43bc8f [deps] Platform: Update Rust crate oo7 to v0.4.3 (#14485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-08 12:58:49 -04:00
Bernd Schoolmann
a1e975a6ae [BEEEP] Add zeroizing alloc to desktop_native (#14601)
* Add zeroizing alloc

* Cleanup

* Cleanup
2025-05-05 12:45:56 +02:00
renovate[bot]
751169d728 [deps] Platform: Update Rust crate libc to v0.2.172 (#14456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-29 10:03:38 -07:00
renovate[bot]
434852b9b9 [deps] Platform: Update Rust crate pin-project to v1.1.10 (#14458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-04-28 11:45:26 +02:00
renovate[bot]
5fc4e32b8f [deps] Platform: Update Rust crate typenum to v1.18.0 (#14486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-04-28 11:44:43 +02:00
Colton Hurst
24786a08df [PM-20451] Refactor Windows PA Types (#14366)
* PM-20451: Rename and organize Windows types

* PM-20451: Add comments
2025-04-25 14:42:11 -04:00
Daniel García
9d95f9af03 [PM-20597] Fix linux desktop_native script (#14428)
* Fix linux desktop_native build script

* Add linux variables

* Remove default

* Remove unused import

* Update apps/desktop/desktop_native/build.js

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>

---------

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
2025-04-25 18:16:15 +02:00
Colton Hurst
83d7ea6aa3 [PM-20334] Remove Bindgen from Windows Plugin Authenticator (#14328)
* PM-20334: Draft work removing bindgen

* PM-20334: Remove comments and address clippy concerns

* PM-20334: Edit wpa readme and remove .hpp header file
2025-04-21 09:52:53 -04:00
Daniel García
86b0a6aa35 Support for logging from NAPI (#14335)
* Support for log to electron console from NAPI

* Fix test mock
2025-04-21 12:21:00 +02:00