Firefox 3.6.2以降のペルソナで拡張機能などからローカルファイルを有効にする方法
上記エントリでFirefox3.6.2からペルソナの画像ファイルがhttp上のファイルでないと表示されなくなりました。そしてローカルファイルのfile://
から始まるURLでも良いようにコードを直に書き換えるという大胆なことをしました。
が、どう考えても良いやり方ではないので探っていたところ、Firefoxインストールディレクトリ/modules/LightweightThemeConsumer.jsmというファイルを見つけました。
MXRで検索してみるとhttp://mxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/general.xmlのXBLで使用されていて、実際のペルソナの画像やカラーの設定をするモジュールのようです。このXBLはFirefox自体のroot要素に使用されているので、document.documentElement._lightweightTheme
からアクセスできます。
let lwt = {}; Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", lwt); let theme = lwt.LightweightThemeManager.usedThemes[0] document.documentElement._lightweightTheme._update(theme);
と直に_update
メソッドを実行すればどんなURLであっても変更が可能です。
拡張機能などで、ローカルファイルを使用してペルソナを変更する場合には有効な手だと思います。ただ、「どんなURLであっても」なので危険かもしれません。