Übereinstimmungsmuster

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. http oder file oder *

    Hinweis:Der Zugriff auf file-URLs erfolgt nicht automatisch. Der Nutzer muss die Seite zur Erweiterungsverwaltung aufrufen und den Zugriff auf file für jede Erweiterung aktivieren, die ihn anfordert.
  • Host – z. B. www.google.com, *.google.com oder *. Wenn das Schema file 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:

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

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.

MusterFunktionBeispiele für übereinstimmende URLs
http://*/*Entspricht jeder URL, die das http-Schema verwendethttp://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 beginnthttp://example.com/foo/bar.html
http://www.google.com/foo
https://*.google.com/foo*barEntspricht 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 endethttps://www.google.com/foo/baz/bar
https://docs.google.com/foobar
http://example.org/foo/bar.htmlEntspricht der angegebenen URLhttp://example.org/foo/bar.html
file:///foo*Entspricht jeder lokalen Datei, deren Pfad mit /foo beginntfile:///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 befindethttp://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 MusterGrund
http://www.google.comKein Pfad
http://*foo/barAuf `*` 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:/barFehlendes Schema-Trennzeichen (`/` sollte `//` sein)
foo://*Ungültiges Schema

Einige Schemas werden nicht in allen Kontexten unterstützt.