Release Notes for Safari Technology Preview 163
Safari Technology Preview Release 163 is now available for download for macOS Monterey 12.3 or later and macOS Ventura. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS Monterey, or System Settings under General → Software Update on macOS Ventura.
This release includes WebKit changes between: 258383@main…259548@main.
Web Inspector
- General
- Fixed Web Inspector not remembering which side of the window it was attached to (259320@main)
- Fixed undocked Web Inspector windows being placed in a different window set from the window they are inspecting when using Stage Manager (258672@main)
- Elements Tab
- Fixed the ITAL variation axis slider showing NaN values in the Fonts details sidebar panel (259351@main)
- Fixed “Inspect Element” not revealing the selected element in the DOM tree if the element was hidden behind the “Show All Nodes” button (258805@main)
- Timelines Tab
- Disabled the Screenshots timeline when inspecting targets that can’t support it (259326@main)
Masonry Layout
- Enabled Masonry layout by default (258694@main, 259308@main)
- Added the initial support for
align-tracks
andjustify-tracks
(258544@main)
CSS Custom Properties
- Added dependency cycle handling that involves root style (258985@main)
- Added detection for complex custom property cycles involving multiple loops (259506@main)
- Added handling for computational dependencies in transform functions (259353@main, 259298@main)
- Changed rules in shadow trees to be ignored (258880@main)
- Updated CSS custom properties containing
var()
to update when the referenced property is animated (258786@main) - Fixed failing to provide intialValue in registerProperty with non-universal syntax should throw (258909@main)
- Fixed “
<color> | <color>+
” to match “yellow blue” (259166@main) - Ensured
transition-property
values fill with a custom property when other transition CSS properties are used with a longer list of items (258770@main)
:has() pseudo-class
- Added invalidation support for
:buffering
and:stalled
pseudo-classes (258891@main) - Made
:has()
require valid selectors for all selectors in the selector list (258712@main)
Media Queries Level 4
- Allowed negative values in media queries (258938@main)
- Made “layer” an invalid media type name (258957@main)
CSS
- Added support for
leading-trim
(258766@main) - Added support for using
currentcolor
withcolor-mix()
(258970@main, 259145@main) - Fixed
box-shadow
not painting correctly on inline elements (258923@main) - Made CSS animations participate in cascade (258514@main)
- Fixed invalidation for class names within
:nth-child()
selector lists (258917@main) - Fixed focusing an element with scroll snap to not always result in snapping to that element (259381@main)
- Fixed
font-face
src
list failing early if the component fails (258749@main, 258870@main) - Fixed
font-face
src
local()
to invalidate CSS-wide keywords (258695@main) - Fixed
text-decoration-thickness
property to always trigger a repaint when changed (258641@main) - Fixed
overscroll-behavior: none
to prevent overscroll when the page is too small to scroll (259227@main) - Fixed
appearance: slider-vertical
to only apply to range inputs (258924@main) - Fixed that initial whitespace breaks the query in
window.matchMedia()
(259357@main) - Fixed a bug that Disconnected
<fieldset>
elements sometimes incorrectly match :valid / :invalid selectors (259422@main) - Removed “specified hue” color interpolation method for gradients and
color-mix()
(259190@main) - Stopped requiring whitespace between
of
and the selector list in:nth-child
and:nth-last-child
(258703@main)
CSS Typed OM
- Stopped treating
grid-row-start
,grid-column-start
,grid-row-end
, andgrid-column-end
as list properties (258764@main)
Forms
- Fixed
input[type=submit]
,input[type=reset]
, andinput[type=button]
to honor font-size/padding/height and to work with multi-line values (258754@main)
Rendering
- Added a guard against zero or negative space shortage (258647@main)
- Changed the default oblique angle from 20 degrees to 14 degrees to match other browsers (258722@main)
- Fixed underlines not appearing and disappearing when expected (258914@main)
- Fixed hairline on selection when bidi text is involved (259537@main)
- Fixed incorrect paint of
translate
property animation (259173@main) - Fixed incorrect repaint when inline content shrinks vertically (259141@main)
- Fixed scrolling through content hidden with
clip-path
not propagating below (259368@main) - Fixed
margin: auto
to be the only rule resolved against the “available width adjusted with intrusive floats” (e.g. percent values are based on container width). (259125@main) - Fixed lazy image loading failure when
overflow: clip
was set on just one axis (259007@main) - Fixed scrolling for a fixed header inside overflow scroll with a transformed ancestor (259175@main)
- Fixed incorrect custom pseudo-scrollbar sizes (259389@main)
- Improved balancing for
border
,padding
, and empty block content (259246@main)
JavaScript
- Fixed
Atomics.waitAsync
to be invocable from the main thread (258856@main) - Fixed module scripts to always decode using UTF-8 (259251@main, 259261@main)
- Fixed
toLocaleLowerCase
andtoLocaleUpperCase
to not throw an exception on empty string (259242@main) - Optimized Number constructor calls further (259533@main)
- Optimized
WebAssemblyInstance#exports
(259017@main) - Updated
Intl.DurationFormat
to align with updated standards (259317@main)
WebAssembly
- Added
ref.as_non_null
instruction (259420@main) - Added missing type expansion for GC arrays and structs (259042@main)
- Added
struct.new_canon_default
(258689@main)
Gamepad API
- Added support for
vibrationActuator
(258680@main) - Added experimental support for “trigger-rumble” effect type behind a feature flag (259507@main)
- Fixed
GamepadHapticActuator.playEffect()
with a magnitude less than 0.1 having no effect (258874@main) - Fixed how magnitude values passed to
GamepadHapticActuator.playEffect()
(258988@main) - Made
gamepad.vibrationActuator.playEffect()
throw for invalid effect parameters (258752@main) - Made
vibrationActuator
limit the duration of vibration effects (258759@main) - Made
vibrationActuator
stop vibrating when its document becomes hidden (258802@main) - Made
Gamepad.vibrationActuator
work with the GameController framework (258674@main) - Made
Gamepad.vibrationActuator
returnnull
when the gamepad doesn’t support dual-rumble (258812@main) - Set
Gamepad.vibrationActuator.type
to “dual-rumble” (258758@main)
Web API
- Enabled default ARIA for custom elements (258743@main)
- Implemented
StorageManager.estimate()
(258610@main) - Added support for Ed25519 keys to Web Crypto (259277@main, 259489@main)
- Changed
queryCommandValue("stylewithcss")
to always return an empty string (258777@main) - Disabled DOMParser’s support for declarative shadow DOM (258768@main)
- Fixed a bug that
FileSystemSyncAccessHandle
’sclose
function throws an exception on the second call (258736@main) - Fixed data written via FileSystemSyncAccessHandle disappearing after creating a new FileSystemFileHandle (258876@main)
- Fixed negative shadow repaint issue (259497@main)
- Fixed getting
input.value
for number inputs with over 39 characters returning an empty string (258614@main) - Fixed right-to-left tab handling (259428@main, 259460@main)
- Fixed
Clear-Site-Data
HTTP header to obey origin partitioning (259466@main) - Fixed a bug that a new SharedWorker will be dysfunctional after the old one terminated via
SharedWorkerGlobalScope.close()
(259228@main) - Fixed a bug that HTMLSelectElement’s value setter sets incorrect values if there are grouped options (259249@main)
- Fixed stripping of leading slashes in
URL.hostname
setter (259366@main) - Fixed a bug that
formDisabledCallback()
is sometimes called even when disabledness hasn’t changed (259372@main) - Made autofilling form to trigger
input
event in addition tochange
event (259434@main) - Moved
oncopy
,oncut
, andonpaste
to GlobalEventHandlers (258390@main) - Removed the
precision="float"
attribute on<input type="range">
(258625@main) - Removed
HTMLHeadElement.profile
(258397@main) - Removed
HTMLPreElement.wrap
(258445@main) - Removed
SVGFEMorphologyElement.setRadius(radiusX, radiusY)
(258733@main) - Removed
HTMLFrameElement.location
(259067@main) - Updated Content Security Policy when the header is sent as part of a 304 response (258931@main)
WebGL
- Enabled
WEBGL_provoking_vertex
by default (259499@main)
SVG
- Fixed
rotate: x
andtransform: rotate(x)
yielding different behavior with SVG (258882@main) - Fixed SVG
textLength
(258921@main) - Handled animation freeze when
repeatDur
is not a multiple ofdur
(259212@main) - Fixed the bug that SVG sometimes doesn’t repaint when resolving color changes (259082@main)
- Fixed computing the
keyTimes
index correctly for discrete values animations (258939@main)
Scrolling
- Fixed page scrolling more than one screenful when pressing Space or Fn+Down (259146@main)
Media
- Enabled
AudioSession
API by default with a reduced subset (259074@main) - Moved Media Source API settings back into the Experimental Features (258853@main)
- Changed to try using low latency for the WebRTC HEVC encoder, if available (259128@main)
- Fixed HLS videos sometimes failing to reach “ended” state and not able to be restarted (259342@main)
- Fixed MediaStreamTrack ending due to a capture failure when using bluetooth headsets (259150@main)
- Fixed
AudioBufferSourceNode.start
with a duration sometimes failing (259234@main) - Fixed duplicate
timeupdate
events in Text Track Code (259023@main) - Fixed a bug that video element pauses after bluetooth audio input is disconnected (259415@main, 259478@main)
- Updated
MediaController.currentTime
to return the previously set position (259020@main)
Accessibility
- Fixed
aria-controls
to be exposed as AXLinkedUIElements and not AXARIAControls (258922@main) - Fixed VoiceOver when selecting “Sign in with Apple” on some websites (259147@main)
WebDriver
- Fixed the Shift modifier key not applying to typed text (259039@main)
Safari Web Extensions
- Added support for support
setExtensionActionOptions()
in the declarativeNetRequest API - Changed
declarativeNetRequest
rules to default tofalse
forisUrlFilterCaseSensitive
- Increased
browser.storage.session
data limit to 10MB - Fixed
:has()
selector for Safari Content Blockers (259068@main)