Mitsugu Oyama のソフトウェア倉庫
 > もじる
  > Chromeless で遊んでいるメモ
   > Chromeless 0.2 をとりあえず使ってみた

はじめに

このページは Chromeless アプリケーションとは何かを明らかにすることを目的にしています。ここでは Chromeless 0.2 のサンプルとして付属する examples/first_browser をスタンドアロン・アプリケーションにするまでを書きます。そのため筆者自身が書いたコードは一切出てきませんので念のため。

Chromeless とは何か

Chromeless 0.2 のリリースがネット上のメディアで発表されてからというものの、Chromeless とは何かということに関するいろんな憶測がネット上を駆け巡っています。それらの多くは Mozilla による Microsoft の既存技術の再実装であるとか、Google の技術に対抗する新技術であるといった憶測です。それらの憶測のごく一部は間違いではありませんが、Chromeless 0.2 を実際に使ってみるとかなり外れていることがわかります。

Chromeless は 0.2 の段階では XULRunner アプリケーションを書くための新しいフレームワークです。

これまで XULRunner アプリケーションを書くのには XUL や XPCOM 等の学習が不可欠でした。Chromeless 0.2 を使うことでこれら Mozilla 固有技術の学習が不要になります。

プログラマは XUL や XPCOM ではなく、HTML、CSS、JavaScript を使って XULRunner アプリケーションを書くことができます。また XPCOM 等の呼び出しも Add-on SDK が提供する API を利用することができるようになるため XULRunner のバージョンアップに伴う XPCOM 等の仕様変更にわずらわされることがなくなるか、あるいはわずらわしさが激減します。

chromeless のインストール

chromeless のインストールは簡単です。

  1. プロジェクトのリポジトリが github 上にあるので git clone git://github.com/mozilla/chromeless.git でリポジトリを clone します。
  2. Python 2.5 〜 2.7 のいずれかのバージョンをインストールします。
    0.2 の時点で Chromeless のリポジトリの README.md には 2.6 もしくは 2.7 を推奨するとありますのでできればそれらをインストールしましょう。2.5 ではテストをパスできていないとの記載があります。

Chromeless 自体のインストールは以上で終りです。

サンプル・ブラウザを動かしてみる

それでは先に述べた examples/first_browser を動かしてみましょう。筆者は Ubuntu を使っているので他の OS の方は適宜読みかえてください。

コンソールで "./chromeless" を実行してください。すると起動初回時に XULRunner が自動的にダウンロードされ、下図のようなシンプルな Web ブラウザが起動します。

これが Web ブラウザであることを確認するために実際にロケーションバーに URL を打ち込んでみましょう。

非常にシンプルですが、まぎれもなくこれが Web ブラウザであることが確認できました。

さて "./chromeless" と打ち込むことで examples/first_browser を起動させたわけですが、このコマンドラインは実は "./chromeless examples/first_browser" と打ち込んだことと同義になります。

実行ファイル chromeless は引数にアプリケーションのディレクトリをとります。Chromeless 0.2 の時点では引数を省略したデフォルトが examples/first_browser なわけです。

XULRunner アプリケーション化

先の examples/first_browser を XULRunner アプリケーションにしてみましょう。非常に簡単です。

"./chromeless appify examples/first_browser" を実行します。"xul app generated in build/My First Browser" というメッセージが表示されればできあがりです。

XULRunner アプリケーションを開発したことがある人なら build/My First Browser ディレクトリに馴染みのあるディレクトリ構造を見つけるでしょう。My First Browser という実行ファイルが xulrunner-stub をリネームしたものです。この "My First Browser" を実行すると先ほどのシンプルな Web ブラウザが XULRunner アプリケーションとして起動します。

つまり開発者はこの build/My First Browser の My First Browser ディレクトリをアーカイバでアーカイブして配布すればいいわけです。

ただし Chromeless 0.2 の段階では開発者と同じ環境で動作する XULRunner がパッケージングされます。開発者が開発に使っていない OS 用のパッケージングは、Chromeless 0.2 の時点では従来どおり手作業でする必要があります。

スタンドアローン・アプリケーションの生成

リポジトリの README.md にこのような記載があります。

Finally, it's possible to generate a "XULRunner application", which is a folder that is much smaller than a standalone application, but can be run under (a specific version of) xulrunner. Again, the output will be placed in the build/ directory

これを読むと将来 Chromeless は XULRunner アプリケーションだけではなく、普通のスタンドアローン・アプリケーションも生成できるようになるようです。ちなみに 0.2 の段階では Chromeless はスタンドアローン・アプリケーションの生成はできていません。筆者が確認したところ、examples/first_browser ディレクトリの中身と、いくつかのリソースがコピーされているだけのようです。将来はここに XULRunner アプリケーションか普通の実行可能ファイルのいずれかサイズの小さい方が生成されるようになるのでしょう。

Chromeless という名称について

twitter やはてなブックマークなどを見ていると、技術的な話題やなにが嬉しいのかといったような話題よりも、このような話題の方が過剰に大好きな方が多いようです。

Chromeless という名前と Google Chrome はおそらく関係ないはずです。

Firefox ( に限りませんが ) が持つ XUL で書かれた "皮" の部分をもともと Browser Chrome と呼び、またブラウザ本体のコードが実行されるコンテキストを Chrome コンテキストと呼びます。Mozilla 製品で Chrome というときは、それらを指します。ですから Chromeless ≒ XULless と読みかえた方がいいかもしれません。

2011/05/03