Salvo indicação em contrário, as mudanças descritas abaixo se aplicam à versão mais recente do Canal Beta do Chrome para Android, Chrome OS, Linux, macOS e Windows. Para saber mais sobre os recursos listados aqui, acesse os links fornecidos ou a lista exibida em ChromeStatus.com . O Chrome 76 está na versão Beta desde 13 de junho de 2019.
Modo escuro
Atualmente, muitos sistemas operacionais são compatíveis com esquemas de cores invertidas com uma configuração chamada de “tema escuro” ou “modo escuro”.
A consulta de mídia prefers-color-scheme
permite que um site ou um app da Web adote o modo de exibição escolhido pelo usuário. Use a consulta no seu código CSS da seguinte forma:
@media (prefers-color-scheme: dark) {
body {
color: white;
background-color: black;
}
}
Só faltou a explicação? Para isso, acesse nosso blog da plataforma Web e consulte o artigo “Hello Darkness, My Old Friend”.
API de pagamentos
Nas últimas versões do Chrome, implementamos várias melhorias nas APIs de pagamentos. Com essas APIs, é possível interagir com sistemas de pagamento proprietários sem precisar criar suas próprias interações com o usuário. Entre as alterações no Chrome 75 está a substituição de hasEnrolledInstrument()
por canMakePayment()
e a remoção de languageCode
do endereço de cobrança. Com a opção detailsPromise
, o Chrome 75 permite que PaymentRequest.show()
realize uma chamada rápida do servidor antes de mostrar os detalhes do pagamento ao comprador.
O Chrome 76 inclui três alterações no campo de pagamentos. Agora, os recursos implementados permitem que o site ou app da Web de um comerciante responda quando um usuário altera os instrumentos de pagamento. Além disso, o PaymentRequestEvent
tem um novo método chamado changePaymentMethod()
, e o objeto PaymentRequest
agora é compatível com o gerenciador de eventos paymentmethodchange
. Você pode usar as duas opções para notificar um comerciante quando o usuário alterar os instrumentos de pagamento. O primeiro retorna uma promessa que é resolvida com uma nova instância PaymentRequest
.
Além disso, o Chrome agora facilita o uso das APIs de pagamento para certificados autoassinados no ambiente de desenvolvimento local. Para fazer isso, inicie o Chrome a partir de uma linha de comando com a sinalização —ignore-certificate-errors
.
Para acessar informações detalhadas sobre esses recursos, leia Atualizações de pagamentos na Web .
Melhorias nos Progressive Web Apps
É fácil instalar Progressive Web Apps na área de trabalho
Na área de trabalho, normalmente não há indicações ao usuário de que há Progressive Web Apps instalados. E, se houver, o fluxo de instalação ficará oculto no menu de três pontos.
No Chrome 76, ficou mais fácil instalar Progressive Web Apps na área de trabalho com a inclusão de um botão de instalação no omnibox .
Se um site atender aos critérios de instalação de um Progressive Web App, o Chrome mostrará um ícone correspondente no omnibox. Os desenvolvedores não precisam fazer nenhum trabalho extra. Basta clicar no botão para exibir ao usuário a solicitação de instalação do PWA.
Controle da minibarra de informações “Adicionar à tela inicial”
No Chrome 76, você tem o controle da minibarra de informações “Adicionar à tela inicial”.
O Chrome exibirá a minibarra de informações na primeira vez que um usuário visitar um site que atende aos critérios de instalação dos Progressive Web Apps . Os desenvolvedores querem evitar a exibição da minibarra de ferramentas e fornecer a própria promoção de instalação.
Para fazer isso, escute o evento beforeinstallprompt
e chame preventDefault()
. Depois, atualize sua IU, incluindo um botão de instalação ou outro elemento para notificar o usuário. Dependendo do seu aplicativo, você pode usar vários padrões diferentes para promover a instalação do PWA .
A minibarra de informações “Adicionar à tela inicial” ainda é uma medida temporária. Estamos experimentando novos padrões de IU para que os usuários possam instalar Progressive Web Apps reduzindo elementos excessivos na experiência de navegação.
Atualização mais frequente dos WebAPKs
Quando um PWA é instalado no Android, o Chrome solicita e instala automaticamente um WebAPK . O Chrome verifica periodicamente se o manifesto foi alterado e se é necessário instalar um novo WebAPK. A partir da versão 76, o Chrome verificará o manifesto com mais frequência : diariamente, em vez de a cada três dias. Se alguma das propriedades principais tiver sido alterada, o Chrome solicitará e instalará um novo WebAPK.
Outros recursos desta versão
Animation.updatePlaybackRate
Adiciona Animation.updatePlaybackRate()
, que permite uma transição perfeita da taxa de reprodução de uma animação, sem interrupções visíveis. A hora atual será preservada na instância em que a nova taxa de reprodução entrar em vigor.
Área de transferência assíncrona: leia e escreva mensagens
Implementa o recurso programático de copiar e colar imagens para a API Async Clipboard. Isso também atualiza navigator.clipboard.read()
e navigator.clipboard.write()
para conformidade com a especificação. O recurso programático de copiar e colar imagens é o principal bug com estrela do Chromium.
A tecla de escape não é ativada pelo usuário
A tecla de escape não é mais tratada como uma ativação do usuário . Os navegadores evitam chamadas para APIs abusivas (como pop-up, tela cheia, vibração etc.), a menos que o usuário ative a página por meio de interações diretas. Nem todas as interações acionam a ativação do usuário. Por exemplo, interações como clicar em um link ou digitar uma caixa de texto podem acionar a ativação, mas deslizar os dedos em uma tela ou passar o cursor não. Como não é a intenção dos usuários interagir com a página por meio da tecla de escape, ela não deve acionar a ativação por parte deles.
Busca de metadados
Introduz um novo cabeçalho de solicitação HTTP que envia metadados adicionais sobre a procedência da solicitação ao servidor (em todo o site, acionada a partir de <img>
etc.). Isso permite que o servidor tome decisões de segurança para atenuar alguns tipos de ataques com base no tempo de resposta do servidor (vazamentos de XSS e outros).
Por exemplo, é improvável que o ponto de extremidade “Transferir todo o dinheiro” de um banco seja referenciado em uma tag <img>
ou que evil.com faça uma solicitação legítima. O ideal seria o servidor recusar essas solicitações a priori em vez de enviá-las ao back-end do aplicativo.
form.requestSubmit()
Adiciona a função form.requestSubmit()
, que solicita o envio do formulário. Ela inclui a validação de limitação interativa, despacha um evento submit
e faz uma referência ao botão do remetente.
Compatibilidade de ImageCapture com a limitação de focusDistance
Com a API Image Capture, é possível definir o focusMode para a opção manual, que não é útil se você não puder definir a distância do foco. Essa alteração oferece uma interface para você acessar diferentes valores de foco e definir a distância ao usar esse recurso.
Implementação de Animation.pending
Adiciona o atributo pendente à API Web Animations. Uma animação pendente é a que está aguardando uma operação assíncrona que interfere no estado de reprodução. A compatibilidade com esse atributo não afeta a renderização nem o tempo das animações, ela simplesmente expõe o sinal.
Chamada de API de confirmação explícita da transação de IndexedDB
Adiciona uma função commit()
a objetos IDBTransaction
, marcando de maneira explícita uma transação que não aceita mais solicitações. No momento, o IndexedDB somente confirma uma transação depois que todas as solicitações associadas tiveram gerenciadores de eventos de conclusão executados e nenhuma nova solicitação enfileirada por eles. Os desenvolvedores podem usar a função commit()
explicitamente para eliminar alguns ciclos de loop de eventos da latência das transações.
O principal benefício da confirmação explícita é que ela aumenta a capacidade de solicitações de leitura e gravação feitas em um armazenamento de objetos. Essa é uma vantagem clara de desempenho em relação à taxa usada no processamento de operações. Além disso, o aumento na velocidade é vantajoso porque adiciona estabilidade ao IndexedDB. Isso reduz a probabilidade de que um evento de interrupção ocorra durante a vida útil de uma transação.
JavaScript
DateTimeFormat dateStyle e timeStyle
Adiciona as opções dateStyle
e timeStyle
a funções em Intl.DateTimeFormat
, especificamente formatToParts()
e resolveOptions()
. Com essas opções, você tem uma forma compacta de solicitar a data e a hora apropriadas e específicas à localidade de determinados estilos de comprimento.
BigInt.prototype.toLocaleString diferencia localidades e permite que Intl.NumberFormat format/formatToParts execute BigInt.
Altera BigInt.prototype.toLocaleString()
para formatação de números que diferenciam localidades e permite que Intl.NumberFormat.prototype.format()
e formatToParts()
aceitem BigInt
como uma entrada.
Recursos de mídia em workers
Permite a API Media Capabilities em todos os tipos de workers para ajudar o site e os apps da Web a escolher a melhor mídia para transmissão. A informação pode ser usada para criar o MediaStream
a partir de um worker.
Promise.allSettled
Adiciona Promise.allSettled() , que retorna uma promessa preenchida com uma matriz de resumos do estado da promessa, mas somente após todas as promessas originais terem sido resolvidas. Em outras palavras, isso ocorre depois da promessa ter sido resolvida ou recusada.
Métodos de leitura mais simples para a interface do Blob
Adiciona três novos métodos à interface do Blob para desempenhar operações de leitura: text()
, arrayBuffer()
e stream()
.
WebRTC
RTCSctpTransport
Expõe informações sobre o SCTP que é usado para transportar canais de dados WebRTC como max-message-size
e max
.
RTCRtpSender.setStreams
Permite a alteração da associação entre a faixa vinculada a um RTCRtpSender
e os streams. A associação de um stream faz com que as faixas dele sejam sincronizadas. Isso pode ser útil se, durante uma chamada, um usuário alternar de uma câmera frontal para uma câmera traseira, e o aplicativo usar RTCRtpSender.replaceTrack()
. Na extremidade de recebimento, a nova faixa precisa estar associada ao stream existente e sincronizada com a faixa automática relacionada.
RTCRtpTransceiver.setCodecPreferences()
Adiciona o método setCodecPreferences()
, que modifica as preferências do codec padrão usadas pelo user agent. Isso permite que os aplicativos desativem a negociação de codecs específicos. Além disso, um aplicativo pode fazer com que um ponto remoto prefira o envio do codec que é exibido primeiro na lista.
white-space: break-spaces
O valor white-space:break-spaces
permite que os autores especifiquem e invalidem qualquer sequência de espaço em branco preservado que transbordaria uma linha e fosse interrompida (conforme as especificações da CSS Text Module Regras de ajustes e posicionamentos ).
Remoções
Remoção da política de recursos: carregamento lento
A política de recursos de carregamento lento permite que os desenvolvedores gerenciem seletivamente o atributo “lazyload” nas tags <iframe>
e <img>
para fornecer mais controle sobre o atraso do carregamento no conteúdo incorporado e em imagens por origem.
Essas regras serão removidas e substituídas por uma política de recursos de carregamento mais recente, chamada loading-frame-default-eager
, que está mais alinhada com o uso do atributo loading
. A remoção se aplica ao cabeçalho “Feature-Policy” e ao atributo <iframe> allow
.
Remoção de saídas de MediaStreamAudioDestinationNode
De acordo com a especificação, o MediaStreamAudioDestinationNode
na API Web Audio não pode ter saídas. A implementação do Chrome tem uma única saída que já foi removida .
Remoção do uso não seguro de DeviceMotionEvent
Desde 2015, o Chromium vem exibindo avisos de suspensão de uso sempre que a API é acionada em um contexto de navegação não seguro. Agora, o Chrome restringe o uso da API a contextos seguros de navegação. Essa alteração alinha a implementação do Chromium com as recomendações de privacidade e segurança da especificação e com o esforço de suspender o uso de recursos eficientes em origens desprotegidas.
2 comentários :
Do you want to learn more about whatsapp spying? On https://topspyingapps.com/whatsapp-spy-apps/ you can read more about it
Thanks for the update on Chrome 76 Beta! Excited about the Dark Mode, Payments, and new PWA features. Your concise summary makes it easy to stay in the loop. Can't wait to explore the enhancements on Android, Chrome OS, Linux, macOS, and Windows. For more details, I'll be checking out the links and ChromeStatus.com. By the way, any insights on how these updates might affect my experience with hélio & junior whatsapp gb? Thanks again!
Postar um comentário