Update

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>
Receive Important Update Messages Stay tuned for upcoming Apple Safari updates

More from the Apps & Software section

Was the content helpful to you?

Advertisement Advertise here?
Udemy IT certification ad