Release Notes for Safari Technology Preview 140

Safari Technology Preview Release 140 is now available for download for macOS Big Sur and of macOS Monterey. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS.

This release covers WebKit revisions 287834-288438.

Note: Tab Groups do not sync in this release.

Web Inspector

  • Elements Tab
    • Made CSS Alignment controls in the Styles Detail Sidebar accessible (r288385)
  • Sources Tab
    • Added a contextual menu item to create a URL Breakpoint for resources initiated by script (r288029)
    • Fixed fully blackboxed stack traces to show the right top call frame (r288266)
  • Timelines Tab
    • Added better names for newer CSS Animations, CSS Transitions, and Web Animations events (r287945)

:has() Pseudo-Class

  • Added support for :has(:not(foo)) (r288303)
  • Avoided complex style invalidation with repeated DOM mutations (r288012, r287973)
  • Fixed computing specificity (r288196)
  • Changed to disallow nested :has() (r288111)
  • Changed to ignore :visited inside :has() (r288304)


  • Added support for intrinsic sizes in flex-basis (r288113)
  • Added support for intrinsic sizes to the flex shorthand (r288184)
  • Added support for “missing“/”none” color components (r288143)
  • Added support for interpolating colors with “missing”/“none” components via color-mix() (r288427)
  • Added support for preloading of layered @import rules (r288099)
  • Changed interpolation mode for CSS gradients to default to OKLab if any non-legacy color syntax colors are used in the stops (r288071)
  • Changed to only apply automatic minimum block-size aspect-ratio rules to non-replaced elements (r288003)
  • Fixed the ::backdrop pseudo-element to react to associated element event listeners (r287878)
  • Fixed the CSS color() function to not clamp channels to the 0-1 range (r287838)
  • Fixed the height of flex items with aspect-ratio whenever the cross axis intrinsic size is larger than the viewport (r287976)
  • Fixed rounding of distributed free space to flexible tracks (r287977)
  • Fixed position: fixed layers to not allocate a backing buffer if all the children are offscreen (r288429)
  • Fixed setting content: normal on a ::marker to make the computed style return resolved values (r288054)


  • Added support for FetchEvent.handled API for Service Workers (r287915)
  • Enabled form.requestSubmit() (r288179)
  • Fixed nextHopProtocol exposed regardless of Timing-Allow-Origin (r288219)
  • Fixed input.labels inside shadow DOM (r288162)
  • Fixed canvas functions that take colors as strings to support all the syntax that CSS supports (r288134)
  • Implemented HTMLScriptElement.supports(type) method (r287996)
  • Improved computation of Service Worker FetchEvent.resultingClientId (r288201)

Web Animations

  • Added support for animation-composition CSS property (r288433)
  • Changed getKeyframes() for a CSS Animation to not use computed style for keyframes (r287835)
  • Fixed interpolation during animation of two empty transform lists to always yield “none” (r287917)


  • Fixed Date functions’ argument coercion (r288066)
  • Relaxed Date.parse requirement (r288411)


  • Fixed misc WebAssembly.Table issues (r288064)
  • Fixed misc issues in WebAssembly.Exception (r288065)
  • Fixed WebAssembly.Global‘s typename for “anyfunc” (r288049)

Dialog Element

  • Added visibility: visible to modal dialogs in the user-agent stylesheet (r288233)
  • Fixed some overflow and clipping issues with modal dialogs (r288267, r287845)


  • Fixed support for new lines in HTMLTextArea’s placeholder text (r288005)
  • Fixed keeping the selected state of a select element when inserting a selected <option> (r288174)
  • Prevented contenteditable anchors from being stuck (r288420)


  • Fixed gl.texImage2D upload of getUserMedia streams via <video> element fails (r288025)
  • Fixed MediaStream canvas.captureStream() playback (r288435)
  • Fixed portrait video playback on HTML canvas elements (r288053)
  • Fixed no VP9-SVS video stream from remote peer on some devices (r287928)
  • Fixed “Add to Contact” menu item (r287959)
  • Tightened the focus check for getUserMedia (r288087)


  • Allowed single use of WebAuthn without user gesture for all relying parties (r287957)


  • Exposed toggle buttons using role="button" as form controls (r288100)
  • Improved support for aria-owns in ARIA trees (r288117)

Content Security Policy

  • Improved handling of multiple policies (r288132)


  • Fixed an issue where a website may be able to track sensitive user information (r288078)


  • Fixed calculations of filterRegion and outsets of the referenced SVG filter (r288183)
  • Fixed referenced SVG filter always using sRGB color space for its result (r287982)


  • Fixed sometimes not being able to scroll after using a builtin trackpad (r287997)

Web Extensions

  • Fixed a crash when calling browser.webNavigation.getAllFrames() on an empty tab
  • Fixed Active tab permissions for a tab to get removed if a matching per-site permission changes to “Deny”
  • Fixed service worker background script errors to get reset each time they successfully load