Windows版・Linux版Firefox 61では、Tab Warmingと呼ばれる機能が有効化されている(Bug 1456602)*1。タブを切り替える前にいわばウォームアップを済ませておく機能で、ユーザーに見えないところで処理を先取りするため、結果的にタブの切り替え処理が速くなったように感じられる。
タブ切り替えのウォームアップとは具体的に何だろうか。現行のFirefoxはマルチプロセス化されているので、タブを切り替える場合、メインプロセスから切り替え先のタブを司るcontentプロセスに対し、レイヤーツリーを生成するよう指示が出され、その結果がcompositorプロセスに送られて合成(Compositing)の処理が行われる*2。ウォームアップとは、この一連の流れをタブの切り替えが行われる前から開始しておくという意味だ。その後タブの切り替えが実行されなかったときは、レイヤーツリーは捨てられる。
ウォームアップが開始されるタイミングは複数ある。代表的なのは、切り替え先のタブ上にカーソルがホバーしたとき(Bug 1385453)と、タブを閉じるボタン上にカーソルがホバーしたとき(Bug 1430292)である。そのほか、Ctrl+Tabパネルを表示させたとき(Bug 1430153)やマウスの中ボタンの押下を検出したとき(Bug 1472230:ただしFirefox 63から)も対象だ。いずれも手動または自動でタブが切り替わる直前の操作が選ばれている。
Tab Warming機能の性質上、レンダリング処理に時間のかかるWebページほど効果を発揮しやすい。もっとも、タブの切り替えに要する時間は、平均値・中央値ともに減少することが判明しており、特別なケースでなくともユーザーはメリットを享受できる。ちなみに、browser.tabs.remote.warmup.maxTabsの設定値(デフォルトは3)を変更することで、効果範囲の調節も可能だ。
*1:macOS版でも、タブ上のアニメーションが遅くなるバグが解消され次第、有効化される見通し。
*2:Firefox QuantumのOff Main Thread Painting(OMTP)とRetained Display Listsについて - Mozilla Flux参照