Novidades do Chrome 132

Veja o que é necessário saber:

Sou Pete LePage. Vamos conferir as novidades para desenvolvedores no Chrome 132.

Eventos de alternância do elemento de caixa de diálogo

O elemento <dialog> é útil para representar qualquer tipo de caixa de diálogo em HTML. Ele está disponível em todos os navegadores, o que significa que funciona em todos os navegadores. Infelizmente, a implementação inicial não incluía uma maneira direta de detectar quando uma caixa de diálogo é aberta ou fechada.

A partir do Chrome 132, há uma nova ToggleEvent. Ele incorpora o mesmo ToggleEvent que é enviado por um popover. Para elementos <dialog>, quando showModal ou show é chamado, o <dialog> envia uma ToggleEvent com newState=open. Quando um <dialog> é fechado (usando um formulário, botão ou closewatcher), ele envia um ToggleEvent com newState=closed.

const dialog = document.getElementById("myDialog");

// Fired just before dialog is shown/hidden
dialog.addEventListener("beforetoggle", (event) => {
  if (event.newState === "open") {
    console.log("Dialog is about to be shown");
  } else {
    console.log("Dialog is about to be hidden");
  }
});

// Fired just after dialog is shown/hidden
dialog.addEventListener("toggle", (event) => {
  if (event.newState === "open") {
    console.log("Dialog is now visible");
  } else {
    console.log("Dialog is now hidden");
  }
});

Captura de elementos

Elementos sobrepostos com captura de elementos.

A plataforma da Web permite que um app da Web capture uma faixa de vídeo da guia atual ou da região. A partir do Chrome 132, os apps da Web podem capturar um elemento. Isso é especialmente útil quando os elementos são posicionados de forma que se sobrepõem uns aos outros.

const myElem = document.getElementById('elementToShare');

// Request screen sharing
const stream = await navigator.mediaDevices
  .getDisplayMedia({preferCurrentTab: true});
const [videoTrack] = stream.getVideoTracks();

// Restrict the video stream to myElem and its subtree
const restrictionTarget = await RestrictionTarget.fromElement(myElem);
await videoTrack.restrictTo(restrictionTarget);

// Set the video source to my newly restricted stream
video.srcObject = stream;

Confira a demonstração.

A API File System Access no Android e na WebView

A API File System Access já está disponível no Chrome para computador há algum tempo e permite que apps da Web interajam com arquivos no sistema de arquivos local dos usuários. A partir do Chrome 132, a API está disponível no Android e nas WebViews.

Para ler um arquivo, chame showOpenFilePicker(), que mostra um seletor de arquivos e retorna um identificador de arquivo que pode ser usado para ler o arquivo. Para salvar um arquivo no disco, use o identificador de arquivo que você recebeu anteriormente ou chame showSaveFilePicker() para receber um novo identificador de arquivo.

async function saveFile(fileHandle) {
  if (!fileHandle) {
    fileHandle = await window.showSaveFilePicker();
  }
  const writable = await fileHandle.createWritable();
  await writable.write(contents);
  await writable.close();
}

E muito mais.

Claro que há muito mais.

Leitura adicional

Isso abrange apenas alguns destaques importantes. Confira os links a seguir para ver outras mudanças no Chrome 132.

Inscrever-se

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

Assim que o Chrome 133 for lançado, vamos informar as novidades do Chrome.