Cómo convertir un manifiesto V2 en uno V3
El archivo manifest.json
requiere un formato ligeramente diferente para Manifest V3 y Manifest V2. En esta página, se describen los cambios que solo afectan al archivo manifest.json
. Sin embargo, muchos de los cambios en las secuencias de comandos y en las páginas también requieren modificaciones en el manifiesto. Esos cambios están cubiertos por las tareas de migración que los requieren.
Cambia el número de versión del manifiesto
Cambia el valor del campo "manifest_version"
de 2 a 3.
{ ... "manifest_version": 2 ... }
{ ... "manifest_version": 3 ... }
Actualiza los permisos del host
Los permisos de host en el manifiesto V3 son un campo independiente; no los especificas en "permissions"
ni en "optional_permissions"
.
Las secuencias de comandos de contenido permanecen en "content_scripts.matches"
. Consulta Cómo insertar con declaraciones estáticas para obtener información sobre "content_scripts.matches"
.
{ ... "permissions": [ "tabs", "bookmarks", "https://www.blogger.com/", ], "optional_permissions": [ "unlimitedStorage", "*://*/*", ] ... }
{ ... "permissions": [ "tabs", "bookmarks" ], "optional_permissions": [ "unlimitedStorage" ], "host_permissions": [ "https://www.blogger.com/", ], "optional_host_permissions": [ "*://*/*", ] ... }
Actualiza los recursos accesibles a través de la Web
Los recursos accesibles a través de la Web son archivos dentro de una extensión a los que pueden acceder páginas web y otras extensiones. Como se implementó en Manifest V2, el campo "web_accessible_resources"
hizo que los sitios web y los atacantes pudieran detectar extensiones si decidían exponer recursos. Esto generó oportunidades para la creación de huellas digitales o el acceso a recursos no intencional.
Manifest V3 limita la exposición, ya que restringe qué sitios web y extensiones pueden acceder a los recursos de tu extensión. En lugar de proporcionar una lista de archivos como antes, ahora proporcionas un array de objetos, cada uno de los cuales asigna un conjunto de recursos a un conjunto de URLs o IDs de extensión.
En el siguiente ejemplo, se comparan los recursos accesibles a la Web entre Manifest V2 y Manifest V3. En el manifiesto V2, todos los sitios web podían acceder a los recursos especificados de forma predeterminada. En el código de manifiesto V3 que se muestra a continuación, estos recursos solo están disponibles para https://example.com
, mientras que solo ciertas imágenes están disponibles para todos los sitios web.
Para obtener más información, consulta Recursos accesibles a través de la Web y Patrones de coincidencia.
{ ... "web_accessible_resources": [ "images/*", "style/extension.css", "script/extension.js" ], ... }
{ ... "web_accessible_resources": [ { "resources": [ "images/*" ], "matches": [ "*://*/*" ] }, { "resources": [ "style/extension.css", "script/extension.js" ], "matches": [ "https://example.com/*" ] } ], ... }