Novità di Chrome 132

Ecco cosa devi sapere:

Sono Pete LePage. Diamo un'occhiata alle novità per gli sviluppatori in Chrome 132.

Eventi di attivazione/disattivazione degli elementi della finestra di dialogo

L'elemento <dialog> è utile per rappresentare qualsiasi tipo di finestra di dialogo in HTML. È disponibile a livello generale, il che significa che funziona su tutti i browser. Purtroppo, l'implementazione iniziale non includeva un modo diretto per rilevare quando una finestra di dialogo si apre o si chiude.

A partire da Chrome 132, è disponibile un nuovo ToggleEvent. Include lo stesso ToggleEvent inviato da un popover. Per gli elementi <dialog>, quando viene chiamato showModal o show, <dialog> invia un ToggleEvent con newState=open. Quando un <dialog> viene chiuso (utilizzando un modulo, un pulsante o un closewatcher), viene inviato un ToggleEvent con 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");
  }
});

Acquisizione di elementi

Elementi sovrapposti con la funzionalità di acquisizione di elementi.

La piattaforma web consente a un'app web di acquisire una traccia video della scheda o della regione corrente e, a partire da Chrome 132, le app web possono acquisire un elemento. Questa funzionalità è particolarmente utile quando gli elementi sono posizionati in modo da sovrapporsi.

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;

Dai un'occhiata alla demo.

L'API File System Access su Android e WebView

L'API File System Access è disponibile su Chrome per computer da un po' di tempo e consente alle app web di interagire con i file sul file system locale degli utenti. A partire da Chrome 132, l'API è ora disponibile su Android e in WebView.

Per leggere un file, chiama showOpenFilePicker(), che mostra un selettore di file, quindi restituisce un handle file che puoi utilizzare per leggere il file. Per salvare un file sul disco, puoi utilizzare l'handle file ottenuto in precedenza o chiamare showSaveFilePicker() per ottenere un nuovo handle file.

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

E tanto altro.

Ovviamente ce ne sono molti altri.

Per approfondire

Sono riportati solo alcuni punti salienti. Consulta i seguenti link per ulteriori modifiche in Chrome 132.

Iscriviti

Per non perderti nessuna novità, iscriviti al canale YouTube di Chrome for Developers, e riceverai una notifica via email ogni volta che lanceremo un nuovo video.

Non appena verrà rilasciato Chrome 133, ti comunicheremo le novità di Chrome.