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 d'extensions et notre documentation. Nous continuons également de collaborer avec d'autres fournisseurs de navigateurs au sein du groupe de la communauté WebExtensions afin que les API d'extension fonctionnent de manière plus cohérente entre les navigateurs.
Dans cet article, nous vous présenterons quelques modifications que l'équipe chargée des extensions Chrome a apportées au cours du premier semestre de cette année, ainsi que les fonctionnalités à venir qui seront publiées dans le courant du trimestre. C'est parti !
Nouvelles API et fonctionnalités d'extension
Dans cette section, je souhaite mettre en avant certaines lancements d'API importantes, passer en revue brièvement d'autres améliorations apportées aux API et vous présenter les prochaines versions d'API.
Sélection
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 nécessitant une interaction avec le DOM ou la fenêtre, ce qui ne peut pas être effectué dans le service worker de l'extension. Chrome 114 a également introduit deux raisons supplémentaires hors écran: 'WORKERS'
pour les cas 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 fournir plusieurs raisons lorsque vous créez un document hors écran. Vous pouvez ainsi effectuer deux tâches associées dans le même document.
Nouvelle API Side Panel 🎉
Auparavant, la seule façon 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. Dans Chrome 114, l'API Side Panel a été lancée. Vous pouvez désormais développer une expérience de barre latérale associée aux utilisateurs de manière beaucoup plus simple. Découvrez comment l'API Side Panel vous permet de concevoir une expérience utilisateur supérieure.
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 de cinq minutes a été supprimée pour les service workers d'extension. De plus, les messages envoyés aux applications natives et les messages de l'extension redémarrent le minuteur d'inactivité. Pour en savoir plus, consultez l'article Cycle de vie du service worker d'extension.
Autres lancements d'API
- API Action: à partir de Chrome 110, vous pouvez personnaliser le texte du badge avec
setBadgeTextColor
() etgetBadgeTextColor()
.isEnabled()
vous permet également 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 vers MV3 a été corrigé dans Chrome 111. - API Downloads: l'UI par défaut des téléchargements dans Chrome est passée d'une étagère en bas à la droite de la barre d'adresse. Pour désactiver ce comportement, vous pouvez utiliser
downloads.setUiOptions()
, qui remplacesetShelfEnabled()
. - API History:
chrome.history.getVisits()
etchrome.history.search()
renvoient également les données d'autres appareils qui ont été synchronisées avec la base de données d'historique locale. Cela peut entraîner davantage d'entrées dans l'historique et un nombre de visites plus élevé.isLocal
a été ajouté àVisitItem
dans Chrome 115 (version stable attendue dans le courant du mois) pour pouvoir filtrer les visites locales uniquement. - API Identity: la fenêtre d'authentification s'affiche désormais sous forme de pop-up, au lieu d'occuper une fenêtre d'application complète. Pour vous offrir plus de contrôle lors du processus de redirection JavaScript, nous avons ajouté deux nouvelles options:
abortOnLoadForNonInteractive
ettimeoutMsForNonInteractive
. - API Storage: dans Chrome 112, la taille de stockage
chrome.session
a été augmentée à 10 Mo. La taille de stockagechrome.local
a ensuite été modifiée pour correspondre dans Chrome 114.
Bientôt disponible…
Les prochaines versions de Chrome introduiront 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 la 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 passe à
false
. Consultez le fil de discussion WECG. - L'API File Handling permet aux extensions ChromeOS d'ouvrir des fichiers avec des types MIME et des extensions de fichier spécifiés. Cette fonctionnalité est actuellement activée derrière un flag.
- API Runtime: nous lançons
runtime.getContexts()
pour remplacerextension.getViews()
, qui est obsolète. Cela permet aux extensions de déterminer si une page d'extension, comme le panneau latéral ou le document hors écran, est ouverte. Consultez la proposition de la WECG. - Service workers: nous ajoutons des "keep-alives" puissants aux API Chrome qui affichent une invite utilisateur:
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
etmanagement.uninstall()
. - API Side Panel: nous lançons
sidepanel.open()
, qui ouvre le panneau latéral de l'extension de manière programmatique en réponse à un geste de l'utilisateur, tel qu'un clic dans un 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. Pour en savoir plus, consultez Enregistrement audio et capture d'écran.
Consultez la page Nouveautés des extensions pour en savoir plus dès qu'elles seront disponibles dans la version bêta de Chrome.
Mises à niveau de la documentation et autres conseils sur Manifest V3
Nous avons également travaillé dur pour améliorer l'expérience d'apprentissage des développeurs. Merci à tous ceux d'entre vous qui ont pris le temps de poser des questions sur le groupe chromium et de signaler des problèmes de documentation sur developer.chrome.com.
Sélection
- La nouvelle section Migration vers MV3 fournit des moyens pratiques de convertir les extensions Manifest V2 en Manifest V3.
- Le guide sur les workers de service d'extension fournit des informations détaillées sur les sujets liés aux workers de service d'extension. Il s'agit, entre autres, de la façon dont ils sont enregistrés et mis à jour, du cycle de vie, du fonctionnement des importations, etc.
- Le tutoriel Gérer les événements avec les service workers présente les principes de base des service workers d'extension. Il crée une extension d'omnibox qui vous permet d'accéder rapidement aux pages de référence de l'API de l'extension.
Plus d'actualités
- Utiliser Google Analytics 4 explique comment suivre l'utilisation des événements de votre pop-up d'extension et de votre service worker.
- Utiliser la géolocalisation explique comment obtenir l'emplacement géographique de l'extension à l'aide de l'API Offscreen.
- Enregistrement audio et capture d'écran explique comment capturer des contenus audio et vidéo à partir d'onglets, de fenêtres ou d'écrans à l'aide des API
chrome.tabCapture
etnavigator.mediaDevices.getDisplayMedia()
. - Nous avons ajouté de nouveaux conseils de débogage au guide Déboguer les extensions.
- Nous avons mis à jour les Consignes concernant les avertissements d'autorisation pour vous aider à comprendre plus facilement comment ils fonctionnent et comment vous pouvez offrir une meilleure expérience utilisateur. Il existe également des moyens pratiques de vérifier les avertissements que l'utilisateur verra.
- Notre équipe et nos contributeurs ont également ajouté de nouveaux exemples d'extensions Manifest V3: WASM dans les extensions, démonstration de l'API de script, livres de recettes de l'API du panneau latéral et exemples d'API DeclarativeNetRequest. Vous pouvez consulter d'autres exemples d'extensions dans notre dépôt d'exemples GitHub.
Bientôt disponible…
- Migrer le code hébergé à distance vers Manifest V3
- Exécuter des tests automatisés pour les extensions Chrome
- Amélioration des conseils sur les requêtes réseau déclaratives.
- Améliorations apportées à la vidéo expliquant le script de contenu.
💡 Le saviez-vous ?
Avant de conclure, nous souhaitons partager quelques outils et insights utiles:
- Chrome a commencé à prendre en charge WebHID. Vous pouvez tester l'API à partir de Chrome 115 (mais sachez qu'elle est encore en cours de développement).
- Puppeteer est désormais compatible avec les 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 des mises à jour d'extensions vous permet de vérifier les avertissements déclenchés lorsque les autorisations changent dans le fichier manifeste. Vous pouvez ainsi tester le processus de mise à jour comme un utilisateur. Cela est important, car certaines autorisations peuvent désactiver l'extension jusqu'à ce que l'utilisateur accorde à nouveau l'accès.
Contactez-nous ! 🙌
Cette année, l'équipe chargée des extensions a eu le plaisir de rencontrer les développeurs de ces extensions en personne lors des événements Google I/O Connect. Nous travaillons à créer de nouveaux espaces pour échanger avec vous, comme des groupes de discussion et des événements de rencontre.
En attendant, n'hésitez pas à poser vos questions sur les groupes Chromium, à participer au WECG et à signaler tout problème de documentation sur le dépôt GitHub developer.chrome.com.
Merci encore d'avoir fait partie de la communauté des développeurs d'extensions.