Modelo de proceso para aplicaciones WebView2

Plataformas admitidas: Win32, Windows Forms, WinUI, WPF.

El entorno de ejecución de WebView2 usa el mismo modelo de proceso que el explorador Microsoft Edge. Este modelo de proceso de explorador se describe en Arquitectura del explorador en Examinar el explorador web moderno (parte 1).

Procesos en el entorno de ejecución de WebView2

Un grupo de procesos WebView2 es una colección de procesos en tiempo de ejecución de WebView2. Un grupo de procesos WebView2 incluye lo siguiente:

  • Un único proceso de explorador.
  • Uno o varios procesos de representador.
  • Otros procesos auxiliares, como el proceso de GPU y el proceso del servicio audio.

Proceso 1

El número y la presencia de procesos en un grupo de procesos WebView2 pueden cambiar a medida que una aplicación WebView2 usa características de WebView2. (Sin embargo, solo hay un único proceso de explorador específico en un grupo de procesos WebView2). Por ejemplo, la creación de una nueva instancia de WebView2 desde el mismo CoreWebView2Environment, pero con un dominio diferente en la Source propiedad, normalmente iniciará un nuevo proceso de representador.

El número de procesos del representador puede variar en función de las condiciones siguientes:

La lógica que controla cuándo se crean estos procesos adicionales depende de la arquitectura Chromium y está fuera del ámbito del entorno de ejecución de WebView2.

Procesos en tiempo de ejecución de WebView2 y la carpeta de datos de usuario

Todos los procesos de una colección de procesos en tiempo de ejecución de WebView2 están asociados al proceso del explorador, que a su vez está asociado a una única carpeta de datos de usuario. Si una aplicación usa varias carpetas de datos de usuario, se creará una colección de procesos en tiempo de ejecución de WebView2 para cada una de estas carpetas de datos de usuario.

Varias aplicaciones pueden compartir una carpeta de datos de usuario, pero asegúrese de tener en cuenta las implicaciones en el rendimiento y la administración, como se describe en Administrar carpetas de datos de usuario.

Proceso 2

Para usar varias carpetas de datos de usuario, una aplicación WebView2 debe crear objetos diferentes CoreWebView2Environment . Se WebView2 crea una instancia para una carpeta de datos de usuario determinada a través del objeto configurado CoreWebView2Environment . Cada CoreWebView2Environment objeto debe configurarse con un valor de carpeta de datos de usuario diferente.

Cuando se crea la primera WebView2 instancia para una carpeta de datos de usuario determinada, se iniciará el proceso del explorador para la colección de procesos de WebView2 Runtime asociada a esa carpeta de datos de usuario. Todos los procesos adicionales se administrarán durante la vigencia de ese proceso del explorador.

CoreWebView2Environment representa una carpeta de datos de usuario y la colección de procesos asociados a ella. Un proceso de representador determinado no está asociado a una sola CoreWebView2 instancia, ya que el proceso del representador puede servir fotogramas en varias CoreWebView2 instancias que usan la misma carpeta de datos de usuario, en función del aislamiento del sitio web. Consulte Procesos del representador por fotograma: aislamiento de sitio.

Varios objetos de entorno

Si crea varios CoreWebView2Environment objetos que están configurados de la misma manera (incluido el uso compartido de la misma carpeta de datos de usuario), representarán la misma carpeta de datos de usuario y la misma colección de procesos asociada. Use cualquiera de estos CoreWebView2Environment objetos para crear una CoreWebView2 con la carpeta de datos de usuario compartida y la colección de procesos asociada.

Si intenta crear mediante CoreWebView2Environment una carpeta de datos de usuario que otro CoreWebView2Environment ya usa y no configura los dos CoreWebView2Environment objetos de la misma manera, por ejemplo, si se crearon con valores diferentes CoreWebView2EnvironmentOptions.Language , el segundo CoreWebView2Environment no podrá crear WebView2 objetos. Esto es cierto para CoreWebView2Environment los objetos que están en el mismo proceso o en procesos diferentes.

Control de eventos de proceso y duración

Para reaccionar ante bloqueos y bloqueos en los procesos del explorador y del representador, use el ProcessFailed evento de CoreWebView2.

Para apagar de forma segura los procesos asociados del explorador y del representador, use el Close método de CoreWebView2Controller.

Para abrir el Administrador de tareas del explorador, llame al OpenTaskManagerWindow método .

Se muestran todos los procesos asociados al proceso del explorador de WebView2, incluidos sus propósitos asociados.

Vea también