次の方法で共有


WebView2 アプリのプロセス モデル

サポートされているプラットフォーム: Win32、Windows フォーム、WinUI、WPF。

WebView2 ランタイムは、Microsoft Edge ブラウザーと同じプロセス モデルを使用します。 このブラウザー プロセス モデルについては、「最新の Web ブラウザーを見る (パート 1)」のブラウザー アーキテクチャ」を参照してください。

WebView2 ランタイム内のプロセス

WebView2 プロセス グループは、WebView2 ランタイム プロセスのコレクションです。 WebView2 プロセス グループには、次のものが含まれます。

  • 1 つのブラウザー プロセス。
  • 1 つ以上のレンダラー プロセス。
  • GPU プロセスやオーディオ サービス プロセスなど、他のヘルパー プロセス。

プロセス 1

WebView2 アプリケーションが WebView2 機能を利用すると、WebView2 プロセス グループ内のプロセスの数と存在が変わる可能性があります。 (ただし、WebView2 プロセス グループには、特定のブラウザー プロセスが 1 つだけ存在します)。たとえば、同じ CoreWebView2Environmentから新しい WebView2 インスタンスを作成しますが、 Source プロパティに別のドメインを使用すると、通常、新しいレンダラー プロセスが開始されます。

レンダラー プロセスの数は、次の条件によって異なる場合があります。

これらの余分なプロセスをいつ作成するかを制御するロジックは、Chromium アーキテクチャによって異なり、WebView2 ランタイムの範囲外です。

WebView2 ランタイム プロセスとユーザー データ フォルダー

WebView2 ランタイム プロセス コレクション内のすべてのプロセスはブラウザー プロセスに関連付けられ、そのプロセスは 1 つのユーザー データ フォルダーに関連付けられます。 アプリケーションで複数のユーザー データ フォルダーを使用する場合、これらのユーザー データ フォルダーごとに WebView2 ランタイム プロセスのコレクションが作成されます。

ユーザー データ フォルダーは複数のアプリケーションで共有できますが、「 ユーザー データ フォルダーの管理」の説明に従って、パフォーマンスと管理への影響を考慮してください。

プロセス 2

複数のユーザー データ フォルダーを使用するには、WebView2 アプリケーションで異なる CoreWebView2Environment オブジェクトを作成する必要があります。 WebView2 インスタンスは、構成された CoreWebView2Environment オブジェクトを介して、特定のユーザー データ フォルダーに対して作成されます。 各 CoreWebView2Environment オブジェクトは、異なるユーザー データ フォルダー値で構成する必要があります。

特定のユーザー データ フォルダーに対して最初の WebView2 インスタンスが作成されると、そのユーザー データ フォルダーに関連付けられている WebView2 ランタイム プロセス コレクションのブラウザー プロセスが開始されます。 追加のすべてのプロセスは、そのブラウザー プロセスの有効期間によって管理されます。

CoreWebView2Environmentは、ユーザー データ フォルダーと、それに関連付けられているプロセスのコレクションを表します。 レンダラー プロセスは、Web サイトの分離に応じて、同じユーザー データ フォルダーを使用する複数のCoreWebView2 インスタンス内のフレームを処理できるため、特定のレンダラー プロセスは 1 つのCoreWebView2 インスタンスに関連付けされません。 「フレームごとのレンダラー プロセス - サイト分離」を参照してください。

複数の環境オブジェクト

同じ方法で構成された複数の CoreWebView2Environment オブジェクト (同じユーザー データ フォルダーの共有を含む) を作成した場合、それらは同じユーザー データ フォルダーと同じ関連するプロセスのコレクションを表します。 これらの CoreWebView2Environment オブジェクトのいずれかを使用して、1 つの共有ユーザー データ フォルダーと関連するプロセスのコレクションを含む CoreWebView2 を作成します。

別のCoreWebView2Environmentが既に使用しているユーザー データ フォルダーを使用してCoreWebView2Environmentを作成しようとして、2 つのCoreWebView2Environment オブジェクトを同じに構成しない場合 (たとえば、異なるCoreWebView2EnvironmentOptions.Language値で作成された場合)、2 つ目のCoreWebView2EnvironmentWebView2 オブジェクトの作成に失敗します。 これは、同じプロセス内または異なるプロセス内の CoreWebView2Environment オブジェクトに当てはまります。

プロセス イベントと有効期間の処理

ブラウザーとレンダラー のプロセスでクラッシュやハングに対応するには、CoreWebView2ProcessFailed イベントを使用します。

関連付けられているブラウザーとレンダラー のプロセスを安全にシャットダウンするには、CoreWebView2ControllerClose メソッドを使用します。

ブラウザー タスク マネージャーを開くには、OpenTaskManagerWindow メソッドを呼び出します。

WebView2 のブラウザー プロセスに関連付けられているすべてのプロセスが、関連する目的を含めて表示されます。

関連項目