Microsoft has acquired GitHub. Decentraleyes has left GitHub. Welcome to its new home!

To participate, please register, or sign in with an existing GitLab.com, Bitbucket, or GitHub account.

Past contributions on GitHub? Be sure to reclaim your Comments, Issues, and Pull Requests.

Commit 98a9516d authored by Thomas Rientjes's avatar Thomas Rientjes

Implement support for Firefox 57 and higher

parent 682570cd
data/_audit/node_modules
data/_audit/report.txt
*.xpi
.idea
audit/node_modules
audit/report.txt
data/_audit/node_modules
data/_audit/report.txt
.jpmignore
.gitignore
.idea
*.xpi
test
.git
Decentraleyes
=============
A [web browser extension](https://decentraleyes.org) that emulates Content Delivery Networks locally by intercepting requests, finding the required resource and injecting it into the environment. This all happens instantaneously, automatically, and no prior configuration is required. Feel free to use this [testing utility](https://decentraleyes.org/test) to see if it's properly installed, enabled, and correctly configured.
A [web browser extension](https://decentraleyes.org) that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported resources locally, and injects them into the environment. All of this happens automatically, so no prior configuration is required. Feel free to use the following [testing utility](https://decentraleyes.org/test) to find out if you are properly protected.
> **Note:** Decentraleyes is no silver bullet, but it does prevent a lot of websites from making you send these kinds of requests. Ultimately, you can make Decentraleyes block requests for any missing CDN resources, too.
## Roadmap
## Contributing Code
Suggestions in the form of **Issues**, and contributions in the form of **Pull Requests**, are highly welcome. You can also use the public contact details and PGP key on the extension's [contact page](https://decentraleyes.org/contact) to get in touch.
Now that there's a solid, Mozilla approved, foundation, it's time to move forward. Mobility, extensibility (through support for community-powered resource packages), and usability, will be the main points of attention during this phase.
#### Prerequisites
#### Essential Next Steps
* Mozilla Firefox 56 *(or higher)*.
* Start work on a resource bundle standard, to allow users to create and import custom resources. With support for these bundles in place, Decentraleyes will still work out of the box, but can be extended if needed.
* To keep this add-on from turning into bloatware, it's important to find out which versions of which libraries are most commonly used on websites, so that less popular resources can be removed from the default bundle.
> **Note:** If you want to contribute to the Firefox legacy extension, please check out the ```legacy``` branch. If you are looking for the Chromium-compatible codebase, please see the ```experimental``` branch.
#### Planned Features
#### Running the Code
* Advanced policy management for users who block requests for missing resources.
* Smarter resource version interpretation for handling dynamic notations.
* A minimalistic and non-essential graphical user interface.
* Support for custom, importable, library repositories.
Please read this [short guide](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_first_WebExtension#Trying_it_out) for information on how to run this extension from source.
> **Note:** These long-term goals are subjective to change, and can be discussed. That is, as long as the suggestions do not conflict with the ultimate goal of realizing a free and open standard for exchanging web resource bundles.
> **Important:** All commits since 26 October 2016 are signed with GPG. It's likely best to ignore unsigned commits, unless you really know what you're doing. Please send an email if you have any questions or security concerns.
## Submitting Translations
Do you master a non-supported language? Please help out by translating this add-on on [Crowdin](https://crowdin.com/project/decentraleyes).
## Contributing Code
Suggestions in the form of **Issues** and contributions in the form of **Pull Requests** are highly welcome. You can also use the contact details and PGP key on the add-on [download page](https://addons.mozilla.org/firefox/addon/decentraleyes) to get in touch.
#### Prerequisites
* Jetpack Manager [jpm](https://developer.mozilla.org/Add-ons/SDK/Tools/jpm#Installation) (a Node-based replacement for cfx).
* Firefox version 38 or later. *If you need to work with earlier versions of Firefox, you'll need to use the old cfx tool. See instructions for [getting started with cfx](https://developer.mozilla.org/Add-ons/SDK/Tutorials/Getting_started).
#### Build Instructions (Unix)
git clone https://github.com/Synzvato/decentraleyes
cd decentraleyes
jpm xpi
> **Important:** All commits since 26 October 2016 are signed with GPG. It's likely best to ignore unsigned commits, unless you really know what you're doing. Please send an email if you have any questions or security concerns.
## License
[MPL-2.0](https://www.mozilla.org/MPL/2.0).
{
"extensionDescription": {
"message": "Защитава ви от следене чрез свободна, централизирана доставка на съдържание.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Блокиране на заявки за липсващи ресурси",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Отмяна на прехванатата заявка, ако изисквания ресурс не е наличен на местно ниво.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Изключване на домейните от инспекции",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Въведете домейни, които да се добавят в белия списък. Отделете стойностите с точка и запетая.",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Брояч за местно вмъкнати ресурси",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Количество на местни вмъквания на ресурси от началото на инсталацията.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Beskytter dig imod sporing af \"gratis\", centraliserede indholdsleverandører.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Bloker anmodninger om manglende ressourcer",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Annullerer en anmodning hvis den forespurgte ressource ikke findes lokalt.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Udeluk disse domæner fra inspektion",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Tilføj domæner der ikke skal opfanges. Separer flere med semikolon (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Optælling af lokalt leverede ressourcer",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Antal injektioner af lokale ressourcer siden installation.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Schützt vor Tracking durch \"gratis\", zentralisiertes, Abliefern von Content.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Blockiere Anfordern fehlender Inhalte",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Abgefangene Anforderung unterbinden, falls angeforderte Datei nicht lokal verfügbar ist.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Domains von Prüfung ausschließen",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Gebe zu ignorierende Domains an. Trenne mehrere Einträge durch Semikolons (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Zähler für lokal injizierte Ressourcen",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Anzahl der lokalen Injektionen von den CDN-Ressourcen seit der Installation.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Προστατεύει από παρακολούθηση μέσω \"δωρεάν\" διανομής περιεχόμενου.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Μπλοκ αιτήσεων για ανύπαρκτους πόρους",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Ακύρωση απομακρυσμένης αίτησης, αν ο απαιτούμενος πόρος δεν είναι τοπικά διαθέσιμος.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Εξαίρεση διευθύνσεων από επιθεωρήσεις",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Εισαγωγή διευθύνσεων στις επιτρεπόμενες. Διαχωρίστε πολλαπλές καταχωρήσεις με ερωτηματικά (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Μετρητής εμβόλιμων τοπικών πόρων",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Ποσοστό εμβόλιμων τοπικών πόρων Δικτύων Παροχής Περιεχομένου από την στιγμή της εγκατάστασης.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Protects you against tracking through \"free\", centralised, content delivery.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Block requests for missing resources",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Cancel intercepted request if the required resource is not locally available.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Exclude domains from inspections",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Enter domains to whitelist them. Separate multiple entries with semi-colons (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Counter for locally injected resources",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Amount of local Content Delivery Network resource injections since installation.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Protects you against tracking through \"free\", centralized, content delivery.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Block requests for missing resources",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Cancel intercepted request if the required resource is not locally available.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Exclude domains from inspections",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Enter domains to whitelist them. Separate multiple entries with semi-colons (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Counter for locally injected resources",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Amount of local Content Delivery Network resource injections since installation.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Protégete contra rastreo a través de entrega de contenido centralizado \"gratis\".",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Bloquear peticiones de fuentes faltantes",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Cancelar peticiones detenidas si la fuente requerida no se encuentra localmente.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Excluir dominios de inspecciones",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Ingresar dominios a ser ignorados. Separar múltiples entradas con punto y coma (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Contador para fuentes inyectadas localmente",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Cifra de inyecciones de fuentes de Redes de Entrega de Contenido desde instalación.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Suojaa sinua \"ilmaisten\" keskitettyjen sisällön jakeluverkkojen jäljitykseltä.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Estä pyynnöt puuttuviin resursseihin",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Estää pyynnöt jos paikallista sisältöä ei ole saatavilla.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Poissulje verkkotunnukset",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Lisää verkkotunnus jottei sitä korvata. Erota rivit puolipisteellä (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Korvatut pyynnöt",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Korvatut sisältöpyynnöt lisäosan asennuksen jälkeen.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Protège du pistage lié à l'accès à des contenus \"gratuits\", centralisés.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Bloquer les ressources manquantes",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Annuler une demande de ressource si elle est indisponible localement.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Ne pas inspecter certains domaines",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Indiquez les domaines à exclure. Séparer les noms par un point-virgule (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Compteur des ressources injectées",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Total des ressources des CDN injectées localement depuis l'installation.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Melindungi dari pelacakan melalui distribusi konten yang bebas dan terpusat.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Blokir permintaan untuk sumber daya yang hilang",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Batalkan intersep permintaan jika sumber daya yang dibutuhkan tidak tersedia secara lokal.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Cegah inspeksi domain",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Masukkan domain ke daftar putih. Pisahkan entri dengan titik koma (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Sumber daya lokal yang disematkan",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Jumlah penyematan sumber daya Jaringan Distribusi Konten lokal sejak pemasangan.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Protegge dal tracciamento tramite i CDN centralizzati \"gratuiti\".",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Bloccare richieste di risorse mancanti",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Annulla la richiesta intercettata se la risorsa necessaria non è disponibile localmente.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Escludere domini dalle ispezioni",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Inserire domini nella whitelist per escluderli. Separare voci multiple con punti e virgola (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Contatore per risorse iniettate localmente",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Quantità di iniezioni di risorse dalla Rete di Distribuzione di Contenuti locale sin dall'installazione.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "「無料」と称してあなたを追跡する大規模なCDNを迂回して、プライバシーを守ります。",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "アドオンに含まれないリソースへのリクエストをブロックする",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "必要なリソースがローカルで利用できない場合、リクエストを取り消します。",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "保護から除外するドメイン",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "ホワイトリストに登録したいドメインを入力してください。エントリが複数ある場合、セミコロン (;) で区切ってください。",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "ローカルのリソースを使用した回数",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "インストール後にローカルのCDNリソースを使用した回数です。",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Beschermt tegen tracking via het \"gratis\", gecentraliseerd, verzorgen van content.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Stop verzoeken voor ontbrekende items",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Annuleer een onderschept verzoek wanneer het bestand niet lokaal beschikbaar is.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Sluit domeinen uit van inspecties",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Voer de te negeren domeinen in. Scheid de waarden met puntkomma's (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Teller voor lokaal geïnjecteerde bestanden",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Aantal lokale Content Delivery Network-bestandsinjecties sinds installatie.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Chroni przed śledzeniem przez ośrodki CDN.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Blokuj żądania brakujących zasobów",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Anuluj przechwycone żądania jeśli wymagany zasób nie jest dostępny lokalnie.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Wyklucz domeny z analizy",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Podaj domeny aby dodać je do białej listy. Oddziel wpisy średnikami (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Licznik zasobów podanych lokalnie",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Ilość wstrzyknięć z lokalnego Content Delivery Network od czasu instalacji.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Protege contra monitorização através de entrega de conteúdo centralizado.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Bloquear pedidos por falta de recursos",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Cancelar pedido intercetado se o recurso necessário não estiver disponível localmente.",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Excluir domínios de inspeções",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "Insira domínios para os colocar na lista branca. Separe múltiplas entradas com pontos e vírgulas (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Contador para recursos injetados localmente",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Quantidade de injeções de recurso Content Delivery Network locais desde a instalação.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Защищает Вас от отслеживания через «бесплатные», централизованные CDN.",
"description": "Extension description."
},
"blockMissingTitle": {
"message": "Блокировать запросы недостающих ресурсов",
"description": "Block requests for missing resources title."
},
"blockMissingDescription": {
"message": "Отменить перехваченный запрос, если требуемый ресурс не доступен локально (может «ломать» сайты).",
"description": "Block requests for missing resources description."
},
"domainWhitelistTitle": {
"message": "Исключить домены из проверки",
"description": "Domain whitelist title."
},
"domainWhitelistDescription": {
"message": "«Белый список» доменов. Контент, расположенный на них не будет фильтроваться. Записи (при количестве более одной) разделяются точкой с запятой (;).",
"description": "Domain whitelist description."
},
"amountInjectedTitle": {
"message": "Счётчик файлов «доставленных» локально",
"description": "Amount injected title."
},
"amountInjectedDescription": {
"message": "Количество местных инъекций ресурсов сети доставки контента с момента установки.",
"description": "Amount injected description."
}
}
{
"extensionDescription": {
"message": "Skyddar dig mot att spåras av \"gratis\", centraliserat, innehållsleverans.",
"description": "Extension description."
},