第4日目:クラフトマンシップを持て――userChrome.jsFirefoxを鍛え直せ! フォクすけブートキャンプ

フォクすけを完全にあなたの支配下に置くための究極のワークアウト、フォクすけブートキャンプへようこそ。第4日目は明日のことを考えてuserChrome.jsのインストールをはじめよう。

» 2007年08月04日 13時26分 公開
[伊藤綾,ITmedia]

 フォクすけブートキャンプへようこそ。これまで主に拡張機能を用いたカスタマイズに集中してきたが、それは一端中止。本当に理想のFirefoxを手に入れたいなら、自分であるべき姿をイメージできること、つまり、究極的には自分自身で作り上げていく必要がある。今回からは、ステージを一段上げ、自分の意志で好みのFirefoxを仕立て上げるためのエクササイズをはじめよう。

 自分の意志で好みのFirefoxを仕立て上げるにはどうすればよいか。そう、第2日目でほんの少しだけ触れたuserchrome.cssやusercontent.cssを編集する方法だ。Firefoxのユーザーインタフェースを制御するのがuserchrome.css、Webサイトの表示を制御するのがusercontent.cssであることはすでに述べたが、これらを直接編集することは慣れていないとおすすめできないし、メンテナンス性の観点からもあまりよくない。できることなら、これらのファイルとは別にサブセットとしてファイル(ユーザースクリプト)を用意し、必要に応じて使い回したいだろう。

 第2日目で紹介したStylishでもuserchrome.cssやusercontent.cssに即したユーザースタイルシートを作成できるが、これとは別のアプローチとして注目したいのがしJavaScriptによるユーザースクリプトを用いたカスタマイズだ。JavaScriptを用いることで見た目を変える以上の変化をFirefoxに付与できる。

 ユーザースクリプトを用いたカスタマイズでもっとも知られているのがGreasemonkeyだろう。Greasemonkeyは、ユーザースクリプトを用いてさまざまな機能を指定ドメインやURLに対して付与できる。

 これに対し、今回紹介するuserChrome.jsは、Firefox自体に新たな機能を付与するためのものだ。通常であれば、.xpiとしてパッケージングされて配布される機能を、JavaScriptによるユーザースクリプトで代替してしまうことができる。単機能なものであればその多くがJavaScriptで実現できるだろう。

 もちろんデメリットについても書いておく必要があるだろう。userChrome.jsで用いるユーザースクリプトは、XPIのようにインストール・自動更新が簡単に行えないほか、Firefox本体のバージョンとの互換性チェック機能も存在しない。さらに、ユーザースクリプト同士のコンフリクトが発生することもある。つまり自分でメンテナンスする必要があるということだ。

 また、一番やっかいなのは、悪意のあるスクリプトであれば、セキュリテイに重大な影響を与えることもあるということだ。少なくとも、JavaScriptがまったく分からない、何を注意すればよいのか分からない、という方は、userChrome.jsのインストールはしばらく待ってほしい。大丈夫。そんな君でもこのブートキャンプの後では、「userChrome.jsってチョロいよね」と言えるようになるのだから。焦りは禁物だ。

 前置きが長くなってしまった。早速userChrome.js(userchrome.js.2.xpi)のインストールへ移ろう。userChrome.jsの最新版は0.8、ダウンロードはこちらから行える

 インストール後、Firefoxを再起動すると、FirefoxのプロファイルフォルダにuserChrome.jsというファイルが作成される(OSごとのプロファイルフォルダはこちらを参照)。紛らわしいが、userChrome.jsという拡張機能は、このプロファイルフォルダ以下にあるuserChrome.jsを読み込んで実行する。それ故、このuserChrome.jsに必要なJavaScriptを記述する、というのが基本的なスタイルとなる。

 しかし、上述したように、幾つもの機能を1つのファイルに記述してしまうと、非常にメンテナンスがしにくくなる。このため、サブスクリプトローダを用いるユーザーが多い。プロファイルフォルダ以下にあるuserChrome.jsをサブスクリプトローダで置き換えてしまうことで、それぞれのJavaScriptを.uc.js/xulファイルなどとして別に持つことができる。サブスクリプトローダはSub-Script/XUL LoaderやSub-Script/Overlay Loaderなど幾つか存在しており、好みのモノを選べばよいが、ここでは、Sub-Script/XUL Loaderを用いる。こちらのページ中段にSub-Script/XUL Loaderへのリンクがある。リンク先はJavaScriptなので、これをプロファイルフォルダ以下にあるuserChrome.jsとして保存する。その後、このファイルを開き、以下のように呪文を付け加えておく。

/* :::::::: Sub-Script/XUL Loader ::::::::::::::: */


// automatically includes all files ending in .uc.js and .uc.xul from the profile's chrome folder


if (location != "chrome://browser/content/browser.xul") throw "stop";

(function() {

                        :

                        :


太字部分が付け加えた1行

 これで準備は万端だ。次回からは実践編としてuserChrome.jsを用いて既存の拡張機能の代替をさせてみよう。本連載を読み進めてくれれば、きっと理想のFirefoxを作り上げることができるだろう。ゆっくりでいい、とにかく続けるんだ。君ならできる。

今日の成果

userChrome.js(userchrome.js.2.xpi)のインストール

サブスクリプトローダ「Sub-Script/XUL Loader」の導入


関連キーワード

Firefox拡張機能 | Firefox | フォクすけ


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ