Novidades no Chrome 122

Veja o que é necessário saber:

Meu nome é Adriana Jara. Vamos conferir as novidades para desenvolvedores no Chrome 122.

a API Storage Buckets.

A API Storage Buckets oferece mais granularidade para gerenciar melhor o armazenamento persistente.

Tradicionalmente, quando o usuário fica sem espaço de armazenamento no dispositivo, os dados armazenados com APIs como IndexedDB ou localStorage são perdidos sem que o usuário possa intervir. Uma maneira de tornar o armazenamento persistente é usar o método persist() da interface StorageManager. No entanto, esse método de solicitação de armazenamento persistente é tudo ou nada.

A ideia principal da API Storage Buckets é permitir que os sites criem vários buckets de armazenamento, em que o navegador pode excluir cada bucket de forma independente. Assim, é possível especificar a priorização de exclusão para garantir que os dados mais valiosos não sejam excluídos.Cada bucket de armazenamento pode conter dados associados a APIs de armazenamento estabelecidas, como IndexedDB e CacheStorage.

Acesse nem todo armazenamento é criado da mesma forma: introdução aos buckets de armazenamento para mais detalhes e exemplos de código para começar a usar os buckets de armazenamento.

Melhorias no DevTools no Painel de desempenho

No Chrome 122, as DevTools incluem as seguintes melhorias no painel Performance.

Primeiro, a Linha do tempo na parte de cima do painel Desempenho permite definir a navegação estrutural e navegar entre elas. Para definir um breadcrumb, selecione um intervalo na Linha do tempo, passe o cursor sobre ele e clique no botão N ms correspondente. É possível criar várias localizações atuais aninhadas em sequência. Para mudar de nível de zoom, clique na localização atual correspondente na corrente na parte de cima da Linha do tempo. Assista ao próximo vídeo para ver os indicadores de caminho no site em ação.

Além disso, agora há iniciadores de eventos na faixa Main. A faixa Performance > Principal mostra, por padrão, setas que conectam os iniciadores e os eventos que eles causaram.

  • Invalidação de estilo ou layout -> Recalcular estilos ou Layout
  • Solicitar frame de animação -> Frame de animação disparado
  • Request Idle Callback -> Fire Idle Callback
  • Instalar Timer -> Timer disparado
  • Criar WebSocket Enviar e Receber handshake de WebSocket ou Destruir WebSocket

Para ver as setas, encontre um evento no trace e clique nele.

Uma seta da solicitação e disparo de um callback inativo.

Confira mais atualizações do DevTools em Novidades do DevTools 122.

Opção unsanitized da API Async Clipboard

Ao copiar e colar usando a API Async Clipboard, a opção unsanitized do método read() permite que apps e sites recebam HTML não limpo. A menos que os sites incluam essa propriedade, a leitura de HTML da área de transferência será limpa.

Por padrão, ao ler tipos MIME text/html usando a API assíncrona, o limpador é invocado para remover o conteúdo da marcação HTML devido a problemas de segurança, e os estilos são inline no HTML resultante. Isso leva a um payload HTML grande e à perda de fidelidade do conteúdo HTML quando lido por desenvolvedores da Web ou apps para dispositivos móveis.

Confira a diferença na saída no exemplo a seguir.

Entrada:

<style>p { color: blue; }</style><p>Hello, World!</p>'

Limpado (padrão):

<p style='color: blue; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;'>Hello, World!</p>

Com a opção unsanitized:

<html><head><style>p { color: blue; }</style></head><body><p>Hello, World!</p></body></html>

Acesse Como desbloquear o acesso à área de transferência para aprender o básico sobre a API Clipboard.

E muito mais.

Claro que há muito mais.

  • No CSS, as consultas de contêiner com recursos não compatíveis nunca são correspondentes. Por exemplo, a consulta a seguir nunca vai corresponder devido ao recurso desconhecido:
@container (width > 0px) or (unknown) {}
  • dataTransfer.clearData() não afeta objetos File, apenas exclui objetos de tipo de texto.

  • Com o drawingBufferStorage do WebGL, é possível evitar uma cópia extra ao converter a renderização para o formato de pixel de buffer de desenho padrão e renderizar conteúdo com mais de 8 bits de precisão.

Leitura adicional

Isso cobre apenas alguns dos principais destaques. Confira os links a seguir para outras mudanças no Chrome 122.

Inscrever-se

Para ficar por dentro das novidades, inscreva-se no canal do YouTube Developers do Chrome para receber uma notificação por e-mail sempre que lançarmos um novo vídeo.

Meu nome é Adriana Jara, e assim que o Chrome 123 for lançado, vou falar sobre as novidades do Chrome.