{
  "commits": {
    "318864@main": {
      "author": "Gerald Squelart",
      "avatar": "https://www.gravatar.com/avatar/894904f08d85651bf2a76868a4d2f1b3?d=identicon\u0026s=64",
      "cl": "318864@main",
      "clUrl": "https://commits.webkit.org/318864@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321163\nrdar://184199283\n\nReviewed by Mike Wyrzykowski.\n\nWhen a canvas is using a ColorType like float16 that allows for extended\ndynamic range, and the system supports the corresponding PixelFormat\nnatively, attempt to use an extended DestinationColorSpace if\navailable.\n\nNo new tests, as existing tests should fail if there is any visible\nimpact.\n\n* Source/WebCore/html/ImageData.cpp:\n(WebCore::ImageData::float16ArrayPixelBuffer const):\n* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:\n(WebCore::CanvasRenderingContext2DBase::getImageData const):\n(WebCore::allowExtendedColorSpace):\n(WebCore::CanvasRenderingContext2DBase::colorSpace const):\n* Source/WebCore/html/canvas/PredefinedColorSpace.cpp:\n(WebCore::toExtendedDestinationColorSpace):\n(WebCore::toDestinationColorSpace):\n(WebCore::toPredefinedColorSpace):\n* Source/WebCore/html/canvas/PredefinedColorSpace.h:\n* Source/WebCore/platform/graphics/PixelFormat.h:\n(WebCore::convertToContentsFormat):\n(WebCore::allowExtendedColorSpace):\n\nCanonical link: https://commits.webkit.org/318864@main",
      "email": "g_squelart@apple.com",
      "hash": "dc865d0b61c4d846263311601091fe1b475c5921",
      "subject": "Canvas with float16 should use an extended DestinationColorSpace"
    },
    "318865@main": {
      "author": "Jean-Yves Avenard",
      "avatar": "https://www.gravatar.com/avatar/509313899deeb9262fad8f5e04093f5b?d=identicon\u0026s=64",
      "cl": "318865@main",
      "clUrl": "https://commits.webkit.org/318865@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321275\nrdar://184323410\n\nReviewed by Eric Carlson.\n\nnavigator.audioSession.type had no effect once the audio session category was recomputed:\nmedia/audioSession/audioSessionType-web-audio.html read \"AmbientSound\" where it expected\n\"PlayAndRecord\" after starting an AudioContext. The category is computed in the UI process, whose\nRemoteMediaSessionManagerProxy read the override out of a configuration built in the GPU process\nfrom the GPU's own audio session, which never carries one. navigator.audioSession.type set the\noverride on the WebContent process's AudioSession, and nothing forwarded it, so the UI process kept\nCategoryType::None and fell through to the WebAudio branch. 100% failure with site isolation\nenabled; without it the category is computed in the process that set the override, and the test\npassed.\n\nThe override now travels in the UpdateMediaSessionStates message, so the UI process has it before\nthe reply computes a category. The proxy keeps one override per page, so that a page which never\nset one does not clear the override belonging to another page, and it drops a page's entry when\nthat page's process goes away.\n\n* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:\n(WebKit::RemoteMediaSessionManagerProxy::webProcessWillShutDown): Drop the overrides of the\ndeparting process.\n(WebKit::RemoteMediaSessionManagerProxy::updateMediaSessionStates): Record the sending page's\noverride.\n(WebKit::RemoteMediaSessionManagerProxy::categoryOverride): Added; returns the override of any page\nthat set one.\n* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h:\n* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.messages.in: Carry the category\noverride in UpdateMediaSessionStates.\n* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:\n(WebKit::RemoteMediaSessionManager::updateSessionState): Send this process's category override.\n\nCanonical link: https://commits.webkit.org/318865@main",
      "email": "jya@apple.com",
      "hash": "ec92002c1155560ee158e7aea473098c075c2793",
      "subject": "[site-isolation] media/audioSession/audioSessionType-web-audio.html is a permanent failure"
    },
    "318866@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318866@main",
      "clUrl": "https://commits.webkit.org/318866@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321306\nrdar://184345417\n\nReviewed by Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/a9ba87f8483737d8b6daabcd264b01e0cdad6c16\n\n* LayoutTests/TestExpectations:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/imported/w3c/resources/resource-files.json:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/WEB_FEATURES.yml: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margins-005-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-in-inline-margins-005.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/crashtests/block-in-inline-remove-crash.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-box-border-line-break.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-box-padding-line-break.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/margin-collapse-through-percentage-height-block-inside-table-cell-expected.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/support/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-hit-test-order-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-hit-test-order.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-paint-order-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/video-controls-paint-order.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/w3c-import.log:\n\nCanonical link: https://commits.webkit.org/318866@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "2ffd96d41f8e8ac0cd6caf4c9015a729c6b92eb5",
      "subject": "Resync `css/CSS2/normal-flow` from WPT Upstream"
    },
    "318867@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318867@main",
      "clUrl": "https://commits.webkit.org/318867@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321367\nrdar://184421456\n\nReviewed by Chris Dumez.\n\nclear() assigned m_nodesMarkedForDeletion over m_nodesToDelete instead of appending\nto it. m_nodesToDelete is not necessarily empty on entry: uninitialize() sets\nm_isAudioThreadFinished before calling handleDeferredDecrementConnectionCounts() and\nhandleDeferredDerefs(), and those reach markForDeletion(), which appends straight to\nm_nodesToDelete once the audio thread is finished, without the deleteMarkedNodes()\ncall that the public deref() / decrementConnectionCount() wrappers make. Those nodes\nwere dropped by the assignment. They are deleted by hand, and each holds a Ref to its\ncontext, so a single dropped node leaks the whole BaseAudioContext and its graph.\n\nThe loop was dead too: deleteMarkedNodes() drains m_nodesToDelete, so the condition\nwas always false and nodes marked while deleting other nodes were never collected.\n\nAppend instead of assign and loop on m_nodesMarkedForDeletion, restoring the behavior\nfrom before 6eceb6d922f3, which drained before moving.\n\nNo test: the deferred lists are only populated when the audio thread failed a\ntryLock() on the graph lock, so this cannot be triggered deterministically.\n\n* Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:\n(WebCore::BaseAudioContext::clear):\n\nCanonical link: https://commits.webkit.org/318867@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "9f39c1d4c9b0cb360841d3d81fa72e8f30743d23",
      "subject": "BaseAudioContext::clear() leaks AudioNodes marked for deletion during uninitialize()"
    },
    "318868@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318868@main",
      "clUrl": "https://commits.webkit.org/318868@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321383\nrdar://184434164\n\nReviewed by Chris Dumez.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nCoincident automation event times are legal, so an exponential ramp can have zero\nduration. processExponentialRamp() had no guard for that, unlike processLinearRamp().\n\nWith deltaTime == 0 the per-sample multiplier is infinite and the starting value's\nexponent is 0 / 0. When the event time is not frame-aligned the write cursor is already\nat fillToFrame, so the sample loop runs zero times -- but the trailing restore step keys\noff writeIndex rather than off whether the loop ran, and computes inf / inf. isEventCurrent()\nthen skips the ramp, so the branch that would reset the value never runs; a following\nsetTargetAtTime() writes the NaN to the output until it force-converges after 10 time\nconstants.\n\nGuard deltaTime the way processLinearRamp() does. A zero-duration ramp has no frames left\nto interpolate, so the value is value2 -- which is also what WebKit already produces when\nthe same events are frame-aligned.\n\nTest: imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-zero-duration-ramp.html\n\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-zero-duration-ramp-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-zero-duration-ramp.html: Added.\n* Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:\n(WebCore::AudioParamTimeline::processExponentialRamp):\n\nCanonical link: https://commits.webkit.org/318868@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "c5b0051e172e0ea5bab5188bddc403bbd03a09b0",
      "subject": "Zero-duration exponentialRampToValueAtTime() at a non-frame-aligned time renders NaN"
    },
    "318869@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318869@main",
      "clUrl": "https://commits.webkit.org/318869@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321386\nrdar://184439324\n\nReviewed by Chris Dumez.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nrenderFromBuffer() keeps its playback position in double precision, but the\nreverse branch rounded that position down through floorf(), narrowing the\ndouble to float. Above 2^23 the spacing of float is 1.0, so floorf() rounds to\nnearest rather than down and can return a value greater than its argument:\nfloorf(8388609.5) is 8388610. The interpolation factor derived from it on the\nnext line is then negative, and computeSampleUsingLinearInterpolation()\nextrapolates past the pair of frames it is meant to be mixing between rather\nthan interpolating between them. A read index rounded up to bufferLength also\ntrips the bounds check at the top of the loop, breaking out and leaving the\nrest of the render quantum unwritten.\n\nThe threshold is 2^23 frames, roughly 190 seconds at 44.1kHz. Only the reverse\nbranch is affected; the forward branch truncates the double directly. The\nsurrounding code already uses the double overload of floor() when computing\nneedsInterpolation, so use std::floor() at both sites.\n\nThe test renders the same content from a short buffer and from a buffer longer\nthan 2^23 frames and requires the two to match, since playback depends only on\nposition relative to the grain. Comparing the two rather than checking absolute\nsample values keeps the test independent of the interpolation or resampling\nfilter an implementation chooses. The pattern deliberately is not a linear\nramp: linearly extrapolating a linear signal happens to land on the correct\nvalue, which is why the existing negative-playbackRate tests do not catch this.\n\nTest: imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-reverse-long-buffer.html\n\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-reverse-long-buffer-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-reverse-long-buffer.html: Added.\n* Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:\n(WebCore::AudioBufferSourceNode::renderFromBuffer):\n\nCanonical link: https://commits.webkit.org/318869@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "f075fe96bb0ef74cc09c4dfb1903c9fa03c252f2",
      "subject": "Reverse playback of buffers longer than 2^23 frames extrapolates outside the source samples"
    },
    "318870@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318870@main",
      "clUrl": "https://commits.webkit.org/318870@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321384\nrdar://184434803\n\nReviewed by Chris Dumez.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nsetBufferForBindings() returned early on a null buffer without touching m_reverb\nor m_buffer, so assigning null left the node fully configured with the previous\nimpulse response. Two consequences: the attribute stopped round-tripping, since\nbufferForBindings() returns m_buffer and ConvolverNode.idl declares a plain\nnullable attribute with no custom setter, so conv.buffer = ir followed by\nconv.buffer = null still returned ir; and process() only zeroes its output when\nm_reverb is null, so the stale response kept convolving indefinitely. tailTime()\nand latencyTime() likewise kept reporting the old response length, holding the\nnode in tail processing.\n\nThe early return predates 2012; 103415@main only removed the adjacent\nASSERT(buffer) that fired on it, leaving the clearing unimplemented. Clear\nm_reverb and m_buffer under m_processLock instead, which is the lock both are\nguarded by. The graph lock the non-null path takes is not needed here, since\nnothing propagates a channel count on this path.\n\nThe output channel count is deliberately left alone. It was propagated\ndownstream when the response was set, and checkNumberOfChannelsForInput()\nalready leaves it untouched while m_buffer is null, so resetting it would\nreconfigure downstream nodes with no basis in the specification.\n\nAlso remove the null check guarding the channel-count propagation in the\nnon-null path, which the early return above made unreachable as false.\n\nThe existing webaudio/convolver-setBuffer-null.html only set null on a fresh\nconvolver, where m_buffer is already null, so it passed throughout. Convert it\nfrom js-test-pre.js to testharness.js so it runs in other engines, and extend it\nto cover the round-trip after a response is set and an offline render that must\nbe silent afterwards. The render assertion is exact rather than thresholded,\nbecause the fixed path zeroes the bus without running the FFT. A companion\nassertion checks that a convolver with a response renders non-silent, so the\nsilence check cannot pass for the wrong reason.\n\n* LayoutTests/webaudio/convolver-setBuffer-null-expected.txt:\n* LayoutTests/webaudio/convolver-setBuffer-null.html:\n* Source/WebCore/Modules/webaudio/ConvolverNode.cpp:\n(WebCore::ConvolverNode::setBufferForBindings):\n\nCanonical link: https://commits.webkit.org/318870@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "3b45c0a014e66a261fa7937747a44dce01589f4f",
      "subject": "Setting ConvolverNode.buffer to null does not release the impulse response"
    },
    "318871@main": {
      "author": "Dominic Mazzoni",
      "avatar": "https://www.gravatar.com/avatar/f76643c44a7ee3be45148e66d97ed8e4?d=identicon\u0026s=64",
      "cl": "318871@main",
      "clUrl": "https://commits.webkit.org/318871@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320946\nrdar://183976752\n\nReviewed by Andres Gonzalez and Tyler Wilcock.\n\nFollow-up to: https://bugs.webkit.org/show_bug.cgi?id=320762\n\nThis caught a previously unknown crash in getOrCreateIsolatedTree when trying to create an isolated tree\nfor a document that's been detached from its frame. This was actually easier to hit in testing because\nAXObjectCache::transitionToAXThreadModeIfNeeded() iterates over every live AXObjectCache, making it\nmore likely to randomly catch one in that state.\n\n* LayoutTests/accessibility-isolated-tree/TestExpectations:\n* LayoutTests/accessibility/isolated-tree/accessibility-crash-with-dynamic-inline-content-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-crash-with-dynamic-inline-content.html: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-node-memory-management-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-node-memory-management.html: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-node-reparent-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-node-reparent.html: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-object-detached-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/accessibility-object-detached.html: Added.\n* LayoutTests/accessibility/isolated-tree/activation-of-input-field-inside-other-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/activation-of-input-field-inside-other-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/active-descendant-changes-result-in-focus-changes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/active-descendant-changes-result-in-focus-changes.html: Added.\n* LayoutTests/accessibility/isolated-tree/add-children-pseudo-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/add-children-pseudo-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/adjacent-continuations-cause-assertion-failure-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/adjacent-continuations-cause-assertion-failure.html: Added.\n* LayoutTests/accessibility/isolated-tree/alt-tag-on-image-with-nonimage-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/alt-tag-on-image-with-nonimage-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/anchor-linked-anonymous-block-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/anchor-linked-anonymous-block-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/anchor-with-click-handler-is-link-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/anchor-with-click-handler-is-link.html: Added.\n* LayoutTests/accessibility/isolated-tree/animated-dropdown-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/animated-dropdown.html: Added.\n* LayoutTests/accessibility/isolated-tree/announcement-notification-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/announcement-notification.html: Added.\n* LayoutTests/accessibility/isolated-tree/anonymous-render-block-in-continuation-causes-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/anonymous-render-block-in-continuation-causes-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/appearance-none-meter-and-progress-elements-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/appearance-none-meter-and-progress-elements.html: Added.\n* LayoutTests/accessibility/isolated-tree/area-element-bounding-box-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/area-element-bounding-box.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-author-override-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-author-override.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-in-other-frame-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-in-other-frame.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-no-origin-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-no-origin.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-restore-fallback-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-focus-restore-fallback.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-ignored-target-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-ignored-target.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-preserves-focus-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions-preserves-focus.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-actions.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-activedescendant-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-activedescendant-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-braillelabel-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-braillelabel.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-brailleroledescription-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-brailleroledescription.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-busy-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-busy.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-cellspans-with-native-cellspans-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-cellspans-with-native-cellspans.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-checkbox-checked-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-checkbox-checked.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-checkbox-sends-notification.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-checkbox-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-checkbox-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-checked-mixed-value-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-checked-mixed-value.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-controlled-table-row-visibility-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-controlled-table-row-visibility.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-controls-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-controls-with-tabs-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-controls-with-tabs.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-controls.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-current-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-current-global-attribute-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-current-global-attribute.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-current-state-changed-notification-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-current-state-changed-notification.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-current.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-describedby-on-input-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-describedby-on-input.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-description-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-description.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-disabled-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-disabled-propagated-to-children-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-disabled-propagated-to-children.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-disabled.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-expanded-links-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-expanded-links.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-expanded-supported-roles.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-flowto-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-flowto.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-grid-column-span-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-grid-column-span.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-grid-with-aria-owns-rows-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-grid-with-aria-owns-rows.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-grid-with-presentational-sections-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-grid-with-presentational-sections.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-help-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-help.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-deep-dom-no-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-deep-dom-no-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-false-ignored-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-false-ignored.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-not-overridden-when-caught-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-not-overridden-when-caught.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-override-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-focus-override.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-hides-all-elements-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-hides-all-elements.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-modal-override-when-page-empty-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-modal-override-when-page-empty.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-subtree-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-subtree.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-text-stitching-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-text-stitching.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-update-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-update.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-updates-alldescendants-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-updates-alldescendants.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-with-elements-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden-with-elements.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-hidden.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-inherits-presentational.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-invalid-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-invalid.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-keyshortcuts-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-keyshortcuts.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-label-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-label-on-label-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-label-on-label-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-label.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-added-via-innerHTML-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-added-via-innerHTML.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-cycle-multi-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-cycle-multi-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-display-contents-shadow-root-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-display-contents-shadow-root.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-hidden-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-hidden-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-checkbox-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-checkbox.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-input-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-input.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-password-input-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-on-password-input.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-label-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-label.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-labeledby-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-aria-labeledby.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-label-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-overrides-label.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-stay-within-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-stay-within.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-target-added-via-innerHTML-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-target-added-via-innerHTML.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-targeting-slot-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-targeting-slot.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-updates-when-aria-label-changes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-updates-when-aria-label-changes.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-with-descendants-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-labelledby-with-descendants.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-link-supports-press-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-link-supports-press.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-list-and-listitem-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-list-and-listitem.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-listbox-clear-selection-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-listbox-clear-selection-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-listbox-no-selection-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-listbox-no-selection.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-liveregion-marquee-default-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-liveregion-marquee-default.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-liveregions-attributes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-liveregions-attributes.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-mappings-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-mappings.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-menubar-menuitems.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal-in-aria-hidden-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal-in-aria-hidden.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal-multiple-dialogs-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal-multiple-dialogs.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal-with-text-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal-with-text-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-modal.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-multiline-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-multiline.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-multiselectable-grid-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-multiselectable-grid.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-namefrom-author-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-namefrom-author.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-none-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-none-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-option-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-option-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-orientation-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-orientation.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-crash-after-subtree-update-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-crash-after-subtree-update.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-cycles-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-cycles.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-grid-parts-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-grid-parts.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-hierarchy-remap-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-hierarchy-remap.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-id-change-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-id-change.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-text-stitching-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns-text-stitching.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-owns.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-presentational-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-presentational-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-readonly-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-readonly-updates-after-dynamic-change-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-readonly-updates-after-dynamic-change.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-readonly.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-relations-disconnected-subtree-no-timeout-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-relations-disconnected-subtree-no-timeout.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-required-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-required-updates-after-dynamic-change-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-required-updates-after-dynamic-change.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-required.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-role-on-label.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-roledescription-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-roledescription.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-roles-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-roles-unignored-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-roles-unignored.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-roles.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-scrollbar-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-scrollbar-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-selected-menu-items.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-selected.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-setsize-posinset-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-setsize-posinset.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-slider-value-change-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-slider-value-change.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-slider-value-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-slider-value.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-sort-changed-notification-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-sort-changed-notification.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-sort-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-sort.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-switch-checked-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-switch-checked.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-switch-sends-notification-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-switch-sends-notification.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-switch-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-tab-role-on-buttons-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-tab-role-on-buttons.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-tab-roles-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-tab-roles.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-attributes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-attributes.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-content-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-content.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-hierarchy.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-indextext-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-indextext.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-selection-support-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-selection-support.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-with-presentational-elements-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-table-with-presentational-elements.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-tables-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-tables.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-text-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-text-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-toggle-button-with-title-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-toggle-button-with-title.html: Added.\n* LayoutTests/accessibility/isolated-tree/aria-used-on-image-maps-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/aria-used-on-image-maps.html: Added.\n* LayoutTests/accessibility/isolated-tree/attachment-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/attachment-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/attributed-string-for-line-in-table-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/attributed-string-for-line-in-table.html: Added.\n* LayoutTests/accessibility/isolated-tree/attributed-string-text-stitching-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/attributed-string-text-stitching.html: Added.\n* LayoutTests/accessibility/isolated-tree/auto-fill-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/auto-fill-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/auto-fill-types-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/auto-fill-types.html: Added.\n* LayoutTests/accessibility/isolated-tree/ax-object-destroyed-on-reload-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/ax-object-destroyed-on-reload.html: Added.\n* LayoutTests/accessibility/isolated-tree/ax-value-with-search-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/ax-value-with-search.html: Added.\n* LayoutTests/accessibility/isolated-tree/axpress-on-aria-button-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/axpress-on-aria-button.html: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-basic-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-basic.html: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-complex-options-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-complex-options.html: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-focus-on-open-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-focus-on-open.html: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-notifications-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-notifications.html: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-option-border-radius-path-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-option-border-radius-path.html: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-option-press-closes-popover-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-search-predicate-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/base-select-search-predicate.html: Added.\n* LayoutTests/accessibility/isolated-tree/basic-focusability-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/basic-focusability.html: Added.\n* LayoutTests/accessibility/isolated-tree/body-element-aria-hidden-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/body-element-aria-hidden.html: Added.\n* LayoutTests/accessibility/isolated-tree/box-styled-lists-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/box-styled-lists.html: Added.\n* LayoutTests/accessibility/isolated-tree/braille-label-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/braille-label-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-hidden-and-unhidden-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-hidden-and-unhidden-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-hit-test-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-hit-test.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-in-deep-dom-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-in-deep-dom.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-inside-label-ax-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-inside-label-ax-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-press-action-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-press-action.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-title-change-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-title-change.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-title-uses-inner-img-alt-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-title-uses-inner-img-alt.html: Added.\n* LayoutTests/accessibility/isolated-tree/button-with-aria-haspopup-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/button-with-aria-haspopup-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-accessibilitynodeobject-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-accessibilitynodeobject.html: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-description-and-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-description-and-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-object-fit-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-transform-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-fallback-content-2-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-fallback-content-2.html: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-fallback-content-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/canvas-fallback-content.html: Added.\n* LayoutTests/accessibility/isolated-tree/cells-inside-contenteditable-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/cells-inside-contenteditable.html: Added.\n* LayoutTests/accessibility/isolated-tree/changing-aria-hidden-with-display-none-parent-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/changing-aria-hidden-with-display-none-parent.html: Added.\n* LayoutTests/accessibility/isolated-tree/checkbox-mixed-value-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/checkbox-mixed-value.html: Added.\n* LayoutTests/accessibility/isolated-tree/checkbox-radio-element-rect-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/checkbox-radio-element-rect.html: Added.\n* LayoutTests/accessibility/isolated-tree/clickable-text-stitching-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/clickable-text-stitching.html: Added.\n* LayoutTests/accessibility/isolated-tree/clip-path-bounding-box-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/clip-path-bounding-box.html: Added.\n* LayoutTests/accessibility/isolated-tree/color-input-value-changes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/color-input-value-changes.html: Added.\n* LayoutTests/accessibility/isolated-tree/color-picker-press-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/color-picker-press.html: Added.\n* LayoutTests/accessibility/isolated-tree/color-well-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/color-well-legacy-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/color-well-legacy.html: Added.\n* LayoutTests/accessibility/isolated-tree/color-well.html: Added.\n* LayoutTests/accessibility/isolated-tree/column-header-scope-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/column-header-scope.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-control-owns-elements-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-control-owns-elements.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-hierarchy-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-hierarchy.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-no-owns-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox-no-owns.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/aria-combobox.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/combobox-active-element-selected-children-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/combobox-active-element-selected-children.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/combobox-linked-listbox-destroyed-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/combobox-linked-listbox-destroyed.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/aria-combobox-activedescendant-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/aria-combobox-activedescendant.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-activedescendant-notifications-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-activedescendant-notifications.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-inherited-role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-inherited-role.html: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-value-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/combobox/mac/combobox-value.html: Added.\n* LayoutTests/accessibility/isolated-tree/container-node-delete-causes-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/container-node-delete-causes-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/content-changed-notification-causes-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/content-changed-notification-causes-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/content-editable-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/content-editable-set-inner-text-generates-axvalue-notification-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/content-editable-set-inner-text-generates-axvalue-notification.html: Added.\n* LayoutTests/accessibility/isolated-tree/content-editable.html: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-hidden-div-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-hidden-div.html: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-spinbutton-uses-arrow-keys-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-spinbutton-uses-arrow-keys.html: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-table-check-causes-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-table-check-causes-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-values-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/contenteditable-values.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-deleting-dynamically-updated-text-input-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-deleting-dynamically-updated-text-input.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-determining-aria-role-when-label-present-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-determining-aria-role-when-label-present.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-table-recursive-layout-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-table-recursive-layout.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-when-deleting-hidden-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-when-deleting-hidden-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-when-render-tree-is-not-clean-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-when-render-tree-is-not-clean.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-when-renderers-are-added-back-to-deferred-list-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-when-renderers-are-added-back-to-deferred-list.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-while-adding-text-child-with-transform-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-while-adding-text-child-with-transform.html: Added.\n* LayoutTests/accessibility/isolated-tree/crash-with-noelement-selectbox-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crash-with-noelement-selectbox.html: Added.\n* LayoutTests/accessibility/isolated-tree/crashing-a-tag-in-map-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/crashing-a-tag-in-map.html: Added.\n* LayoutTests/accessibility/isolated-tree/create-unconnected-node-during-layout-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/create-unconnected-node-during-layout-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/css-content-alt-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/css-content-alt-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/css-content-attribute.html: Added.\n* LayoutTests/accessibility/isolated-tree/css-table-ignored-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/css-table-ignored.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/autocomplete-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/autocomplete.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/controls-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/controls-shadow-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/controls-shadow.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/controls.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/current-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/current.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/describedby-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/describedby-shadow-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/describedby-shadow.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/describedby.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/flowto-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/flowto-shadow-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/flowto-shadow.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/flowto.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/heading-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/heading.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/hidden-button-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/hidden-button.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/liveregions-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/liveregions.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/modal-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/modal.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/multiselectable-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/multiselectable.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/orientation-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/orientation.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/posinset-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/posinset.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/pressed-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/pressed.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/role-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/role.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/shadow-element-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/shadow-element-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/slider-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/slider.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/table-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/table.html: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/textbox-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/custom-elements/textbox.html: Added.\n* LayoutTests/accessibility/isolated-tree/datalist-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/datalist.html: Added.\n* LayoutTests/accessibility/isolated-tree/datetime-attribute.html: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/input-date-field-labels-and-value-changes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/input-datetime-local-label-value-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/input-datetime-local-label-value.html: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/input-time-field-labels-and-value-changes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/input-time-field-labels-and-value-changes.html: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/input-time-label-value-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/input-time-label-value.html: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/time-input-meridiem-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/datetime/time-input-meridiem.html: Added.\n* LayoutTests/accessibility/isolated-tree/deep-tree-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/deep-tree.html: Added.\n* LayoutTests/accessibility/isolated-tree/deleting-iframe-destroys-axcache.html: Added.\n* LayoutTests/accessibility/isolated-tree/details-summary-content-hidden-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/details-summary-content-hidden.html: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-focus-on-open-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-focus-on-open.html: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-properties-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-properties.html: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-showModal-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-showModal.html: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-slotted-content-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dialog-slotted-content.html: Added.\n* LayoutTests/accessibility/isolated-tree/dimensions-include-descendants-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dimensions-include-descendants.html: Added.\n* LayoutTests/accessibility/isolated-tree/dirty-relations-and-modal-tree-update-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dirty-relations-and-modal-tree-update-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/dirty-style-and-relations-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dirty-style-and-relations-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/disabled-controls-not-focusable-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/disabled-controls-not-focusable.html: Added.\n* LayoutTests/accessibility/isolated-tree/dismiss-action-returns-whether-keyevent-handled-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dismiss-action-returns-whether-keyevent-handled.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/aria-grid-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/aria-grid.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/aria-hidden-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/aria-hidden.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/aria-owns-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/aria-owns.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/dynamically-added-children-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/dynamically-added-children.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/element-roles-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/element-roles.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/end-text-marker-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/end-text-marker.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/list-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/list.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/listbox-item-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/listbox-item.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/object-ordering-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/object-ordering.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/role-row-headers-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/role-row-headers.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/search-traversal-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/search-traversal.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/table-dynamic-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/table-dynamic.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/table-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/table-section-elements-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/table-section-elements.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/table.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/text-under-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/text-under-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/tree-and-treeitems-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-contents/tree-and-treeitems.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-flex-shadow-dom-accname-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-flex-shadow-dom-accname.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-none-descendant-of-relation-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-none-descendant-of-relation.html: Added.\n* LayoutTests/accessibility/isolated-tree/display-table-cell-causes-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/display-table-cell-causes-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/div-within-anchors-causes-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/div-within-anchors-causes-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/double-nested-inline-element-missing-from-tree-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/double-nested-inline-element-missing-from-tree.html: Added.\n* LayoutTests/accessibility/isolated-tree/dropdown-value-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dropdown-value.html: Added.\n* LayoutTests/accessibility/isolated-tree/duplicate-axrenderobject-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/duplicate-axrenderobject-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/duplicate-child-nodes-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/duplicate-child-nodes.html: Added.\n* LayoutTests/accessibility/isolated-tree/duplicate-hidden-label-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/duplicate-hidden-label-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-subtree-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-subtree.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-describedby-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-cell-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-cell.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-inside-button-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-aria-hidden-inside-button.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-attribute-changes-should-update-isenabled-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-attribute-changes-should-update-isenabled.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-changes-update-position-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-changes-update-position.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-colspan-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-colspan.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-content-visibility-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-content-visibility.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-datetime-attribute-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-datetime-attribute.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-expanded-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-expanded-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-font-change-dirty-style-and-relations-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-font-change-dirty-style-and-relations.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-frame-prepend-crash-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-frame-prepend-crash.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-table-caption-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-table-caption.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-table-descendants-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-table-descendants.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-table-row-column-indices-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-table-row-column-indices.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-text-color-change-dirty-style-and-relations-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-text-color-change-dirty-style-and-relations.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-text-stitching-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-text-stitching.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamic-text.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamically-changing-iframe-remains-accessible-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamically-changing-iframe-remains-accessible.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamically-ignored-canvas-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamically-ignored-canvas.html: Added.\n* LayoutTests/accessibility/isolated-tree/dynamically-unignored-contenteditable-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/dynamically-unignored-contenteditable.html: Added.\n* LayoutTests/accessibility/isolated-tree/editable-ancestor-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/editable-ancestor.html: Added.\n* LayoutTests/accessibility/isolated-tree/editable-svg-arrow-movement-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/editable-svg-arrow-movement.html: Added.\n* LayoutTests/accessibility/isolated-tree/editable-webpage-focused-ui-element-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/editable-webpage-focused-ui-element.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-haspopup-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-haspopup.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-outside-modal-with-zindex-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-outside-modal-with-zindex.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-path-with-css-transforms-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-path-with-css-transforms.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariacontrols-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariacontrols.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariadescribedby-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariadescribedby.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariadetails-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariadetails.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaerrormessage-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaerrormessage.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaflowto-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaflowto.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-arialabelledby-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-arialabelledby.html: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaowns-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/element-reflection-ariaowns.html: Added.\n* LayoutTests/accessibility/isolated-tree/ellipsis-text-expected.txt: Added.\n* LayoutTests/accessibility/isolated-tree/ellipsis-text.html: Added.\n* LayoutTests/platform/mac-sequoia/accessibility/isolated-tree/checkbox-radio-element-rect-expected.txt: Added.\n* LayoutTests/platform/mac-sequoia/accessibility/isolated-tree/content-editable-as-textarea-expected.txt: Added.\n* LayoutTests/platform/mac-sequoia/accessibility/isolated-tree/element-line-rects-and-text-expected.txt: Added.\n* LayoutTests/platform/mac-wk2/TestExpectations:\n* LayoutTests/platform/mac-wk2/accessibility/isolated-tree/deleting-iframe-destroys-axcache-expected.txt: Added.\n* LayoutTests/platform/mac/TestExpectations:\n* LayoutTests/platform/mac/accessibility/isolated-tree/adjacent-continuations-cause-assertion-failure-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-controls-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-describedby-on-input-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-description-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-expanded-supported-roles-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-inherits-presentational-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-labelledby-overrides-aria-label-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-list-and-listitem-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-mappings-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-menubar-menuitems-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-option-role-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-role-on-label-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-selected-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-selected-menu-items-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-switch-text-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-tab-role-on-buttons-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-tab-roles-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-table-hierarchy-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/aria-tables-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/box-styled-lists-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/canvas-description-and-role-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/canvas-fallback-content-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/checkbox-radio-element-rect-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/content-editable-as-textarea-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/css-content-attribute-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/custom-elements/describedby-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/custom-elements/describedby-shadow-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/datetime-attribute-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/div-within-anchors-causes-crash-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/element-line-rects-and-text-expected.txt: Added.\n* LayoutTests/platform/mac/accessibility/isolated-tree/element-reflection-ariadescribedby-expected.txt: Added.\n* Source/WebCore/accessibility/AXObjectCache.cpp:\n(WebCore::AXObjectCache::getOrCreateIsolatedTree):\n(WebCore::AXObjectCache::buildIsolatedTree):\n\nCanonical link: https://commits.webkit.org/318871@main",
      "email": "dm_mazzoni@apple.com",
      "hash": "455ecdcce38d4f62263ac3e16e04dee720dd5c77",
      "subject": "AX: run more tests with isolated-tree flag on (2 of many)"
    },
    "318872@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318872@main",
      "clUrl": "https://commits.webkit.org/318872@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321253\n\nReviewed by Yusuke Suzuki.\n\noptimizeBOL() marks the body alternatives as once-through and appends copies of\nthe non-`^` ones as the looping set, so once-through alternatives must only be\ntried at the initial start position.\n\nWhen advancing the start position, the interpreter skipped only the first\nonce-through alternative and resumed at the second one, so a later alternative\ncould win over the first, e.g. /a|^x|aa/.exec(\"caa\") returned \"aa\" instead of\n\"a\". The JIT emits the two sets separately and is not affected.\n\nSkip all once-through alternatives after advancing, and return NoMatch when\nthere is no looping alternative (e.g. /^a|^b/), matching the JIT.\n\nTests: JSTests/stress/regexp-once-through-advance-edge-cases.js\n       JSTests/stress/regexp-once-through-advance-tries-loop-alternatives-first.js\n       JSTests/stress/regexp-once-through-without-loop-alternatives.js\n\n* JSTests/stress/regexp-once-through-advance-edge-cases.js: Added.\n(shouldBe):\n(check):\n* JSTests/stress/regexp-once-through-advance-tries-loop-alternatives-first.js: Added.\n(shouldBe):\n(check):\n* JSTests/stress/regexp-once-through-without-loop-alternatives.js: Added.\n(shouldBe):\n(check):\n* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:\n(JSC::Yarr::Interpreter::matchDisjunction):\n\nCanonical link: https://commits.webkit.org/318872@main",
      "email": "sosuke@bun.sh",
      "hash": "6a1ef9a1ef991163b6a0dc04f85891624ec3af7d",
      "subject": "[YARR] Interpreter should skip every once-through alternative after advancing the start position"
    },
    "318873@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "318873@main",
      "clUrl": "https://commits.webkit.org/318873@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321375\n\nReviewed by Simon Fraser.\n\nOn a layout size change, SVGContainerLayout invalidated any gradient using\nrelative lengths via invalidateGradient(), which nulls both m_gradient and\nm_attributes. The next paint then re-runs collectGradientAttributesIfNeeded()\n(SVGElement::synchronizeAllAttributes, serializing _every_ animated property\\\nto a string including the gradientTransform) and createGradient().\n\nFor an objectBoundingBox gradient this is wasted: its coordinates resolve\nagainst the object bounding box, and buildGradientIfNeeded already recomputes\nthat userspace transform on every paint regardless of m_gradient. Only the\nobject bounding box changed, not the gradient's own resolved data, so the cached\ngradient and attributes stay valid. userSpaceOnUse gradients resolve against\nthe viewport and genuinely change with the layout size.\n\nIntroduce invalidateGradientOnLayoutSizeChange(), which only repaints the\ngradient clients when objectBoundingBox units are used, keeping the cached\ngradient.\n\n* Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp:\n(WebCore::RenderSVGResourceGradient::invalidateGradientOnLayoutSizeChange):\n* Source/WebCore/rendering/svg/RenderSVGResourceGradient.h:\n* Source/WebCore/rendering/svg/SVGContainerLayout.cpp:\n(WebCore::SVGContainerLayout::layoutChildren):\n\nCanonical link: https://commits.webkit.org/318873@main",
      "email": "nzimmermann@igalia.com",
      "hash": "291f67b116a80125379aebecec1861ecd5eb0206",
      "subject": "[LBSE] Don't rebuild objectBoundingBox gradients on layout size change"
    },
    "318874@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318874@main",
      "clUrl": "https://commits.webkit.org/318874@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321372\nrdar://184424841\n\nReviewed by Sosuke Suzuki.\n\nWe should do the same to table64. Module parsing should accept very large\nnumber of memory size limits. But we should reject creation / growth at\nruntime.\n\n* JSTests/wasm/js-api/memory64-js-api-errors.js:\n(assert.throws):\n* JSTests/wasm/js-api/memory64-js-api.js:\n(assert.throws):\n* JSTests/wasm/stress/memory64-maximum-limits.js:\n(Math.min):\n* JSTests/wasm/stress/memory64-oversized-limits.js:\n* JSTests/wasm/v8/memory64.js:\n* LayoutTests/imported/w3c/web-platform-tests/wasm/core/memory64/memory64.wast.js-expected.txt:\n* Source/JavaScriptCore/runtime/PageCount.h:\n(JSC::PageCount::bytes const):\n* Source/JavaScriptCore/wasm/WasmLimits.h:\n(JSC::Wasm::maxBufferByteLength):\n(JSC::Wasm::static_assert):\n\nCanonical link: https://commits.webkit.org/318874@main",
      "email": "ysuzuki@apple.com",
      "hash": "40d37f36527f72f11f033b0353643099a40437f7",
      "subject": "[JSC] memory64 should accept large sized page numbers in module parsing, and should reject creation at runtime"
    },
    "318875@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318875@main",
      "clUrl": "https://commits.webkit.org/318875@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321369\nrdar://184423667\n\nReviewed by Sosuke Suzuki.\n\nAfter 313139@main implemented import-defer, the proposal fixed several\nbugs. This patch applies these fixes.\n\n1. https://github.com/tc39/proposal-defer-import-eval/pull/85\n   Consider SCC status when deciding to short circuit on ReadyForSyncExecution\n   and GatherAsynchronousTransitiveDependencies\n2. https://github.com/tc39/proposal-defer-import-eval/pull/87\n   (1) introduced an assertion inconsistency, and the PR fixes it.\n\nTests: JSTests/modules/import-defer-async-cycle-sync-access.js\n       JSTests/modules/import-defer/async-cycle-deferred.js\n       JSTests/modules/import-defer/async-cycle-member.js\n       JSTests/modules/import-defer/async-cycle-setup.js\n       JSTests/modules/import-defer/async-cycle-tla.js\n       JSTests/modules/import-defer/async-cycle-toucher.js\n\n* JSTests/modules/import-defer-async-cycle-sync-access.js: Added.\n* JSTests/modules/import-defer/async-cycle-deferred.js: Added.\n* JSTests/modules/import-defer/async-cycle-member.js: Added.\n* JSTests/modules/import-defer/async-cycle-setup.js: Added.\n* JSTests/modules/import-defer/async-cycle-tla.js: Added.\n* JSTests/modules/import-defer/async-cycle-toucher.js: Added.\n* JSTests/test262/expectations.yaml:\n* Source/JavaScriptCore/runtime/AbstractModuleRecord.cpp:\n(JSC::AbstractModuleRecord::gatherAsynchronousTransitiveDependencies):\n(JSC::AbstractModuleRecord::readyForSyncExecution):\n* Source/JavaScriptCore/runtime/CyclicModuleRecord.h:\n(JSC::CyclicModuleRecord::isSCCEvaluated const):\n\nCanonical link: https://commits.webkit.org/318875@main",
      "email": "ysuzuki@apple.com",
      "hash": "cc673d7b23bf95edb4b50924009a193ecbe56a05",
      "subject": "[JSC] Update import-defer implementation based on the proposal update"
    },
    "318876@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318876@main",
      "clUrl": "https://commits.webkit.org/318876@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321366\nrdar://184418597\n\nReviewed by Sosuke Suzuki.\n\nThis patch fixes wasm memory related operations.\n\n1. Remove parseMemoryIndexForBulkOp and just use parseMemoryIndex. The\n   spec test is already fixed, so we no longer need this hack.\n2. IPInt popMemoryIndex is renamed to popMemoryAddress as what it is\n   actually popping is memory address, not memory index.\n3. memory.size and memory.grow should record length in the metadata.\n\nTest: JSTests/wasm/stress/memory-size-grow-non-minimal-memory-index.js\n\n* JSTests/wasm/stress/memory-size-grow-non-minimal-memory-index.js: Added.\n(leb):\n(build):\n* Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:\n* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp:\n(JSC::Wasm::FunctionIPIntMetadataGenerator::addMemorySize):\n(JSC::Wasm::FunctionIPIntMetadataGenerator::addMemoryGrow):\n* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h:\n* Source/JavaScriptCore/wasm/WasmFunctionParser.h:\n(JSC::Wasm::FunctionParser\u003cContext\u003e::parseExpression):\n(JSC::Wasm::FunctionParser\u003cContext\u003e::parseUnreachableExpression):\n(JSC::Wasm::FunctionParser\u003cContext\u003e::parseMemoryIndexForBulkOp): Deleted.\n* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:\n(JSC::Wasm::IPIntGenerator::addGrowMemory):\n(JSC::Wasm::IPIntGenerator::addCurrentMemory):\n* Source/JavaScriptCore/wasm/WasmIPIntGenerator.h:\n* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:\n(JSC::Wasm::SectionParser::parseMemoryHelper):\n\nCanonical link: https://commits.webkit.org/318876@main",
      "email": "ysuzuki@apple.com",
      "hash": "d02c68d04f969b9c0cb8103abf7c80c860fb2181",
      "subject": "[JSC] Fix memory related wasm parsing"
    },
    "318877@main": {
      "author": "Fujii Hironori",
      "avatar": "https://www.gravatar.com/avatar/ef99cb23f5e5d27977968ca097d9a85f?d=identicon\u0026s=64",
      "cl": "318877@main",
      "clUrl": "https://commits.webkit.org/318877@main",
      "description": "Unreviewed.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318877@main",
      "email": "fujii@igalia.com",
      "hash": "23f473f6fb1c999e6ca605cf4f4dde472878324d",
      "subject": "[GLib] layout test gardening 2026-08-10"
    },
    "318878@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "318878@main",
      "clUrl": "https://commits.webkit.org/318878@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321376\n\nReviewed by Simon Fraser.\n\nGraphicsContextCG::didUpdateState() converted the brush color to a CGColor on\nevery FillBrush/StrokeBrush state change, even when the brush is a gradient or\npattern. Those paint directly and never consume the stored fill/stroke color, so\nthe conversion is wasted.\n\nGuard both cases with SourceBrush::hasPatternOrGradient(). Switching back to a\nsolid color re-flags the brush change and sets the color again, so state stays\ncorrect.\n\nCovered by existing tests.\n\n* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:\n(WebCore::GraphicsContextCG::didUpdateState):\n\nCanonical link: https://commits.webkit.org/318878@main",
      "email": "nzimmermann@igalia.com",
      "hash": "d6d04572bb96566d4ecb88adea1516bbb4cf628b",
      "subject": "Skip fill/stroke CGColor conversion for gradient and pattern brushes"
    },
    "318879@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318879@main",
      "clUrl": "https://commits.webkit.org/318879@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=251424\nrdar://105118256\n\nReviewed by Nikolas Zimmermann.\n\nThe memory cache strips the fragment identifier from HTTP URLs, so two background\nimages differing only by fragment share one CachedResource. Style::CachedImage::equals()\nreturned true whenever the CachedResource pointers matched, ignoring the fragment.\n\nThe fragment is not cosmetic: SVGImage::drawForContainer() applies it to select the\nview to draw, so those two images paint differently. Comparing them equal propagated\nto changeRequiresRepaint(), which then skipped the repaint, leaving the old image on\nscreen until something else invalidated the element.\n\nOnly take the shared-CachedResource shortcut when the fragments also match.\n\nThe test is under http/tests/ because fragments are only stripped for HTTP-family\nURLs; a file:// test cannot reproduce this.\n\n* LayoutTests/http/tests/svg/svg-fragment-background-repaint-expected.html: Added.\n* LayoutTests/http/tests/svg/svg-fragment-background-repaint.html: Added.\n* Source/WebCore/style/values/images/kinds/StyleCachedImage.cpp:\n(WebCore::Style::CachedImage::equals const):\n\nCanonical link: https://commits.webkit.org/318879@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "0e231f0bf3490ce61283cbac27a1fc9c48865a8d",
      "subject": "Background image is not repainted when only the URL fragment identifier changes"
    },
    "318880@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318880@main",
      "clUrl": "https://commits.webkit.org/318880@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320823\nrdar://183833913\n\nReviewed by Nikolas Zimmermann.\n\nbuildTransformForProgress() called Path::length() and\nPath::traversalStateAtLength() to get the position, then its only caller\nimmediately recomputed both with identical arguments just to read\nnormalAngle(). Both are full applyElements() walks, O(segments) with\nper-curve subdivision, and Path caches neither. The accumulation loop\nadded 2 more walks per repeat for a loop-invariant result.\n\nInline the helper so the position and angle come from one traversal\nstate, hoist Path::length(), and compute the end-of-path position once\nbefore the accumulation loop. That is 4 + 2 * repeatCount walks per\nframe down to 1, or 2 when accumulating.\n\nNo behavior change. The angle now comes from a state with the same input\nas the one it replaces, including on failure, which the old code also\nread from. The loop still composes repeatCount separate translations\nrather than one scaled translation, since AffineTransform accumulates\nthrough tx * a + ty * c.\n\n* Source/WebCore/svg/SVGAnimateMotionElement.cpp:\n(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):\n(WebCore::SVGAnimateMotionElement::buildTransformForProgress): Deleted.\n* Source/WebCore/svg/SVGAnimateMotionElement.h:\n\nCanonical link: https://commits.webkit.org/318880@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "b113f83f34dd67b5a2e1c94feb544c39db415cf2",
      "subject": "[SVG] animateMotion walks the animation path up to 4 times per frame"
    },
    "318881@main": {
      "author": "Sosuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/e63b87350fe19bdd9a30c7234eda45af?d=identicon\u0026s=64",
      "cl": "318881@main",
      "clUrl": "https://commits.webkit.org/318881@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320903\n\nReviewed by Yusuke Suzuki.\n\nWith the /u and /v flags, YARR JIT decodes surrogate pairs for every character read.\nFor a non-inverted character class holding only non-surrogate BMP code points, the\ndecode is unnecessary: a surrogate code unit, a decoded non-BMP code point and\nerrorCodePoint all lie outside of such a class, so testing the raw code unit is\nequivalent to testing the decoded code point.\n\nThis patch reads the raw code unit for such character class terms (\\w, \\d, \\s, [a-z],\nBMP-only property escapes ...) in unicode mode and lets them use the class's 64K\nm_table, which was disabled whenever surrogate pairs were being decoded.\n\n                                             Base                     Patch\n\n    regexp-u-flag-class-astral-subject     43.2756+-0.5243     ^     35.8856+-1.3000        ^ definitely 1.2059x faster\n    regexp-u-flag-character-class-greedy   88.1351+-4.7293     ^     39.2828+-0.2972        ^ definitely 2.2436x faster\n\nTests: JSTests/microbenchmarks/regexp-u-flag-character-class-greedy.js\n       JSTests/microbenchmarks/regexp-u-flag-class-astral-subject.js\n       JSTests/stress/regexp-unicode-code-unit-read-for-bmp-terms.js\n\n* JSTests/microbenchmarks/regexp-u-flag-character-class-greedy.js: Added.\n(splitmix32):\n* JSTests/microbenchmarks/regexp-u-flag-class-astral-subject.js: Added.\n* JSTests/stress/regexp-unicode-code-unit-read-for-bmp-terms.js: Added.\n(shouldBe):\n* Source/JavaScriptCore/yarr/YarrJIT.cpp:\n* Source/JavaScriptCore/yarr/YarrPattern.cpp:\n(JSC::Yarr::CharacterClass::hasOnlyNonSurrogateBMPCharacters const):\n* Source/JavaScriptCore/yarr/YarrPattern.h:\n(JSC::Yarr::CharacterClass::hasOnlyBMPCharacters const):\n\nCanonical link: https://commits.webkit.org/318881@main",
      "email": "sosuke@bun.sh",
      "hash": "bbc000ae4f3ddb38ec1598977b06aad6236d9ac1",
      "subject": "[YARR] Read raw code units for surrogate-free BMP character classes in unicode mode"
    },
    "318882@main": {
      "author": "Nikolas Zimmermann",
      "avatar": "https://www.gravatar.com/avatar/83cbd636495835720e369cd589e3ca5e?d=identicon\u0026s=64",
      "cl": "318882@main",
      "clUrl": "https://commits.webkit.org/318882@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321404\n\nReviewed by Simon Fraser.\n\nResolving fill and stroke was cached on ReferencedSVGResources, which lives in\nRenderElement's rare data, so every fill and every stroke paid the cost of a\nrare data hash map lookup to reach the cache. Move the two cached weak pointers\ninto the new SVGPaintServerCache class, held by the renderers that paint fill\nand stroke: RenderSVGShape, RenderSVGText and RenderSVGInline. They are reached\nthrough a single new virtual, RenderLayerModelObject::svgPaintServerCache(),\nwhich returns null for every other renderer.\n\nAlso fix a shape that references a paint server which does not exist yet. Once\nan element finally takes that id, the shape keeps painting unfilled. The shape\nregisters itself as a pending resource under the full resolved URL, while both\nreaders look the id up bare, so the shape is neither registered as a client of\nthe new paint server nor repainted. Register the bare fragment identifier, in\nthe tree scope the readers use.\n\nCovered by existing tests + a new reftest. Small win in LBSE Suits performance.\n\n* LayoutTests/svg/repaint/pending-fill-paint-server-repaint-expected.txt: Added.\n* LayoutTests/svg/repaint/pending-fill-paint-server-repaint.html: Added.\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/rendering/ReferencedSVGResources.cpp:\n(WebCore::ReferencedSVGResources::cachedFillPaintServer const): Deleted.\n(WebCore::ReferencedSVGResources::cachedStrokePaintServer const): Deleted.\n(WebCore::ReferencedSVGResources::setCachedPaintServer): Deleted.\n* Source/WebCore/rendering/ReferencedSVGResources.h:\n(WebCore::ReferencedSVGResources::invalidatePaintServerCache): Deleted.\n* Source/WebCore/rendering/RenderLayerModelObject.cpp:\n(WebCore::RenderLayerModelObject::svgPaintServerResourceFromStyle const):\n(WebCore::RenderLayerModelObject::invalidateSVGPaintServerCache const):\n* Source/WebCore/rendering/RenderLayerModelObject.h:\n(WebCore::RenderLayerModelObject::svgPaintServerCache const):\n* Source/WebCore/rendering/svg/RenderSVGInline.h:\n* Source/WebCore/rendering/svg/RenderSVGShape.h:\n* Source/WebCore/rendering/svg/RenderSVGText.h:\n* Source/WebCore/rendering/svg/SVGPaintServerCache.h: Added.\n(WebCore::SVGPaintServerCache::clear):\n* Source/WebCore/rendering/svg/SVGPaintServerCacheInlines.h: Added.\n(WebCore::SVGPaintServerCache::paintServer const):\n(WebCore::SVGPaintServerCache::setPaintServer):\n\nCanonical link: https://commits.webkit.org/318882@main",
      "email": "nzimmermann@igalia.com",
      "hash": "05449891110d798e44001fd9078b35eaf1491798",
      "subject": "[LBSE] Cache the SVG fill and stroke paint server on the renderer"
    },
    "318883@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "318883@main",
      "clUrl": "https://commits.webkit.org/318883@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321294\n\nReviewed by Darin Adler.\n\nRestrict length values passed via script for the ViewTimelineOptions inset member to\ncomputationally independent values.\n\nThis is being resolved on by the CSSWG in w3c/csswg-drafts#13852\nand has already been changed in WPT web-platform-tests/wpt@d645ced\n\nMade computationally independent conversion from typed CSSOM numeric value to style\ntype generic and moved it to StylePrimitiveNumericTypes+TypedCSSOMConversions.h to\nshare the implementation with TimelineRangeValue conversion.\n\n* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/view-timelines/view-timeline-inset-expected.txt:\n* Source/WebCore/Headers.cmake:\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/animation/TimelineRangeValue.cpp:\n* Source/WebCore/animation/ViewTimeline.cpp:\n* Source/WebCore/animation/ViewTimeline.h:\n* Source/WebCore/animation/ViewTimelineInsetValue.cpp: Added.\n* Source/WebCore/animation/ViewTimelineInsetValue.h: Added.\n* Source/WebCore/animation/ViewTimelineOptions.h:\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Timeline.cpp:\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Timeline.h:\n* Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+TypedCSSOMConversions.h: Added.\n\nCanonical link: https://commits.webkit.org/318883@main",
      "email": "sam@webkit.org",
      "hash": "c82907a171552bc351a0a59b1c655abd0fc6284a",
      "subject": "Restrict length values passed via script for the ViewTimelineOptions inset member to computationally independent values"
    },
    "318884@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318884@main",
      "clUrl": "https://commits.webkit.org/318884@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321349\n\nReviewed by Antti Koivisto.\n\nadjustComputedFontSizes classifies each autosizing cluster as NO_LINE, ONE_LINE or MULTI_LINE and\npicks oneLineTextMultiplier or textMultiplier accordingly. It counts the cluster's lines with\nRenderBlockFlow::lineCount(), which counts every line, including one whose only in-flow content is\na block level box. Such a box is not a line of text: it is autosized as its own cluster, or holds\nclusters of its own. A container with a single line of text next to a block level box on a line\ntherefore lands in the multi line bucket and picks up the larger multiplier.\n\nCount only the lines that are not carrying a block level box. lineCount() itself is left alone,\nsince line clamp and the deprecated flexible box also call it and want judging separately.\n\n* LayoutTests/fast/text-autosizing/ios/block-level-box-on-a-line.html: Added.\n* LayoutTests/fast/text-autosizing/ios/block-level-box-on-a-line-expected.html: Added.\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::LineLayout::lineCountIgnoringBlockLevelBoxes const):\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::adjustComputedFontSizes):\n\nCanonical link: https://commits.webkit.org/318884@main",
      "email": "zalan@apple.com",
      "hash": "37f7ddb084c70fb05cb05bb0db58ee12c192843e",
      "subject": "[block-in-inline] Text autosizing treats a block level box on a line as a line of text"
    },
    "318885@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318885@main",
      "clUrl": "https://commits.webkit.org/318885@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321363\n\nReviewed by Antti Koivisto.\n\nApply the in-flow position offset to the line's scrollable overflow rect for block level elements.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/scrollable-overflow-relative-positioned-block-in-inline.html: Added.\n* Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.cpp:\n(WebCore::LayoutIntegration::InlineContentBuilder::adjustDisplayLines const):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/scrollable-overflow-relative-positioned-block-in-inline-expected.txt: Added.\n* LayoutTests/fast/repaint/transform-absolute-in-positioned-container-expected.txt:\n* LayoutTests/platform/glib/fast/encoding/utf-16-big-endian-expected.txt:\n* LayoutTests/platform/glib/fast/encoding/utf-16-little-endian-expected.txt:\n* LayoutTests/platform/glib/fast/repaint/transform-absolute-in-positioned-container-expected.txt:\n* LayoutTests/platform/mac/fast/encoding/utf-16-big-endian-expected.txt:\n* LayoutTests/platform/mac/fast/encoding/utf-16-little-endian-expected.txt:\n\nprogressions: content scroll now horizontally matching Chrome and Firefox.\nCanonical link: https://commits.webkit.org/318885@main",
      "email": "zalan@apple.com",
      "hash": "bd2ec2eac1cd773069c44813a09c5fa2d5806f02",
      "subject": "A block level box on a line reports its scrollable overflow at its static position"
    },
    "318886@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318886@main",
      "clUrl": "https://commits.webkit.org/318886@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321398\n\nReviewed by Antti Koivisto.\n\nTwo properties ask whether the previous line ended a paragraph, and PreviousLine answered with nothing but\nendsWithLineBreak.\n\nunicode-bidi: plaintext gives each unicode paragraph the base direction of its own first strong character.\nbuildBidiParagraph already counts a block level box as a paragraph separator, alongside a hard line break,\nso the runs come back from ICU in the right order. The line's own base direction is decided separately in\ninlineBaseDirectionForLineContent, where a line carrying a block level box does not count, so the line after\nit takes the direction of the paragraph before the box rather than computing its own.\n\ntext-indent with the each-line modifier indents the first line of the block and every line after a paragraph\nend. computedTextIndent takes the same flag, so the line after a block level box is not indented either.\n\nAn anonymous block hid both. One block per chunk meant each chunk was its own formatting context, resolving\nits own direction from its own content and indenting its own first line. Firefox indents the line after a\nblock level box in both shapes, with and without an inline box around the box, which is what this matches.\n\nFold the two questions into one: PreviousLine::endsParagraph, true for a forced line break and for a block\nlevel box on a line, both of which are paragraph separators. computedTextIndent's parameter is named for\nwhat it now takes.\n\nThe text-wrap: balance path keeps its own per line record of forced breaks and is left alone here.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-after-block-level-box.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-after-block-level-box-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-after-block-level-box-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/block-plaintext-paragraph-after-block-level-box.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/block-plaintext-paragraph-after-block-level-box-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/block-plaintext-paragraph-after-block-level-box-expected.html: Added.\n* Source/WebCore/layout/formattingContexts/inline/InlineContentConstrainer.cpp:\n(WebCore::Layout::buildPreviousLine):\n(WebCore::Layout::InlineContentConstrainer::computeParagraphLevelConstraints):\n(WebCore::Layout::InlineContentConstrainer::computedTextIndent const):\n* Source/WebCore/layout/formattingContexts/inline/InlineContentConstrainer.h:\n* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:\n(WebCore::Layout::InlineFormattingContext::layout):\n(WebCore::Layout::InlineFormattingContext::lineLayout):\n* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp:\n(WebCore::Layout::InlineFormattingUtils::computedTextIndent const):\n* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.h:\n* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:\n(WebCore::Layout::inlineBaseDirectionForLineContent):\n(WebCore::Layout::LineBuilder::initialize):\n* Source/WebCore/layout/formattingContexts/inline/InlineLineTypes.h:\n* Source/WebCore/layout/formattingContexts/inline/IntrinsicWidthHandler.cpp:\n(WebCore::Layout::IntrinsicWidthHandler::simplifiedTextOnlyMaximumWidth):\n\nCanonical link: https://commits.webkit.org/318886@main",
      "email": "zalan@apple.com",
      "hash": "a6cbe56297ee35fd11065bc60bbb05421e3ff3d6",
      "subject": "[block-in-inline] A block level box on a line does not start a new paragraph for unicode-bidi: plaintext or text-indent: each-line"
    },
    "318887@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318887@main",
      "clUrl": "https://commits.webkit.org/318887@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321400\n\nReviewed by Antti Koivisto.\n\nA line takes its selection and highlight top from the bottom of the line before it, so that the leading\nbetween two lines is covered rather than left as a hole. The space below a line carrying a block level box is\nnot leading, it is that box's margin, and the box covers what is its own, so the line after it starts at its\nown top instead.\n\nAn anonymous block hid this. The content after the box was the first line of its own formatting context,\nwhich the m_lineIndex check already answers.\n\nThe following line gets the same treatment for a line inverted writing mode, where it plays the part the\npreceding line plays here.\n\n* LayoutTests/fast/inline/selection-top-after-block-level-box.html: Added.\n* LayoutTests/fast/inline/selection-top-after-block-level-box-expected.html: Added.\n* Source/WebCore/layout/integration/inline/InlineIteratorLineBoxModernPath.h:\n(WebCore::InlineIterator::LineBoxIteratorModernPath::contentLogicalTopAdjustedForPrecedingLineBox const):\n(WebCore::InlineIterator::LineBoxIteratorModernPath::contentLogicalBottomAdjustedForFollowingLineBox const):\n\nCanonical link: https://commits.webkit.org/318887@main",
      "email": "zalan@apple.com",
      "hash": "c40bf2820c82e3d32c4a380f52e794cd93a6ccb6",
      "subject": "[block-in-inline] A highlight on the line after a block level box covers the box's margin"
    },
    "318888@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318888@main",
      "clUrl": "https://commits.webkit.org/318888@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321399\n\nReviewed by Antti Koivisto.\n\n  \u003cstyle\u003e\n  ::marker { direction: rtl }\n  \u003c/style\u003e\n  \u003col\u003e\u003cli\u003etext\n\nThe marker should stay outside the list item's content, to its left. Instead it moved on\ntop of the content.\n\nAn outside marker is pulled out of the line by a negative inline-start margin, which\nupdateInlineMargins() wrote with the logical setter. That resolves start against the\nmarker's own direction, so a right-to-left marker got the negative margin on its right\nedge. Both readers ask the other way around, BoxGeometryUpdater against the parent's\nwriting mode and RenderBlock::marginStartForChild against the containing block's, so\nthey found nothing on the left and the marker stayed on the content.\n\nWrite the physical edges of the list item's inline axis instead: left and right in a\nhorizontal writing mode, top and bottom in a vertical one, which is the axis those readers\ntake them from. That is what css-lists-3 asks for as well: with marker-side: match-self,\nits initial value, the marker box is positioned using the directionality of the ::marker's\noriginating element rather than the marker's own.\n\n* Source/WebCore/rendering/RenderListMarker.cpp:\n(WebCore::RenderListMarker::updateInlineMargins):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/marker-direction-does-not-move-box.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/marker-direction-does-not-move-box-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/marker-direction-does-not-move-box-expected.html: Added.\n\nCanonical link: https://commits.webkit.org/318888@main",
      "email": "zalan@apple.com",
      "hash": "f31238db87caff70acef916105aa2e0d7a9ad298",
      "subject": "[list-marker] direction on ::marker moves the marker box to the wrong side of the list item"
    },
    "318889@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "318889@main",
      "clUrl": "https://commits.webkit.org/318889@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321171\nrdar://184218933\n\nReviewed by Geoffrey Garen.\n\nWTF::Borrow and WTF::BorrowedBytes are primitives to allow dynamically-checked\nborrowing of things across the C++/Swift language boundary.\n\nThis commit fixes bugs in each.\n\n* BorrowedBytes had a debug-only range check, which is now release mode too.\n* In Borrow, there was an assertion that the Borrow was on the stack. This\n  didn't work, due to passing multiple assertions to the ASSERT macro that\n  supports only one.\n* BorrowedBytes did not use such a check that it was on the stack. The stack\n  check has been abstracted from Borrow and is now used from both.\n  (It may be that in future this is redundant if we add static analysis to\n  confirm that WTF_FORBID_HEAP_ALLOCATION are only ever embedded in other\n  such WTF_FORBID_HEAP_ALLOCATION objects.)\n* BorrowedBytes had a debug assertion that it was not still in use from\n  Swift when it went out of scope. This has been boosted to be a release\n  mode assertion too, partly for better debuggability but also for thread\n  safety.\n\nVarious tests have been added for both.\n\nTests: Tools/TestWebKitAPI/Tests/WTF/Borrow.cpp\n       Tools/TestWebKitAPI/Tests/WTF/BorrowedBytes.cpp\n\n* Source/WTF/wtf/Borrow.h:\n(WTF::assertIsOnStack):\n(WTF::Borrow::Borrow):\n(WTF::Borrow::assertIsOnStack): Deleted.\n* Source/WTF/wtf/BorrowedBytes.h:\n(WTF::BorrowedBytesScopeBase::BorrowedBytesScopeBase):\n(WTF::BorrowedBytesScopeBase::~BorrowedBytesScopeBase):\n* Source/WTF/wtf/Compiler.h:\n* Source/WebCore/PAL/pal/crypto/WTFExtras.swift:\n* Tools/TestWebKitAPI/CMakeLists.txt:\n* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:\n* Tools/TestWebKitAPI/Tests/WTF/Borrow.cpp: Added.\n(TestWebKitAPI::ObservableBorrowable::isBorrowed const):\n(TestWebKitAPI::ObservableBorrowable::crashIfBorrowedCount const):\n(TestWebKitAPI::ObservableBorrowable::value const):\n(TestWebKitAPI::ObservableBorrowable::crashIfBorrowed const):\n(TestWebKitAPI::ObservableBorrowable::setIsBorrowed const):\n(TestWebKitAPI::Borrowable::value const):\n(TestWebKitAPI::TEST(WTF_Borrow, BorrowMarksAndUnmarksTheObject)):\n(TestWebKitAPI::TEST(WTF_Borrow, BorrowExposesTheObject)):\n(TestWebKitAPI::TEST(WTF_Borrow, BorrowHelperFunction)):\n(TestWebKitAPI::TEST(WTF_Borrow, NestedBorrowsRestorePreviousState)):\n(TestWebKitAPI::TEST(WTF_Borrow, CrashIfBorrowedIsReachedThroughTheProtocol)):\n(TestWebKitAPI::TEST(WTF_Borrow, DestroyAfterBorrowEndsIsFine)):\n(TestWebKitAPI::TEST(WTF_BorrowDeathTest, MAYBE_ASSERT_ENABLED_DEATH_TEST(DestroyWhileBorrowedCrashes)):\n(TestWebKitAPI::TEST(WTF_BorrowDeathTest, MAYBE_ASSERT_ENABLED_DEATH_TEST(CrashIfBorrowedWhileBorrowedCrashes)):\n(TestWebKitAPI::TEST(WTF_BorrowDeathTest, MAYBE_ASSERT_ENABLED_DEATH_TEST(HeapAllocatedBorrowCrashes)):\n* Tools/TestWebKitAPI/Tests/WTF/BorrowedBytes.cpp:\n(TestWebKitAPI::TEST(WTF_BorrowedBytes, ViewIdentityIsPerScope)):\n(TestWebKitAPI::TEST(WTF_BorrowedBytesDeathTest, StashedViewCrashesAtScopeEnd)):\n(TestWebKitAPI::TEST(WTF_BorrowedBytesDeathTest, StashedViewOverASpanCrashesAtScopeEnd)):\n(TestWebKitAPI::TEST(WTF_BorrowedBytesDeathTest, ViewEscapedToTheHeapCrashesAtScopeEnd)):\n(TestWebKitAPI::TEST(WTF_BorrowedBytes, ViewEscapedToTheHeapAndReleasedInTimeIsFine)):\n(TestWebKitAPI::TEST(WTF_BorrowedBytesDeathTest, MAYBE_ASSERT_ENABLED_DEATH_TEST(HeapAllocatedScopeCrashes)):\n(TestWebKitAPI::TEST(WTF_BorrowedBytesDeathTest, MAYBE_ASSERT_ENABLED_DEATH_TEST(StashedViewCrashesAtScopeEnd)): Deleted.\n\nCanonical link: https://commits.webkit.org/318889@main",
      "email": "adrian_taylor@apple.com",
      "hash": "90bb9d02b08e21cce5f0d88506febb34275855a1",
      "subject": "Fix Borrow and BorrowedBytes bugs"
    },
    "318890@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "318890@main",
      "clUrl": "https://commits.webkit.org/318890@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=318672\nrdar://181484944\n\nReviewed by Geoffrey Garen.\n\nWTF::Vector already supports the WTF::CanBorrow protocol, by which code can\nindicate that the vector's data is temporarily borrowed and in use elsewhere -\nthus the vector should not be structurally changed (reallocated/resized/etc.)\nduring that period. The intention of the CanBorrow protocol is that such\ninterior destructions should cause a clean crash rather than an exploitable\nmemory safety bug.\n\nThis change does the last bit of the work, which is to actually call\ncrashIfBorrowed at such mutation sites.\n\nWe had an over-long borrow in PDFIncrementalLoader.mm which needed to be fixed\nfor enforcement to succeed. This was a false-positive, not a real\nvulnerability.\n\nTest: Tools/TestWebKitAPI/Tests/WTF/Borrow.cpp\nCanonical link: https://commits.webkit.org/318890@main",
      "email": "adrian_taylor@apple.com",
      "hash": "8b661b920bebf0ba48bf772db0f98c28891b4dd9",
      "subject": "crashIfBorrowed in Vector"
    },
    "318891@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318891@main",
      "clUrl": "https://commits.webkit.org/318891@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321343\n\u003crdar://problem/184380304\u003e\n\nReviewed by Antti Koivisto.\n\nAn outside marker takes no part in the list item's in-flow layout, so it must not turn childrenInline() on.\nLetting it puts a list item whose content is a block level box onto the inline path, where the marker takes a\nline of its own and the block starts below it - \u003cul\u003e\u003cli\u003e\u003cdiv\u003etext\u003c/div\u003e\u003c/li\u003e\u003c/ul\u003e is 58 tall instead of 40.\n\nNothing rebuilds anonymous wrappers on this path, so childrenInline() also has to be recomputed when a child\nis detached. A marker changing from inside to outside is destroyed and reattached, and the bit the inside\nmarker turned on would otherwise stay on.\n\n* Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp:\n(WebCore::hasInlineInFlowChild):\n(WebCore::RenderTreeBuilder::Block::attach):\n(WebCore::RenderTreeBuilder::Block::detach):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/outside-marker-with-block-content.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/outside-marker-with-block-content-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318891@main",
      "email": "zalan@apple.com",
      "hash": "56493b12464b673b3c5baa6f7dee77a18dd1b44b",
      "subject": "[anon-block-removal] An outside list marker makes its list item's children inline"
    },
    "318892@main": {
      "author": "Carlos Alberto Lopez Perez",
      "avatar": "https://www.gravatar.com/avatar/05326c1dbe06f486e884975e73f25179?d=identicon\u0026s=64",
      "cl": "318892@main",
      "clUrl": "https://commits.webkit.org/318892@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321309\n\nReviewed by Nikolas Zimmermann.\n\nSelenium by default sends the browser stdout/stderr to /dev/null.\nThis was hiding useful debug information on run-mvt-tests script.\n\nFix that by telling selenium to forward the logs to the terminal.\n\n* Tools/Scripts/run-mvt-tests:\n\nCanonical link: https://commits.webkit.org/318892@main",
      "email": "clopez@igalia.com",
      "hash": "c5e28398bb0c7e992a3fd7404bc5ecd85224db70",
      "subject": "[Tools][WPE] run-mvt-tests: configure Selenium so the browser logs are shown by default"
    },
    "318893@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318893@main",
      "clUrl": "https://commits.webkit.org/318893@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321385\n\nReviewed by Antti Koivisto.\n\ncannotConstrainInlineItem rejects any item that is neither text, nor a soft line break, nor an inline\nlevel box, which a block level box on a line is not. That sets m_cannotConstrainContent, so initialize()\nreturns before laying anything out, computeParagraphLevelConstraints returns nothing, and no available\nline width override is installed: the container is not balanced at all. With anonymous block generation\neach run of inline content is its own formatting context and balances on its own, so the block level box\nnever reaches the constrainer.\n\nLet a block level box through, and chunk on it. The constrainer already splits content into chunks at\nforced line breaks and constrains each separately; a line holding a block level box now ends the chunk\nbefore it and forms a chunk of its own, which is left unconstrained the way any chunk we cannot constrain\nalready is. The text on either side of the box is balanced separately, matching what the anonymous block\nwrappers used to give us.\n\nCovered by imported/w3c/web-platform-tests/css/css-text/white-space/text-wrap-balance-before-after-001.html\nand -002.html.\n\n* Source/WebCore/layout/formattingContexts/inline/InlineContentConstrainer.cpp:\n(WebCore::Layout::cannotConstrainInlineItem):\n(WebCore::Layout::InlineContentConstrainer::initialize):\n(WebCore::Layout::InlineContentConstrainer::computeParagraphLevelConstraints):\n* Source/WebCore/layout/formattingContexts/inline/InlineContentConstrainer.h:\n\nCanonical link: https://commits.webkit.org/318893@main",
      "email": "zalan@apple.com",
      "hash": "53138ef3cc2f6ac707b3c1ea9751d4587b8837aa",
      "subject": "[remove-anon-block] A block level box on a line switches off text-wrap: balance for the whole container"
    },
    "318894@main": {
      "author": "Carlos Alberto Lopez Perez",
      "avatar": "https://www.gravatar.com/avatar/05326c1dbe06f486e884975e73f25179?d=identicon\u0026s=64",
      "cl": "318894@main",
      "clUrl": "https://commits.webkit.org/318894@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320178\n\nReviewed by Nikolas Zimmermann.\n\nThere is a race condition when a WPE/GTK bot tries to auto-launch podman to run\ninside the SDK environment but the cache of podman images is getting updated at\nthat very same time by a daemonset/cronjob that runs each 5 minutes.\n\nTo avoid this race condition, the infra will signal when that process is\nhappening by touching and deleting a specific file at the start and end of the\nprocess. Then the WebKit tooling can simply wait in case of detecting that\nfile sentinel before executing podman.\n\n* Tools/Scripts/webkitpy/port/linux_container_sdk_utils.py:\n(maybe_wait_for_ci_pull_cycle_sdk_images):\n(maybe_enter_webkit_container_sdk):\n\nCanonical link: https://commits.webkit.org/318894@main",
      "email": "clopez@igalia.com",
      "hash": "a5df88cab3c6dd423a3b16a5cd9958d3c9bcd930",
      "subject": "[WKCI][WPE] Race condition when trying to use podman meanwhile the directory of shared SDK images is getting updated"
    },
    "318896@main": {
      "author": "Adrian Taylor",
      "avatar": "https://www.gravatar.com/avatar/d2acb8ad2e2670ff74ae0d65fb27014c?d=identicon\u0026s=64",
      "cl": "318896@main",
      "clUrl": "https://commits.webkit.org/318896@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321432\nrdar://184509129\n\nUnreviewed build fix.\n\nThis renames a new test suite to avoid conflicts with another new test suite.\n\nCanonical link: https://commits.webkit.org/318896@main",
      "email": "adrian_taylor@apple.com",
      "hash": "849f6a8e015d773c3a3b74e9957054c39edaadf6",
      "subject": "Build fix for conflicting tests"
    },
    "318897@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318897@main",
      "clUrl": "https://commits.webkit.org/318897@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321397\n\nReviewed by Antti Koivisto.\n\nAn out-of-flow box whose containing block is an inline box is laid out against the nearest non-anonymous\nblock, so the distance from that block to the inline's own first fragment has to be added back.\nRenderInline::offsetForInFlowPositionedInline is what returns it, taking the inline box's logicalTop, and\nall four of its callers ask for it only when the inline is in-flow positioned. An inline is the containing\nblock for other reasons too, a filter among them, and in those cases the offset was dropped.\n\nAn anonymous block around the inline hid this. The wrapper is a RenderBox, so its own topLeftLocationOffset\ncarries the distance up the box chain in offsetFromContainer, and the inline sits at the top of the\nwrapper's first line, which leaves the half-leading at most to add. With a block level box on a line there\nis no wrapper: the inline's parent is the container itself, a RenderInline contributes no location offset\nof its own, and the whole distance down to the line is left to offsetForInFlowPositionedInline.\n\nAsk whether the inline is the containing block rather than whether it is in-flow positioned. For a\nRenderInline canContainAbsolutelyPositionedObjects covers the fixed position case as well, since the\nwillChange term of each only applies to a RenderBlock, leaving mayContainOutOfFlowPositionedObjects and a\nnon-static position.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filtered-inline-is-container-with-block-content.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filtered-inline-is-container-with-block-content-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filtered-inline-is-container-with-block-content-expected.html: Added.\n* Source/WebCore/rendering/RenderBox.cpp:\n(WebCore::RenderBox::offsetFromContainer):\n(WebCore::RenderBox::computeVisibleRectsInContainer):\n* Source/WebCore/rendering/RenderInline.cpp:\n(WebCore::RenderInline::offsetForInFlowPositionedInline):\n* Source/WebCore/rendering/RenderLayer.cpp:\n(WebCore::RenderLayer::updateLayerPosition):\n* Source/WebCore/rendering/RenderLayoutState.cpp:\n(WebCore::RenderLayoutState::computeOffsets):\n\nCanonical link: https://commits.webkit.org/318897@main",
      "email": "zalan@apple.com",
      "hash": "4e88d3e73dff505ed6f3e9607b5c956c8e535626",
      "subject": "[block-in-inline] Only a relatively positioned inline offsets its out-of-flow children by the position of its line"
    },
    "318898@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "318898@main",
      "clUrl": "https://commits.webkit.org/318898@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321277\n\nReviewed by Carlos Alberto Lopez Perez.\n\nSince 310527@main, WebAutomationSession::createBrowsingContext calls\nWebAutomationSessionProxy::ensureRealmForInitialEmptyDocument, which in\nturn tries to create an early JSWindowProxy for the realm. This can lead\nto a race in the RemoteInspector initialization, resulting in dbus\ncritical messages in the portal negotiation.\n\nWhile this eager JSWindowProxy eager initialization is properly handled\nwithin bug310506, this commit works around this issue by pre-warming the\nRemoteInspector on the WebProcess when its address is set (e.g.\nautomated pages), allowing the configuration to settle before\nensureRealmForInitialEmptyDocument is called.\n\nAlso, drive-by gardening of some related issues mistakenly attributed to\nthis issue.\n\n* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:\n(WebKit::WebProcess::platformInitializeWebProcess):\n* WebDriverTests/TestExpectations.json:\n\nCanonical link: https://commits.webkit.org/318898@main",
      "email": "lmoura@igalia.com",
      "hash": "2865d793ebdc856dd46f35c214c7cac8e640fe85",
      "subject": "[WebDriver][GLIB] Flaky WPEWebProcess portal crashes in eager JSWindowProxy creation"
    },
    "318899@main": {
      "author": "Fady Farag",
      "avatar": "https://www.gravatar.com/avatar/0ac5127c69f90d0c57054173ae4c3108?d=identicon\u0026s=64",
      "cl": "318899@main",
      "clUrl": "https://commits.webkit.org/318899@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321379\nrdar://184429352\n\nReviewed by Keith Miller.\n\ninline constexpr is the more common order in JSC (113 to 45).\nThis purely improves consistency and doesn't introduce any behavioral change.\n\n* Source/JavaScriptCore/b3/air/AirCCallingConvention.h:\n* Source/JavaScriptCore/runtime/JSObject.h:\n(JSC::offsetInButterfly):\n* Source/JavaScriptCore/runtime/PropertyOffset.h:\n(JSC::checkOffset):\n(JSC::validateOffset):\n(JSC::isValidOffset):\n(JSC::isInlineOffset):\n(JSC::isOutOfLineOffset):\n(JSC::offsetInInlineStorage):\n(JSC::offsetInOutOfLineStorage):\n(JSC::offsetInRespectiveStorage):\n(JSC::numberOfOutOfLineSlotsForMaxOffset):\n(JSC::numberOfSlotsForMaxOffset):\n(JSC::offsetForPropertyNumber):\n* Source/JavaScriptCore/wasm/WasmCompilationMode.h:\n(JSC::Wasm::isAnyInterpreter):\n(JSC::Wasm::isAnyBBQ):\n(JSC::Wasm::isAnyOMG):\n(JSC::Wasm::isAnyWasmToJS):\n\nCanonical link: https://commits.webkit.org/318899@main",
      "email": "com.webkit.iidmsa@gmail.com",
      "hash": "66f7ee58d73d45e83b16c4b4022bfaef5a5711bb",
      "subject": "Use `inline constexpr` instead of `constexpr inline` in JavaScriptCore"
    },
    "318900@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "318900@main",
      "clUrl": "https://commits.webkit.org/318900@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321415\nrdar://184484038\n\nReviewed by Sosuke Suzuki.\n\nNudgeResult and Nudged left members uninitialized, and roundRelativeDuration\ndefault-constructs a NudgeResult before the branch that fills it in.\n\naddDaysToISODate guarded with isInBounds\u003cint32_t\u003e, but yearMonthDayFromDays adds a ~1.47e8\nday offset internally, so anything above 2000667119 overflows a signed int inside it.\nBounded by 1e9 instead, well above the 1e8-day representable range. No observable change.\n\nnudgeToZonedTime's step 8 asserted TimeDurationSign(daySpan) = sign, but sign is only +/-1\nwhile TimeDurationSign also returns 0. With sign = -1, step 3's endDate = start - 1 can land\non a calendar day the zone skips entirely, collapsing daySpan to 0 and crashing debug\nbuilds. 170ee738c6f1 removed the same violable assertion from nudgeToCalendarUnit per\ntc39/proposal-temporal#3310; there the span is divided by and needs a RangeError, here it is\nonly subtracted, so tolerating zero suffices.\n\nunitIndexInTable and unitInTable were constexpr in the header with definitions in the .cpp,\nso no other translation unit could use them. Now static in DurationArithmetic.cpp.\n\nbalanceDuration, totalSeconds and totalSubseconds have no production callers; only\nTemporalCoreTest.cpp reached them.\n\nTest: Source/JavaScriptCore/API/tests/TemporalCoreTest.cpp\nCanonical link: https://commits.webkit.org/318900@main",
      "email": "yijia_huang@apple.com",
      "hash": "b2233ac176432e7d890d5d7aef59e1e34b111e24",
      "subject": "[JSC][Temporal] Fix undefined behavior, a loose bound, and remove dead code"
    },
    "318901@main": {
      "author": "Yijia Huang",
      "avatar": "https://www.gravatar.com/avatar/5bc95a5f0a5fdfc107bbdec6979dae89?d=identicon\u0026s=64",
      "cl": "318901@main",
      "clUrl": "https://commits.webkit.org/318901@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321407\nrdar://184472920\n\nReviewed by Sosuke Suzuki.\n\nThree rounding paths decided on a double that had already lost the distinction the\ndecision rests on.\n\n    until(\"2000-02-29T00:01\", month/hour/ceil)           P1M   -\u003e P29DT1H\n    until(\"2008-05-01T00:00:00.000000001\", month/ceil)   P100M -\u003e P101M\n    {days: 255, nanoseconds: 1} day/ceil                 P255D -\u003e P256D\n    254d23:59:59.999999999 day/floor                     P255D -\u003e P254D\n\nNudgeToDayOrTime read its whole-day counts from totalTimeDuration, which rounds rather\nthan truncates. NudgeToCalendarUnit and Duration.prototype.round's 'day' branch rounded a\ndouble where the spec's value is exact. All three now decide on Int128.\n\nApplyUnsignedRoundingMode existed twice, over doubles and over Int128 with a precomputed\ncomparison, and all three callers implemented steps 1 and 6-10 themselves. It is now one\nfunction taking x as an exact rational. Its half-even branch divided r1 by 2, correct only\nwhen r2 - r1 is 1, and now divides by r2 - r1 per step 14.\n\nTests: JSTests/stress/temporal-duration-round-day-exact.js\n       JSTests/stress/temporal-nudge-to-calendar-unit-exact-total.js\n       JSTests/stress/temporal-nudge-to-day-or-time-exact-whole-days.js\n       Source/JavaScriptCore/API/tests/TemporalCoreTest.cpp\n\nCanonical link: https://commits.webkit.org/318901@main",
      "email": "yijia_huang@apple.com",
      "hash": "11615f86705a3ca40514087f48cac4c05a3abb0a",
      "subject": "[JSC][Temporal] Decide duration rounding on exact integers, not doubles"
    },
    "318902@main": {
      "author": "Justin Michaud",
      "avatar": "https://www.gravatar.com/avatar/36e0433ee725a08f7e1122a6bc584b57?d=identicon\u0026s=64",
      "cl": "318902@main",
      "clUrl": "https://commits.webkit.org/318902@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321326\n\nReviewed by Yusuke Suzuki.\n\nQuick fixes for some bitrot.\n\nCanonical link: https://commits.webkit.org/318902@main",
      "email": "jmichaud@igalia.com",
      "hash": "b3e77266e1a40adceea14377fbe897dbd09f0020",
      "subject": "[RISC-V] Fix build errors"
    },
    "318903@main": {
      "author": "Justin Michaud",
      "avatar": "https://www.gravatar.com/avatar/36e0433ee725a08f7e1122a6bc584b57?d=identicon\u0026s=64",
      "cl": "318903@main",
      "clUrl": "https://commits.webkit.org/318903@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321292\n\nReviewed by Fujii Hironori.\n\nCMP0048 old behaviour is dropped in cmake 4; Drive-by fixes for\nmake_directory too.\n\nCanonical link: https://commits.webkit.org/318903@main",
      "email": "jmichaud@igalia.com",
      "hash": "283a44eb95ccc7d9d219dad06f9f028cc2083fa8",
      "subject": "Update CMAKE files for Cmake 4"
    },
    "318904@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318904@main",
      "clUrl": "https://commits.webkit.org/318904@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=319856\nrdar://182755161\n\nReviewed by Taher Ali.\n\nA legacy \u003cforeignObject\u003e paints its content at the box location() (its x/y), while\nobjectBoundingBox()/strokeBoundingBox() stay origin-relative (0,0,w,h) so they compose with\nlocalToParentTransform() for container bounds; that transform adds the x/y translate on top.\nCSS clip-path basic-shapes (e.g. inset()) build their reference box from those origin-relative\nboxes, so the clip is positioned as if x=y=0 and no longer lines up with the content it is\nmeant to clip.\n\nMove the reference box to the foreignObject's location() in clipPathReferenceBox(), through a\nnew SVGRenderSupport::svgContentLocationOffset() helper that returns a zero offset for every\nother renderer, since they all realize their x/y through localToParentTransform() instead. The\nview-box reference box is left alone, since it describes the nearest SVG viewport rather than\nthe foreignObject's own geometry.\n\n* LayoutTests/TestExpectations: Progression\n* Source/WebCore/rendering/svg/SVGRenderSupport.cpp:\n(WebCore::SVGRenderSupport::svgContentLocationOffset):\n(WebCore::clipPathReferenceBox):\n* Source/WebCore/rendering/svg/SVGRenderSupport.h:\n\nCanonical link: https://commits.webkit.org/318904@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "256f95732ea9bd8728a36ff2db5206a7b333d282",
      "subject": "[Legacy SVG] CSS clip-path basic-shape is mispositioned on a foreignObject with non-zero x/y"
    },
    "318905@main": {
      "author": "Tyler Wilcock",
      "avatar": "https://www.gravatar.com/avatar/9545082e6bed96158a9f52dac6e4b869?d=identicon\u0026s=64",
      "cl": "318905@main",
      "clUrl": "https://commits.webkit.org/318905@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321357\nrdar://184389421\n\nReviewed by Dominic Mazzoni.\n\nA batch of pending changes carries appends and subtree removals in two separate\nvectors, so the same AXID can appear in both, and the relative order of the two\ndecisions is not recoverable from the batch. removeStaleAppends has to tell a\nleftover append (the object was appended, then genuinely deleted, so applying the\nappend would resurrect a dead object) apart from a reparent (the object was removed\nfrom its old parent and appended under a new one, so the append must be kept), and\nit inferred the order from parentage. Differing parents meant a move, matching\nparents meant stale.\n\nThat inference is wrong when a node is removed from a parent and then legitimately\nre-added under that same parent. The parents match, so the append is judged stale\nand dropped, even though it is the newer decision. The object is then missing from\nthe tree while the main thread's node map still lists it as a child of that parent.\n\nowner.setAttribute(\"aria-owns\", \"child\");  // cycle 1: remove child from parent,\n                                           //          append child under owner\nowner.remove();                            // cycle 2: append child under natural parent again\n\nFix this by recording the order instead of inferring it. nextChangeSequence() creates a monotonic\ncounter onto NodeChange and NodeAndParentID at the point the main thread decides on\nthe append or removal, and removeStaleAppends now drops an append only when it was\ndecided before the removal that would invalidate it.\n\nThe test exercises the merged-batch case via aria-owns, which moves an object in the\naccessibility tree without touching the render tree so the object keeps its AXID. A\nDOM reparent cannot reach this code, as it destroys and recreates the renderer and the\nnew parent's append is therefore for a new AXID.\n\nNote the test passes both with and without this change on trunk. Reaching the bug\nrequires two main-thread update cycles to land in one batch before the accessibility\nthread applies it, which only happens deterministically with the browser-tick-based\nbatching atomic tree updates in https://bugs.webkit.org/show_bug.cgi?id=316148, where\nthis test does fail without this fix.\n\n* LayoutTests/accessibility/append-and-remove-in-one-cycle-expected.txt: Added.\n* LayoutTests/accessibility/append-and-remove-in-one-cycle.html: Added.\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:\n(WebCore::AXIsolatedTree::createEmptyContent):\n(WebCore::AXIsolatedTree::nodeChangeForObject):\n(WebCore::AXIsolatedTree::addUnconnectedNode):\n(WebCore::AXIsolatedTree::resolveAppends):\n(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):\n(WebCore::AXIsolatedTree::updateNode):\n(WebCore::AXIsolatedTree::updateChildren):\n(WebCore::AXIsolatedTree::removeNode):\n(WebCore::AXIsolatedTree::removeStaleAppends):\n(WebCore::AXIsolatedTree::processQueuedNodeUpdates):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:\n(WebCore::AXIsolatedTree::NodeChange::NodeChange):\n(WebCore::AXIsolatedTree::nextChangeSequence):\n\nCanonical link: https://commits.webkit.org/318905@main",
      "email": "tyler_w@apple.com",
      "hash": "507dba2fa32ad23cba904af464524b9d8c62af0d",
      "subject": "AX: An append queued after a subtree removal can be incorrectly discarded as stale"
    },
    "318906@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318906@main",
      "clUrl": "https://commits.webkit.org/318906@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321302\n\nReviewed by Antti Koivisto.\n\nA block level box nested in an inline box sits on a line, and the line is made as wide as that box's margin\nbox so the box occupies the inline space it needs (InlineFormattingUtils::inlineItemWidth, and\nLine::appendBlock which sets the line's content width to it). That is the right width for laying out the\nline. It is not the right width for the container's overflow, and it was being used for both.\n\nThe two disagree because the inline formatting context and the render tree resolve the box's margins\ndifferently. The render tree resolves an over-constrained block level box by adjusting its end margin, which\ncan go negative, and layoutOverflowRectForPropagation() then adds max(0, marginEnd), so an over-constrained\nbox's overflow ends at its border box. The inline formatting context does not run that resolution - it is\nsizing a line, not placing a block sibling - so its margin box keeps the specified end margin.\n\n    \u003cdiv style=\"width: 100px; overflow: hidden\"\u003e\n        \u003cdiv\u003etext\u003cspan\u003e\u003cdiv style=\"width: 150px; margin-right: 20px\"\u003e\u003c/div\u003e\u003c/span\u003e\u003c/div\u003e\n    \u003c/div\u003e\n\nreports scrollWidth 170 instead of 150. The used end margin is 100 - 150 = -50 and extends nothing, but the line is 170 wide and hands that to the container.\n\nInk overflow needs the same treatment for a different reason. It was based on the line's scrollable\noverflow, and scrollable overflow is meant to enclose the box - you can scroll to it. Visual overflow is\nnot: RenderBox::addOverflowFromChild() returns early for a child with a self painting layer, so a composited\nblock level box must contribute nothing. Using the scrollable rect bypassed that, and the container's\ncomposited bounds grew to enclose a layer it does not paint. A line whose content is a block level box paints\nnothing itself, so start its ink overflow empty and let the box's own contribution be collected, which\nalready happens only when the box is not self painting.\n\n* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:\n(WebCore::Layout::InlineDisplayLineBuilder::collectEnclosingLineGeometry const):\n* Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.cpp:\n(WebCore::LayoutIntegration::InlineContentBuilder::adjustDisplayLines const):\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/scroll-width-with-over-constrained-block-in-inline.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/scroll-width-with-over-constrained-block-in-inline-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318906@main",
      "email": "zalan@apple.com",
      "hash": "e7c20293ca2afa594467c3684db0583fa114dbd2",
      "subject": "[block-in-inline] A block level box on a line contributes its margin box to its container's overflow"
    },
    "318908@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318908@main",
      "clUrl": "https://commits.webkit.org/318908@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321351\n\nReviewed by Antti Koivisto.\n\nAn outside list marker that takes no part in the list item's in-flow layout is positioned after layout,\naligned with the first line of the content. setExcludedMarkerPositions finds that line with\nInlineDisplay::Line::hasContentfulInFlowBox(), which a line whose only content is a block level box\nsatisfies. The marker then aligns with that box instead of with the text, landing at the top of the\ncontent rather than beside its first line of text.\n\nPrefer the first line with inline content on it, and fall back to a block content line only when there\nis none: a content box whose only line carries a block level box has no other line to align with.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/outside-marker-alignment-with-block-content.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/outside-marker-alignment-with-block-content-ref.html: Added.\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::LineLayout::setExcludedMarkerPositions):\n* LayoutTests/imported/w3c/web-platform-tests/css/css-lists/outside-marker-alignment-with-block-content-expected.html: Added.\n\nCanonical link: https://commits.webkit.org/318908@main",
      "email": "zalan@apple.com",
      "hash": "87b881998dbdefb0f2137aa3aaaa14ea009d68a3",
      "subject": "[block-in-inline] An excluded list marker aligns with a block level box on a line instead of the first line of text"
    },
    "318909@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318909@main",
      "clUrl": "https://commits.webkit.org/318909@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321311\n\nReviewed by Antti Koivisto.\n\nHit testing returns nodes front to back, so hitTest() visits the display boxes in reverse.\nA line's root inline box is not content - its renderer is the formatting context root - so reporting it adds\nthe container. On a line with a block level box it is hit tested in the block background phases, where a later\nline's root inline box is reached before an earlier line's block level box, landing the container ahead of its\nown descendant. Leave it out of those phases; the container reports itself in its own block background phase,\nafter its children.\n\n* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:\n(WebCore::LayoutIntegration::LineLayout::hitTest):\n* LayoutTests/fast/dom/nodesFromRect/nodesFromRect-block-in-inline.html: Added.\n* LayoutTests/fast/dom/nodesFromRect/nodesFromRect-block-in-inline-expected.txt: Added.\n\nCanonical link: https://commits.webkit.org/318909@main",
      "email": "zalan@apple.com",
      "hash": "b96e8988a23a1d8406ed2885ed952a61ed32c0b6",
      "subject": "[block-in-inline] List based hit testing reports the container before a block level box on an earlier line"
    },
    "318910@main": {
      "author": "Dominic Mazzoni",
      "avatar": "https://www.gravatar.com/avatar/f76643c44a7ee3be45148e66d97ed8e4?d=identicon\u0026s=64",
      "cl": "318910@main",
      "clUrl": "https://commits.webkit.org/318910@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320998\nrdar://184036986\n\nReviewed by Andres Gonzalez and Tyler Wilcock.\n\nThe AX-thread implementation of AXStringForTextMarkerRange\n(AXTextMarkerRange::toString) doesn't emit the characters the\nmain-thread, TextIterator-based implementation emits for non-text\nnodes, so the same range yields different strings depending on whether\nthe accessibility isolated tree is enabled.\n\nTo fix this, cache two new properties on isolated objects:\nIsReplacedElementForTextEmission (the unignored half of\nAccessibilityObject::replacedNodeNeedsCharacter, i.e. whether\nTextIterator considers the node replaced) and\nIsInUserAgentShadowTree. Teach findObjectWithRuns to tell its visitor\nwhich of TextIterator's two emission points it is at —\nReachedInPreOrder (handleReplacedElement / handleNonTextNode) or\nAscendedOutOf (exitNode) — and to optionally stop at a user-agent\nshadow boundary, matching TextIterator's light-DOM walk. Emission\nitself now lives in one function,\nAccessibility::auxiliaryTextForObject, shared by toString,\ntoAttributedString and the index walk so they can't drift apart.\n\nTests: accessibility/mac/text-marker-range-and-attributed-string-emission.html\n       accessibility/text-marker/text-marker-range-string-emission-matches-text-iterator.html\n       accessibility/text-marker/text-marker-range-string-emits-tabs-and-replaced-elements.html\n\n* LayoutTests/accessibility/mac/text-marker-range-and-attributed-string-emission-expected.txt: Added.\n* LayoutTests/accessibility/mac/text-marker-range-and-attributed-string-emission.html: Added.\n* LayoutTests/accessibility/text-marker/text-marker-range-string-emission-matches-text-iterator-expected.txt: Added.\n* LayoutTests/accessibility/text-marker/text-marker-range-string-emission-matches-text-iterator.html: Added.\n* LayoutTests/accessibility/text-marker/text-marker-range-string-emits-tabs-and-replaced-elements-expected.txt: Added.\n* LayoutTests/accessibility/text-marker/text-marker-range-string-emits-tabs-and-replaced-elements.html: Added.\n* Source/WebCore/accessibility/AXCoreObject.h:\n* Source/WebCore/accessibility/AXLogger.cpp:\n(WebCore::operator\u003c\u003c):\n* Source/WebCore/accessibility/AXTextMarker.cpp:\n(WebCore::AXTextMarkerRange::toString const):\n(WebCore::forEachRunObjectForward):\n(WebCore::AXTextMarker::offsetFromRoot const):\n(WebCore::AXTextMarker::nextMarkerFromOffset const):\n(WebCore::Accessibility::auxiliaryTextForObject):\n(WebCore::Accessibility::findObjectWithRuns):\n(WebCore::emittedNewlineLength): Deleted.\n* Source/WebCore/accessibility/AXTextMarker.h:\n(WebCore::EmittedAuxiliaryText::lastCharacter const):\n(WebCore::Accessibility::findObjectWithRuns):\n* Source/WebCore/accessibility/AccessibilityObject.cpp:\n(WebCore::AccessibilityObject::isReplacedElementForTextEmission const):\n(WebCore::AccessibilityObject::isInUserAgentShadowTree const):\n* Source/WebCore/accessibility/AccessibilityObject.h:\n* Source/WebCore/accessibility/cocoa/AXTextMarkerCocoa.mm:\n(WebCore::AXTextMarkerRange::toAttributedString const):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:\n(WebCore::createIsolatedObjectData):\n* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:\n\nCanonical link: https://commits.webkit.org/318910@main",
      "email": "dm_mazzoni@apple.com",
      "hash": "6f0c6edf0a342a1341a938ca943dca52ea645f22",
      "subject": "AX: Text marker range strings diverge from the main thread for table cells and form controls)"
    },
    "318911@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318911@main",
      "clUrl": "https://commits.webkit.org/318911@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321382\n\nReviewed by Antti Koivisto.\n\nRenderBlock::blockSelectionGaps does four things per block level child: it fills the gap above the child,\nfills the gaps beside it or recurs into it, and carries the bottom of the child forward so the next gap\nstarts from there. RenderBlockFlow::inlineSelectionGaps does none of that for a block level box on a line,\nso the gaps around such a box go unpainted.\n\nGive the line loop the same four.\n\n* LayoutTests/fast/inline/selection-gap-with-block-in-inline.html: Added.\n* LayoutTests/fast/inline/selection-gap-with-block-in-inline-expected.html: Added.\n* Source/WebCore/rendering/RenderBlockFlow.cpp:\n(WebCore::RenderBlockFlow::inlineSelectionGaps):\n* Source/WebCore/layout/integration/inline/LineSelection.h:\n(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):\n* Source/WebCore/editing/VisiblePosition.cpp:\n* Source/WebCore/rendering/EllipsisBoxPainter.cpp:\n* Source/WebCore/rendering/RenderReplaced.cpp:\n\nCanonical link: https://commits.webkit.org/318911@main",
      "email": "zalan@apple.com",
      "hash": "ba257cf78822fef2455ce1b3f4028bc1a7aeabff",
      "subject": "[block-in-inline] Selection gaps are not filled around a block level box on a line"
    },
    "318912@main": {
      "author": "Antti Koivisto",
      "avatar": "https://www.gravatar.com/avatar/07965eed55d4b41ea2b394599b17f7cd?d=identicon\u0026s=64",
      "cl": "318912@main",
      "clUrl": "https://commits.webkit.org/318912@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320896\nrdar://183913427\n\nReviewed by Sam Weinig.\n\nvar() function is an arbitrary substitution function, and its argument grammar is:\n\n\u003cvar-args\u003e = var( \u003cdeclaration-value\u003e , \u003cdeclaration-value\u003e? )\n\nhttps://drafts.csswg.org/css-variables-2/#using-variables\n\nThis moves the argument validation to computed-value time and allows using other substitution functions\ninside var() (assuming there was ident() implementation):\n\ncolor: var(ident(--foo-color- attr(bar-attr)))\n\nTests: fast/css/css-typed-om/var-name-argument-unparsed.html\n       fast/css/variables/env/env-name-argument-not-substituted.html\n       imported/w3c/web-platform-tests/css/css-variables/variable-reference-name-substitution-attr-taint.html\n       imported/w3c/web-platform-tests/css/css-variables/variable-reference-name-substitution.html\n* LayoutTests/fast/css/css-typed-om/var-name-argument-unparsed-expected.txt: Added.\n* LayoutTests/fast/css/css-typed-om/var-name-argument-unparsed.html: Added.\n\nA var() that no longer has a name to reify must round-trip as text through Typed OM.\n\n* LayoutTests/fast/css/variables/env/env-name-argument-not-substituted-expected.txt: Added.\n* LayoutTests/fast/css/variables/env/env-name-argument-not-substituted.html: Added.\n\nCovers the env() limitation. Not in the imported tree, since the spec allows what this asserts is invalid.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/var-ident-function-expected.txt:\n\nFallback subtests pass now that a bad substituted name triggers the fallback.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/var-parsing-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/var-parsing.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-reference.html:\n\nMalformed name arguments are valid at parse time and round-trip.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-declaration-29.html:\n\nAn invalid substituted name (--) triggers the fallback rather than dropping the declaration.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-supports-30.html:\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-supports-64.html:\n\nvar() with a dimension-token name argument is valid at parse time, so the declaration is supported.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-reference-name-substitution-attr-taint-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-reference-name-substitution-attr-taint.html: Added.\n\nA name resolved from an attribute must not sneak a URL past the taint check, including when an\nearlier value in the same declaration was already tainted.\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-reference-name-substitution-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-reference-name-substitution.html: Added.\n\nNames from other substitution functions, names that don't parse as \u003ccustom-property-name\u003e,\n{}-wrapped names, cycles through the name argument, and registered properties.\n\n* Source/WebCore/css/CSSSubstitutionValue.cpp:\n(WebCore::CSSSubstitutionValue::cacheSimpleReference):\n\nOnly cache a name that var() or env() could actually name. Taking the first token whatever it was\nmade var(20px) cache a reference to \"px\", so every resolution did a futile custom property lookup\nfirst.\n\n* Source/WebCore/css/parser/CSSSubstitutionParser.cpp:\n(WebCore::isValidDeclarationValueArgument):\n(WebCore::isValidVariableReference):\n\nValidate the name argument as a \u003cdeclaration-value\u003e split at the first literal comma. It is a\nfree-form production, so isValidDeclarationValueArgument() applies the {}-wrapping rules to it.\n\n* Source/WebCore/style/StyleSubstitutionResolver.cpp:\n(WebCore::Style::SubstitutionResolver::substituteVarArgumentGrammar):\n\nSubstitute the name argument and parse it as a \u003ccustom-property-name\u003e. A name that does not parse is\nan unset optional, leaving the reference guaranteed-invalid while still permitting the fallback.\nm_isAttrTainted is a sticky resolver-wide flag, so it is isolated across the name substitution:\ndiffing it would miss the taint whenever an earlier value had already set it, letting a tainted name\nreach a URL.\n\n(WebCore::Style::SubstitutionResolver::substituteVarFunction):\n(WebCore::Style::SubstitutionResolver::substituteEnvFunction):\n\nOne entry point each. env() names a literal \u003cident\u003e with nothing to substitute, so sharing meant\nbranching on the function id. Its argument grammar is the same as var()'s per css-env-1, so the\nident-only name is a WebKit limitation and now says so.\n\n(WebCore::Style::SubstitutionResolver::substituteNamedValueOrFallback):\n\nThe tail they do share: look up the name, fall back when the result is guaranteed-invalid.\n\n(WebCore::Style::SubstitutionResolver::substituteTokenRange):\n(WebCore::Style::SubstitutionResolver::substituteVariableFunction): Deleted.\n* Source/WebCore/style/StyleSubstitutionResolver.h:\n* Source/WebCore/css/typedom/CSSUnparsedValue.cpp:\n(WebCore::CSSUnparsedValue::create):\n\nThe assumption that a parsed var() has a literal \u003cident\u003e name no longer holds. var(20px) hit the\nASSERT and then aborted in release on the CSSOMVariableReferenceValue::create() exception, reachable\nfrom attributeStyleMap.get() and CSSStyleValue.parse(). Reify a variable reference only for a\nliteral name and keep anything else as text.\n\n* Source/WebCore/css/query/ContainerQuery.cpp:\n(WebCore::Style::collectCustomPropertyNames):\n\nFIXME for the names that only exist after substitution, which this cannot see.\n\nCanonical link: https://commits.webkit.org/318912@main",
      "email": "antti@apple.com",
      "hash": "8ce7ca092057b07052d0c88e5e3e940970cc75d3",
      "subject": "[css-variables-2] var() should be an arbitrary substitution function"
    },
    "318913@main": {
      "author": "Marta Darbinyan",
      "avatar": "https://www.gravatar.com/avatar/6143b3673258642a8b75585c768ccf10?d=identicon\u0026s=64",
      "cl": "318913@main",
      "clUrl": "https://commits.webkit.org/318913@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321298\nrdar://184338230\n\nUnreviewed test Gardening\n\nSkipping the tests that causes crashes in release.\n\n* LayoutTests/platform/mac-wk2/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318913@main",
      "email": "darbinyan@apple.com",
      "hash": "242c480f9d0dc753ce4dd7bb9a1073501c7e6195",
      "subject": "[Gardening]: REGRESSION(318767@main): [macOS Release] imported/w3c/web-platform-tests/wasm/serialization/memory/window-success.tentative.https.html is a flaky crash"
    },
    "318914@main": {
      "author": "Nathan Solomon",
      "avatar": "https://www.gravatar.com/avatar/511ed1e062e5bfec8adff762a004a148?d=identicon\u0026s=64",
      "cl": "318914@main",
      "clUrl": "https://commits.webkit.org/318914@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320489\nrdar://183456012\n\nReviewed by Alan Baradlay.\n\nThe minimum content size of an inline formatting context is the width of its widest\nunbreakable piece of content, which for ordinary text is the widest word. We obtained it\nby running a real line layout with an available width of zero, which forces one line per\nunbreakable piece, so the line builder ran once per word and each call produced a full\nline layout result the loop reduced to a width. Maximum content size goes through that\nsame loop with an infinite available width and lays out one line per forced break. The\ncost difference between the two is therefore the number of lines laid out, and profiling\nshows the minimum costing much more than the maximum.\n\nWe can skip the layout because at an available width of zero the line builder puts exactly\none unbreakable piece on each line, so the width the loop reads off the line is just that\npiece's width. Building the inline item list already split the text at each position the\nline break iterator reported and stored a width on each item, where it can. A piece's\nwidth is the sum of its item widths, so laying out a line to obtain it is unnecessary.\n\nScope this optimization to content whose root style has white-space: break-spaces.\nbreak-spaces keeps every space, so a piece is a word plus the space after it. It also\npreserves spaces and tabs, which leaves no item fully trimmable so a line has nothing to\ntrim, and trailing whitespace only hangs under 'preserve', so it has nothing to hang\neither. With both of those empty the width a line arrives at is the sum of the item widths\nit was handed.\n\nAdd a fast path that traverses the inline item list, summing item widths and closing a\npiece at each wrap opportunity. The fast path is only worth trusting if it agrees with the\nline builder, so it calls the same wrap opportunity test the builder uses.\nEarly return from this optimization if it is possible we can break within an\nitem.\n\n* Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp:\n(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const): Deleted.\n* Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.h:\n(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):\n* Source/WebCore/layout/formattingContexts/inline/IntrinsicWidthHandler.cpp:\n(WebCore::Layout::IntrinsicWidthHandler::minimumContentSizeForBreakSpaces):\n(WebCore::Layout::IntrinsicWidthHandler::lineBuilderMinimumContentSize):\n(WebCore::Layout::IntrinsicWidthHandler::minimumContentSize):\n(WebCore::Layout::IntrinsicWidthHandler::computedIntrinsicWidthForConstraint):\n* Source/WebCore/layout/formattingContexts/inline/IntrinsicWidthHandler.h:\n* Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.cpp:\n(WebCore::Layout::TextOnlySimpleLineBuilder::measuredInlineTextItem):\n(WebCore::Layout::TextOnlySimpleLineBuilder::isAtContentEnd):\n(WebCore::Layout::TextOnlySimpleLineBuilder::isAtSoftWrapOpportunityOrContentEnd):\n(WebCore::Layout::TextOnlySimpleLineBuilder::placeInlineTextContent):\n(WebCore::Layout::measuredInlineTextItem): Deleted.\n* Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.h:\n* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:\n(WebCore::Layout::TextUtil::wordBreakBehavior):\n* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h:\n\nCanonical link: https://commits.webkit.org/318914@main",
      "email": "nathan_solomon@apple.com",
      "hash": "3e4e20f5b35f660ea1e3442dfcf8f7cd4724b9ec",
      "subject": "Compute minimum content size for break-spaces text without running line layout"
    },
    "318915@main": {
      "author": "Devin Rousso",
      "avatar": "https://www.gravatar.com/avatar/c9e757d973342c773f107a94b70cb9cd?d=identicon\u0026s=64",
      "cl": "318915@main",
      "clUrl": "https://commits.webkit.org/318915@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=190546\n\nReviewed by Mike Wyrzykowski.\n\nInclude associated graphics resources in Web Inspector's canvas memory estimate.\nKeep the estimate cheap and deliberately approximate; it only needs to put the reported cost in the right ballpark.\n\n* Source/WebCore/platform/graphics/GraphicsContextGL.h:\n(WebCore::GraphicsContextGL::Client::didChangeMemoryCost): Added.\n(WebCore::GraphicsContextGL::estimatedMemoryCost): Added.\n* Source/WebCore/platform/graphics/GraphicsContextGL.cpp:\n(WebCore::GraphicsContextGL::didChangeMemoryCost): Added.\n* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:\n* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:\n(WebCore::GraphicsContextGLANGLE::estimatedMemoryCost): Added.\n(WebCore::GraphicsContextGLANGLE::renderbufferStorage):\n(WebCore::GraphicsContextGLANGLE::texImage2D):\n(WebCore::GraphicsContextGLANGLE::compressedTexImage2D):\n(WebCore::GraphicsContextGLANGLE::reshape):\n(WebCore::GraphicsContextGLANGLE::bufferData):\n(WebCore::GraphicsContextGLANGLE::renderbufferStorageMultisample):\n(WebCore::GraphicsContextGLANGLE::renderbufferStorageMultisampleANGLE):\n(WebCore::GraphicsContextGLANGLE::texStorage2D):\n(WebCore::GraphicsContextGLANGLE::texStorage3D):\n(WebCore::GraphicsContextGLANGLE::texImage3D):\n(WebCore::GraphicsContextGLANGLE::compressedTexImage3D):\n(WebCore::GraphicsContextGLANGLE::copyTexImage2D):\n(WebCore::GraphicsContextGLANGLE::generateMipmap):\n(WebCore::GraphicsContextGLANGLE::deleteBuffer):\n(WebCore::GraphicsContextGLANGLE::deleteRenderbuffer):\n(WebCore::GraphicsContextGLANGLE::deleteTexture):\nUse `EGL_ANGLE_memory_usage_report` to include live buffer, texture, and renderbuffer allocations from the context's share group.\nNotify the context client after ANGLE operations that can resize or destroy those resources.\n\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLInitializationState.serialization.in:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLInitializationState.h:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:\n* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:\n(WebKit::estimatedMemoryCostForIPC): Added.\n(WebKit::RemoteGraphicsContextGL::workQueueInitialize):\n(WebKit::RemoteGraphicsContextGL::didChangeMemoryCost): Added.\n(WebKit::RemoteGraphicsContextGL::updateMemoryCost): Added.\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:\n* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:\n(WebKit::estimatedMemoryCostFromIPC): Added.\n(WebKit::RemoteGraphicsContextGLProxy::initialize):\n(WebKit::RemoteGraphicsContextGLProxy::estimatedMemoryCost): Added.\n(WebKit::RemoteGraphicsContextGLProxy::memoryCostChanged): Added.\n(WebKit::RemoteGraphicsContextGLProxy::handleMessageToRemovedDestination):\nCarry the initial estimate in `WasCreated`, cache it in the WebProcess, and only send `MemoryCostChanged` when a coalesced GPU process query changes the value.\nFeed cache updates through `GraphicsContextGL::Client` so WebGL's normal memory update dispatches `canvasMemoryChanged` without synchronous GPU process IPC.\n\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.h:\n* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:\n(WebCore::WebGLRenderingContextBase::forceLostContext):\n(WebCore::WebGLRenderingContextBase::didChangeMemoryCost): Added.\n(WebCore::WebGLRenderingContextBase::scheduleMemoryCostUpdate): Added.\n(WebCore::WebGLRenderingContextBase::updateMemoryCost):\nPreserve the default framebuffer estimate and add ANGLE's cached resource estimate.\nCoalesce resource changes onto the `WebGL` task queue and immediately clear the total when the context is lost.\n\n* Source/WebCore/Modules/WebGPU/GPUBuffer.cpp:\n(WebCore::GPUBuffer::~GPUBuffer):\n(WebCore::GPUBuffer::destroy):\n* Source/WebCore/Modules/WebGPU/GPUTexture.h:\n* Source/WebCore/Modules/WebGPU/GPUTexture.cpp:\n(WebCore::GPUTexture::~GPUTexture):\n(WebCore::GPUTexture::destroy):\n(WebCore::GPUTexture::memoryCost): Added.\n* Source/WebCore/Modules/WebGPU/GPUDevice.h:\n* Source/WebCore/Modules/WebGPU/GPUDevice.cpp:\n(WebCore::GPUDevice::memoryCost): Added.\n(WebCore::GPUDevice::notifyMemoryCostChanged): Added.\n(WebCore::GPUDevice::didChangeBufferMemoryCost): Added.\n(WebCore::GPUDevice::didChangeTextureMemoryCost): Added.\n(WebCore::GPUDevice::willDestroyBuffer): Added.\n(WebCore::GPUDevice::willDestroyTexture): Added.\n(WebCore::GPUDevice::destroy):\n(WebCore::GPUDevice::createBuffer):\n(WebCore::GPUDevice::createTexture):\nTrack live device-created buffers and textures without extending their lifetime, and notify Inspector when their cost changes.\nUse existing buffer sizes and WebGPU texture layout helpers for a ballpark estimate that includes mip levels, array layers, 3D depth, sample counts, and depth/stencil aspects.\nMake destruction idempotent so each resource only changes the total once.\n\n* Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm:\n(WebCore::GPUCanvasContextCocoa::updateMemoryCost):\nUse the same texture estimate for the presentation texture.\n\n* Source/JavaScriptCore/inspector/protocol/Canvas.json:\n* Source/WebCore/inspector/InspectorInstrumentation.h:\n* Source/WebCore/inspector/InspectorInstrumentation.cpp:\n(WebCore::InspectorInstrumentation::didChangeWebGPUMemory): Added.\n(WebCore::InspectorInstrumentation::didChangeWebGPUMemoryImpl): Added.\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.h:\n* Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:\n(WebCore::InspectorCanvasAgent::didChangeWebGPUMemory): Added.\n* Source/WebCore/inspector/InspectorCanvas.cpp:\n(WebCore::InspectorCanvas::memoryCost):\nInclude WebGPU device resources in the Inspector canvas total and dispatch the existing `canvasMemoryChanged` event when it changes.\n\n* Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:\n* Source/WebInspectorUI/UserInterface/Views/CanvasDetailsSidebarPanel.js:\n(WI.CanvasDetailsSidebarPanel):\nDescribe the value as an estimate that includes associated graphics resources.\n\n* Tools/TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:\n(TestWebKitAPI::MockGraphicsContextGLClient::didChangeMemoryCost): Added.\n* Tools/TestWebKitAPI/Tests/WebCore/glib/GraphicsContextGLTextureMapper.cpp:\n(TestWebKitAPI::MockGraphicsContextGLClient::didChangeMemoryCost): Added.\n* LayoutTests/inspector/canvas/memory-bitmaprenderer.html: Added.\n* LayoutTests/inspector/canvas/memory-bitmaprenderer-expected.txt: Added.\n* LayoutTests/inspector/canvas/memory-webgl.html: Added.\n* LayoutTests/inspector/canvas/memory-webgl-expected.txt: Added.\n* LayoutTests/inspector/canvas/memory-webgpu.html: Added.\n* LayoutTests/inspector/canvas/memory-webgpu-expected.txt: Added.\n* LayoutTests/platform/glib/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318915@main",
      "email": "hi@devinrousso.com",
      "hash": "de82d628262585b0a92b33ddd5321b8ee34fa6f9",
      "subject": "Web inspector should show memory use data for canvas and WebGL"
    },
    "318916@main": {
      "author": "Issac Roy",
      "avatar": "https://www.gravatar.com/avatar/dad994528f617bf59fe005077d0fa8f3?d=identicon\u0026s=64",
      "cl": "318916@main",
      "clUrl": "https://commits.webkit.org/318916@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321079\nrdar://184249857\n\nReviewed by Ryan Haddad and Aakash Jain.\n\n318091@main anchored the reviewer greps to the start of a line, which made\nthem reject indented reviewer lines. `git-webkit cherry-pick` indents the\noriginal commit message by four spaces, so cherry-pick PRs always failed with\n\"No reviewer information in commit message\". A hand-typed leading space breaks\nit the same way.\n\nAllow leading whitespace. Mid-line matches, which 318091@main fixed, are still\nrejected. Use [[:space:]] rather than \\s, since \\s is a GNU extension and not\nPOSIX BRE.\n\n* Tools/CISupport/ews-build/steps.py:\n(ValidateCommitMessage.run):\n* Tools/CISupport/ews-build/steps_unittest.py:\n(TestValidateCommitMessage.test_success_indented_cherry_pick): Added.\n\nCanonical link: https://commits.webkit.org/318916@main",
      "email": "issacroy05@gmail.com",
      "hash": "ba2e302bc68dcc8eafe723690196277afc1948ae",
      "subject": "REGRESSION(318091@main): No possible to merge cherry-pick PRs in stable branches"
    },
    "318917@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318917@main",
      "clUrl": "https://commits.webkit.org/318917@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321428\nrdar://184501304\n\nReviewed by Sosuke Suzuki.\n\nThis patch adjusts / fixes wasm limit numbers we are using based on the\nspec.\n\nTests: JSTests/wasm/stress/table-initial-upper-bound.js\n       JSTests/wasm/stress/tag-section-limit.js\n\n* JSTests/wasm/stress/table-initial-upper-bound.js: Added.\n* JSTests/wasm/stress/table64-maximum.js:\n(assert.eq.instance.exports.grow):\n* JSTests/wasm/stress/tag-section-limit.js: Added.\n(leb):\n(moduleWithTags):\n* JSTests/wasm/v8/table.js:\n(TestConstructor):\n* Source/JavaScriptCore/wasm/WasmLimits.h:\n* Source/JavaScriptCore/wasm/WasmSectionParser.cpp:\n(JSC::Wasm::SectionParser::parseIndexCountForElementSection):\n(JSC::Wasm::SectionParser::parseException):\n* Source/JavaScriptCore/wasm/WasmTable.h:\n(JSC::Wasm::Table::isValidLength):\n* Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp:\n(JSC::JSC_DEFINE_HOST_FUNCTION):\n\nCanonical link: https://commits.webkit.org/318917@main",
      "email": "ysuzuki@apple.com",
      "hash": "2194da86b3829247fdf9a78bf1979b8de2539cf7",
      "subject": "[JSC] Adjust / Fix wasm limit numbers"
    },
    "318918@main": {
      "author": "Andrew Fryer",
      "avatar": "https://www.gravatar.com/avatar/693f8e74251268cad2daff9afdf907ca?d=identicon\u0026s=64",
      "cl": "318918@main",
      "clUrl": "https://commits.webkit.org/318918@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320802\nrdar://183815105\n\nReviewed by Keith Miller.\n\nThe GlobalProperty paths of op_get_from_scope and op_put_to_scope\nresolve their status with GetByStatus/PutByStatus computeFor overloads\nthat don't check OSR exit profiles because they're designed for\nAbstractInterpreter where we've already checked.\n\nAdd computeFor overloads for DFG parser that check hasBadCacheExitSite()\nso we'll emit a generic IC instead of speculating and failing repeatedly.\n\n* Source/JavaScriptCore/bytecode/GetByStatus.cpp:\n(JSC::GetByStatus::computeFor):\n* Source/JavaScriptCore/bytecode/GetByStatus.h:\n* Source/JavaScriptCore/bytecode/PutByStatus.cpp:\n(JSC::PutByStatus::computeFor):\n* Source/JavaScriptCore/bytecode/PutByStatus.h:\n* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:\n(JSC::DFG::ByteCodeParser::parseBlock):\n\nCanonical link: https://commits.webkit.org/318918@main",
      "email": "a_fryer@apple.com",
      "hash": "7ff1104e4d0bc8fa3f382aa055415f27f60d3574",
      "subject": "Avoid repeated OSR exits in op_get_from_scope and op_put_to_scope"
    },
    "318919@main": {
      "author": "Wenson Hsieh",
      "avatar": "https://www.gravatar.com/avatar/c8fba82556fd4988c78bd3a0aee2a44e?d=identicon\u0026s=64",
      "cl": "318919@main",
      "clUrl": "https://commits.webkit.org/318919@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321406\nrdar://184191816\n\nReviewed by Abrar Rahman Protyasha.\n\nWhen the device is locked, display link updates stop, which causes the rendering update lifecycle to\nalso stop. This breaks (among other things) `callAfterNextPresentationUpdate`, CSS animations and\ntransitions, and other behaviors that rely on regular rendering updates. In the context of\nAutomatically Fix Passwords, this may (for instance) cause a menu that appears after finishing a\nview transition or animation runs to completion, to never show up after the agent issues a click\ninteraction.\n\nTo mitigate this, we add a mechanism that allows us to (manually) drive the display link update\nlifecycle after issuing a text extraction interaction, only when `backgroundTextExtraction` is also\nspecified, as if the display were still refreshing.\n\nSince this is all happening in the background anyways, there's no need to refresh at at the normal\nrate of 120, 60 or even 30 fps — just a few frames a second is sufficient to ensure that it's still\npossible to interact with these websites. For now, this is set to 4 frames per second (250 ms\nbetween frames).\n\nSee below for more details.\n\nTest: TextExtractionTests.ClickInteractionWithStalledDisplayLink\n\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView+TextExtraction.mm:\n(-[WKWebView _performInteraction:inFrame:actionType:nodeIdentifier:staleNodeNote:shouldResolveStaleNodeIdentifier:completionHandler:]):\n\nUse `startForcedDisplayRefreshWindowWithInterval` to kick off the forced display refresh mechanism\nfor up to 2 minutes.\n\n* Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeDrawingAreaProxyIOS.h:\n* Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeDrawingAreaProxyIOS.mm:\n(-[WKDisplayLinkHandler displayLinkFired:]):\n(-[WKDisplayLinkHandler startForcedDisplayRefreshWindowWithInterval:duration:]):\n\nAdd a helper method to restart the forced display refresh timer, until the given duration.\n\n(-[WKDisplayLinkHandler _stopForcedDisplayRefresh]):\n(-[WKDisplayLinkHandler _forcedRefreshTimerFired]):\n(-[WKDisplayLinkHandler _needsForcedDisplayRefresh]):\n\nIf the display link is firing normally, make the forced display refresh timer duck out of the way to\navoid unnecessarily rendering updates.\n\n(-[WKDisplayLinkHandler timerFired]):\n(-[WKDisplayLinkHandler invalidate]):\n(WebKit::RemoteLayerTreeDrawingAreaProxyIOS::startForcedDisplayRefreshWindow):\n* Tools/Scripts/webkitpy/api_tests/allowlist.txt:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/TextExtractionTests.mm:\n(TestWebKitAPI::(TextExtractionTests, ClickInteractionWithStalledDisplayLink)):\n\nCanonical link: https://commits.webkit.org/318919@main",
      "email": "wenson_hsieh@apple.com",
      "hash": "389a07672e9c041d41b81f60a1657b47010d2ee4",
      "subject": "iOS: Automatic Password Fixes sometimes stall or time out after the device is locked"
    },
    "318920@main": {
      "author": "Tyler Wilcock",
      "avatar": "https://www.gravatar.com/avatar/9545082e6bed96158a9f52dac6e4b869?d=identicon\u0026s=64",
      "cl": "318920@main",
      "clUrl": "https://commits.webkit.org/318920@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321206\nrdar://184264303\n\nReviewed by Dominic Mazzoni.\n\nCore-AAM adds a normative requirement that when a user agent presents a document as a machine\ntranslation, it must translate ariaNotify() and live region announcements before handing it to\nthe platform, so that assistive technology conveys it in the language that is visually presented.\n\nWebKit did not do this. Safari translates a page by rewriting the DOM through the text manipulation\nSPI, which cannot reach either case. ariaNotify() strings come from script and never enter the DOM,\nand a live region announcement is computed from the DOM and posted on a zero-delay timer, before the\ntranslation round trip replaces the text. The result was announcements spoken in the original\nlanguage, and live regions spoken twice.\n\nAnnouncements are now held in a FIFO queue in AXObjectCache while the embedder is asked to translate\nthem, through a new _WKTranslationDelegate. WebKit cannot translate text itself, instead relying on\nTranslationUIServices, allowing the client to supply it. The client also tells WebKit it's presenting\na translation by setting -_displayedTranslationLocaleIdentifier. With no locale set, the behavior is\nunchanged.\n\nOrdering and failure handling are the substance of the change. Translation requests are issued immediately and\nin parallel, but announcements are released strictly in the order they were produced, so a slow\ntranslation cannot let a later announcement overtake an earlier one. Each entry has a 250ms deadline,\nafter which the original text is announced in its original language, preventing a stalled or unavailable\ntranslation service from blocking announcements outright. A translation client that declines, replies late, or drops\nthe completion handler entirely degrades the same way.\n\nFinally, TextManipulationController now records the container it rewrites, so the children-changed\nthat its own text swap produces does not announce a live region a second time.\n\n* LayoutTests/accessibility/ios-simulator/aria-notify-translated-expected.txt: Added.\n* LayoutTests/accessibility/ios-simulator/aria-notify-translated.html: Added.\n* LayoutTests/accessibility/mac/aria-notify-translated-expected.txt: Added.\n* LayoutTests/accessibility/mac/aria-notify-translated.html: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-dropped-handler-expected.txt: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-dropped-handler.html: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-failure-expected.txt: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-failure.html: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-late-reply-expected.txt: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-late-reply.html: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-not-active-expected.txt: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-not-active.html: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-ordering-expected.txt: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-ordering.html: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-timeout-expected.txt: Added.\n* LayoutTests/accessibility/mac/aria-notify-translation-timeout.html: Added.\n* LayoutTests/accessibility/mac/live-regions/live-region-translated-expected.txt: Added.\n* LayoutTests/accessibility/mac/live-regions/live-region-translated.html: Added.\n* Source/WebCore/accessibility/AXLiveRegionManager.cpp:\n(WebCore::AXLiveRegionManager::postAnnouncementForChange):\n* Source/WebCore/accessibility/AXObjectCache.cpp:\n(WebCore::AXObjectCache::AXObjectCache):\n(WebCore::AXObjectCache::~AXObjectCache):\n(WebCore::AXObjectCache::handleAllDeferredChildrenChanged):\n(WebCore::AXObjectCache::handleChildrenChanged):\n(WebCore::announcementTranslationTimeoutOverrideForTesting):\n(WebCore::AXObjectCache::setAnnouncementTranslationTimeoutForTesting):\n(WebCore::AXObjectCache::announcementTranslationTimeout):\n(WebCore::AXObjectCache::translateAnnouncementThenAssemble):\n(WebCore::AXObjectCache::deferReRenderedContent):\n(WebCore::AXObjectCache::isReRenderedContent const):\n(WebCore::AXObjectCache::announcementTranslationDidComplete):\n(WebCore::AXObjectCache::flushPendingAnnouncements):\n(WebCore::AXObjectCache::scheduleAnnouncementTimeoutTimerIfNeeded):\n(WebCore::AXObjectCache::pendingAnnouncementTimeoutTimerFired):\n(WebCore::AXObjectCache::postARIANotifyNotification):\n* Source/WebCore/accessibility/AXObjectCache.h:\n* Source/WebCore/editing/TextManipulationController.cpp:\n(WebCore::TextManipulationController::replace):\n* Source/WebCore/page/ChromeClient.h:\n(WebCore::ChromeClient::translateAccessibilityAnnouncementStrings):\n* Source/WebCore/page/Page.cpp:\n(WebCore::m_mediaSessionManagerFactory):\n(WebCore::Page::setDisplayedTranslationLocaleIdentifier):\n* Source/WebCore/page/Page.h:\n(WebCore::Page::isPresentingMachineTranslation const):\n* Source/WebCore/page/PageConfiguration.h:\n* Source/WebCore/testing/Internals.cpp:\n(WebCore::Internals::resetToConsistentState):\n(WebCore::Internals::setAccessibilityAnnouncementTranslationTimeout):\n* Source/WebCore/testing/Internals.h:\n* Source/WebCore/testing/Internals.idl:\n* Source/WebKit/Headers.cmake:\n* Source/WebKit/PlatformCocoa.cmake:\n* Source/WebKit/Shared/WebPageCreationParameters.h:\n* Source/WebKit/Shared/WebPageCreationParameters.serialization.in:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:\n(-[WKWebView _translateAccessibilityAnnouncementStrings:sourceLocaleIdentifiers:targetLocaleIdentifier:completionHandler:]):\n(-[WKWebView _translationDelegate]):\n(-[WKWebView _setTranslationDelegate:]):\n(-[WKWebView _displayedTranslationLocaleIdentifier]):\n(-[WKWebView _setDisplayedTranslationLocaleIdentifier:]):\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:\n* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:\n* Source/WebKit/UIProcess/API/Cocoa/_WKTranslationDelegate.h: Added.\n* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:\n* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:\n(WebKit::PageClientImplCocoa::translateAccessibilityAnnouncementStrings):\n* Source/WebKit/UIProcess/PageClient.h:\n(WebKit::PageClient::translateAccessibilityAnnouncementStrings):\n* Source/WebKit/UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::didCommitLoadForFrame):\n(WebKit::WebPageProxy::creationParameters):\n(WebKit::WebPageProxy::displayedTranslationLocaleIdentifier const):\n(WebKit::WebPageProxy::setDisplayedTranslationLocaleIdentifier):\n(WebKit::WebPageProxy::translateAccessibilityAnnouncementStrings):\n* Source/WebKit/UIProcess/WebPageProxy.h:\n* Source/WebKit/UIProcess/WebPageProxy.messages.in:\n* Source/WebKit/UIProcess/WebPageProxyInternals.h:\n* Source/WebKit/WebKit.xcodeproj/project.pbxproj:\n* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:\n(WebKit::WebChromeClient::translateAccessibilityAnnouncementStrings):\n* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:\n* Source/WebKit/WebProcess/WebPage/WebPage.cpp:\n(WebKit::m_allowsImmersiveEnvironments):\n(WebKit::WebPage::setDisplayedTranslationLocaleIdentifier):\n* Source/WebKit/WebProcess/WebPage/WebPage.h:\n* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:\n* Tools/TestWebKitAPI/SourcesCocoa.txt:\n* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/AccessibilityAnnouncementTranslation.mm: Added.\n(TestWebKitAPI::TEST(AccessibilityAnnouncementTranslation, DisplayedTranslationLocaleRoundTripsAndResetsOnNavigation)):\n* Tools/WebKitTestRunner/TestOptions.cpp:\n(WTR::TestOptions::defaults):\n(WTR::TestOptions::keyTypeMapping):\n* Tools/WebKitTestRunner/TestOptions.h:\n(WTR::TestOptions::announcementTranslationMode const):\n(WTR::TestOptions::displayedTranslationLocale const):\n* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:\n(WTR::TestController::finishCreatingPlatformWebView):\n* Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:\n* Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:\n(-[TestRunnerWKWebView initWithFrame:configuration:]):\n(-[TestRunnerWKWebView _webView:translateAccessibilityAnnouncementStrings:sourceLocaleIdentifiers:targetLocaleIdentifier:completionHandler:]):\n\nCanonical link: https://commits.webkit.org/318920@main",
      "email": "tyler_w@apple.com",
      "hash": "2b96b320a28ffc4afb62c90b2e989f1049623194",
      "subject": "AX: Translate accessibility announcements (ARIA Notify, live regions) when the page is presented as a machine translation"
    },
    "318921@main": {
      "author": "Alan Baradlay",
      "avatar": "https://www.gravatar.com/avatar/788d66417db806c567552cfa1ae89f77?d=identicon\u0026s=64",
      "cl": "318921@main",
      "clUrl": "https://commits.webkit.org/318921@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321394\n\nReviewed by Antti Koivisto.\n\nThe two helpers around a block level box's layout in layoutWithFormattingContextForBlockInInline both\nreturn early unless the legacy line clamp state exists, so for line-clamp and max-lines neither runs.\nTwo things follow from that. The block lays out against the container's whole maximumLines, as if the\nlines already on the container's own lines did not exist. And the lines the block produces are never\nadded to the container's count, so the content after it is counted from where the block started.\n\nTake the modern line clamp down the same two steps the legacy one takes. Before the block lays out,\ndrop the lines taken so far from maximumLines in the render tree's line clamp state, which is what\nLineClampUpdater hands a block level box; it does the same for a block level sibling by dropping each\npreceding sibling's line count as it goes. After the block lays out, add the lines it produced to the\ncontainer's count, read from the block's own lineCount().\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/line-clamp/line-clamp-with-block-in-inline-001.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/line-clamp/line-clamp-with-block-in-inline-001-expected.html: Added.\n* Source/WebCore/layout/integration/LayoutIntegrationFormattingContextLayout.cpp:\n(WebCore::LayoutIntegration::updateRenderTreeLineClampBeforeLayout):\n(WebCore::LayoutIntegration::updateIFCLineClampAfterLayout):\n(WebCore::LayoutIntegration::layoutWithFormattingContextForBlockInInline):\n(WebCore::LayoutIntegration::updateRenderTreeLegacyLineClamp): Deleted.\n(WebCore::LayoutIntegration::updateIFCLineClamp): Deleted.\n\nCanonical link: https://commits.webkit.org/318921@main",
      "email": "zalan@apple.com",
      "hash": "90ce1cd277808c7ee2aff9a5f6361029ecd0746e",
      "subject": "[block-in-inline] line-clamp does not count the lines of a block level box on a line"
    },
    "318922@main": {
      "author": "Patrick Griffis",
      "avatar": "https://www.gravatar.com/avatar/2233c3a857004b126158572af9fe36f7?d=identicon\u0026s=64",
      "cl": "318922@main",
      "clUrl": "https://commits.webkit.org/318922@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321453\n\nUnreviewed gardening.\n\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/gtk/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n\nCanonical link: https://commits.webkit.org/318922@main",
      "email": "pgriffis@igalia.com",
      "hash": "e7e67301984da9f013371f79c6e3f6f1dccdc887",
      "subject": "[GTK][WPE] Gardening of tests - 2026-08-10"
    },
    "318923@main": {
      "author": "Sam Weinig",
      "avatar": "https://www.gravatar.com/avatar/354b409240f9fb3357f498c547423d96?d=identicon\u0026s=64",
      "cl": "318923@main",
      "clUrl": "https://commits.webkit.org/318923@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321305\n\nReviewed by Darin Adler and Antti Koivisto.\n\nRemoves the default constructor for CSSToLengthConversionData which was\na bit of foot gun, and allows the element style to always be non-null and\nthus stored as a reference rather than a pointer.\n\nCSSToLengthConversionData's default constructors remaining uses were for invoking\ncanResolveDependenciesWithConversionData() with an empty CSSToLengthConversionData.\nThis idiom has been replaced with a new predicate on ComputedStyleDependencies,\n`isAbsolute()` which does the same thing. To make it a bit more accurate, sibling\nfunctions were added to ComputedStyleDependencies. This is not a change in behavior as\nall callers have invoked the parser in a way that doesn't permit sibling functions,\nbut in the future that is unlikely to always be true.\n\n`isComputationallyIndependent()` could not be used for `isAbsolute()` as the concept\nit is modeling allows viewport-percentage units (and anything else not controlled\nfrom CSS and therefore not capable of causing cycles).\n\nSome additional cleanup was also done in this change:\n\n- Removed unused `tryCreateForNonStyleBuildingResolution` factory functions\n  on `CSSToLengthConversionData`.\n- Renamed `CSSToLengthConversionData::propertyToCompute()` to `CSSToLengthConversionData::property()`.\n- Removed std::optional containing `CSSToLengthConversionData::m_property`,\n  the sentinel value CSSPropertyInvalid works without it.\n- Moved the following methods to `CSSToLengthConversionDataAdaptor`:\n    `CSSToLengthConversionData::computingFontSize()`\n    `CSSToLengthConversionData::computingLineHeight()`\n    `CSSToLengthConversionData::fontCascadeForFontUnits()`\n    `CSSToLengthConversionData::setUsesViewportUnits()`\n    `CSSToLengthConversionData::setUsesContainerUnits()`\n- Removed some unnecessary `Style::` prefixes.\n- Updated comments in StyleLengthResolution.h to accurately represent the\n  current implementations.\n- Changed MQ::FeatureEvaluationContext initializations to use designated\n  initializer syntax.\n\nAlso added a SUPPRESS_NODELETE CSSParserTokenRange::eofToken() which is needed due\nto unified build ordering changes. Previously CSSParserToken.cpp was included in the\nsame translation unit as CSSParserTokenRange, so the constructor bodies for CSSParserToken\nwere visible. Now, they are in different translation units so it can't tell that the\nCSSParserToken constructor is NODELETE, and we don't have syntax to annotate a constructor\nas NODELETE yet.\n\n* Source/WebCore/Sources.txt:\n* Source/WebCore/WebCore.xcodeproj/project.pbxproj:\n* Source/WebCore/animation/BlendingKeyframes.cpp:\n* Source/WebCore/animation/ViewTimelineInsetValue.h:\n* Source/WebCore/css/CSSToLengthConversionData.cpp:\n* Source/WebCore/css/CSSToLengthConversionData.h:\n* Source/WebCore/css/CSSValue.cpp:\n* Source/WebCore/css/CSSValue.h:\n* Source/WebCore/css/ComputedStyleDependencies.cpp: Removed.\n* Source/WebCore/css/ComputedStyleDependencies.h:\n* Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.cpp:\n* Source/WebCore/css/parser/CSSParserTokenRange.cpp:\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Timeline.cpp:\n* Source/WebCore/css/parser/CSSPropertyParserConsumer+Transform.cpp:\n* Source/WebCore/css/query/ContainerQueryFeatures.cpp:\n* Source/WebCore/css/query/GenericMediaQueryTypes.h:\n* Source/WebCore/css/query/MediaQueryEvaluator.cpp:\n* Source/WebCore/css/typedom/numeric/CSSMathValue.cpp:\n* Source/WebCore/style/ContainerQueryEvaluator.cpp:\n* Source/WebCore/style/IfConditionEvaluator.cpp:\n* Source/WebCore/style/values/easing/StyleCubicBezierEasingFunction.cpp:\n* Source/WebCore/style/values/easing/StyleLinearEasingFunction.cpp:\n* Source/WebCore/style/values/easing/StyleSpringEasingFunction.cpp:\n* Source/WebCore/style/values/easing/StyleStepsEasingFunction.cpp:\n* Source/WebCore/style/values/primitives/StyleLengthResolution.cpp:\n* Source/WebCore/style/values/primitives/StyleLengthResolution.h:\n\nCanonical link: https://commits.webkit.org/318923@main",
      "email": "sam@webkit.org",
      "hash": "c1c32c572b9d909aa927f785f09deced3ae853e7",
      "subject": "Remove default constructor for CSSToLengthConversionData"
    },
    "318924@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318924@main",
      "clUrl": "https://commits.webkit.org/318924@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321424\nrdar://184494108\n\nReviewed by Nikolas Zimmermann.\n\nThis patch aligns WebKit with Gecko / Firefox and Blink / Chromium.\n\nclipContextToCSSClippingArea() mapped the clip-path reference box out through\nlocalToParentTransform(), built the basic shape there, then mapped the resulting path back through\nthe inverse. The context is already in the renderer's local coordinate system when this runs -- every\nlegacy paint path applies its own transform before calling prepareToRenderSVGContent() -- and\nclipPathReferenceBox() returns a box in that same space, so the round trip is redundant. It is also\nlossy: mapRect() returns the axis-aligned bounding box, so a 200x100 box rotated 90 degrees becomes\n100x200 and inset(0 100px 0 0) collapses to an empty clip; and absolute lengths resolve at the\nparent's scale, so under scale(2) that same inset trimmed 50 user units rather than 100.\n\n227370@main added the round trip for clip-path on the \u003csvg\u003e root, where the context is in viewBox\ncoordinates while the clip is in CSS coordinates. 281893@main then moved root clip-path handling to\nRenderLayer::setupClipPath() and stopped calling this function for LegacyRenderSVGRoot, leaving the\nround trip with no case to serve.\n\nResolve the shape directly against the reference box, matching the adjacent box path and\nisPointInCSSClippingArea(), which both already treat it as local. Chrome and Firefox agree with the\nnew tests, including the view-box cases, where the box is sized from the nearest viewport but\npositioned in the element's own user space.\n\nNOTE: This bug does not reproduce in Layer Based SVG Engine (LBSE).\n\nTests: imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-container-ref.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-container.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-shape-ref.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-shape.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-scaled-shape-ref.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-scaled-shape.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-rotated-shape-ref.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-rotated-shape.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-scaled-shape-ref.html\n       imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-scaled-shape.html\n\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-container-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-container-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-container.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-shape-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-shape-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-rotated-shape.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-scaled-shape-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-scaled-shape-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-scaled-shape.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-rotated-shape-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-rotated-shape-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-rotated-shape.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-scaled-shape-expected.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-scaled-shape-ref.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-shape-svg-view-box-scaled-shape.html: Added.\n* Source/WebCore/rendering/svg/SVGRenderSupport.cpp:\n(WebCore::SVGRenderSupport::clipContextToCSSClippingArea):\n\nCanonical link: https://commits.webkit.org/318924@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "14f17f50a0e8de21487094c5c395ba6acd655a3c",
      "subject": "[Legacy SVG] CSS clip-path basic-shape is mispositioned on a rotated or scaled SVG element"
    },
    "318925@main": {
      "author": "Lauro Moura",
      "avatar": "https://www.gravatar.com/avatar/6157f52d61e04c2c63fe7ff668ba69b3?d=identicon\u0026s=64",
      "cl": "318925@main",
      "clUrl": "https://commits.webkit.org/318925@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321320\n\nReviewed by Carlos Alberto Lopez Perez.\n\nImported Selenium tests conftest.py does not provide a verbose option,\neffectively hiding the browser and driver output. This makes it harder\nto identify issues that would be otherwise reported by this hidden\noutput. While the service class provides the `log_output` parameter, its\ncreation for the tests is handled within the imported code, in\ncomparison to other scripts like run-mvt-tests.\n\nThis commit adds a pytest plugin that, when --verbose is active,\nmonkeypatches Selenium's Service class (the one that wraps the driver),\nensuring the underlying driver inherits the descriptors from the harness\nif it would be redirected to /dev/null by the original constructor. It\nalso defers importing selenium to the pytest_configure hook, when pytest\nalready configured the path to the vendored selenium used in the\nimported tests.\n\n* Tools/Scripts/webkitpy/webdriver_tests/pytest_runner.py:\n(run):\n* Tools/Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:\n(_BrowserOutputPlugin):\n(_BrowserOutputPlugin.pytest_configure):\n(_BrowserOutputPlugin.pytest_configure.init_inheriting_stdio):\n(WebDriverSeleniumExecutor.__init__):\n(WebDriverSeleniumExecutor.run):\n\nCanonical link: https://commits.webkit.org/318925@main",
      "email": "lmoura@igalia.com",
      "hash": "01e439d2c3498c1cf84d6f62ba07d7c847c3670b",
      "subject": "[WebDriver][Tools] Ensure selenium tests print the driver and browser output"
    },
    "318926@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318926@main",
      "clUrl": "https://commits.webkit.org/318926@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=316546\nrdar://179018498\n\nReviewed by Tim Nguyen.\n\nUpstream commit: https://github.com/web-platform-tests/wpt/commit/54f8f933629e7c010ae98a246729af01f8abcda5\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/js/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/audionodeoptions.js:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/audioparam-testing.js:\n(comparePartialSignals):\n(verifyDiscontinuities):\n(compareSignals):\n(checkResultFunction):\n(createAudioGraphAndTest):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/audit-util.js:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/rendersizehint-robustness-helper.js: Added.\n(const.assertNoNaNOrInfinity):\n(const.createImpulseResponse):\n(const.runQuantumRobustnessTest):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/rendersizehint-testing.js: Added.\n(runRenderSizeHintTests.):\n(runRenderSizeHintTests):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/rms-utils.js: Added.\n(computeRMSFloat):\n(async measureRMSOnceWithFreshScriptProcessor):\n(async waitForRmsEqualToThreshold):\n(async waitForRmsOverThreshold):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/start-stop-exceptions.js:\n(const.testStartStop_W3CTH):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/interrupt-when-hidden.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resources/audiocontext-frame.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resources/intermediate-frame.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resources/media-playback-while-not-visible-utils.js: Added.\n(return.new.Promise):\n(expectIframeAudioContextStateChangeEvent):\n(queryAudioContextState.return.new.Promise):\n(async setUpIframeAudioContextInitialState):\n(hideFrame):\n(showFrame):\n(async createIframe):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/resume-while-hidden.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=cross-origin\u0026frame=direct\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=cross-origin\u0026frame=nested\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=same-origin\u0026frame=direct\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=display-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=visibility-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/suspended-hide-show.tentative.sub_origin=same-origin\u0026frame=nested\u0026visibility=zero-size-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/viewport.tentative.sub.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/viewport.tentative.sub_origin=cross-origin-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/viewport.tentative.sub_origin=same-origin-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/media-playback-while-not-visible-permission-policy/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/processing-model/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/processing-model/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/rendersizehint-smoke-tests.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/rendersizehint-smoke-tests.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/analysernode-rendersizehint.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/analysernode-rendersizehint.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-duration-loop-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-duration-loop-playbackrate-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-duration-loop-playbackrate.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-duration-loop.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-null-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-null.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-dynamic-direction-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-dynamic-direction.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-null-buffer-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-null-buffer.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/looped-constant-buffer-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/looped-constant-buffer.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-playbackstats-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-playbackstats.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-playoutstats.html.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-playoutstats-expected.txt: Removed.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-rendersizehint-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-rendersizehint.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-constructor.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-constructor.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-setsinkid.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-setsinkid.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-state-change.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-state-change.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/resources/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-default-value.window-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-default-value.window.js:\n(test):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-exponentialRampToValueAtTime-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setTargetAtTime-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueAtTime-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurveAtTime.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audiobuffersource-connections.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-rendersizehint.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-param-getter-overridden.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-param-getter-overridden.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processors/rendersizehint-processor.js: Added.\n(RenderSizeHintProcessor):\n(RenderSizeHintProcessor.prototype.process):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processors/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processors/zero-output-processor.js:\n(ZeroOutputProcessor.prototype.process):\n(ZeroOutputProcessor):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquadfilter-rendersizehint.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquadfilter-rendersizehint.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-rendersizehint.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-rendersizehint.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-destinationnode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-destinationnode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-dynamicscompressornode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-dynamicscompressornode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/ctor-gain-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/iir-filter-silent-block-crash.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSource-mediaStreamAudioDestination-stream-crash.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSource_closed_context-crash.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSource_volumeChange-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSource_volumeChange.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/closed-audiocontext-construction-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/closed-audiocontext-construction.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-from-context-with-different-rate.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/silence-detector.js: Added.\n(SilenceDetector):\n(SilenceDetector.prototype.process):\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-rendersizehint-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-rendersizehint.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-suspend-rendersizehint.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-suspend-rendersizehint.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/crashtests/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/offline-hrtf-active-immediately-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/offline-hrtf-active-immediately.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-setposition-throws-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-setposition-throws.html:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/scriptprocessor-rendersizehint.https-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/scriptprocessor-rendersizehint.https.html: Added.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/WEB_FEATURES.yml:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/w3c-import.log:\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/crashtests/w3c-import.log.\n* LayoutTests/imported/w3c/web-platform-tests/webaudio/w3c-import.log:\n* LayoutTests/platform/glib/TestExpectations:\n* LayoutTests/platform/mac/TestExpectations:\n* LayoutTests/platform/wpe/TestExpectations:\n* LayoutTests/tests-options.json:\n\nCanonical link: https://commits.webkit.org/318926@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "0b99ee067b48d93c43d8bb7b375b8c95d64dcc93",
      "subject": "Resync `webaudio` from WPT Upstream"
    },
    "318927@main": {
      "author": "Yusuke Suzuki",
      "avatar": "https://www.gravatar.com/avatar/3455d9081295e3e740c1ffa901217d9b?d=identicon\u0026s=64",
      "cl": "318927@main",
      "clUrl": "https://commits.webkit.org/318927@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321263\nrdar://184313545\n\nReviewed by Sosuke Suzuki.\n\nSince 1-byte element is only having 256 patterns, we can apply\ncounting-sort easily. This patch applies counting-sort to 1-byte element\nTypedArrays.\n\n1. We use 128-size threshold, this is picked based on empirical\n   measurement.\n2. Before starting counting-sort, we scan elements via SIMD to detect\n   \"no sorting is necessary\" case. This is relatively frequently\n   happening in the wild, and cost is cheap.\n3. Then we do counting-sort.\n3.1. We have 4-way histogram to avoid repeated read-update-write in\n     various places to the same places to make pipeline smoother. We do\n     not need to wait for the previous element's update and we can do\n     pipeline with 4-way histogram.\n3.2. Then we scan this and construct the pattern (1) which element\n     exists (2) how many counts. This requires additional one time scan\n     of histogram, but in fact this makes filling faster due to removal\n     of branch prediction miss (typically more than 30% faster).\n3.3. Then we fill the destination array with the accumulated sequence\n     data from 3.2.\n\n                                             ToT                     Patched\n\n    uint8array-sort-large-array       611.3374+-0.7106     ^     51.1908+-0.4178        ^ definitely 11.9423x faster\n    int8array-sort-large-array        611.3211+-0.5981     ^     52.4664+-0.3827        ^ definitely 11.6517x faster\n    uint8array-sort-medium-array      435.9760+-0.7050     ^    120.1770+-1.1086        ^ definitely 3.6278x faster\n    uint8array-sort-small-array       233.2745+-0.4947     ^     92.9591+-1.1352        ^ definitely 2.5094x faster\n    uint8array-sort-presorted         323.2663+-0.5266     ^      8.4205+-0.0350        ^ definitely 38.3902x faster\n    uint8array-sort-low-entropy       170.4761+-0.8698     ^     51.0791+-0.0686        ^ definitely 3.3375x faster\n    uint8array-sort-tiny-array        103.8720+-0.2649     ^    103.2340+-0.3650        ^ definitely 1.0062x faster\n\nTests: JSTests/microbenchmarks/int8array-sort-large-array.js\n       JSTests/microbenchmarks/uint8array-sort-large-array.js\n       JSTests/microbenchmarks/uint8array-sort-low-entropy.js\n       JSTests/microbenchmarks/uint8array-sort-medium-array.js\n       JSTests/microbenchmarks/uint8array-sort-presorted.js\n       JSTests/microbenchmarks/uint8array-sort-small-array.js\n       JSTests/microbenchmarks/uint8array-sort-tiny-array.js\n       JSTests/stress/typed-array-sort-counting-sort.js\n\n* JSTests/microbenchmarks/int8array-sort-large-array.js: Added.\n(nextRandom):\n* JSTests/microbenchmarks/uint8array-sort-large-array.js: Added.\n(nextRandom):\n* JSTests/microbenchmarks/uint8array-sort-low-entropy.js: Added.\n(nextRandom):\n* JSTests/microbenchmarks/uint8array-sort-medium-array.js: Added.\n(nextRandom):\n* JSTests/microbenchmarks/uint8array-sort-presorted.js: Added.\n* JSTests/microbenchmarks/uint8array-sort-small-array.js: Added.\n(nextRandom):\n* JSTests/microbenchmarks/uint8array-sort-tiny-array.js: Added.\n(nextRandom):\n* JSTests/stress/typed-array-sort-counting-sort.js: Added.\n(shouldBe):\n(nextRandom):\n(sortedReference):\n(shouldMatchReference):\n(patterns.random):\n(patterns.identical):\n(patterns.ascending):\n(patterns.descending):\n(patterns.extremes):\n(patterns.twoValues):\n* Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h:\n* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:\n(JSC::JSGenericTypedArrayView\u003cAdaptor\u003e::sort):\n(JSC::JSGenericTypedArrayView\u003cAdaptor\u003e::countingSort):\n(JSC::JSGenericTypedArrayView\u003cAdaptor\u003e::countingSortWithCounters):\n\nCanonical link: https://commits.webkit.org/318927@main",
      "email": "ysuzuki@apple.com",
      "hash": "fedbb7bdc250525145431ecbc2243004bc754fef",
      "subject": "[JSC] Add counting-sort to 1-byte element TypedArrays"
    },
    "318928@main": {
      "author": "Sergey Rubanov",
      "avatar": "https://www.gravatar.com/avatar/d04164fa4e06ce85533085f24c766e17?d=identicon\u0026s=64",
      "cl": "318928@main",
      "clUrl": "https://commits.webkit.org/318928@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=303686\n\nReviewed by Yusuke Suzuki.\n\nBBQ's loop OSR entry rejects a stack pointer at or below the soft limit, and\ncrashes rather than falling back because the IPInt stack is gone by then. The\nslow path compared with a strict less-than, so a stack pointer landing exactly\non the limit passed here and then crashed in BBQ. Reject it here too, and\nreject underflow of the stack-size subtraction. sp is the IPInt operand stack\ninside the callee frame, so it is the lowest address the BBQ frame must fit\nunder.\n\n* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:\n(ipint_extern_loop_osr):\n\nCanonical link: https://commits.webkit.org/318928@main",
      "email": "chi187@gmail.com",
      "hash": "0a704bb74f1ebf85b886913aadb3675581180df7",
      "subject": "[JSC][Wasm] Align IPInt loop OSR stack check with BBQ"
    },
    "318929@main": {
      "author": "Ahmad Saleem",
      "avatar": "https://www.gravatar.com/avatar/38445f84fe28aa19bfeb1f59f6559532?d=identicon\u0026s=64",
      "cl": "318929@main",
      "clUrl": "https://commits.webkit.org/318929@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=320983\nrdar://184016970\n\nReviewed by Sam Sneddon.\n\nwindow.test_driver_internal.action_sequence() threw\n\"does not yet support pause key action\" for any pause action in a key source,\nrejecting the whole sequence. Two kinds of pause reach that code:\n\n- An explicit pause, from test_driver.Actions.prototype.pause(duration, \"key\").\n- An implicit one: KeySource.serialize() in testdriver-actions.js pads every\n  tick in which the key source has no action of its own with\n  {type: \"pause\"} and no duration. Such a pause has nothing to wait for, so\n  the test never asked for a delay at all, yet the sequence was rejected.\n\nDo what the FIXME suggested and translate a pause with a duration into an\neventSender.leapForward(), the same way pauses from the \"none\" source are\nalready injected below, and treat a pause with no duration as a no-op.\n\nThis matches Blink's testdriver-vendor.js, which likewise awaits the pause\nrather than failing.\n\nThe test calls test_driver.action_sequence() with a hand-written source list\ninstead of building one with test_driver.Actions, because a padding pause\nneeds a second source occupying ticks and the only such combination, a key\nsource alongside a pointer source, is rejected earlier as unsupported: no\nActions chain in the tree reaches this code path. It covers a pause with a\nduration and a padding pause without one, and fails with the rejection above\nbefore this change. Since infrastructure/testdriver is skipped as a directory\nfor needing an interactive window, opt this one test back in; it does not.\n\nSkip it on iOS: there, action_sequence() dispatches key actions from a UI\nscript that references eventSender, which does not exist in the UI-script\ncontext, and uiController has no leapForward equivalent, so a key source\nresolves without dispatching anything. That is pre-existing and unrelated to\nthis change, which is why the existing key-driven tests such as\nshadow-dom/accesskey.tentative.html are already skipped there.\n\n* LayoutTests/TestExpectations:\n* LayoutTests/imported/w3c/web-platform-tests/infrastructure/testdriver/key-source-pause-expected.txt: Added.\n* LayoutTests/imported/w3c/web-platform-tests/infrastructure/testdriver/key-source-pause.html: Added.\n* LayoutTests/platform/ios/TestExpectations:\n* LayoutTests/resources/testdriver-vendor.js:\n(window.test_driver_internal.action_sequence):\n\nCanonical link: https://commits.webkit.org/318929@main",
      "email": "ahmad.saleem792+github@gmail.com",
      "hash": "acdddb0cc38fddbd787d1ef56f0fb64ccd2b51bd",
      "subject": "testdriver-vendor.js rejects action sequences containing a pause in a key source"
    },
    "318930@main": {
      "author": "Chris Dumez",
      "avatar": "https://www.gravatar.com/avatar/a9f21fe3a8baf79b45f3c91572187bdc?d=identicon\u0026s=64",
      "cl": "318930@main",
      "clUrl": "https://commits.webkit.org/318930@main",
      "description": "https://bugs.webkit.org/show_bug.cgi?id=321064\n\u003crdar://problem/183139377\u003e\n\nReviewed by Yusuke Suzuki.\n\nPer the \"is-error\" proposal and WebIDL PR #1421, DOMException has the\n[[ErrorData]] internal slot, so Error.isError(new DOMException()) must\nreturn true. This matches Chrome and Firefox.\n- https://github.com/tc39/proposal-is-error/issues/9\n- https://github.com/whatwg/webidl/pull/1421\n\nWe give DOMException the [[ErrorData]] slot by making its JS wrapper a\ngenuine JSC::ErrorInstance subclass (JSType ErrorInstanceType). Its\nprototype already chains to Error.prototype (a pre-existing effect of the\n[Exception] IDL attribute), so new DOMException() is now an Error in every\nrespect: Error.isError() and `instanceof Error` return true, and the\nexisting ErrorIsErrorIntrinsic recognizes it in the DFG/FTL with no\nspecial casing. This also covers DOMException's subclasses (WebTransportError,\nGPUPipelineError, RTCError, OverconstrainedError).\n\nA new JSDOMErrorWrapper\u003cT\u003e base (analogous to JSDOMEmbedderArrayLikeWrapper)\nholds the impl Ref and derives from ErrorInstance. It deliberately skips\nErrorInstance::finishCreation so it neither captures a JS stack trace nor\nadds own \"message\"/\"stack\" properties; DOMException's WebIDL attributes and\nError.prototype provide its surface, so its property set is unchanged. The\ncode generator routes [Exception] interfaces to this base, gives them an\nErrorInstanceType structure, and, because ErrorInstance needs destruction\nbut is not a JSDestructibleObject, allocates them in a subspace with a\nper-class custom IsoHeapCellType, declared alongside the existing ones in\nJSHeapData. ErrorInstance's constructor and property method-table entries\nare exported so WebCore can subclass it.\n\nBecause a DOMException is now an ErrorInstance, WebCore's exception reporting\n(retrieveErrorMessage / retrieveErrorMessageWithoutName) must describe it from its\nWebIDL name/message rather than ErrorInstance::sanitizedToString, which only reads\nown data properties (DOMException exposes name/message as inherited getters). Those\nfunctions now check for JSDOMException before ErrorInstance.\n\nStructured clone must also serialize a DOMException as a DOMException rather than as\na generic Error: CloneSerializerBase::dumpIfTerminal now gives the embedder's\ndumpDerivedTerminal first refusal before its generic ErrorInstance path, so DOMException\n(and its subclasses) still round-trip through postMessage with the correct name/code.\n\nOne consequence: Object.prototype.toString.call(domException) now reports\n\"[object Error]\" once DOMException.prototype's @@toStringTag has been\ndeleted (it has [[ErrorData]], so that is the spec result). This differs\nfrom Chrome and Firefox, which still report \"[object Object]\".\n\n* LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-is-error.any-expected.txt:\n* LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-is-error.any.worker-expected.txt:\n* LayoutTests/js/dom/dom-exception-is-error-expected.txt: Added.\n* LayoutTests/js/dom/dom-exception-is-error.html: Added.\n* LayoutTests/js/dom/script-tests/dom-exception-is-error.js: Added.\n* LayoutTests/js/dom/dom-exception-tostringtag-expected.txt: Added.\n* LayoutTests/js/dom/dom-exception-tostringtag.html: Added.\n* Source/JavaScriptCore/runtime/CloneSerializerBase.h:\n* Source/JavaScriptCore/runtime/ErrorInstance.cpp:\n(JSC::ErrorInstance::finishCreation):\n* Source/JavaScriptCore/runtime/ErrorInstance.h:\n* Source/WebCore/bindings/js/JSDOMExceptionHandling.cpp:\n(WebCore::retrieveErrorMessageWithoutName):\n(WebCore::retrieveErrorMessage):\n* Source/WebCore/bindings/js/JSDOMWrapper.h:\n* Source/WebCore/bindings/js/WebCoreJSClientData.cpp:\n* Source/WebCore/bindings/js/WebCoreJSClientData.h:\n* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:\n(GetParentClassName):\n(GenerateImplementation):\n* Source/WebCore/bindings/scripts/test/BindingTestGlobalConstructors.idl:\n* Source/WebCore/bindings/scripts/test/SupplementalDependencies.dep:\n* Source/WebCore/bindings/scripts/test/TestExceptionSubclass.idl: Added.\n* Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp:\n* Source/WebCore/bindings/scripts/test/JS/JSTestException.h:\n* Source/WebCore/bindings/scripts/test/JS/JSTestExceptionSubclass.cpp: Added.\n* Source/WebCore/bindings/scripts/test/JS/JSTestExceptionSubclass.h: Added.\n* Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp:\n\nCanonical link: https://commits.webkit.org/318930@main",
      "email": "cdumez@apple.com",
      "hash": "c0625bcafb6cc6cf5774ecbeb47ca330fe4f0cf6",
      "subject": "Error.isError() should return true for DOMException"
    }
  },
  "date": "2026-08-10",
  "days": 1,
  "generatedAt": "2026-08-10T22:06:29Z",
  "markdown": "## Highlights\n- **Rendering** A big block-in-inline cleanup fixes line-clamp, hit testing, overflow, selection, autosizing, bidi, and positioning edge cases that have been splintering modern layout behavior. [commit 318921@main](https://commits.webkit.org/318921@main)\n- **A11y** Accessibility announcements now follow machine-translated page language, so ARIA live regions and notifications are spoken in the language users actually hear. [commit 318920@main](https://commits.webkit.org/318920@main)\n- **DevTools** Web Inspector now exposes canvas and WebGL memory usage, making graphics memory debugging much less guessy. [commit 318915@main](https://commits.webkit.org/315915@main)\n- **Perf** JavaScriptCore adds counting sort for 1-byte TypedArrays, a targeted speedup for common small-width binary data paths. [commit 318927@main](https://commits.webkit.org/318927@main)\n- **Rendering** SVG and LBSE picked up several hot-path fixes, including less repeated animateMotion path walking and less paint server churn during layout and painting. [commit 318880@main](https://commits.webkit.org/318880@main)\n- **Media** Web Audio got a dense batch of correctness and leak fixes across ConvolverNode, reverse playback, ramps, and AudioNode teardown. [commit 318867@main](https://commits.webkit.org/318867@main)\n- **Web Platform** Error.isError() now returns true for DOMException, bringing WebKit into line with the modern JavaScript error model visible to web apps. [commit 318930@main](https://commits.webkit.org/318930@main)\n- **Security** JavaScriptCore tightened several Wasm parsing and limit checks, including memory-related parsing behavior and memory64 runtime rejection rules. [commit 318876@main](https://commits.webkit.org/318876@main)\n- **Mobile** iOS automatic password fixes no longer stall after device lock, closing a nasty real-world reliability failure in credential workflows. [commit 318919@main](https://commits.webkit.org/318919@main)\n\n## What landed by area\n\n### JavaScriptCore and Wasm\n- **Perf** JSC aligns the IPInt loop OSR stack check with BBQ for more consistent Wasm tiering behavior. [commit 318928@main](https://commits.webkit.org/318928@main)\n- **Perf** Scope access now avoids repeated OSR exits in op_get_from_scope and op_put_to_scope. [commit 318918@main](https://commits.webkit.org/318918@main)\n- **Web Platform** Temporal duration rounding now decides exact-integer cases without going through doubles. [commit 318901@main](https://commits.webkit.org/318901@main)\n- **Refactor** Temporal code drops undefined behavior, tightens a loose bound, and removes dead code. [commit 318900@main](https://commits.webkit.org/318900@main)\n- **Build** JavaScriptCore standardizes on `inline constexpr` spelling. [commit 318899@main](https://commits.webkit.org/318899@main)\n- **Security** JSC fixes memory-related Wasm parsing behavior. [commit 318876@main](https://commits.webkit.org/318876@main)\n- **Web Platform** import-defer is updated to match the latest proposal shape. [commit 318875@main](https://commits.webkit.org/318875@main)\n- **Security** memory64 now accepts large page counts during parsing but rejects invalid creation at runtime. [commit 318874@main](https://commits.webkit.org/318874@main)\n- **Perf** YARR reads raw code units for surrogate-free BMP character classes in unicode mode. [commit 318881@main](https://commits.webkit.org/318881@main)\n- **Perf** The YARR interpreter now skips once-through alternatives correctly after advancing the start position. [commit 318872@main](https://commits.webkit.org/318872@main)\n- **Security** Wasm limit numbers were adjusted and fixed to tighten engine boundaries. [commit 318917@main](https://commits.webkit.org/318917@main)\n\n### Layout, CSS, and rendering\n- **Rendering** break-spaces minimum content sizing no longer has to run full line layout just to compute intrinsic width. [commit 318914@main](https://commits.webkit.org/318914@main)\n- **Web Platform** CSS custom properties now treat var() as an arbitrary substitution function, matching the spec more closely. [commit 318912@main](https://commits.webkit.org/318912@main)\n- **Rendering** Selection gaps around block-level content on a line are now filled correctly. [commit 318911@main](https://commits.webkit.org/318911@main)\n- **Rendering** List-based hit testing no longer reports the container before an earlier block-level box on a line. [commit 318909@main](https://commits.webkit.org/318909@main)\n- **Rendering** Excluded list markers now align to the first text line instead of the block-level box on the line. [commit 318908@main](https://commits.webkit.org/318908@main)\n- **Rendering** Block-level boxes on a line now contribute the right margin box to container overflow. [commit 318906@main](https://commits.webkit.org/318906@main)\n- **Rendering** Relatively positioned inlines now alone offset their out-of-flow children by line position. [commit 318897@main](https://commits.webkit.org/318897@main)\n- **Rendering** A block-level box on a line correctly disables text-wrap: balance for the affected container. [commit 318893@main](https://commits.webkit.org/318893@main)\n- **Rendering** Outside list markers no longer force broken inline child behavior in list items. [commit 318891@main](https://commits.webkit.org/318891@main)\n- **Rendering** direction on ::marker now places the marker box on the correct side of the list item. [commit 318888@main](https://commits.webkit.org/318888@main)\n- **Rendering** Highlights on the line after a block-level box no longer paint across that box's margin. [commit 318887@main](https://commits.webkit.org/318887@main)\n- **Rendering** Block-level boxes on a line now start paragraphs correctly for unicode-bidi: plaintext and text-indent: each-line. [commit 318886@main](https://commits.webkit.org/318886@main)\n- **Rendering** Scrollable overflow from a block-level box on a line is now reported from the correct geometry. [commit 318885@main](https://commits.webkit.org/318885@main)\n- **Mobile** Text autosizing no longer mistakes a block-level box on a line for a line of text. [commit 318884@main](https://commits.webkit.org/318884@main)\n- **Web Platform** ViewTimelineOptions.inset now rejects script-passed lengths that are not computationally independent. [commit 318883@main](https://commits.webkit.org/318883@main)\n- **Rendering** Background images now repaint when only the URL fragment changes. [commit 318879@main](https://commits.webkit.org/318879@main)\n- **Refactor** CSSToLengthConversionData no longer has a default constructor, tightening call sites. [commit 318923@main](https://commits.webkit.org/318923@main)\n\n### SVG, canvas, and graphics\n- **Rendering** Legacy SVG clip-path basic-shape positioning is fixed for rotated and scaled SVG elements. [commit 318924@main](https://commits.webkit.org/318924@main)\n- **Rendering** Legacy SVG clip-path basic-shape positioning is also fixed for foreignObject with non-zero x/y. [commit 318904@main](https://commits.webkit.org/318904@main)\n- **Perf** LBSE now caches SVG fill and stroke paint servers on the renderer. [commit 318882@main](https://commits.webkit.org/318882@main)\n- **Perf** SVG animateMotion no longer walks the animation path up to four times per frame. [commit 318880@main](https://commits.webkit.org/318880@main)\n- **Perf** Gradient and pattern brushes now skip unnecessary fill and stroke CGColor conversion. [commit 318878@main](https://commits.webkit.org/318878@main)\n- **Perf** LBSE no longer rebuilds objectBoundingBox gradients on layout size changes. [commit 318873@main](https://commits.webkit.org/318873@main)\n- **Rendering** Canvas float16 now uses an extended DestinationColorSpace, improving HDR and wide-gamut correctness. [commit 318864@main](https://commits.webkit.org/318864@main)\n\n### Accessibility\n- **A11y** Text marker range strings for table cells and form controls now stay in sync with the main thread. [commit 318910@main](https://commits.webkit.org/318910@main)\n- **A11y** An append queued after subtree removal is no longer dropped as stale in the accessibility tree update pipeline. [commit 318905@main](https://commits.webkit.org/318905@main)\n- **A11y** More tests now run with the isolated-tree flag enabled, expanding coverage for the newer accessibility architecture. [commit 318871@main](https://commits.webkit.org/318871@main)\n\n### Media and audio\n- **Media** Setting ConvolverNode.buffer to null now actually releases the impulse response. [commit 318870@main](https://commits.webkit.org/318870@main)\n- **Media** Reverse playback of very large buffers no longer extrapolates outside source samples. [commit 318869@main](https://commits.webkit.org/318869@main)\n- **Media** A zero-duration exponentialRampToValueAtTime() at a non-frame-aligned time no longer renders NaN. [commit 318868@main](https://commits.webkit.org/318868@main)\n- **Media** BaseAudioContext::clear() no longer leaks AudioNodes marked for deletion during uninitialize(). [commit 318867@main](https://commits.webkit.org/318867@main)\n- **Media** Web Audio tests were resynced from upstream WPT, pulling current interoperability expectations forward. [commit 318926@main](https://commits.webkit.org/318926@main)\n- **Media** A known site-isolation Web Audio session test is now treated as a permanent failure instead of noisy churn. [commit 318865@main](https://commits.webkit.org/318865@main)\n\n### DevTools, WebDriver, and tooling\n- **DevTools** Selenium test runs now print driver and browser output, which should cut time-to-diagnosis on flaky automation. [commit 318925@main](https://commits.webkit.org/318925@main)\n- **DevTools** WPE's run-mvt-tests now enables Selenium browser logs by default. [commit 318892@main](https://commits.webkit.org/318892@main)\n- **Refactor** testdriver-vendor.js now rejects invalid action sequences containing a pause in a key source. [commit 318929@main](https://commits.webkit.org/318929@main)\n- **Security** GLib WebDriver work addresses flaky WPEWebProcess portal crashes during eager JSWindowProxy creation. [commit 318898@main](https://commits.webkit.org/318898@main)\n\n### Platform, build, and infrastructure\n- **Build** CMake files were updated for CMake 4 compatibility. [commit 318903@main](https://commits.webkit.org/318903@main)\n- **Build** RISC-V build errors were fixed. [commit 318902@main](https://commits.webkit.org/318902@main)\n- **Build** A conflicting-tests build issue was fixed. [commit 318896@main](https://commits.webkit.org/318896@main)\n- **Build** WKCI on WPE fixes a race involving podman while shared SDK image directories update. [commit 318894@main](https://commits.webkit.org/318894@main)\n- **Mobile** iOS password autofix recovery after device lock is now more reliable. [commit 318919@main](https://commits.webkit.org/318919@main)\n- **UI** A regression that blocked merging cherry-pick PRs in stable branches was fixed. [commit 318916@main](https://commits.webkit.org/318916@main)\n\n### Reliability and memory safety\n- **Security** Vector gets crashIfBorrowed, adding a harder failure mode for misuse of borrowed storage. [commit 318890@main](https://commits.webkit.org/318890@main)\n- **Security** Borrow and BorrowedBytes bugs were fixed, tightening memory lifetime handling in shared infrastructure. [commit 318889@main](https://commits.webkit.org/318889@main)\n- **Build** A flaky crash in wasm serialization WPT on macOS Release was gardened. [commit 318913@main](https://commits.webkit.org/318913@main)\n- **Build** GTK and WPE test gardening rolled through another batch of expected-failure cleanup. [commit 318922@main](https://commits.webkit.org/318922@main)\n- **Build** GLib layout test gardening landed another platform-specific cleanup pass. [commit 318877@main](https://commits.webkit.org/318877@main)",
  "repo": "webkit",
  "repoDisplay": "WebKit",
  "rollGroups": [
    {
      "name": "Versioning.",
      "count": 1
    },
    {
      "name": "Unreviewed",
      "count": 1
    }
  ],
  "since": "2026-08-10",
  "totals": {
    "commits": 67,
    "features": 65,
    "rolls": 2
  },
  "until": "2026-08-10"
}