News

Safari Technology Preview 46 for Mac Release Offers Bug Fixes and Feature Enhancements

Apple on Wednesday released Safari Technology Preview 46, a new version of their experimental web browser, first released in March 2016. The browser allows developers and other interested parties to test features that may debut in future release versions of Safari.

The release includes bug fixes and feature improvements for Security UI, Privacy, CSS, Rendering, Storage Access API, Web Inspector, Web Assembly, Web Driver, JavaScript, Media, and WebRTC. Today’s update also enables Service Workers by default and makes several Service Workers tweaks and improvements.  (Via MacRumors)

With the recent release of macOS High Sierra, Apple is now providing two versions of Safari Technology Preview, one for macOS Sierra systems and one for macOS High Sierra systems.

Safari Technology Preview Release Notes

Release 46

Service Workers

  • Made Service Workers enabled by default
  • Exposed self.registration inside Service Workers
  • Removed HTTP headers added by CachedResource and CachedResourceLoader in Service Worker fetch
  • Rejected promises in the ServiceWorkers API when calling objects inside of detached frames
  • Yielded image content from a CacheStorage.add(url) network request
  • Changed the Fetch event header filtering to only apply in CORS-mode
  • Handled self.skipWaiting() inside Service Workers
  • Removed XMLHttpRequest from being exposed to Service Workers
  • Implemented clients.get() and clients.getAll()
  • Supported container.register() and registration.unregister() inside Service Workers
  • Targeted the Service Worker’s scope URL for remote inspection metadata
  • Made navigation requests to use navigate fetch mode
  • Activated IndexedDB and Web Sockets in Service Workers
  • Supported container.getRegistration() and container.getRegistrations() inside Service Workers
  • Added support for serviceWorker.postMessage() and serviceWorkerRegistration.update() inside of Service Workers
  • Added support for the Service Worker client unloading algorithm
  • Added support for FetchEvent.clientId
  • Addressed various issues inspecting Service Workers
  • Included support for Service Worker generated redirections
  • Populated self.registration.installing, self.registration.waiting, and self.registration.active inside Service Workers

Security UI

  • Added a warning in the Smart Search field when interacting with password or credit card forms on non-secure pages

Privacy

  • Froze the user-agent string to reduce web compatibility risk and to prevent its use for fingerprinting

CSS

  • Fixed small or clipped controls caused by scale() transforms on <video> elements
  • Clamped automatic minimum size in CSS grid if the min() track sizing function is auto
  • Implemented alignment for absolute positioned CSS grid items

Rendering

  • Fixed an often blank <object type=”image/svg+xml” data=”foo.svg”> in an HTML-page
  • Fixed missing layer content when animating elements on-screen
  • Implemented transferToImageBitmap for WebGL offscreen canvas objects
  • Prevented viewport unit values from being affected by zooming with ⌘- or ⌘+

Storage Access API

  • Implemented frame-specific access in the network storage session layer
  • Made document.hasStorageAccess a function and always allow access for same-origin iframes

Web Inspector

  • Made Computed a top-level sidebar panel in the Elements tab
  • Added the ability to filter rules and add new style rules in the redesigned Styles sidebar
  • Added display of related pseudo-elements in the Styles sidebar
  • Changed the behavior of pressing delete in an empty value field of a newly added property to focus on the name field in the Styles sidebar
  • Fixed CSS properties not being removed in the Styles sidebar after deleting their values
  • Fixed details section headers overlapping the Classes container in the Computed Styles panel
  • Fixed adding a new property after a property without trailing semicolon in the Styles sidebar
  • Prevented adding a property before or after the first property from becoming appended to the end in the Styles sidebar
  • Fixed the filter bar in the Console tab sometimes not appearing and cases where clear console doesn’t always work
  • Fixed content views for resources loaded through XHR and Fetch to reflect the declared MIME-type
  • Fixed the Remote Web Inspector window to restore the last used window size
  • Fixed spurious warnings shown for commands that changed pixel contents in the Canvas tab
  • Improved the initial user interface experience in the Canvas tab
  • Fixed an issue that caused Safari to hang after toggling “Allow Web Inspector” setting on an attached iOS device.

Web Assembly

  • Fixed postMessage to allow a WebAssembly module to postMessage to and from an iframe
  • Fixed a bug where we would incorrectly throw stack overflow errors

Web Driver

  • Added support for handling user prompts shown while executing scripts
  • Fixed link and partial links queries to work in XHTML documents
  • Fixed computeElementLayout to correctly translate iframe client coordinates to main frame coordinates
  • Fixed a regression that causes page screenshots to only contain the viewport
  • Fixed an issue where safaridriver would quit after trying to close a window when no windows remain open

JavaScript

  • Corrected the recursive tail call optimisation on closures
  • Implemented BigInt literals and JSBigInt
  • Implemented a more optimized WeakMap and WeakSet
  • Optimized Object.assign by single transition acceleration

Media

  • Added support for the decoding=”sync” or decoding=”async” attribute on images
  • Enabled use of the VCP H264 encoder for platforms that support it
  • Fixed the cursor not becoming visible after exiting full screen video
  • Included “video/*” in image request Accept header if the browser supports video media in image contexts

WebRTC

  • Changed to allow AudioContext to start when getUserMedia is on
  • Fixed an issue where getUserMedia is resolving before the document knows it is capturing
  • Prevented the display from going to sleep when playing WebRTC video tracks

Users can either download the update from the Safari Technology Preview website, or if they already have the browser installed, they can download it via the Mac App Store. Full release notes for the update are available on the same website.

While the preview is intended for use by developers and advanced users, in order to provide Apple with feedback on the development of the Safari browser, it can be run side-by-side with the release version of Safari. The app doesn’t require a developer account to download and install. For more information, visit the Safari Tech Preview website.

Chris Hauk

Chris is a Senior Editor at Mactrast. He lives somewhere in the deep Southern part of America, and yes, he has to pump in both sunshine and the Internet.