Release Notes for Safari Technology Preview 139
Safari Technology Preview Release 139 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 286944-287834.
Note: Tab Groups do not sync in this release.
Web Inspector
- Elements Tab
- Sources Tab
CSS
- Fixed CSS Cascade Layers specified in import rules can not be reordered on media query evaluation (r286972)
- Fixed
revert-layer
to revert the style attribute to the regular author style for CSS Cascade Layers (r287018) - Fixed absolutely positioned children to be aligned using the margin box inside a flexbox (r287064)
- Used the correct margins in computeInlinePreferredLogicalWidths in orthogonal flows (r286952)
- Fixed
:focus-visible
not matching on accessKey focus after focusing something via mouse (r287563, r287662) - Fixed flexbox ignoring margins of absolute positioned children when
align-items: flex-end
orjustify-content: flex-end
(r287128) - Fixed
drop-shadow
filter to use the value of the color property when it has no specified color (r287817) - Fixed
transform
property to take into account transform reference box (r287606) - Fixed inline blocks that contain text with
min-width
,box-sizing: border-box
to include the border in width calculation (r287779) - Fixed text-decoration color not changing back after input blur with outline removed (r287674)
- Implemented
text-combine-upright
property (standard version of-webkit-text-combine
) (r287487)- Made
-webkit-text-combine
an inherited property (r287451)
- Made
- Unprefixed
-webkit-print-color-adjust
CSS property (r287712) - Removed non-standard
-webkit-background-composite
property (r287433) - Removed non-standard
-webkit-margin-*-collapse
properties (r287429)
:has()
- Added style invalidation for
:disabled
,:enabled
,:valid
, and:invalid
(r287445, r287551) - Fixed
:has()
matching wrong elements due to style sharing (r287362) - Fixed
:has()
selector invalidation issue with toggling:checked
(r287363) - Used a bloom filter to quickly reject
:has()
selectors (r287091)
Web Animations
- Added support for the
animation
shorthand property in the computed style (r287535) - Changed reversing factor to be computed before canceling the previous transition (r287548)
- Changed transitions without an explicit
transition-property
to not be considered (r287764) - Fixed
animation
shorthand to parse values in the right order (r287509) - Fixed
animation
shorthand to list all longhand values when serializing (r287534) - Fixed calling
setKeyframes()
on a running CSS Transition having no immediate effect (r287549) - Fixed changing the effect of a transition to no longer mark it as running (r287550)
- Fixed
getKeyframes()
for a CSS Animation to not use computed style for keyframes (r287820) - Fixed
getKeyframes()
to ensure that all properties are present on 0% and 100% keyframes (r287518) - Fixed
getKeyframes()
to return an empty object when there are no animatable properties in@keyframes
rule (r287517) - Fixed inserting a rule within a
@keyframes
rule should update animations (r287707) - Fixed inserting a new
@keyframes
rule to start animations that already used this name (r287769) - Fixed implicit keyframe for a CSS Animation to always use the underlying style (r287827)
- Fixed interpolation for the
filter
property failing with a single keyframe (r287826) - Fixed
translate()
function in the transform property to remove trailing 0 value when parsing (r287822)
Rendering
- Changed to pre-layout orthogonal children to compute the preferred logical width inside a flexbox (r287263)
- Fixed paint order of CSS text decorations (r286955)
- Fixed incorrect percent-based height inside
display: table
child elements defined when combined withbox-sizing: border-box
andpadding
. (r287063) - Fixed aspect-ratio size calculation (r287023)
SVG
- Fixed SVG resource invalidation logic causing incorrect layout state (r287076)
WebAuthn
- Changed to allow
get()
for a same-site, cross-origin iframe (r286993, r287116) - Fixed authenticator to fallback to clientPIN after internal verification fails and is blocked (r287315)
Web API
- Added support for using a user-specified preference before using the system’s preferred color scheme (r287030)
- Fixed FormData constructed in the form’s submit event listener to not include the submitter (r286988)
- Fixed TextDecoder to detect invalid UTF-8 sequences early enough (r287024)
JavaScript
- Aligned
Array.prototype.toLocaleString
to ECMA402 definition (r287560) - Fixed
Intl.PluralRules.selectRange
input validation (r287546) - Fixed length of
Intl.NumberFormat.formatRange
andIntl.PluralRules.selectRange
(r287543)
Content Security Policy
- Changed to always use UTF-8 encoded content when checking hashes (r287270)
- Implemented CSP
strict-dynamic
for module scripts (r287756)
Media
- Added MediaRecorder support for the
bitsPerSecond
option (r287613) - Changed to prevent packing audio samples with discontinuity together (r287249)
Service Workers
- Added full support for Service Worker interception of fetch requests with FormData body (r287612)
- Fixed
FetchRequest.clone
to not need to be called with the current context (r287532)
Web Extensions
- Added support for the
redirect
rule type indeclarativeNetRequest
, which requires host permissions to be granted for the host of the URL being redirected - Added support for
declarativeNetRequest.getMatchedRules
, which requires host permissions to be granted to view the URLs of blocked resources