Release Notes for Safari Technology Preview 142
Safari Technology Preview Release 142 is now available for download 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.
Note: Tab Groups do not sync in this release.
Web Inspector
- Elements Tab
- Sources Tab
CSS Subgrid
- Enabled subgrid by default (r290111)
- Added accounting for subgrid margin, border, and padding when sizing (r290096)
- Added support for parsing subgrid in
grid-template-columns
andgrid-template-row
(r289722) - Changed to copy track sizes from the parent grid into subgrid (r290007)
- Changed to inherit track count from the parent grid for subgridded axes and clamp item placement to that explicit grid (r289986)
- Included subgrid items in the track sizing algorithm of the outer grid (r290077)
- Implemented
getComputedStyle
for subgrids (r289993) - Fixed certain scenarios where grid may be empty (r289437)
- Fixed recalculating styles when updating a grid gap value (r289241)
CSS Container Queries
- Enabled CSS Container Queries by default (r290025)
- Added query container tracking so they can be invalidated on size change (r289457)
- Added support for all size features (r289838)
- Added support for full range notation in size queries (r290037)
- Added support for range operators in size queries (r289789)
- Changed size queries on unsupported axis to evaluate to unknown (r289890)
- Implemented container name matching (r289617)
- Implemented full query parser and evaluator (r289742)
- Implemented inline-size containment (r289466)
- Implemented container shorthand serialization (r289886)
- Matched container queries correctly in non-rendered subtrees (r290205
CSS
- Enabled CSS Motion Path by default (r290071)
- Enabled
overscroll-behavior
by default (r289683) - Changed
transform: perspective(0)
to not be considered an identity operation (r289903) - Changed to return
none
for the computed style of a mask when there are no mask images (r289377) - Fixed
:focus-visible
with a click on radio or checkbox labels (r289521) - Fixed
contain: content
in fullscreen (r289686) - Fixed incorrect absolute position layout when toggling
contain
(r289527) - Updated conversion to a color space with a smaller gamut to perform gamut mapping (r289396)
- 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)
Web Animations
- Enabled the
KeyframeEffect.composite
property (r290067) - Added
composite
accumulation support for transform properties (r289599) - Added support for logical properties in JS-originated animations (r289216)
- Aligned animations with different, but compatible,
frameRate
values (r290121) - Allowed setting
frameRate
as an option passed toElement.animate()
(r290123) - Allowed setting
frameRate
as an option passed todocument.timeline.animate()
(r290125) - Changed to properly handle interpolation of non-invertible matrices (r289862)
- Changed to use the animation
frameRate
during animation resolution and scheduling (r290003) - Changed
Animation.commitStyles()
to use the non-animated style (r289453) - Fixed additive and accumulation interpolation to work correctly with implicit 0% and 100% keyframes (r289454)
- Fixed animating from
scale()
toscale() translate()
(r289732) - Fixed additive animations to prevent other animations from running accelerated (r289605)
- Fixed recomputing keyframes when changing
direction
orwriting-mode
(r289426) - Fixed clearing computed keyframes when changing
direction
orwriting-mode
(r289226) - Fixed animations associated with a custom effect to appear in
document.getAnimations()
result (r290122) - Implemented parsing and animation support for
offset
shorthand (r289876)
Rendering
- Fixed tab characters and
ch
units to obey synthetic bold width adjustments correctly (r289609)
Forms
- Changed input elements to return an empty string for an invalid floating-point number that ends with “.” (r290124)
- Fixed selection method return values to match the spec (r289813)
- Fixed light appearance text fields rendering invisible in Increased Contrast mode (r290054)
- Fixed clicking an
<input type="image">
submitting the form with anull
submitter (r289615) - Improved
applyStep()
to match the spec (r289465)
JavaScript
- Enabled Shadow Realms support by default (r290119)
- Implemented
Temporal.PlainDate
behind a flag:__XPC_JSC_useTemporal=1
(r290209) - Optimized JSString’s atomization (r289359)
Shared Workers
- Added support for sharing Shared Workers (including across WebProcesses) (r289247)
- Changed to fail synchronously when constructing a SharedWorker with a URL that is not same-origin (r289532)
- Fixed
self.location.href
in Shared Workers in case of redirects (r289483)
Workers
- Changed worker scripts to always be decoded as UTF-8 (r289489)
- Fixed
WorkerGlobalScope.importScripts()
to protect blob URLs that were passed in until the imports are done (r289236) - Fixed MIME type check for classic worker script fetches (r289672)
- Fixed exceptions to be properly reported when initializing a worker as a module (r289479)
Dialog Element
- Fixed the Dialog element only animating once (r289498)
- Exposed the correct role, subrole, and role description properties for the
<dialog>
element (r289713)
Web API
- Added support for both versions of ScreenCaptureKit API (r289547)
- Changed to use the system window and screen picker when available (r289696, r289701)
- Fixed settling a fetch promise to be delayed in case the page is entering page cache (r289533)
- Optimized DOM storage event dispatch (r290223)
Experimental Model Element
Web Extensions
- Added support for the
browser.action.openPopup()
andbrowser.browserAction.openPopup()
API to open the extension popup for a specific window (this is a WECG proposal) - Added support for the
optional_host_permissions
manifest key inmanifest_version
3 extensions (this is a WECG proposal) - Added support for
browser.runtime.getFrameId()
so it easier to get frame identifiers from content scripts (this is a WECG proposal) - Added support for the
frameId
option that can be passed tobrowser.tabs.sendMessage()
- Fixed the number returned by
parentFrameId
forwebNavigation
andwebRequest
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