Hostberechtigungen und der Abgleich von Inhaltsskripten basieren auf einer Reihe von URLs, die durch Übereinstimmungsmuster
definiert werden. Ein Übereinstimmungsmuster ist im Grunde eine URL, die mit einem zulässigen Schema (http, https, file, oder ftp) beginnt und das Zeichen '*' enthalten kann. Das spezielle Muster <all_urls> entspricht
jeder URL, die mit einem zulässigen Schema beginnt. Jedes Übereinstimmungsmuster besteht aus drei Teilen:
Schema – z. B.
httpoderfileoder*Hinweis:Der Zugriff auffile-URLs erfolgt nicht automatisch. Der Nutzer muss die Seite zur Erweiterungsverwaltung aufrufen und den Zugriff auffilefür jede Erweiterung aktivieren, die ihn anfordert.Host – z. B.
www.google.com,*.google.comoder*. Wenn das Schemafileist, 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 Schema, Host oder Pfad befindet. Wenn das
Schema * ist, entspricht es entweder http oder https, aber nicht file, ftp oder urn. Wenn der Host nur * ist, entspricht er jedem Host. Wenn der Host *._hostname_ ist, entspricht er dem
angegebenen Host oder einer seiner Subdomains. Im Abschnitt Pfad entspricht jedes * null oder mehr Zeichen. In der folgenden Tabelle sind einige gültige Muster aufgeführt.
| Muster | Funktion | Beispiele für übereinstimmende URLs |
|---|---|---|
http://*/* | Entspricht jeder URL, die das http-Schema verwendet | http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo* | Entspricht jeder URL, die das http-Schema auf einem beliebigen Host 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 https-Schema 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 | Entspricht der angegebenen URL | http://example.org/foo/bar.html |
file:///foo* | Entspricht jeder lokalen Datei, deren Pfad mit /foo beginnt | file:///foo/bar.html file:///foo |
http://127.0.0.1/* | Entspricht jeder URL, die das http-Schema 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> | Entspricht jeder URL, 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 | Grund |
|---|---|
http://www.google.com | Kein Pfad |
http://*foo/bar | Auf `*` im Host kann nur ein Punkt (`.`) oder ein Schrägstrich (`/`) folgen |
http://foo.*.bar/baz | Wenn '*' im Host enthalten ist, muss es das erste Zeichen sein |
http:/bar | Fehlendes Schema-Trennzeichen (`/` sollte `//` sein) |
foo://* | Ungültiges Schema |
Einige Schemas werden nicht in allen Kontexten unterstützt.