Izin host dan skrip konten pencocokan didasarkan pada sekumpulan URL yang ditentukan oleh pola
pencocokan. Pola pencocokan pada dasarnya adalah URL yang dimulai dengan skema yang diizinkan (http, https,
file, atau ftp), dan dapat berisi karakter '*'. Pola khusus <all_urls> cocok dengan
URL apa pun yang dimulai dengan skema yang diizinkan. Setiap pola pencocokan memiliki 3 bagian:
scheme—misalnya,
httpataufileatau*Catatan: Akses ke URLfiletidak otomatis. Pengguna harus membuka halaman pengelolaan ekstensi dan memilih untuk mengaktifkan aksesfileuntuk setiap ekstensi yang memintanya.host—misalnya,
www.google.comatau*.google.comatau*; jika skemanya adalahfile, tidak ada bagian hostpath—misalnya,
/*,/foo*, atau/foo/bar. Jalur harus ada dalam izin host, tetapi selalu diperlakukan sebagai/*.
Berikut sintaksis dasarnya:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
Arti '*' bergantung pada apakah karakter tersebut berada di bagian scheme, host, atau path. Jika skema adalah *, maka skema tersebut cocok dengan http atau https, dan bukan file, ftp, atau urn. Jika host hanya *, maka host tersebut cocok dengan host apa pun. Jika host adalah *._hostname_, maka host tersebut cocok dengan host yang ditentukan atau subdomainnya. Di bagian path, setiap '*' cocok dengan 0 karakter atau lebih. Tabel berikut menunjukkan beberapa pola yang valid.
| Pola | Fungsinya | Contoh URL yang cocok |
|---|---|---|
http://*/* | Cocok dengan URL apa pun yang menggunakan skema http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Cocok dengan URL apa pun yang menggunakan skema http, di host mana pun, selama jalur dimulai dengan /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Cocok dengan URL apa pun yang menggunakan skema https, berada di host google.com (seperti www.google.com, docs.google.com, atau google.com), selama jalur dimulai dengan /foo dan diakhiri dengan bar | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | Cocok dengan URL yang ditentukan | http://example.org/foo/bar.html |
file:///foo* | Cocok dengan file lokal apa pun yang jalurnya dimulai dengan /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Cocok dengan URL apa pun yang menggunakan skema http dan berada di host 127.0.0.1 | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | Cocok dengan URL apa pun yang dimulai dengan http://mail.google.com atau https://mail.google.com. | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | Cocok dengan URL apa pun yang dimulai dengan urn:. | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Cocok dengan URL apa pun yang menggunakan skema yang diizinkan. (Lihat bagian awal bagian ini untuk mengetahui daftar skema yang diizinkan.) | http://example.org/foo/bar.html file:///bar/baz.html |
Berikut beberapa contoh pencocokan pola tidak valid:
| Pola buruk | Alasan pola buruk |
|---|---|
http://www.google.com | Tidak ada path |
http://*foo/bar | '*' di host hanya dapat diikuti oleh '.' atau '/' |
http://foo.*.bar/baz | Jika '*' berada di host, karakter tersebut harus menjadi karakter pertama |
http:/bar | Pemisah scheme tidak ada ("/" seharusnya "//") |
foo://* | scheme tidak valid |
Beberapa skema tidak didukung di semua konteks.