{"id":18118030,"url":"https://github.com/mozilla/fx-private-relay-add-on","last_synced_at":"2025-04-06T17:13:06.248Z","repository":{"id":37542070,"uuid":"363222113","full_name":"mozilla/fx-private-relay-add-on","owner":"mozilla","description":"Companion add-on for Firefox Relay. Keep your email safe from hackers and trackers. Make an email alias with one click, and keep your address to yourself. ","archived":false,"fork":false,"pushed_at":"2024-10-05T00:19:54.000Z","size":8144,"stargazers_count":68,"open_issues_count":202,"forks_count":15,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-10-29T13:15:57.566Z","etag":null,"topics":["add-on","email","extension","firefox","mozilla","private-relay","webextensions"],"latest_commit_sha":null,"homepage":"https://addons.mozilla.org/en-US/firefox/addon/private-relay","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-30T18:09:04.000Z","updated_at":"2024-10-21T14:47:44.000Z","dependencies_parsed_at":"2024-01-07T01:54:59.582Z","dependency_job_id":"8b0e6eb1-dc1c-4a83-8b95-933c4360308d","html_url":"https://github.com/mozilla/fx-private-relay-add-on","commit_stats":{"total_commits":1521,"total_committers":28,"mean_commits":54.32142857142857,"dds":0.7666009204470743,"last_synced_commit":"8f9251c717f8bac77c6ef6bf0efa39a08559f2bf"},"previous_names":[],"tags_count":1109,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Ffx-private-relay-add-on","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Ffx-private-relay-add-on/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Ffx-private-relay-add-on/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Ffx-private-relay-add-on/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/fx-private-relay-add-on/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246940320,"owners_count":20858108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["add-on","email","extension","firefox","mozilla","private-relay","webextensions"],"created_at":"2024-11-01T05:08:01.132Z","updated_at":"2025-04-06T17:13:06.227Z","avatar_url":"https://github.com/mozilla.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/mozilla/fx-private-relay/11ad17e197e23a0453bfb74fa3670c87cfc35e36/frontend/src/components/landing/images/logo-firefox-relay.svg\" width=\"250\" /\u003e\n\u003c/p\u003e\n\n\n# Private Relay \n\u003c!-- Badges include: license and size of repository --\u003e\n[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://raw.githubusercontent.com/mozilla/fx-private-relay-add-on/main/LICENSE)\n![Repo Size](https://img.shields.io/github/repo-size/Mozilla/fx-private-relay-add-on)\n\nPrivate Relay generates email aliases to use in place of personal email addresses.\n\nRecipients will still receive emails, but Private Relay keeps their personal\nemail address from being [harvested](https://blog.hubspot.com/marketing/what-is-a-landing-page-ht), \nand then [bought, sold, traded, or combined](https://www.bookyourdata.com/) \nwith  other data to personally identify, track, and/or [target\nthem](https://www.facebook.com/business/help/606443329504150?helpref=faq_content).\n\n- [Private Relay](#private-relay)\n  - [Usage (for now)](#usage-for-now)\n  - [Local Extension Development](#local-extension-development)\n    - [Working with translations](#working-with-translations)\n      - [Getting the latest translations](#getting-the-latest-translations)\n      - [Running with the latest translations](#running-with-the-latest-translations)\n        - [Create a Firefox profile set to use the target language](#create-a-firefox-profile-set-to-use-the-target-language)\n        - [Run `web-ext` with that profile](#run-web-ext-with-that-profile)\n      - [Add/update messages for translation](#addupdate-messages-for-translation)\n  - [Build for other environments](#build-for-other-environments)\n    - [Distributing](#distributing)\n      - [Add-on Submission Process](#add-on-submission-process)\n      - [Continuous Pre-releases](#continuous-pre-releases)\n      - [Make the new version](#make-the-new-version)\n      - [Publish to AMO](#publish-to-amo)\n      - [Publish to Chrome](#publish-to-chrome)\n      - [Publish to GitHub](#publish-to-github)\n  \n## Usage (for now)\n\n1. Install the extension.\n\n2. Go to [relay.firefox.com](https://relay.firefox.com) and sign in.\n\n3. In any `\u003cinput\u003e` element, right-click and select \"Make a relay address\"\n   * The extension will populate the options with your relay addresses.\n\n\n## Local Extension Development\n\n1. Clone, change to the directory, install dependencies:\n\n    ```\n    git clone --recurse-submodules git@github.com:mozilla/fx-private-relay-add-on.git\n    npm install\n    ```\n\n2. Run with `npm`:\n\n    ```\n    npm run web-ext-run\n    ```\n\n   By default, this will open and run the extension in Firefox. If you'd like to run this in Chrome, run the following:\n   \n   \u003e [!WARNING]\n   \u003e This will run a script that will introduce breaking changes to `manifest.json`. Please do not commit any script-changed edits to your PR.\n\n      ```\n      npm run web-ext-run:chrome\n      ```\n\n   If you want to run the extension on Android, you'll need to install the [Android SDK platform tools](https://developer.android.com/studio/releases/platform-tools.html):\n\n      ```\n      npm run web-ext-run:android --device=DEVICE_ID\n      ```\n\n   Please refer to [extensionworkshop.com](https://extensionworkshop.com/documentation/develop/developing-extensions-for-firefox-for-android/) to learn more about how to run an extension on Android.\n\n3. Visit http://127.0.0.1:8000\n\n\n### Working with translations\n#### Getting the latest translations\nWe use a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules)\nfor translated message files. The `--recurse-submodules` step of installation\nshould bring the message files into your working directory already, but you may\nwant also want to udpate the translations after install. The easiest way to do\nthat is:\n\n* `git submodule update --init --remote`\n\n#### Running with the latest translations\n\nTo run the latest translated version of the add-on, you will need to \n\n1. Create a Firefox profile set to use the target language\n2. Either:\n   * Run `npm run web-ext-run` with that profile\n   * Install the latest\n     [pre-release](https://github.com/mozilla/fx-private-relay-add-on/releases)\n     in that profile\n\n##### Create a Firefox profile set to use the target language\n1. Make a new Firefox profile - e.g., \"swedish\"\n2. In the profile, install the [language\n   pack](https://addons.mozilla.org/en-US/firefox/language-tools/) for one of \n   the add-on's [supported\n   languages](https://pontoon.mozilla.org/projects/firefox-relay-add-on/)\n   * Note: language packs only work on Release \u0026 Beta channels of Firefox - not\n     Nightly\n3. In `about:preferences`, go to the \"Language\" section, and click the \"Set\n   Alternatives\" button next to \"Choose the languages used to display menus,\n   messages, and notifications from Firefox.\"\n4. Pick the language pack you installed.\n5. Quit Firefox so the profile is saved.\n\n##### Run `web-ext` with that profile\nUse `npm run web-ext-run` to run the add-on, and pass the profile argument. \nE.g., `npm run web-ext-run -- -p \"swedish\"`\n\n#### Add/update messages for translation\nThe `privaterelay/locales` directory is a git repository like any other, so to\nmake changes to the messages:\n\n1. Make whatever changes you need in `src/_locales/en` as you work.\n\n2. `cd src/_locales/en`\n\n3. `git branch message-updates-yyyymmdd`\n\n4. `git push -u origin message-updates-yyyymmdd`\n\nYou can then open a pull request from the `message-updates-yyyymmdd` branch to\n[the l10n repo](https://github.com/mozilla-l10n/fx-private-relay-add-on-l10n/) `main` branch.\n\n## Build for other environments\n\nThese scripts will build the add-on to work with dev, stage, or prod servers.\n\n * `npm run build:dev`: https://dev.fxprivaterelay.nonprod.cloudops.mozgcp.net/\n * `npm run build:stage`: https://stage.fxprivaterelay.nonprod.cloudops.mozgcp.net/\n * `npm run build:prod`: https://relay.firefox.com/\n\nIf you want to run the Chrome build of the add-on, use the following scripts:\n \n\u003e [!NOTE]  \n\u003e It runs the same scripts as above, but also edits the [`menus`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus) permission listed in the manifest.json*\n \n * `npm run build:chrome-dev`: https://dev.fxprivaterelay.nonprod.cloudops.mozgcp.net/\n * `npm run build:chrome-stage`: https://stage.fxprivaterelay.nonprod.cloudops.mozgcp.net/\n * `npm run build:chrome-prod`: https://relay.firefox.com/\n \n\n \n\n### Distributing\n\n#### Add-on Submission Process\n\nSee internal documentation [here](https://mozilla-hub.atlassian.net/wiki/spaces/SECPRV/pages/27034372/Firefox+Relay+Add-on+Submission+Process). This document outlines how to submit and release the Firefox Relay add-on (extension) to the different add-on stores.\n\nProcess summary: \n\n![](https://i.imgur.com/rimgrmE.png)\n\n1. Cut Release: Create a new release on GitHub (new tag) with new version number.\n2. Open ADDONOPS ticket: Create a new Jira ticket for the ADDONOPS team using their form, filling out all the particulars. \n3. QA Greenlight: Link to QA comment or have QA comment directly on the ticket with greenlight. \n4. Approval: If approval is given, you will be asked to submit to AMO.\n5. Submit to AMO: Submit the add-on to AMO. \u003cbr\u003e \n   **WARNING:** make sure to choose the right options.\n\n#### Continuous Pre-releases\n\nThe `sign-and-release-to-github` action creates a signed add-on after every\nmerge to `main`. These pre-releases are available on the [GitHub Releases\npage](https://github.com/mozilla/fx-private-relay-add-on/releases).\n\nTo comply with [WebExtension\nversion](https://developer.chrome.com/docs/extensions/mv3/manifest/version/)\nrequirements for AMO signing, the pre-release versions are [Calendar\nVersioned](https://calver.org/) as `YYYY.MM.DD.minutes-since-midnight`\n\nThe signed `.xpi` file is named\n`private_relay-${{ YYYY.MM.DD.minutes }}.xpi` and automatically attached\nto each release, under the release \"Assets\" section.\n\n#### Make the new version\n\n1. Bump the version number in `package.json` and `manifest.json`\n2. Commit the version number bump\n3. Create a git tag for the version: `git tag \u003cversion\u003e`\n4. Push the tag up to GitHub: `git push --tags`\n \n#### Publish to AMO\n\n1. After pushing the new version to GitHub, open the \"continuous prerelease to GitHub\" run for that tag: https://github.com/mozilla/fx-private-relay-add-on/actions/workflows/sign-and-release-to-github.yml\n2. Under \"Artifacts\", download `fx-private-relay-extension.zip`\n3. [Upload the `.zip` to AMO](https://addons.mozilla.org/en-US/developers/addon/private-relay/versions/submit/)\n\n**Note: Be sure the *\"Where to Host Version\"* is set to _\"On this site\"._**\n\n#### Publish to Chrome \n\n1. After pushing the new version to GitHub, open the \"continuous prerelease to GitHub\" run for that tag: https://github.com/mozilla/fx-private-relay-add-on/actions/workflows/sign-and-release-to-github.yml\n2. Under \"Artifacts\", download `fx-private-relay-extension.zip`\n3. [Upload the `.zip` to Chrome](https://developer.chrome.com/docs/webstore/publish/)\n\n**Note: Be sure the publisher is set to *Mozilla Corportation*.**\n\n#### Publish to GitHub\nFinally, we also publish the release to GitHub for those followers.\n\n1. Download the signed `.xpi` from [the addon versions page](https://addons.mozilla.org/en-US/developers/addon/private-relay/versions)\n2. [Make the new release on\n   GitHub](https://github.com/mozilla/fx-private-relay-add-on/releases/new)\n   * Use the version number for \"Tag version\" and \"Release title\"\n   * Release notes: copy the output of `git log --no-merges --pretty=format:\"%h %s\" \u003cprevious-version\u003e..\u003cnew-version\u003e`\n   * Attach binaries: select the signed `.xpi` file\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Ffx-private-relay-add-on","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Ffx-private-relay-add-on","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Ffx-private-relay-add-on/lists"}