1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-07-02 11:34:53 +02:00
Commit Graph

636 Commits

Author SHA1 Message Date
Matt Gibson
92f593df08
Remove unnecessary complex types (#7451)
#7290 introduced these types, but during development we switched over to specifying dependencies in type parameters instead of an object. This change meant we no longer needed these `Type` or `ShapeToInstance` types, greatly simplifying the types related to derived state.
2024-01-04 16:50:55 -05:00
Justin Baur
5e11cb212d
Combined State (#7383)
* Introduce Combined State

* Cleanup Test

* Update Fakes

* Address PR Feedback

* Update libs/common/src/platform/state/implementations/default-active-user-state.ts

Co-authored-by: Matt Gibson <mgibson@bitwarden.com>

* Prettier

* Get rid of ReplaySubject reference

---------

Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
2024-01-04 16:30:20 -05:00
Matt Gibson
06affa9654
Rework derived state (#7290)
* Remove derived state from state classes

* Create provider for derived state

Derived state is automatically stored to memory storage, but can be derived from any observable.

* Fixup state provider method definitions

* Test `DefaultDerivedState`

* remove implementation notes

* Write docs for derived state

* fixup derived state provider types

* Implement buffered delayUntil operator

* Move state types to a common module

* Move mock ports to centra location

* Alias DerivedStateDependency type

* Add dependencies to browser

* Prefer internal rxjs operators for ref counting

* WIP

* Ensure complete on subjects

* Foreground/background messaging for browser

Defers work for browser to the background

* Test foreground port behaviors

* Inject foreground and background derived state services

* remove unnecessary class field

* Adhere to required options

* Add dderived state to CLI

* Prefer type definition in type parameters to options

* Prefer instance method

* Implements factory methods for common uses

* Remove nothing test

* Remove share subject reference

Share manages connector subjects internally and will reuse them until
refcount is 0 and the cleanup time has passed. Saving our own reference
just risks memory leaks without real testability benefits.

* Fix interaction state
2024-01-04 14:47:49 -05:00
rr-bw
5328ffb349
refactor sort() comparison function to be consistent across browsers (#7440)
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
2024-01-04 09:20:44 -08:00
Jason Ng
eebd10dfd0
linting failures from community pr update (#7434) 2024-01-03 15:36:48 -05:00
Bernd Schoolmann
1b4717a78f
[PM-3343] Capture TOTP QR codes from websites in the browser extension (#5985)
* Implement totp capture for browser extensions
2024-01-03 13:20:17 -05:00
Bitwarden DevOps
4784ab12e5
Bumped browser,cli,desktop,web version to 2024.1.0 (#7428) 2024-01-02 22:07:38 +00:00
Justin Baur
f2eea12b4f
Route on switchAccountFinish Message (#7422) 2024-01-02 16:55:42 -05:00
Andreas Coroiu
551d2c2441
[PM-5302] Refactor Passkey feature enable/disable logic (#7242)
* feat: add missing tests for `isFido2FeatureEnabled`

* feat: add user logged in check

* chore: rewrite with cartesian product

* chore: remove test

The test was more complex than the actual function, removing.

* feat: add domain exclusion

* feat: add origin equal vault case

* chore: clean up the old code from `content-secript`

* feat: return early to avoid making api calls

* fix: prettier linting

* fix: incorrect logic inversion

---------

Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
2024-01-02 13:42:16 -05:00
Matt Gibson
a682f2a0ef
[PM-5468] Ensure prototypes available on memory stored objects (#7399)
* Hide account switcher in addEdit generator

* Handle AddEditCipher deserialization

* Opaque types are not serializable

* Better handle jsonification of login uris

* Ensure we don't overwrite original with clone

* Ensure cipherView prototype is always restored if it exists
2024-01-02 10:46:45 -05:00
Justin Baur
90b794c74d
[PM-5455] Listen for Finish Message (#7387)
* Listen for Finish Message

* Set Loading to false

* Have Type Reflect Possibilities
2024-01-02 10:05:26 -05:00
github-actions[bot]
526475eb40
Autosync the updated translations (#7414)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2024-01-02 11:07:11 +00:00
github-actions[bot]
7d841f959b
Autosync the updated translations (#7412)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2024-01-02 12:04:24 +01:00
rr-bw
565846f837
[PM-5430] Separate Active Account from other accounts (#7374)
* make spacing consistent between log out and lock all buttons

* update color of avatar when no active account

* separate active account from other available accounts

* remove unnecessary ng-container
2024-01-01 21:21:15 -08:00
rr-bw
ec417cf2aa
change active account status to green (#7371) 2023-12-29 10:07:53 -08:00
Daniel James Smith
4f310b6b69
Update all instances of copyright with 2023 to 2024 (#7396)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2023-12-29 15:28:14 +00:00
github-actions[bot]
978ad50ff6
Autosync the updated translations (#7390)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2023-12-29 00:55:23 +00:00
github-actions[bot]
2068d4879a
Autosync the updated translations (#7379)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2023-12-28 13:26:42 +00:00
rr-bw
00bb814fbe
[PM-2414] Angular 16 Upgrade - SetPinComponent (#7214)
* migrate to DialogService

* use static method

* add reactive form dependencies

* begin migrating to reactive forms

* migrate template inputs to use CL

* update set-pin.component.ts file to work with reactive forms

* migrate desktop template and class file to Dialog and ReactiveForms

* update settings page

* remove old properties

* update settings form upon dialog close

* refactor ngOnInit()

* remove duplicate validator (already have a validator in class file)
2023-12-27 10:48:06 -08:00
Cesar Gonzalez
690f4a0ae9
[PM-5134] Make Default Setting for Overlay "On Focus" (#7297) 2023-12-22 22:14:02 +00:00
Cesar Gonzalez
6ca303f4ae
[PM-4032] Detect LastPass export page and suppress download prompt (#6398)
* Import libs/importer and instantiate ImportService

* Create ImportApi and ImportService factories

* Add libs/importer to desktop

* [PM-4075] Setup Feature Flag for Browser Fileless Import

* [PM-4032] Detect Lastpass Export Page and Supress Download Prompt

* [PM-4032] Implementing jest tests for the FilelessImporterBackground class

* [PM-4075] Setup Feature Flag for Browser Fileless Import (#6391)

* [PM-4032] Implementing jest tests for the FilelessImporterBackground class

* [PM-4032] Implementing jest tests for the LpFilelessImporter class

* [PM-4032] Modifying variable name

* [PM-4032] Modifying verbiage on jest tests to feature present tense actions and updating behavior within FilelessImporterBackground to ensure logic is triggered on expected port names only

* [PM-4032] Modifying documentation present above handlePortOnConnect method

* [PM-4032] Modifying documentation present above handlePortOnConnect method

* [PM-4032] Applying early return if the user has a policy that removes the individual vault

* [PM-4032] Reverting change made to notification bar

* [PM-4032] Applying a static declaration to the filelessImporterPortNames property

* [PM-4032] Modifying test for handlPortOnConnect method to follow provided feedback

* [PM-4032] Applying feedback to jest test messages

* [PM-4032] Reworking LpFilelessImporter to simplify testing structure and leverage public facing methods rather than testing private methods

* [PM-4032] Reworking FilelessImporterBackground class

* [PM-4032] Adding implementation details that facilitate triggering onMessage listeners within a chrome.runtime.connection port

* [PM-4032] Implementing reworked jest tests for FilelessImporterBackground

* [PM-4032] Adjusting naming of jest test

* [PM-4032] Reworking test setup implementation to better fit approach discussed within overlay PR work

* [PM-4032] Running prettier

* [PM-4032] Removing added line break

* [PM-4033] Display import prompt to user (#6407)

* [PM-4033] Display Import Prompt to the User

* [PM-4033] Adding jest tests for LpFilelessImporter

* [PM-4033] Finalization of Jest tests

* [PM-4033] Finalization of Jest tests

* [PM-4033] Removing values from the whitelist capital letters file

* [PM-4033] Addressing jest test coverage in LpFilelessImporter

* [PM-4033] Addressing jest test coverage in LpFilelessImporter

* [PM-4033] Adding documentation to the added methods within the NotificationBackground class

* [PM-4033] Adding documentation to the added methods within the bar.ts content script

* [PM-4033] Removing unnecessary method within lp-fileless-importer content script

* [PM-4033] Removing method that is not currently used within FilelessImporterBackground

* [PM-4033] Adding jest tests for the implementation

* [PM-4035] Import LastPass Export Page Data (#6408)

* [PM-4035] Import LastPass Export Page Data

* [PM-4035] Import LastPass Export Page Data

* [PM-4035] Adding jest tests for the LPFilelessImporter class

* [PM-4035] Adding jest tests for the FilelessImporterBackground class

* [PM-4035] Fixing references to innerHtml and updating them to reference textContent

* [PM-4035] Removing eslint-disable and adding logging service to bar.ts

* [PM-4035] Adding typing information to LpImporter classes

* [PM-4035] Adding typing information to LpImporter classes

* [PM-4035] Adding typing information for FilelessImportType

* [PM-4035] Updating type reference for the filelessImportType

* [PM-4032] Refactoring implementation for NotificationBackground.doNotificationQueueCheck to remove repetition

* [PM-4032] Refactoring early returns within NotificationBackground

* [PM-4032] Adding context for a test case for the FilelessImporterBackground

* [PM-4032] Removing magic number by referencing the notification port within a test for cancelFilelessImport

* [PM-4032] Adding documentation to the constructor

* [PM-4032] Switching logic to use a switch statement rather than multiple if statements

* [PM-4032] Removing unnecessary early return from the mutation observer implementation within `lp-fileless-importer.ts

* [PM-4032] Adding return to the mutation observer when we have found the expected text node

* [PM-4032] Refactoring implementation of the handleMutation method

* [PM-4032] Modifying implementation for pushUnlocKVaultToQueue to send a notification message instead of adding the item to the queue

* [PM-4032] Modifying implementation for how we handle mutations within the lp-fileless-importer

* [PM-4032] Adding space between the iteration over added nodes within LpFilelessImporter.handleMutation

* [PM-4032] Reworking logic within the doNotificationCheck method to remove for loop

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2023-12-22 14:03:21 -06:00
Cesar Gonzalez
a1e649e809
[PM-5303] Fix issues found with SSO login (#7346)
* [PM-5303] Cannot login with SSO

* [PM-5303] Adding documentation to newly created ContentMessageHandler class

* [PM-5303] Updating manifest v3 implementation to use the newly scoped name

* [PM-5303] Adding jest tests to implementation
2023-12-22 20:00:52 +00:00
github-actions[bot]
e079fb4ab6
Autosync the updated translations (#7334)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2023-12-22 11:37:20 +01:00
Matt Gibson
bbdf704763
Target messages to only the interested ports (#7301) 2023-12-21 14:01:48 -05:00
SmithThe4th
07d224d6bc
[PM-4239] When viewing an item with a passkey, passkey is not announced by screenreader (#7154)
* Made passkey field focusable

* Made passkey field focusableand accessibilty possible for screenreaders in announcing the field
2023-12-21 10:54:54 -05:00
SmithThe4th
c1d856430a
[PM-4650] Provide user interaction for adding domain to excluded domains for passkeys (#7041)
* Added new locales text

* expose the sender url to be used in the use browser link component

* Modified use browser link to have a dropdown of two options, just once or always for this site

* modified component to use the use browser link component

* refactored method

* Made style changes and also updated the windows popout height

* ran prettier

* corrected google domain

* [PM-5281] [PM-5282] Disable User Interaction Post 'Always for this Site' Selection and Preserve Prior Exclusions (#7237)

* Added new domain alongside existing domains when saving to state

* Added an overlay whne user clicks always for this site to prevent further interaction on the page

* changed opacity

* moved overlay to fido2-use-browser-link

* removed private method and renamed variable
2023-12-20 10:38:35 -05:00
Justin Baur
c16d0b29fa
Register StateProvider in non DI clients (#7280)
* Add StateProvider and All to Browser Background

* Add State Provider and All to CLI

* Move EncryptService above its first usage
2023-12-19 20:07:16 +00:00
Bitwarden DevOps
d1ecf2e8ea
Bumped browser version to 2023.12.1 (#7285) 2023-12-19 16:24:42 +00:00
Justin Baur
07e2731a2e
Access Returned Object With Global Key (#7240) 2023-12-18 23:58:39 -05:00
Matt Gibson
87b6651f8e
[pm-5287] fix account switch logout routing (#7231)
* Navigate to home from account switcher

Also updates the main background handling of logout to either finish switch or logout, depending on which occurred

* Prefer observable guards

we were racing the account switch process on `accountService` and this async guard. It only depended on account status, which is available from `accountService`, so the correct move was to observe that status.

The unauthGuardFn allows for updating homepage depending on window state because popout windows have different nav to other locations.
2023-12-18 14:23:43 -05:00
Matt Gibson
bc1f93d098
Add missing state provider factories (#7262) 2023-12-18 12:39:05 +00:00
github-actions[bot]
c4278e7dbb
Autosync the updated translations (#7236)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2023-12-15 15:26:50 +01:00
Will Martin
e102919c2f
[CL-133] add skip links to bit-layout (#7213)
* Add light LinkType to link directive

* add skip link to bit-layout; update i18n for all apps

* install storybook interaction testing packages

* update storybook config

* add skiplink story to bit-layout

* update route and focus logic

* remove focus ring
2023-12-15 09:06:05 -05:00
Will Martin
b73d73b508
create team owned libs for billing, admin-console, platform (#7233)
* add admin-console lib files

* add billing lib files

* add platform lib files

* update lib references in config files

* update package-lock
2023-12-15 09:02:21 -05:00
Matt Gibson
4644392d5c
Clear vault filter on account switch (#7227) 2023-12-15 12:55:11 +00:00
Matt Gibson
00fd45a678
Update overlay on account switch (#7217) 2023-12-14 10:08:01 -06:00
Daniel James Smith
60d9f3d150
[PM-1925][PM-2741][AC-1334] flexible collections export page (#5759)
* Use bitTypography for page title

* Replaced app-callout with bit-callout

* Replace button with bit-button

* Update radio buttons to use CL

* Use searchable select for fileFormat dropdown

* Remove unneeded divs (old styling)

* pm-1826 remove eslint-disable tailwindcss/no-custom-classname

* Removed for-attribute from bit-labels

* Removed bitInput from bit-selects

* Removed name-attribute from bit-selects

* Make format a required field

* Removed unused dependency on cryptoService

* Remove unused dependency on BroadcasterService

* Removed dependency on window

* Moved organizationId into BaseExportComponent

* Add vaultSelector

Add organizationService as new dependency
Retrieve organizations a user has access to
Add vaultSelector dropdown
Add `export from` label
Add exportFromHint

* Removed hint as discussed by product&design

* Add function to check for import/export permission

* Export callout should listen to changes

Even though the organizationId was changed, the Input did not trigger changing the scope

* Reading FlexibleCollections feature flag to show the vault-selector on export (#7196)

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: aj-rosado <109146700+aj-rosado@users.noreply.github.com>
2023-12-14 13:55:54 +01:00
Cesar Gonzalez
12de4b1386
[PM-5245] Autofill not triggering for fields that are not visible on load (#7209) 2023-12-13 21:17:47 +00:00
Cesar Gonzalez
bf60711efe
[PM-934] Autofill not working until page has been refreshed (#6826)
* [PM-934] Autofill not working until page has been refreshed

* [PM-934] Adjusting cleanup of the messages_handler script

* [PM-934] Fixing small issue found within collection of page details

* [PM-934] Addressing concenrs brought up during code review

* [PM-934] Addressing concenrs brought up during code review

* [PM-934] Addressing concenrs brought up during code review

* [PM-934] Addressing concenrs brought up during code review

* [PM-934] Applying re-set changes to the autofill overlay implementation on reset of the extension

* [PM-934] Applying jest tests to added logic within AutofillOverlayContent service

* [PM-934] Fixing typo present in tabs background listener

* [PM-934] Finishing up jest tests for updated implementation

* [PM-934] Incorporating methodology for ensuring the autofill overlay updates to reflect user settings within existing tabs

* [PM-934] Refining implementation to ensure we do not unnecessarily re-inject content scripts when the autofill overlay settings change

* [PM-934] Working through jest tests for added implementation details

* [PM-934] Working through jest tests for added implementation details

* [PM-934] Finalizing jest tests for implemented logic

* [PM-5035] Refactoring method structure
2023-12-13 16:25:16 +00:00
Justin Baur
180d3a99e3
Timeout Vault of Inactive Users on System Lock (#7194) 2023-12-13 09:11:42 -05:00
✨ Audrey ✨
df406a9862
[PM-252] fix inconsistent generator configuration behavior (#6755)
* decompose password generator policy enforcement
* integrate new logic with UI
* improve UX of minimum password length
* improve password generator policy options documentation
* initialize min length to default minimum length boundary
* reset form value on input to prevent UI desync from model

---------

Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
2023-12-12 19:17:20 -05:00
rr-bw
bb096724b2
update account switcher styling for all themes (#7182) 2023-12-12 10:59:03 -08:00
SmithThe4th
f0cdcccf81
[PM-4012] Vault Timing out on Chrome and Edge breaks passkeys until page is reloaded (#6845)
* changed content script injection strategy

* added persistent connection and reinjection of the content script

* cleanup resources on disconnect

* cleanup resources on disconnect

* concluded messanger event listeners cleanup and added unit tests

* Switched to use browser api add listener instead of navtive apis

* renamed cleanup to destroy and added reconnect and disconnect command functions

* refactored to use foreach and check for only https urls

* refactored the content script to only load the page script if it currently doesn't extist of the page, and if it does sends a reconnect command to the page-script to replace the native webauthn methods

* updated unit test

* removed memoized logic

* moved the send disconect command to the messenger

* updated unit test

* test messenger handler

* [PM-4012] fix: add `senderId` to messenger

* destroy pending requets

* cleaned up page script and terminated pending request

* fixed cannot read properties of undefined

* rearranged functions, renamed misspelled words, and created test

* mocked EventTarget as there are issues on jest for listeners getting the events

* Return fall back error instead

* Update apps/browser/src/vault/fido2/content/content-script.ts

Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com>

* Update apps/browser/src/vault/fido2/content/messaging/messenger.ts

Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com>

* removed whitespace

---------

Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com>
2023-12-12 13:49:24 -05:00
Cesar Gonzalez
4d05b008f0
[PM-5035] Fix autofill overlay clickjacking vulnerability that can be triggered by a malicious extension (#7001)
* [PM-5035] Fix autofill overlay clickjacking vulnerability that can be triggered by a malicious extension

* [PM-5035] Modifying method structure

* [PM-5035] Refactoring method structure

* [PM-5035] Refactoring method structure

* [PM-5035] Applying prettier to implementation
2023-12-11 15:44:15 -06:00
Matt Gibson
33fd7094ca
Do not early return from logout (#7147)
The subsequent path helps to trigger process reload when the active user
logs out and the new active is locked.
2023-12-11 15:19:56 -05:00
Matt Gibson
b4dbace7a6
Do not drop optional parameters in overrides (#7176) 2023-12-11 13:44:23 -05:00
Andreas Coroiu
29841605fb
[PM-4766] Disable fido2 integration on bw vault page (#6861)
* [PM-4766] feat: disable fido2 integration on bw vault page

* [PM-4766] fix: lint
2023-12-11 17:05:48 +01:00
Oscar Hinton
cf0c6e8896
[PM-4349] Migrate hasPremium and debounceNavigation to be functional (#6591)
Class based router guards are deprecated as of Angular 15.2, per angular.io/guide/deprecations#router-class-and-injection-token-guards. To simplify future angular upgrades we need to resolve these deprecations.

This PR migrates the HasPremium and DebounceNavigationService guards to use the new functional pattern.
2023-12-11 14:22:34 +00:00
Cesar Gonzalez
7db844baf2
[PM-5048] Query params are not persisting in extension popout window (#7019)
* [PM-5048] Query params are not persisting in extension popout window

* [PM-5048] Reverting how we identify whether the user is popping out the current tab;

* [PM-5048] Adding jest test to validate skipping parsing of the extension path

* [PM-5048] Adding jest test to validate skipping parsing of the extension path

* [PM-5048] Reworking implementation to ensure that popout window query params remain persistent

* [PM-5048] Reworking implementation to ensure that appended query params do not remain persistent, but popout window query params do remain persistent. Fixing issues within vault item popouts and adding jest tests to verify those fixes

* [PM-5048] Modifying how query params are set within vault popout windows

* [PM-5048] Running prettier
2023-12-08 22:26:29 +00:00
Rui Tomé
483a197e4d
[AC-1139] Flexible collections: deprecate Manage/Edit/Delete Assigned Collections custom permissions (#6906)
* [AC-1139] Add new layout for MemberDialogComponent when FC feature flag is enabled

* [AC-1139] Deprecated Organization canEditAssignedCollections, canDeleteAssignedCollections, canViewAssignedCollections

* [AC-1139] Checking if FC feature flag is enabled when using canDeleteAssignedCollections or canViewAssignedCollections

* [AC-1139] Added missing parameter to customRedirect

* [AC-1139] Fixed canEdit permission

* [AC-1139] Fixed CanDelete logic

* [AC-1139] Changed canAccessVaultTab function to receive configService

* Override deprecated values on sync

* [AC-1139] Reverted change that introduced ConfigService as a parameter to canAccessVaultTab

* [AC-1139] Fixed circular dependency

* [AC-1139] Moved overriding of deprecated values to syncService

* Revert "[AC-1139] Fixed circular dependency"

This reverts commit 6484420976.

* Revert "Override deprecated values on sync"

This reverts commit f0c25a6996.

* [AC-1139] Added back the deprecation of methods canEditAssignedCollections, canDeleteAssignedCollections, canViewAssignedCollections

* [AC-1139] Reverted change on syncService

* [AC-1139] Override deprecated values on sync

* [AC-1139] Fix canDelete logic in
collection-dialog.component.ts and
bulk-delete-dialog.component.ts

* [AC-1139] Moved override logic from syncService to organizationService

* [AC-1139] Add ability to have titlecase titles on nested-checkbox.component checkboxes; use on member-dialog.component

* Revert "[AC-1139] Add ability to have titlecase titles on nested-checkbox.component checkboxes; use on member-dialog.component"

This reverts commit 9ede0fc5ac.

* [AC-1139] Fix bulk delete functionality

* [AC-1139] Refactor canEdit and canDelete to use ternary operator

* [AC-1139] Fix canDelete condition in VaultComponent

---------

Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
2023-12-08 18:07:52 +00:00