« 前のひとこと | トップページ | 次のひとこと »

cocolog:88438901

Firefox 57 Quantum と Greasemonkey 4.0 の後方互換性のなさにイライラする。フリーで配布されているのはありがたく、そこに怒るのは筋違いではあるんだが、これまでの「資産」が使えなくなるのはやっぱり痛い。 (JRF 9326)

JRF 2017年11月17日 (金)

Firefox 57 すなわち Firefox Quantum に自動更新されて、過去のアドオン(add-on)が使えなくなってしまったことにビビって、しばし Firefox 56 にダウングレードしたのだが、いろいろ整理した上で結局、Firefox 57 を使うことにした。

JRF2017/11/176649

アドオンの話は後述するとして、Firefox 57 は、起動と新しいタブを 2,3 個開くのが遅い。新しいタブをたくさん開く場合は、前より少し遅い程度なのだが、最初の新しいタブを 1, 2 個開こうとするとなぜか動作が止まってしまう。

JRF2017/11/170917

Firefox 57 の売りの一つはスピードアップのはずだが、その実感はなく、起動とタブの遅さのため、全体としてかなり遅く感じる。コア数が多い CPU とかだとメリットを享受できるんだろうか? Firefox は寄付などに頼り金持ちの意見を聞きやすいのはしかたないことだから、こうなっちゃうのかな?

JRF2017/11/171262

……。

Greasemonkey もバージョン 4.0 に上がってしまった。そして後方互換性が切り捨てられ、GM まわりの関数がすべて「非同期」関数にされてしまった。GM.getValue まども値をそのまま返すのではなく、値に対して Promise というオブジェクトをラッパーでくるんだようにして返す。

JRF2017/11/174613

それを値として使おうとしたら await GM.getValue(name, default) みたいに await が必要。しかし、await はどうも async なしですることはできないらしい。async された関数の中でのみ await ができるということで、await を使うときは、非同期関数の書き方をしないといけない。とても面倒くさい。

JRF2017/11/175059

GM.xmlHttpRequest などは元から非同期で書き換える部分はなく、GM.openInTab とかは最後に出てくることが多いから、ほとんど書き換える必要はないんだけど、GM_setValue GM_getValue が GM.setValue GM.getValue になる部分については大きな書き換えが必要になる。

JRF2017/11/175038

一応それをしてみた例が↓になる(バージョン 0.04)。「集計」はちゃんと動かなくなっているが…。

《Cocolog_Pro_Analyzer:ココログプロ用アクセス解析補助 Greasemonkey》
http://jrf.cocolog-nifty.com/software/2014/03/post-3.html

JRF2017/11/178318

Firefox 57 & Greasemonkey 4.0 に乗り換えるにあたって、私は Greasemonkey スクリプトをほとんどそのように書き換えたのだった。…しんどかった。

JRF2017/11/178272

……。

最初、あまりにも Greasemonkey の変更が大きいので Greasemonkey 4.0 のアナウンスに「いやならこれを使えばいいよ」という Violentmonkey や Tampermonkey も試してみた。

Violentmonkey は Cocolog_Pro_Analyzer.user.js (バージョン 0.03)はまったく動かなかった。Tampermonkey は少し動いた。

JRF2017/11/179221

が、Tampermonkey の GM_setValue GM_getValue は Greasemonkey のそれと動作に違いがあるようだった。少なくとも Firefox 57 においては。

具体的にいうと、GM_setValue や GM_getValue はページやタブが違ってもその user.js スクリプトが同じなら同じ値を参照できるというのが Greasemonkey の動作で、それは Greasemonkey 4.0 の GM.setValue や GM.getValue でも同じである。

JRF2017/11/178337

しかし、Tampermonkey の GM_setValue GM_getValue は実装に localStorage を使っているのか、タブやドメインが変わると値が参照できなくなっていた。

それでは困る。そこで諦めて Greasemonkey 4.0 を使うことにし、スクリプトの書き換え作業をした。

JRF2017/11/176625

……。

しかも、Greasemonkey 4.0 は変更が大きいゆえか、UI が貧弱で使いにくい!

外部エディタが使えないのはしかたないとしよう。それでも、セーブをするのに「保存」用アイコンすらなく、C-s しないとダメとか、今どきありえる? わかりにくいよ!

JRF2017/11/175013

さらに、新しいユーザースクリプトを一から入力する方法、ないよね? また、ファイルから user.js を取り込むこともできないよね? ネット上に user.js を置けば取り込むことはできる。だから、新しいユーザースクリプトもネット上にいったん名前だけでも置いとかないといけないように思うんだが? これはどうにかして欲しい。

まぁ、このあたりは Greasemonkey のバージョンが上がればすぐに解決するとは思うんだけど。

JRF2017/11/178935

……。

で、Firefox のアドオンの話。

Firefox Quantum になって、Web Extensions ではない昔の XUI などを使ったアドオンは使えなくなった。Mozilla 側は、有名どころのアドオンとは連絡を取りあっており、アドオンが使えなくなったことに「多くのユーザーは(…)気づくことはないでしょう」と言っている(↓)が、私は多くのアドオンが使えなくなることに遭遇した。

JRF2017/11/178669

《Firefox アドオン技術の現代化 | Firefox ヘルプ》
https://support.mozilla.org/ja/kb/firefox-add-technology-modernizing

JRF2017/11/172937

ジェスチャ入力の All in One Gesture は、まぁ、いい。似たようなものはいくらでもある感じだ。アドオンページなど特殊なページでジェスチャが使えなくなるのは痛いがまぁ、がまんできる。

RSS リーダーの Sage++ が使えなくなったのは痛い。Feedbro を代わりに入れたが、Scan のタイミングをこちらで指定できないとか、細かい部分で不満がある。

Emacs ライクの key binding を実現してくれていた Firemacs が使えなくなったのは痛い。これはかえがなく、がまんするしかない。

JRF2017/11/170518

テキストとリンクを同時にコピーする FireLink も使えなくなった。類似の Make Link というものもあるらしいが、それも以前に使えなくなっていたらしい。…これは、Greasemonkey スクリプトを書いた。それについては、↓のひとことで解説する。

JRF2017/11/176319

[cocolog:88438902]
《Firefox の Greasemonkey で右クリックのコンテクストメニュー(contextmenu)を開くとき、コンテクストメニューのターゲットをどうやって取るか? …やっと解決した。》
http://jrf.cocolog-nifty.com/statuses/2017/11/firef-1.html

JRF2017/11/179870

……。

不満が多いが私は Firefox Quantum を使うことを選択した。Firefox の代替として Waterfox や Pale Moon の名が上がっているが、Firefox ほどの信用=ブランド力は私にとってはないため。Firefox を見捨てるには、これまで積み上げてきた「資産」が多過ぎるため。(でも、さすがに今回は、Google Chrome に乗り換えようかとも真剣に検討はしたけどね。)

JRF2017/11/177934

ブラウザに金出してもいいんだけどね。でも、今のところ無料で使わせてもらっている以上、感謝しこそすれ文句はいうべきではないか。「資産」があるから、イライラしてしまうけどね。まぁ、その辺はこらえていかないと…。

JRF2017/11/174984

……。

追記。

さっきググってて見つけたんだけど、FireLink の代わりのアドオンは私の場合、Format Link で充分そう。

JRF2017/11/174106

……。

追記。

Firefox 57 での Greasemonkey 4、iframe まわりがおかしい気がする。上の Cocolog_Pro_Anlyzer.user.js の動作があやしくて、いろいろ試しているがはっきりしない。私のプログラムの書き換えでバグっている可能性もあるし…。

さしあたってのご報告まで。

JRF2017/11/198985

« 前のひとこと | トップページ | 次のひとこと »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/66053064

トラックバックのポリシー

他サイトなどからこの記事に自薦された関連記事(トラックバック)はまだありません。

このころのニュース