Los permisos de host y la coincidencia de secuencias de comandos de contenido se basan en un conjunto de URLs definidas por patrones de coincidencia. Básicamente, un patrón de coincidencia es una URL que comienza con un esquema permitido (http
, https
, file
o ftp
, y que puede contener caracteres "*
"). El patrón especial <all_urls>
coincide con cualquier URL que comience con un esquema permitido. Cada patrón de coincidencia tiene 3 partes:
scheme: por ejemplo,
http
,file
o*
Nota: El acceso a las URLs defile
no es automático. El usuario debe visitar la página de administración de extensiones y habilitar el acceso defile
para cada extensión que lo solicite.host: Por ejemplo,
www.google.com
,*.google.com
o*
; si el esquema esfile
, no hay una parte del hostruta de acceso: por ejemplo,
/*
,/foo*
o/foo/bar
La ruta de acceso debe estar presente en un permiso de host, pero siempre se trata como/*
.
Esta es la sintaxis básica:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
El significado de "*
" depende de si está en la parte del esquema, el host o la ruta de acceso. Si el esquema es *
, entonces coincide con http
o https
, y no con file
, ftp
ni urn
. Si el host es solo *
, entonces coincidirá con cualquier host. Si el host es *._hostname_
, coincidirá con el host especificado o con cualquiera de sus subdominios. En la sección path, cada “*
” coincide con 0 o más caracteres. En la siguiente tabla, se muestran algunos patrones válidos.
Patrón | Qué hace | Ejemplos de URLs coincidentes |
---|---|---|
http://*/* | Coincide con cualquier URL que use el esquema http . | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Coincide con cualquier URL que utilice el esquema http en cualquier host, siempre que la ruta de acceso comience con /foo . | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Coincide con cualquier URL que utilice el esquema https y esté en un host de google.com (como www.google.com, docs.google.com o google.com), siempre que la ruta comience con /foo y termine con bar . | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | Coincide con la URL especificada | http://example.org/foo/bar.html |
file:///foo* | Coincide con cualquier archivo local cuya ruta de acceso comience con /foo . | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Coincide con cualquier URL que use el esquema http y esté en el host 127.0.0.1. | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | Coincide con cualquier URL que comience con http://mail.google.com o https://mail.google.com . | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | Coincide con cualquier URL que comience con urn: . | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Coincide con cualquier URL que utilice un esquema permitido. (Consulta el comienzo de esta sección para ver la lista de esquemas permitidos). | http://example.org/foo/bar.html file:///bar/baz.html |
Estos son algunos ejemplos de coincidencias de patrones no válidos:
Patrón incorrecto | ¿Por qué es malo? |
---|---|
http://www.google.com | Sin ruta de acceso |
http://*foo/bar | “*” en el host solo puede estar seguido por “.” o “/”. |
http://foo.*.bar/baz | Si “*” está en el host, debe ser el primer carácter. |
http:/bar | Falta el separador de esquema ("/" debe ser "//") |
foo://* | Esquema no válido |
Algunos esquemas no se admiten en todos los contextos.