Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Plataformas suportadas: Win32, Windows Forms, WinUI, WPF.
O WebView2 Runtime usa o mesmo modelo de processo que o navegador Microsoft Edge. Este modelo de processo de navegador é descrito em Arquitetura do navegador em Inside look at modern web browser (parte 1).
Processos no WebView2 Runtime
Um grupo de processos WebView2 é uma coleção de processos WebView2 Runtime. Um grupo de processos WebView2 inclui o seguinte:
- Um único processo de navegador.
- Um ou mais processos de renderização.
- Outros processos auxiliares, como o processo da GPU e o processo do serviço de áudio.
O número e a presença de processos em um grupo de processos WebView2 podem mudar à medida que um aplicativo WebView2 usa os recursos do WebView2. (No entanto, há apenas um único processo de navegador específico em um grupo de processos WebView2.) Por exemplo, criar uma nova instância do WebView2 a partir do mesmo CoreWebView2Environment, mas com um domínio diferente na Source propriedade, geralmente iniciará um novo processo de renderização.
O número de processos de renderização pode variar com base nas seguintes condições:
Uso do recurso Isolamento de Site no WebView2 Runtime. Consulte Processos de renderização por quadro - Isolamento de site.
O número de origens desconectadas distintas que são renderizadas em instâncias do WebView2 que usam a mesma pasta de dados do usuário.
A lógica que controla quando esses processos extras são criados depende da arquitetura do Chromium e está além do escopo do WebView2 Runtime.
Processos do WebView2 Runtime e a pasta de dados do usuário
Todos os processos em uma coleção de processos do WebView2 Runtime estão vinculados ao processo do navegador, que por sua vez está associado a uma única pasta de dados do usuário. Se um aplicativo usar várias pastas de dados do usuário, uma coleção de processos do WebView2 Runtime será criada para cada uma dessas pastas de dados do usuário.
Uma pasta de dados do usuário pode ser compartilhada por vários aplicativos, mas considere as implicações sobre o desempenho e o gerenciamento, conforme descrito em Gerenciar pastas de dados do usuário.
Para usar várias pastas de dados do usuário, um aplicativo WebView2 precisa criar objetos diferentes CoreWebView2Environment . Uma WebView2 instância é criada para uma determinada pasta de dados do usuário por meio do objeto configurado CoreWebView2Environment . Cada CoreWebView2Environment objeto precisa ser configurado com um valor diferente da pasta de dados do usuário.
Quando a primeira WebView2 instância é criada para uma determinada pasta de dados do usuário, o processo do navegador para a coleção de processos do WebView2 Runtime associada a essa pasta de dados do usuário será iniciado. Todos os processos adicionais serão gerenciados pelo tempo de vida desse processo do navegador.
Representa CoreWebView2Environment uma pasta de dados do usuário e a coleção de processos associados a ela. Um determinado processo de renderização não está associado a uma única CoreWebView2 instância, pois o processo de renderização pode fornecer quadros em várias CoreWebView2 instâncias que usam a mesma pasta de dados do usuário, dependendo do isolamento do site. Consulte Processos de renderização por quadro - Isolamento de site.
Vários objetos de ambiente
Se você criar vários CoreWebView2Environment objetos configurados da mesma maneira (incluindo o compartilhamento da mesma pasta de dados do usuário), eles representarão a mesma pasta de dados do usuário e a mesma coleção de processos associada. Use qualquer um desses CoreWebView2Environment objetos para criar uma CoreWebView2 pasta de dados de usuário compartilhada e a coleção de processos associada.
Se você tentar criar um CoreWebView2Environment usando uma pasta de dados do usuário que outra pessoa CoreWebView2Environment já está usando e não configurar os dois CoreWebView2Environment objetos da mesma forma, por exemplo, se eles foram criados com valores diferentes CoreWebView2EnvironmentOptions.Language , o segundo CoreWebView2Environment não conseguirá criar WebView2 objetos. Isso é verdadeiro para CoreWebView2Environment objetos que estão no mesmo processo ou em processos diferentes.
Manipulando eventos de processo e tempo de vida
Para reagir a falhas e travamentos nos processos do navegador e do renderizador, use o ProcessFailed evento de CoreWebView2.
Para desligar com segurança os processos associados do navegador e do renderizador, use o Close método de CoreWebView2Controller.
Para abrir o Gerenciador de Tarefas do Navegador, chame o OpenTaskManagerWindow método.
Todos os processos associados ao processo do navegador do WebView2 são exibidos, incluindo suas finalidades associadas.
Confira também
- Confira o navegador da Web moderno (parte 1) - o modelo de processo do navegador usado pelo WebView2 Runtime e pelo navegador Microsoft Edge.
- Introdução ao WebView2
- Repositório WebView2Samples - um exemplo abrangente dos recursos do WebView2.
- Referência da API WebView2