朝顔日記

userChromeJS 1.0 キタ

2008-12-23

拡張機能にするほどでもないちょっとした改良を、スクリプトファイルを書くだけで Firefox に施すことができるけど、使うにはちょっと敷居が高いツウ向けの拡張機能、userChrome.js の後継の拡張機能を alta88 氏が発表しました。zeniko 氏の userChrome.js の最終バージョンは 0.8 だったのですが、今度は微妙に名前が変わって、ドットなしの userChromeJS になっています。拡張機能の id も変わっているので、これまで userChrome.js を使っている人がインストールすると上書きされずに、userChrome.js 0.8 と userChromeJS 1.0 が同居することになるので注意が必要です。

さて、userChromeJS の目玉ですが、ユーザファイルの管理を容易にする 'import' 機能がネイティブ実装された事です。これまでの、userChrome.js はユーザスクリプトの管理を容易にするために、いわゆるサブスクリプトローダというものを使っていました。そこらへんの事情については、以前書いた Firefox の拡張機能、userChrome.js の私の使い方 を参照していただくとして、サブスクリプトローダを使うことでユーザスクリプトを個別に記述することが可能になっていたわけです。これが、今度の userChromeJS では、この機能自体が内蔵されたということです。

ただ、プロファイルの chrome フォルダにある userChrome.js ファイルにどこにあるユーザスクリプトを読み込ませるかの指定は行う必要があります。この指定の仕方については、プロファイルの extensions フォルダの userChromeJS@mozdev.org フォルダにある、README.txt に書いてあります。ちなみに、プロファイルの chrome フォルダに userChrome.js というファイルがない場合は自動的に userChrome.js というファイルが生成されるのですが、この userChrome.js というファイルの内容は README.txt と同じものです。

何かたくさん書いてあるように見えますが、コメントで使用方法が書いてあるだけです。一から自分で userChrome.js を作成してもいいですし、自動生成された userChrome.js ファイルの末尾あたりにどこにあるユーザスクリプトを読ませるかという設定を書いておけばいいでしょう。

以下簡単に、指定の仕方を書いてみましょう。

.js や .xul なファイルを単独で指定する場合は、以下のようにします。

userChrome.import("ファイルのフルパス");

具体的には以下のような感じです。

userChrome.import("C:\\Program Files\\Mozilla\\scripts\\ほげほげ.js");

Windows の場合は、上記のように "\" をエスケープしてやる必要があります。

相対パスで指定することもできます。その場合は以下のように

userChrome.import("ファイルの相対パス", "Token");

プロファイルの chrome フォルダの scripts フォルダに格納する場合だと以下のようになります。

userChrome.import("scripts/ほげほげ.js", "UChrm");

ここでいう、Token には Getting special files に記述されているものが使えるようです。具体例で出した UChrm はプロファイルにある chrome フォルダを指します。

ファイル単独の import ではなく、フォルダ指定もできます。フルパスで指定する場合は以下のような感じ

userChrome.import("C:\\Program Files\\Mozilla\\scripts");

デスクトップにある scripts フォルダにある場合は以下のように。

userChrome.import("scripts", "Desk");

従来どおり、プロファイルの chrome フォルダ内にあるやつは全部読んでくれ、という場合は以下のように。

userChrome.import("*", "UChrm");

私の環境では、おおむねうまく動いているように見えているんですが、うまく行かない場合もあるようで、userChromeJS のインポートを使わずに、従来のサブスクリプトローダを使うこともできるようです。

おまけで、私が実際に使っている userChrome.js ファイルを書いておきましょう。これで全文です。

userChrome.import("d:\\phoenix\\scripts");

さらにおまけで、使っているユーザスクリプトのリスト。

  • AlwaysRememberPassword.uc.js
  • backforward-buttonToolTip.uc.js
  • ColorTab.uc.js
  • CopyURL+Title.uc.js
  • copyXpath.uc.js
  • DragNgoModoki5.uc.js
  • ElementInspector.uc.js
  • go30.uc.js
  • Launcher.uc.js
  • OpenChromeFolder.uc.js
  • seachbarOnDropUseTextContent.uc.js
  • SearchEngineDefault.uc.js
  • shortmenu.uc.js
  • TabContextMenu.uc.js
  • textLink.uc.js
  • viewMenuInStylishPopup.uc.js
  • conqueryModoki3.uc.xul
  • PipeliningToggle.uc.xul

「userChromeJS 1.0 キタ」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2008/12/diary_081223a.html