Release Notes for Safari Technology Preview 46
Safari Technology Preview Release 46 is now available for download for macOS Sierra and macOS High Sierra. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. This release covers WebKit revisions 225266-225841.
Service Workers
Offline applications are important to the web. After HTML5 first tried to accommodate them with the Offline Application Cache, the Service Workers specification was created as a successor.
This standard describes new APIs focused on using JavaScript to handle resource loading for a web page without network access. While work continues, we’re excited to enable Service Workers by default in this release. Please test our implementation with your websites and send us feedback using the WebKit project bug tracker.
- Made Service Workers enabled by default (r225789)
- Exposed
self.registration
inside Service Workers (r225296) - Removed HTTP headers added by CachedResource and CachedResourceLoader in Service Worker fetch (r225574)
- Rejected promises in the ServiceWorkers API when calling objects inside of detached frames (r225577)
- Yielded image content from a
CacheStorage.add(url)
network request (r225708) - Changed the Fetch event header filtering to only apply in CORS-mode (r225809)
- Handled
self.skipWaiting()
inside Service Workers (r225460) - Removed XMLHttpRequest from being exposed to Service Workers (r225549)
- Implemented
clients.get()
andclients.getAll()
(r225427, r225452) - Supported
container.register()
andregistration.unregister()
inside Service Workers (r225456) - Targeted the Service Worker’s scope URL for remote inspection metadata (r225633)
- Made navigation requests to use navigate fetch mode (r225796)
- Activated IndexedDB and Web Sockets in Service Workers (r225644)
- Supported
container.getRegistration()
andcontainer.getRegistrations()
inside Service Workers (r225513) - Added support for
serviceWorker.postMessage()
andserviceWorkerRegistration.update()
inside of Service Workers (r225462, r225455) - Added support for the Service Worker client unloading algorithm (r225483)
- Added support for
FetchEvent.clientId
(r225294) - Addressed various issues inspecting Service Workers (r225709)
- Included support for Service Worker generated redirections (r225297)
- Populated
self.registration.installing
,self.registration.waiting
, andself.registration.active
inside Service Workers (r225341)
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 (r225495, r225521) - Clamped automatic minimum size in CSS grid if the
min()
track sizing function isauto
(r225776) - Implemented alignment for absolute positioned CSS grid items (r225805)
Rendering
- Fixed an often blank
<object type="image/svg+xml" data="foo.svg">
in an HTML-page (r225791) - Fixed missing layer content when animating elements on-screen (r225310)
- Implemented
transferToImageBitmap
for WebGL offscreen canvas objects (r225706) - Prevented viewport unit values from being affected by zooming with ⌘- or ⌘+ (r225277)
Storage Access API
- Implemented frame-specific access in the network storage session layer (r225827)
- Made
document.hasStorageAccess
a function and always allow access for same-origin iframes (r225583, r225586)
Web Inspector
- Made Computed a top-level sidebar panel in the Elements tab (r225547)
- Added the ability to filter rules and add new style rules in the redesigned Styles sidebar (r225571, r225569)
- Added display of related pseudo-elements in the Styles sidebar (r225572)
- 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 (r225570)
- Fixed CSS properties not being removed in the Styles sidebar after deleting their values (r225839)
- Fixed details section headers overlapping the Classes container in the Computed Styles panel (r225595)
- Fixed adding a new property after a property without trailing semicolon in the Styles sidebar (r225299)
- Prevented adding a property before or after the first property from becoming appended to the end in the Styles sidebar (r225568)
- Fixed the filter bar in the Console tab sometimes not appearing and cases where clear console doesn’t always work (r225280)
- Fixed content views for resources loaded through XHR and Fetch to reflect the declared MIME-type (r225546)
- Fixed the Remote Web Inspector window to restore the last used window size (r225451)
- Fixed spurious warnings shown for commands that changed pixel contents in the Canvas tab (r225602)
- Improved the initial user interface experience in the Canvas tab (r225587, r225487)
- 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 (r225656) - Fixed a bug where we would incorrectly throw stack overflow errors (r225411)
Web Driver
- Added support for handling user prompts shown while executing scripts (r225448)
- Fixed link and partial links queries to work in XHTML documents (r225388)
- Fixed
computeElementLayout
to correctly translate iframe client coordinates to main frame coordinates (r225367) - Fixed a regression that causes page screenshots to only contain the viewport (r225501)
- 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 (r225270)
- Implemented BigInt literals and JSBigInt (r225799)
- Implemented a more optimized WeakMap and WeakSet (r225832)
- Optimized
Object.assign
by single transition acceleration (r225840)
Media
- Added support for the
decoding="sync"
ordecoding="async"
attribute on images (r225616) - Enabled use of the VCP H264 encoder for platforms that support it (r225761)
- Fixed the cursor not becoming visible after exiting full screen video (r225494)
- Included
"video/*"
in image request Accept header if the browser supports video media in image contexts (r225472)