Pencocokan izin host dan skrip konten didasarkan pada kumpulan URL yang ditentukan oleh pola
pencocokan. 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 membuka halaman pengelolaan ekstensi dan mengaktifkan aksesfile
untuk setiap ekstensi yang memintanya.host—misalnya,
www.google.com
atau*.google.com
atau*
; jika skema adalahfile
, tidak ada bagian hostpath—misalnya,
/*
,/foo*
, atau/foo/bar
. Jalur harus ada dalam izin host, tetapi selalu diperlakukan sebagai/*
.
Berikut adalah 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 *
berada di bagian skema, host, atau jalur. Jika
skema adalah *
, skema tersebut akan cocok dengan http
atau https
, dan bukan file
, ftp
, atau urn
. Jika
host hanya *
, host tersebut akan cocok dengan host mana pun. Jika host adalah *._hostname_
, host tersebut akan 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://*/* | Mencocokkan URL apa pun yang menggunakan skema http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Mencocokkan URL apa pun yang menggunakan skema http , di host mana pun, selama jalurnya diawali dengan /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Mencocokkan URL apa pun yang menggunakan skema https , berada di host google.com (seperti www.google.com, docs.google.com, atau google.com), selama jalurnya 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 apa pun yang jalurnya dimulai dengan /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Mencocokkan 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 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 apa pun yang diawali dengan urn: . | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Mencocokkan URL apa pun yang menggunakan skema yang diizinkan. (Lihat awal bagian ini untuk mengetahui daftar skema yang diizinkan.) | http://example.org/foo/bar.html file:///bar/baz.html |
Berikut adalah beberapa contoh kecocokan pola yang tidak valid:
Pola buruk | Alasan hal ini buruk |
---|---|
http://www.google.com | Tidak ada jalur |
http://*foo/bar | '*' di host hanya dapat diikuti dengan '.' atau '/' |
http://foo.*.bar/baz | Jika '*' ada di host, karakter tersebut harus menjadi karakter pertama |
http:/bar | Pemisah skema tidak ada ("/" harus "//") |
foo://* | Skema tidak valid |
Beberapa skema tidak didukung di semua konteks.