דפוסי התאמה

הרשאות מארח והתאמות של סקריפט תוכן מבוססות על קבוצה של כתובות URL שמוגדרות לפי תבניות התאמה. דפוס התאמה הוא למעשה כתובת URL שמתחילה בסכימה מותרת (http, https, file או ftp, והיא יכולה לכלול תווי '*'. הדפוס המיוחד <all_urls> תואם לכל כתובת אתר שמתחילה בסכימה מותרת. כל דפוס התאמה מורכב מ-3 חלקים:

  • scheme – לדוגמה, http או file או *

    הערה: הגישה אל file כתובות URL אינה אוטומטית. המשתמש חייב להיכנס לדף ניהול התוספים ולהביע הסכמה לגישה של file עבור כל תוסף שמבקש זאת.
  • host – לדוגמה, www.google.com או *.google.com או *. אם הסכמה היא file, אין חלק של host

  • path. לדוגמה, /*, /foo* או /foo/bar. הנתיב חייב להיות קיים בהרשאת מארח, אבל הוא תמיד מטופל כ-/*.

זהו התחביר הבסיסי:

&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;

המשמעות של '*' משתנה בהתאם לחלק הסכימה, המארח או הנתיב. אם הסכמה היא *, היא תואמת ל-http או ל-https, ולא ל-file, ל-ftp או ל-urn. אם המארח הוא רק *, הוא תואם לכל מארח. אם הערך בשדה host הוא *._hostname_, הוא תואם למארח שצוין או לאחד מתתי-הדומיינים שלו. בקטע path, כל '*' תואם ל-0 תווים או יותר. בטבלה הבאה מוצגים כמה דפוסים תקינים.

דפוסתיאורדוגמאות לכתובות URL תואמות
http://*/*תואם לכל כתובת URL שמשתמשת בסכימה httphttp://www.google.com/
http://example.org/foo/bar.html
http://*/foo*תואם לכל כתובת URL שמשתמשת בסכימת http, בכל מארח, כל עוד הנתיב מתחיל ב-/foohttp://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 ומסתיים ב-barhttps://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*תואם לכל קובץ מקומי שהנתיב שלו מתחיל ב-/foofile:///foo/bar.html
file:///foo
http://127.0.0.1/*תואם לכל כתובת URL שמשתמשת בסכימה http ונמצאת במארח 127.0.0.1http://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מפריד סכימה חסר ('/' צריך להיות '//')
foo://*סכימה לא חוקית

חלק מהסכמות לא נתמכות בכל ההקשרים.