 Installed PWAs can register as file handlers making it easy for users to open files directly from disk. The inert attribute allows you to mark parts of the DOM as inert. The navigation API makes it easier for single-page apps to handle navigation and updates to the URL. And there's plenty more. I'm Pete LaPage. Let's dive in and see what's new for developers in Chrome 102. The File Handling API allows installed PWAs to register with the OS as a file handler. Once registered, a user can click on a file and open it with the installed PWA. This is perfect for PWAs that interact with files, for example image editors, IDEs, text editors, and so on. To add file handling functionality to your PWA, you'll need to update your web app manifest, adding a file handler's array with details about the types of files that your PWA can handle. You'll need to specify the URL to open, the MIME types, an icon for the file type, and the launch type, which defines whether multiple files should be opened in a single client or in multiple clients. Then, to access those files when the PWA is launched, you'll need to specify a consumer for the launch queue object. Launches are queued until they're handled by the consumer. Tom has a great article on web.dev with all the details. The inert property is a global HTML attribute that tells the browser to ignore user input events for an element, including focus events and events from assistive technologies. This can be really useful when building UIs. For example, with the modal, you want to trap the focus inside the modal when it's visible. Or for a drawer that's not always visible to the user, adding a inert ensures that while the drawer is off-screen, a keyboard user cannot accidentally interact with it. Here, a inert has been declared on the second element containing button 2. So all content contained within this, including the button and the label, cannot receive focus or be clicked. A inert is supported in Chrome 102 and is coming to both Firefox and Safari. Check out introducing a inert on developer.chrome.com for details. Many web apps depend on the ability to update the URL without a page navigation. Today, we use the history API for this, but it's clunky and doesn't always work as expected. Rather than trying to patch the history API's rough edges, the navigation API completely overhauls this space. To use the navigation API, add a navigate listener to the global navigation object. This event is fundamentally centralized and it will fire for all types of navigations, whether the user performs an action, such as clicking on a link, submitting a form, or going backwards and forwards, even when the navigation is triggered programmatically. In most cases, it lets your code override the browser's default behavior for that action. Check out the article Modern Client-Side Routing, the navigation API on developer.chrome.com for complete details and a demo that you can try out. Of course, there's plenty more. The new Sanitizer API aims to build a robust processor for arbitrary strings to be safely inserted into a page. And the hidden until found attribute makes it possible for the browser to search for text in hidden regions and reveal that section if a match is found. All the details including links, docs, and specs are in the updates post linked in the description. Hit the subscribe button now so that you don't miss any of the latest Chrome DevTools videos, GUI challenges, HTTP203, and more. I'm Pete LePage and as soon as Chrome 103 is released, be right here to tell you what's new in Chrome.