* 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
* [PM-15559] Update admin dialog flows to first try the local state before using the API when not required
* [PM-15559] Clear initial values after creating a new cipher so that they do not override the newly created cipher for subsequent edits
On `/update-temp-password`, on the light theme the "Logout" link was not showing in the upper-left corner because the text color for an `a` link is our primary blue color, which blended in with the headers background color. This PR changes the logout `a` link to a `button` so that it inherits the header text color. It should be a button anyway since it's calling a function and not simply routing.
* Added conditional to check if a cipher can be delete by user
* Added change detection on push
* Added directive to check if user can delete a cipher
* Added directive to check if user can delete a cipher
* Replaced check with directive
* removed takeUntilDestroyed
* Switch to oo7 and drop libsecret
* Fix tests
* Fix windows
* Fix windows
* Fix windows
* Fix windows
* Add migration
* Update apps/desktop/desktop_native/core/src/password/unix.rs
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
* Remove libsecret in ci
* Move allow async to trait level
* Fix comment
* Pin oo7 dependency
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
Add timeout state management for two-factor authentication flows in web, desktop,
and browser extension clients. Includes:
- New timeout screen component with 5-minute session limit
- Updated UI elements and styling
- Comprehensive test coverage
Refs: PM-13659
* Remove bitItem and use plain bitLink button for opening generator history
* Revert desktop back to use bitItem
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* updating new menus to allow tab + enter to submit the link/button
* Updating New actions to use button instead of a for accessibiity purposes
* refactor
* refactor
* test fix
* fixes
* fixing tests
* fixing test
* fixing tests
---------
Co-authored-by: --global <>
* Force unlock when keys are cleared / on first unlock and fix account switching behavior
* Make comment a doc comment
* Pin russh commit
* Cleanup
* Make list messaging explicit
* Add account switching error handling for ssh agent
* Add account switching error handling for ssh agent
* Cleanup
* Changes for web impact by the policy
* Changes to address PR comments
* refactoring changes from pr comments
* Resolve the complex conditionals comment
* resolve the complex conditionals comment
* Resolve the pr comments on user layout
* revert on wanted change
* Refactor and move logic and template into its own component
* Move to a folder owned by the Billing team
* add check for extension prefixes in the three major browsers.
- Firefox does not throw an error or receive the message. Adding checks for Safari and Chrome for safety if this functionality were to change.
* remove unneeded mock rejection
* move prefixes to dedicated array
* refactor protocol check to its own variable
* Add changes for enabled policy
* Remove unused property
* Refactor the changes
* remove duplicated across multiple components
* Add some test and documentations to service
* Correct the comment free family sponsorship for isExemptFromPolicy
* catch errors from `tabSendMessage`
- Removes the need for a timeout when fetching page details
* Add parameter to reject on error
- allows each implementation to decide if they want to handle the error or not
* Stub out dialog
* Genericize LoginApprovalComponent
* update ipc mocks
* Remove changes to account component
* Remove changes to account component
* Remove debug
* Remove test component
* Remove added translations
* Fix failing test
* Run lint and prettier
* Rename LoginApprovalServiceAbstraction to LoginApprovalComponentServiceAbstraction
* Add back missing "isVisible" check before calling loginRequest
* Rename classes to contain "Component" in the name
* Add missing space between "login attempt" and fingerprint phrase
* Require email
In the legacy `AccountSercurityV1Component` the `updateBiometric(enabled: boolean)` method had an `else` block to handle an `enabled` value of `false`. The new `AccountSecurityComponent` is missing this block, which makes it so the user cannot disable biometrics because we aren't handling the case where they uncheck the biometrics checkbox. This PR just adds the `else` block in the new component so we handle a `false` value.
Feature Flag: ExtensionRefresh ON
* Create CredentialGeneratorHistoryDialogComponent to be re-used on web and desktop
* Add button to open credential histpry on web
* Add button to open credential history on desktop (#12101)
- Register route to open new CredentialGeneratorHistoryDialogComponent when FeatureFlag/GeneratorToolsModernization is enabled
- Add button to credential generator
- Add missing keys to en/messages.json
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Refactor organization user API service to support bulk deletion of users
* Add copy for bulk user delete dialog
* Add bulk user delete dialog component
* Add bulk user delete functionality to members component
* Make bulk user actions in the members component conditional based on the selected members
* Refactor members component to only display bulk user deletion option if the Account Deprovisioning flag is enabled
* Refactor bulk action visibility in members component based on Account Deprovisioning flag
* Patch build process
* Refactor bulk action visibility conditions in members component
* Simplify status checks in members component by using loose equality and removing redundant boolean comparisons
* Refactor bulk action visibility logic in members component to use computed properties for improved readability and maintainability
* Refactor bulk action visibility logic in members component to eliminate redundant methods and improve readability
* Revert "Patch build process"
This reverts commit 917c969f00.
* Refactor bulk action visibility logic in members component
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
Creates a refreshed and consolidated `LoginDecryptionOptionsComponent` for use on all visual clients, which will be used when the `UnauthenticatedExtensionUIRefresh` feature flag is on.
- Introduce using i18n by importing JslibModule
- Use i18n within markup
- Ensure navButtons.labels is a key that is present in the en/messages.json
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* PM-12077 - Initial work on web process reload - more testing required.
* PM-12077 - Clarify comment
* PM-12077 - Improving UX of logout with process reload.
* PM-12077 - Final tweaks for process reload
* PM-12077 - Remove no longer accurate comment.
* PM-12077 - Per PR feedback, clean up logout reason
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* Manually route to signup page when the email verification feature flag is enabled
* Revert "Manually route to signup page when the email verification feature flag is enabled"
This reverts commit f3a2b412b9.
* Do not show toast when redirecting to signup
Creates a refreshed and consolidated LoginViaAuthRequestComponent for use on all visual clients, which will be used when the UnauthenticatedExtensionUIRefresh feature flag is on.