Der Abgleich von Hostberechtigungen und Inhaltsskripten basiert auf einer Reihe von URLs, die durch Abgleichsmuster definiert sind. Ein Übereinstimmungsmuster ist im Wesentlichen eine URL, die mit einem zulässigen Schema (http
, https
, file
oder ftp
) beginnt und *
-Zeichen enthalten kann. Das spezielle Muster <all_urls>
stimmt mit jeder URL überein, die mit einem zulässigen Schema beginnt. Jedes Übereinstimmungsmuster besteht aus drei Teilen:
Schema, z. B.
http
oderfile
oder*
Hinweis:Der Zugriff auffile
-URLs erfolgt nicht automatisch. Der Nutzer muss die Seite für die Verwaltung von Erweiterungen aufrufen und für jede Erweiterung, von der sie angefordert wird, denfile
-Zugriff aktivieren.host, z. B.
www.google.com
oder*.google.com
oder*
. Wenn das Schemafile
ist, gibt es keinen host-Teil.Pfad, z. B.
/*
,/foo*
oder/foo/bar
. Der Pfad muss in einer Hostberechtigung vorhanden sein, wird aber immer als/*
behandelt.
Die grundlegende Syntax lautet:
<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>
Die Bedeutung von „*
“ hängt davon ab, ob es sich im Teil scheme, host oder path befindet. Wenn das Schema *
ist, entspricht es entweder http
oder https
und nicht file
, ftp
oder urn
. Wenn der Host nur *
ist, entspricht er jedem Host. Wenn der host *._hostname_
ist, werden der angegebene Host oder eine seiner Subdomains zugeordnet. Im Abschnitt path entspricht jeder *
-Wert 0 oder mehr Zeichen. Die folgende Tabelle enthält einige gültige Muster.
Muster | Zweck | Beispiele für übereinstimmende URLs |
---|---|---|
http://*/* | Stimmt mit jeder URL überein, die das Schema http verwendet | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Entspricht jeder URL auf einem beliebigen Host, die das Schema http verwendet, solange der Pfad mit /foo beginnt | http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar | Entspricht jeder URL, die das Schema https verwendet und sich auf einem google.com-Host befindet (z. B. www.google.com, docs.google.com oder google.com), solange der Pfad mit /foo beginnt und mit bar endet | https://www.google.com/foo/baz/bar https://docs.google.com/foobar |
http://example.org/foo/bar.html | Stimmt mit der angegebenen URL überein | http://example.org/foo/bar.html |
file:///foo* | Findet jede lokale Datei, deren Pfad mit /foo beginnt | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Entspricht jeder URL, die das Schema http verwendet und sich auf dem Host 127.0.0.1 befindet | http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/* | Entspricht jeder URL, die mit http://mail.google.com oder https://mail.google.com beginnt. | http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
urn:* | Entspricht jeder URL, die mit urn: beginnt. | urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582 urn:uuid:cfa40aff-07df-45b2-9f95-e023bcf4a6da |
<all_urls> | Stimmt mit jeder URL überein, die ein zulässiges Schema verwendet. Eine Liste der zulässigen Schemas finden Sie am Anfang dieses Abschnitts. | http://example.org/foo/bar.html file:///bar/baz.html |
Hier sind einige Beispiele für ungültige Musterübereinstimmungen:
Ungültiges Muster | Warum ist das schlecht? |
---|---|
http://www.google.com | Kein Pfad |
http://*foo/bar | „*“ im Host darf nur von „.“ oder „/“ folgen |
http://foo.*.bar/baz | Wenn „*“ im Host enthalten ist, muss es das erste Zeichen sein |
http:/bar | Fehlendes Trennzeichen für scheme ("/" sollte "//") sein |
foo://* | Ungültiges Schema |
Einige Schemas werden nicht in allen Kontexten unterstützt.