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,- fileo- *Nota: El acceso a las URLs de- fileno es automático. El usuario debe visitar la página de administración de extensiones y habilitar el acceso de- filepara cada extensión que lo solicite.
- host, por ejemplo, - www.google.com,- *.google.como- *si el esquema es- file, hay sin parte del host
- path, 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 httpen 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/fooy termine conbar | 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 httpy 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.comohttps://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.