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