フォクすけを完全にあなたの支配下に置くための究極のワークアウト、フォクすけブートキャンプへようこそ。第4日目は明日のことを考えてuserChrome.jsのインストールをはじめよう。
フォクすけブートキャンプへようこそ。これまで主に拡張機能を用いたカスタマイズに集中してきたが、それは一端中止。本当に理想の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() {
:
:
これで準備は万端だ。次回からは実践編としてuserChrome.jsを用いて既存の拡張機能の代替をさせてみよう。本連載を読み進めてくれれば、きっと理想のFirefoxを作り上げることができるだろう。ゆっくりでいい、とにかく続けるんだ。君ならできる。
Copyright © ITmedia, Inc. All Rights Reserved.