* Refactor `POPUP_VIEW_MEMORY` to use `disk` rather than memory for the browser extension.
- When FireFox opens the popup in an standalone window memory is lost, thus causing the `popup-route-history` to be lost and back navigation ceases to work
* spelling
* revert state definition change
* add `onUpdated` event for firefox
* rework observable handling
* remove unneeded `from`
* Remove Firefox Exemption
* Do Not Open Sidebar On Install
* Run `chrome.runtime.reload` on All Browsers
* Update Docs & Test Name
* Should Probably Call The Sut In Test
* Update Doc Comment
* Update apps/browser/src/platform/browser/browser-api.ts
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
---------
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
* Create unavailable message for biometrics when in clamshell mode
* Move browser biometrics
* Inject nativemessagingbackground instead of using constructor
* Fix linting
* Fix build on browser
* [PM-10667] Implement manifest v3 on Firefox and Safari
* [PM-10667] Fixing issues with CORS present in sandboxed iframe on Firefox
* [PM-10667] Updating gulp build process to ensure dist files are created correctly
* [PM-10667] Adding build processes to the Github workflow
* [PM-10667] Removing faulty Safari mv3 build workflow
* [PM-10667] Fixing jest tests
* [PM-10667] Reworking logic within inline menu
* Update apps/browser/webpack.config.js
Co-authored-by: Jonathan Prusik <jprusik@users.noreply.github.com>
---------
Co-authored-by: Jonathan Prusik <jprusik@users.noreply.github.com>
* created guard to clear search text when navigating between tabs
* removed reset filter from from vault list filter component on destroy and move to guard
renamed guard to clear vault state
* Fixed bug on chip select when comparing complex objects
moved compare values function to utils
* Added comment for future reference
* moved compare values to a seperate file
* fixed lint issue
* Update unix biometrics for desktop biometrics rework
* Implement polkit policy setup
* Enable browser integration on Linux
* Remove polkit policy file
* Undo change to messages.json
* Fix biometrics setup, implement missing functions
* Implement osSupportsBiometrics
* Fix polkit settings message
* Remove unwraps in biometrics unix rust module
* Force password reprompt on start on linux with biometrics
* Merge branch 'main' into feature/unix-biometrics
* Allow browser extension to be unlocked on Linux via Polkit
* Implement availability check
* Cleanup
* Add auto-setup, manual setup, setup detection and change localized prompts
* Implement missing methods
* Add i18n to polkit message
* Implement missing method
* Small cleanup
* Update polkit consent message
* Fix unlock and print errors on failed biometrics
* Add dependencies to core crate
* Fix reference and update polkit policy
* Remove async-trait
* Add tsdoc
* Add comment about auto setup
* Delete unused init
* Update help link
* Remove additional settings for polkit
* Add availability-check to passwords implementation on linux
* Add availability test
* Add availability check to libsecret
* Expose availability check in napi crate
* Update d.ts
* Update osSupportsBiometric check to detect libsecret presence
* Improve secret service detection
* Add client half to Linux biometrics
* Fix windows build
* Remove unencrypted key handling for biometric key
* Move rng to rust, align linux bio implementation with windows
* Consolidate elevated commands into one
* Disable snap support in linux biometrics
---------
Co-authored-by: DigitallyRefined <129616584+DigitallyRefined@users.noreply.github.com>
* [BEEEP] Autofill Identity and Card Ciphers From Keyboard Shortcut
* [PM-10079] Add keyboard shortcut to autofill identity and credit card ciphers
* [PM-10079] Fixing jest tests
* [PM-10079] Added an enum for the autofill commands, and adjusted how we filter out cipher types before sorting them by last used when calling for ID and card ciphers
* [PM-10079] Updating copywriting for the autofill settings revolving around keyboard shortcuts
* [PM-10079] Setting a method within CipherService as private
* add "above-scroll-area" to popup page so that content can be excluded from the scroll area
* move filters and search above the scrollable area
* move bottom border to popup-page component
* fix duplicate scrollbar on popup page
* update padding to match popup header
* move all content of the popup page within the `main` element
* update documentation for `above-scroll-area` slot
* hide scrollable content when loading
* Define matchers to test promise fulfillment
These are useful for validating that promises depend on other events prior to fulfilling.
* Expose custom matchers to jest projects
Team-specific projects are not touched here to try and reduce review burden.
* Block browser local operations awaiting reseed
This should closes a narrow race condition resulting from storage operations during a reseed event.
* Import from barrel file
This might fix the failing test, but I'm not sure _why_
* Document helper methods
* Validate as few properties as possible per test
* Simplify expected value representation
* Allow waiting in promise matchers
* Specify resolution times in promise orchestration tests.
* Test behavior triggering multiple reseeds.
* Fix typo
* Avoid testing implementation details
* Clear reseed on startup
in case a previous process was aborted in the middle of a reseed.
* Correct formatting
* [PM-6426] Create TaskSchedulerService and update usage of long lived timeouts
* [PM-6426] Implementing nextSync timeout using TaskScheduler
* [PM-6426] Implementing systemClearClipboard using TaskScheduler
* [PM-6426] Fixing race condition with setting/unsetting active alarms
* [PM-6426] Implementing clear clipboard call on generatePasswordToClipboard with the TaskSchedulerService
* [PM-6426] Implementing abortTimeout for Fido2ClientService using TaskSchedulerService
* [PM-6426] Implementing reconnect timer timeout for NotificationService using the TaskSchedulerService
* [PM-6426] Implementing reconnect timer timeout for NotificationService using the TaskSchedulerService
* [PM-6426] Implementing sessionTimeout for LoginStrategyService using TaskSchedulerService
* [PM-6426] Implementing eventUploadInterval using TaskScheduler
* [PM-6426] Adding jest tests for the base TaskSchedulerService class
* [PM-6426] Updating jest tests for GeneratePasswordToClipboardCommand
* [PM-6426] Setting up the full sync process as an interval rather than a timeout
* [PM-6426] Renaming the scheduleNextSync alarm name
* [PM-6426] Fixing dependency references in services.module.ts
* [PM-6426] Adding jest tests for added BrowserApi methods
* [PM-6426] Refactoring small detail for how we identify the clear clipboard timeout in SystemService
* [PM-6426] Ensuring that we await clearing an established scheduled task for the notification service
* [PM-6426] Changing the name of the state definition for the TaskScheduler
* [PM-6426] Implementing jest tests for the BrowserTaskSchedulerService
* [PM-6426] Implementing jest tests for the BrowserTaskSchedulerService
* [PM-6426] Adding jest tests for the base TaskSchedulerService class
* [PM-6426] Finalizing jest tests for BrowserTaskScheduler class
* [PM-6426] Finalizing documentation on BrowserTaskSchedulerService
* [PM-6426] Fixing jest test for LoginStrategyService
* [PM-6426] Implementing compatibility for the browser.alarms api
* [PM-6426] Fixing how we check for the browser alarms api
* [PM-6426] Adding jest tests to the BrowserApi implementation
* [PM-6426] Aligning the implementation with our code guidelines for Angular components
* [PM-6426] Fixing jest tests and lint errors
* [PM-6426] Moving alarms api calls out of BrowserApi and structuring them within the BrowserTaskSchedulerService
* [PM-6426] Reworking implementation to register handlers separately from the call to those handlers
* [PM-6426] Adjusting how we register the fullSync scheduled task
* [PM-6426] Implementing approach for incorporating the user UUID when setting task handlers
* [PM-6426] Attempting to re-work implementation to facilitate userId-spcific alarms
* [PM-6426] Refactoring smaller details of the implementation
* [PM-6426] Working through the details of the implementation and setting up final refinments
* [PM-6426] Fixing some issues surrounding duplicate alarms triggering
* [PM-6426] Adjusting name for generate password to clipboard command task name
* [PM-6426] Fixing generate password to clipboard command jest tests
* [PM-6426] Working through jest tests and implementing a method to guard against setting a task without having a registered callback
* [PM-6426] Working through jest tests and implementing a method to guard against setting a task without having a registered callback
* [PM-6426] Implementing methodology for having a fallback to setTimeout if the browser context is lost in some manner
* [PM-6426] Working through jest tests
* [PM-6426] Working through jest tests
* [PM-6426] Working through jest tests
* [PM-6426] Working through jest tests
* [PM-6426] Finalizing stepped setInterval implementation
* [PM-6426] Implementing Jest tests for DefaultTaskSchedulerService
* [PM-6426] Adjusting jest tests
* [PM-6426] Adjusting jest tests
* [PM-6426] Adjusting jest tests
* [PM-6426] Fixing issues identified in code review
* [PM-6426] Fixing issues identified in code review
* [PM-6426] Removing user-based alarms and fixing an issue found with setting steppedd alarm interavals
* [PM-6426] Removing user-based alarms and fixing an issue found with setting steppedd alarm interavals
* [PM-6426] Fixing issue with typing information on a test
* [PM-6426] Using the getUpperBoundDelayInMinutes method to handle setting stepped alarms and setTimeout fallbacks
* [PM-6426] Removing the potential for the TaskScheduler to be optional
* [PM-6426] Reworking implementation to leverage subscription based deregistration of alarms
* [PM-6426] Fixing jest tests
* [PM-6426] Implementing foreground and background task scheduler services to avoid duplication of task scheudlers and to have the background setup as a fallback to the poopup tasks
* [PM-6426] Implementing foreground and background task scheduler services to avoid duplication of task scheudlers and to have the background setup as a fallback to the poopup tasks
* [PM-6426] Merging main into branch
* [PM-6426] Fixing issues with the CLI Service Container implementation
* [PM-6426] Reworking swallowed promises to contain a catch statement allow us to debug potential issues with registrations of alarms
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adjusting implementation based on code review feedback
* [PM-6426] Reworking file structure
* [PM-6426] Reworking file structure
* [PM-6426] Adding comments to provide clarity on how the login strategy cache experiation state is used
* [PM-6426] Catching and logging erorrs that appear from methods that return a promise within VaultTimeoutService
* [PM-8518] Autofill scripts do not inject into sub-frames on install
* [PM-8518] Implementing jest tests for added BrowserApi methods
* [PM-8518] Adding generic typing to tabSendMessage call
* Change `object` to `Record<string, unknown>`
* Change `object` to `Record<string, unknown>` Pt. 2
* Update ForegroundSyncService
- Manage finish message in the listener to more gaurantee a message back
- Make the timeout much longer
- Allow it to throw if the background sync service threw
---------
Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com>
* [PM-8333] Ensure title suffix is aligned with title
* [PM-8333] Add refresh button for autofill list items section for FF sidebar
* [PM-8333] Add button type
* add V2 variant to pop-out component
* Add V2 version of the vault header
* refactor IconButtonModule import
* refactor IconButtonModule import
* use feature flag to drive pop out redesign
* use an anchor rather than a button
* remove VaultFilterService and add todo comment
* remove no-decoration class will be fixed by component library
* bring back constructor
* Create ForegroundSyncService For Delegating `fullSync` calls to the background
* Relax `isExternalMessage` to Allow For Typed Payload
* Null Coalesce The `startListening` Method
* Filter To Only External Messages
* Update activity when switching users
* Clear data of designated user
* Do not switchMap to null, always to Promise or Observable
* handle uninitialized popup services
* Switch to new account immediately and log out as inactive.
Split up done logging out and navigation so we can always display expire warning.
* Do not navigate in account switcher, main.background takes care of it
* Ignore storage updates from reseed events
* Remove loading on cancelled logout
* Catch missed account switch errors
* Avoid usage of active user state in sync service
Send service does not currently support specified user data
manipulation, so we ensure that the notification was sent to the
active user prior to processing the notification.
* Clear sequentialize caches on account switch
These caches are used to ensure that rapid calls to an async method are not repeated. However, the cached promises are valid only within a given userId context and must be cleared when that context changes.
* Revert `void` promise for notification reconnect
* Update libs/angular/src/services/jslib-services.module.ts
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* Handle switch account routing through messaging background -> app
* Use account switch status to handle unlocked navigation case.
* Revert "Handle switch account routing through messaging background -> app"
This reverts commit 8f35078ecb.
---------
Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com>
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>