2017年11月25日土曜日

Firefox Quantum移行についての個人的備忘録と希望的観測

つい先日、FirefoxがアップデートされFirefox Quantumとなりました。
公式発表によればChromeよりも省メモリかつ高速という事で、個人的には個人的には事前使用可能なNightlyから利用させてもらっておりますが、メモリ使用量については気持ち少ないかなというものですが、確かに今までのFirefoxとは比べものにならないほどキビキビ動作するものとなっております。

新OSなどがリリースされる際は事前にα版などを利用し、ちまちま環境構築をしていき、リリース後問題ないと判断できればそこへ移るスタイルを取っているので今回も同様にしていきました。
Twitterで"Firefox Quantum lang:ja"などのワードで検索してみると「アドオンが動かない!」であったり、それを受け「前の環境に戻した!」などという声が出ておりましたが、セキュリティ面においてはアップデートのなされてないレガシー環境を利用していくことは危険であると言うことだけは念頭に置いておく必要があると思います。
これを受けて自ら思うことと移行に伴って試行してみたことを書き連ねていきます。

1.Firefox Quantum Nightlyをインストール後

・アドオンが動かない
・アドオンによるテーマ変更で変更される部分がメニューバー近辺しかない

というものが触ってみてすぐの感想でした。
Firefoxが64bit化された後、WebExtensionアドオンでなければ利用できないことは事前に発表されておりましたのでこれからに期待という事で、とりあえず触ってみていました。

ここで大切なことは、アドオン(userChrome.js/userContent.css/userChrome.css)を含めた現行環境をまるまる移行できないと思ってください。
有名アドオン作者のブログやコメント欄を覗いて頂ければすぐにわかることですが、Mozillaは2年も移行期間を用意したにも関わらず、まともにAPIを提供してこなかったため、作者がやりたいことは固まっていてもそれが提供されるAPIによって実現可能かわからずに開発を強いるという状態になっている現状であるということです。

Firefox Ver.57以前とそれ以後のアドオンとFirefoxの関係性はツリー型タブ(Tree Style Tab)の作者さんがわかりやすくイラストで説明されているので引用させて頂きます。


ツリー型タブのWebExtensionsへの移行のおはなし
https://qiita.com/piroor/items/21ce5c99d5311973661b

上図のように以前のようにFirefox本体とアドオンによる密接な関係により提供されてきた機能は今後利用できないので、○○として統合的なタブ周辺機能を提供してきたアドオン環境をFirefox Quantumにて再現しようとする場合、単機能と単機能を合わせ複合機能とするイメージで○+○≠○○にするという形を取ります。
何度も申し上げますが、ここで一番大事なのは≠の部分で、以前と同様な環境が必ずしも構築できるとは限らないという事は念頭に置いておいてください。


2.アドオンをレガシー環境とほぼ同じにしていく作業について

何度もクドクドと言いますが、Twitterなどで"Firefox アドオン"などで検索していると、「○○の作者さん、Firefox Quantumでも使えるようにして」のような呟きを見かけますが、メンテナンスも行ってきた有名アドオン作者であればアドオン提供環境が変わる事なんて既知の問題で、それがないってのはそういうことです。
極論、それがない環境が嫌なら自分で作るしか無いんです(暴論)

というわけで、まず自分がFirefoxを利用していく上でこれだけは欲しいというアドオンを列挙すると

①マウスジェスチャ(+ロッカージェスチャ)
②縦型ツリースタイルタブ
③ツリースタイルタブの挙動を細かく設定できるTab Mix Plusのようなもの
④大量に開いたタブ(=セッション)を自動でいくつか保存し、それを任意のタイミングで開き直すもの
⑤不快なウェブ広告を殺すやつ
⑥YouTubeなどの動画キャッシュをあれやこれや出来るもの

というようなものがパッと浮かんだので、とりあえず1つずつ試行してみました。
これが無理であれば、長年利用させて頂いたFirefoxにさよならをしてChromium系ブラウザに移行することも考えていましたが、まだまだそんなことにはならなさそうなので少しの希望を持って読み進めて頂けると幸いです。

という形式で以前にジャンル毎に移行先アドオンを紹介しようとして挫折した経緯がありますので、今回はこの部分は丸投げで行きたいと思います。

Extension Finder (Mozilla)
https://mozilla.github.io/extension-finder/

firefox-webext-list (Google スプレッドシート)
https://docs.google.com/spreadsheets/d/1TFcEXMcKrwoIAECIVyBU0GPoSmRqZ7A0VBvqeKYVSww/edit#gid=0

①に関しましてはFoxy Gesturesを利用しており、基本的に不満はありませんがロッカージェスチャの挙動が不安定なので利用しておりません。

②と③についてはツリー型タブ(Tree Style Tab)+Tab Session Manager環境ですが、そのまま利用ではサイドバー部分に切り替えボタン、上部にタブが表示されてしまうのでuserChrome.cssに以下を追記して利用しています。

/* 上部タブ非表示 */
#TabsToolbar {
    visibility: collapse;
}

/* サイドバーヘッダー消去 */
#sidebar-header {
    visibility: collapse;
}

userChrome.cssなんて知らないという方はTeraPadなどのテキストエディタで作成可能なUTF-8N(BOMなし)形式のuserChrome.cssというファイルを作成し、中身を上記のようにした上で、

通常インストーラー版であれば↓
C:\Users\ユーザー名\AppData\Roaming\Mozilla\Firefox\Profiles\XXXX.default\chrome\userChrome.css

ポータブル版であれば↓
\Firefox Portable\Data\profile\chrome\userChrome.css

に配置してください。また、chromeフォルダがない場合は作成して頂いて構いませんが、userChrome.cssファイルはUTF-8N形式であることが必須ですのでお気をつけください。
またこれに加え、Tab Mix Plusであった未読タブのタイトル文字色を変更する設定の再現として

/* 未読タブのタイトル文字色を変更する */
.tabbrowser-tab[unread="true"] {
     color: red !important;
}

/* タブ復元時にまだ読み込まれていないタブを半透明化する */
.tabbrowser-tab[pending] {
     opacity: .7;
}

を追記して利用しています。
以上の例のように、アドオンだけで補えない部分はuserChrome.cssやuserChrome.jsを利用していく形を取る必要があるのがFirefox Quantumであると認識して頂ければ幸いです。

③のTab Mix Plusの機能をまるまる再現というものは現状で難しいと思われますが、必要な設定項目に絞っていけば再現できる可能性があるので、以下はまるなげ備忘録として残します。

・ロケーション(URL)バー入力で検索した際に新しいタブを開く
NewTabFromUrlbar.uc.js
Open-Link-with-New-Tab

・タブを閉じた際直前に選択していたタブにフォーカスを移す
Tab Open/Close Control


3.これからのFirefoxについて

Mozilla側としてはFirefox本体とアドオンによる機能提供に絞り、それ以外ユーザーで手を加えられる部分は排除していこうとするChrome化を推し進めている最中ですので、いつuserChrome.jsやuserChrome.cssが使えなくなるかわからないという事も気にする必要があります。
最後の砦はabout:configで設定できる項目のみになる可能性があるので、その場合新環境に移行してでもついてきてくれたユーザーであったのに、Firefox ESR Ver.59居残り組なんてものが生まれる可能性があるのでもう一度考え直して欲しいところでもあります。

実際に今できるuserChrome.css+userChrome.js+アドオン+about:configの設定による新環境移行を試していて普段使いに利用できるレベルまで昇華出来たので、ググるなりなんなりして個々人の環境をFirefox ESR Ver.52が利用できる来年半ばまでにゆっくり構築していくことをおすすめします。
過去にFirefox Ver. 32.xxにしがみついてVer.4への移行を渋っていた期間がありましたが、ウェブを取り巻く環境の変化でUserAgentの変更程度では表示すら出来ないページも増えていき環境移行に迫られる事があったので保険をかけるという意味でも大事だと思います。
3ヶ月ほどちまちま試してきた途中経過をまとめようという気持ちで書き始めましたが、日が暮れてもまとめきれる自信が無いのでこれくらいにして、再度改めてESR 59がリリースされるタイミングで記事にします。

0 件のコメント:

コメントを投稿