🐡 New in Chrome 110: AudioContext.setSinkId(), Default Offline Experience for Installed Web Apps and more 🐡

7 views
Skip to first unread message

Ajay Rahatekar

unread,
Jan 31, 2023, 3:30:02 PM1/31/23
to fugu...@chromium.org

Welcome to the latest edition of the regular Fugu + PWA update. Here, you'll find all the latest news about our work on the Fugu APIs, plus a sampling of recent work with partners.


There was no newsletter for Chrome 109, since no new Fugu features were included in that release.


As always, our project tracker is available at fugu-tracker.web.app/ 


M110

______________________________________________________________________________________________

Features Releasing to Stable


AudioContext.setSinkId()

Contributors:  hong...@chromium.org, mjwi...@chromium.org, alv...@chromium.org


Chromestatus     Bug     Spec     Intent to Ship     Blog                                             


Previously, a web app that wished to play audio through a non-default device could only do so with a MediaStream. Apps using Web Audio often had to route audio this way as well, potentially introducing extra complexity and latency. Now, with AudioContext.setSinkId(), an app can send audio to a desired output source directly.


This is useful for almost any web app using Web Audio. But it will be immediately useful for an upcoming Zoom PWA on Chrome OS.




FileSystemHandle.remove()

Contributors:  asu...@chromium.org


Chromestatus     Bug     Spec     Intent to Ship                                              


Previously, an app could only remove a file or directory if it owned a handle to its parent directory. The new remove() method lets an app remove a file or directory from its own handle. This opens up new use cases. For example:


  • a user could delete a file they saved using the dialog shown by showSaveFilePicker()

  • an app could clear an Origin Private File System by calling remove() on the root




Remove Web SQL in non-secure contexts, and webkitStorageInfo

Contributors:  ay...@chromium.org, mo...@chromium.org


Chromestatus     Bug     Intent to Deprecate & Remove                                              


The Web SQL standard is marked as deprecated, and every browser has dropped it except Chromium. It inspires frequent security issues and requires maintenance, but it's little used.


window.webkitStorageInfo API (Chromestatus Bug Intent to Remove ) is a legacy quota API. It's been deprecated since 2013, replaced by the now standardized StorageManager API.


Conversations with Enterprise teams at multiple companies, with Chrome OS teams, and partners didn't reveal usage of either. An analysis of the web's top 10K sites revealed no Web SQL usage over HTTP, and only trivial webkitStorageInfo usage for feature detection in standard libraries. Thus we are removing both in M110.


The recent launch of SQLite over Wasm makes available a superior replacement for Web SQL. We will scour the web for further usage before announcing a date for full removal.


See go/deprecating-websql for more on our careful approach.




Default Offline Experience for Installed Web Apps on Desktop

Contributors:  fin...@chromium.org

                                            

This effort provides a default offline experience for web apps that don't provide their own custom offline experience. This is important because showing the Dino network error page is a tell-tale mark of a browser experience when we're trying to create more of a native-like experience for web apps. This is also increasing in importance as we are removing the install requirement of a service worker, which means more and more web apps with offline experience will be installed in the future.




Web App Launch Handler

Contributors:  alanc...@chromium.org,

mgi...@chromium.org


Chromestatus     Bug     Intent to Ship   MDN docs                                          


Enables web apps to customize their launch behavior to reuse existing app windows and even prevent new page navigations.


Example usage:

{

  "name": "Example app",

  "start_url": "/index.html",

  "launch_handler": {

    "client_mode": "focus-existing"

  }

}


This will cause all launches of the Example app to focus an existing app window without navigating it rather than always launching a new app window.




Please reach out with any questions, comments or suggestions.

Ben MorssAjay Rahatekar and the Fugu team.

Reply all
Reply to author
Forward
0 new messages