Firefox 20 で Tombloo が動かなくなった場合の対処

Firefox 20 で無効化された E4X (ECMAScript for XML)の影響で Tombloo アドオンが正常に動作しない件についての解決方法。

Firefox昨日、「Firefox 20 にしたら Open With がちょっと便利になった」 っていう記事を書いたんですが、同時に問題も発生しまして、Tombloo が動かなくなっちゃったんですよね。

どんな感じかっていうと、下記のように、コンテクストメニューから Tombloo のサブメニューが開かなくなっちゃった。もちろん、サブメニューを使わずに直接ポストしようとしても投稿に失敗します。

Firefox 20 で Tombloo の不具合

ということで、早速対策をと思って調べたんですが、ありがたいことにすでに修正用のファイルを GitHub に上げていただいていますので、それを適用すれば基本的には動作します。

※ 私の環境ではもう 1つ罠があったのでそれに関しては後述。

今のところ、実際の xpi ファイルの方には今回の修正ファイルがマージされていないので、修正が適用された JavaScript ファイルを個別に上書きすることが必要ですが、ちょっと素人にはわかりにくいので下記に簡単に方法を。

修正版ファイルを入手

修正が適用されたファイルは下記にあります。

下記、7つの JavaScript ファイルが修正されています。

それぞれのページのソースコードが表示されている部分の右上にある 「Raw」 から実際の JavaScript ファイルを取得できますので、すべてローカルに保存しましょう。

GitHab からソースコードを取得

修正版の JavaScript を上書き

Firefox のアドオンフォルダに入手した修正版の JavaScript ファイルを上書きします。各ファイルの場所は、Firefox のプロファイルフォルダ内にある、Tombloo フォルダですが、プロファイルフォルダは Firefox の 「ヘルプ」 メニューにある 「トラブルシューティング情報」 を開けば、プロファイルフォルダを開くリンクがあります。

トラブルシューティング情報

開いたら、プロファイルフォルダ内で 「01_utility.js」 とか検索すれば格納フォルダの場所はわかると思いますので、そこに先ほど入手した JavaScript ファイルを上書きしていきましょう。

「tombloo.js」 だけが、

  • Tombloo フォルダ > components

に入っていますが、その他の JavaScript は

  • Tombloo フォルダ > chrome > content > library

に入っています。

確実に上書きできたら、Firefox を再起動しましょう。これで今まで通り Tombloo が動作してくれると思います。

Tombloo にパッチを追加している人は注意

私の場合は、いくつかのパッチを追加していましたが、その中で、インストールされてる全てのパッチを一括アップデートできる 「tombloo.extension.update.patches.js」(参考: インストールされてる全てのパッチを一括でアップデートできる Tombloo パッチ) が古かったようで、これが原因で一瞬ハマりかけました。

一回パッチを全部無効にして起動したら正常に動いたので、そこから調べていったらどうもこれということで、試しに配布先を見に行ってみたらアップデートされてたので入れ直してみたら問題なく動作しました。

パッチを入れてる人で Tombloo 側の修正だけでは動かないっていう人は確認してみるといいと思います。

なぜ Firefox 20 で Tombloo が動作しなくなるのか

E4Xを含むコードは、Firefox 20.0ではSyntaxErrorとなります。これにより、TomblooはE4Xを含むファイルを読み込んだ段階で処理を停止してしまいます。これは、E4X無効化への対応はパッチでは行えない事を意味しています(Tomblooのファイルを読み込んでからパッチを読み込む為)。

Remove E4X code for Firefox 20+ #53 : tombloo / GitHub から引用

Firefox で実施される E4X (ECMAScript for XML) の廃止が原因。E4X ってのは下記を参照。

[2013年4月8日追記]
上記で紹介した修正点が、プラグイン本体にマージされて、Tombloo 0.4.36 としてリリースされました。

記事をここまで御覧頂きありがとうございます。
この記事が気に入ったらサポートしてみませんか?