Firefoxでe10s(マルチプロセス)を有効にする方法
はじめに
Twit SideはWebExtensionsに対応しました。
しかし、Firefoxのe10s(マルチプロセス)が無効になっていると、一部の機能が正常に動作しないため、強制的に有効にする方法を以下に掲載します。
手順
about:supportを開きます。

- マルチプロセスが無効になっていることを確認します。
マルチプロセスが有効であれば、以降の手順は不要です。

about:configを開きます。

- 「危険性を承知の上で使用する」をクリックします。

- 検索欄に、
browser.tabs.remoteと入力します。
以下の様に表示されますが、項目が他にも表示される事があります。

- 何も無い箇所を右クリックし、「新規作成」>「真偽値」をクリックします。

- 設定名に、
browser.tabs.remote.force-enableと入力し、「OK」をクリックします。

- 真偽値に、
trueを選択し、「OK」をクリックします。

- 項目が追加されたら、Firefoxを再起動します。

about:supportを確認し、マルチプロセスが有効になっていることを確認します。

どうして無効になるか
Firefox 54から、e10sが標準で有効になった様なのですが、観測されている感じでは以下の2パターンの要因で無効になることがあるようです。
- アドオンが原因
- アクセシビリティツールが原因
まぁアドオンが原因の場合は、アドオンを無効にするなり削除するなりして下さい。大抵Firefox 57から使えない「旧式(legacy)」なアドオンが原因だと思うので。
問題はアクセシビリティツールが原因の場合ですが、ちらっと調べたところではタッチパネルを搭載した端末だと、アクセシビリティツールが有効になって、代わりにe10sが無効になるような感じだそうです。
なので、Surfaceなど使っている方は大体引っかかるのではないでしょうか。
どうしてTwit Sideがうまく動かないか
さらに余談ですが、Twit Sideではプロフィールウィンドウなど、新たにウィンドウを開いた際にWindowのIDを取得する処理が入っています。
このようなコードです。
browser.windows.getCurrent();
ちなみにこの関数はPromiseなので、結果は非同期で返ってくるのです。
さて、この関数。どうやらe10sが無効になっていると適切に結果が返ってこないようでして、これが失敗するとその後の処理が続かずに、うまくTwit Sideが動作しないようなんですね……
まぁNightlyでは改善していたので、いずれはFirefoxでも改修されるものと思いますです。
以上

最近のコメント