Patrones de coincidencia

La coincidencia de permisos de host y secuencias de comandos de contenido se basa en un conjunto de URLs definidas por patrones de coincidencia. Un patrón de coincidencia es, básicamente, 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:

  • Esquema: Por ejemplo, http, file o *

    Nota: El acceso a las URLs de file no es automático. El usuario debe visitar la página de administración de extensiones y habilitar el acceso a file para cada extensión que lo solicite.
  • host: Por ejemplo, www.google.com, *.google.com o *. Si el esquema es file, no hay parte de host.

  • ruta de acceso, por ejemplo, /*, /foo* o /foo/bar La ruta debe estar presente en un permiso de host, pero siempre se trata como /*.

Esta es la sintaxis básica:

&lt;url-pattern&gt; := &lt;scheme&gt;://&lt;host&gt;&lt;path&gt;
&lt;scheme&gt; := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
&lt;host&gt; := '*' | '*.' &lt;any char except '/' and '*'&gt;+
&lt;path&gt; := '/' &lt;any chars&gt;

El significado de "*" depende de si está en la parte del esquema, el host o la ruta de acceso. Si el esquema es *, coincide con http o https, y no con file, ftp o urn. Si el host es solo *, entonces coincide con cualquier host. Si el host es *._hostname_, entonces coincide con el host especificado o con cualquiera de sus subdominios. En la sección ruta, cada "*" coincide con 0 o más caracteres. En la siguiente tabla, se muestran algunos patrones válidos.

PatrónQué haceEjemplos de URLs coincidentes
http://*/*Coincide con cualquier URL que utilice 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 y cuando la ruta comience con /foo.http://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barCoincide con cualquier URL que utilice el esquema https, esté en un host google.com (como www.google.com, docs.google.com o google.com), siempre y cuando 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.htmlCoincide con la URL especificadahttp://example.org/foo/bar.html
file:///foo*Coincide con cualquier archivo local cuya ruta comience 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 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álidas:

Patrón incorrectoPor qué es malo
http://www.google.comNo hay ruta
http://*foo/barEl carácter “*” en el host solo puede estar seguido de un “.” o un “/”.
http://foo.*.bar/baz Si hay un asterisco en el host, debe ser el primer carácter.
http:/barFalta el separador de esquema ("/" debería ser "//")
foo://*Esquema no válido

Algunos esquemas no se admiten en todos los contextos.