Pola pencocokan

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 atau file atau *

    Catatan: Akses ke URL file tidak otomatis. Pengguna harus mengunjungi halaman pengelolaan ekstensi dan memilih ikut serta dalam akses file untuk setiap ekstensi yang memintanya.
  • host—misalnya, www.google.com atau *.google.com atau *; jika skemanya adalah file, ada tidak ada bagian host

  • path—misalnya, /*, /foo*, atau /foo/bar. Jalur harus ada dalam izin akses {i>host<i}, namun selalu diperlakukan sebagai /*.

Berikut ini adalah sintaksis dasarnya:

&lt;url-pattern&gt; := &lt;scheme&gt;://&lt;host&gt;&lt;path&gt;
&lt;scheme&gt; := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
&lt;host&gt; := '*' | '*.' &lt;any char except '/' and '*'&gt;+
&lt;path&gt; := '/' &lt;any chars&gt;

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.

PolaFungsinyaContoh URL yang cocok
http://*/*Cocok dengan URL apa pun yang menggunakan skema httphttp://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 /foohttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barCocok 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 barhttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlCocok dengan URL yang ditentukanhttp://example.org/foo/bar.html
file:///foo*Cocok dengan file lokal apa pun yang jalurnya dimulai dengan /foofile:///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.1http://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 burukMengapa hal itu buruk
http://www.google.comTidak 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:/barPemisah skema tidak ada ("/" harus "//")
foo://*Skema tidak valid

Beberapa skema tidak didukung di semua konteks.