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
,file
oder*
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.com
oder*
; Wenn das Schemafile
ist, kein host-Teilpath, 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 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.