Contents

Safari 18.4 Release Notes

Released March 31, 2025 — 18.4 (20621.1.15)

Overview

Safari 18.4 is available for iOS 18.4, iPadOS 18.4, visionOS 2.4, macOS 15.4, macOS Sonoma, and macOS Ventura.

Authentication

New Features

  • Added support for setting a pin on a security key when a registration requires it. (122660610)

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)

  • 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 combining CSS clip-path with any property that creates a new stacking context makes <img> 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 performance of querySelectorAll() with :has() descendant selectors. (140093151)

  • 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

  • Improved <input type="file" webkitdirectory> support on iOS. (125457578)

  • Added alpha and colorspace attributes to <input type=color>. (137737348)

Resolved Issues

  • Fixed <textarea> to handle switching direction. (73475239)

  • 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)

  • Fixed: Disabled all Writing Tools app menu items, except “Compose”, for empty editable content. (143332082)

Home Screen Web Apps

Resolved Issues

  • Fixed Wake Lock API for Home Screen Web Apps. (108573133)

HTML

New Features

  • Implemented <details> and <summary> disclosure triangle as a list item. (95148788)

Deprecations

  • Removed the composite attribute on an <img> element. (143109250)

Images

Resolved Issues

  • Fixed broken WebP images in lockdown mode. (144224372)

JavaScript

New Features

  • Completed the Iterator Helpers proposal by implementing map(), filter(), take(), drop(), and flatMap() methods. (103171739)

  • 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)

  • Added 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)

Media

New Features

  • Added support for Ogg Opus and Ogg Vorbis on macOS Sequoia 15.4, iOS 18.4, iPadOS 18.4, and visionOS 2.4. (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 for 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>, <tbody>, and <tfoot> elements in the wrong order. (110430887)

  • Fixed handling inline-box trailing content. (112409103)

  • Fixed <input type="range"> 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)

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)

  • Fixed an unexpected failure when serving a redirected response from cache for a navigation loaded via service worker navigation preload. (146113615)

Spatial Web

New Features

  • Added support behind a feature flag for the controls attribute on <img> 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 propagating the bounding box 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 <img> 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 when text-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> 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> 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"> to match platform conventions. (99318505)

Web Authentication

Resolved Issues

  • Fixed .catch() for conditional mediation not getting passed the abort reason that was thrown. (112178073)

Web Extensions

New Features

  • Added support for loading Safari Web Extensions that have been Developer ID-signed and notarized. (40429283)

  • Added support for temporarily installing web extensions from disk without requiring an Xcode project. (98208121)

  • Added support for getKeys() in storage areas. (136595295)

  • Added support for i18n.getSystemUILanguage and i18n.getPreferredSystemLanguages. (136929657)

  • Added support for documentId to the sender message object. (137532821)

  • Added support for documentId to tabs.sendMessage() and tabs.connect(). (137532897)

  • Added support for documentId in webNavigation. (137532909)

  • Added support for documentId to webRequest. (141058456)

  • Added support for documentId to scripting and tabs. (141291546)

  • Added support for match_about_blank and match_origin_as_fallback to inject content scripts and styles into more frames. (145875291)

Resolved Issues

  • Fixed CORS for Web Extension pages to respect granted per-site permissions.

    Developers will need to add a browser.permissions.request({origins: []}) call before doing any fetch() that is blocked by CORS. (102912898)

  • 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 storage.onChanged returning undefined as the areaName. (138086765)

  • Fixed the tabs field missing from the result returned by windows.create. (138529797)

  • Fixed es-419 support in Web Extensions. (138857112)

  • Fixed the webRequest.onBeforeRequest event missing the requestBody. (140338580) (FB15911234)

  • Fixed blurry extension icons. (142070967) (FB16171862)

  • Fixed not picking the “zh” locale when “zh-Hant” is preferred. (142602243) (FB16271745)

  • Fixed webRequest event listeners to honor extraInfoSpec for better performace. (142907168)

  • Fixed web extension resources to be treated as UTF-8 by default. (143079179)

Web Inspector

New Features

  • 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)

WebAssembly

New Features

  • Added support for JIT-less Wasm. (113768974)

  • Added support for the new Wasm Exception Specification. (131409318)

  • Implemented relaxed laneselect SIMD instructions. (138484223)

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)

WebKit

New Features

  • Added support for WKWebExtension, WKWebExtensionContext, and WKWebExtensionController Swift and Objective-C classes to support integrating Web Extensions into WebKit-based browsers. (121537087)

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)

  • Fixed voice search to not re-prompt for camera or microphone permission after a page-initiated same origin navigation. (138122655)

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)

See Also

Version 18