GoogleChromeの拡張機能を自前サーバで配布したい場合

拡張機能の配布方法は2つある。1つは、Chrome Web Storeでの配布、
2つ目は自前のサーバで配布かである。

この記事では、2つ目の方法を記述する。
とりあえず参考資料。
この記事「Web Store Hosting and Updating - Google Chrome
とこの記事「Loading...
によると、MIMEタイプを"application/x-chrome-extension"としなくてはならない。
このMIMEタイプはサーバ側で返答しなければならない。この返答からChrome拡張機能と認識する。
サーバ側の設定方法
Apacheの場合

AddType application/x-chrome-extension .crx

Pythonistaならとりあえず使うSimpleHTTPServerの場合。
普段は

$ python -m SimpleHTTPServer 8080

とコマンドを叩くが、MIMIタイプを設定しなければならない。
ということで、調べてみると、SimpleHTTPServerのMIMEタイプ追加 - logging.info(self)この記事がヒット
id:aroma_blackさんのコード一部改変して使用させていただきました。ありがとうございます。
で、改変した部分も含めると下記のスクリプトになる。

#! python
# -*- coding:utf-8 -*-

import SimpleHTTPServer
import SocketServer

PORT = 8000

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
Handler.extensions_map['.crx'] = 'application/x-chrome-extension'

httpd = SocketServer.TCPServer(("",PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

こいつで適切なhtmlファイルを書いてやれば大丈夫。
ちなみに、ダウンロード部分はこれ

<a href="hoge.crx">拡張機能hoge</a>


追記 2011年4/14 23:12
Githubでは、crxファイルをアップロードし、Chromeでダウンロードすると、ちゃんと拡張機能と認識してくれる。
つまり、Githubでソースを公開しながらリリースパッケージの配布も可能だったんだよ!!! Ω ΩΩ< な、なんだってー!!