Mon extension pour navigateur Get RSS Feed URL vient de passer en version 3, ce qui signifie quelques changements !

Si vous ne la connaissez pas, cette extension liste les différents flux RSS qui ont été trouvés sur une page Web. Depuis plusieurs années maintenant, de plus en plus de sites n'affichent malheureusement plus de bouton ou de lien redirigeant vers le ou les flux RSS. J'avais donc créé une extension permettant d'obtenir en un clic cette information, si elle existe.

De plus, même si les sites proposent un flux RSS, ils ne prennent plus la peine d'ajouter la balise <link> correspondant dans le head... L'extension permet egélament de retrouver des flux RSS qui ne sont pas inscrits dans le code source de la page visitée.

Publiée fin d'année 2020, la précédente version 1.4 apportait son lot de nouveautés.

L'abandon de la v2

J'avais développé une v2 totalement différente de la v1. En effet, j'avais entrepris une refonte totale de la manière de récupérer les fux RSS à partir du code source du site visité. Dans la v1, l'extension faisait tout le travail de recherche de flux en JavaScript. Le code source était récupéré, puis j'appliquais diverses méthodes pour tenter de trouver un flux RSS.

Dans la v2, j'ai décidé de ne plus parser le code source du site directement depuis l'extension. J'ai confié cette tâche à une API que j'ai développé spécifiquement.

Cette dernière effectue grossièrement les mêmes actions qu'auparavant. Le code source du site est récupéré via Guzzle, puis j'essaye de trouver des flux RSS suivant plusieurs critères.

Le fait de déléguer la récupération des flux RSS à une API et qu'elle ne soit donc plus réalisée par l'extension elle-même, me permettait d'ajouter des méthodes de récupération très facilement. Je n'avais pas besoin de créer une nouvelle version de l'extension, de la publier sur les stores, d'attendre que tous les utilisateurs mettent à jour l'extension, etc... La maintenance et l'évolutibilité auraient été accrus.

Après plusieurs mois de tests de cette version de l'extension, je n'étais pas totalement satisfait. Les résultats obtenus étaient corrects. Cependant, avec plus de 40 000 utilisateurs de l'extension, j'avais très peur que le serveur hébergeant l'API ne suive pas. J'avais bien mis en place une sorte de répartition de charges entre 3 hébergements distincts mais ça ne me rassurait pas vraiment au final.

J'ai donc décidé d'abandonner cette v2 de l'extension (qui n'a jamais été publiée sur les stores), se basant sur une API externe fait-maison pour récupérer les flux RSS.

La naissance de la version 3 bousculée par le Manifest V3

La v1.4.1 de l'extension était toujours publiée sur les stores Chrome et Edge. Avec plus de 42 000 utilisateurs de l'extension uniquement sur Chrome, je me devais de reprendre le projet. Effectivement, Google a imposé le passage en V3 du Manifest (V3).

Ce fichier manifest.json contient toutes les métadonnées de l'extension (nom, version, descriptif, mots-clés, permissions, scripts d'arrière-plan, actions, ...).
Cette V3 a notamment pour objectif de renforcer la sécurité et la confidentialité des extensions.

Des modifications importantes sont à faire pour le passage de MV2 à MV3. Trois phases ont été décidées par Google :

  • Janvier 2022 : le Chrome Web Store n'autorisera plus de nouvelle extension publiques avec un MV2. Les extensions déjà présentes sur le store en MV2 pourront être mises à jour.
  • Juin 2022 : le Chrome Web Store n'autorisera plus de nouvelle extension "privée" en MV2
  • Juin 2024 : le Chrome Web Store n'autorisera plus les mises à jour en MV2 et surtout, arrêtera de faire fonctionner progressivement les extensions en MV2 à partir de Chrome v127 !

Heureusement pour nous, développeurs, Google fournit un guide de migration vers MV3.

Du coup, j'ai repris totalement l'extension pour l'adapter au Manifest V3. Les modifications ont été réalisées sans trop de problème car cela reste une extension assez simple techniquement.

Les nouveautés de la v3

J'en ai bien sûr profité pour implémenter quelques nouvelles fonctionnalités.

Tout d'abord, l'extension arrive à récupérer des flux RSS sur des sites qui n'en proposent pas directement :

  • Reddit : l'extension arrive à récupérer les flux RSS de votre homepage Reddit mais aussi d'un sub Reddit, d'un profil ou des commentaires d'un post
  • Kickstarter : le flux RSS d'un projet Kickstarter est récupéré
  • Vimeo : flux RSS d'une chaîne Vimeo
  • Github : l'extension récupère les flux RSS d'un dépôt Github (releases, commits, tags), d'un utilisateur Github (activité)
  • Gitlab : idem que Github
  • Medium : récupère le flux RSS d'une page d'un mot-clé (tag)

Les autres nouveautés sont plus techniques : optimisation de la récupération des éléments <link>, et également de la découverte d'un flux en testant des URLs.

C'est disponible où ?

L'extension est disponible pour Google Chrome mais aussi pour Microsoft Edge, Vivaldi et Opera !

Concernant Firefox, un développeur m'a devancé mais c'est l'ancienne version qui est publiée. Je n'ai pas encore pris vraiment le temps de la tester sur ce navigateur et la v3 n'y est donc pas encore disponible.

N'hésitez pas à tester la nouvelle version de l'extension Get RSS Feed URL et à me remonter les éventuels bugs et surtout les nouvelles fonctionnalités que vous souhaitez ;)