clients/libs
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
..
.vscode Multi root workspace tweaks (#2858) 2022-06-13 21:39:36 -05:00
admin-console [PM-22717] Expose DefaultUserCollectionEmail to clients (#15643) 2025-08-26 11:42:52 -04:00
angular [PM-24550] Remove Feature Flag Code for PM-12276 (#16173) 2025-09-03 19:28:15 +00:00
assets [CL-706] Display all svg icons in Storybook (#16111) 2025-08-25 12:09:20 -04:00
auth [PM-21772] Show key connector domain for new sso users (#15381) 2025-09-03 21:16:40 +02:00
billing Implement and extend tsconfig.base across projects (#14554) 2025-06-02 20:38:17 +00:00
client-type refactor: introduce @bitwarden/state and other common libs (#15772) 2025-08-04 11:01:28 -04:00
common [PM-24748][PM-24072] Chromium importer (#16100) 2025-09-04 11:21:57 +02:00
components [CL-836] Extract base css variables (#14733) 2025-08-29 10:43:38 +02:00
core-test-utils refactor: introduce @bitwarden/state and other common libs (#15772) 2025-08-04 11:01:28 -04:00
dirt/card feat(nx): add basic-lib generator for streamlined library creation (#14992) 2025-06-05 14:20:23 -04:00
eslint [CL-689][CL-799] Fix Icon button a11y errors (#15750) 2025-08-19 15:15:41 -04:00
guid refactor: introduce @bitwarden/state and other common libs (#15772) 2025-08-04 11:01:28 -04:00
importer [PM-24748][PM-24072] Chromium importer (#16100) 2025-09-04 11:21:57 +02:00
key-management cleanup remove password on start for desktop (#15957) 2025-08-22 23:14:02 +02:00
key-management-ui [PM-21772] Show key connector domain for new sso users (#15381) 2025-09-03 21:16:40 +02:00
logging [PM-22544] Add Performance measurement tools (#15475) 2025-07-17 15:03:57 +02:00
messaging Add messaging & messaging-internal libraries (#15711) 2025-07-22 11:47:25 -04:00
messaging-internal Add messaging & messaging-internal libraries (#15711) 2025-07-22 11:47:25 -04:00
node [PM-22271] Switch to SDK argon2 implementation, and drop other impls (#15401) 2025-07-15 11:53:58 +02:00
nx-plugin build: ensure new libraries are added to the root jest.config (#16166) 2025-08-27 11:56:42 -04:00
platform Implement and extend tsconfig.base across projects (#14554) 2025-06-02 20:38:17 +00:00
serialization build: ensure new libraries are added to the root jest.config (#16166) 2025-08-27 11:56:42 -04:00
shared Implement and extend tsconfig.base across projects (#14554) 2025-06-02 20:38:17 +00:00
state build: ensure new libraries are added to the root jest.config (#16166) 2025-08-27 11:56:42 -04:00
state-internal Resolve state <-> state-test-utils circular dependency (#16093) 2025-08-25 12:38:28 -04:00
state-test-utils Resolve state <-> state-test-utils circular dependency (#16093) 2025-08-25 12:38:28 -04:00
storage-core build(nx): create per-lib tsconfig.eslint configs (#15519) 2025-07-07 14:17:52 -07:00
storage-test-utils build(nx): create per-lib tsconfig.eslint configs (#15519) 2025-07-07 14:17:52 -07:00
tools [CL-573] Move all svg icons to new libs/assets (#16020) 2025-08-21 11:35:59 -05:00
ui Implement and extend tsconfig.base across projects (#14554) 2025-06-02 20:38:17 +00:00
user-core build(nx): create per-lib tsconfig.eslint configs (#15519) 2025-07-07 14:17:52 -07:00
vault [PM-24797] Hidden custom fields for new ciphers (#16198) 2025-09-03 21:16:56 -05:00