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

Jusqu'à présent, l'année 2023 a été bien remplie dans le monde des extensions Chrome. Vos précieux commentaires nous ont permis d'améliorer la plate-forme d'extensions et notre documentation. Nous poursuivons également notre collaboration avec d'autres fournisseurs de navigateurs au sein du groupe de la communauté WebExtensions afin d'améliorer le fonctionnement des API d'extension entre les navigateurs.

Dans ce post, nous allons vous présenter quelques modifications apportées par l'équipe des extensions Chrome au cours du premier semestre de cette année, ainsi que les fonctionnalités à venir dans le courant du trimestre. Voyons cela plus en détail.

Nouvelles API et fonctionnalités d'extension

Dans cette section, je souhaite mettre en évidence des lancements importants d'API, passer rapidement en revue d'autres améliorations apportées à l'API et partager les versions à venir 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 des extensions. Chrome 114 a également introduit deux raisons supplémentaires hors écran: 'WORKERS' pour les cas où votre document doit générer un nœud de calcul et 'LOCAL_STORAGE' pour faciliter la migration des données de window.localStorage vers l'API chrome.storage.

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

Nouvelle API Side Panel 🎉

Auparavant, le seul moyen de créer des barres latérales dans les extensions était d'injecter un nouvel élément avec des scripts de contenu sur chaque page. L'API Side Panel a été lancée dans Chrome 114. Vous pouvez désormais développer une expérience de barre latérale associée pour les utilisateurs de manière beaucoup plus simple. Découvrez comment l'API Side Panel vous permet d'offrir une expérience utilisateur de qualité supérieure.

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 minuteur d'inactivité du service worker de l'extension. Dans Chrome 110, la durée de vie maximale stricte de cinq minutes a été supprimée pour les service workers d'extensions. En outre, les messages envoyés aux applications natives et aux messages au sein de l'extension redémarrent le minuteur d'inactivité. Pour en savoir plus, consultez l'article Cycle de vie d'un service worker des extensions.

Autres lancements d'API

  • API Action: à partir de Chrome 110, vous pouvez personnaliser le texte du badge avec setBadgeTextColor() et getBadgeTextColor(). De plus, isEnabled() vous permet de vérifier si l'action est activée pour l'onglet actuel.
  • 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 en 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 d'une étagère 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 qui ont été synchronisés avec la base de données de l'historique local. Cela peut entraîner un plus grand nombre d'entrées d'historique et un nombre de visites plus élevé. isLocal a été ajouté à VisitItem dans Chrome 115 (version stable plus tard ce mois-ci) pour pouvoir filtrer par visites locales uniquement.
  • API Identity: la fenêtre d'authentification s'affiche désormais sous la forme d'un pop-up au lieu d'occuper toute la fenêtre de l'application. Pour vous permettre de mieux contrôler le 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 à 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 sur les 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 fil de discussion sur WECG.
  • L'API File Handling permet aux extensions ChromeOS d'ouvrir les fichiers présentant les types MIME et les extensions spécifiés. Cette fonctionnalité est actuellement derrière un drapeau.
  • API Runtime: nous publions 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 un document hors écran, est ouverte. Voir la proposition WECG.
  • Service workers: nous ajoutons de puissantes fonctionnalités keep-alive aux API Chrome qui affichent une invite utilisateur: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() et management.uninstall().
  • API Side Panel: nous lançons sidepanel.open(), qui ouvrira le panneau latéral de l'extension par programmation en réponse à un geste de l'utilisateur, comme un clic sur un menu contextuel.
  • API TabCapture: nous ajoutons la possibilité d'appeler getMediaStreamId() à partir du service worker d'extension et d'obtenir un MediaStream à partir d'un ID de flux dans un document hors écran. Consultez l'article Enregistrement audio et capture d'écran pour obtenir des exemples.

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

Mises à niveau de la documentation et autres conseils concernant Manifest V3

Nous nous sommes également efforcés d'améliorer l'expérience d'apprentissage des développeurs. 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 Service workers d'extensions fournit des informations détaillées sur les sujets liés aux service workers d'extensions. Il s'agit notamment de la manière dont elles sont enregistrées et mises à jour, de leur cycle de vie, du fonctionnement des importations, etc.
  • Le tutoriel Gérer les événements avec des service workers présente les principes de base des service workers d'extensions. Elle permet de créer une extension d'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
  • Découvrez comment exécuter des tests automatisés pour les extensions Chrome.
  • Amélioration des conseils sur les requêtes Declarative Net Request.
  • Améliorations apportées à l'explication du script de contenu.

💡 Le saviez-vous ?

Avant de conclure, nous souhaitons partager quelques outils et informations utiles:

  • Chrome a commencé à prendre en charge WebHID. Vous pourrez tester l'API à partir de Chrome 115 (bien qu'elle soit encore en cours de développement).
  • Puppeteer permet désormais d'effectuer des tests en mode headless à l'aide de --headless=new . Pour en savoir plus, consultez l'article de blog sur la mise à niveau du mode headless de Chrome.
  • L'outil de test de mise à jour d'extension vous permet de vérifier quels avertissements sont déclenchés lorsque les autorisations sont modifiées dans le fichier manifeste. Vous pouvez ainsi profiter du processus de mise à jour comme le ferait n'importe quel utilisateur. Ce point 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 a été heureuse de rencontrer en personne les développeurs d'extensions lors d'événements Google I/O Connect. Nous nous efforçons de créer de nouveaux espaces pour entrer en contact avec vous, par exemple en lançant des groupes d'étude et des événements.

En attendant, vous pouvez continuer à poser vos questions sur chromium-groups, participer au WECG et signaler tout problème de documentation dans le dépôt GitHub de developer.chrome.com.

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