Index: chrome/common/extensions/docs/server2/templates/articles/match_patterns.html |
diff --git a/chrome/common/extensions/docs/server2/templates/articles/match_patterns.html b/chrome/common/extensions/docs/server2/templates/articles/match_patterns.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d0b5cb06ce8e81899c5ccc2fb80f1b47da217e9e |
--- /dev/null |
+++ b/chrome/common/extensions/docs/server2/templates/articles/match_patterns.html |
@@ -0,0 +1,261 @@ |
+<h1>Match Patterns</h1> |
+ |
+<p> |
+<a href="content_scripts.html">Content scripts</a> operate on |
+a set of URLs defined by match patterns. |
+You can put one or more match patterns |
+in the <code>"matches"</code> part of |
+a content script's section of the manifest, |
+as well as in the <code>"exclude_matches"</code> section. |
+This page describes the match pattern syntax — |
+the rules you need to follow when you specify |
+which URLs your content script affects. |
+</p> |
+ |
+<p> |
+A match pattern is essentially a URL |
+that begins with a permitted scheme (<code>http</code>, |
+<code>https</code>, <code>file</code>, <code>ftp</code>, or |
+<code>chrome-extension</code>), |
+and that can contain '<code>*</code>' characters. |
+The special pattern |
+<code><all_urls></code> matches any URL |
+that starts with a permitted scheme. |
+Each match pattern has 3 parts:</p> |
+</p> |
+ |
+<ul> |
+ <li> <em>scheme</em> — |
+ for example, <code>http</code> or <code>file</code> |
+ or <code>*</code> |
+ <p class="note"> |
+ <b>Note:</b> |
+ Access to <code>file</code> URLs isn't automatic. |
+ The user must visit the extensions management page |
+ and opt in to <code>file</code> access for each extension that requests it. |
+ </p> |
+ </li> |
+ <li> <em>host</em> — |
+ for example, <code>www.google.com</code> |
+ or <code>*.google.com</code> |
+ or <code>*</code>; |
+ if the scheme is <code>file</code>, |
+ there is no <em>host</em> part |
+ </li> |
+ <li> <em>path</em> — |
+ for example, <code>/*</code>, <code>/foo* </code>, |
+ or <code>/foo/bar </code> |
+ </li> |
+</ul> |
+ |
+<p>Here's the basic syntax:</p> |
+ |
+<pre> |
+<em><url-pattern></em> := <em><scheme></em>://<em><host></em><em><path></em> |
+<em><scheme></em> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'chrome-extension' |
+<em><host></em> := '*' | '*.' <em><any char except '/' and '*'></em>+ |
+<em><path></em> := '/' <em><any chars></em> |
+</pre> |
+ |
+<p> |
+The meaning of '<code>*</code>' depends on whether |
+it's in the <em>scheme</em>, <em>host</em>, or <em>path</em> part. |
+If the <em>scheme</em> is <code>*</code>, |
+then it matches either <code>http</code> or <code>https</code>. |
+If the <em>host</em> is just <code>*</code>, |
+then it matches any host. |
+If the <em>host</em> is <code>*.<em>hostname</em></code>, |
+then it matches the specified host or any of its subdomains. |
+In the <em>path</em> section, |
+each '<code>*</code>' matches 0 or more characters. |
+The following table shows some valid patterns. |
+</p> |
+ |
+<table class="columns"> |
+<tbody> |
+<tr> |
+ <th style="margin-left:0; padding-left:0">Pattern</th> |
+ <th style="margin-left:0; padding-left:0">What it does</th> |
+ <th style="margin-left:0; padding-left:0">Examples of matching URLs</th> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>http://*/*</code> |
+ </td> |
+ |
+ <td>Matches any URL that uses the <code>http</code> scheme</td> |
+ |
+ <td> |
+ http://www.google.com/<br> |
+ http://example.org/foo/bar.html |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>http://*/foo*</code> |
+ </td> |
+ |
+ <td> |
+ Matches any URL that uses the <code>http</code> scheme, on any host, |
+ as long as the path starts with <code>/foo</code> |
+ </td> |
+ |
+ <td> |
+ http://example.com/foo/bar.html<br> |
+ http://www.google.com/foo<b></b> |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>https://*.google.com/foo*bar </code> |
+ </td> |
+ |
+ <td> |
+ Matches any URL that uses the <code>https</code> 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 <code>/foo</code> |
+ and ends with <code>bar</code> |
+ </td> |
+ |
+ <td> |
+ http://www.google.com/foo/baz/bar<br> |
+ http://docs.google.com/foobar |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>http://example.org/foo/bar.html </code> |
+ </td> |
+ |
+ <td>Matches the specified URL</td> |
+ |
+ <td> |
+ http://example.org/foo/bar.html |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>file:///foo*</code> |
+ </td> |
+ |
+ <td>Matches any local file whose path starts with <code>/foo</code> |
+ </td> |
+ |
+ <td> |
+ file:///foo/bar.html<br> |
+ file:///foo |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>http://127.0.0.1/*</code> |
+ </td> |
+ |
+ <td> |
+ Matches any URL that uses the <code>http</code> scheme |
+ and is on the host 127.0.0.1 |
+ </td> |
+ <td> |
+ http://127.0.0.1/<br> |
+ http://127.0.0.1/foo/bar.html |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>*://mail.google.com/* </code> |
+ </td> |
+ |
+ <td> |
+ Matches any URL that starts with |
+ <code>http://mail.google.com</code> or |
+ <code>https://mail.google.com</code>. |
+ </td> |
+ |
+ <td> |
+ http://mail.google.com/foo/baz/bar<br> |
+ https://mail.google.com/foobar |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code>chrome-extension://*/* </code> |
+ </td> |
+ |
+ <td> |
+ Matches any URL pointing to an extension (the first <code>*</code> |
+ represents a filter for extension IDs, the second for paths). |
+ </td> |
+ |
+ <td> |
+ chrome-extension://askla...asdf/options.html |
+ </td> |
+</tr> |
+ |
+<tr> |
+ <td> |
+ <code><all_urls></code> |
+ </td> |
+ |
+ <td> |
+ Matches any URL that uses a permitted scheme. |
+ (See the beginning of this section for the list of permitted |
+ schemes.) |
+ </td> |
+ <td> |
+ http://example.org/foo/bar.html<br> |
+ file:///bar/baz.html |
+ </td> |
+</tr> |
+</tbody> |
+</table> |
+ |
+<p> |
+Here are some examples of <em>invalid</em> pattern matches: |
+</p> |
+ |
+<table class="columns"> |
+<tbody> |
+<tr> |
+ <th style="margin-left:0; padding-left:0">Bad pattern</th> |
+ <th style="margin-left:0; padding-left:0">Why it's bad</th> |
+</tr> |
+ |
+<tr> |
+ <td><code>http://www.google.com</code></td> |
+ <td>No <em>path</em></td> |
+</tr> |
+ |
+<tr> |
+ <td><code>http://*foo/bar</code></td> |
+ <td>'*' in the <em>host</em> can be followed only by a '.' or '/'</td> |
+</tr> |
+ |
+<tr> |
+ <td><code>http://foo.*.bar/baz </code></td> |
+ <td>If '*' is in the <em>host</em>, it must be the first character</td> |
+ </tr> |
+ |
+<tr> |
+ <td><code>http:/bar</code></td> |
+ <td>Missing <em>scheme</em> separator ("/" should be "//")</td> |
+</tr> |
+ |
+<tr> |
+ <td><code>foo://*</code></td> |
+ <td>Invalid <em>scheme</em></td> |
+</tr> |
+</tbody> |
+</table> |
+ |
+<p> |
+Some schemes are not supported in all contexts. |
+</p> |