Firefoxでe10s(マルチプロセス)を有効にする方法

はじめに

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

手順

  1. about:supportを開きます。
  2. マルチプロセスが無効になっていることを確認します。
    マルチプロセスが有効であれば、以降の手順は不要です。
  3. about:configを開きます。
  4. 「危険性を承知の上で使用する」をクリックします。
  5. 検索欄に、browser.tabs.remoteと入力します。
    以下の様に表示されますが、項目が他にも表示される事があります。
  6. 何も無い箇所を右クリックし、「新規作成」>「真偽値」をクリックします。
  7. 設定名に、browser.tabs.remote.force-enableと入力し、「OK」をクリックします。
  8. 真偽値に、trueを選択し、「OK」をクリックします。
  9. 項目が追加されたら、Firefoxを再起動します。
  10. 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でも改修されるものと思いますです。

以上