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でも改修されるものと思いますです。
以上
最近のコメント