Release Notes for Safari Technology Preview 251

Safari Technology Preview Release 251 is now available for download for macOS Golden Gate and macOS Tahoe. If you already have Safari Technology Preview installed, you can update it in System Settings under General → Software Update.

This release includes WebKit changes between: 317935@main…319386@main.

Accessibility

Resolved Issues

  • Fixed SVG anchors without an href being exposed as links. (318186@main) (181924326)

CSS

New Features

  • Added support for @supports at-rule(...), which tests if a CSS at-rule is supported. (318482@main) (87884897)
  • Added support for the object-view-box property. (318981@main) (132624217)
  • Added support for property-scoped and property-index-scoped caching keywords in random(). (318960@main) (176395332)
  • Added support for the random-item() function. (319180@main) (181816677)
  • Added support for a comma-separated list of conditions in @container queries. (318233@main) (182249814)
  • Added support for white-space-trim in the white-space shorthand. (318486@main) (182739052)
  • Added support for external and data: URL filter references on HTML elements. (317991@main) (183059589)
  • Added support for HighlightRegistry.highlightsFromPoint(). (318758@main) (184150480)
  • Added support for random() in custom properties. (319039@main) (184715508)
  • Added support for the ident() function. (319049@main) (184732904)
  • Added support for the inherit() function. (319062@main) (184738624)
  • Added support for the corner-shape property. (319205@main) (184950973)

Resolved Issues

  • Fixed text overflowing a max-width constrained box when the page is zoomed out, by scaling the minimum font size with the zoom factor. (318509@main) (66569768)
  • Fixed a background image not being repainted when only the URL fragment identifier changes. (318879@main) (105118256)
  • Fixed a subgrid with a large column-gap overflowing a parent constrained by max-width. (318009@main) (137422489)
  • Fixed nested @scope picking the wrong scoping roots when <scope-start> contains :has(:scope ...). (318711@main) (138495467)
  • Fixed outside list markers disappearing or being mispositioned around line breaks. (318561@main) (159277763)
  • Fixed the serialization of the size property in @page when both a page size and orientation are given. (318083@main) (162168233)
  • Fixed the computed value of outline-offset not being snapped as a line width. (319236@main) (180054053)
  • Fixed a flex item’s flex base size being clamped by its own min-width and max-width. (318264@main) (180064739)
  • Fixed :focus-visible being shown after calling focus() inside an already focused ancestor. (318775@main) (181570771)
  • Fixed multi-column height ignoring min-height when it exceeds max-height. (318676@main) (182381903)
  • Fixed scroll snap selecting among equally aligned snap targets in the wrong order. (317997@main) (182571341)
  • Fixed text-underline-offset being mispositioned for highlighted text in vertical writing modes. (318107@main) (182889143)
  • Fixed the serialization of an unrecognized media query to preserve the original text as closely as possible. (318627@main) (182958311)
  • Fixed the serialization of an unrecognized media query feature name to preserve the original casing. (318965@main) (183065105)
  • Fixed @container style queries evaluating root-relative lengths incorrectly. (318144@main) (183094796)
  • Fixed the originating element of ::part() in @container queries to be the element itself. (318620@main) (183154183)
  • Fixed an anti-aliased fringe on ::highlight() background fills in vertical writing modes. (318177@main) (183496114)
  • Fixed the first baseline of a wrap-reverse flex container coming from the wrong flex line. (318154@main) (183516222)
  • Fixed a flex line’s cross size mixing the baseline and last baseline alignment groups. (318165@main) (183536181)
  • Fixed the -webkit-border-image width flag being lost when a length edge precedes a non-length edge. (318214@main) (183584830)
  • Fixed rounding of central baselines for atomic inline elements. (318268@main) (183584888)
  • Fixed the block-ellipsis of a clamped block being styled from the wrong block formatting context. (318437@main) (183606151)
  • Fixed ::highlight() pseudo-elements not inheriting from the parent element’s highlight. (318779@main) (183702060)
  • Fixed clip on a child being ignored when determining whether an ancestor’s background is obscured. (318636@main) (183841775)
  • Fixed var() not behaving as an arbitrary substitution function. (318912@main) (183913427)
  • Fixed line-height units resolving incorrectly when the page is zoomed. (318558@main) (184032914)
  • Fixed the computed value of line-height to more closely match how it was specified. (318710@main) (184232888)
  • Fixed font-* properties resolving font-relative units against their own font instead of the parent element’s font metrics. (319052@main) (184336424)
  • Fixed the rangeStart and rangeEnd animation attributes accepting length values that are not computationally independent when set from script. (318815@main) (184363719)
  • Fixed -webkit-text-stroke not applying to highlighted text. (318976@main) (184375039)
  • Fixed the ViewTimelineOptions inset member accepting length values that are not computationally independent when set from script. (318883@main) (184504829)
  • Fixed ::highlight() not repainting after a CSS rule change. (319169@main) (184643272)
  • Fixed ::highlight() not repainting when a highlight’s range is changed with CSS.highlights.set(). (319154@main) (184672580)
  • Fixed a @function body not inheriting computed custom property values from the calling context. (319031@main) (184701762)
  • Fixed arguments that invoke a @function being treated as a cycle. (319034@main) (184711017)
  • Fixed the random() caching key not including the custom property name. (319096@main) (184722866)
  • Fixed an auto <random-key> not being element-scoped, so every element shared the same item. (319153@main) (184845561)

Deprecations

  • Removed the non-standard percentage value from -webkit-line-clamp. (318858@main) (159808285)
  • Removed margin-trim support from flex containers, following the CSSWG resolution limiting it to block and multi-column containers. (318654@main) (184151309)
  • Removed margin-trim support from grid containers, following the CSSWG resolution limiting it to block and multi-column containers. (318690@main) (184164505)

Canvas

Resolved Issues

  • Fixed ctx.font not re-resolving relative font sizes when set to the same string after the canvas element’s style changed. (318753@main) (184194378)
  • Fixed the canvas font keywords larger and smaller scaling by 1.02 instead of approximately 1.2. (318798@main) (184312611)

HTML

New Features

  • Added support for popover=hint. (318958@main) (184548373)

Resolved Issues

  • Fixed a color input with display: none not opening when its <label> is clicked. (318723@main) (100476630)
  • Fixed createContextualFragment() leaving nested <head> and <body> elements behind when stripping a stray <html> element. (317962@main) (183163523)
  • Fixed a <label> default action triggering when clicked interactive content removes itself. (318827@main) (184381262)
  • Fixed clicking an element nested inside a checkbox or radio input wrongly activating the ancestor input. (318853@main) (184441087)
  • Fixed focus not being restored to the correct element when a <dialog> is closed. (319173@main) (184751412)
  • Fixed confirming an IME composition removing its containing positioned element. (319167@main) (184918934)

JavaScript

New Features

  • Added support for Iterator.prototype.includes(). (318184@main) (173846280)
  • Added support for the RegExp Buffer Boundaries proposal. (318415@main) (178287060)
  • Added support for era and monthCode fields in Intl and Temporal calendars. (318428@main) (182753821)
  • Added support for the traceStack option on WebAssembly.Exception and for Exception.stack. (318397@main) (183342491)
  • Added support for WebAssembly Memory64. (318257@main) (183543404)
  • Added support for deferred module evaluation with import defer. (318481@main) (183892394)
  • Added support for Iterator.prototype.join(). (318502@main) (183892495)
  • Added support for iterator chunking, including Iterator.prototype.chunks() and Iterator.prototype.windows(). (318479@main) (183892687)
  • Added support for the joint iteration proposal, including Iterator.zip() and Iterator.zipKeyed(). (318477@main) (183892768)
  • Added support for importing text modules with an import attribute of type: text. (318950@main) (184443879)

Resolved Issues

  • Fixed a regular expression with ^ inside a group that can match empty failing to anchor the pattern. (317981@main) (183300022)
  • Fixed incorrect matching for sticky regular expressions wrapped in .*. (317983@main) (183300106)
  • Fixed a JSON.stringify() regression in how toJSON is checked. (318072@main) (183400665)
  • Fixed Iterator.zip to use null-prototype objects for its options object and synthetic underlying iterator. (318061@main) (183418070)
  • Fixed incorrect matching for regular expressions containing a negative lookahead. (318234@main) (183601444)
  • Fixed module resolution ignoring the import attribute type in a module request. (318292@main) (183700464)
  • Fixed the Array.from() fast path ignoring a Symbol.iterator override on set.keys() and set.values(). (318374@main) (183801651)
  • Fixed stale character widths produced by v mode class set operations in regular expressions. (318416@main) (183879621)
  • Fixed incorrect matching for regular expressions containing a lookbehind. (318418@main) (183881829)
  • Fixed Temporal.PlainDate construction with years outside the supported range. (318504@main) (183960408)
  • Fixed a TypeError regression when passing monthCode to Temporal calendar methods. (318566@main) (183980712)
  • Fixed the order in which Temporal constructors read newTarget.prototype. (318635@main) (184072358)
  • Fixed the String.prototype.localeCompare() collator cache going stale after a language change. (318616@main) (184096794)
  • Fixed Temporal skipping the epoch range check when resolving a time inside a daylight saving time gap. (318663@main) (184140083)
  • Fixed Temporal time zone identifier parsing to match the specification’s parse records. (318741@main) (184169471)
  • Fixed Array.prototype.sort() not being stable when called without a comparator. (318682@main) (184189734)
  • Fixed global object attribute getters and setters throwing when called as bare functions from global scope. (318748@main) (184273476)
  • Fixed Iterator.prototype.join() to match the latest specification. (318806@main) (184321382)
  • Fixed Iterator.prototype.chunks() and Iterator.prototype.windows() to match the latest specification. (318802@main) (184321801)
  • Fixed Intl.Locale collections not being sorted. (318808@main) (184322384)
  • Fixed formatToParts() omitting the era separator that format() inserts. (318847@main) (184382546)
  • Fixed the import defer implementation to match the updated proposal. (318875@main) (184423667)
  • Fixed \P{...} on the right side of a v mode && or -- operation being treated as a union. (318854@main) (184443379)
  • Fixed Temporal.Duration rounding decisions being made on doubles instead of exact integers. (318901@main) (184472920)
  • Fixed non-ISO calendar date field resolution at the edges of the supported range. (318940@main) (184478785)
  • Fixed Temporal returning plausible values instead of throwing when an underlying calendar operation fails. (318953@main) (184567556)
  • Fixed a regular expression string-list alternative containing a non-BMP character matching on only its leading code units. (318956@main) (184582034)
  • Fixed the WebAssembly.Global value setter not treating a missing argument as undefined. (318967@main) (184608074)
  • Fixed Unicode property escapes ignoring case-insensitive matching in u and v modes. (319064@main) (184762230)
  • Fixed the Before Hijra era year being computed from rendered text instead of the calendar. (319172@main) (184853584)

Media

New Features

  • Added support for HTMLMediaElement.removeTextTrack(). (318250@main) (183365541)

Resolved Issues

  • Fixed WebVTT cue overlap avoidance to move a cue the shortest possible distance. (318012@main) (183151333)
  • Fixed legacy EME generateKeyRequest() returning an incorrect destination URL. (317970@main) (183305929)
  • Fixed requestFullscreen() and requestPictureInPicture() not consuming user activation. (318673@main) (183621577)
  • Fixed selecting On in the media controls captions menu not turning on subtitles. (318468@main) (183776073)
  • Fixed MediaRecorder dropping pending video frames when recording is stopped. (318595@main) (183975207)
  • Fixed the auto position of a WebVTT cue with start or end text alignment to be 50%. (318610@main) (184039946)
  • Fixed MediaRecorder dropping a frame whenever the writer input reports that it is not ready. (318778@main) (184271782)

Navigation API

New Features

  • Added support for the to property on NavigationTransition. (319142@main) (184792753)
  • Added support for intercepting a navigation with a precommit handler. (319208@main) (184893603)

Resolved Issues

  • Fixed sourceElement reporting the deepest clicked element instead of the element responsible for the navigation. (319005@main) (184581613)
  • Fixed NavigationHistoryEntry returning null instead of the empty string for url, key, and id when the document is not fully active. (319007@main) (184590003)
  • Fixed navigateEvent.scroll() not scrolling to the beginning of the document when the fragment does not exist. (319068@main) (184595100)
  • Fixed navigation.activation.from not being null when navigating away from the initial about:blank. (319217@main) (184624752)
  • Fixed navigateerror not firing for a navigation started from a navigateerror handler. (319222@main) (184633618)

Networking

New Features

  • Added support for backpressure when uploading a stream request body with fetch(). (318236@main) (183400867)

Resolved Issues

  • Fixed a same-frame fragment navigation cancelling a download started by a download attribute click in the same task. (319105@main) (165498647)
  • Fixed a page reloading continually by tracking the latest navigation action when considering Enhanced Security state changes. (318304@main) (183480452)
  • Fixed XMLHttpRequest.getAllResponseHeaders() returning the previous response’s headers when the object is reused. (318217@main) (183561750)
  • Fixed XMLHttpRequest.responseURL still returning the aborted request’s URL after calling abort(). (318241@main) (183587043)
  • Fixed the CNAME-cloaking cookie expiry cap being applied to a top-level page’s own cookies instead of only subresources. (318332@main) (183664485)
  • Fixed XMLHttpRequest.send() setting a Content-Type request header on GET and HEAD requests when passed a URLSearchParams. (318424@main) (183801778)
  • Fixed imagesrcset not overriding href on <link rel="preload" as="image">. (318544@main) (183945535)
  • Fixed <link rel=preload as> keywords not being matched ASCII case-insensitively. (318584@main) (184013239)
  • Fixed PDF byte-range requests being blocked by the connect-src Content Security Policy directive instead of object-src. (318797@main) (184258237)
  • Fixed a Content Security Policy host-source of the form *:*/path not matching. (318612@main) (184902666)
  • Fixed a policy decision that outlives its navigation being applied to an unrelated load. (319378@main) (184974939)

Rendering

Resolved Issues

  • Fixed text selection highlighting extending incorrectly when a float precedes the text. (319128@main) (109610452)
  • Fixed text underlines rendering incorrectly for Urdu text. (319220@main) (161299983)
  • Fixed a regression where editing text in some inputs stopped responding to backspace. (318095@main) (183391399)
  • Fixed text-align: justify justifying the last line of a block. (318562@main) (183976364)
  • Fixed Arabic letters in adjacent inline boxes not being joined. (319209@main) (184071471)
  • Fixed a self-collapsing block nested in an inline box losing its margin when the root has a border. (318646@main) (184145672)
  • Fixed trailing whitespace not being collapsed before a block nested in an inline box. (318653@main) (184151239)
  • Fixed baseline alignment ignoring the offset of a block level box nested in an inline box. (318656@main) (184153324)
  • Fixed an empty orthogonal block nested in an inline box stretching the line. (318659@main) (184158817)
  • Fixed the margin after a block level box on a line being lost on relayout. (318660@main) (184159645)
  • Fixed an empty editable container with only an out-of-flow child losing its line. (318671@main) (184176269)
  • Fixed a float inside a block nested in an inline box intruding at the wrong position. (318678@main) (184184683)
  • Fixed the baseline of an inline-block whose last line box holds a block level box dropping that line’s offset. (318702@main) (184222186)
  • Fixed nested inline boxes around a block level box being stretched by their nesting depth. (318704@main) (184222677)
  • Fixed an inline box with cloned decorations generating an extra line between two block level boxes. (318718@main) (184241600)
  • Fixed a block whose content is a table being treated as self-collapsing. (318782@main) (184337051)
  • Fixed a block level box’s margin after being counted twice when only that box needs layout. (318792@main) (184344633)
  • Fixed an outside list marker making its list item’s children inline. (318891@main) (184380304)
  • Fixed an excluded list marker aligning with a block level box on a line instead of the first line of text. (318908@main) (184405037)
  • Fixed a block level box on a line reporting its scrollable overflow at its static position. (318885@main) (184505703)
  • Fixed a block level box on a line not starting a new paragraph for unicode-bidi: plaintext and text-indent: each-line. (318886@main) (184505835)
  • Fixed a highlight on the line after a block level box covering the box’s margin. (318887@main) (184506039)
  • Fixed a block level box on a line switching off text-wrap: balance for the whole container. (318893@main) (184508888)
  • Fixed inline boxes that are not relatively positioned offsetting their out-of-flow children by the position of the line. (318897@main) (184512485)
  • Fixed a block level box on a line not contributing its margin box to its container’s overflow. (318906@main) (184526625)
  • Fixed list-based hit testing reporting the container before a block level box on an earlier line. (318909@main) (184527135)
  • Fixed selection gaps not being filled around a block level box on a line. (318911@main) (184527621)
  • Fixed line-clamp not counting the lines of a block level box on a line. (318921@main) (184545926)
  • Fixed a forced page break after a block level box on a line not moving the following content to the next page. (319029@main) (184712866)
  • Fixed a float not being offered to the caret when its container has a block level box on a line. (319030@main) (184713698)
  • Fixed a <fieldset> on a line taking its legend’s overhang twice. (319033@main) (184714637)
  • Fixed a box that collapsed through with clearance on a line pushing the following content down by its margin. (319160@main) (184917509)
  • Fixed intrinsic width computation when a line holds a block level box. (319212@main) (184968113)

SVG

New Features

  • Added support for external and data: URL filter references on SVG elements. (317538@main) (114823248)
  • Added support for passing a DOMMatrix2DInit dictionary to SVGMatrix.multiply(). (318109@main) (180896205)
  • Added support for external SVG resource references, including clip-path, marker, and paint servers. (318543@main) (183941298)

Resolved Issues

  • Fixed auto sizing of <svg:image> to follow the CSS default sizing algorithm. (318548@main) (122586485)
  • Fixed SVGSVGElement.currentScale being a no-op on an outermost <svg> that is not the document root. (318762@main) (180889449)
  • Fixed SVGLength.value returning negative numbers for r, rx, ry, width, height, and textLength, which disagreed with getComputedStyle(). (317963@main) (181108927)
  • Fixed a clip-path basic shape being mispositioned on a <foreignObject> with a non-zero x or y. (318904@main) (182755161)
  • Fixed feDropShadow ignoring an update to the Y component of stdDeviation when X changes. (318281@main) (183678196)
  • Fixed <animateMotion> ignoring a numeric rotate value. (318565@main) (183832405)
  • Fixed SVG enumerated attributes not reverting to their initial value when removed or set to an invalid value. (319093@main) (184076505)
  • Fixed dynamic changes to x and y on <foreignObject> having no effect. (318669@main) (184172530)
  • Fixed a clip-path basic shape being mispositioned on a rotated or scaled SVG element. (318924@main) (184494108)
  • Fixed <animateMotion> ignoring a zero-length motion path. (318963@main) (184569273)

Deprecations

  • Removed the SVGPathSegList collection and the SVGPathSeg family of interfaces from SVGPathElement, matching SVG 2. (318760@main) (115039851)

Scrolling

Resolved Issues

  • Fixed re-snapping to prefer the block-axis box when the two scroll axes conflict. (318343@main) (183366125)
  • Fixed scroll snapping when a scroll overshoots past the end of the scroll container. (318081@main) (183375912)
  • Fixed element.scroll() and element.scrollTo() not scrolling inside a content-visibility: hidden subtree. (319219@main) (184935071)

Service Workers

New Features

  • Added support for service workers reading stream upload data from a fetch event request body. (317964@main) (183108477)
  • Added support for stream upload backpressure when a service worker reads the upload data. (318346@main) (183529369)

Resolved Issues

  • Fixed a missing Sec-Fetch-Dest header on service worker script requests. (318237@main) (181909962)
  • Fixed network fallback being allowed after a fetch event request body was already disturbed. (318042@main) (183125740)
  • Fixed cancellation of a fetch event request body not being propagated to the original ReadableStream. (318043@main) (183317580)

Web API

Resolved Issues

  • Fixed: Improved the InvalidStateError message thrown by selection methods to explain what is invalid. (318520@main) (134645414)
  • Fixed a missing resize event when an iframe transitions from display: none to visible. (318713@main) (174638256)
  • Fixed timeOrigin being skewed for Navigation Timing entries when the browsing context group changes. (318057@main) (179332119)
  • Fixed the Digital Credentials API to consume transient activation before serializing the request. (318122@main) (182412996)
  • Fixed the Cookie Store API not preserving the order of the cookie change subscription list. (318087@main) (183271849)
  • Fixed notifications after the first persistent one not being closed. (318007@main) (183362637)
  • Fixed getBoundingClientRect() returning a non-zero rect for SVG elements inside hidden containers. (318744@main) (183425103)
  • Fixed quota accounting over-charging positioned writes through a FileSystemWritableFileStream. (318130@main) (183489019)
  • Fixed an Apple Pay deferred payment request being dropped when the payment method changes. (318155@main) (183516996)
  • Fixed Cache Storage size accounting underflowing and persisting a corrupt size. (318204@main) (183578693)
  • Fixed FileReader.abort() being silently ignored on a reader reused after a completed read. (318288@main) (183695958)
  • Fixed MathML and SVG elements not resetting tabIndex when tabindex is changed to an invalid value. (318303@main) (183696552)
  • Fixed fullscreen state not being unwound when entering fullscreen fails. (319243@main) (184157871)
  • Fixed the SharedWorkerGlobalScope prototype not being an immutable prototype exotic object. (318684@main) (184190755)
  • Fixed the scrollend event not firing when wheel-scrolling a subframe. (318805@main) (184352772)

Web Audio

Resolved Issues

  • Fixed a loss of precision in exponentialRampToValueAtTime() caused by accumulating the ramp value. (317955@main) (124498013)
  • Fixed decodeAudioData() failing with an EncodingError for valid M4A files whose ftyp brand is not mp4. (318005@main) (183148186)
  • Fixed registerProcessor() error messages so they name the offending AudioParam instead of the processor. (317948@main) (183189781)
  • Fixed an OscillatorNode with a-rate automation starting out of phase by honoring sub-sample start times. (317953@main) (183194827)
  • Fixed the AudioBufferSourceNode output channel count to account for whether the node is actively processing. (317956@main) (183245229)
  • Fixed stale audio being played instead of silence when the audio destination ring buffer underruns. (317968@main) (183305574)
  • Fixed an AudioScheduledSourceNode not firing the ended event when it is not connected to the destination. (318515@main) (183986981)
  • Fixed a k-rate AudioParam input to AudioBufferSourceNode.detune diverging from the equivalent automation. (318516@main) (183987621)
  • Fixed AudioContext.close() not rejecting when called on an already-closed context. (318522@main) (183989479)
  • Fixed AudioWorkletGlobalScope.currentFrame reporting 0 for a worklet created while the context is suspended. (318601@main) (184081765)
  • Fixed an AudioWorkletProcessor being torn down too early after process() returns false. (318621@main) (184107806)
  • Fixed the AudioWorkletNode processorerror event missing filename, lineno, and colno. (318705@main) (184224032)
  • Fixed MediaStreamAudioSourceNode capturing the wrong track and continuing to play after the track ends. (318706@main) (184224142)
  • Fixed a zero-duration exponentialRampToValueAtTime() at a non-frame-aligned time rendering NaN. (318868@main) (184434164)
  • Fixed setting ConvolverNode.buffer to null not releasing the impulse response. (318870@main) (184434803)
  • Fixed reverse playback of buffers longer than 2^23 frames extrapolating outside the source samples. (318869@main) (184439324)

Web Extensions

New Features

  • Added support for wildcard domains and subdomains in externally_connectable.matches. (318361@main) (183642164)
  • Added support for setAccessLevel() on the local and sync storage areas. (318980@main) (183680404)
  • Added support for scripting.ExecutionWorld. (319009@main) (184284891)

Resolved Issues

  • Fixed several inconsistencies in the browser.alarms API. (318493@main) (183770530)
  • Fixed a significant delay loading web extensions when the browser is launched cold. (318756@main) (183827503)

Web Inspector

New Features

  • Added icons for recorded WebGL and WebGPU actions in the Canvas tab. (318517@main) (42777850)
  • Added support for recording WebGPU devices in the Canvas tab. (318407@main) (183538409)
  • Added support for instrumenting WebGPU devices in the Canvas tab. (318336@main) (183757645)
  • Added support for WebGPU content previews in the Canvas tab. (318363@main) (183785306)
  • Added support for instrumenting WebGPU pipelines in the Canvas tab. (318366@main) (183790749)
  • Added support for disabling WebGPU render pipelines in the Canvas tab. (318403@main) (183857257)
  • Added support for using the WebGPU label of devices and pipelines as their name in the Canvas tab. (318409@main) (183876768)
  • Added support for exposing client metadata for WebGPU devices. (318467@main) (183939079)
  • Added support for recording WebGL extension actions in the Canvas tab. (318474@main) (183945866)
  • Added support for mapping WebAssembly byte offsets to original sources with source maps. (318546@main) (184017160)
  • Added support for editing WebGPU shaders in the Canvas tab. (318633@main) (184128414)
  • Added support for highlighting WebGPU render pipelines in the Canvas tab. (318668@main) (184169419)
  • Improved the estimated memory use reported for WebGL and WebGPU canvases to include their graphics resources. (318915@main) (184535731)
  • Added support for recording object arguments and result objects in the Canvas tab. (319059@main) (184759172)
  • Added support for showing names for recorded WebGPU bitfields. (319174@main) (184928178)
  • Added support for snapshotting WebGPU element image copies. (319176@main) (184928370)
  • Added syntax highlighting to recording actions in the Canvas tab. (319189@main) (184936730)

Resolved Issues

  • Fixed canvas recordings retaining memory by pruning recordings that are no longer in use. (318613@main) (35893620)
  • Fixed searching resources returning duplicate results for the same resource. (319061@main) (42879586)
  • Fixed resource data for non-buffered resources persisting across navigations. (318035@main) (181210169)
  • Fixed WebAssembly module scripts not being associated with the resource that fetched them. (318207@main) (183583149)
  • Fixed stale frame navigation event timestamps being shown after initializing. (318213@main) (183584784)
  • Fixed a selected details sidebar panel not being restored when it becomes available again. (318353@main) (183778380)
  • Fixed detaching a child frame also detaching its parent frame. (318355@main) (183778531)
  • Fixed stale execution contexts being kept when their identifiers change. (318356@main) (183779166)
  • Fixed response end times being dropped for resources without request timing data. (318360@main) (183783292)
  • Fixed recorded WebGPU object arguments not being swizzled correctly. (318545@main) (184017109)
  • Fixed missing console.record() options being treated as if they were present. (318555@main) (184029716)
  • Fixed recorded object identifiers colliding by assigning them per type. (318567@main) (184040370)
  • Fixed configured WebGPU <canvas> elements not being distinguished from CSS canvas client nodes. (318794@main) (184346714)

WebCodecs

New Features

  • Added support for the WebCodecs ImageDecoder API. (319179@main) (184857272)

WebGPU

Resolved Issues

  • Fixed a WGSL miscompilation when swizzling a packed vec3 value. (318098@main) (183426431)
  • Fixed a large frame-rate drop when executeBundles() is called with bundles containing indirect draws. (318538@main) (183458069)
  • Fixed textureDimensions(t, level) clamping the mip level one past the last valid level. (318273@main) (183673818)
  • Fixed GPUQueue.copyExternalImageToTexture() uploading indexed PNG images incorrectly. (318952@main) (184529653)

WebRTC

New Features

  • Added WebRTC AV1 software fallback support. (317986@main) (182789617)

Resolved Issues

  • Fixed a valid current value being ignored when both min and max are given in a capture constraint range. (318046@main) (182968516)
  • Fixed setSinkId() reporting success without switching audio output for a single-track MediaStream. (318149@main) (183147942)
  • Fixed getUserMedia() interrupting the microphone system-wide when echoCancellation is disabled. (318164@main) (183517329)
  • Fixed ImageCapture.takePhoto() failing permanently after a single transient capture error. (318260@main) (183640839)