Awesome Open Source
Awesome Open Source

PfP: Pain-free Passwords

PfP: Pain-free Passwords is a Firefox, Chrome and Opera password manager. Most passwords will be generated for a specific site and account from your master password whenever needed, these passwords are never stored on disk and can be recreated easily if data is lost. For passwords that cannot be changed for some reason, storing the password with the extension data is also supported. All extension data is safely encrypted.

You can get an idea of how PfP works by using the online version. Please make sure to read the warnings when using this one!

Installing build prerequisites

In order to build PfP you will need to install Node.js first (Node 15 or higher is required). You will also need Gulp, run the following command to install it (administrator privileges required):

npm install --global gulp-cli

Additional dependencies are installed using the following command in the extension directory:

npm install

How to build

You can pass --dev command line flag for all build commands. This will bundle the development Vue version and result in additional debugging output.

Firefox

The following command with produce a file with a name like build-firefox/pfp-n.n.n.xpi:

gulp xpi

Chrome and Opera

The following command with produce a file with a name like build-chrome/pfp-n.n.n.zip:

gulp crx

This ZIP file can be uploaded to Chrome Web Store or Opera Add-ons and will be converted into a signed CRX there.

Web client

The following command with produce a file with a name like build-web/pfp-web-n.n.n.zip:

gulp web

After unpacking the package, you can open index.html in the browser which will give you a slightly feature-reduced version of PfP.

How to test

Firefox

The following command will create a build-firefox directory:

gulp build-firefox

You can load this directory as a temporary extension in Firefox via about:debugging page. An already loaded extension will reload automatically on rebuild. If you want the directory to be updated automatically whenever you change any source files, you can use gulp watch-firefox instead.

Chrome and Opera

The following command will create a build-chrome directory:

gulp build-chrome

You can load this directory as an unpacked extension in Chrome and Opera. An already loaded extension will reload automatically on rebuild. If you want the directory to be updated automatically whenever you change any source files, you can use gulp watch-chrome instead.

Web client

The following command will create a build-web directory:

gulp build-web

You can then open build-web/index.html in your browser to test then.

Running unit tests

This repository contains an extensive test suite for the core functionality. You can run the unit tests using the following command:

gulp test

You can also run an individual unit test file, for example:

gulp test --test=masterPassword

Cleaning up the repository

You can run the following command to remove all temporary files that have been generated during build:

gulp clean

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (70,283
security (1,907
chrome (466
firefox (316
browser-extension (125
password-manager (100
password-generator (39
opera (25
scrypt (15