สิทธิ์ของโฮสต์และการจับคู่สคริปต์เนื้อหาจะอิงตามชุด URL ที่กำหนดโดยการจับคู่
รูปแบบ โดยพื้นฐานแล้ว รูปแบบการจับคู่คือ URL ที่ขึ้นต้นด้วยรูปแบบที่ได้รับอนุญาต (http, https,
file หรือ ftp และที่มี "*" ได้ อักขระ รูปแบบพิเศษ <all_urls> ตรงกับ
URL ใดๆ ที่ขึ้นต้นด้วยรูปแบบที่ได้รับอนุญาต รูปแบบการจับคู่แต่ละรูปแบบมี 3 ส่วนดังนี้
สคีม เช่น
httpหรือfileหรือ*หมายเหตุ: การเข้าถึง URL ของfileจะไม่มีผลโดยอัตโนมัติ ผู้ใช้ต้องไปที่หน้าการจัดการส่วนขยายและเลือกให้สิทธิ์เข้าถึงfileสำหรับแต่ละส่วนขยายที่ส่งคำขอhost ตัวอย่างเช่น
www.google.comหรือ*.google.comหรือ*หากรูปแบบคือfileไม่มีส่วน hostเส้นทาง เช่น
/*,/foo*หรือ/foo/barเส้นทางต้องอยู่ในสิทธิ์โฮสต์ แต่จะถือว่าเป็น/*เสมอ
ต่อไปนี้คือไวยากรณ์พื้นฐาน
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
ความหมายของ "*" ขึ้นอยู่กับว่าข้อมูลนั้นอยู่ในส่วนรูปแบบ โฮสต์ หรือเส้นทาง หาก
สคีม คือ * จากนั้นระบบจะจับคู่กับ http หรือ https และไม่ใช่ file, ftp หรือ urn หาก
host เป็นเพียง * ก็จะจับคู่กับโฮสต์ใดก็ได้ หากโฮสต์คือ *._hostname_ โฮสต์นั้นจะตรงกับ
หรือโดเมนย่อยที่ระบุไว้ ในส่วน path แต่ละ "*" ตรงกับ 0 รายการขึ้นไป
อักขระ ตารางต่อไปนี้แสดงรูปแบบที่ถูกต้อง
| รูปแบบ | การทำงาน | ตัวอย่างของ URL ที่ตรงกัน |
|---|---|---|
http://*/* | จับคู่ URL ที่ใช้รูปแบบ http | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | จับคู่ URL ที่ใช้รูปแบบ http ในโฮสต์ใดก็ได้ ตราบใดที่เส้นทางขึ้นต้นด้วย /foo | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | จับคู่ URL ที่ใช้รูปแบบ https อยู่ในโฮสต์ google.com (เช่น www.google.com, docs.google.com หรือ google.com) ตราบใดที่เส้นทางเริ่มต้นด้วย /foo และลงท้ายด้วย bar | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | ตรงกับ URL ที่ระบุ | http://example.org/foo/bar.html |
file:///foo* | จับคู่กับไฟล์ในเครื่องที่มีเส้นทางขึ้นต้นด้วย /foo | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | จับคู่ URL ที่ใช้รูปแบบ http และอยู่ในโฮสต์ 127.0.0.1 | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | จับคู่ URL ที่ขึ้นต้นด้วย http://mail.google.com หรือ https://mail.google.com | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | จับคู่ URL ที่ขึ้นต้นด้วย urn: | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | จับคู่ URL ที่ใช้รูปแบบที่ได้รับอนุญาต (ดูรายการรูปแบบที่ได้รับอนุญาตได้ที่ส่วนต้นของส่วนนี้) | http://example.org/foo/bar.html file:///bar/baz.html |
ต่อไปนี้เป็นตัวอย่างบางส่วนของการจับคู่รูปแบบที่ไม่ถูกต้อง
| รูปแบบไม่ถูกต้อง | เหตุผลที่แย่ |
|---|---|
http://www.google.com | ไม่มีเส้นทาง |
http://*foo/bar | "*" ใน host จะต้องตามด้วย "." เท่านั้น หรือ '/' |
http://foo.*.bar/baz | หาก '*' อยู่ในโฮสต์ ค่านี้ต้องเป็นอักขระตัวแรก |
http:/bar | ไม่มีตัวคั่นรูปแบบ ("/" ควรเป็น "//") |
foo://* | รูปแบบไม่ถูกต้อง |
บางบริบทอาจไม่รองรับบางรูปแบบ