Pencocokan izin host dan skrip konten didasarkan pada kumpulan URL yang ditentukan oleh kecocokan
pola-pola tersebut. 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
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
, ada tidak ada bagian hostpath—misalnya,
/*
,/foo*
, atau/foo/bar
. Jalur harus ada dalam izin akses {i>host<i}, namun selalu diperlakukan sebagai/*
.
Berikut ini 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 paket tersebut ada di bagian skema, host, atau jalur. Jika
skema adalah *
, maka cocok dengan http
atau https
, dan bukan file
, ftp
, atau urn
. Jika
host hanya *
, maka cocok dengan host apa pun. Jika host adalah *._hostname_
, maka cocok dengan
{i>host<i} tertentu atau salah satu subdomainnya. Pada bagian path, setiap '*
' cocok dengan 0 atau lebih
karakter. 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* | Mencocokkan URL apa pun yang menggunakan skema http , pada 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/* | 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/* | Mencocokkan 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:* | Mencocokkan 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 daftar skema yang diizinkan.) | http://example.org/foo/bar.html file:///bar/baz.html |
Berikut ini beberapa contoh kecocokan pola yang tidak valid:
Pola buruk | Mengapa hal itu 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, harus berupa karakter pertama |
http:/bar | Pemisah skema tidak ada ("/" harus "//") |
foo://* | Skema tidak valid |
Beberapa skema tidak didukung di semua konteks.