Pattern di corrispondenza

La corrispondenza tra le autorizzazioni host e gli script dei contenuti si basa su un insieme di URL definiti da pattern di corrispondenza. Un pattern di corrispondenza è essenzialmente un URL che inizia con uno schema consentito (http, https, file o ftp) e che può contenere caratteri "*". Il pattern speciale <all_urls> corrisponde a qualsiasi URL che inizia con uno schema consentito. Ogni pattern di corrispondenza è composto da tre parti:

  • scheme: ad esempio, http o file o *

    Nota:l'accesso agli URL file non è automatico. L'utente deve visitare la pagina di gestione delle estensioni e attivare l'accesso a file per ogni estensione che lo richiede.
  • host, ad esempio www.google.com o *.google.com o *; se lo schema è file, non è presente la parte host

  • path, ad esempio /*, /foo* o /foo/bar. Il percorso deve essere presente in un'autorizzazione host, ma viene sempre trattato come /*.

Ecco la sintassi di base:

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

Il significato di "*" dipende dalla parte dello schema, dell'host o del percorso in cui si trova. Se lo schema è *, corrisponde a http o https e non a file, ftp o urn. Se l'host è solo *, corrisponde a qualsiasi host. Se l'host è *._hostname_, corrisponde all'host specificato o a uno qualsiasi dei suoi sottodomini. Nella sezione Percorso, ogni "*" corrisponde a zero o più caratteri. La seguente tabella mostra alcuni pattern validi.

PatternDescrizioneEsempi di URL corrispondenti
http://*/*Corrisponde a qualsiasi URL che utilizza lo schema httphttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*Corrisponde a qualsiasi URL che utilizza lo schema http, su qualsiasi host, purché il percorso inizi con /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barCorrisponde a qualsiasi URL che utilizza lo schema https, si trova su un host google.com (ad esempio www.google.com, docs.google.com o google.com), purché il percorso inizi con /foo e termini con barhttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlCorrisponde all'URL specificatohttp://example.org/foo/bar.html
file:///foo*Corrisponde a qualsiasi file locale il cui percorso inizia con /foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*Corrisponde a qualsiasi URL che utilizza lo schema http e si trova sull'host 127.0.0.1http://127.0.0.1/
http://127.0.0.1/foo/bar.html
*://mail.google.com/*Corrisponde a qualsiasi URL che inizia con http://mail.google.com o https://mail.google.com.http://mail.google.com/foo/baz/bar
https://mail.google.com/foobar
urn:*Corrisponde a qualsiasi URL che inizia con urn:.urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da
<all_urls>Corrisponde a qualsiasi URL che utilizza uno schema consentito. Per l'elenco degli schemi consentiti, vedi l'inizio di questa sezione.http://example.org/foo/bar.html
file:///bar/baz.html

Ecco alcuni esempi di corrispondenze di pattern non valide:

Motivo erratoPerché è un problema
http://www.google.comNessun percorso
http://*foo/barIl carattere "*" nell'host può essere seguito solo da un punto (".") o da una barra ("/").
http://foo.*.bar/baz Se "*" è presente nell'host, deve essere il primo carattere
http:/barSeparatore schema mancante ("/" deve essere "//")
foo://*Schema non valido

Alcuni schemi non sono supportati in tutti i contesti.