Padrões de correspondência

As permissões do host e a correspondência do script de conteúdo são baseadas em um conjunto de URLs definidos por padrões de correspondência. Um padrão de correspondência é essencialmente um URL que começa com um esquema permitido (http, https, file ou ftp e que pode conter caracteres "*"). O padrão especial <all_urls> corresponde a qualquer URL que comece com um esquema permitido. Cada padrão de correspondência tem três partes:

  • esquema, por exemplo, http, file ou *

    Observação:o acesso a URLs file não é automático. O usuário precisa visitar a página de gerenciamento de extensões e ativar o acesso ao file para cada extensão que solicitar.
  • host: por exemplo, www.google.com, *.google.com ou *. Se o esquema for file, não haverá parte do host.

  • caminho, por exemplo, /*, /foo* ou /foo/bar. O caminho precisa estar presente em uma permissão de host, mas sempre é tratado como /*.

A sintaxe básica é a seguinte:

&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;

O significado de "*" depende se está na parte esquema, host ou caminho. Se o esquema for *, ele corresponderá a http ou https, e não a file, ftp ou urn. Se o host for apenas *, ele corresponderá a qualquer host. Se o host for *._hostname_, ele corresponderá ao host especificado ou a qualquer um dos subdomínios dele. Na seção path, cada "*" corresponde a zero ou mais caracteres. A tabela a seguir mostra alguns padrões válidos.

PadrãoO que faz?Exemplos de URLs correspondentes
http://*/*Corresponde a qualquer URL que usa o esquema http.http://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Corresponde a qualquer URL que usa o esquema http em qualquer host, desde que o caminho comece com /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barCorresponde a qualquer URL que usa o esquema https, está em um host do google.com (como www.google.com, docs.google.com ou google.com), desde que o caminho comece com /foo e termine com barhttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlCorresponde ao URL especificadohttp://example.org/foo/bar.html
file:///foo*Corresponde a qualquer arquivo local cujo caminho comece com /foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*Corresponde a qualquer URL que usa o esquema http e está no host 127.0.0.1http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Corresponde a qualquer URL que comece com http://mail.google.com ou https://mail.google.com.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*Corresponde a qualquer URL que comece com urn:.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Corresponde a qualquer URL que usa um esquema permitido. Consulte o início desta seção para obter uma lista de esquemas permitidos.http://example.org/foo/bar.html
file:///bar/baz.html

Veja alguns exemplos de correspondências de padrões inválidas:

Padrão incorretoPor que isso é ruim?
http://www.google.comNenhum caminho
http://*foo/barO caractere "*" em host pode ser seguido apenas por um "." ou "/"
http://foo.*.bar/baz Se "*" estiver no host, precisa ser o primeiro caractere
http:/barSeparador de esquema ausente ("/" deveria ser "//")
foo://*Esquema inválido

Alguns esquemas não são aceitos em todos os contextos.