Safari 15.4 for iOS and macOS is now available with 70 new additions to WebKit. These additions include improved PWA support, and new features for media, Safari web extensions, private click measurement, security, lazy loading, and much more.
We had previously covered experimental support for push notifications, WebXR, and improved PWA support found in iOS 15.4 beta. It seemed like all these features would be released in the future, but it is a pleasant surprise to see Apple focus on improving PWA support in Safari.
Safari 15.4 features
Safari 15.4 is a huge update and features a lot of new improvements in iOS 15.4, iPadOS 15.4, and macOS 12.3. Below is a list of some of the most interesting updates to the browser that will help improve user experience and performance.
The major focus areas for PWA in Safari 15.4 include support for Web App Manifest icons. These icons will be prioritized when no apple-touch-icon is defined by web developers. The web app manifest file is now fetched upon page load instead of when a user selects the “Add to Home Screen” option.
A number of improvements to ServiceWorker are also in this update. This includes support for files generated by a ServiceWorker as well as support for enabling Navigation Preload in ServiceWorker, which should help improve web app loading performance and avoid any delays that can block network requests.
BroadcastChannel or shared worker support is also available now. This allows tabs, windows, iframes, and other workers to communicate with each other if they are from the same origin. Web Locks API support now allows developers to “manage access to a resource as an asynchronous locking control from an origin in tabs, windows, iframes, and Workers.”
ResizeObserverEntry and ResizeObserverSize support has also been added and allows developers to control scroll behavior by instantly jumping to a specific position in the web app, or smoothly animating to it.
Lazy loading support is now built into Safari 15.4, just like Chrome and Firefox. This helps defer image loading until a user scrolls close to it or it is in the viewport.
Support for <dialog> element and ::backdrop pseudo-element now allows developers to create overlays and modals while animating the backdrop. This will be helpful for developers when focusing on accessibility.
Another interesting update is support for Fullscreen API for WKWebView and third-party browsers on iOS and iPadOS. This allows developers to control whether web content can be used in full-screen mode or not. If you were annoyed that most websites cannot show video in full screen in browsers like Chrome or Firefox on iPadOS, this might fix it.
You can read more about the rest of the additions to WebKit in Safari 15.4 here.