# Timefox

To develop a Firefox (and Chrome) extension, you need to do the following
things [Source](https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext/):

- Install Node and the `web-ext` package
- Find a baseline example: <https://github.com/mdn/webextensions-examples>
- Or alternatively use the boilerplate tool: <https://extensionworkshop.com/documentation/develop/browser-extension-development-tools/#boilerplating-tools>
- The entry point is the `manifest.json` file; see [documentation](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json)

Interesting for Timefox:

- [localstorage and URL connection](https://github.com/mdn/webextensions-examples/tree/master/annotate-page)
- [Persistent storage](https://github.com/mdn/webextensions-examples/tree/master/quicknote)
- [Pop-up](https://github.com/mdn/webextensions-examples/tree/master/beastify)
- [Keyboard shortcuts](https://github.com/mdn/webextensions-examples/tree/master/commands)
- [oAuth](https://github.com/mdn/webextensions-examples/tree/master/stored-credentials)
- [Session State](https://github.com/mdn/webextensions-examples/tree/master/session-state)
- [Runtime Notifications](https://github.com/mdn/webextensions-examples/tree/master/runtime-examples)
- [Page to Extension Messageing](https://github.com/mdn/webextensions-examples/tree/master/page-to-extension-messaging)
- [Overview page](https://github.com/mdn/webextensions-examples/tree/master/navigation-stats)
- [Tests](https://github.com/mdn/webextensions-examples/tree/master/mocha-client-tests)
- [HTTP response](https://github.com/mdn/webextensions-examples/tree/master/http-response)

- [Messaging between extension and app](https://github.com/mdn/webextensions-examples/tree/master/native-messaging)

## Ideas

- put the timer in the right click menu
- put the timestack as "stack" in a sidebar (<https://github.com/mdn/webextensions-examples/tree/master/imagify>)
