Publicado em 26 de novembro de 2020

DotNetBrowser 2.3

O DotNetBrowser 2.3 é baseado no Chromium 84.

O que há de novo

Chromium 84

O Chromium foi atualizado para a versão 84.0.4147.135.

Nesta compilação do Chromium, algumas das suas funcionalidades associadas ao DotNetBrowser foram removidas ou alteradas, pelo que esta versão do DotNetBrowser introduz várias alterações significativas na API pública. Consulte o guia de migração para esta versão e veja o que foi alterado/removido da API e quais alternativas você deveria utilizar.

Acesso a propriedades e campos na ponte JS-.NET

Acessar as propriedades públicos e campos de um objeto .NET injetado em JavaScript através da API JS-.NET Bridge. A API JS-.NET Bridge permite injetar objetos .NET em JavaScript e chamar os seus métodos públicos. A partir desta versão, também pode funcionar com as propriedades públicas e campos. Por exemplo:

public class MyObject {
    public string MyProperty {get; set;}
}
...
IJsObject window = frame.ExecuteJavaScript<IJsObject>("window").Result;
window.Properties["myObject"] = new MyObject();

Feito isso, é possível acessar e modificar o valor da propriedade a partir do JavaScript:

window.myObject.MyProperty = "O meu valor";

Interceptação de eventos de drag e drop e suporte de IDataObject

Nesta versão foram adicionados o IDragAndDrop.EnterDragHandler e o IDragAndDrop.DropHandler. Estes handlers podem ser utilizados para interceptar os eventos de arrastar e soltar correspondentes em páginas Web no modo de renderização acelerada por hardware.

Por exemplo:

browser.DragAndDrop.EnterDragHandler = novo Handler<EnterDragParameters>(OnDragEnter);
browser.DragAndDrop.DropHandler = novo Handler<DropParameters>(OnDrop);
private void OnDragEnter(EnterDragParameters arg)
{
    if (arg.Event.DropData != null)
    {
        //Escreve os nomes dos ficheiros para depurar a saída.
        foreach (IFileValue file in arg.Event.DropData.Files)
        {
            Debug.WriteLine($"OnDragEnter: File = {file?.FileName}");
        }
    }
}

private void OnDrop(DropParameters arg)
{
    if (arg.Event.DropData != null)
    {
        //Escreve os nomes dos ficheiros para depurar a saída.
        foreach (IFileValue file in arg.Event.DropData.Files)
        {
            Debug.WriteLine($"OnDrop: File = {file?.FileName}");
        }
    }
}

No .NET Framework, também é possível trabalhar com a instância IDataObject no âmbito destes handlers para receber e processar a representação específica da plataforma dos dados arrastados e soltos. Esta funcionalidade fica disponível quando a opção --enable-com-in-drag-drop do Chromium é especificada.

Veja os exemplos completos que mostram como utilizar esta funcionalidade:

С#
VB.NET

Melhorias

  • A implementação padrão do StartDownloadHandler é agora configurada durante a inicialização do BrowserView se um StartDownloadHandler personalizado não foi configurado para a instância correspondente do IBrowser.
  • A implementação padrão SelectCertificateHandler foi adicionada. Esta implementação é configurada durante a inicialização do BrowserView se um handler personalizado não foi configurado para a instância correspondente do IBrowser.
  • A funcionalidade do método SelectCertificateResponse.Select(Certificate) foi melhorada. Este método era anteriormente utilizado apenas para os certificados personalizados. Agora, funcionará corretamente para os certificados dos parâmetros do handler.
  • A classe UrlRequest foi estendida com as seguintes propriedades: Browser, ResourceType, SslVersion. Todas estas propriedades podem ser utilizadas para obter mais informações sobre este request de URL, incluindo o browser que iniciou este request, o tipo de recurso request e a versão SSL utilizada para efetuar o request.
  • SuggestedFileName e SuggestedDirectory foram adicionados aos SaveAsPdfParameters. Estas propriedades podem ser utilizadas para obter o caminho sugerido para guardar o arquivo PDF no SaveAsPdfHandler.
  • Os eventos de chave DOM foram estendidos com a propriedade Character. Agora é possível obter o caractere gerado pela pressão da tecla e associado ao evento de tecla DOM interceptado.
  • A propriedade INavigation.CurrentIndex foi adicionada.
  • A propriedade Cookie.SameSite foi adicionada.
  • Foi introduzido o suporte de Firebase Cloud Messaging.
  • A possibilidade de executar o chromium.exe como uma aplicação autônoma foi desativada.

Problemas corrigidos

  • O ShowNetErrorPageHandler não funcionando corretamente para sites com certificados inválidos.
  • Aumento do tempo de carregamento da página ao carregar a mesma página várias vezes.
  • O vazamento de memória causado pelo fato de alguns dos objetos internos não serem liberados após a eliminação do Browser.
  • Os eventos DOM do DoubleClick não sendo recebidos da página Web.
  • A ligação da propriedade Visibility não funcionando corretamente para o WPF BrowserView.
  • O menu de contexto é mostrado apenas uma vez para os objectos Flash.
  • O menu de contexto não é apresentado para arquivos PDF abertos no browser.
  • Alguns vazamentos de memória para registar/remover registro de objetos .NET através da Bridge JS-.NET.
  • O BrowserView não sendo mostrado no segundo TabItem após a inicialização.
  • Os cursores CSS 3 não são apresentados corretamente em ambientes Windows 7 e Windows 2008 R2.
  • A localização incorreta da imagem no WPF BrowserView no modo acelerado por hardware.
  • Foco não sendo restaurado para WinForms BrowserView após exibir e fechar o diálogo padrão em BeforeUnloadHandler.

Solicitar licença de avaliação
Descarregar DotNetBrowser 2.3 (.NET Framework)
Descarregar DotNetBrowser 2.3 (.NET Core)

Go Top