Récemment, un de mes clients a rejeté mon extension car il a été "dépassé", ce qui m'a incité à creuser dans le manifeste V3 des extensions de chrome. Il y a un manque d'informations sur Manifest V3 en ligne, et c'est difficile à comprendre.
Après un travail acharné, j'ai finalement terminé la tâche, mais je ne voulais pas que mes résultats de recherche soient gaspillés, alors j'ai décidé de partager mon expérience d'apprentissage.
manifeste v3 est l'API de Google pour Chrome, le successeur de l'API actuel manifeste V2, qui gère comment les extensions de chrome interagissent avec le navigateur. Manifest V3 a apporté des modifications importantes aux règles de l'extension, dont certaines deviendront les nouveaux piliers du V2 que nous avons l'habitude d'utiliser.
La migration du V3 manifeste peut être résumé comme suit:
L'un des principaux objectifs de manifeste V3 est d'améliorer la sécurité des utilisateurs et d'améliorer l'expérience globale du navigateur. Auparavant, de nombreuses extensions de navigateur dépendaient du code basé sur le cloud, ce qui signifiait qu'il était difficile d'évaluer si l'extension était risquée. Manifest V3 est conçu pour résoudre ce problème en obligeant l'extension à inclure tout le code qui sera exécuté, permettant à Google de les numériser et de détecter les risques potentiels. Il oblige également l'extension à demander l'autorisation de Google pour les modifications qu'il peut implémenter sur le navigateur.
Il est important de suivre la migration de Google vers la manifeste V3 car il introduit de nouvelles règles pour les extensions conçues pour améliorer la sécurité des utilisateurs et l'expérience globale du navigateur, et les extensions qui ne respectent pas ces règles seront éventuellement supprimées du magasin Web Chrome.
En bref, si vous ne migrez pas le plus rapidement possible, tous vos efforts pour créer des extensions qui utilisent le V2 manifeste peuvent être gaspillés.
Il existe de nombreuses différences entre les deux, et bien que je vous recommande fortement de lire le guide "Migrate to Manifest V3" de Chrome, voici un bref résumé des points clés:
Dans une liste d'extensions de chrome qui changent simplement l'arrière-plan d'une page Web, cela pourrait ressembler à ceci:
<code>// Manifest V2 { "manifest_version": 2, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "scripts": ["background.js"], "persistent": true }, "browser_action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "optional_permissions": ["<all_urls>"] }</all_urls></code>
<code>// Manifest V3 { "manifest_version": 3, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "host_permissions": [ "<all_urls>" ] }</all_urls></code>
Si vous trouvez que certaines des balises ci-dessus semblent étranges, continuez à lire pour savoir ce que vous devez savoir.
J'ai résumé la migration vers le manifeste V3 en quatre domaines clés. Bien sûr, bien qu'il existe de nombreuses nouvelles fonctionnalités dans le nouveau manifeste V3 qui doivent être mises en œuvre à partir de l'ancien manifeste V2, apporter des modifications dans ces quatre domaines préparera votre extension chromée pour la migration finale.
Les quatre domaines clés sont:
À travers ces quatre aspects, les éléments de base de votre liste seront prêts à migrer vers le manifeste v3. Jetons un coup d'œil à chaque aspect clé en détail et apprenons à travailler pour protéger votre extension chromée de cette migration.
La structure de base de la mise à jour du manifeste est la première étape pour passer à manifeste v3. Le changement le plus important que vous devez apporter est de modifier la valeur de l'élément "manifeste_version" en 3, ce qui signifie que vous utilisez l'ensemble de fonctionnalités V3 manifeste.
L'une des principales différences entre manifeste V2 et V3 est le remplacement de la page backend par un seul employé de service d'extension dans Manifest V3. Vous devez enregistrer un travailleur de service dans le champ "Background", utiliser la touche "Service_Worker" et spécifier un seul fichier JavaScript. Même si Manifest V3 ne prend pas en charge plusieurs scripts d'arrière-plan, vous pouvez choisir de déclarer le travailleur du service en tant que module ES en spécifiant "Type": "Module", qui vous permet d'importer plus de code.
Dans Manifest V3, les attributs "Browser_Action" et "Page_Action" sont fusionnés en un seul attribut "Action". Vous devez remplacer ces propriétés par "action" dans le manifeste. De même, les API Chrome.browseraction et Chrome.PageAction dans Manifest V3 sont fusionnées en une seule API «Action», vers laquelle vous devez migrer.
<code>// Manifest V2 "background": { "scripts": ["background.js"], "persistent": false }, "browser_action": { "default_popup": "popup.html" },</code>
<code>// Manifest V3 "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }</code>
En général, la structure de base du manifeste de mise à jour est une étape clé de la migration vers le manifeste V3, car elle vous permet de profiter de nouvelles fonctionnalités et modifications introduites dans cette version de l'API.
La deuxième étape de la migration vers la manifeste V3 consiste à modifier les autorisations de l'hôte. Dans Manifest V2, vous spécifiez les autorisations hôtes dans le champ "Autorisations" du fichier manifeste. Dans Manifest V3, les autorisations hôtes sont un élément distinct que vous devez spécifier dans le champ "host_permissions" du fichier manifeste.
Ce qui suit est un exemple de la façon de modifier les autorisations hôtes:
<code>// Manifest V2 { "manifest_version": 2, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "scripts": ["background.js"], "persistent": true }, "browser_action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "optional_permissions": ["<all_urls>"] }</all_urls></code>
<code>// Manifest V3 { "manifest_version": 3, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "host_permissions": [ "<all_urls>" ] }</all_urls></code>
Afin de mettre à jour le CSP de l'extension manifeste V2 pour être cohérent avec Manifest V3, vous devez apporter quelques modifications au fichier manifeste. Dans Manifest V2, CSP est spécifié en tant que chaîne dans le champ "Content_Security_Policy" du manifeste.
Dans Manifest V3, CSP est maintenant un objet dont les différents membres représentent un contexte CSP alternatif. Au lieu d'utiliser maintenant un seul champ "Content_Security_Policy", vous devez spécifier des champs séparés pour "Content_Security_Policy.Extension_Pages" et "content_security_policy.sandbox" en fonction du type de page d'extension que vous utilisez.
Si vous avez un domaine externe dans votre CSP actuel, vous devez également supprimer toutes les références des directives "Script-Src", "Worker-Src", "Object-Src" et "Style-Src". La fabrication de ces mises à jour CSP est importante pour assurer la sécurité et la stabilité de l'extension dans Manifest V3.
<code>// Manifest V2 "background": { "scripts": ["background.js"], "persistent": false }, "browser_action": { "default_popup": "popup.html" },</code>
<code>// Manifest V3 "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }</code>
La dernière étape de la migration vers la manifeste V3 consiste à modifier le traitement de la demande du réseau. Dans Manifest V2, vous utiliserez l'API Chrome.WebRequest pour modifier les demandes de réseau. Cependant, cette API est remplacée par l'API DecarativeNeTrequest dans Manifest V3.
Pour utiliser cette nouvelle API, vous devez spécifier l'autorisation DeclarativeNeTrequest dans le manifeste et mettre à jour le code pour utiliser la nouvelle API. Une différence clé entre les deux API est que l'API DecarativeNeTrequest vous oblige à spécifier une liste d'adresses prédéfinies à bloquer, plutôt que de bloquer toute la catégorie de demande HTTP comme l'utilisation de l'API Chrome.WebRequest.
apporter ces modifications au code est très important pour s'assurer que l'extension continue de fonctionner correctement sous manifeste v3. Voici un exemple de la façon de modifier le manifeste pour utiliser l'API DecarativeNeTrequest dans manifeste v3:
<code>// Manifest V2 "permissions": [ "activeTab", "storage", "http://www.css-tricks.com/", ":///*" ]</code>
<code>// Manifest V3 "permissions": [ "activeTab", "scripting", "storage" ], "host_permissions": [ "http://www.css-tricks.com/" ], "optional_host_permissions": [ ":///*" ]</code>
Vous devez également mettre à jour le code d'extension pour utiliser l'API DecaratineTrequest au lieu de l'API Chrome.WebRequest.
Ce que j'ai présenté, ce n'est que la pointe de l'iceberg. Bien sûr, si je voulais tout couvrir, je pourrais être ici pendant des jours, et le guide des développeurs Chrome de Google n'a pas de sens. Bien que ce que j'ai couvert rendra votre extension Chrome suffisamment sûre pour cette migration, voici d'autres choses que vous voudrez peut-être vérifier pour vous assurer que votre extension fonctionne correctement.
chrome.browserAction
et chrome.pageAction
API: chrome.runtime.getBackgroundPage()
L'adoption des travailleurs de service dans manifeste V3 est incompatible avec des méthodes telles que chrome.extension.getBackgroundPage()
, chrome.extension.getExtensionTabs()
, chrome.extension.getViews()
et chrome.scripting.executeScript({code: '...'})
manifeste V3 n'est plus autorisée à exécuter une logique externe à l'aide de eval()
, new Function()
et chrome.runtime.getURL()
. Il peut être nécessaire de déplacer tous les code externes (JavaScript, WebAssembly, CSS) dans le package d'extension, mettre à jour les scripts et les références de style aux ressources de chargement à partir du package d'extension et à créer l'URL de la ressource à l'exécution à l'aide de Et plus!
Veuillez prendre le temps de comprendre tous les changements. Après tout, ce changement est inévitable, et si vous ne voulez pas perdre l'extension manifeste V2 en raison de l'évitement de cette migration, prenez le temps de maîtriser les connaissances nécessaires.
D'un autre côté, si vous êtes nouveau dans la programmation d'extension Chrome et que vous voulez commencer, un excellent moyen est de fouiller dans le monde des outils de développeur Web de Chrome. Je l'ai fait avec un cours sur LinkedIn Learning, ce qui m'a donné une compréhension rapide de la vitesse. Une fois que vous avez maîtrisé ces bases, revenez à cet article et traduisez ce que vous savez en fonction de Manifest V3!
chrome.webRequestAPI
Pour moi, la migration vers la manifeste V3 et la suppression de
La montée en puissance des outils d'intelligence artificielle ces dernières années, dont beaucoup fournissent des API disponibles, a inspiré un grand nombre d'applications SaaS nouvelles et fraîches. Je pense personnellement que c'est jusqu'à l'époque vers des extensions chromées plus basées sur les applications! Bien que de nombreuses anciennes extensions puissent être éliminées par cette migration, de nombreuses nouvelles extensions construites autour de nouvelles idées SaaS seront remplacées.
donc il s'agit d'une mise à jour passionnante qui peut être utilisée pour améliorer les anciennes extensions ou en construire de nouvelles! Je pense personnellement qu'il existe de nombreuses possibilités d'utiliser des API impliquant l'intelligence artificielle dans les extensions pour améliorer l'expérience de navigation des utilisateurs. Mais ce n'est vraiment que la pointe de l'iceberg. Si vous souhaitez vraiment utiliser votre propre extension professionnelle ou contacter une entreprise pour créer / mettre à jour des extensions pour eux, je recommande de mettre à niveau votre compte Gmail car il présente des avantages dans la collaboration, le développement et la publication d'extensions vers le Chrome Web Store.
Cependant, n'oubliez pas que chaque développeur a besoin différemment, alors découvrez ce dont vous avez besoin pour maintenir l'extension actuelle en cours d'extension, ou faire fonctionner une nouvelle extension!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!