Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the BSD License.
©2012 Google
Content scripts operate on
a set of URLs defined by match patterns.
You can put one or more match patterns
in the "matches"
part of
a content script's section of the manifest,
as well as in the "exclude_matches"
section.
This page describes the match pattern syntax —
the rules you need to follow when you specify
which URLs your content script affects.
A match pattern is essentially a URL
that begins with a permitted scheme (http
,
https
, file
, ftp
, or
chrome-extension
),
and that can contain '*
' characters.
The special pattern
<all_urls>
matches any URL
that starts with a permitted scheme.
Each match pattern has 3 parts:
http
or file
or *
Note:
Access to file
URLs isn't automatic.
The user must visit the extensions management page
and opt in to file
access for each extension that requests it.
www.google.com
or *.google.com
or *
;
if the scheme is file
,
there is no host part
/*
, /foo*
,
or /foo/bar
Here's the basic syntax:
<url-pattern> := <scheme>://<host><path> <scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'chrome-extension' <host> := '*' | '*.' <any char except '/' and '*'>+ <path> := '/' <any chars>
The meaning of '*
' depends on whether
it's in the scheme, host, or path part.
If the scheme is *
,
then it matches either http
or https
.
If the host is just *
,
then it matches any host.
If the host is *.hostname
,
then it matches the specified host or any of its subdomains.
In the path section,
each '*
' matches 0 or more characters.
The following table shows some valid patterns.
Pattern | What it does | Examples of matching URLs |
---|---|---|
http://*/*
|
Matches any URL that uses the http scheme |
http://www.google.com/ http://example.org/foo/bar.html |
http://*/foo*
|
Matches any URL that uses the http scheme, on any host,
as long as the path starts with /foo
|
http://example.com/foo/bar.html http://www.google.com/foo |
https://*.google.com/foo*bar
|
Matches any URL that uses the https scheme,
is on a google.com host
(such as www.google.com, docs.google.com, or google.com),
as long as the path starts with /foo
and ends with bar
|
http://www.google.com/foo/baz/bar http://docs.google.com/foobar |
http://example.org/foo/bar.html
|
Matches the specified URL | http://example.org/foo/bar.html |
file:///foo*
|
Matches any local file whose path starts with /foo
|
file:///foo/bar.html file:///foo |
http://127.0.0.1/*
|
Matches any URL that uses the http scheme
and is on the host 127.0.0.1
|
http://127.0.0.1/ http://127.0.0.1/foo/bar.html |
*://mail.google.com/*
|
Matches any URL that starts with
http://mail.google.com or
https://mail.google.com .
|
http://mail.google.com/foo/baz/bar https://mail.google.com/foobar |
chrome-extension://*/*
|
Matches any URL pointing to an extension (the first *
represents a filter for extension IDs, the second for paths).
|
chrome-extension://askla...asdf/options.html |
<all_urls>
|
Matches any URL that uses a permitted scheme. (See the beginning of this section for the list of permitted schemes.) |
http://example.org/foo/bar.html file:///bar/baz.html |
Here are some examples of invalid pattern matches:
Bad pattern | Why it's bad |
---|---|
http://www.google.com |
No path |
http://*foo/bar |
'*' in the host can be followed only by a '.' or '/' |
http://foo.*.bar/baz |
If '*' is in the host, it must be the first character |
http:/bar |
Missing scheme separator ("/" should be "//") |
foo://* |
Invalid scheme |
Some schemes are not supported in all contexts.