読者です 読者をやめる 読者になる 読者になる

連載第4回とExtensions galleryについて

Chrome Extension

前回の記事でさらっと書いてましたが、第4回が11月30日にアップされています。
続・先取り! Google Chrome Extensions:第4回 ベータ版に向けたExtension総復習 |gihyo.jp … 技術評論社

betaリリースに向けて仕様は固まったので、manifest.json周りをまとめました。まあ、実はドキュメントにないものが幾つかあるので全部ではないのですが、また修正が面倒になるので今回はスルーしました。

さて、Extensionsが有効になったbeta版の公開とGoogle Chrome Extensions galleryの公開がいよいよ迫ってきました。

開発者の方はすでにgalleryにアップロードされているかもしれませんが、少々ハマリやすいところやいくつかポイントがあるのでまとめておきます。
ヘルプが公開されていました、英語ですが。Page not available - Google Chrome Help

  • (2009年12月初めの時点で)macではアップロード不可、そもそもmac版のChrome4ではExtensionsが使えない見込み
    • アップロードにFlashを使っている関係か、macからアップロードができないとのこと。そもそも、mac版のbetaリリースではExtensionsが無効になることが確定しました。http://crbug.com/29086
    • macでのアップロードの問題は修正されました。 http://crbug.com/29812
  • manifest.jsonからupdate_url、keyを削除しないとアップできない
    • アップデート周りはgalleryが面倒を見てくれます
  • Chrome Extensions galleryにアップするとIDが変わる
    • IDが変わる件は回避策があります。後述。
  • Unpublishの状態では自分自身でもインストール不可

(余談ですが、一時更新アップロードに失敗する現象が起きてましたが、現在は修正されています。
Extensions gallery open for uploads -
Chromium-extensions |
Google Groups
)

既存のID(pemファイル)を引き継いでgalleryに登録する方法

http://groups.google.com/group/chromium-extensions/browse_thread/thread/defbf282d11a8cc4 より、

  1. pemファイルをkey.pemにリネーム
  2. zipファイルにするとき、key.pemを含める
  3. galleryにアップロード

基本的な手順はこれだけです。補足として、

  • key.pemを含める必要があるのは初回のみ
  • すでにgalleryにアップしてあるExtensionのIDを後から変えることはできない(その場合も、pemファイルがパッケージ内に残るような事はないようです)
  • 公開済みのExtensionのAutoUpdateをgalleryに引き渡すには以下の手順で。
    1. manifest.jsonのupdate_urlを http://clients2.google.com/service/update2/crx に修正
    2. 既存のupdates.xmlで新バージョンにアップデート(この時もバージョン ナンバーを上げる必要があるので注意)
    3. 次回からgalleryでアップロードするように。

というわけで、galleryに一本化することもできますが、galleryに公開していると多言語化などの要求が出てくるので、あえて分けるのもありかなーという気もします。galleryは安定版、自前では開発版とか。このあたりは人それぞれですね。
また、上記の方法だと手元にpemファイルを持つことができます。これは自由度の点ではメリットですし、管理コストの面ではデメリットと考えられなくもないです。


そういえば、IE Tabが出ましたね。中身はNPAPI(Flashとかで使われているプラグイン機構)使用のようです。
個人的に驚いたのはbackground_pageでGoogle Analyticsを埋め込んでいた点。しかも、Google半公認(http://crbug.com/29112)みたいな感じでびっくりです。
まあ、確かにアクティブユーザーをグラフィカルに把握できるわけで上手い方法ですね。上のIssueの通り、使用する場合はSSLを使うように注意しましょう。