Que se passe-t-il avec les extensions Chrome ?

Amy Steam
Amy Steam

Jusqu'à présent, 2023 a été une année chargée dans le monde des extensions Chrome. Vos précieux commentaires nous ont permis d'améliorer la plate-forme des extensions et notre documentation. Nous continuons également de collaborer avec d'autres fournisseurs de navigateurs dans le groupe de la communauté WebExtensions afin que les API d'extension fonctionnent de manière plus cohérente sur l'ensemble des navigateurs.

Dans cet article, nous allons vous présenter quelques modifications sur lesquelles l'équipe chargée des extensions Chrome a travaillé au cours du premier semestre de cette année, ainsi que les fonctionnalités qui seront lancées plus tard au cours du trimestre. C'est parti !

Nouvelles API et fonctionnalités d'extension

Dans cette section, je souhaite mettre en avant des lancements importants d'API, passer rapidement en revue d'autres améliorations apportées aux API et vous communiquer les prochaines versions de l'API.

Points forts

Documents hors écran

L'API Offscreen a été introduite dans Chrome 109. Il permet aux extensions Manifest V3 de gérer les cas d'utilisation qui nécessitent une interaction avec le DOM ou la fenêtre, ce qui ne peut pas être effectué dans le service worker de l'extension. De plus, Chrome 114 a introduit deux raisons supplémentaires hors écran: 'WORKERS' pour les instances où votre document doit générer un worker et 'LOCAL_STORAGE' pour faciliter la migration des données de window.localStorage vers l'API chrome.storage.

À partir de Chrome 115, vous pouvez indiquer plusieurs raisons lorsque vous créez un document hors écran. Cela vous permet d'effectuer deux tâches connexes dans le même document.

Nouvelle API Side Panel 🎉

Auparavant, le seul moyen de créer des barres latérales dans les extensions consistait à injecter un nouvel élément avec des scripts de contenu sur chaque page. Dans Chrome 114, l'API Side Panel a été lancée. Désormais, vous pouvez développer plus facilement une barre latérale associée pour les utilisateurs. Découvrez comment l'API Side Panel vous permet de concevoir une expérience utilisateur optimale.

Extension de dictionnaire qui affiche la définition d'un mot sélectionné
Extension du dictionnaire du panneau latéral. Consultez le code dans le dépôt chrome-extensions-samples.

Service workers plus robustes

Tous les événements d'extension redémarrent désormais le délai d'inactivité du service worker de l'extension. Dans Chrome 110, la durée de vie maximale maximale de cinq minutes a été supprimée pour les service workers d'extension. En outre, les messages envoyés aux applications natives et aux messages inclus dans l'extension redémarrent le délai d'inactivité. Pour en savoir plus, consultez l'article Cycle de vie des nœuds de calcul des extensions.

Autres lancements d'API

  • API Action: à partir de Chrome 110, vous pouvez personnaliser le texte du badge avec setBadgeTextColor() et getBadgeTextColor(). isEnabled() vous permet également de vérifier si l'action est activée pour l'onglet actif.
  • API Commands: le bug qui empêchait les raccourcis d'extension, déclarés dans le fichier manifeste sous "commands._execute_action" de persister lors de la conversion vers MV3, a été corrigé dans Chrome 111.
  • API Downloads: l'interface utilisateur par défaut des téléchargements dans Chrome a été déplacée de l'étagère située en bas à droite de l'omnibox. Pour désactiver ce comportement, vous pouvez utiliser downloads.setUiOptions(), qui remplace setShelfEnabled().
  • API History: chrome.history.getVisits() et chrome.history.search() renvoient également les données d'autres appareils synchronisés avec la base de données de l'historique local. Cela peut augmenter le nombre d'entrées dans l'historique et le nombre de visites. isLocal a été ajouté à VisitItem dans Chrome 115 (version stable prévue plus tard ce mois-ci) pour pouvoir n'afficher que les visites à proximité.
  • API Identity: la fenêtre d'authentification s'affiche désormais sous la forme d'une fenêtre pop-up, et non plus une fenêtre d'application complète. Pour vous offrir plus de contrôle lors du processus de redirection JavaScript, nous avons ajouté deux options: abortOnLoadForNonInteractive et timeoutMsForNonInteractive.
  • API Storage: dans Chrome 112, la taille de stockage de chrome.session est passée à 10 Mo. Ensuite, la taille de stockage de chrome.local a été modifiée pour correspondre à celle utilisée dans Chrome 114.

À venir...

Les prochaines versions de Chrome intégreront de nombreuses fonctionnalités pour faciliter la migration des extensions vers Manifest V3. Pour obtenir la liste des modifications à venir liées à la migration MV3, consultez notre page des problèmes connus. Nous prévoyons également d'ajouter les fonctionnalités suivantes:

  • API DeclarativeNetRequest: la valeur par défaut de la propriété isUrlFilterCaseSensitive sera remplacée par false. Consultez le thread WECG.
  • L'API File Handling permettra aux extensions ChromeOS d'ouvrir des fichiers avec les types MIME et les extensions spécifiés. Cette fonctionnalité est actuellement derrière un drapeau.
  • API Runtime: nous lançons runtime.getContexts() pour remplacer extension.getViews(), qui est obsolète. Cela permettra aux extensions de déterminer si une page d'extension, telle que le panneau latéral ou le document hors écran, est ouverte. Voir la proposition WECG
  • Service workers: nous ajoutons aux API Chrome des options de conservation renforcées qui affichent une invite utilisateur: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() et management.uninstall().
  • API Side Panel: nous lançons sidepanel.open(), qui ouvre le panneau latéral de l'extension de façon programmatique en réponse à un geste de l'utilisateur, comme un clic sur le menu contextuel.
  • API TabCapture: nous ajoutons la possibilité d'appeler getMediaStreamId() à partir du service worker de l'extension et d'obtenir un MediaStream à partir d'un ID de flux dans un document hors écran. Consultez Enregistrement audio et capture d'écran pour obtenir des exemples.

Consultez régulièrement la page Nouveautés des extensions pour suivre ces annonces dès qu'elles seront disponibles en version bêta de Chrome.

Mise à niveau de la documentation et autres conseils sur Manifest V3

Nous avons également beaucoup travaillé pour améliorer l'expérience d'apprentissage des développeurs. Un grand merci à tous ceux qui ont pris le temps de poser des questions sur chromium-group et de signaler des problèmes de documentation sur developer.chrome.com.

Points forts

  • La nouvelle section Migration MV3 fournit des moyens pratiques de convertir les extensions Manifest V2 en Manifest V3.
  • Le guide Extension service workers fournit des informations détaillées sur les sujets concernant les service workers d'extension. Il s'agit de la manière dont elles sont enregistrées et mises à jour, de leur cycle de vie, de leur fonctionnement des importations et plus encore.
  • Le tutoriel Gérer les événements avec des service workers présente les principes de base des service workers d'extension. Elle crée une extension omnibox qui vous permet d'accéder rapidement aux pages de référence de l'API des extensions.

Plus d'actualités

À venir...

  • Migrer du code hébergé à distance vers Manifest V3
  • Exécuter des tests automatisés pour les extensions Chrome
  • Amélioration des conseils sur les demandes de réseau déclaratif.
  • Améliorations apportées à l'explication du script de contenu.

💡 Le saviez-vous ?

Avant de conclure, voici quelques outils et informations utiles:

  • Chrome a commencé à prendre en charge WebHID. Vous pouvez tester l'API à partir de Chrome 115 (mais sachez qu'il est encore en cours de développement).
  • Puppeteer prend désormais en charge les tests en mode sans interface graphique à l'aide de --headless=new . Pour en savoir plus, consultez l'article de blog Mise à niveau du mode sans interface graphique de Chrome.
  • L'outil de test de mise à jour des extensions vous permet de vérifier les avertissements déclenchés lorsque les autorisations sont modifiées dans le fichier manifeste. Vous pouvez ainsi découvrir le processus de mise à jour comme le ferait un utilisateur. C'est important, car certaines autorisations peuvent désactiver l'extension jusqu'à ce que l'utilisateur accorde de nouveau l'accès.

Connectons-nous ! 🙌

Cette année, l'équipe chargée des extensions a été ravie de rencontrer en personne les développeurs d'extensions lors des événements Google I/O Connect. Nous nous efforçons de créer de nouveaux espaces pour échanger avec vous, par exemple en lançant des groupes d'étude et des réunions.

En attendant, continuez à poser des questions sur chromium-groups, envisagez de participer au WECG et signalez tout problème de documentation sur le dépôt GitHub de developer.chrome.com.

Merci encore de faire partie de la communauté des développeurs d'extensions !