Firefox11に無体な変更を施して画像だけの表示形式を以前に戻してみる

Firefox11になってユーザインタフェイスが変えられ、
画像だけを表示した際に中央表示されたうえに周辺部分が黒色になってしまったわけだが、
Firefox11がリリースされた日の辺りで述べたような方法がうまく通るか試みてみた。

以下ではWindowsのcmd上でJDK*1のjarコマンドをメインに使って行っているが、
対象となるomni.jaはjarファイルであり、すなわちzipファイルなので、
適当な解凍プログラムと圧縮プログラムでも行えると思う。
たとえば、Windowsなら拡張子をjaからzipに一時的に変更すれば、
エクスプローラからマウス操作で標準のzip取り扱い機能を使って全体を解凍することもなく行えるかもしれない。
さらには、FirefoxのスタイルエディタでTopLevelImageDocument.cssの内容を取得することはできるので、
omni.jaからの取り出しに関しては圧縮関連の道具立てを必要としない。
後述するようにこれをomni.jaに戻す必要があるが、
エクスプローラでzipに改名したomni.jaのres/下にドロップすればよさそうな気がする。試してないが。

自分的にはせっかくのja(r)ファイルなので、jarコマンドを使って全解凍することなく、
omni.jaファイル中のTopLevelImageDocument.cssファイルを変更、置換してみた。

まず、これは重要なことで、Firefoxのインストールディレクトリ直下のファイルomni.jaを
別名でコピーしておくなどして適当にバックアップしておく。
そして、適当なディレクトリにomni.jaをコピーする。もしくは、元の場所のままでもいい。

C:\foo> jar tfv omni.ja res/TopLevelImageDocument.css
  2349 Fri Jan 01 00:00:00 JST 2010 res/TopLevelImageDocument.css

これがターゲットのresource://gre/res/TopLevelImageDocument.cssの実体である。

C:\foo> jar xfv omni.ja res/TopLevelImageDocument.css
 \res/TopLevelImageDocument.cssが展開されました

jarコマンドでTopLevelImageDocument.cssファイルを取り出して、

...snip
/*
@media not print {
  body {
    background-color: #222;
    margin: 0;
  }

  img {
    position: absolute;
    margin: auto;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
}
*/
...snip

のように、@media規則のprint以外のメディアタイプについての記述全体をコメントアウトした。
自分的には印刷やそのプレビューといったprintメディアタイプに関わるようなFirefoxの使い方はしないし、
CSSの記述も今回の件に関わるものではないので、printメディアタイプに対する記述はそのままである。

C:\foo> jar ufv omni.ja res/TopLevelImageDocument.css
res/TopLevelImageDocument.cssを追加中です(入=2353)(出=1140)(51%収縮されました)

修正したCSSファイルをjarコマンドでomni.ja内のCSSファイルと置き換えた。

C:\foo> jar tfv omni.ja res/TopLevelImageDocument.css
  2353 Fri Jan 01 00:00:00 JST 2010 res/TopLevelImageDocument.css

変更後のファイルはコメントアウト用に追加した4バイト分だけ増えている。
ファイルの更新日時が変わっていないのはtouchで元のファイルに合わせたからである。
多分、そんなものはFirefoxも見ないだろうし、影響することもないだろうが、念のため。
同様の理由で、変更後のomni.ja自体の更新日時も元のファイルに合わせてある。
こうして更新したomni.jaをFirefoxのインストールディレクトリにコピーして作業終了である。
間違ってもバックアップせずに元のomni.jaを書き潰さないように注意が必要。

そして、Firefox11を起動し、画像のみを表示させると……
うん、ちゃんと今まで通りに白地に左上寄せ表示に戻っている。

この方法はこの前に書いたように、とても行儀の悪い方法であり、また、耐オフィシャルアップデート性が全くない。
この問題に対するちゃんとしたコンフィグ方法が用意されているはずだと思う。
けれど、調べたりするのが面倒なので、とりあえずこれで様子を見てみよう。

ちなみに、omni.jaはそのままにして、
「画像だけを表示」→「ツール/Web開発/スタイルエディタ」で、
resource://gre/res/TopLevelImageDocument.cssを変更して保存したCSSファイルを
Firefoxのインストールディレクトリ直下のresディレクトリに同名ファイルとして置いても効果はなかった。
多分そうなるだろうとは思っていたが、omni.jaにある設定が優先される(もしくはresディレクトリを見ない)ようだ。
もしこれでうまくやれるのなら解凍などの面倒なことをしないでもFirefox自身の道具立てだけで済むのだが。

*1:Java Development Kit: Javaプラットフォーム向けの開発ツール集