Hostberechtigungen und der Content-Skriptabgleich basieren auf einer Reihe von URLs, die durch Übereinstimmung definiert werden.
Muster zu erkennen. Ein Übereinstimmungsmuster ist im Wesentlichen eine URL, die mit einem zulässigen Schema beginnt (http, https,
file oder ftp, und das kann "*" enthalten Zeichen. Das spezielle Muster <all_urls> stimmt mit dem
eine beliebige URL, die mit einem zulässigen Schema beginnt. Jedes Übereinstimmungsmuster besteht aus drei Teilen:
scheme, z. B.
http,fileoder*Hinweis:Der Zugriff auffile-URLs erfolgt nicht automatisch. Der Nutzer muss die Seite zum Verwalten von Erweiterungen aufrufen und für jede Erweiterung, die dies anfordert, die Berechtigung „file“ erteilen.host, z. B.
www.google.com,*.google.comoder*; Wenn das Schemafileist, kein host-Teilpath, z. B.
/*,/foo*oder/foo/barDer 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 er sich im scheme-, host- oder path-Teil befindet. Wenn die
scheme ist * und stimmt entweder mit http oder https überein und nicht file, ftp oder urn. Wenn die
host nur * ist, stimmt damit mit jedem Host überein. Wenn der Host *._hostname_ ist, entspricht er dem
des angegebenen Hosts oder einer seiner Subdomains. Im Abschnitt path gibt es jeweils '*' entspricht 0 oder mehr
Zeichen. Die folgende Tabelle zeigt einige gültige Muster.
| Muster | Funktion | 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, die das Schema http 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 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* | Stimmt mit jeder lokalen Datei überein, 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> | 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 einige Beispiele für ungültige Musterübereinstimmungen:
| Ungültiges Muster | Warum ist es schlecht? |
|---|---|
http://www.google.com | Kein path |
http://*foo/bar | * im host darf nur von einem "." gefolgt werden. oder "/" |
http://foo.*.bar/baz | Wenn „*“ befindet sich im host, muss es das erste Zeichen sein. |
http:/bar | Fehlendes Schema-Trennzeichen („/“ muss „//“) |
foo://* | Ungültiges Schema |
Einige Schemas werden nicht in allen Kontexten unterstützt.