Apple on Wednesday released Safari Technology Preview 42, 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.
Safari Technology Preview release 42 includes fixes and improvements for Files and Directory Entries API, Clipboard API, Fonts, CSS, Web API, WebDriver, JavaScript, Accessibility, Media, Rendering, WebGL, and Web Inspector. Today’s update also implements Payment Request features. (Via MacRumors)
Safari Technology Preview Release Notes
Release 42
File and Directory Entries API
- Fixed a failure when calling fileSystemDirectoryEntry.getDirectory() with an empty path
- Fixed recognizing a path starting with 2 slashes as a valid absolute path
Payment Request
- Implemented PaymentRequest.canMakePayment()
- Implemented PaymentRequest.show() and PaymentRequest.hide()
Clipboard API
- Added the support for custom pasteboard MIME types and hid unsafe MIME types
- Fixed copying and pasting of image files on TinyMCE and GitHub
- Fixed DataTransfer.items to expose custom pasteboard types
- Prevented revealing the file URL when pasting an image
- Prevented dragenter and dragleave from using the same data transfer object
- Removed “text/html” from DataTransfer.items when performing paste and match style
- Started pasting images in RTF and RTFD contents using blob URLs
- Sanitized the URL in the pasteboard for other applications and cross-origin content
Fonts
- Added “display” to the FontFace JavaScript object
- Implemented font-display loading behaviors
- Upgraded Brotli to version 1.0.1 and WOFF2 to the latest upstream
CSS
- Removed constant() in favor of env()
Web API
- Added support for DOM aborting
- Added support for <link rel=preconnect>
- Changed to use the blob URL when pasting RTFD
- Changed XMLHttpRequest.setRequestHeader() to allow Content-Transfer-Encodingheader
- Prevented submitting a form that is disconnected
- Updated Document.createEvent for recent DOM specification changes
WebDriver
- Added support for selecting an <option> element by sending keys to its parent <select> element.
- Fixed an issue that caused driver.sendKeys(“”) to unexpectedly fail and throw an exception.
JavaScript
- Addressed an issue with if (!await get(something))
- Dropped instantiate hook in ES6 module loader
- Fixed object properties that are undefined in super.call() but not in this.call()
- Implemented polymorphic prototypes
- Implemented RegExp Unicode property escapes
- Introduced import.meta
Accessibility
- Exposed ARIA drag-and-drop attribute values via AtkObject attributes
- Exposed ARIA menu items with ATKROLEMENU_ITEM even when it’s the child of group role
- Fixed redundant layout on tables
- Fixed exposing aria-rowindex set on a row element
- Fixed exposing the value of aria-level on non-heading roles
Media
- Added basic support for getting an ImageBitmapRenderingContext
- Fixed slow WebGL compositing performance
- Fixed seek() command for encrypted content when the <video> element is not in the DOM at decode time
Rendering
- Fixed incorrect fullscreen animation when the element has a transform
- Fixed an issue where minimum font size may cause elements to have an infinite line-height
- Improved the progressive display of large images
WebGL
- Changed to allow async to be able to be used as an imported binding name
- Changed the way WebGL is composited into the page significantly, providing much better performance on lower-end hardware with high-resolution displays
- Reduced the maximum samples used in Multi-Sample Anti-Aliasing (MSAA) for improved performance
Web Inspector
- Added a Canvas tab
- Added auto-completion for min() and max() within a CSS calc()
- Added support for keyboard navigation with Tab, Shift-Tab, Enter, and ESC in the redesigned styles sidebar
- Added support for editing rule selectors in the redesigned styles sidebar
- Added support for undo and redo of manual edits in the redesigned styles sidebar
- Added detail views for resources in Network tab
- Added a headers detail view for resources in the Network tab
- Added remote address in the headers detail view of the Network tab
- Added a cookies detail view in the Network tab
- Added support to search in the headers detail view of the Network tab
- Changed Layers tab sidebar DOM highlight to be by row hover, not row selection
- Changed Network tab filter resources to be based on URL and text content
- Changed the Network tab to show initially loaded resources even if network info was not logged
- Fixed jitter in timeline ruler labels
- Fixed an issue where clicking in the Web Inspector web view clears the selection in the inspected page
- Fixed Beacon and Ping grouping issues
- Fixed Layers tab sidebar popover
- Fixed a row wrapping issue causing waterfall graphs to display behind the next row’s name
- Fixed blurry quick open resource dialog icons
- Fixed misaligned popover when selecting child layers using the keyboard
- Fixed the table in the Network tab from appearing blank when scrolling it reduces the number of rows
- Enabled 3D objects to be selectable in the Layers visualization
- Ensured popovers are not malformed on window resize.
- Escaped more characters in the command generated by “Copy as cURL”
- Improved Canvas recording events
- Improved setting the initial default sorting for tables
- Improved reliability of selection in a table in the Network tab
- Improved the quick open dialog to include source mapped files in the search results
- Included Beacon and Ping requests in Network tab
- Set initial column widths to allow the waterfall column to expand more by default in the Network tab
Bug Fixes
- Fixed an issue introduced in Safari Technology Preview 41 where the tab bar could get out of sync with which tab’s content is being displayed when opening links from another app
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.