Modèle de processus pour les applications WebView2
Plateformes prises en charge : Win32, Windows Forms, WinUI, WPF.
Le runtime WebView2 utilise le même modèle de processus que le navigateur Microsoft Edge. Ce modèle de processus de navigateur est décrit dans Architecture du navigateur dans Vue d’intérieur du navigateur web moderne (partie 1).
Processus dans le runtime WebView2
Un groupe de processus WebView2 est une collection de processus Runtime WebView2. Un groupe de processus WebView2 comprend les éléments suivants :
- Processus de navigateur unique.
- Un ou plusieurs processus de renderer.
- Autres processus d’assistance, tels que le processus GPU et le processus du service audio.
Le nombre et la présence de processus dans un groupe de processus WebView2 peuvent changer à mesure qu’une application WebView2 utilise les fonctionnalités WebView2. (Toutefois, il n’existe qu’un seul processus de navigateur spécifique dans un groupe de processus WebView2.) Par exemple, la création d’un instance WebView2 à partir du même CoreWebView2Environment
, mais avec un domaine différent dans la Source
propriété , démarre généralement un nouveau processus de renderer.
Le nombre de processus de renderer peut varier en fonction des conditions suivantes :
Utilisation de la fonctionnalité d’isolation de site dans le runtime WebView2. Consultez Processus de renderer par image - Isolation de site.
Nombre d’origines distinctes déconnectées qui sont rendues dans des instances de WebView2 qui utilisent le même dossier de données utilisateur.
La logique qui contrôle le moment où ces processus supplémentaires sont créés dépend de l’architecture Chromium et dépasse le cadre du runtime WebView2.
Processus d’exécution WebView2 et dossier de données utilisateur
Tous les processus d’une collection de processus runtime WebView2 sont liés au processus du navigateur, qui à son tour est associé à un seul dossier de données utilisateur. Si une application utilise plusieurs dossiers de données utilisateur, une collection de processus WebView2 Runtime est créée pour chacun de ces dossiers de données utilisateur.
Un dossier de données utilisateur peut être partagé par plusieurs applications, mais veillez à prendre en compte les implications sur les performances et la gestion, comme décrit dans Gérer les dossiers de données utilisateur.
Pour utiliser plusieurs dossiers de données utilisateur, une application WebView2 doit créer différents CoreWebView2Environment
objets. Un WebView2
instance est créé pour un dossier de données utilisateur donné via l’objet configuréCoreWebView2Environment
. Chaque CoreWebView2Environment
objet doit être configuré avec une valeur de dossier de données utilisateur différente.
Lorsque la première WebView2
instance est créée pour un dossier de données utilisateur donné, le processus de navigateur pour le runtime WebView2 traite la collection associée à ce dossier de données utilisateur est démarré. Tous les processus supplémentaires seront gérés par la durée de vie de ce processus de navigateur.
représente CoreWebView2Environment
un dossier de données utilisateur et la collection de processus qui lui sont associés. Un processus de renderer donné n’est pas associé à un seul CoreWebView2
instance, car le processus de renderer peut servir des images dans plusieurs CoreWebView2
instances qui utilisent le même dossier de données utilisateur, en fonction de l’isolation du site web. Consultez Processus de renderer par image - Isolation de site.
Objets d’environnement multiples
Si vous créez plusieurs CoreWebView2Environment
objets configurés de la même façon (y compris le partage du même dossier de données utilisateur), ils représentent le même dossier de données utilisateur et la même collection de processus associée. Utilisez l’un de ces CoreWebView2Environment
objets pour créer un CoreWebView2
avec le dossier de données utilisateur partagé et la collection de processus associée.
Si vous essayez de créer un CoreWebView2Environment
à l’aide d’un dossier de données utilisateur qu’un autre CoreWebView2Environment
utilise déjà, et que vous ne configurez pas les deux CoreWebView2Environment
objets de la même façon, par exemple s’ils ont été créés avec des valeurs différentes CoreWebView2EnvironmentOptions.Language
, le deuxième CoreWebView2Environment
ne parvient pas à créer WebView2
des objets. Cela est vrai pour CoreWebView2Environment
les objets qui se trouvent dans le même processus ou dans des processus différents.
Gestion des événements de processus et de la durée de vie
Pour réagir aux incidents et aux blocages dans le navigateur et les processus de renderer, utilisez l’événement ProcessFailed
de CoreWebView2
.
Pour arrêter en toute sécurité les processus de navigateur et de renderer associés, utilisez la Close
méthode de CoreWebView2Controller
.
Pour ouvrir le Gestionnaire des tâches du navigateur, appelez la OpenTaskManagerWindow
méthode .
Tous les processus associés au processus de navigateur de votre WebView2 sont affichés, y compris les objectifs associés.
Voir aussi
- À l’intérieur, examinez le navigateur web moderne (partie 1) : le modèle de processus de navigateur utilisé par le runtime WebView2 et le navigateur Microsoft Edge.
- Prise en main de WebView2
- Référentiel WebView2Samples : un exemple complet de fonctionnalités WebView2.
- Informations de référence sur l’API WebView2