Fixed an issue where sites would log out automatically after a brief time
Safari 18.4 Beta Release Notes
Released February 21, 2025 — 18.4 beta (20621.1.11)
Overview
Safari 18.4 beta is available for iOS 18.4 beta, iPadOS 18.4 beta, visionOS 2.4 beta, macOS 15.4 beta, macOS Sonoma, and macOS Ventura.
Browser
Resolved Issues
- Fixed an issue where sites would log out automatically after a brief time. (99829958)
Canvas
New Features
- Added CanvasRenderingContext2D support for unprefixed letterSpacing and wordSpacing. (140614722)
Deprecations
- Removed support for webKitBackingStorePixelRatio. (123980544)
- Removed support for the prefixed webkitImageSmoothingEnabled to use the standard imageSmoothingEnabled property. (141128458)
- Removed non-standard legacy alias of Canvas Compositing including setAlpha and setCompositeOperation. (141510218)
Connection Security
New Features
- Added the ability to view certificate detail from Page Menu>more>Connection Security Details on iOS, iPadOS, and in visionOS, or Safari>Connection Security Details… on macOS. (139300381)
Deprecations
- Removed the lock icon from the Smart Search field for HTTPS connection. (107993392) (107993392)
CSS
New Features
- Added support for writing-mode: sideways-rl and writing-mode: sideways-lr. (81519211)
- Added support for the ::details-content pseudo-element. (129786929)
- Added attr() fallback support. (136763160)
- Added support for view-transition-name: match-element. (138932551)
- Added support for text-autospace. (140008990)
- Implemented unicode-bidi text rendering UA rules (except for ruby elements). (142191490)
- Added support for the CSS shape() function. (142276582)
- Added support for gradients with only one stop. (142796999)
Resolved Issues
- Fixed table border-color to be currentColor by default. (48382483)
- Fixed CSSPageRule to derive from CSSGroupingRule. (69847560)
- Fixed combining CSS clip-path with any property that creates a new stacking context makes
element disappear. (86091397)
- Fixed resize to not be applied to generated content. (121348638)
- Fixed contain: size breaking object-fit. (131866042)
- Fixed: Dropped layout containment from container-type. (132549134)
- Fixed handling all of the CSS properties in specifications that should cause a UI widget to devolve to a primitive appearance. (134273374)
- Fixed scrollIntoView alignment to always be honored. (135484284)
- Fixed:background-clip: border-area to do nothing on the root. (135972986)
- Fixed vertical-rl writing mode inter-character ruby text being significantly smaller than over ruby text. (135973587)
- Fixed CSS cursor to not eagerly evaluate calc() values. (136103471)
- Fixed flex shorthand to not eagerly evaluate calc(). (136103475)
- Fixed -webkit-perspective to not eagerly evaluate calc(). (136103493)
- Fixed @property initial-value descriptor to prevent containing var(--foo). (136103499)
- Fixed delaying the evaluation of calc() for raw font consumers so that each caller can choose the correct behavior. (136103500)
- Fixed grid to not eagerly evaluate calc() for repetitions value. (136103503)
- Fixed counter-increment, counter-set, and counter-reset to not eagerly evaluate calc(). (136103519)
- Fixed CSS nested declarations inside a @scope to behave like :where(:scope). (136856371)
- Fixed: Updated the shape() function to match the proposed syntax. (138126105)
- Fixed same-document view transitions performance on pages with many elements. (138966650)
- Fixed an issue where radial gradients with two color stops at 100% failed to extend the last color. (139369366)
- Fixed @scope start and end to be a classic (non-forgiving) selector list. (139471866)
- Fixed updating the base background color where the root has color set explicitly when switching to light or dark modes. (139917332)
- Fixed the unicode-bidi default for the <bdo> element. (140662417)
- Fixed broken revert-layer when logical group CSS properties are explicitly inherited. (140819138)
- Fixed border-spacing to use the shortest possible serialization (“0px” vs “0px 0px”). (141920587)
- Fixed subsequent nested styles getting ignored after an incorrect nested selector. (142187930)
- Fixed font-variant-caps: all-small-caps causing incorrect box-sizing in flex inline context. (142212550)
- Fixed ensuring the correct logic is run for over-constrained cases when the absolute positioned box is a writing-mode root. (142214631)
- Fixed animation-name set from the view transitions dynamic UA stylesheet having extra quotes. (142298840)
- Fixed the serialization and parsing of animation-name strings. (142318879)
- Fixed text-box-trim accumulation failing when updating the CSS dynamically. (142386761)
- Fixed text-emphasis to not paint emphasis marks on punctuations. (142387538)
- Fixed sizing and positioning issues when a popover changes CSS position upon opening. (142491219)
- Fixed Page Zoom (⌘+ and ⌘-) to work with calc() used with font-size on macOS. (142736427) (FB16287129)
- Fixed scroll-padding and scroll-margin to be strongly typed CSS/Style values. (142830546)
- Fixed View Transitions to stop running when the user navigates with a swipe. (142844150)
- Fixed top-level and nesting selector to have zero specificity matching a recent specification update. (143765827)
Deprecations
- Removed the non-standard CSSUnknownRule interface. (142380626)
Editing
New Features
- Implemented ClipboardItem.support() which gives the page author the ability to understand which formats are supported during Clipboard operations. It also now returns a TypeError for a new ClipboardItem() with an empty Array. (136008522)
Resolved Issues
- Fixed document.execCommand("copy") only triggering if there is a selection. (27792460)
- Fixed an issue where iCloud Notes pasted text copied from a plain text document in Safari as raw markup. (124788252)
- Fixed highlighting correctly a large text selection that ends with a common phrase. (135973065)
- Fixed copying a link to a common term in an article to highlight the correct part of the page. (135973186)
- Fixed missing SecureContext in the ClipboardItem interface. (137197266)
- Fixed Hebrew text pasted from Safari getting aligned left. (139029945)
- Fixed setting selection to not set focus unless there is an existing selection. (139075809)
- Fixed sometimes being unable to select text for non-editable content. (143296175)
- Fixed missing selection handles after selecting text across multiple lines. (143720155)
Forms
New Features
- Added alpha and colorspace attributes to <input type="color"></input>. (137737348)
- Added support for enabling support for all Writing Tools in-app menus for empty editable content. (143332082)
Resolved Issues
- Fixed <textarea> to handle switching direction. (73475239)
- Fixed <input type="file" webkitdirectory=""></input> to have improved support on iOS. (125457578)
- Fixed setting a datetime-local input to a large value cause a crash. (135733092)
- Fixed <datalist> dropdown keyboard interactions to align with platform conventions. (143012287)
HTML
New Features
- Implemented <details> and <summary> disclosure triangle as a list item. (95148788)
Deprecations
- Removed the composite attribute on an
element. (143109250)
JavaScript
New Features
- Completed the Iterator Helpers proposal by implementing map(), filter(), take(), drop(), and flatMap() methods. (103171739)
- Added support for an in-place interpreter for Wasm. (113768719)
- Updated JSON.parse to provide the reviver function access to the input source text and extended JSON.stringify behavior to support object placeholders. (131579181)
- Added support for Math.sumPrecise. (131580043)
- Added support for Iterator.prototype.toArray from Iterator Helpers Proposal. (135493558)
- Added support for Iterator.prototype.forEach from Iterator Helpers Proposal. (136010225)
- Added support for some, every, find from Iterator Helpers Proposal. (136027193)
- Added support for Iterator.prototype.reduce. (136064316)
- Added support for SetterThatIgnoresPrototypeProperties() in Iterator helpers. (137078675)
- Added support for Atomics.pause. (137571229)
- Added support for Iterator.prototype.chunks and Iterator.prototype.windows. (138012241)
- Added support for Iterator.concat. (138013723)
- Implemented relaxed laneselect SIMD instructions. (138484223)
- Enabled support for Iterator Helpers. (138520150)
- Added support for Map.prototype.getOrInsert and WeakMap.prototype.getOrInsert. (138955824)
- Added support for Error.isError. (141132351)
- Added "never" and "formalSymbol" to the currencyDisplay option for Intl.NumberFormat. (141504278)
Resolved Issues
- Fixed Array destructuring assignment to close the iterator if an evaluation throws an exception. (121960887)
- Fixed: Updated Intl.DurationFormat#resolvedOptions to the latest specification. (136276429)
- Fixed Iterator Helpers methods to not iterate an array. (136303997)
- Fixed Iterator.prototype.reduce() not properly forwarding the return() call to the underlying iterator. (137181340)
- Fixed Set.prototype methods to invoke keys() without arguments. (137395979)
- Fixed Array.from(), Array.fromAsync(), and TypedArray.from() to invoke document.all passed as a mapper. (137490201)
- Fixed Intl.DurationFormat to have a value limit to match the specification. (137885273)
- Fixed a rounding error for Intl.DurationFormat. (138261569)
- Fixed calendar canonicalization logic in DateTimeFormat. (141792829)
- Fixed broken output for Intl.DurationFormat digital style when hoursDisplay is "auto". (141969050)
- Fixed Intl.DurationFormat to print a negative sign for minutes after hidden hours. (142119353)
- Fixed Array.prototype.toReversed to fill holes with undefined. (142197604)
- Fixed: Increased the matchLimit for regular expressions, allowing complex matches on longer strings. (143202375)
Deprecations
- Removed obsoleted methods for Temporal.PlainTime and Temporal.PlainDateTime to align with specification changes. (135509670)
Loading
New Features
- Added noopener-allow-popups support in Cross-Origin-Opener-Policy. (129664445)
Lockdown Mode
New Features
- Enabled Lockdown Mode Safe Fonts to try parsing web fonts with a safe font parser in Lockdown Mode. While the safe parser is enabled the list of allowed fonts won’t be used. (125621507)
Media
New Features
- Added support for Ogg Opus and Ogg Vorbis. (131407707)
- Added support for the Image Capture API. (136860809)
- Added WebM support to MediaRecorder. (137560454)
Resolved Issues
- Fixed handling an empty srcAttr in Media Element. (132042925)
- Fixed getUserMedia video track getSettings() returning a stale value for torch and whiteBalanceMode constraints. (137870391)
- Fixed the space key not pausing a video in fullscreen by making the video mouse focusable. (138037616)
- Fixed an issue where playback doesn’t always resume after a seek. (140097993)
- Fixed playing video generating non-monotonic ‘timeupdate’ events. (142275184) (FB16222910)
- Fixed websites calling play() during a seek() is allowed by the specification so that the play event is fired even if the seek hasn’t completed. (142517488)
- Fixed seek not completing for WebM under some circumstances. (143372794)
- Fixed MediaRecorderPrivateEncoder writing frames out of order. (143956063)
Networking
New Features
- Added support for Cookies Having Independent Partitioned State (CHIPS). (116143212)
- Added support for cookies’ Partitioned attribute (opt-in partitioned cookies). (142317056)
- Blocked partitioned cookies for known tracking domains. (144184516)
Resolved Issues
- Fixed optimistically upgraded navigations to set a timeout based on current network conditions. (135972599)
Deprecations
- Changed 3DES cipher to show a warning to users that it is a legacy TLS cipher. (138948491)
PDF
Resolved Issues
- Fixed switching a PDF from continuous to discrete mode displaying the page(s) that are at the top of the window, even when barely visible. (137608841)
- Fixed the “Previous Page” context menu option not navigating to previous page in 2-up continuous mode. (139817364)
- Fixed main frame PDFs served with a CSP sandbox header not loading. (141166987)
Rendering
Resolved Issues
- Fixed computing the baseline for replaced elements with an intrinsic ratio but no intrinsic size as flex items. (74279029)
- Fixed flickering caused by extra resize events dispatched when rotating from landscape to portrait on iOS. (93767145)
- Fixed adding out-of-flow objects under the inline in a continuation chain, when possible. (102421379)
- Fixed mix-blend-mode to work for large resolution fixed or stick elements. (104686540)
- Fixed the missing table collapsed border for <thead>, </thead><tbody>, and </tbody><tfoot> elements in the wrong order. (110430887)
- Fixed handling inline-box trailing content. (112409103)
- Fixed <input type="range"></input> taking up space even with width: 0 applied. (113402515)
- Fixed the Spotify media player disappearing when rotating to landscape mode on iOS. (123870311)
- Fixed textarea elements to reserve space for overlay scrollbars. (129597865)
- Fixed grid layout animation performance by caching intrinsic logical heights during the first row sizing pass, improving efficiency and preventing invalidation issues with complex grid configurations. (135791322)
- Fixed Grid item which is an image with specified sizes failing to update when the src changes. (135972911)
- Fixed nested inlines’ vertical alignment when line-fit-edge is set. (136036997)
- Fixed the consistency of table layout with <td width="100%">. (136090741)
- Fixed repainting to be more consistent for text-underline-position. (136095297)
- Fixed floats not clearing in the WordPress Classic Editor sidebar layout. (136362683)
- Fixed handling of out-of-flow children in MathML layout functions to be consistent. (136683070)
- Fixed a repeating background-image sized to the content-box failing to fill the viewport in an iframe. (136725820)
- Fixed consistently triggering a reflow when needed for table DOM manipulations. (137300794)
- Fixed scriptlevel multipler for font-size in MathML. (137671252)
- Fixed inline marquees to allow them to shrink when adjacent to float(s). (137766071)
- Fixed a flex container with no flex item to not run flex layout. (137884128)
- Fixed support for CSS width and height properties on MathML elements. (138174295)
- Fixed Inline content incorrectly positioning around right-to-left and/or vertical shape-outside floats. (139076129)
- Fixed incorrectly overlapping when a float has shape-outside: inset. (139133291)
- Fixed right-to-left content failing with a shape-outside float. (139198865)
- Fixed incorrectly overlapping a float that has shape-outside: ellipse in vertical mode. (139208636)
- Fixed incorrectly overlapping a float that has shape-outside: polygon in right-to-left. (139215719)
- Fixed outside list-style-position quirk to only be applicable in quirks mode. (140602985)
- Fixed: Updated line box dimensions. (141167251)
- Fixed incorrect horizontal writing mode state when nested in a vertical block container. (141543326)
- Fixed baseline calculation few cases for tables with empty rows. (142046863)
- Fixed to refuse to break inside replaced content. (142224455)
- Fixed absolute positioned child with percent to include containing block padding. (142321535)
- Fixed computing an out-of-flow box width correctly when it is inside an inline continuation. (142417374)
- Fixed a border not showing when a linear gradient and a border radius are set. (142617573)
- Fixed relative-positioned input elements in scroll areas not rendering outlines. (142995142)
- Fixed tabbing out of a popover causing a hang in certain cases. (143145544)
- Fixed setting up inline continuations correctly when not inserting a new child. (143388080)
- Fixed adding a margin-top to a <rt> also adds a bottom margin. (143720832)
Deprecations
- Removed legacy behavior where baseline aligned content stretches a table row. (137281319)
Scrolling
New Features
- Added support for Scroll To Text Fragment feature detection with document.fragmentDirective. (139631353)
Resolved Issues
- Fixed changes to the “scrolling” attribute on an iframe element already in the DOM to take effect. (98911472)
Security
New Features
- Added support for CSP Hash Reporting keywords: report-sha256, report-sha384, and report-sha512. (142458671)
Deprecations
- Removed support for Clear-Site-Data: * for executionContexts as Safari was the only browser to ship it. (120821984)
Service Workers
Resolved Issues
- Fixed handling the case of busy looping service workers in a process containing web pages. (138626537)
Spatial Web
New Features
- Added support behind a feature flag for the controls attribute on
elements for spatial images in visionOS. (129784451)
- Added support for Writing Tools in visionOS. (135210076)
Storage
New Features
- Added support for partitioned cookies in Clear-Site-Data: Cookies. (140403030)
Resolved Issues
- Fixed the Storage Access API to consider AllExceptPartitioned as not currently having cookie access, ensuring sites can request access to first-party cookie. (143508260)
SVG
New Features
- Added support for SVGImageElement.prototype.decode(). (135404215)
- Added support for the lh length type. (142068343)
- Added support for the ch length type for character width, but does not include support for upright vertical character width. (142463263)
Resolved Issues
- Fixed not scaling SVGs with ⌘+ (Command+) or ⌘- (Command-) zoom when font-size is used. (52471025)
- Fixed not propagating bbox for empty text to ancestors. (115217040)
- Fixed SVG masks not working as a mask-image. (127327715)
- Fixed a bug in case of reference elements (e.g., textPath) unable to notify the referring element (e.g, text) about their availability. (135509733)
- Fixed SVGUseElement to prevent sniffing the content type when loading an external document. (135972621)
- Fixed vertical writing modes to se the correct bounding rect. (135973175)
- Fixed: Updated getTotalLength() with the web specification to throw an exception when non-renderable and the path is empty. (136719548)
- Fixed SVG quadratic curve getting incorrectly clipped at tile boundaries. (139904014)
- Fixed dynamically updating the transform attribute. (140761655)
- Fixed synthesizing a viewBox in
only for the document element <svg>. (141733733)
- Fixed SVGElement.prototype.ownerSVGElement on the outermost <svg> in foreignObject. (143625675)
Deprecations
- Removed the SVG 1.1 kerning property. (116965514)
- Removed SVGDocument alias to XMLDocument. (123121696)
Tables
Resolved Issues
- Fixed table row direction to be determined by the table’s direction, not the section. (99343532)
- Fixed missing behavior for rowspan="0" on HTML tables where 0 means span over all the remaining rows. (133910430)
- Fixed Table Root to also account for fill-available in a fixed table layout. (137297914)
- Fixed table section and row background to not be treated as opaque. (142588505)
Text
Resolved Issues
- Fixed an issue where a thick underline would not show on short content. (64705955)
- Fixed: The changes for GB18030-2022 now properly impact GBK as well, as required by the Encoding Standard. (136368583)
- Fixed automatically hyphenating text only when a language specified. (136826305)
- Fixed the boundary style calculation whentext-spacing: text-autospace is applied. (137153961)
- Fixed displaying OpenType-SVG color fonts. (137496217) (FB15426148)
Web API
New Features
- Added support for element.focus({ focusVisible: true }). (97021844)
- Added support for PublicKeyCredential.toJSON(). (109419228)
- Added support for the Cookie Store API. (135969444)
- Added Key generation, import and export support for CryptoKeyOKP(x25519/ed25519). (136368298)
- Added support for Brotli to Compression Streams. (137244214)
- Added an option to set the popover’s invoker from an imperative API. (139362169)
- Added support for Declarative Web Push. (141082392)
- Added support for X25519 for Web Cryptography. (141346336)
- Added support for dialog.requestClose(). (143388390)
Resolved Issues
- Fixed: Aligned some MIME type handling in EME with the MIME Sniffing standard. (114311586)
- Fixed window.history.replaceState('', '', '') having no effect on macOS. (117782346)
- Fixed MutationObserver to observe style attribute changes when resizing the element. (120109181)
- Fixed: Updated selectorText handling to align with the specification for CSSPageRule. (125588212)
- Fixed Gamepad rumble issue where sending two sequential playEffect() requests prevents reset() from working as expected. (126589062) (FB13733668)
- Fixed matching emoji in an element’s id attribute from a <link rel="expect"></link> with an href that uses percent-encoded syntax. (134531921)
- Fixed the onrejectionhandled and onunhandledrejection event handler attributes to work correctly on body and frameset elements. (135401362)
- Fixed render blocking for <link></link> to not match elements that are on a ‘stack of open elements’ for the parser. (135846827)
- Fixed Distraction Control unexpectedly hiding out-of-flow elements that overlap with a hidden element. (136358918)
- Fixed CSSOM setSelectorText(string) to prepend the implicit selector. (136791222)
- Fixed HTMLElement.prototype.requestPointerLock to return a Promise. (139854530)
- Fixed innerText behavior for <details> and <summary>. (140172890)
- Fixed the HTML parser phone number handling to better account for MathML. (141632782)
- Fixed Range.getClientRects to take surrogate pairs into account. (142098484)
- Fixed tokenization of the rel attribute of the link element and Link header. (142600096)
Deprecations
- Removed wheel event handling for <input type="number"></input> to match platform conventions. (99318505)
Web Assembly
New Features
- Added support for JIT-less Wasm. (113768974)
Web Authentication
Resolved Issues
- Fixed .catch() for conditional mediation not getting passed the abort reason that was thrown. (112178073)
Web Extensions
Resolved Issues
- Fixed an issue causing content blockers to not hide content in “about:blank” frames. (134273470)
- Fixed a slowdown in applying rulesets and dynamic rules in declarativeNetRequest. (136394861) (FB15196130)
- Fixed clicking the “Clear Storage…” button in Safari Extensions Settings. (137533628)
- Fixed the webRequest.onBeforeRequest event missing the requestBody. (140338580) (FB15911234)
Web Inspector
New Features
- Added support for Remote Web Inspector to be accessible from the dock and other app switching features of macOS. (104195845)
- Added support for ignoreList in sourcemaps. (130630075)
- Added support for viewport presets in Responsive Design Mode. (131541189)
- Added support for the Apps and Devices Inspector. (134519731)
- Exposed cookie Partition Key in Web Inspector. (136293236)
- Added the ability to modify only the headers of a request using a Request Local Override. (139043491)
- Added support for sending Android user agents using the device override menu when Web Inspector is connected to a remote device. (139305520)
- Added support for DOMRect in console.screenshot. (141650264)
- Added an orientation toggle to rotate a viewport preset in Responsive Design Mode. (142632311)
Resolved Issues
- Fixed ensuring that all of the Desktop Sites on iPad site-specific hacks are disabled when the site-specific hacks setting is turned off in Web Inspector. (50035167)
- Fixed style rules to stay editable after being modified by CSSOM in JavaScript. (124650808)
- Fixed glitches when trying to edit a style from a stylesheet that has an @import statement. (131756178)
- Fixed error cases to match new source map specification. (137934436)
- Fixed the overview icon to be inverted dark mode in the Graphics tab. (140602803)
- Fixed recorded WebGL objects not getting highlighted correctly in the Graphics tab. (140625113)
- Fixed remote device connections by ensuring the Develop menu attempts a service connection to read the setting when it’s not directly accessible. (144251569)
WebAssembly
New Features
- Added support for the new Wasm Exception Specification. (131409318)
Resolved Issues
- Fixed Wasm legacy catch_all instruction to correctly catch thrown JS primitives. (135972897)
WebDriver
Resolved Issues
- Fixed a crash that could occur when simulating drag events with the right mouse button. (137068514)
WebRTC
New Features
- Added support for MediaSession capture mute API. (131386187)
- Added support for stuns server URIs. (136505783)
- Added support for enumerated visible network interfaces. (137067672)
- Added support for the Speaker Selection API on macOS. (140918327)
Resolved Issues
- Fixed MediaSession.setMicrophoneActive(true) prompting repeatedly if the microphone was muted by the user-agent once. (135941062)
- Fixed setCameraActive to not unmute microphone if the user-agent previously muted both camera and microphone. (136221456)
- Fixed AirPods unmuting to not unmute the camera if website muted the camera. (137065964)
WKWebView
New Features
- Added support for customizing the file upload flow for file inputs. (130219174)
- Added support for WKNavigationAction/buttonNumber and WKNavigationAction/modifierFlags as API on iOS. (136865172)
- Added support for the Writing Tools API in visionOS. (140412673)
Resolved Issues
- Fixed calling WKWebView.evaluateJavaScript in an async context when nothing is returned by JS. (139618495) (FB15755273)</summary></details></svg></svg></rt></td></tfoot></summary></details></datalist></textarea></bdo>