ההתאמה של הרשאות המארח ושל סקריפט התוכן מבוססת על קבוצה של כתובות URL שמוגדרות לפי דפוסי התאמה. תבנית התאמה היא למעשה כתובת URL שמתחילה בסכימה מותרת (http
, https
, file
או ftp
, ויכולה להכיל תווים מסוג *
. התבנית המיוחדת <all_urls>
תואמת לכל כתובת URL שמתחילה בסכימה מותרת. לכל דפוס התאמה יש 3 חלקים:
scheme – לדוגמה,
http
אוfile
או*
הערה: הגישה לכתובות ה-URL שלfile
לא אוטומטית. המשתמש צריך להיכנס לדף ניהול התוספים ולהביע הסכמה לגישה ל-file
לכל תוסף שמבקש זאת.host – לדוגמה,
www.google.com
או*.google.com
או*
. אם הסכימה היאfile
, אין חלק hostpath – לדוגמה,
/*
,/foo*
או/foo/bar
. הנתיב חייב להופיע בהרשאת מארח, אבל הוא תמיד מטופל בתור/*
.
זהו התחביר הבסיסי:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
המשמעות של '*
' תלויה בחלק שבו הוא מופיע: scheme, host או path. אם הערך של scheme הוא *
, הוא תואם ל-http
או ל-https
, ולא ל-file
, ל-ftp
או ל-urn
. אם הערך של host הוא רק *
, הוא תואם לכל מארח. אם הערך של 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 | אם התו '*' נמצא ב-host, הוא חייב להיות התו הראשון |
http:/bar | חסר מפריד סכימה (צריך להיות "//" במקום "/") |
foo://* | סכימה לא חוקית |
חלק מהסכמות לא נתמכות בכל ההקשרים.