最初のChrome拡張機能


先日、社会理工で 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 の上で無事に動きました。こちらがその証拠写真です。

最初のChrome拡張機能」への1件のフィードバック

  1. 昨日の今日ですけれども、Mac 版 Chrome のβ版が更新されて、拡張機能がサポートされたということです。ということで、Chromium をダウンロードしなくても、簡単に拡張機能が試せます。

コメントは受け付けていません。