Firefox browser app on a smartphone screen
Photo by Zulfugar Karimov on Unsplash

Mozillaは、Windows 11から起動済みのFirefoxへ、リンクや起動要求を直接渡す機能を開発しています。開発者のローカル環境で行った試験では、リンクの受け渡しにかかる時間が約70ミリ秒から約3ミリ秒に短縮されました。現在は開発途中で、機能を有効にする設定は初期状態でオフになっています。

起動済みのFirefoxへ要求を直接届ける

現在のFirefoxでは、ブラウザーを開いたまま別のアプリでリンクをクリックすると、Windowsが実行ファイルのfirefox.exeを新たに起動します。この一時的なプロセスは、起動済みのFirefoxを探して要求を渡し、処理を終えると終了します。スタートメニューやタスクバーからFirefoxを開く場合も、同じ経路を通ります。

開発中の変更は、Windowsの「accelerated app launches」と呼ばれる高速起動機能を使い、この中継処理を省くものです。起動済みのアプリが要求の受信先をWindowsに登録しておくと、以後の起動操作で、そのアプリへ直接通知が届きます。対象は、スタートメニューやタスクバーからの起動と、そのアプリが既定の処理先となっている種類のリンクです。

Firefoxの開発を担当するDavid Rubino氏は、ローカルで作成した試験用ビルドでリンクの受け渡し時間を測定し、スタートメニューからの要求も直接届くことを確かめました。約3ミリ秒という測定値は、Windowsから起動済みのFirefoxへリンクを渡す処理にかかった時間です。

Firefoxでは初期設定で無効、複数プロファイルへの対応を検討

試作実装は、詳細設定のwidget.windows.accelerated_launch.enabledで制御されます。この設定は初期状態で無効で、Mozillaの実験配信システム「Nimbus」の管理下に置かれています。

開発では、複数のプロファイルが同時に動作している場合に、どのFirefoxへ起動要求を渡すかを検討しています。プロファイルは、Firefoxが設定などを管理する単位です。また、Rubino氏は、この機能を利用する前にMicrosoftへ事前連絡が必要かどうかも確認事項としています。

高速起動に使うAPIは、アプリからWindowsの機能を呼び出すための仕組みで、利用にはMicrosoftの解除トークンが必要な「Limited Access Feature」に分類されます。Firefoxでは、タスクバーへのピン留めに使っている既存の解除コードを、この機能にも利用できます。

Windowsの高速起動が対応する起動方法や呼び出し元アプリ、Windowsのバージョンは限られています。そのため、対応アプリは既存のインスタンスへ要求を転送する従来の処理も維持する必要があります。

Edgeは対応済み、PDFへの拡張も開発中

Microsoft Edgeは、ブラウザーとして初めてこの高速起動機能に対応しました。対応条件はEdge 150以降と、2026年10月の非セキュリティ更新「KB5127936」以降を適用したWindows 11の25H2、26H1、26H2です。

MicrosoftのEdgeチームは、起動済みのEdgeの呼び出しが、多くの利用者で15%、複数の作業を同時に行う負荷の高い環境では最大33%高速になるとしています。Edgeは、起動を速めるためにバックグラウンドで動作させる「Startup Boost」によって、ウィンドウを開いていない場合も動作していることがあります。

Windows Latestは、メモリ4GBの仮想マシンで行った試験で、Microsoft Storeとペイントを開いた状態でタスクバーからEdgeを呼び出す際の応答が改善したと評価しています。Edge向けの変更は10月の任意更新に続き、11月10日の月例セキュリティ更新にも含まれる予定です。

Edgeチームは、PDFファイルを開く操作にもこの機能を広げるため、Windowsチームと開発を進めています。また、Edgeの基盤であるオープンソースのブラウザープロジェクト「Chromium」にも実装を提供しており、ほかのChromium系ブラウザーでの将来的な利用につなげる方針です。

タブや拡張機能を動かすプロセスとは役割が異なる

今回省略するのは、起動要求を起動済みのFirefoxへ届けるために作られ、転送後に終了する一時的なプロセスです。Firefoxの通常動作では、画面やプロファイル、移動先の制御などを担う親プロセスが、ウェブコンテンツや拡張機能などの子プロセスを起動・管理しています。

ウェブコンテンツ用のプロセスは、サイトのHTMLやJavaScriptを扱い、アクセスできる機能を制限するサンドボックス内で動作します。拡張機能のバックグラウンド処理などには、拡張機能用のプロセスが使われます。

こうした処理の分離には、ウェブコンテンツからブラウザーやシステムを保護し、タブで重大な障害が起きた場合の影響を限定する目的があります。異なるサイトを別のメモリ空間に分けることも、攻撃への対策の一つになっています。