Skip to content

An experiment in creating better shareable versions of content

License

Notifications You must be signed in to change notification settings

0c0w3/screenshots

 
 

Repository files navigation

CircleCI Build Status

This is a screenshot tool for Firefox. It will be shipped in Firefox 55 and later versions, as part of the default Firefox distribution.

The project was initially launched through Test Pilot as Page Shot.

It is made up of both an add-on (using WebExtensions) and a website using Node.js. The add-on is in addon/webextension/, and the website is in server/

Ian has been blogging about the design, definition, and development process.

(This project used to include general page freezing; this functionality has been forked off into pagearchive.)

You can find more information about Firefox Screenshots at the Mozilla Wiki page: https://wiki.mozilla.org/Firefox/Screenshots

Installation and Setup

Install Postgres.

Install Node.js. Version 8.x is required.

Clone the repository.

There are two scripts to run the server locally and develop the add-on:

  • ./bin/run-server will run the server on http://localhost:10080 and automatically restart if there are changes.
    • If nodemon crashes you can try to start the server with ./bin/run-server --restart
    • Take a look at and/or source .env.dev for some of the options available through environment variables.
  • ./bin/run-addon will build a few parts of the addon (into addon/webextension/build/) and start Firefox with the add-on installed. The add-on will be refreshed automatically as you change files. We recommend you open about:debugging to help debug the extension.
  • ./bin/run-addon --setup-profile will setup a Firefox profile for your development; this way you can make persistent changes to the profile that you will use just for Screenshots development. (note: this will only look for the firefox commmand or Nightly, Developer Edition, Aurora editions on OSX)

If you want to develop the add-on but not the server you can run ./bin/run-addon -s https://screenshots.dev.mozaws.net

By default, Screenshots will connect to a Postgres database on localhost:5432. To change which database and user it connects to set/export the environmental variables: RDS_USERNAME, RDS_PASSWORD, and RDS_HOSTNAME

The server will automatically setup the tables in your database, and keep them up to date over time (using pg-patcher).

If you have growl and growlnotify installed on Mac OS X, you will get growl notifications when the server build has started and completed.

We apologize but we have no story for development on Windows (though the add-on runs on Windows). We welcome feedback.

Getting to know the code

There is documentation in addon/, addon/webextension/, addon/webextension/background/, and addon/webextension/selector/ that talks about the code layout and architecture of the add-on.

server/view-docs.md talks about how the server React pages are setup, along with the server-side rendering of pages.

There is also documentation in docs/.

Participation

There is an IRC channel #screenshots on irc.mozilla.org (you can use this link for chat access via the web if you do not otherwise use IRC). There are IRC logs available.

Planning and ideation is happening in the issue tracker. We have several milestones:

Issue tags otherwise aren't very structured. Research is primarily analysis of other products that do something interesting, or some source material that could provide insight. Input on these (things like "I like this product because...") is very helpful!

We do some research on other projects, collecting the results in this Google Drive folder.

Localization

Firefox Screenshots localization is managed via Pontoon, not direct pull requests to the repository. If you want to fix a typo, add a new language, or simply know more about localization, please get in touch with the existing localization team for your language, or Mozilla’s l10n-drivers for guidance.

About

An experiment in creating better shareable versions of content

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • FreeMarker 52.5%
  • JavaScript 28.0%
  • Python 13.3%
  • CSS 4.0%
  • Shell 1.2%
  • Makefile 0.7%
  • Other 0.3%