Progressive Web Apps for Firefox - Extension
============================================

The extension part of the PWAsForFirefox project.

## Description

The extension part of the project makes it easier to install and manage Progressive Web Apps directly from the main Firefox browser. It supports installing supported PWAs with just a few clicks, managing and launching them, and creating and managing app profiles directly from the UI.

Read [the main README file](../README.md) for more details about the project.

## Installation

### From Addon Store

It is recommended to install the extension from [the Firefox Add-ons website](https://addons.mozilla.org/firefox/addon/pwas-for-firefox/).

### From Development Artifacts

You can download and install [the latest build artifact](https://github.com/filips123/PWAsForFirefox/actions/workflows/extension.yaml) from GitHub Actions builds.

Note that these are development versions that may be unstable and are not signed, so you will need to configure Firefox to accept non-signed extensions or just load it temporarily. It is generally not recommended to use them, unless you are testing a specific unreleased feature.

### From Source

1. Install Node.js and Yarn package manager.

2. Clone the repository and cd into the `extension` (this) directory.

3. Run `yarn install` to install the dependencies.

4. If building a specific version:
    1. Checkout the correct Git tag.
    2. Run `yarn set-version` to add the version information to the configuration files.

5. Either:

   a. Run `yarn build` to build the extension in release mode and package it.

   b. Run `yarn watch` to build the extension in development mode and automatically rebuild it on any changes.

6. Either:

   a. Install the packaged extension from `dist/firefoxpwa-{version}-compiled.zip` in `about:debugging`.

   b. Install the development extension from `dist/manifest.json` in `about:debugging`.

## Usage

You can read [our documentation website](https://pwasforfirefox.filips.si/user-guide/extension/) for usage instructions.

## Contributing

Please make sure that your JS code is properly linted and formatted using `yarn lint` (to check the code) and `yarn fix` (to automatically apply some fixes).