La corrispondenza delle autorizzazioni host e degli script di 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 i caratteri "*
". Il pattern speciale <all_urls>
corrisponde a qualsiasi URL che inizia con uno schema consentito. Ogni pattern di corrispondenza è costituito da 3 parti:
schema: ad esempio
http
,file
o*
Nota: l'accesso agli URLfile
non è automatico. L'utente deve visitare la pagina di gestione delle estensioni e attivare l'accessofile
per ogni estensione che la richiede.host: ad esempio
www.google.com
,*.google.com
o*
; se lo schema èfile
, non esiste una parte hostpath: ad esempio
/*
,/foo*
o/foo/bar
. Il percorso deve essere presente in un'autorizzazione host, ma viene sempre considerato come/*
.
Di seguito è riportata la sintassi di base:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
Il significato di "*
" dipende dalla parte dello schema, dell'host o del percorso. Se lo
schema è *
, corrisponde a http
o https
e non file
, ftp
o urn
. Se l'host è solo *
, corrisponderà a qualsiasi host. Se host è *._hostname_
, corrisponde all'host specificato o a uno dei suoi sottodomini. Nella sezione path, ogni "*
" corrisponde a 0 o più
caratteri. La tabella seguente mostra alcuni pattern validi.
Sequenza | Che cosa fa | Esempi di URL corrispondenti |
---|---|---|
http://*/* | Corrisponde a qualsiasi URL che utilizza lo schema http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Corrisponde a qualsiasi URL che utilizza lo schema http su qualsiasi host, a condizione che il percorso inizi con /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Corrisponde a qualsiasi URL che utilizza lo schema https , che si trova su un host google.com (ad esempio www.google.com, docs.google.com o google.com), a condizione che il percorso inizi con /foo e termini con bar | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | Corrisponde all'URL specificato | http://example.org/foo/bar.html |
file:///foo* | Corrisponde a qualsiasi file locale il cui percorso inizia con /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Corrisponde a qualsiasi URL che utilizza lo schema http e che si trova sull'host 127.0.0.1 | http://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. Vedi l'inizio di questa sezione per l'elenco degli schemi consentiti. | http://example.org/foo/bar.html file:///bar/baz.html |
Ecco alcuni esempi di corrispondenze di pattern non valide:
Sequenza non corretta | Perché è scadente |
---|---|
http://www.google.com | Nessun percorso |
http://*foo/bar | "*" nell'elemento host può essere seguito solo da "." o "/" |
http://foo.*.bar/baz | Se "*" è nell'host, deve essere il primo carattere |
http:/bar | Separatore di schema mancante ("/" deve essere "//") |
foo://* | Schema non valido |
Alcuni schemi non sono supportati in tutti i contesti.