Los permisos del host y las coincidencias de secuencias de comandos de contenido se basan en un conjunto de URLs definidas por coincidencia.
o patrones. Básicamente, un patrón de coincidencia es una URL que comienza con un esquema permitido (http
, https
,
file
o ftp
, que puede contener “*
” caracteres. El patrón especial <all_urls>
coincide
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
, hay sin parte del hostpath, 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>
Significado de "*
" depende de si se encuentra en la parte esquema, host o ruta de acceso. Si el botón
scheme es *
, luego coincide con http
o https
, y no file
, ftp
ni urn
. Si el botón
host es solo *
y coincide con cualquier host. Si el host es *._hostname_
, entonces coincide con
el host especificado o 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 URL 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 use el esquema http en cualquier host, siempre y cuando la ruta comience con /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Coincide con cualquier URL que use el esquema https , que se encuentre en un host google.com (como www.google.com, docs.google.com o google.com), siempre que la ruta de acceso 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 comienza con /foo . | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Coincide con cualquier URL que utilice 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 use un esquema permitido. (Consulta el comienzo de esta sección para conocer 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 |
http://*foo/bar | “*” en el host solo puede seguirle un '.' o “/” |
http://foo.*.bar/baz | Si '*' está en el host, debe ser el primer carácter |
http:/bar | Falta el separador de scheme ("/" debe ser "//") |
foo://* | scheme no válido |
Algunos esquemas no se admiten en todos los contextos.