firefox 1.5 beta2 で動くように変更 livehttpheaders とbookmarks synchronizer


追記
と、思ったら、bookmarks synchronizerの最新版は探せばある模様。
http://d.hatena.ne.jp/nyama/20051101/1130771302


まず拡張子がxpiのファイルをzipとみなして解凍してinstall.rdfをエディタで開いて編集。
1.0
を1.5とか1.6とか適当に現行バージョンまで上げる。これはインストールできる最大バージョンを指定している。

これだけで、内部のAPIに変更がなければ動くはずなのだけど、勿論そうはいかない。

livehttpheadersの場合、設定の変更ができない、反映されない。bookmarks syncronizerはブックマークのアップロードとかいろいろ機能がそもそも動かない。

で、つぎにchromeフォルダのなかのjarファイルをさらにzip解凍。
と、contentフォルダの中にいろいろファイルができる。

livehttpheadersの場合、TasksOverlay.xulのなかのgetBoolPref()という関数に問題があるみたい。なんか名前空間というか参照範囲が変わったのか、ここでビルトインで提供してある関数を拡張側で再定義しているんだけど、それが、元の再定義前の関数が実行されてしまっている。なので、ものすごく泥臭く、再定義版の関数名を_getBoolPrefと変更。

つまり二箇所しかないgetBoolPrefという文字列を両方とも変える。

で、解凍したやつを全部圧縮して元通りにして、firefoxで開くとインストールになるので、いったん終了して起動すると、動くようになる。

bookmarks synchronizerの場合、rdf関係でNC_NSという文字列がgNC_NSに変わったみたい。(すごい適当)なのでこれも単純に文字列を置き換え。

content/bmsyncOptions.js: var nameArc=RDF.GetResource(NC_NS+"Name");
content/selectFolder.xul: var nameArc=RDF.GetResource(NC_NS+"Name");

この二つ。あとは同じ。

とりあえず動いた、というレベルのハックなのでちゃんとした対処とか、中の動作ロジックを理解してあれしているわけではないので、そのへんご了承ください。