Connect securely to https websites by checking certificates with network notaries.
Perspectives is a browser extension that helps to verify whether your connection to any web site really is secure. It does this by checking the connection certificate with multiple observers hosted around the world. For more information see: http://www.perspectives-project.org.
You can install Perspectives for Firefox or SeaMonkey at addons.mozilla.org. Future support for other browsers is also planned.
You can contact the developers or post questions for discussion on the Perspectives Dev newsgroup:
You can file bugs and send pull requests through GitHub:
We warmly welcome anyone willing to help translate Perspectives. Please see the translation doc for instructions.
This README explains how to work with Perspectives code.
- a POSIX command line environment
- make
- zip
Optional (but strongly recommended!):
- python and the python 'lxml' library (to run the build tests)
To build, just type make (assuming of course you have make installed!). This will create a file called 'Perspectives.xpi'.
###Installing local builds You can install Perspectives in Firefox in many ways:
- Using Menu -> Add-ons -> Extensions -> (Tools icon) -> Install Add-On From File and opening the
Perspectives.xpifile. - Drag
Perspectives.xpiinto your browser - Use
make install-fxfrom the command line to build and install in a single step. This assumes Firefox exists in your path.
###Debugging To debug the extension:
- Download the latest Firefox.
- The latest versions usually come with better integration of debugging tools.
- Start your new browser with
firefox -P dev -no-remote -purgecaches &- You should see the profile manager on the first start which creates a new profile called "dev".
- For further information see MDN - Setting up extension development environment.
- In
~/.mozilla/firefox/r4nd0m5tr.dev/extensionscreate a file calledperspectives@cmu.eduand enter the textPath_to_your_Perspectives_clone/plugin/(where you cloned the git repo to).- This enables you to see changes without having to rebuild with
makeeverytime. - Unfortunately you still have to restart the browser because Perspectives is not yet a "restartless extensions" (see issue #76).
- This enables you to see changes without having to rebuild with
- Enter
about:configin the location bar and set the following variables:devtools.debugger.remote-enabled = truedevtools.chrome.enabled = true- This enables you to use the "Browser Toolbox" (debugger).
- For further information again see MDN - Setting up extension development environment.
- Restart the browser and open Menu -> Developer -> Browser Toolbox -> Ok -> Debugger
- Search for the file you want to debug (e.g.
notaries.js). - Search for the code line you want to debug and set a breakpoint.
- Search for the file you want to debug (e.g.
- Edit the
d_print_flagsinplugin/chrome/content/common.jsif you like to see some useful logs. - Optional tips if you want speed-up development a bit:
- If you just need console logs use Menu -> Developer -> Browser Console (
Ctrl + Shift + J) instead of the "Browser Toolbox". The plain console loads a little faster (Note: "Browser Console" is not the standard "Javascript Console"). - Use the
debuggerkeyword in Javascript to make the debugger automatically jump to the file and codeline. You need to have "Browser Toolbox" already open though! - You can also move the Developer menu into the toolbar to skip one menu step.
- If you just need console logs use Menu -> Developer -> Browser Console (
To test Perspectives:
- Use
make testto build Perspectives.xpi, ormake test install-fxto build and install all in one step (this assumes Firefox exists in your path). - Install the plugin and restart the browser.
- Open the following URL: chrome://perspectives/content/test/test.html
- Press the 'Run Tests' button. Test results will be displayed on the page.
- Optional: If you want to run the testcases without chrome privileges (i.e. without reinstalling) follow the instruction in issue #130 - Extract test cases which require no chrome privileges.
- The file
test/Manual Test Cases.txthas lists of other tests to run through when doing a full test pass.
Some tests are performed at build time - e.g. checking localization files for the correct format and contents. All tests of the javascript code are run inside the extension - for security reasons they must be installed along with other extension files.
If you have ideas for further tests please let us know!