Nouveautés des extensions Chrome

Consultez régulièrement cette page pour vous tenir informé des modifications apportées aux extensions Chrome, à la documentation sur les extensions, aux règles associées ou à d'autres modifications. D'autres avis sont publiés dans le groupe Google "Extensions". Le calendrier de Chrome indique les dates de disponibilité des versions stable et bêta.

Chrome 126: phases d'évaluation dans les extensions

Publié le

Chrome 126 introduit un nouveau champ manifest.json, trial_tokens, qui vous permet d'activer les phases d'évaluation et les phases d'abandon sur toutes les surfaces d'extension. Pour en savoir plus, consultez ce guide.

Article de blog: Que se passe-t-il dans les extensions Chrome ? - Avril 2024

Publié le

Nous avons publié une nouvelle édition du guide Que se passe-t-il dans les extensions Chrome ?. Il présente les travaux de l'équipe chargée des extensions ces derniers mois. Cela inclut le rollback de version dans le Chrome Web Store, une meilleure compatibilité avec Firebase Auth, ainsi que d'autres lancements et mises à jour d'API.

Rollbacks de version dans le tableau de bord du développeur du Chrome Web Store

Publié le

Effectuez un rollback de votre extension vers la version publiée précédemment sur le Chrome Web Store, sans examen supplémentaire. Pour en savoir plus, consultez cet article de blog et la documentation.

Chrome 124: API Advanced documentScan

Publié le

Une API documentScan avancée est désormais disponible sur ChromeOS pour détecter et récupérer les images à partir des scanners de documents connectés.

Chrome 124: Compatibilité de WebGPU dans les service workers

Publié le

Depuis Chrome 124, les service workers sont compatibles avec WebGPU. Pour un démarrage rapide, consultez l'exemple d'extension WebGPU.

Chrome 123: l'API Events accepte le filtrage par blocs CIDR

Publié le

L'API Events accepte désormais le filtrage par blocs CIDR (Classless Inter-Domain Routing). Un bloc CIDR est un ensemble d'adresses IP qui partagent un préfixe réseau et le même nombre de bits. Auparavant, un développeur devait filtrer plusieurs adresses IP afin de configurer une règle de filtrage pour chacune des adresses de la plage de blocs. Désormais, lorsqu'une extension appelle addListener(), une règle transmise signifie que le gestionnaire d'événements n'est appelé que lorsque la partie hôte d'une URL est une adresse IP et qu'elle est contenue dans l'un des blocs CIDR spécifiés dans un tableau.

Chrome Web Store: modifications apportées aux exigences concernant la longueur des noms d'extensions

Publié le

Sur le Chrome Web Store, la limite universelle de 75 caractères s'applique désormais au champ "name" d'une extension dans le fichier manifeste.json. Auparavant, la limite pour l'anglais était de 45 caractères, et il n'y avait aucune restriction concernant le champ "name" pour les autres paramètres régionaux.

À l'origine, l'objectif était de tenir compte des différences culturelles et linguistiques qui ne pouvaient pas toujours être représentées avec le même nombre de caractères. Malheureusement, un petit nombre de développeurs ont utilisé cette fonctionnalité de manière abusive pour envoyer du spam dans la boutique. Par conséquent, nous introduisons une nouvelle limite universelle, passant à 75 caractères. Cette limite s'applique actuellement à presque toutes les extensions du Play Store. Il est donc probable qu'aucune action ne soit requise de votre part suite à ce changement. Si vous essayez d'importer une extension dont le nom dépasse la limite maximale, l'importation sera bloquée par le store.

Article de blog: Le parcours d'eyeo pour tester la suspension d'un service worker

Publié le

Dans ce post de l'équipe Extension Engine d'eyeo, nous explorons le problème du test des service workers d'extension. Dans Manifest V2, les extensions se trouvaient dans une page en arrière-plan, qui étaient activées tout au long de leur cycle de vie. Manifest V3 utilise plutôt les service workers, qui sont conçus pour préserver les ressources en s'arrêtant lorsqu'ils ne sont pas nécessaires. Cela présente certains défis en matière de test. Cet article explique commenteyeo a relevé ces défis.

Chrome 123: les alarmes se déclenchent désormais quand l'appareil est en veille

Publié le

Les alarmes définies à l'aide de l'API chrome.alarms ne sont plus différées lorsqu'un appareil se met en veille. Lorsque l'appareil se réactive, l'alarme se déclenche une fois, quel que soit le nombre d'alarmes manquées. Par exemple, supposons qu'une alarme est configurée pour se déclencher une fois par heure et que l'appareil qu'elle est allumé soit en veille de 0h55 à 02h05. Seule l'alarme de 2h00 déclenche alors l'événement onAlarm. Il se déclenchera le plus près possible de 2h du matin, et aussitôt qu'un appareil s'activera s'il était en veille.

Grâce à ce changement, Chrome est aligné sur le comportement convenu au sein du groupe communautaire des extensions Web.

Article de blog: Modifications apportées au comportement du cache amélioré avec les ports de message des extensions

Publié le

Le cache amélioré est une optimisation du navigateur qui permet de naviguer instantanément vers les pages précédentes et suivantes. À partir de Chrome 123, lorsqu'une page avec un port d'extension ouvert est stockée dans le cache amélioré, le canal du message est fermé. Aucun message n'est donc envoyé à cette page. Par conséquent, les scripts d'extension doivent écouter les événements de cycle de vie tels que onDisconnect et configurer une nouvelle connexion lorsque la page est restaurée à partir de BFCache.

Pour en savoir plus et obtenir un exemple de code, consultez Modifications apportées au comportement de BFCache avec les ports de message des extensions.

Chrome 122: Garantie de compatibilité avec les API d'extension asynchrones

Publié le

Nous avons fini d'implémenter la compatibilité de Promise avec toutes les méthodes d'API d'extension asynchrones. Cette approche a permis de moderniser les méthodes d'API en améliorant l'ergonomie des opérations asynchrones. Certaines méthodes (par exemple, desktopCapture.chooseDesktopMedia()) n'acceptent que les rappels, car leurs surfaces actuelles ne sont pas compatibles avec les promesses. Pour assurer la rétrocompatibilité, les rappels sont toujours pris en charge. Si vous trouvez une promesse qui échoue, veuillez signaler un bug.

Nouveaux conseils pour la communication en temps réel

Publié le

Nous venons de publier des guides sur les options en temps réel dans les extensions. Les mises à jour en temps réel fournissent un chemin de communication instantané entre vos serveurs et vos installations d'extensions. De nouvelles consignes sont également disponibles concernant l'utilisation de chrome.gcm et de Web Push.

Nouveaux conseils et exemple: tester l'arrêt d'un service worker

Publié le

Nous venons de publier un guide sur la façon de tester l'arrêt d'un service worker avec Puppeteer. L'exemple d'accompagnement le prouve dans Puppeteer et Selenium.

Mise à jour de l'exemple de messagerie native

Publié le

Nous venons de publier un exemple mis à jour pour la messagerie native. Cette API permet à votre extension de démarrer une autre application et de communiquer avec elle. Merci au contributeur GitHub Shubham-Rasal pour son travail.

Chrome 121: nouvelle propriété lastAccessed dans les onglets.Tab

Publié le

Une propriété nommée lastAccessed a été ajoutée à l'objet tabs.Tab. Cette propriété indique la date de la dernière activation de l'onglet. La valeur renvoyée est exprimée en millisecondes depuis l'epoch.

Chrome 121: les clés "en arrière-plan" non compatibles génèrent désormais un avertissement

Publié le

Lors du passage de Manifest V2 à Manifest V3, les enfants de la clé du fichier manifeste "background" ont été modifiés pour permettre le remplacement des scripts d'arrière-plan par les service workers d'extension. Auparavant, l'ajout des clés Manifest V2 "scripts", "page" ou "persistent" à la clé "background" d'une extension Manifest V3 générait une erreur. Un avertissement est alors déclenché si ces clés sont présentes.

Cela permet d'utiliser un seul fichier manifeste dans les extensions de plusieurs navigateurs, conformément à une proposition dans le groupe de la communauté.

Chrome 120: précision minimale des alarmes à 30 secondes

Publié le

À partir de Chrome 120, les extensions Manifest V3 peuvent utiliser l'API chrome.alarms avec des retards ou des périodes de 30 secondes, au lieu de nécessiter des valeurs d'au moins 60 secondes.

Article de blog: Reprise de la transition vers Manifest V3

Publié le

Le calendrier de prise en charge de Manifest V2 a été modifié. Pour en savoir plus, consultez notre article de blog de novembre 2023.

Article de blog: Améliorations apportées au filtrage du contenu dans Manifest V3

Publié le

Découvrez comment nous avons amélioré l'API déclarativeNetRequest dans notre nouvel article de blog.

Article de blog: Nouveautés de Chrome 120 pour les extensions

Publié le

La version bêta de Chrome 120 a été publiée récemment. Pour obtenir un résumé des informations importantes concernant les développeurs d'extensions, consultez notre nouvel article de blog: Nouveautés de Chrome 120 pour les extensions. Cette version marque également une étape majeure en supprimant les deux derniers éléments (userScripts, gestionnaire de fichiers sur ChromeOS) de la liste des failles critiques liées à la plate-forme.

PSA: Modification du traitement des URL des règles de confidentialité dans le tableau de bord du développeur

Publié le

Les règles de confidentialité du tableau de bord du développeur sont désormais ajoutées au niveau des articles. Vous pouvez ainsi définir des règles de confidentialité différentes pour chaque article. Pour en savoir plus sur ce changement, consultez notre message d'intérêt public.

Vidéo: Chat avec Matt Frisbie

Publié le

Nous venons de publier une nouvelle vidéo sur la chaîne YouTube de Chrome for Developers afin d'échanger avec Matt Frisbie, expert en développement et auteur Google. Cliquez ici pour la visionner.

Nouvelles consignes pour tester les extensions

Publié le

Nous venons de publier de nouvelles recommandations sur l'écriture de tests automatisés pour les extensions, y compris sur l'écriture de tests unitaires, ainsi que des conseils généraux et un tutoriel sur les tests de bout en bout.

Article de blog: Que se passe-t-il dans les extensions Chrome ? (octobre 2023)

Publié le

Nous venons de publier la deuxième édition de Que se passe-t-il concernant les extensions Chrome ?. Il présente les travaux de l'équipe d'extension ces derniers mois, y compris la résolution des problèmes de stabilité des service workers et les progrès réalisés pour combler toutes les lacunes de la plate-forme MV3. Nous vous présentons également les prochaines versions d'API intéressantes, telles que l'API Reading List et l'API User Scripts.

Augmentation des limites d'ensemble de règles statiques dans l'API Declarative Net Request

Publié le

Suite aux commentaires reçus sur le groupe de la communauté des extensions Web, nous augmentons considérablement la limite concernant les ensembles de règles statiques activés de 10 à 50. De plus, nous faisons passer le nombre total d'ensembles de règles statiques autorisés de 50 à 100. Cette fonctionnalité est actuellement disponible dans Canary.

Amélioration des conseils concernant le code hébergé à distance

Publié le

Manifest V3 exige que les extensions ne puissent plus utiliser de code hébergé à distance. Cette procédure fait partie de notre guide de migration depuis le début, mais nous avons pensé qu'il serait utile d'améliorer les conseils sur ce problème. Cette page fournit désormais davantage d'informations, décrivant ce qui est encore possible dans Manifest V3 et plus d'informations sur les stratégies de mise à niveau.

Nous avons ajouté un complément à l'article Résoudre les problèmes de non-respect des règles du Chrome Web Store. Une nouvelle section décrit les raisons courantes pour lesquelles les extensions contenant du code hébergé à distance sont refusées.

Chrome 118: isUrlFilterCaseSensitive désormais défini par défaut sur "false"

Publié le

À partir de Chrome 118, la propriété isUrlFilterCaseSensitive de l'API chrome.declarativeNetRequest a été remplacée par false par défaut. Si vous souhaitez conserver l'ancien comportement, vous pouvez définir explicitement isUrlFilterCaseSensitive sur true dans vos règles déclarativeNetRequest.

Cet article suit les discussions du groupe de la communauté des extensions Web. Une modification similaire a déjà été appliquée dans Firefox et Safari.

Documentation sur les cookies et les API de stockage Web

Publié le

Nous avons publié un nouveau guide sur le fonctionnement des cookies et des API de stockage Web dans les extensions Chrome. Il comprend des détails sur les modifications apportées au partitionnement des cookies et du stockage dans Privacy Sandbox, un projet en cours visant à abandonner les cookies tiers grâce à la création d'une série d'API de plates-formes Web, ainsi que des détails sur leur fonctionnement dans les extensions.

Exemples d'extensions désormais inclus dans l'index de recherche

Publié le

Nous avons récemment créé une page qui vous permet de rechercher des exemples d'extensions Chrome. La page de recherche comporte plusieurs options. Un champ de recherche vous permet de rechercher du texte dans des exemples de titres. Vous pouvez limiter la recherche par autorisation ou par API d'extension. Un filtre supplémentaire vous permet de limiter la recherche à des exemples d'API ou fonctionnels (cas d'utilisation).

Cette nouvelle page d'exemples a été créée par un participant à Google Summer of Code, Xuezhou Dai, qui a également ajouté plusieurs nouveaux exemples. Pour en savoir plus sur leur expérience de l'été dernier, consultez cet article sur notre blog.

Comme précédemment, nos exemples de code sont toujours disponibles sur GitHub pour le clonage ou la duplication.

Chrome 118: Modifications apportées à l'ouverture du fichier: URL des schémas

Publié le

À partir de Chrome 118, le paramètre "Autoriser l'accès aux URL de fichiers" devra être activé sur la page chrome://extensions pour ouvrir les URL de schémas file:// à l'aide des API Tabs ou Windows. Vous pouvez vérifier cet accès de manière programmatique en appelant chrome.extension.isAllowedFileSchemeAccess(). Firefox limite déjà les URL de fichiers et Safari prend en charge la modification. Pour en savoir plus, consultez le post publié dans le groupe Google "Extensions".

Chrome 117: protections des URL étendues pour la navigation dans les API des extensions

Publié le

Auparavant, la navigation déclenchée à partir des appels d'API des extensions pour tabs.update(), tabs.create() et windows.create() envoyait une erreur pour certaines URL chrome://. Par ailleurs, l'appel de tabs.update() avec une URL JavaScript était interdit. Depuis la version 117, ces protections des URL JavaScript ont été étendues à la méthode tabs.create(). Un certain nombre d'URL chrome:// supplémentaires ont été ajoutées à la liste des URL interdites, qui s'appliquent à toutes les méthodes mentionnées précédemment.

Amélioration des conseils pour l'API declarativeNetRequest

Publié le

L'API chrome.declarativeNetRequest bloque ou modifie les requêtes réseau en spécifiant des règles déclaratives. Cela permet aux extensions de modifier les requêtes réseau sans les intercepter ni consulter leur contenu, ce qui renforce la confidentialité des utilisateurs. Elle est également délicate à utiliser. Dans cette optique, nous avons réécrit les consignes de façon à clarifier la façon d'implémenter les ensembles de règles déclaratives. Lisez la nouvelle section en cliquant sur le lien ci-dessus.

Utiliser votre compte Google Analytics avec le Chrome Web Store

Publié le

Le Chrome Web Store offre une intégration avec Google Analytics, ce qui vous permet de consulter les données analytiques de votre fiche Chrome Web Store en plus de celles proposées dans le tableau de bord du développeur. Pour en savoir plus, consultez Utiliser votre compte Google Analytics avec le Chrome Web Store.

Chrome 115: Les outils de développement gèrent les scripts de contenu par défaut

Publié le

Les scripts de contenu injectés figurent désormais par défaut dans la liste des éléments à ignorer dans les outils de développement. Cela n'affecte pas les points d'arrêt, mais cela signifie que les scripts de contenu seront ignorés lors du débogage et que les exceptions de ces scripts seront ignorées. Lorsqu'un script de contenu est ouvert dans l'onglet Sources, une bannière vous avertit s'il est activé et vous propose une option pour supprimer votre script de contenu de la liste des éléments à ignorer. Pour désactiver ce comportement, ouvrez les outils de développement, accédez à Paramètres, puis à Liste des éléments à ignorer. Pour en savoir plus, consultez Nouveautés des outils de développement.

Chrome 116 bêta: bien plus que ce que nous pouvons faire

Publié le

Chrome 116 est une version majeure pour les extensions. Vous pouvez désormais ouvrir les panneaux latéraux de manière programmatique. Une nouvelle méthode vous permet de savoir s'il existe un document hors écran actif. Les service workers ont bénéficié de plusieurs améliorations. Dans 116, suffisamment d'améliorations ont été apportées pour que nous ayons publié un article de blog décrivant ces dernières. Chrome 116 est en version bêta depuis le 19 juillet.

Article de blog: Que se passe-t-il concernant les extensions Chrome ?

Publié le

Nous venons de publier un aperçu des modifications et améliorations apportées aux extensions cette année. L'article présente les nouvelles fonctionnalités majeures de l'année, y compris l'API Side Panel, les améliorations apportées aux service workers et les documents hors écran. Vous aurez également un aperçu de ce sur quoi nous travaillons pour ce trimestre. L'article en liste beaucoup plus, avec des liens vers tous.

Nouveaux conseils et exemple: découvrez comment utiliser Google Analytics 4 dans votre extension Chrome

Publié le

Nous avons publié de nouveaux conseils et exemples concernant Google Analytics et la géolocalisation:

Chrome 115: spécifier plusieurs raisons dans chrome.offscreen.createDocument()

Publié le

Vous pouvez désormais spécifier plusieurs énumérations reason lorsque vous appelez chrome.offscreen.createDocument(). Utilisez cette option lorsqu'un document hors écran doit servir à différentes fins. Le navigateur utilise les motifs fournis pour déterminer la durée de vie du document hors écran.

Nouvel outil: outil de test des mises à jour des extensions

Publié le

Nous venons de publier l'outil de test des mises à jour des extensions, un serveur de mise à jour des extensions locales qui permet de tester les mises à jour des extensions Chrome pendant le développement local, y compris pour les autorisations accordées. L'outil affiche le flux de mise à jour de l'utilisateur, y compris en laissant une extension désactivée jusqu'à ce qu'un utilisateur accorde les nouvelles autorisations demandées. Cet outil est particulièrement utile pour simuler les modifications d'autorisation demandées lors de la mise à jour d'une extension de Manifest V2 vers Manifest V3.

Chrome 114: nouvelle API Side Panel

Publié le

Présentation de la nouvelle API Side Panel, une surface associée qui permet aux utilisateurs d'accéder à des outils en fonction du contenu qu'ils consultent. Pour en savoir plus, consultez la documentation de référence de l'API du panneau latéral. Nous avons également ajouté de nombreux exemples de panneaux latéraux à notre dépôt d'exemples GitHub. Nous partageons également plus d'informations sur les panneaux latéraux dans le nouvel article de blog intitulé Designing a Superior User Experience with the New Side Panel API. Nous avons également examiné nos consignes relatives à la qualité et nos bonnes pratiques pour vous aider à créer des extensions de haute qualité pour les panneaux latéraux.

Vos commentaires sont importants pour créer cette API. Veuillez partager vos idées et vos demandes de fonctionnalités dans chromium-groups. Tenez-vous informé des prochaines améliorations que nous continuons d'apporter à l'API Side Panel.

Nouveaux exemples: WASM dans les extensions

Publié le

Deux nouveaux exemples montrent comment utiliser WASM dans une extension:

Un grand merci au contributeur GitHub, @daidr, pour ces exemples.

Mise à jour des consignes sur la migration de Manifest V3

Publié le

Nous avons mis à jour la section Problèmes connus de nos conseils sur la migration dans Manifest V3 en y ajoutant une liste actualisée des lacunes des plates-formes d'extensions que nous prévoyons de combler avant d'annoncer un nouveau calendrier d'abandon de Manifest V2.

Enregistrer des contenus audio et vidéo avec Manifest V3

Publié le

Nous venons de publier un nouvel article intitulé Enregistrement audio et capture d'écran, qui explique comment enregistrer du contenu audio ou vidéo depuis un onglet, une fenêtre ou un écran dans Manifest V3. Cet article décrit plusieurs approches d'enregistrement impliquant l'API chrome.tabCapture et la fonction getDisplayMedia().

Chrome 114: augmentation du quota storage.local

Publié le

Nous avons augmenté le quota pour la propriété storage.local à environ 10 Mo. Cela a été accepté dans le groupe de la communauté des extensions Web. Cela permet de aligner storage.local et storage.session, qui a été modifié dans Chrome 112.

Nouveau tutoriel et aide pour les workers d'extensions

Publié le

Les service workers font partie intégrante des extensions Chrome. Nous venons de publier un tutoriel expliquant les bases de l'enregistrement, du débogage et de l'interaction avec les service workers. Nous avons également ajouté un nouveau Guide du service worker, qui explique plus en détail les concepts importants. Nous développerons cette section au cours des prochains mois.

Autres conseils de dépannage pour les cas de non-respect du règlement sur le Web Store

Publié le

Pour faciliter la publication sur le Chrome Web Store, nous avons ajouté de nouvelles consignes dans deux domaines. Les conseils concernant les fonctionnalités minimales visent à offrir aux utilisateurs des avantages et à enrichir leur expérience de navigation. Les conseils concernant les annonces affiliées consistent à informer les utilisateurs que les extensions utilisent des liens ou des codes d'affiliation pour la monétisation, et à leur donner un certain contrôle en leur demandant d'intervenir avant leur intégration.

Nouvelles instructions pour le convertisseur Extension Manifest

Publié le

Nous avons réécrit le fichier README de l'outil Extension Manifest Converter afin que vous puissiez voir plus facilement ce que vous devez faire après avoir exécuté l'outil. Le convertisseur aide à migrer les extensions créées dans Manifest V2 vers Manifest V3. Le nouveau fichier README décrit les fonctionnalités de l'outil en utilisant des mots qui correspondent étroitement à ceux de la liste de contrôle du guide de migration. Le convertisseur ne fait pas tout, mais il élimine de nombreuses tâches qui ne nécessitent pas de jugement humain.

Chrome 113: Nouvelles raisons d'afficher des documents hors écran

Publié le

Nous avons ajouté deux types de motifs à l'API Offscreen Documents. Utilisez LOCAL_STORAGE pour accéder à l'API localStorage de la plate-forme Web. Utilisez WORKER lorsque vous créez des workers Web.

Google Analytics 4 désormais dans le tableau de bord du développeur

Publié le

Le tableau de bord du développeur Chrome Web Store est désormais compatible avec Google Analytics 4 (GA4). Nous avons simplifié la configuration de Google Analytics et simplifié la gestion des accès pour les éditeurs de groupe. Si vous avez déjà utilisé Google Universal Analytics pour suivre l'activité de votre fiche Play Store, vous devez prendre les mesures nécessaires d'ici le 1er juillet 2023 pour continuer à recevoir des données la concernant. Pour en savoir plus, consultez le post sur le groupe Google des extensions Chromium.

L'API File Handling entre ChromeOS

Publié le

L'API File Handler est disponible pour des tests sur ChromeOS dans Canary pour les versions 112 et 113. Il permet aux extensions sur ChromeOS d'ouvrir des fichiers avec les types MIME et les extensions spécifiés. Pour implémenter la gestion des fichiers, ajoutez un ensemble de règles au manifest.json. Cette fonctionnalité fonctionne de la même manière que pour les progressive web apps. Pour en savoir plus, consultez l'article ailleurs sur ce site.

Pour activer la gestion de fichiers:

  • À partir de la version 112, lancer Chrome à l'aide de l'indicateur --enable-features=ExtensionWebFileHandlers, à partir de la version 112
  • À partir de 113, collez os://flags/#extension-web-file-handlers dans l'omnibox Chrome et sélectionnez "Activé" dans le menu déroulant.

Nous espérons lancer cette fonctionnalité dans Chrome 115 fin juin. Surveillez cet espace pour vous tenir informé.

Nouveaux exemples: déclarations dynamiques et injection programmatique

Publié le

Nous avons créé un exemple pour l'API chrome.scripting. Elle illustre les déclarations dynamiques, où un script de contenu est enregistré au moment de l'exécution, et l'injection programmatique, où un script est exécuté dans un onglet déjà ouvert.

Nouveaux exemples: cas d'utilisation des requêtes nettes déclaratives

Publié le

Trois nouveaux exemples illustrant l'API déclarative Net Request sont disponibles. Chacun illustre l'implémentation d'un seul cas d'utilisation. La première montre comment bloquer les cookies. Les deux autres exemples illustrent les URL de blocage et de redirection.

Chrome 112: augmentation du quota storage.session

Publié le

À partir de Chrome 112, le quota de la propriété storage.session a été augmenté à environ 10 Mo. Accepté par le groupe de la communauté des extensions Web: https://github.com/w3c/webextensions/issues/350

Chrome 109: Documents hors écran

Publié le

Les documents hors écran sont désormais disponibles dans les extensions Manifest V3. Ils facilitent la transition des pages en arrière-plan vers les service workers d'extension en prenant en charge les fonctionnalités et les API liées au DOM. Pour en savoir plus, consultez cet article de blog.

Chrome 110: extension activée

Publié le

La méthode chrome.action.isEnabled() vérifie par programmation si une extension a été activée pour un onglet spécifique. Cela vous évite de conserver l'état activé de vos onglets. Cette nouvelle méthode utilise un ID de tabulation et une référence à un rappel et renvoie une valeur booléenne. Elle a une limite: les onglets créés à l'aide de chrome.declarativeContent renvoient toujours la valeur "false".

De nouvelles méthodes ont été récemment ajoutées à l'espace de noms chrome.action pour contrôler l'apparence des badges d'extension. Pour en savoir plus, consultez Définir les couleurs du badge.)

Chrome 110: modification du délai d'inactivité du service worker

Publié le

Auparavant, un service worker d'extension s'éteignait fréquemment au bout de cinq minutes. Nous avons modifié ce comportement pour qu'il ressemble davantage à la durée de vie des service workers sur le Web. Un service worker d'extension est arrêté après 30 secondes d'inactivité ou si le traitement d'une activité unique prend plus de cinq minutes. Pour en savoir plus, consultez Durée de vie plus longue des service workers d'extension.

Post: Mise en veille de l'abandon de Manifest V2

Publié le

Le calendrier d'abandon de Manifest V2 est en cours d'examen et les tests prévus début 2023 sont reportés. Pour en savoir plus, consultez la mise à jour dans le groupe Google "chromium-extensions".

Chrome 110: Définir les couleurs du badge

Publié le

L'espace de noms chrome.action propose deux nouvelles méthodes pour vous permettre de mieux contrôler les badges des extensions d'apparence. Les méthodes setBadgeTextColor() et getBadgeTextColor() permettent à une extension de modifier et d'interroger la couleur du texte du badge de son icône de barre d'outils. Lorsqu'elles sont utilisées avec setBadgeBackgroundColor et getBadgeBackgroundColor, ces nouvelles méthodes vous permettent d'appliquer la cohérence de la conception et de la marque.

Article de blog: Plus d'informations sur la transition vers Manifest V3

Publié le

Nous avons clarifié le calendrier d'abandon de Manifest V2. Le calendrier de prise en charge de Manifest V2 a également été modifié pour refléter ces informations.

Mise à jour de Docs: problèmes connus lors de la migration vers Manifest V3

Publié le

Nous avons dressé la liste des principales fonctionnalités en cours de développement et des bugs ouverts. Sur cette page, notre objectif est d'aider les développeurs à mieux comprendre l'état actuel de la plate-forme et les fonctionnalités qu'ils peuvent cibler pour se préparer à l'avenir.

Chrome Web Store : importation de l'image "grande vignette de promotion" supprimée

Publié le

Le Chrome Web Store a supprimé l'interface d'importation contenant la grande vignette de promotion dans l'onglet "Fiche Play Store" de l'article dans le tableau de bord du développeur. Ce changement n'affecte pas l'expérience utilisateur, car ces images n'ont pas été utilisées dans l'interface utilisateur grand public. Pour en savoir plus, consultez ce post sur chromium-extensions.

Chrome 106: Autoriser les pages sur des URL file:// à accéder aux ressources accessibles sur le Web

Publié le

D'après crbug.com/1219825#c11, les origines opaques, telles que les iFrames en bac à sable et l'importation dynamique, devraient également pouvoir accéder aux ressources accessibles sur le Web.

Chrome 106: correction d'un bug autorisant des arguments finaux incorrects sur certaines fonctions d'API asynchrones

Publié le

Auparavant, Manifest V3 appelait des API asynchrones fournissait un argument final non valide et Chrome n'affichait aucune erreur. Avec ce correctif, Chrome affiche désormais une erreur et signale qu'aucune signature ne correspond. Nous encourageons les développeurs à rechercher d'éventuelles erreurs dans leurs extensions dans Canary, au cas où ils utiliseraient accidentellement une signature incorrecte pour un appel d'API qui serait rompu par cette correction de bug.

Article de blog: Refonte de l'outil d'analyse du Chrome Web Store

Publié le

Le Chrome Web Store propose une nouvelle expérience d'analyse des articles dans le tableau de bord du développeur du Chrome Web Store. Le nouveau tableau de bord est plus facile à comprendre d'un simple coup d'œil et regroupe les informations les plus utiles dès le départ. Pour en savoir plus, lisez l'article de blog.

Chrome 105: promesses pour l'API Identity

Publié le

Les fonctions de l'API Identity prennent désormais en charge les appels basés sur des promesses. Cela s'accompagne d'une légère modification de la surface de identity.getAuthToken(), où le retour asynchrone défini sur un appel basé sur une promesse aura "token" et "grantedScopes" comme paramètres sur un seul objet (par opposition à la version de rappel qui les reçoit en tant qu'arguments distincts du rappel).

Chrome 104: nouvelles API de favicons pour Manifest V3

Publié le

Les extensions Manifest V3 peuvent désormais accéder aux favicons à l'aide d'un nouveau format d'URL: chrome-extension://<id>/_favicon/, où correspond à l'ID de votre extension. Cela remplace l'API chrome://favicons de la plate-forme Manifest V2. Pour en savoir plus, consultez la documentation sur l'API Favicon.

Mise à jour de la documentation: divulgation pour les professionnels/non-professionnels du développeur

Publié le

Ajout de l'identification du développeur professionnel ou non-professionnel pour indiquer aux développeurs qu'ils doivent déclarer avec précision leur statut de professionnel ou de non-professionnel.

Chrome 103: Wasm dans Manifest V3 nécessite Wasm-unsafe-eval

Publié le

Chrome n'accorde plus les extensions script-src: wasm-unsafe-eval par défaut. Les extensions qui utilisent WebAssembly doivent désormais ajouter explicitement cette directive et cette valeur à extension_pages dans leurs déclarations content_security_policy.

Chrome 103: La modification des raccourcis MV3 prend effet immédiatement

Publié le

Lorsque vous modifiez le raccourci clavier d'une extension Manifest V3 sur chrome://extensions/shortcuts, les mises à jour sont désormais appliquées immédiatement. Auparavant, l'extension devait être actualisée pour que la modification soit prise en compte.

Chrome 102: scripts de contenu dynamique dans le monde principal

Publié le

Les scripts de contenu enregistrés dynamiquement peuvent désormais spécifier le monde dans lequel les éléments seront injectés. Pour en savoir plus, consultez scripting.registerContentScripts().

Chrome 102: Nouveau champ de fichier manifeste "optional_host_permissions"

Publié le

Les extensions Manifest V3 peuvent désormais spécifier la clé optional_host_permissions dans le fichier manifest.json. Cela permet aux extensions Manifest V3 de déclarer des formats de correspondance facultatifs pour les hôtes, tout comme les extensions Manifest V2 pourraient utiliser la clé optional_permissions.

Chrome 102: propriété injectImmediately dans scripting.executeScript()

Publié le

chrome.scripting.executeScript() accepte désormais une propriété injectImmediately facultative pour son argument injection. S'il est présent et défini sur "true", le script est injecté dans la cible dès que possible, au lieu d'attendre document_idle. Notez que cela ne garantit pas que le script sera injecté avant le chargement de la page, car celle-ci continue de se charger pendant l'appel d'API.

Chrome 102: prise en charge de l'API omnibox dans Manifest V3

Publié le

L'API omnibox peut désormais être utilisée dans les extensions basées sur un service worker. Auparavant, certaines méthodes de cette API provoquaient des appels en raison de dépendances internes aux fonctionnalités DOM.

Chrome 102: Wam-unsafe-eval autorisé dans la CSP Manifest V3

Publié le

Les extensions Manifest V3 peuvent désormais inclure wasm-unsafe-eval dans leurs déclarations content_security_policy. Ce changement permet aux extensions Manifest V3 d'utiliser WebAssembly.

Chrome 102: nouvelle API storage.session

Publié le

Les extensions Manifest V3 peuvent désormais utiliser le stockage en mémoire storage.session .

Mise à jour de Docs: découverte d'articles sur le Chrome Web Store

Publié le

Découverte sur le Chrome Web Store explique comment les utilisateurs trouvent les éléments sur le Chrome Web Store et comment nos éditeurs sélectionnent les éléments à mettre en avant.

Chrome 101: amélioration des conditions de domaine déclarativeNetRequest

Publié le

Les conditions de la règle declarativeNetRequest ont été mises à jour pour permettre aux extensions de mieux cibler les requêtes en fonction des domaines "request" et "initiator" de la requête. Les propriétés de condition pertinentes sont initiatorDomains, excludedInitiatorDomains, requestDomains et excludedRequestDomains. Consultez également ce thread chromium-extensions.

Chrome 100: résolution du problème lié à scripting.executeScript() sur les nouveaux onglets créés

Correction d'un problème de longue date qui empêchait l'appel de scripting.executeScript() sur un nouvel onglet ou une nouvelle fenêtre.

Chrome 100: le port de messagerie native préserve l'activité d'un service worker

Publié le

La connexion à un hôte de messagerie native à l'aide de chrome.runtime.connectNative() dans le service worker d'une extension doit maintenir celui-ci actif tant que le port est ouvert.

Chrome 100: omnibox.setDefaultSuggestion() prend en charge les promesses et les rappels

Publié le

La méthode omnibox.setDefaultSuggestion() renvoie désormais une promesse ou accepte un rappel pour permettre aux développeurs de déterminer quand la suggestion a été correctement définie.

Chrome 100: compatibilité de i18n.getMessage() avec les service workers d'extension

Publié le

L'API chrome.i18n.getMessage() est désormais compatible avec les contextes de service worker des extensions.

Chrome 99: match_origin_as_fallback dans Canary

Publié le

Les scripts de contenu peuvent désormais spécifier la clé match_origin_as_fallback à injecter dans les frames liés à un frame correspondant, y compris les frames avec les URL about:, data:, blob: et filesystem:. Pour en savoir plus, consultez la documentation sur les scripts de contenu.

Chrome 99 : compatibilité des services d'extension pour les schémas de fichiers dans Canary

Publié le

Les extensions Manifest V2 et Manifest V3 basées sur un service worker peuvent désormais utiliser l'API Fetch pour demander des URL de schéma file:. L'accès aux URL de schéma file: nécessite toujours que l'utilisateur active l'option "Autoriser l'accès aux URL de fichier" pour l'extension sur la page chrome://extensions.

Chrome 99: promettre la prise en charge des API de messagerie dans Canary

Publié le

La compatibilité avec Promise a été ajoutée à tabs.sendMessage, runtime.sendMessage et runtime.sendNativeMessage pour les extensions conçues pour Manifest V3.

Mise à jour de Docs: documentation sur les avis sur le Chrome Web Store

Publié le

Ajout d'une page de référence offrant un aperçu du processus d'examen du Chrome Web Store et expliquant comment l'application du Règlement du programme pour les développeurs est gérée.

Chrome 98: scripting.executeScript() et scripting.insertCSS() acceptent plusieurs fichiers

Publié le

Les méthodes executeScript() et insertCSS() de l'API de script acceptent désormais plusieurs fichiers. Auparavant, ces méthodes nécessitaient un tableau contenant une seule entrée de fichier.

Mise à jour Google Docs: consultez les mises à jour pour résoudre les problèmes de non-respect des règles

Publié le

La page Résoudre les problèmes de non-respect des règles du Chrome Web Store a été mise à jour pour fournir aux développeurs des conseils plus détaillés sur les motifs de refus les plus courants.

Chrome 96: prise en charge étendue des promesses à 27 API supplémentaires

Publié le

Cette version contient beaucoup plus de mises à jour prometteuses que toutes les versions précédentes. Les mises à jour incluent des API d'extensions générales et spécifiques à ChromeOS. Développez les sections suivantes pour en savoir plus.

API Extensions

Un certain nombre d'API sont désormais compatibles avec les promesses dans Manifest V3.

De plus, les API qui utilisent le prototype ChromeSetting sont désormais compatibles avec les promesses. Les API suivantes sont concernées par ce changement.

API ChromeOS

Chrome 96: scripts de contenu dynamique

Publié le

L'API chrome.scripting prend désormais en charge l'enregistrement, la mise à jour, l'annulation de l'enregistrement et l'obtention d'une liste des scripts de contenu au moment de l'exécution. Auparavant, les scripts de contenu ne pouvaient être déclarés de manière statique que dans le fichier manifeste.json d'une extension ou injectés par programmation au moment de l'exécution avec chrome.scripting.executeScript().

Mise à jour Docs: calendrier de prise en charge de Manifest V2

Publié le

Le calendrier de transition de Manifest V2 vers la version 3 a été annoncé dans cet article de blog et une page détaillée du calendrier a été publiée.

Chrome 96: autorisation declarativeNetRequestWithHostAccess

Publié le

La nouvelle autorisation declarativeNetRequestWithHostAccess permet aux extensions d'utiliser l'API chrome.declarativeNetRequest sur les sites pour lesquels elles disposent d'autorisations d'hôte. Cela permet également aux extensions Manifest V2 existantes qui utilisent webRequest, webRequestBlocking et l'autorisation d'hôte spécifique au site de migrer vers l'API chrome.declarativeNetRequest sans que l'utilisateur ait à approuver de nouvelles autorisations.

Chrome 95: injection de scripts directement dans les pages

Publié le

La méthode executeScript() de l'API chrome.scripting peut désormais injecter des scripts directement dans l'univers principal d'une page. Auparavant, les extensions ne pouvaient s'injecter directement que dans le monde isolé de l'extension. Pour en savoir plus sur les mondes isolés, consultez la documentation sur les scripts de contenu.

Chrome 95: promesse de prise en charge de l'API Storage

Publié le

Les méthodes de la version Manifest V3 de l'API chrome.storage renvoient désormais des promesses.

Mise à jour du règlement: application forcée de la validation en deux étapes

Publié le

L'article de blog sur la mise à jour du règlement publié le 29 juin 2021 a été mis à jour pour corriger le calendrier de déploiement de la validation en deux étapes.

Chrome 94: modifications de l'ensemble de règles statiques de la requête nette déclarative

Publié le

Le chrome.declarativeNetRequest permet désormais de spécifier jusqu'à 50 ensembles de règles statiques (MAX_NUMBER_OF_STATIC_RULESETS) et d'activer jusqu'à 10 ensembles de règles (MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) à la fois.

Chrome 93: prise en charge de l'isolation multi-origine

Publié le

Les extensions Manifest V2 et Manifest V3 peuvent désormais activer l'isolation multi-origine. Cette fonctionnalité limite les ressources multi-origines qui peuvent charger les pages d'une extension et permet d'utiliser des fonctionnalités de bas niveau de la plate-forme Web, telles que SharedArrayBuffer. À partir de Chrome 95, vous devrez activer cette fonctionnalité.

Mise à jour du règlement: règlement du programme pour les développeurs mis à jour

Publié le

Le Règlement du programme pour les développeurs du Chrome Web Store a été mis à jour pour clarifier les règles concernant les tactiques d'installation trompeuses, le spam et les contenus répétitifs. Cette mise à jour inclut également une nouvelle exigence de validation en deux étapes pour la publication sur le Chrome Web Store. Pour en savoir plus, lisez l'article de blog.

Article de blog: actions des extensions dans Manifest V3

Publié le

Les extensions Chrome comportaient les API chrome.browserAction et chrome.pageActions pendant des années, mais Manifest V3 les a remplacées par une API chrome.actions générique. Cet article explore l'historique de ces API et les modifications apportées à Manifest V3. Lire l'article

Article de blog: présentation de chrome.scripting

Publié le

L'API chrome.scripting est une nouvelle API Manifest V3 axée sur les scripts. Dans cet article, nous abordons les motivations de ce changement et examinons de plus près ses nouvelles fonctionnalités. Lire l'article

Chrome 92: compatibilité des services workers du module

Publié le

Chrome est désormais compatible avec les modules JavaScript dans les service workers. Pour spécifier un module dans votre fichier manifeste:

"background": {
  "service_worker": "script.js",
  "type": "module"
}

Cette opération charge le script de nœud de calcul en tant que module ES, ce qui vous permet d'utiliser le mot clé import dans le script du nœud de calcul pour importer d'autres modules.

Chrome 91: chrome.action.getUserSettings()

Publié le

La nouvelle méthode chrome.action.getUserSettings() permet aux extensions de déterminer si l'utilisateur l'a épinglée dans la barre d'outils principale.

Chrome 90: chrome.scripting.removeCSS()

Publié le

La nouvelle méthode chrome.scripting.removeCSS() permet aux extensions de supprimer le code CSS précédemment inséré via chrome.scripting.insertCSS(). Elle remplace chrome.tabs.removeCSS().

Chrome 90: renvoi des promesses de scripting.executeScript()

Publié le

chrome.scripting.executeScript() accepte désormais les promesses renvoyées. Si la valeur résultant de l'exécution du script est une promesse, Chrome attend que la promesse se stabilise et renvoie la valeur obtenue.

Chrome 90: les résultats de chrome.scripting.executeScript() incluent frameId

Publié le

Les résultats renvoyés par chrome.scripting.executeScript() incluent désormais le frameId. La propriété frameId indique le frame d'où provient le résultat, ce qui permet aux extensions d'associer facilement les résultats aux frames individuels lors de l'injection dans plusieurs frames.

Chrome 89: nouvelle API pour gérer les groupes d'onglets

Publié le

La nouvelle API chrome.tabGroups et les nouvelles fonctionnalités de chrome.tabs permettent aux extensions de lire et de manipuler les groupes d'onglets. Manifest V3 requis.

Chrome 89: autorisations personnalisables pour les ressources accessibles sur le Web

Publié le

Les définitions des ressources accessibles sur le Web dans Manifest V3 ont été modifiées pour permettre aux extensions de restreindre l'accès aux ressources en fonction de l'origine ou de l'ID d'extension du demandeur.

Article de blog: Conversion Manifest Converter

Publié le

L'équipe des extensions Chrome a mis à disposition en Open Source "Extension Manifest Converter", un outil Python qui automatise certains aspects mécaniques de la conversion des extensions vers Manifest V3. Consultez l'annonce sur le blog et téléchargez-la sur GitHub.

Chrome 88: Manifest V3 en disponibilité générale

Publié le

Manifest V3 est une mise à jour majeure de la plate-forme des extensions. Consultez la présentation de Manifest V3 pour obtenir un résumé des fonctionnalités nouvelles et modifiées. Les extensions peuvent continuer à utiliser Manifest V2 pour le moment, mais cette fonctionnalité sera supprimée prochainement. Nous vous recommandons vivement d'utiliser Manifest V3 pour toutes les nouvelles extensions et de commencer à migrer les extensions existantes vers Manifest V3 dès que possible.