Publicado em 7 de abril de 2022

DotNetBrowser 2.13

O que há de novo

API do Gerenciador de Senhas

O Chromium tem uma funcionalidade incorporada que é utilizada para armazenar as credenciais introduzidas depois do usuário submeter um formulário Web com um nome de usuário e uma senha. Neste caso, os handlers SavePasswordHandler e UpdatePasswordHandler serão utilizados para decidir se as credenciais devem ser guardadas ou atualizadas se já estiverem salvas.

Para salvar ou atualizar as credenciais do usuário programaticamente, use SavePasswordHandler e UpdatePasswordHandler como mostrado abaixo:

Browser.Passwords.SavePasswordHandler = 
    new Handler<SavePasswordParameters, SavePasswordResponse>(p =>
    {
        return SavePasswordResponse.Save;
    });

Browser.Passwords.UpdatePasswordHandler = 
    new Handler<UpdatePasswordParameters, UpdatePasswordResponse>(p =>
    {
        return UpdatePasswordResponse.Update;
});

Se você os salvar, da próxima vez que carregar o mesmo formulário e tentar preenchê-lo, será apresentada a janela pop-up de preenchimento automático:

Password autofil

Para acessar e gerenciar as credenciais salvas, utilize IPasswordStore:

IReadOnlyList<PasswordRecord> allPasswords = 
    Engine.Profiles.Default.PasswordStore.All;
IReadOnlyList<PasswordRecord> savedPasswords = 
    Engine.Profiles.Default.PasswordStore.AllSaved;
IReadOnlyList<PasswordRecord> neverSavedPasswords = 
    Engine.Profiles.Default.PasswordStore.AllNeverSaved;

Os registos guardados em IPasswordStore podem ser removidos por URL:

PasswordStore.RemoveByUrl(url);

Para limpar todas as senhas, utilize o seguinte método:

PasswordStore.Clear();

Chromium 100

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

Esta versão do Chromium inclui muitas correções de segurança, portanto recomendamos que atualize para esta versão.

Suporte estendido a arrays e coleções

Esta versão traz o suporte estendido de coleções na bridge JS-.NET.

As interfaces IJsArray, IJsSet, IJsMap e IJsArrayBuffer foram adicionadas para simplificar o trabalho com coleções JavaScript do lado do .NET.

Além disso, as coleções .NET injetadas foram estendidas com um método que pode ser chamado a partir de JavaScript para fazer uma cópia JavaScript pura da coleção:

  • IEnumerable<T> é estendido com ToJsArray() e ToJsSet();
  • IDictionary<TKey,TValue> e IReadOnlyDictionary<TKey,TValue> são estendidos com ToJsMap();
  • byte[] é estendido com ToJsArrayBuffer().

Exemplo

Dicionário<int, string> dictionary = 
    new Dictionary<int, string> {{1, "test1"}, {2, "test2"}};
List<string> collection = new List<string> {"test1", "test2", "test3", "test1"};
byte[] bytes = {0xAA, 0xBB, 0xCC, 0xDD};

IJsObject document = Browser.MainFrame.ExecuteJavaScript<IJsObject>("document").Result;
document.Properties["dotNetDictionary"] = dictionary;
document.Properties["dotNetCollection"] = collection;
document.Properties["dotNetByteArray"] = bytes;

IJsMap resultMap = 
    Browser.MainFrame.ExecuteJavaScript("document.dotNetDictionary.ToJsMap()").Result 
        as IJsMap;
IJsSet resultSet = 
    Browser.MainFrame.ExecuteJavaScript("document.dotNetCollection.ToJsSet()").Result 
        as IJsSet;
IJsArray resultArray = 
    Browser.MainFrame.ExecuteJavaScript("document.dotNetCollection.ToJsArray()").Result 
        as IJsArray;
IJsArrayBuffer resultData = 
    Browser.MainFrame.ExecuteJavaScript("document.dotNetByteArray.ToJsArrayBuffer()").Result
        as IJsArrayBuffer;

DevTools em curso

Agora é possível mostrar e ocultar a janela DevTools programaticamente sem configurar a porta de depuração remota:

browser.DevTools.Show();

O DevTools será apresentado numa janela separada:

DevTools

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

Go Top