先日、社会理工で Firefox の拡張機能を作るワークショップが開催されました。わたしは会議と重なって泣き泣き、無理矢理参加された感の漂う学生さんたちを見送りました。ブツブツ言いつつも、それなりに楽しんできた様子です。で、どんなことをやったのか教えてもらおうと思ったら、あまり教えてくれない。いつものことながら敬老精神に欠けるなぁ。
でも、ひとつ重要なことを教えてくれました(加藤くん、感謝)。拡張機能を書くのはChromeの方が簡単なんですって。なんでも、Firefox はGUIを記述するためのXML形式を覚えなくてはいけないのだけれども、Chromeは基本的にHTML, CSS, JavaScript だけで書けるんだそうだ。「おぉ、それなら小父さんにもできるかも。」
まずは、やってみました。拡張機能の作成。滅茶苦茶簡単でしたよ。三つのものを用意します。拡張機能の仕様にあたるJSONファイル、拡張機能本体にあたるHTML、そしてツールバーに表示するためのアイコン。
まずはJSONファイルですが、こんなものです。
{
“name”: “押してごらん”,
“version”: “1.0”,
“description”: “ちょっとしたメッセージを表示します.”,
“browser_action”: {
“default_icon”: “icon.png”,
“popup”: “popup.html”
},
“permissions”: []
}
でも、根っこのところから面倒がりのぼくは、こんなに引用符を書きたくない!ということで、JavaScript から生成することにしました。そのTraceMonkeyスクリプトがこれ:
#!/opt/local/bin/js
var manifest = {
name: ‘name’,
version: ‘1.0’,
description: ‘description’,
browser_action: {
default_icon: ‘icon.png’,
popup: ‘popup.html’
},
permissions: []
};
load(‘/Users/wakita/lib/javascript/json2.js’);
print(JSON.stringify(manifest, null, 2));
これを以下のように実行すれば、manifest.jsonができあがります。((実は manifest.js の方も最初は日本語で書いてありました。でも print すると妙なエンコーディングされて Chrome で文字化けしてしまうので、manifest.js の方は英語で書き、生成した manifest.json の方を修正して作りました。かえって面倒かも??))
./manifest.js > manifest.json
次にボタンをクリックしたときにポップアップ表示される HTML ファイルがこれ:
Chromium/Mac
拡張機能が動いてるぜ!
ぼくが見た例題はもっと単純だった((bodyタグすらなかった))のですが、日本語表示をするには charset の設定が必要みたいです。
ということで、早速、Google Chrome for Mac をダウンロードし(始めて触る Chrome ワクワク)、拡張機能を登録。。。あれっ、ないじゃないの。拡張機能の登録のためのボタン!ガーン。
はい、Mac 版はまだ拡張機能をサポートしていないのでした。先に調べておけばよかったのですが、もう After the festival です。
いやいや、ここでめげてどうする。もう少し調べたら、正式版の Chrome とは別にオープンソースの Chromium というのがあるとか。自分の拡張機能は作ってしまったんだから、ここは Chromium を使ってみるしかないでしょ。
(調査、ダウンロード、ビルドに約一時間)
Chromium の上で無事に動きました。こちらがその証拠写真です。
昨日の今日ですけれども、Mac 版 Chrome のβ版が更新されて、拡張機能がサポートされたということです。ということで、Chromium をダウンロードしなくても、簡単に拡張機能が試せます。