Publicado em 26 de julho de 2021

DotNetBrowser 2.7

O novo DotNetBrowser 2.7 traz um motor Chromium atualizado e a API com novas funcionalidades.

O que há de novo

Chromium 91

O motor Chromium foi atualizado para a versão 91.0.4472.114.

Esta versão do Chromium inclui várias e importantes correções de segurança, pelo que recomendamos que atualize para esta versão.

Alguns dos recursos do Chromium incluídos no DotNetBrowser foram removidos ou alterados. Consulte o guia de migração para ver qual API do DotNetBrowser foi removida e quais alternativas você pode usar.

Perfis

A API DotNetBrowser foi estendida com perfis Chromium. Agora, a arquitetura tem a seguinte estrutura:

Architecture

Cada Motor tem um IProfile padrão que pode ser acessado via:

IProfile defaultProfile = engine.Profiles.Default;

Os serviços abaixo pertencem agora ao IProfile. Você pode gerenciar cookies, transferências, permissões, plugins, etc. de forma independente para cada perfil:

  • ZoomLevels
  • Plugins
  • Proxy
  • Rede
  • Corretor ortográfico
  • CookieStore
  • HttpCache
  • Downloads
  • Permissões

Para criar um novo perfil normal ou incógnito, utilize a seguinte API:

IProfile profile = engine.Profiles.Create("MyProfile");
IProfile incognitoProfile = engine.Profiles.Create("MyIncognitoProfile", 
                                                   ProfileType.Incognito);

Cada instância do IBrowser tem um perfil. Para criar uma instância do IBrowser para um perfil específico, é utilizada a seguinte abordagem:

IProfile profile = engine.Profiles.Create("MyProfile");
IBrowser browser = profile.CreateBrowser();

Para manter a compatibilidade com versões anteriores, não alteramos a interface IEngine. Apenas delega as suas chamadas para o perfil padrão. Por exemplo:

IBrowser browser = engine.CreateBrowser();
// é equivalente a
IBrowser browser = engine.Profiles.Default.CreateBrowser();

e

ICookieStore cookieStore = engine.CookieStore;
// é equivalente a
ICookieStore cookieStore = engine.Profiles.Default.CookieStore;

Se você configurar um IEngine com o diretório de dados do usuario, todos os perfis criados serão restaurados após o reinício da aplicação, a menos que elimine um perfil através de IProfiles.Remove(IProfile).

O perfil padrão não pode ser eliminado.

Veja o exemplo completo que demonstra como trabalhar com perfis do Chromium: C#, VB.NET

Ver fonte da página

Agora você pode ver a origem da página Web ou do frame carregado, tal como no Google Chrome:

browser.MainFrame?.ViewSource();

O código acima diz ao Chromium para criar e abrir uma janela pop-up com a fonte HTML do frame principal. Será um pop-up normal com o seguinte aspecto:

Fonte da página

Modo escuro

Também é possível forçar o esquema de cores preferido através das definições do navegador:

browser.Settings.PreferredColorScheme = PreferredColorScheme.Dark; //força o modo escuro
browser.Settings.PreferredColorScheme = PreferredColorScheme.Light; //força o modo claro

Os sites Web que respeitam a consulta multimédia prefers-color-scheme mudarão para o modo claro ou escuro em conformidade.

Cor de fundo padrão

Quando o Chromium não sabe a cor de fundo de uma página Web ou a cor não foi especificada, ele utiliza a cor branca. Nesta versão, estendemos a API com uma nova funcionalidade que lhe permite configurar a cor de fundo padrão que o Chromium deve utilizar em vez da cor branca padrão nesses casos.

O código a seguir demonstra como definir a cor de fundo desejada para a página about:blank:

Cor purple = new Color(0.6f, 0.3f, 0.6f);
browser.Settings.DefaultBackgroundColor = purple;

Cor de fundo

Picture-in-Picture

Agora você pode assistir vídeos numa janela flutuante (por cima de outras janelas) enquanto interage com outros sites Web ou aplicações.

Esta funcionalidade só está disponível no modo de renderização acelerada por hardware.

Problemas corrigidos

  • O BrowserView fica em branco ao redimensionar a janela principal para tela cheia no modo de renderização fora de tela, enquanto o DotNetBrowser está incorporado como um suplemento VSTO.
  • O foco não é restaurado para a página web depois de fechar a caixa de diálogo PrintPreview.

Melhorias

  • Agora é possível trabalhar com promises em JavaScript através do tipo IJsPromise.
  • A propriedade IFrame.Text foi adicionada. Permite obter o conteúdo de um frame como texto simples.
  • O comportamento do foco para o controle WinForms BrowserView em aplicações WPF foi melhorado.
  • A função WinAPI SetWindowDisplayAffinity() usada com o parâmetro WDA_MONITOR não causa mais uma falha do Chromium ao navegar para um domínio diferente.

Solicitar licença de avaliação
Baixar DotNetBrowser 2.7 (.NET Framework)
Baixar DotNetBrowser 2.7 (.NET Core)

Go Top