CodeZine(コードジン)

特集ページ一覧

Ubiquityを使った簡単なFirefoxアドオンの作成

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/01/21 14:00

 Firefoxアドオンの開発は手間がかかります。しかし、「Ubiquity」ならもっと簡単に実現できます。UbiquityはMozilla Labsで開発中の実験的なFirefoxアドオンで、ブラウザ用のコマンドラインを使用可能にします。公開されてからまだ日が浅い技術ですが、新しいタイプのWebオペレーティングシステムの基盤として期待されており、大きな注目を集めています。本稿では、Ubiquityでのマクロフィルタの作成方法を紹介します。

目次

はじめに

 2004年に、私はあるゲームソフトメーカーの依頼で、同社の業務で使われているXMLベースのワークフローを修正する仕事を担当しました。依頼の内容は、SFとゲームのカンファレンスに出席しているライターが、インターネットに接続していない環境でも自分のノートパソコンにレポートを書き込めるようにしてほしいというものでした。当時はFirefoxが爆発的に普及し始めていたので、私はもっとよく理解しようと、このブラウザのXULインターフェースをかなり詳しく調べました。

 作業の末にかなり高度なエディタを何とか作り上げ、その過程でFirefoxの仕組みをかなりの程度まで理解することができました。また、XHTMLとJavaScriptとCSSの組み合わせは、XULと同じくらい強力で、XULよりも柔軟性に優れ、しかも多くのアプリケーションでXULよりもサポートが進んでいるということも分かりました。

 さらに、Firefoxのアドオンを作成するのはそう難しくないことも分かりました。とは言うものの、開発には何かと手間がかかります。なぜなら、特にアドオン作成専用の正式な開発IDEがあるわけではないからです(最も近いのはVenkmanですが、そのものではありません)。そのためコンポーネントを作成する場合は、XULのサポートとオーバーレイを構築し、JavaScriptとCSS(とサポートに必要な任意のXBL)でバインドしてから、1つ以上の構成ファイルを更新することが必要になります(構成ファイルはバージョンが変わるたびに変更されると思われます)。そして、内容をzipファイルに圧縮し、新しいアドオンを読み込み、ブラウザを再起動し、ブラウザをクラッシュさせるようなミスを犯していないかどうかドキドキしながら待つことになります。

 大きなアプリケーションの場合はそれでもアドオンを作成するだけのメリットはありますが、単純なものならばバインドしてzipし、更新するという面倒な手続きをせずに済む“その場しのぎ”の拡張を作成するのがよいでしょう。特に作成しようとするアドオンが、単にシステムの基本的なタスクを実行するシステムシェルスクリプトのようなものである場合は、その方が手軽です。

 Mozillaの研究開発チームがUbiquityを作成しようと考えたのもそのためです。これは、ブラウザ用のコマンドラインを使用可能にするアドオンと言えます。例えば、私はいつもかなり長い記事を書いてしまうのですが、私のコンテンツ作成の場は最近ますますWeb上へと移っているので、1段落にどのくらいの単語数を書いたか簡単にはわからないことがあります。

 Ubiquityを使えば、テキストを選択して、Ctrl+Spaceキー(キーは変更可能です)を押すことでコマンドライン"shell"を起動し、プロンプトに"word-count"と入力できます。これで、プロンプトの真下に選択範囲内のかなり正確な単語数が表示されます。Returnキーを押すと、コマンドラインが消えて単語数はポップアップメッセージとして画面の右下隅に表示されます。

 Ubiquityの各種コマンドはJavaScriptで書かれており、ローカルリソースとして内部に保管されています。ブラウザから通常使用できる一連のJavaScript機能に加えて、Ubiquityはページの閲覧や変更を容易にする数多くの追加機能もサポートしています。また、マウスクリック、キープレス、ページロードやアンロードなどのイベントをキャッチするフックも用意されています。この点に関しては、UbiquityはGreasemonkeyと非常によく似ています。ただし、Greasemonkeyはロード時に文書上のスクリプトを実行します。それに対して、Ubiquityスクリプトはロード時だけでなく、いつでも使用できるという長所があります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

  • Kurt Cagle(Kurt Cagle)

    ライター、情報アーキテクト、XML News NetworkとMetaphorical Webのウェブマスター。カナダ、ブリティッシュコロンビア州のビクトリア在住。XMLToday.orgの編集長、O'Reilly Mediaの寄稿編集者。現在、XBRLに関する著書を執筆中。彼のTwitterはtw...

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5