Manage your passwords easily and securely, via browser extension for Firefox, Chrome, Opera or Edge
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Better grouping of CSS selectors Mar 13, 2018
edge Fixes #77 - Require at least Edge 41 Feb 9, 2018
lib Further improved handling of Google Drive error responses Mar 8, 2018
locale Update message, importing backups no longer requires master passwords… Mar 13, 2018
test-lib Issue #24 - Fixed sync retries if another client updates data during … Feb 27, 2018
test Fixes #69 - Allow importing backups created with a different master p… Mar 7, 2018
web
.eslintrc.json Better approach to eslint configuration Mar 3, 2018
.gitignore
.htmlhintrc
.stylelintrc
.travis.yml Added "all" as a new build target and make it the default Feb 9, 2018
LICENSE.txt Added LICENSE file and license headers Dec 26, 2015
README.md
gulp-utils.js Use @stablelib/scrypt as a proper dependency, don't duplicate its code Mar 11, 2018
gulpfile.js Issue #93 - Updated to Gulp 4.0 Aug 22, 2018
localeLoader.js
manifest.json Releasing PfP: Pain-free Passwords 2.1.1 Mar 11, 2018
package.json Issue #93 - Updated to gulp-htmlhint 2.1.1 Aug 22, 2018
workerLoader.js

README.md

PfP: Pain-free Passwords

PfP: Pain-free Passwords is a Firefox, Chrome, Opera and Edge 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 7 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

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.crx:

gulp crx --private-key=key.pem

You can also omit the --private-key parameter, an unsigned ZIP file will be created then which can be uploaded to Chrome Web Store or Opera Add-ons.

Microsoft Edge

The following command will produce a file with a name like build-edge/pfp-n.n.n.appx:

gulp appx

Note that Internet connection is currely required for Edge builds, as an external service is used for packaging.

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, Opera and Edge

The following command will create a build-chrome directory:

gulp build-chrome

You can load this directory as an unpacked extension in Chrome, Opera or Edge. 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