1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-12-25 16:59:17 +01:00
The browser extension vault (Chrome, Firefox, Opera, Edge, Safari, & more).
Go to file
Daniel James Smith bd770c90ed
[Account Switching] Base changes for account switching (#2250)
* Pull in jslib

* Create new state models

* Create browser specific stateService

* Remove registration deprecated services, register stateService

* Replace usage of deprecated services (user, constants)

* Add missing properties to BrowserGroupingsComponentState

* Remove StorageService from initFactory

* Clear the correct state

* Add null check when restoring send-grouping state

* add remember email

* Initialize stateservice in services.module

* Fix 'lock now' not working

* Comment to remove setting defaults on install

* Pull jslib

* Remove setting defaults on install

* Bump jslib

* Pass the current userId to services when logging out

* Bump jslib

* Override vaultTimeout default on account addition

* Pull latest jslib

* Retrieve vaultTimeout from stateService

* Record activity per Account

* Add userId to logout and add fallback if not present

* Register AccountFactory

* Pass userId in messages

* Base changes for account switching di fixes (#2280)

* [bug] Null checks on Account init

* [bug] Use same stateService instance for all operations

We override the stateService in browser, but currently don't pull the background service into popup and allow jslib to create its own instance of the base StateService for jslib services.
This causes a split in in memory state between the three isntances that results in many errors, namely locking not working.

* [chore] Update jslib

* Pull in jslib

* Pull in jslib

* Pull in latest jslib to multiple stateservice inits

* Check vault states before executing processReload

* Adjust iterator

* Update native messaging to include the userId (#2290)

* Re-Add UserVerificationService

* Fix email not being remembered by base component

* Improve readability of reloadProcess

* Removed unneeded null check

* Fix constructor dependency (stateService)

* Added missing await

* Simplify dependency registration

* Fixed typos

* Reverted back to simple loop

* Use vaultTimeoutService to retrieve Timeout

Co-authored-by: Addison Beck <abeck@bitwarden.com>
Co-authored-by: Oscar Hinton <oscar@oscarhinton.com>
2022-01-27 22:22:51 +01:00
.github Update Version Bump action to latest (#2271) 2022-01-18 10:31:10 -05:00
.husky Add Prettier configuration (#2237) 2021-12-21 15:15:19 +01:00
jslib@4722a287ec [Account Switching] Base changes for account switching (#2250) 2022-01-27 22:22:51 +01:00
src [Account Switching] Base changes for account switching (#2250) 2022-01-27 22:22:51 +01:00
store Autosync the updated translations (#2261) 2022-01-07 13:50:50 +01:00
.editorconfig Add Prettier configuration (#2237) 2021-12-21 15:15:19 +01:00
.git-blame-ignore-revs Add .git-blame-ignore-revs (#2240) 2021-12-21 16:44:00 +01:00
.gitattributes Apply Prettier (#2238) 2021-12-21 15:43:35 +01:00
.gitignore ignore dist-safari 2020-09-28 10:40:51 -04:00
.gitmodules convert to jslib submodule 2018-02-19 17:01:00 -05:00
.prettierignore Apply prettier for previously ignored file 2022-01-04 16:41:07 +01:00
.prettierrc.json Add Prettier configuration (#2237) 2021-12-21 15:15:19 +01:00
CONTRIBUTING.md Apply Prettier (#2238) 2021-12-21 15:43:35 +01:00
crowdin.yml Updating the Crowdin update process 2021-11-04 13:02:06 -07:00
gulpfile.js Apply Prettier (#2238) 2021-12-21 15:43:35 +01:00
karma.conf.js Apply Prettier (#2238) 2021-12-21 15:43:35 +01:00
LICENSE.txt license 2016-10-10 18:36:38 -04:00
package-lock.json Rename package to @bitwarden/browser (#2274) 2022-01-17 17:26:35 +01:00
package.json Rename package to @bitwarden/browser (#2274) 2022-01-17 17:26:35 +01:00
README.md Add .git-blame-ignore-revs (#2240) 2021-12-21 16:44:00 +01:00
SECURITY.md Apply Prettier (#2238) 2021-12-21 15:43:35 +01:00
tsconfig.json Apply Prettier (#2238) 2021-12-21 15:43:35 +01:00
tslint.json Apply Prettier (#2238) 2021-12-21 15:43:35 +01:00
webpack.config.js Fix webpack using double dots (#2293) 2022-01-27 19:18:57 +01:00

Github Workflow build on master Crowdin Join the chat at https://gitter.im/bitwarden/Lobby

Bitwarden Browser Extension

The Bitwarden browser extension is written using the Web Extension API and Angular.

Build/Run

Requirements

  • Node.js v16.13.1 or greater
  • NPM v8
  • Gulp (npm install --global gulp-cli)
  • Chrome (preferred), Opera, or Firefox browser

Run the app

npm install
npm run build:watch

You can now load the extension into your browser through the browser's extension tools page:

  • Chrome/Opera:
    1. Type chrome://extensions in your address bar to bring up the extensions page.
    2. Enable developer mode (toggle switch)
    3. Click the "Load unpacked extension" button, navigate to the build folder of your local extension instance, and click "Ok".
  • Firefox
    1. Type about:debugging in your address bar to bring up the add-ons page.
    2. Click the Load Temporary Add-on button, navigate to the build/manifest.json file, and "Open".

Desktop communication

Native Messaging (communication between the desktop application and browser extension) works by having the browser start a lightweight proxy baked into our desktop application.

Out of the box, the desktop application can only communicate with the production browser extension. When you enable browser integration in the desktop application, the application generates manifests which contain the production IDs of the browser extensions. To enable communication between the desktop application and development versions of browser extensions, add the development IDs to the allowed_extensions section of the corresponding manifests.

Manifests are located in the browser subdirectory of the Bitwarden configuration directory. For instance, on Windows the manifests are located at C:\Users\<user>\AppData\Roaming\Bitwarden\browsers and on macOS these are in Application Support for various browsers (for example). Note that disabling the desktop integration will delete the manifests, and the files will need to be updated again.

Contribute

Code contributions are welcome! Please commit any pull requests against the master branch. Learn more about how to contribute by reading the CONTRIBUTING.md file.

Security audits and feedback are welcome. Please open an issue or email us privately if the report is sensitive in nature. You can read our security policy in the SECURITY.md file.

Prettier

We recently migrated to using Prettier as code formatter. All previous branches will need to updated to avoid large merge conflicts using the following steps:

  1. Check out your local Branch
  2. Run git merge cebee8aa81b87cc26157e5bd0f879db254db9319
  3. Resolve any merge conflicts, commit.
  4. Run npm run prettier
  5. Commit
  6. Run git merge -Xours 8fe821b9a3f9728bcb02d607ca75add468d380c1
  7. Push

Git blame

We also recommend that you configure git to ignore the prettier revision using:

git config blame.ignoreRevsFile .git-blame-ignore-revs