Créez vos extensions Chromium/Google Chrome ou Mozilla Firefox en JavaScript

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
103
Mois de parution
juillet 2019
Spécialités


Résumé

De nombreuses extensions permettent d'ajouter des fonctionnalités aux navigateurs Chromium/Google Chrome ou Mozilla Firefox. On peut par exemple enregistrer des pages (TabHamster), insérer du code JavaScript (TamperMonkey/GreaseMonkey), bloquer les pubs (uBlock Origin), etc. Il est donc possible de créer des extensions qui viendront s'intégrer dans le navigateur et c'est ce que nous allons voir dans cet article.


Les extensions pour Chromium/Google Chrome et pour Mozilla Firefoxsont écrites en JavaScript/HTML en utilisant les API de WebExtension (API plus ou moins compatible entre les navigateurs de dernière génération). Dans cet article, nous allons voir comment procéder pour créer notre propre extension, qui permettra de récupérer sur une page d'article du site Connect des Éditions Diamond (https://connect.ed-diamond.com/) les références dudit article et de les placer dans le presse-papier (clipboard), pour pouvoir les coller facilement dans un document. L'écriture de cette extension nous permettra d'appréhender le processus de création dans sa globalité. Nous écrirons tout d'abord l'extension pour Chromium/Google Chrome, avant de la porter sur Mozilla Firefox.

Dans la suite de l'article, plutôt que de répéter Chromium/Google Chrome, je noterai Chrome de manière générique pour désigner les deux navigateurs et je noterai Firefox pour Mozilla Firefox.

1. Une...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite
Références

[1] Les entrées du fichier manifest.json : https://developer.chrome.com/extensions/manifest

[2] Événement onInstalled : https://developer.chrome.com/apps/runtime#event-onInstalled

[3] Format des icônes : https://developer.chrome.com/extensions/manifest/icons

[4] Material Design : https://material.io/design/

[5] Liste des permissions : https://developer.chrome.com/extensions/declare_permissions

[6] Déclaration des permissions : https://developer.chrome.com/extensions/permission_warnings

[7] Portage d'une extension Chrome sur Firefox : https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension

[8] Compatibilité de l'entrée persistent de background dans le fichier manifest.json (cliquez sur la flèche vers le bas pour obtenir toutes les informations) : https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/arriere-plan#Compatibilit%C3%A9_du_navigateur

[9] Liste des compatibilités des entrées du fichier manifest.json : https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json



Articles qui pourraient vous intéresser...

À la découverte des GitHub Actions

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
115
Mois de parution
juillet 2021
Spécialités
Résumé

La discipline du CI/CD est incontournable dans l'industrie du logiciel, tant en open source que dans les projets d'entreprise, avec des outils toujours plus nombreux et efficaces. La maîtrise d'au moins un acteur principal du marché est de plus en plus regardée comme indispensable, ce qui prend tout son sens une fois qu'on a pris l'habitude d'automatiser ces opérations. Démonstration avec les GitHub Actions.

« Je veux ma maquette de satellite » : analyse du format G3DB d’objets 3D en vue de leur impression

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

Nous explorons le format G3DB exploité dans nombre de jeux programmés en Java sous Android s’appuyant sur la bibliothèque LibGDX. Cette étude sera l’occasion de découvrir le format universel binaire JSON, conçu pour sa compacité tout en conservant une facilité d’analyse bien connue de ce format de données. Nous aboutirons ainsi à un modèle 3D exploitable dans tout logiciel de conception assistée par ordinateur et conclurons par l’impression des divers éléments de la maquette et son assemblage.

Utilisez les énumérations en Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
115
Mois de parution
juillet 2021
Spécialités
Résumé

Il existe dans tout langage des éléments simples, pratiques, mais qui sont pourtant peu employés par les développeurs. En Python, les énumérations se retrouvent dans cette catégorie. Je vous propose dans cet article de découvrir leur intérêt.

Gérez vos projets Python avec Poetry

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

« Un peu de poésie dans un monde de brutes », voilà ce que l'on pourrait se dire en lisant le nom de ce projet… pourtant, c'est à l'usage qu'il montre ses petits muscles et il vous deviendra rapidement indispensable !

Les bizarreries de l’isolation des IPC

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

Le namespace IPC (Inter-Process Communication) isole les mécanismes de communication interprocessus (sémaphores, mémoire partagée et queues de messages) hérités d’UNIX Système V et bizarrement, seulement une partie de leurs pendants POSIX.