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

# Safari Technology Preview 142 Release Notes

Preview the latest web technology updates including: Web Inspector, CSS Subgrid, CSS Container Queries, CSS, Web Animations, Rendering, Forms, JavaScript, Shared Workers, Workers, Dialog Element, Web API, Experimental Model Element, and Web Extensions.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 142 is now [available for download](https://webkit.org/downloads/) for macOS Big Sur and 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 [289213-290223](https://trac.webkit.org/log?stop_rev=289213&rev=290223&limit=1010).

**Note:** Tab Groups do not sync in this release.

### Web Inspector

- Elements Tab
  - Added overlay for visualizing CSS Flexbox container layouts ([r290065](https://trac.webkit.org/changeset/290065/webkit/), [r290047](https://trac.webkit.org/changeset/290047/webkit/), [r289416](https://trac.webkit.org/changeset/289416/webkit/), [r289610](https://trac.webkit.org/changeset/289610/webkit/), [r289698](https://trac.webkit.org/changeset/289698/webkit/), [r289757](https://trac.webkit.org/changeset/289757/webkit/))
  - Added indicators for layout context in element tooltips ([r290112](https://trac.webkit.org/changeset/290112/webkit/))
- Sources Tab
  - Fixed clicking to re-enable a breakpoint clearing automatic continue ([r289669](https://trac.webkit.org/changeset/289669/webkit/))
  - Fixed double-clicking a breakpoint icon to show the edit popover ([r289670](https://trac.webkit.org/changeset/289670/webkit/))

### CSS Subgrid

- Enabled subgrid by default ([r290111](https://trac.webkit.org/changeset/290111/webkit/))
- Added accounting for subgrid margin, border, and padding when sizing ([r290096](https://trac.webkit.org/changeset/290096/webkit/))
- Added support for parsing subgrid in `grid-template-columns` and `grid-template-row` ([r289722](https://trac.webkit.org/changeset/289722/webkit/))
- Changed to copy track sizes from the parent grid into subgrid ([r290007](https://trac.webkit.org/changeset/290007/webkit/))
- Changed to inherit track count from the parent grid for subgridded axes and clamp item placement to that explicit grid ([r289986](https://trac.webkit.org/changeset/289986/webkit/))
- Included subgrid items in the track sizing algorithm of the outer grid ([r290077](https://trac.webkit.org/changeset/290077/webkit/))
- Implemented `getComputedStyle` for subgrids ([r289993](https://trac.webkit.org/changeset/289993/webkit/))
- Fixed certain scenarios where grid may be empty ([r289437](https://trac.webkit.org/changeset/289437/webkit/))
- Fixed recalculating styles when updating a grid gap value ([r289241](https://trac.webkit.org/changeset/289241/webkit/))

### CSS Container Queries

- Enabled CSS Container Queries by default ([r290025](https://trac.webkit.org/changeset/290025/webkit/))
- Added query container tracking so they can be invalidated on size change ([r289457](https://trac.webkit.org/changeset/289457/webkit/))
- Added support for all size features ([r289838](https://trac.webkit.org/changeset/289838/webkit/))
- Added support for full range notation in size queries ([r290037](https://trac.webkit.org/changeset/290037/webkit/))
- Added support for range operators in size queries ([r289789](https://trac.webkit.org/changeset/289789/webkit/))
- Changed size queries on unsupported axis to evaluate to unknown ([r289890](https://trac.webkit.ebkit/))
- Implemented container name matching ([r289617](https://trac.webkit.org/changeset/289617/webkit/))
- Implemented full query parser and evaluator ([r289742](https://trac.webkit.org/changeset/289742/webkit/))
- Implemented inline-size containment ([r289466](https://trac.webkit.org/changeset/289466/webkit/))
- Implemented container shorthand serialization ([r289886](https://trac.webkit.org/changeset/289886/webkit/))
- Matched container queries correctly in non-rendered subtrees ([r290205](https://trac.webkit.org/changeset/290205/webkit/)

### CSS

- Enabled CSS Motion Path by default ([r290071](https://trac.webkit.org/changeset/290071/webkit/))
- Enabled `overscroll-behavior` by default ([r289683](https://trac.webkit.org/changeset/289683/webkit/))
- Changed `transform: perspective(0)` to not be considered an identity operation ([r289903](https://trac.webkit.org/changeset/289903/webkit/))
- Changed to return `none` for the computed style of a mask when there are no mask images ([r289377](https://trac.webkit.org/changeset/289377/webkit/))
- Fixed `:focus-visible` with a click on radio or checkbox labels ([r289521](https://trac.webkit.org/changeset/289521/webkit/))
- Fixed `contain: content` in fullscreen ([r289686](https://trac.webkit.org/changeset/289686/webkit/))
- Fixed incorrect absolute position layout when toggling `contain` ([r289527](https://trac.webkit.org/changeset/289527/webkit/))
- Updated conversion to a color space with a smaller gamut to perform gamut mapping ([r289396](https://trac.webkit.org/changeset/289396/webkit/))
- Updated an element with both `-webkit-user-select: all` and `-webkit-user-drag: element` to get a snapshot as when using only `-webkit-user-drag: element` ([r289544](https://trac.webkit.org/changeset/289544/webkit/))

### Web Animations

- Enabled the `KeyframeEffect.composite` property ([r290067](https://trac.webkit.org/changeset/290067/webkit/))
- Added `composite` accumulation support for transform properties ([r289599](https://trac.webkit.org/changeset/289599/webkit/))
- Added support for logical properties in JS-originated animations ([r289216](https://trac.webkit.org/changeset/289216/webkit/))
- Aligned animations with different, but compatible, `frameRate` values ([r290121](https://trac.webkit.org/changeset/290121/webkit/))
- Allowed setting `frameRate` as an option passed to `Element.animate()` ([r290123](https://trac.webkit.org/changeset/290123/webkit/))
- Allowed setting `frameRate` as an option passed to `document.timeline.animate()` ([r290125](https://trac.webkit.org/changeset/290125/webkit/))
- Changed to properly handle interpolation of non-invertible matrices ([r289862](https://trac.webkit.org/changeset/289862/webkit/))
- Changed to use the animation `frameRate` during animation resolution and scheduling ([r290003](https://trac.webkit.org/changeset/290003/webkit/))
- Changed `Animation.commitStyles()` to use the non-animated style ([r289453](https://trac.webkit.org/changeset/289453/webkit/))
- Fixed additive and accumulation interpolation to work correctly with implicit 0% and 100% keyframes ([r289454](https://trac.webkit.org/changeset/289454/webkit/))
- Fixed animating from `scale()` to `scale() translate()` ([r289732](https://trac.webkit.org/changeset/289732/webkit/))
- Fixed additive animations to prevent other animations from running accelerated ([r289605](https://trac.webkit.org/changeset/289605/webkit/))
- Fixed recomputing keyframes when changing `direction` or `writing-mode` ([r289426](https://trac.webkit.org/changeset/289426/webkit/))
- Fixed clearing computed keyframes when changing `direction` or `writing-mode` ([r289226](https://trac.webkit.org/changeset/289226/webkit/))
- Fixed animations associated with a custom effect to appear in  `document.getAnimations()` result ([r290122](https://trac.webkit.org/changeset/290122/webkit/))
- Implemented parsing and animation support for `offset` shorthand ([r289876](https://trac.webkit.org/changeset/289876/webkit/))

### Rendering

- Fixed tab characters and `ch` units to obey synthetic bold width adjustments correctly ([r289609](https://trac.webkit.org/changeset/289609/webkit/))

### Forms

- Changed input elements to return an empty string for an invalid floating-point number that ends with “.” ([r290124](https://trac.webkit.org/changeset/290124/webkit/))
- Fixed selection method return values to match the spec ([r289813](https://trac.webkit.org/changeset/289813/webkit/))
- Fixed light appearance text fields rendering invisible in Increased Contrast mode ([r290054](https://trac.webkit.org/changeset/290054/webkit/))
- Fixed clicking an `<input type="image">` submitting the form with a `null` submitter ([r289615](https://trac.webkit.org/changeset/289615/webkit/))
- Improved `applyStep()` to match the spec ([r289465](https://trac.webkit.org/changeset/289465/webkit/))

### JavaScript

- Enabled Shadow Realms support by default ([r290119](https://trac.webkit.org/changeset/290119/webkit/))
- Implemented `Temporal.PlainDate` behind a flag: `__XPC_JSC_useTemporal=1` ([r290209](https://trac.webkit.org/changeset/290209/webkit/))
- Optimized JSString’s atomization ([r289359](https://trac.webkit.org/changeset/289359/webkit/))

### Shared Workers

- Added support for sharing Shared Workers (including across WebProcesses) ([r289247](https://trac.webkit.org/changeset/289247/webkit/))
- Changed to fail synchronously when constructing a SharedWorker with a URL that is not same-origin ([r289532](https://trac.webkit.org/changeset/289532/webkit/))
- Fixed `self.location.href` in Shared Workers in case of redirects ([r289483](https://trac.webkit.org/changeset/289483/webkit/))

### Workers

- Changed worker scripts to always be decoded as UTF-8 ([r289489](https://trac.webkit.org/changeset/289489/webkit/))
- Fixed `WorkerGlobalScope.importScripts()` to protect blob URLs that were passed in until the imports are done ([r289236](https://trac.webkit.org/changeset/289236/webkit/))
- Fixed MIME type check for classic worker script fetches ([r289672](https://trac.webkit.org/changeset/289672/webkit/))
- Fixed exceptions to be properly reported when initializing a worker as a module ([r289479](https://trac.webkit.org/changeset/289479/webkit/))

### Dialog Element

- Fixed the Dialog element only animating once ([r289498](https://trac.webkit.org/changeset/289498/webkit/))
- Exposed the correct role, subrole, and role description properties for the `<dialog>` element ([r289713](https://trac.webkit.org/changeset/289713/webkit/))

### Web API

- Added support for both versions of ScreenCaptureKit API ([r289547](https://trac.webkit.org/changeset/289547/webkit/))
- Changed to use the system window and screen picker when available ([r289696](https://trac.webkit.org/changeset/289696/webkit/), [r289701](https://trac.webkit.org/changeset/289701/webkit/))
- Fixed settling a fetch promise to be delayed in case the page is entering page cache ([r289533](https://trac.webkit.org/changeset/289533/webkit/))
- Optimized DOM storage event dispatch ([r290223](https://trac.webkit.org/changeset/290223/webkit/))

### Experimental Model Element

- Improved sizing on macOS ([r289495](https://trac.webkit.org/changeset/289495/webkit/))
- Made standalone model documents interactive ([r289666](https://trac.webkit.org/changeset/289666/webkit/))

### Web Extensions

- Added support for the `browser.action.openPopup()` and `browser.browserAction.openPopup()` API to open the extension popup for a specific window (this is a WECG [proposal](https://github.com/w3c/webextensions/issues/15))
- Added support for the `optional_host_permissions` manifest key in `manifest_version` 3 extensions (this is a WECG [proposal](https://github.com/w3c/webextensions/issues/119))
- Added support for `browser.runtime.getFrameId()` so it easier to get frame identifiers from content scripts (this is a WECG [proposal](https://github.com/w3c/webextensions/issues/12))
- Added support for the `frameId` option that can be passed to `browser.tabs.sendMessage()`
- Fixed the number returned by `parentFrameId` for `webNavigation` and `webRequest` events to be `-1` when it is the main frame
- Fixed `devtools.panels.onShown` so the window object of the panel is sent to the listeners
- Fixed `devtools.panels.onShown` to prevent it from firing multiple times per active panel change
- Made the `devtools` API namespace only exposed to the devtools background pages

---

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)