Pola pencocokan

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 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, tidak ada bagian host

  • path—misalnya, /*, /foo*, atau /foo/bar. Jalur harus ada dalam izin host, tetapi selalu diperlakukan sebagai /*.

Berikut ini adalah sintaks 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 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.

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*Cocok dengan URL apa pun yang menggunakan skema http, di host mana pun, asalkan jalur diawali 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, yang berada di host google.com (seperti www.google.com, docs.google.com, atau google.com), selama jalur diawali 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 yang jalurnya dimulai dengan /foofile:///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.1http://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 burukMengapa itu buruk
http://www.google.comTidak 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:/barPemisah skema yang ada ("/" seharusnya "//")
foo://*skema tidak valid

Beberapa skema tidak didukung di semua konteks.