Pencocokan izin host dan skrip konten didasarkan pada sekumpulan URL yang ditentukan oleh pola
kecocokan. Pola pencocokan pada dasarnya adalah URL yang diawali dengan skema yang diizinkan (http
, https
,
file
, atau ftp
, dan yang dapat berisi karakter '*
'. Pola khusus <all_urls>
cocok dengan
URL apa pun yang dimulai dengan skema yang diizinkan. Setiap pola pencocokan memiliki 3 bagian:
skema—misalnya,
http
ataufile
atau*
Catatan: Akses ke URLfile
tidak otomatis. Pengguna harus mengunjungi halaman pengelolaan ekstensi dan memilih ikut serta dalam aksesfile
untuk setiap ekstensi yang memintanya.host—misalnya,
www.google.com
atau*.google.com
atau*
; jika skemanya adalahfile
, tidak ada bagian hostpath—misalnya,
/*
,/foo*
, atau/foo/bar
. Jalur harus ada dalam izin host, tetapi selalu diperlakukan sebagai/*
.
Berikut ini adalah sintaks dasarnya:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
Arti '*
' bergantung pada apakah kode tersebut berada di bagian skema, host, atau jalur. Jika
skema adalah *
, sistem tersebut akan cocok dengan http
atau https
, dan bukan file
, ftp
, atau urn
. Jika
host hanya *
, host cocok dengan host apa pun. Jika host adalah *._hostname_
, host cocok
dengan host yang ditentukan atau salah satu subdomainnya. Di bagian path, setiap '*
' cocok dengan 0 karakter atau lebih. Tabel berikut ini 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, asalkan jalur diawali 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 , yang berada di host google.com (seperti www.google.com, docs.google.com, atau google.com), selama jalur diawali 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 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 ada 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 yang diawali 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 yang diawali dengan urn: . | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Cocok dengan URL 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 ini beberapa contoh kecocokan pola tidak valid:
Pola buruk | Mengapa itu buruk |
---|---|
http://www.google.com | Tidak ada path |
http://*foo/bar | '*' dalam host hanya dapat diikuti dengan '.' atau '/' |
http://foo.*.bar/baz | Jika '*' ada di host, '*' harus menjadi karakter pertama |
http:/bar | Pemisah skema yang ada ("/" seharusnya "//") |
foo://* | skema tidak valid |
Beberapa skema tidak didukung di semua konteks.