<!--
{
  "documentType" : "article",
  "framework" : "Safari Technology Preview Release Notes",
  "identifier" : "/documentation/Safari-Technology-Preview-Release-Notes/stp-release-45",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari Technology Preview 45 Release Notes"
}
-->

# Safari Technology Preview 45 Release Notes

Preview the latest web technology updates including: Rendering, JavaScript, CSS, Web API, Media, Web Inspector, and Accessibility.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 45 is now [available for download](https://webkit.org/downloads/) 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 [224579-225266](https://trac.webkit.org/log?stop_rev=224579&rev=225266&limit=999).

If you recently updated from macOS Sierra to macOS High Sierra, you may need to install the High Sierra version of Safari Technology Preview manually.

### Rendering

- Corrected the computed style in pseudo-elements with `display:contents` ([r225049](https://trac.webkit.org/changeset/225049/webkit/))
- Changed to reset the SVG scrolling anchor if the fragmentIdentifier does not exist or is not provided ([r224973](https://trac.webkit.org/changeset/224973/webkit/))
- Fixed the available height for positioned elements with `box-sizing:border-box` ([r225101](https://trac.webkit.org/changeset/225101/webkit/))
- Fixed long pressing a phone number with spaces to result in a data detectors sheet instead of a link sheet ([r224819](https://trac.webkit.org/changeset/224819/webkit/))
- Fixed compositing layers to use accelerated drawing when navigating back to a page ([r224796](https://trac.webkit.org/changeset/224796/webkit/))
- Fixed Flexbox issues with `display:contents` by no longer eliminating the whitespace renderer if the previous sibling is a text renderer ([r224773](https://trac.webkit.org/changeset/224773/webkit/))
- Fixed missing contents of composited `overflow-scroll` when newly added ([r224715](https://trac.webkit.org/changeset/224715/webkit/))
- Fixed content not getting painted when scrolling an overflow node inside an iframe ([r224618](https://trac.webkit.org/changeset/224618/webkit/))
- Fixed FETurbulence SVG filter with stitchTiles ([r225018](https://trac.webkit.org/changeset/225018/webkit/))
- Fixed skewed colors in feImage as a filter input ([r225152](https://trac.webkit.org/changeset/225152/webkit/))
- Fixed an issue in the FEGaussianBlur SVG filter where the output of the last blur pass wasn’t copied to the result buffer ([r225147](https://trac.webkit.org/changeset/225147/webkit/))
- Optimized the FEDisplacementMap SVG filter ([r225183](https://trac.webkit.org/changeset/225183/webkit/))
- Optimized the FEMorphology SVG filter ([r225172](https://trac.webkit.org/changeset/225172/webkit/))
- Optimized the FEComponentTransfer SVG filter ([r225107](https://trac.webkit.org/changeset/225107/webkit/))
- Optimized the FELighting SVG filter ([r225088](https://trac.webkit.org/changeset/225088/webkit/), [r225122](https://trac.webkit.org/changeset/225122/webkit/))
- Optimized the FETurbulence SVG filter ([r224977](https://trac.webkit.org/changeset/224977/webkit/), [r224996](https://trac.webkit.org/changeset/224996/webkit/), [r225009](https://trac.webkit.org/changeset/225009/webkit/), [r225021](https://trac.webkit.org/changeset/225021/webkit/), [r225020](https://trac.webkit.org/changeset/225020/webkit/), [r225035](https://trac.webkit.org/changeset/225035/webkit/), [r225024](https://trac.webkit.org/changeset/225024/webkit/))
- Used vImage to optimize alpha premultiplication and un-premultiplication in FilterEffect ([r225086](https://trac.webkit.org/changeset/225086/webkit/))

### JavaScript

- Added recursive tail call optimization for polymorphic calls ([r225212](https://trac.webkit.org/changeset/225212/webkit/))
- Fixed async iteration to only fetch the next method once ([r224787](https://trac.webkit.org/changeset/224787/webkit/))
- Updated module fetching to retry if the previous request fails ([r224662](https://trac.webkit.org/changeset/224662/webkit/))

### CSS

- Fixed continual style re-resolution due to `calc()` values always comparing as unequal as seen on arstechnica.com ([r225141](https://trac.webkit.org/changeset/225141/webkit/))
- Fixed display issues in CSS Grid for a child with `max-width` ([r225163](https://trac.webkit.org/changeset/225163/webkit/))
- Enabled `display:contents` by default ([r224822](https://trac.webkit.org/changeset/224822/webkit/))
- Fixed inserting an image, selecting, underlining, and then deleting to remove the typing style with both `-webkit-text-decorations-in-effect` and `text-decoration` ([r224649](https://trac.webkit.org/changeset/224649/webkit/))
- Prevented mixing `stroke-width` and `stroke-color` with their prefixed versions ([r224780](https://trac.webkit.org/changeset/224780/webkit/))

### Web API

- Added support for `CanvasPattern.setTransform()` ([r225121](https://trac.webkit.org/changeset/225121/webkit/))
- Implemented `OffscreenCanvas.getContext("webgl")` ([r225193](https://trac.webkit.org/changeset/225193/webkit/))
- Changed XMLHttpRequest to not treat file URLs as same origin ([r224609](https://trac.webkit.org/changeset/224609/webkit/))
- Changed FetchLoader to unregister its blob URL ([r224954](https://trac.webkit.org/changeset/224954/webkit/))

### Media

- Added a FairPlay Streaming based CDM for Modern EME ([r224707](https://trac.webkit.org/changeset/224707/webkit/))
- Changed Web Audio’s `AnalyserNode.fftSize` to allow up to 32768 to match specifications ([r225226](https://trac.webkit.org/changeset/225226/webkit/))
- Changed skip back and skip forward buttons to not hard-code their numeric amount in localised strings ([r225216](https://trac.webkit.org/changeset/225216/webkit/))
- Fixed play and pause when pressing the space bar while watching a fullscreen video ([r225265](https://trac.webkit.org/changeset/225265/webkit/))
- Prevented captions from moving when `<video>` with no controls is hovered ([r225138](https://trac.webkit.org/changeset/225138/webkit/))

### Web Inspector

- Added the display of detailed status during canvas recording in the experimental Canvas tab ([r224726](https://trac.webkit.org/changeset/224726/webkit/))
- Added showing the internal properties of PaymentRequest in the Console ([r224606](https://trac.webkit.org/changeset/224606/webkit/))
- Cleaned up the backtrace  in Canvas details sidebar ([r225259](https://trac.webkit.org/changeset/225259/webkit/))
- Cleaned up navigation bar dividers and separators ([r224807](https://trac.webkit.org/changeset/224807/webkit/))
- Gave the DataGrid table header ContextMenu a section header to better describe its functions ([r224761](https://trac.webkit.org/changeset/224761/webkit/))
- Included Beacon loads in the Network table’s “Other” filter ([r225246](https://trac.webkit.org/changeset/225246/webkit/))
- Moved console Preserve Log setting from Setting tab to Console navigation bar ([r225257](https://trac.webkit.org/changeset/225257/webkit/))
- Added a toggle in the Network tab to control automatically clearing or preserving log across loads ([r225250](https://trac.webkit.org/changeset/225250/webkit/))
- Added a HAR Export button to the Network tab ([r224994](https://trac.webkit.org/changeset/224994/webkit/))
- Cleaned up the Network tab details view ([r224733](https://trac.webkit.org/changeset/224733/webkit/), [r224851](https://trac.webkit.org/changeset/224851/webkit/), [r224769](https://trac.webkit.org/changeset/224769/webkit/))
- Fixed the Navigation sidebar that would become broken after closing and re-opening the tab ([r224905](https://trac.webkit.org/changeset/224905/webkit/))
- Made the connection part thinner in the Network tab waterfall graph ([r224727](https://trac.webkit.org/changeset/224727/webkit/))
- Updated the Ignore Caches icon in the Network tab ([r224989](https://trac.webkit.org/changeset/224989/webkit/))
- Updated the Clear icon in the Network tab and Console tab ([r225019](https://trac.webkit.org/changeset/225019/webkit/))
- Removed Network “Clear on load” from the Settings tab now that Network tab has a toggle for it ([r225256](https://trac.webkit.org/changeset/225256/webkit/))
- Prevented adding a new property when clicking on inline swatches and property checkboxes in the Styles sidebar  ([r224651](https://trac.webkit.org/changeset/224651/webkit/))
- Changed typing colon in the property name field to advance to the value field in the Styles sidebar ([r224906](https://trac.webkit.org/changeset/224906/webkit/))
- Fixed the clipped shadow of the selector’s field in the Styles sidebar ([r225165](https://trac.webkit.org/changeset/225165/webkit/))
- Made the selector field inline-block when editing in the Styles sidebar ([r224768](https://trac.webkit.org/changeset/224768/webkit/))
- Added undo and redo support for the DOM Tree’s add sibling context menus ([r224648](https://trac.webkit.org/changeset/224648/webkit/))
- Removed context menu actions for images which did not work ([r225234](https://trac.webkit.org/changeset/225234/webkit/))

### Accessibility

- Fixed VoiceOver in Safari to read the table header for the first cell in the first body row ([r224997](https://trac.webkit.org/changeset/224997/webkit/))
- Fixed the search predicate to return the text element for plain text instead of the containing group ([r224650](https://trac.webkit.org/changeset/224650/webkit/))
- Prevented accessibility from triggering a  sync layout while building the render tree on macrumors.com ([r224899](https://trac.webkit.org/changeset/224899/webkit/))

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)