blob: 091e93b8d5a5efbb57f2e0de3b2e40bca6e9eb8d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
<h1>Hosting</h1>
<p>
This page tells you how to host <code>.crx</code> files
on your own server.
If you distribute your extension, app, or theme solely through the
<a href="http://chrome.google.com/webstore">Chrome Web Store</a>,
you don't need this page.
Instead, consult the
<a href="http://www.google.com/support/chrome_webstore/">store help</a> and
<a href="http://code.google.com/chrome/webstore/index.html">developer documentation</a>.
</p>
<p>
By convention, extensions,
installable web apps, and themes are served—whether
by the Chrome Web Store or by a custom server—as
<code>.crx</code> files.
When you upload a ZIP file with the
<a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Developer Dashboard</a>,
the dashboard creates the <code>.crx</code> file for you.
</p>
<p>
If you aren't publishing using the dashboard,
you need to create the <code>.crx</code> file yourself,
as described in <a href="packaging.html">Packaging</a>.
You can also specify
<a href="autoupdate.html">autoupdate</a> information to ensure that
your users will have the latest copy of the <code>.crx</code> file.
</p>
<p>
A server that hosts <code>.crx</code> files
must use appropriate HTTP headers,
so that users can install the file
by clicking a link to it.
</p>
<p>
Google Chrome considers a file to be installable
if <b>either</b> of the following is true:
</p>
<ul>
<li>
The file has the content type
<code>application/x-chrome-extension</code>
</li>
<li>
The file suffix is <code>.crx</code>
and <b>both</b> of the following are true:
<ul>
<li>
The file <b>is not</b> served with
the HTTP header <code>X-Content-Type-Options: nosniff</code>
</li>
<li>
The file <b>is</b> served
with one of the following content types:
<ul>
<li> empty string </li>
<li> "text/plain" </li>
<li> "application/octet-stream" </li>
<li> "unknown/unknown" </li>
<li> "application/unknown" </li>
<li> "*/*" </li>
</ul>
</li>
</ul>
</li>
</ul>
<p>
The most common reason for failing to recognize an installable file
is that the server sends the header
<code>X-Content-Type-Options: nosniff</code>.
The second most common reason
is that the server sends an unknown content type—one
that isn't in the previous list.
To fix an HTTP header issue,
either change the configuration of the server
or try hosting the <code>.crx</code> file at another server.
</p>
|