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.
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:
Uso de la característica Aislamiento de sitio en el entorno de ejecución de WebView2. Consulte Procesos del representador por fotograma: aislamiento de sitio.
Número de orígenes desconectados distintos que se representan en instancias de WebView2 que usan la misma carpeta de datos de usuario.
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.
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
- Eche un vistazo al explorador web moderno (parte 1): el modelo de proceso del explorador que usan webview2 runtime y el explorador Microsoft Edge.
- Introducción a WebView2
- Repositorio WebView2Samples : un ejemplo completo de las funcionalidades de WebView2.
- Referencia de la API de WebView2