1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-30 07:03:26 +00:00
Commit Graph

149 Commits

Author SHA1 Message Date
renovate[bot]
9c2da604b1 [deps] Platform: Update Rust crate typenum to v1.19.0 (#16845)
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-11-13 18:37:18 +01:00
Oscar Hinton
78d1eb9bed Replace dbg_log with tracing::debug (#17251)
We already configure tracing to only be enabled in debug so there is no need to wrap it with a macro
2025-11-06 15:48:19 +01:00
Dmitry Yakimenko
5c2215401c [PM-27786] Chrome application bound encryption v3 support (#17205)
* Update cargo.lock on windows

* Move ABE key decoding to helper.exe

* Safe slice operations (no panics)

* Refactor CNG code a bit

* Refactor CNG code a bit more

* Update README to match the new flow

* DRY up v1 and v2 decryption

* Remove all the crates and windows features that are not needed

* helper.exe split into a bunch of files

* Refator mod windows

* Minor cleanup

---------

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2025-11-06 10:20:23 +01:00
neuronull
9803cc98b4 Desktop Native remove log deps (#17135) 2025-11-04 07:35:34 -07:00
neuronull
2b1dbb935f Desktop native disallow log crate macros (#17163) 2025-11-03 07:36:40 -07:00
Oscar Hinton
4c1eba2086 [PM-27583] Add icon to chromium import helper (#17126)
Adds an icon to the windows binary.

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-10-31 10:10:22 +01:00
Dmitry Yakimenko
dcf8c1d83b [PM-25855][PM-24948][PM-24947] Chromium import functionality with application bound encryption on Windows (#16429)
Adds application bound encryption in order to support chrome imports on windows.

---------

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: adudek-bw <adudek@bitwarden.com>
Co-authored-by: Hinton <hinton@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-10-30 13:18:30 +01:00
Oscar Hinton
42377a1533 [PM-27341] Chrome importer refactors (#16720)
Various refactors to the chrome importer
2025-10-27 17:24:50 +01:00
renovate[bot]
e8db35907d [deps] Platform: Update Rust crate windows-registry to v0.6.1 (#16419)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 10:59:16 +01:00
neuronull
2c13236550 Add desktop autotype unittests for windows (#16710)
* Add desktop autotype unittests for windows

* lint

* fix TODO comment

* feedback coltonhurst: rename trait
2025-10-23 12:42:48 -04:00
Bernd Schoolmann
7f86f2d0ac [PM-26340] Implement encrypted memory store (#16659)
* Extract windows biometrics v2 changes

Co-authored-by: Bernd Schoolmann <mail@quexten.com>

* Address some code review feedback

* cargo fmt

* rely on zeroizing allocator

* Handle TDE edge cases

* Update windows default

* Make windows rust code async and fix restoring focus freezes

* fix formatting

* cleanup native logging

* Add unit test coverage

* Add missing logic to edge case for PIN disable.

* Address code review feedback

* fix test

* code review changes

* fix clippy warning

* Swap to unimplemented on each method

* Implement encrypted memory store

* Make dpapi secure key container pub(super)

* Add comments on sync and send

* Clean up comments

* Clean up

* Fix build

* Add logging and update codeowners

* Run cargo fmt

* Clean up doc

* fix unit tests

* Update apps/desktop/desktop_native/core/src/secure_memory/secure_key/mod.rs

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

* Handle tampering with re-key and log

* Add docs

* Fix windows build

* Prevent rust flycheck log from being commited to git

* Undo feature flag change

* Add env var override and docs

* Add deps to km owership

---------

Co-authored-by: Thomas Avery <tavery@bitwarden.com>
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2025-10-23 14:04:25 +02:00
neuronull
8370f43aae [BEEEP] Add println clippy lints for desktop_native. (#16761)
* [BEEEP] Add println clippy lints for `desktop_native`.

* remaining stray printlns
2025-10-21 07:38:39 -06:00
Thomas Avery
f65e5d52c2 [PM-25373] Windows native biometric rewrite (#16432)
* Extract windows biometrics v2 changes

Co-authored-by: Bernd Schoolmann <mail@quexten.com>

* Handle TDE edge cases

* Make windows rust code async and fix restoring focus freezes

* Add unit test coverage

---------

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
2025-10-20 14:47:15 -05:00
neuronull
44ce303181 [BEEEP] Use tracing in macOS provider (#16729)
* [BEEEP] Use tracing in macOS provider

* set log level filter to INFO

* only call global subscribe once
2025-10-20 08:20:15 -06:00
neuronull
9c0aaf3cab [BEEEP] Use tracing in desktop_proxy (#16758) 2025-10-17 11:36:30 -06:00
adudek-bw
7015663c38 [PM-25521] Move importer metadata to native code (#16695)
* Add importer metadata to native code

* Impl napi code in ts

* Impl napi code in ts

* Fix clippy

* Fix clippy

* remove ts util tests

* Check for installed browsers

* PR fixes

* test fix

* fix clippy

* fix tests

* Bug fix

* clippy fix

* Correct tests

* fix clippy

* fix clippy

* Correct tests

* Correct tests

* [PM-25521] Wire up loading metadata on desktop (#16813)

* Initial commit

* Fix issues regarding now unused feature flag

* Fixed ts-strict issues

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: adudek-bw <adudek@bitwarden.com>

* Remove logic to skip Brave as that now happens via the native code

* Define default capabilities which can be overwritten by specifc client/platform

* Fix DI issues

* Do not overwrite existing importers, just add new ones or update existing ones

* feat: [PM-25521] return metadata directly (not as JSON) (#16882)

* feat: return metadata directly (not as JSON)

* Fix broken builds

Move getMetaData into chromium_importer
Remove chromium_importer_metadata and any related service
Parse object from native instead of json

* Run cargo fmt

* Fix cargo dependency sort order

* Use exposed type from NAPI instead of redefining it.

* Run cargo fmt

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>

* Only enable chromium loader for installed and supported browsers

---------

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
2025-10-17 15:46:10 +02:00
Bernd Schoolmann
a7242a1186 [BEEEP|PM-25164] Prevent memory dumping on renderer on Linux (#16136)
* Implement libmemory_security

* Cleanup and add script

* Remove duplicate build for flatpak

* Rename to process isolation

* Move to desktop native

* Undo changes in gitignore

* Remove after-pack changes

* Run cargo fmt

* Sort deps

* Attempt to fix windows build

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

Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>

* Revert "Remove after-pack changes"

This reverts commit c441025587.

* Fix lib process isolation not being included in build

* Fix build

* Attempt to fix build

* Attempt to fix build

* Undo

* Fix library not being included

---------

Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-10-13 15:06:41 +02:00
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
adudek-bw
f66413e653 Upgrade rusqlite to 0.37.0 (#16530) 2025-09-25 16:54:57 +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
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
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
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
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
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]
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]
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
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
renovate[bot]
8de42caf04 [deps] KM: Update Rust crate rsa to v0.9.8 (#12298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
2025-04-19 18:07:20 +02:00
renovate[bot]
c16534e1e7 [deps]: Update Rust crate tokio to v1.43.1 [SECURITY] (#14170)
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-09 18:08:22 +02:00