shvaikalesh
Repos
20
Followers
243
Following
5

Official ECMAScript Conformance Test Suite

1968
391

Status, process, and documents for ECMA-262

13889
1101

Test suites for Web platform specs — including WHATWG, W3C, and others

4187
2482

Core of Shower HTML presentation engine

100
36

:fork_and_knife: Web applications made easy. Since 2011.

6838
407

HTML5 application architecture using Backbone.js

2868
228

Events

issue comment
REGRESSION(259372@main): ASSERTION FAILED: !m_disabledFieldsetElementsCount on fast/forms/fieldset/fieldset-elements.html

Thank you Ryosuke!

Created at 3 days ago
create branch
shvaikalesh create branch bug-251296
Created at 3 days ago
pull request opened
REGRESSION(259372@main): ASSERTION FAILED: !m_disabledFieldsetElementsCount on fast/forms/fieldset/fieldset-elements.html

75308750dc82f07df2b1120d71d555381d28b38f

Created at 3 days ago

WebKit export of https://bugs.webkit.org/show_bug.cgi?id=250936 (#38197)

Created at 1 week ago
pull request closed
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=250936

This WebKit-reviewed test ensure that form controls in disconnected subtrees update validity status of their <fieldset> ancestors.

Created at 1 week ago
issue comment
Disconnected <fieldset> elements sometimes incorrectly match :valid / :invalid selectors

Thanks Ryosuke!

WPT: https://github.com/web-platform-tests/wpt/pull/38197 (should get reviewed and merged automatically)

Created at 1 week ago
pull request opened
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=250936

This WebKit-reviewed test ensure that form controls in disconnected subtrees update validity status of their <fieldset> ancestors.

Created at 1 week ago
create branch
shvaikalesh create branch webkit-export-bug-250936
Created at 1 week ago

WebKit export of https://bugs.webkit.org/show_bug.cgi?id=251097 (#38174)

Created at 1 week ago
pull request closed
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=251097

This WebKit-reviewed tests ensure that formDisabledCallback() isn't called when disabled-ness hasn't actually changed (e.g. with <fieldset disabled> ancestor).

Created at 1 week ago
issue comment
formDisabledCallback() sometimes fires even when disabled-ness hasn't changed

Thanks Ryosuke!

WPT: https://github.com/web-platform-tests/wpt/pull/38174 (should get reviewed and merged automatically)

Created at 1 week ago

formDisabledCallback() sometimes fires even when disabled-ness hasn't changed https://bugs.webkit.org/show_bug.cgi?id=251097

Reviewed by NOBODY (OOPS!).

This change:

  1. Replaces disabledAttributeChanged() hook, which was only used by , with hasDisabledAttribute() protected method, removing a virtual call and reducing sizeof(HTMLFieldSetElement) by 8.
  2. Extracts setDisabledInternal() so that disabledStateChanged() hook is called only when disabled-ness is actually changed, always taking into account m_disabledByAncestorFieldset.

The latter wasn't a huge issue before form-associated custom elements were introduced, whose disabledAttributeChanged() calls into userland JS code, yet even apart from that, this change eliminates redundant work for native controls and even makes psedo-class invalidation more precise, reducing matches{Valid,Invalid}PseudoClass() calls.

Also, moving the pseudo-class invalidation into a single function paves the way for a follow-up patch that will invalidate a few more selectors to match the spec.

Aligns WebKit with Blink and Gecko.

  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/form-associated/form-disabled-callback-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/form-associated/form-disabled-callback.html:
  • Source/WebCore/html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::~HTMLFieldSetElement): (WebCore::HTMLFieldSetElement::parseAttribute): (WebCore::HTMLFieldSetElement::didMoveToNewDocument): (WebCore::HTMLFieldSetElement::disabledAttributeChanged): Deleted.
  • Source/WebCore/html/HTMLFieldSetElement.h:
  • Source/WebCore/html/ValidatedFormListedElement.cpp: (WebCore::ValidatedFormListedElement::setDisabledByAncestorFieldset): (WebCore::ValidatedFormListedElement::setDisabledInternal): (WebCore::ValidatedFormListedElement::parseDisabledAttribute): (WebCore::ValidatedFormListedElement::syncWithFieldsetAncestors): (WebCore::ValidatedFormListedElement::removedFromAncestor): (WebCore::ValidatedFormListedElement::disabledAttributeChanged): Deleted.
  • Source/WebCore/html/ValidatedFormListedElement.h: (WebCore::ValidatedFormListedElement::hasDisabledAttribute const):
Created at 1 week ago
pull request opened
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=251097

This WebKit-reviewed tests ensure that formDisabledCallback() isn't called when disabled-ness hasn't actually changed (e.g. with <fieldset disabled> ancestor).

Created at 1 week ago
create branch
shvaikalesh create branch webkit-export-bug-251097
Created at 1 week ago
create branch
shvaikalesh create branch bug-251097
Created at 1 week ago
pull request opened
formDisabledCallback() fires even if disabled-ness hasn't changed

c3bb6b872dbdbfac4b549c5cd9df7a501caa58c4

Created at 1 week ago
create branch
shvaikalesh create branch fix-250936
Created at 1 week ago
pull request opened
Disconnected <fieldset> elements sometimes incorrectly match :valid / :invalid selectors

8f5f7844977130991559ed62d4baeb4ced5b2329

Created at 1 week ago

REGRESSION (Safari 14-16): Duplicated CR-LF in textarea with wrap="hard" https://bugs.webkit.org/show_bug.cgi?id=249923 rdar://problem/103870498

Reviewed by Antti Koivisto.

This was caused by a slight confusion of when legacy line layout sets "endsWithBreak" on a line. While initially this bit was introduced for (previousLineBrokeAtBR), over time it turned into a "any type of line break" bit. skipToNextSoftLineBreakPosition now checks for "any line break" and also ignores the last line.

  • Source/WebCore/html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):

Canonical link: https://commits.webkit.org/258830@main

[webkitbugspy] Access issue milestone https://bugs.webkit.org/show_bug.cgi?id=250493 rdar://104147220

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py: (Tracker.populate): Extract milestone from GitHub response.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py: (Issue.init): Add _milestone member variable. (Issue.milestone): Populate _milestone, if not already done. Treat empty milestone as None.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/data.py: Add milestones.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py: (GitHub._issue): Include milestone in response. (GitHub._create): Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py: (RadarModel.Milestone): Add. (RadarModel.init): Use mock Milestone class.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py: (Tracker.populate): Extrat milestone from Radar object.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py: (test_milestone):
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py: (test_milestone):
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py: (test_milestone):

Canonical link: https://commits.webkit.org/258831@main

[webkitbugspy] GitHub returns strings in errors list https://bugs.webkit.org/show_bug.cgi?id=250483 rdar://104142306

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py: (Tracker.parse_error): Handle strings in error lists.

Canonical link: https://commits.webkit.org/258832@main

[git-webkit] Resolve multiple cherry-picks https://bugs.webkit.org/show_bug.cgi?id=250468 rdar://104132930

Reviewed by Aakash Jain.

Double cherry-picks are confusing, and in most cases, both unneeded and unhelpful. Tooling should strongly encourage direct cherry-picks.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/cherry_pick.py: (CherryPick.parser): Add the '--resolve' and '--no-resolve' options. (CherryPick.main): If the specified commit has an original, cherry-pick the original instead of having a double cherry-pick.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/cherry_pick_unittest.py: (TestCherryPick.test_resolve): (TestCherryPick.test_no_resolve):

Canonical link: https://commits.webkit.org/258833@main

Rebaseline(255215@main): [ macOS arm64 ] 2X imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any(Layout tests) are constant failures https://bugs.webkit.org/show_bug.cgi?id=246278 rdar://problem/100981592

Reviewed by Eric Carlson.

Make sure to close explicitly VideoFrame to not trigger console warnings.

  • LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any.js:

Canonical link: https://commits.webkit.org/258834@main

Add support for inbound rtp trackIdentifier stat field https://bugs.webkit.org/show_bug.cgi?id=250450 rdar://problem/104118773

Expose trackIdentifier and remove receiverId. This is needed as track stats might be removed in the future.

Reviewed by Eric Carlson.

  • LayoutTests/webrtc/video-stats.html:
  • Source/WebCore/Modules/mediastream/RTCStatsReport.h:
  • Source/WebCore/Modules/mediastream/RTCStatsReport.idl:
  • Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: (WebCore::fillInboundRtpStreamStats):

Canonical link: https://commits.webkit.org/258835@main

Clean up PlatformCAFilters https://bugs.webkit.org/show_bug.cgi?id=250509

Reviewed by Simon Fraser.

PlatformCAFilters has a USE_CA_FILTERS compile-time flag that can no longer be false on Cocoa ports and the notion of an "internalFilterPropertyIndex" which is no longer relevant without USE_CA_FILTERS.

The removal of internalFilterPropertyIndex percolates up to GraphicsLayerCA since it was used for animation purposes, so we remove any trace of an animation "sub-index" there too.

  • Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations): (WebCore::GraphicsLayerCA::createAnimationFromKeyframes): (WebCore::GraphicsLayerCA::appendToUncommittedAnimations): (WebCore::GraphicsLayerCA::setFilterAnimationEndpoints): (WebCore::GraphicsLayerCA::setFilterAnimationKeyframes): (WebCore::GraphicsLayerCA::dumpAnimations):
  • Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation): (WebCore::GraphicsLayerCA::LayerPropertyAnimation::animationIdentifier const):
  • Source/WebCore/platform/graphics/ca/PlatformCAAnimation.h:
  • Source/WebCore/platform/graphics/ca/PlatformCAFilters.h:
  • Source/WebCore/platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.h:
  • Source/WebCore/platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: (WebCore::PlatformCAAnimationCocoa::setFromValue): (WebCore::PlatformCAAnimationCocoa::setToValue): (WebCore::PlatformCAAnimationCocoa::setValues):
  • Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: (WebCore::PlatformCAFilters::setFiltersOnLayer): (WebCore::PlatformCAFilters::filterValueForOperation): (WebCore::PlatformCAFilters::colorMatrixValueForFilter): (WebCore::PlatformCAFilters::setBlendingFiltersOnLayer): (WebCore::PlatformCAFilters::isAnimatedFilterProperty): (WebCore::PlatformCAFilters::animatedFilterPropertyName): (WebCore::PlatformCAFilters::numAnimatedFilterProperties): Deleted.
  • Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp: (PlatformCAAnimationWin::setFromValue): (PlatformCAAnimationWin::setToValue): (PlatformCAAnimationWin::setValues):
  • Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.h:
  • Source/WebCore/platform/graphics/ca/win/PlatformCAFiltersWin.cpp: (PlatformCAFilters::setFiltersOnLayer): (PlatformCAFilters::isAnimatedFilterProperty): (PlatformCAFilters::animatedFilterPropertyName): (PlatformCAFilters::numAnimatedFilterProperties): Deleted.
  • Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
  • Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: (WebKit::PlatformCAAnimationRemote::setFromValue): (WebKit::PlatformCAAnimationRemote::setToValue): (WebKit::PlatformCAAnimationRemote::setValues): (WebKit::animationValueFromKeyframeValue):

Canonical link: https://commits.webkit.org/258836@main

[Cocoa] Encrypted media playback fails with "ContentKey support for SampleBuffer Renderers" enabled https://bugs.webkit.org/show_bug.cgi?id=250473 rdar://104044401

Reviewed by Eric Carlson.

When this feature is enabled, decryption information is no longer attached at parse time, and instead needs to be attached at display time. However VTDecompressionSession cannot be used along with AVContentKeySession, and no frames are emitted from the session. This leads to a failure to seek, since the seek operation cannot complete until there is an image to display for the new current time.

When a CDMInstance is attached to the MediaPlayer, reconsider whether to create a AVSBDL or a decompression session, and always create the layer if there is a valid instance attached.

  • Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::shouldEnsureLayer const): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmInstanceAttached): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmInstanceDetached):

Canonical link: https://commits.webkit.org/258837@main

Remove incorrect FIXME about HTMLPreElement.width type

Remove incorrect FIXME about HTMLPreElement.width type https://bugs.webkit.org/show_bug.cgi?id=250274

Reviewed by Aditya Keerthi.

This patch is to remove incorrect FIXME, which mentions about 'width' attribute to be DOMString and referring to old bug. While using the test case from reference bug, 'width' attribute is 'number' type and same as other browsers (Firefox & Chrome).

Hence, it is an incorrect comment and this patch is to remove it.

  • Source/WebCore/html/HTMLPreElement.idl: Remove 'FIXME'

Canonical link: https://commits.webkit.org/258838@main

AX: Remove obsolete comment in AXIsolatedTree::updateChildren regarding subtree removals https://bugs.webkit.org/show_bug.cgi?id=250503 rdar://problem/104156450

Reviewed by Chris Fleizach.

This comment in AXIsolatedTree::updateChildren regarding subtree removal behavior was obsoleted by this commit:

https://github.com/WebKit/WebKit/commit/755fc266ed7bbbbcd5505c9e842d89caf9796c19

Because the referenced variable (idsBeingChanged) was obsoleted by checking m_unresolvedPendingAppends in AXIsolatedTree::removeSubtreeFromNodeMap (which accomplishes the same thing).

Also, move the objectID().isValid() check performed before calling removeSubtreeFromNodeMap to removeSubtreeFromNodeMap itself. This makes AXIsolatedTree::updateChildren less dense, and improves the logging generated by removeSubtreeFromNodeMap as it will no longer log "Tried to remove AXID 0 that is no longer in m_nodeMap." for invalid IDs.

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateChildren): (WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):

Canonical link: https://commits.webkit.org/258839@main

imported/w3c/web-platform-tests/fs/FileSystemBaseHandle-postMessage-MessagePort-windows.https.window.html is a flaky failure https://bugs.webkit.org/show_bug.cgi?id=250499 rdar://104154652

Reviewed by Tim Nguyen.

In current implementation, message-target.html could post a "LOADED" message to itself. However, it does not know how to handle "LOADED" message, and it would send a "ERROR" message to the source (itself) when it receives an unexpected message (as shown in add_message_event_handlers() in message-target.js). Since it does not know how to handle "ERROR" message too, it would keep posting this message to itself. For the flaky test, this means the child window created in a previous subtest could become the entry global object for code in a subsequent subtest, leading to unexpected result. For example, parsed url in window.open() can change when entry global object is different; see window open steps in https://html.spec.whatwg.org/multipage/nav-history-apis.html#window-open-steps.

To fix this issue, make sure message-target.html does not post "LOADED" message to itself.

  • LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/fs/resources/message-target.html:

Canonical link: https://commits.webkit.org/258840@main

[WPE] Gardening accessibility/custom-elements/pressed.html

Unreviewed test gardening.

  • LayoutTests/platform/glib/accessibility/custom-elements/pressed-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/custom-elements/pressed-expected.txt.

Canonical link: https://commits.webkit.org/258841@main

REGRESSION(258307@main) ASSERTION FAILED: scale == [webView->_scrollView zoomScale] https://bugs.webkit.org/show_bug.cgi?id=250484 rdar://104142370

Reviewed by Wenson Hsieh and Saam Barati.

  • Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm: (contentZoomScale): After 258307@main, this function will still return the correct value, but the assertion will never be true while the resizeAnimationView is installed.

Adjust the assertion to ignore this case.

Canonical link: https://commits.webkit.org/258842@main

Crash when using appearance: meter with a pseudo-element not backed by PseudoElement https://bugs.webkit.org/show_bug.cgi?id=250488 rdar://104118606

Reviewed by Tim Nguyen.

257981@main introduced a crash due to an unconditional downcast to RenderMeter. The idea behind the unconditional downcast is that appearance: meter should behave like appearance: auto, and only apply to <meter>.

However, this behavior is currently broken for pseudo-elements not backed by PseudoElement. In this case, the element passed into StyleAdjuster is null, resulting in an early return from RenderTheme::adjustAppearanceForElement, where the effective appearance is not adjusted.

In this scenario, appearance: auto should behave like appearance: none. Fix by ensuring the effective appearance of these pseudo-elements is none.

  • LayoutTests/fast/forms/meter-appearance-on-pseudo-element-expected.txt: Added.
  • LayoutTests/fast/forms/meter-appearance-on-pseudo-element.html: Added.
  • Source/WebCore/rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustAppearanceForElement const):

Canonical link: https://commits.webkit.org/258843@main

REGRESSION(258591@main): [iOS] TestWebKitAPI.WKWebView.LocalStorageDirectoryExcludedFromBackup is consistently failing https://bugs.webkit.org/show_bug.cgi?id=250517 rdar://104175904

Reviewed by Chris Dumez.

We should create custom LocalStorage directory and set it to be excluded from backup when it's in use.

  • Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp: (WebKit::NetworkStorageManager::NetworkStorageManager):

Canonical link: https://commits.webkit.org/258844@main

Use ThreadSafeWeakPtr to store m_parent in ScrollingStateNode https://bugs.webkit.org/show_bug.cgi?id=250497

Reviewed by Simon Fraser.

Use ThreadSafeWeakPtr to store m_parent in ScrollingStateNode much like https://commits.webkit.org/258795@main.

  • Source/WTF/wtf/RefPtr.h: (WTF::dynamicDowncast): Added versions of dynamicDowncast that take const RefPtr& and RefPtr&&.

  • Source/WTF/wtf/ThreadSafeWeakPtr.h: (WTF::ThreadSafeWeakPtr::operator=): Made operator= work with nullptr.

  • Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): (WebCore::AsyncScrollingCoordinator::frameViewVisualViewportChanged): (WebCore::AsyncScrollingCoordinator::frameViewWillBeDetached): (WebCore::AsyncScrollingCoordinator::updateIsMonitoringWheelEventsForFrameView): (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange): (WebCore::AsyncScrollingCoordinator::requestStartKeyboardScrollAnimation): (WebCore::AsyncScrollingCoordinator::requestStopKeyboardScrollAnimation): (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate): (WebCore::AsyncScrollingCoordinator::requestAnimatedScrollToPosition): (WebCore::AsyncScrollingCoordinator::stopAnimatedScroll): (WebCore::AsyncScrollingCoordinator::frameViewForScrollingNode const): (WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange): (WebCore::AsyncScrollingCoordinator::parentOfNode const): (WebCore::AsyncScrollingCoordinator::childrenOfNode const): (WebCore::AsyncScrollingCoordinator::setNodeLayers): (WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState): (WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry): (WebCore::AsyncScrollingCoordinator::setViewportConstraintedNodeConstraints): (WebCore::AsyncScrollingCoordinator::setPositionedNodeConstraints): (WebCore::AsyncScrollingCoordinator::setRelatedOverflowScrollingNodes): (WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons): (WebCore::AsyncScrollingCoordinator::synchronousScrollingReasons const): (WebCore::AsyncScrollingCoordinator::updateScrollSnapPropertiesWithFrameView):

  • Source/WebCore/page/scrolling/ScrollingStateNode.cpp: (WebCore::ScrollingStateNode::removeFromParent):

  • Source/WebCore/page/scrolling/ScrollingStateNode.h: (WebCore::ScrollingStateNode::parent const): (WebCore::ScrollingStateNode::setParent): (WebCore::ScrollingStateNode::parentNodeID const):

  • Source/WebCore/page/scrolling/ScrollingStateOverflowScrollProxyNode.cpp: (WebCore::ScrollingStateOverflowScrollProxyNode::dumpProperties const):

  • Source/WebCore/page/scrolling/ScrollingStateStickyNode.cpp: (WebCore::ScrollingStateStickyNode::computeLayerPosition const):

  • Source/WebCore/page/scrolling/ScrollingStateTree.cpp: (WebCore::ScrollingStateTree::createUnparentedNode): (WebCore::ScrollingStateTree::insertNode): (WebCore::ScrollingStateTree::removeNodeAndAllDescendants): (WebCore::ScrollingStateTree::stateNodeForID const): (WebCore::ScrollingStateTree::reconcileViewportConstrainedLayerPositions):

  • Source/WebCore/page/scrolling/ScrollingStateTree.h:

  • Source/WebCore/page/scrolling/ScrollingTreeNode.h:

  • Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: (WebKit::RemoteScrollingCoordinatorTransaction::decode):

Canonical link: https://commits.webkit.org/258845@main

Resync web-platform-tests/custom-elements https://bugs.webkit.org/show_bug.cgi?id=250505

Reviewed by Alexey Shvayka.

Resync web platform tests for custom elements as of fe2111adb8769ba2715016d3ede2aaf88cb06710.

  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/ElementInternals-accessibility-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/ElementInternals-accessibility.html:
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/HTMLElement-constructor-customized-bulitins-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/HTMLElement-constructor-customized-bulitins.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/HTMLElement-constructor-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/HTMLElement-constructor.html:
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/reactions/AriaMixin-element-attributes-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/reactions/AriaMixin-element-attributes.html:
  • LayoutTests/imported/w3c/web-platform-tests/custom-elements/w3c-import.log:

Canonical link: https://commits.webkit.org/258846@main

imported/w3c/web-platform-tests/service-workers/service-worker/navigation-sets-cookie.https.html is flaky crashing https://bugs.webkit.org/show_bug.cgi?id=250486 rdar://104138207

Reviewed by Youenn Fablet.

Have WebServiceWorkerFetchTaskClient keep the preloadResponse as a CrossThreadData instead of a ResourceResponse. m_preloadResponse gets initialized on the service worker thread but the WebServiceWorkerFetchTaskClient object always gets destroyed on the main thread. A ResourceResponse contains AtomStrings and thus cannot be destroyed on another thread than the one it got constructed on.

  • Source/WebCore/workers/service/context/ServiceWorkerFetch.h:
  • Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp: (WebCore::ServiceWorkerThreadProxy::navigationPreloadIsReady):
  • Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: (WebKit::WebServiceWorkerFetchTaskClient::setFetchEvent): (WebKit::WebServiceWorkerFetchTaskClient::navigationPreloadIsReady):
  • Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:

Canonical link: https://commits.webkit.org/258847@main

REGRESSION(258663@main) [GStreamer] MIME API test crashes due to GStreamer being initialized in UIProcess https://bugs.webkit.org/show_bug.cgi?id=250480

Reviewed by Xabier Rodriguez-Calvar.

The registry no longer directly registers GStreamer elements. Instead it is done from call-sites, such as the WebRTC provider, when needed. Also the scanner is now able to refresh its internal state, this is needed in situations where the singleton might have been created before the registration of additional elements.

  • Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp: (WebCore::registerVideoEncoder): (WebCore::registerWebKitGStreamerElements): (WebCore::registerWebKitGStreamerVideoEncoder):
  • Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:
  • Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp: (WebCore::GStreamerRegistryScanner::singletonNeedsInitialization): (WebCore::GStreamerRegistryScanner::singleton): (WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner): (WebCore::GStreamerRegistryScanner::refresh): (WebCore::GStreamerRegistryScanner::initializeDecoders): (WebCore::GStreamerRegistryScanner::initializeEncoders):
  • Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h:
  • Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp: (WebCore::GStreamerWebRTCProvider::initializeVideoEncodingCapabilities):
  • Tools/TestWebKitAPI/glib/TestExpectations.json:

Canonical link: https://commits.webkit.org/258848@main

[UI-side compositing] alert() causes entire page contents to disappear https://bugs.webkit.org/show_bug.cgi?id=250501 rdar://104139106

Reviewed by Chris Dumez.

When a JavaScript alert/prompt/confirm dialog is shown, WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit() is called (see 236143@main). This consults m_hasUpdatedRenderingAfterDidCommitLoad, but that was always false with UI-side compositing on macOS, because it relied on code in WebPageProxy::didCommitLayerTree() which was iOS only.

So make WebPageProxy::didCommitLayerTree() shared between macOS and iOS, and add some PageClient stubs for macOS.

  • Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::exceedsRenderTreeSizeSizeThreshold): (WebKit::WebPageProxy::didCommitLayerTree): (WebKit::WebPageProxy::layerTreeCommitComplete):
  • Source/WebKit/UIProcess/PageClient.h:
  • Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::resetState):
  • Source/WebKit/UIProcess/WebPageProxy.h:
  • Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm: (WebKit::exceedsRenderTreeSizeSizeThreshold): Deleted. (WebKit::WebPageProxy::didCommitLayerTree): Deleted. (WebKit::WebPageProxy::layerTreeCommitComplete): Deleted.
  • Source/WebKit/UIProcess/mac/PageClientImplMac.h:
  • Source/WebKit/UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::didCommitLayerTree): (WebKit::PageClientImpl::layerTreeCommitComplete):

Canonical link: https://commits.webkit.org/258849@main

Created at 2 weeks ago
issue comment
`HTMLFormControlElement`: refine a few overrides with `final` specifier

Unfortunately, this depends on re-landing https://bugs.webkit.org/show_bug.cgi?id=197963.

Created at 2 weeks ago
issue comment
<object> element shouldn't override FormListedElement::setCustomValidity()

Thanks for review Darin!

Created at 2 weeks ago

element shouldn't override FormListedElement::setCustomValidity() https://bugs.webkit.org/show_bug.cgi?id=250627

Reviewed by NOBODY (OOPS!).

Per spec [1], element's constraint validation methods are the same as for other objects.

This change removes setCustomValidity() override, allowing element's customError() to be triggered, which aligns with all the other elements: their validity states are independent of willValidate().

Removal of validationMessage() override is non-observable: the message can't be retrieved for an element that is not a candidate for constraint validation [2].

Aligns WebKit with the spec and Gecko.

[1] https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element:the-constraint-validation-api [2] https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-cva-validationmessage

  • LayoutTests/fast/forms/setCustomValidity-null-parameter.html:
  • LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-setcustomvalidity-expected.txt:
  • Source/WebCore/html/HTMLObjectElement.h:
Created at 2 weeks ago

WebKit export of https://bugs.webkit.org/show_bug.cgi?id=250453 (#37965)

Created at 2 weeks ago
pull request closed
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=250453

This WebKit-reviewed test ensures that <textarea> element's suffering from being missing validity state is conditional on it being mutable rather than a being candidate for constraint validation.

Created at 2 weeks ago

[@property] Invalidate matched declarations cache when property registrations change https://bugs.webkit.org/show_bug.cgi?id=250446 rdar://104113725

Reviewed by Antoine Quint.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/at-property-typedom-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/determine-registration-expected.txt:
  • Source/WebCore/style/CustomPropertyRegistry.cpp: (WebCore::Style::CustomPropertyRegistry::registerFromStylesheet):

Property registrations may affect interpretations of custom properties in the cache.

Canonical link: https://commits.webkit.org/258787@main

[ATSPI] Make Atspi::Role enum class https://bugs.webkit.org/show_bug.cgi?id=250452

Reviewed by Michael Catanzaro.

When working with ATSPI-related code, there are several different role types. There are - ARIA role, WebCore::AccessibilityRole, and Atspi::Role.

Currently Atspi::Role is implemented as enum, which makes it hard to distinguish it from other role types when it's used as an argument or a return type:

std::optional<unsigned> AccessibilityObjectAtspi::effectiveRole() const

Using enum class instead should make such code more readable:

std::optional<Atspi::Role> AccessibilityObjectAtspi::effectiveRole() const

  • Source/WebCore/accessibility/atspi/AccessibilityAtspiEnums.h:
  • Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp: (WebCore::atspiRole): (WebCore::AccessibilityObjectAtspi::effectiveRole const): (WebCore::AccessibilityObjectAtspi::role const):
  • Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.h:
  • Source/WebCore/accessibility/atspi/AccessibilityObjectCollectionAtspi.cpp: (WebCore::AccessibilityObjectAtspi::CollectionMatchRule::CollectionMatchRule):
  • Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp: (WTR::roleValueToString):

Canonical link: https://commits.webkit.org/258788@main

Throwing a v128 should not clobber other stack slots. https://bugs.webkit.org/show_bug.cgi?id=250312

Reviewed by Yusuke Suzuki.

Throwing a v128 is not currently supported, so we only allocate jsvalue-sized stack slots. This is bad, because we still MoveVector, and this can cause us to clobber important things. We should not clobber important things.

  • JSTests/wasm/stress/simd-exception-throwing-v128-clobbers-fp.js: Added. (catch):
  • JSTests/wasm/stress/simd-exception-throwing-v128-clobbers-fp.wasm: Added.
  • JSTests/wasm/stress/simd-exception-throwing-v128-clobbers-fp.wat: Added.
  • JSTests/wasm/stress/simd-tail-calls-throw.js: Added. (from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.start.export.string_appeared_here.call.f1.func.f1.local.v128.try.catch_all.return_call.f2.func.f2.async test):
  • Source/JavaScriptCore/wasm/WasmAirIRGenerator64.cpp: (JSC::Wasm::AirIRGenerator64::addThrow): (JSC::Wasm::AirIRGenerator64::emitTailCallPatchpoint):
  • Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::addThrow): (JSC::Wasm::B3IRGenerator::createTailCallPatchpoint):

Canonical link: https://commits.webkit.org/258789@main

tiled-drawing/scrolling/scroll-snap tests fail with UI-side compositing https://bugs.webkit.org/show_bug.cgi?id=250438 rdar://104108634

Reviewed by Wenson Hsieh.

These tests do things like:

eventSender.keyDown("rightArrow");
expectTrue(document.scrollingElement.scrollLeft == (window.innerWidth * scale), "arrow key div scrolled to second div.");

With UI-side compositing, arrow handling hits AsyncScrollingCoordinator::requestScrollPositionUpdate(), which bounces to the UI process, and then IPCs back to the web process via AsyncScrollingCoordinator::reconcileScrollingState() which updates the ScrollableArea's scroll position, which is then read by scrollLeft.

So the tests need to wait for a presentation update after dispatching the key. Add a UIHelper function for this, and change the tests to use it.

  • LayoutTests/resources/ui-helper.js: (window.UIHelper.async keyboardScroll):
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-keyboard-scaled.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-keyboard-smooth-scroll-enabled.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-keyboard.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-keyboard-scaled.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-keyboard-smooth-scroll-enabled.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-keyboard.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe-horizontal-with-keyboard.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe-vertical-with-keyboard.html:
  • LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:

Canonical link: https://commits.webkit.org/258790@main

Fix *-baseline computation for {text-,}after-edge/ideographic/baseline

Fix *-baseline computation for {text-,}after-edge/ideographic/baseline https://bugs.webkit.org/show_bug.cgi?id=250297

Reviewed by Simon Fraser.

This patch is to align WebKit with Blink / Chromium and Gecko / Firefox.

Merge - https://src.chromium.org/viewvc/blink?view=revision&revision=176877

Negative descents were assumed, although they are positive. Fix sign of 'descent' in the {text-,}after-edge and ideographic cases. Also fix the obvious mistake in the 'baseline' case, where it ought to be handled in a similar way as 'auto', and not just return the "computed" alignment-baseline value.

  • Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.cpp: (SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift): (1) Add "Baseline" similar to "Auto" and update ASSERT (2) Update "Baseline" case to match "Auto" (3) Fix "sign" of "Ideographic"
  • LayoutTests/svg/custom/alignment-baseline-modes.svg: Add Test Case
  • LayoutTests/platform/glib/svg/custom/alignment-baseline-modes-expected.txt: Update Test Expectations
  • LayoutTests/platform/glib/svg/custom/dominant-baseline-modes-expected.txt: Rebaselined
  • LayoutTests/platform/ios/svg/custom/alignment-baseline-modes-expected.txt: Update Test Expectations
  • LayoutTests/platform/ios/svg/custom/dominant-baseline-modes-expected.txt: Rebaselined
  • LayoutTests/platform/mac/svg/custom/alignment-baseline-modes-expected.txt: Update Test Expectations
  • LayoutTests/platform/mac/svg/custom/alignment-baseline-modes-expected.png: Update Test Expectations
  • LayoutTests/platform/mac/svg/custom/dominant-baseline-modes-expected.txt: Rebaselined
  • LayoutTests/platform/mac/svg/custom/dominant-baseline-modes-expected.png: Rebaselined

Canonical link: https://commits.webkit.org/258791@main

Null pointer web content crash in AsyncScrollingCoordinator callback https://bugs.webkit.org/show_bug.cgi?id=250426 rdar://104099969

Reviewed by Simon Fraser.

Adds a null check for m_page in the hysteresis callback of AsyncScrollingCoordinator.

  • Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::hysterisisTimerFired):

Canonical link: https://commits.webkit.org/258792@main

REGRESSION(258290@main) [WPE] API test failures due to usage of deprecated properties https://bugs.webkit.org/show_bug.cgi?id=250437

Reviewed by Michael Catanzaro.

The changes below were enough to avoid the missing property issue runnign the API tests, but looks like there are some untested paths that might be using the deprecated functions.

There are other unrelated failures though, to be tackled in future commits.

  • Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp: (webkitWebContextConstructed):
  • Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::Test):

Canonical link: https://commits.webkit.org/258793@main

[GPU Process] DrawFocusRing with timeOffset is not recorded for macOS https://bugs.webkit.org/show_bug.cgi?id=250403 rdar://104039216

Reviewed by Simon Fraser.

The 'timeOffset' argument to GraphicsContext::drawFocusRing() was never used. Instead we always pass std::numeric_limits::max() to NSInitializeCGFocusRingStyleForTime(). This means its return value is always false.

So there is no need to pass 'timeOffset' and 'needsRepaint' to drawFocusRing(). Therefore the Mac versions of drawFocusRing() are not needed.

We can just have two versions of GraphicsContext::drawFocusRing():

  1. The first one takes (const Path&, float outlineWidth, ...). The 'outlineWidth' is used to set the lineWidth on Cairo and to set the blurRadius on Windows.

  2. The second one takes (const Vector&, float outlineOffset, float outlineWidth, ...). The 'outlineOffset' is used to shrink the focus ring rectangles. On Cocoa and Windows platforms this version will convert the rects to a Path and call the previous one.

  • Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal):
  • Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp: (WebCore::BifurcatedGraphicsContext::drawFocusRing):
  • Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h:
  • Source/WebCore/platform/graphics/GraphicsContext.h:
  • Source/WebCore/platform/graphics/NullGraphicsContext.h:
  • Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContextCairo::drawFocusRing):
  • Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h:
  • Source/WebCore/platform/graphics/cg/GraphicsContextCG.h:
  • Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::GraphicsContextCG::drawFocusRing): (WebCore::drawFocusRingAtTime): Deleted. (WebCore::drawFocusRing): Deleted. (WebCore::drawFocusRingToContext): Deleted. (WebCore::drawFocusRingToContextAtTime): Deleted.
  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp: (WebCore::DisplayList::DrawFocusRingPath::apply const): (WebCore::DisplayList::DrawFocusRingRects::apply const): (WebCore::DisplayList::dumpItem): (WebCore::DisplayList::DrawFocusRingRects::DrawFocusRingRects): Deleted.
  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.h: (WebCore::DisplayList::DrawFocusRingPath::DrawFocusRingPath): (WebCore::DisplayList::DrawFocusRingPath::outlineWidth const): (WebCore::DisplayList::DrawFocusRingPath::encode const): (WebCore::DisplayList::DrawFocusRingPath::decode): (WebCore::DisplayList::DrawFocusRingRects::DrawFocusRingRects): (WebCore::DisplayList::DrawFocusRingRects::rects const): (WebCore::DisplayList::DrawFocusRingRects::outlineOffset const): (WebCore::DisplayList::DrawFocusRingRects::outlineWidth const): (WebCore::DisplayList::DrawFocusRingRects::color const): (WebCore::DisplayList::DrawFocusRingRects::encode const): (WebCore::DisplayList::DrawFocusRingRects::decode): (WebCore::DisplayList::DrawFocusRingPath::width const): Deleted. (WebCore::DisplayList::DrawFocusRingPath::offset const): Deleted. (WebCore::DisplayList::DrawFocusRingRects::width const): Deleted. (WebCore::DisplayList::DrawFocusRingRects::offset const): Deleted.
  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::drawFocusRing):
  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp: (WebCore::DisplayList::RecorderImpl::recordDrawFocusRingPath): (WebCore::DisplayList::RecorderImpl::recordDrawFocusRingRects):
  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp: (Nicosia::CairoOperationRecorder::drawFocusRing):
  • Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • Source/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp: (WebCore::GraphicsContextCG::drawFocusRing):
  • Source/WebCore/rendering/RenderElement.cpp: (WebCore::drawFocusRing): (WebCore::RenderElement::paintFocusRing const):
  • Source/WebCore/rendering/RenderImage.cpp: (WebCore::RenderImage::paintAreaElementFocusRing):
  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::drawFocusRingPath): (WebKit::RemoteDisplayListRecorder::drawFocusRingRects):
  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp: (WebKit::RemoteDisplayListRecorderProxy::recordDrawFocusRingPath): (WebKit::RemoteDisplayListRecorderProxy::recordDrawFocusRingRects):
  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

Canonical link: https://commits.webkit.org/258794@main

Use ThreadSafeWeakPtr for m_parent in ScrollingTreeNode https://bugs.webkit.org/show_bug.cgi?id=250447

Reviewed by Simon Fraser and Chris Dumez.

Use ThreadSafeWeakPtr to store the parent node in ScrollingTreeNode.

  • Source/WebCore/page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::handleWheelEventWithNode): (WebCore::ScrollingTree::updateTreeFromStateNodeRecursive):
  • Source/WebCore/page/scrolling/ScrollingTreeFixedNode.cpp: (WebCore::ScrollingTreeFixedNode::computeLayerPosition const):
  • Source/WebCore/page/scrolling/ScrollingTreeNode.cpp: (WebCore::ScrollingTreeNode::enclosingFrameNodeIncludingSelf): (WebCore::ScrollingTreeNode::enclosingScrollingNodeIncludingSelf):
  • Source/WebCore/page/scrolling/ScrollingTreeNode.h: (WebCore::ScrollingTreeNode::parent const): (WebCore::ScrollingTreeNode::setParent): (): Deleted.
  • Source/WebCore/page/scrolling/ScrollingTreeStickyNode.cpp: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):

Canonical link: https://commits.webkit.org/258795@main

Revert [258753@main] Move long-shipping features to the new 'shipping' status https://bugs.webkit.org/show_bug.cgi?id=250395 rdar://problem/104081353

Unreviewed revert.

  • Source/WTF/Scripts/GeneratePreferences.rb:
  • Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
  • Source/WebKit/UIProcess/API/APIFeatureStatus.h:
  • Source/WebKit/UIProcess/API/Cocoa/_WKFeature.mm: (-[_WKFeature status]):
  • Source/WebKitLegacy/mac/WebView/WebFeature.h:

Canonical link: https://commits.webkit.org/258796@main

REGRESSION (@property): Crash with animations and rollback cascades https://bugs.webkit.org/show_bug.cgi?id=250458 rdar://104119443

Reviewed by Alan Baradlay.

  • LayoutTests/fast/animation/animation-cascade-crash-expected.txt: Added.
  • LayoutTests/fast/animation/animation-cascade-crash.html: Added.
  • Source/WebCore/style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade):

Ensure that also rollback cascades have AnimationLayer.

Canonical link: https://commits.webkit.org/258797@main

[git-webkit] Support . in branch name https://bugs.webkit.org/show_bug.cgi?id=250464 rdar://104129845

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/trace.py: Support . in branch in commit regex.

Canonical link: https://commits.webkit.org/258798@main

REGRESSION (254017@main): Arabic default signature in Mail.app is not right-to-left https://bugs.webkit.org/show_bug.cgi?id=250443 rdar://102207392

Reviewed by Darin Adler and Ryosuke Niwa.

Mail.app controls the directionality of the signature by adding dir="auto" to the signature element, getting the element's computed style, and then updating the attribute to reflect the computed value. The <body> of the email has dir="auto" specified.

Following 254017@main, adding the dir attribute to an element with a dir="auto" parent, results in an unconditional call to unset the SelfOrPrecedingNodesAffectDirAuto node flag. This flag is read in HTMLElement::directionalityIfDirIsAuto, which returns std::nullopt if the flag is unset, rather than computing the directionality from the text. Consequently, a fallback left-to-right value is used when resolving style.

To fix, only unset the SelfOrPrecedingNodesAffectDirAuto node flag if the specified direction is valid, and not auto.

  • LayoutTests/fast/dom/HTMLElement/attr-dir-value-change-auto-parent-expected.txt: Added.
  • LayoutTests/fast/dom/HTMLElement/attr-dir-value-change-auto-parent.html: Added.
  • Source/WebCore/html/HTMLElement.cpp: (WebCore::HTMLElement::dirAttributeChanged):

Canonical link: https://commits.webkit.org/258799@main

Pass --remote-layer-tree --use-gpu-process to run-api-tests on GPUP bots https://bugs.webkit.org/show_bug.cgi?id=250357 rdar://103939125

Reviewed by Aakash Jain.

  • Tools/CISupport/build-webkit-org/steps.py: (RunAPITests.start):

Canonical link: https://commits.webkit.org/258800@main

[git-webkit] Make pickable sub-classable https://bugs.webkit.org/show_bug.cgi?id=250425 rdar://104098971

Reviewed by Stephanie Lewis.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pickable.py: (Pickable.parser): Allow caller to disable the --json option. (Pickable.main): Allow caller to override the printer function we feed the list of pickable commits to.

Canonical link: https://commits.webkit.org/258801@main

VibrationActuator should stop vibrating when its document becomes hidden https://bugs.webkit.org/show_bug.cgi?id=250414

Reviewed by Youenn Fablet.

VibrationActuator should stop vibrating when its document becomes hidden:

  • https://w3c.github.io/gamepad/extensions.html#gamepadhapticactuator-interface (Page Visibility section)

Also address test flakiness by properly clearing mock gamepads between tests. We used to call MockGamepadProvider::clearMockGamepads() inside the WebContent process even though they are stored in the UIProcess nowadays.

  • LayoutTests/gamepad/gamepad-vibration-document-no-longer-fully-active.html: Added.
  • LayoutTests/gamepad/gamepad-vibration-document-no-longer-fully-active-expected.txt: Added.
  • LayoutTests/gamepad/gamepad-vibration-visibility-change-expected.txt: Added.
  • LayoutTests/gamepad/gamepad-vibration-visibility-change.html: Added.
  • Source/WebCore/Modules/gamepad/Gamepad.cpp: (WebCore::Gamepad::Gamepad): (WebCore::Gamepad::vibrationActuator):
  • Source/WebCore/Modules/gamepad/Gamepad.h:
  • Source/WebCore/Modules/gamepad/GamepadHapticActuator.cpp: (WebCore::GamepadHapticActuator::create): (WebCore::GamepadHapticActuator::GamepadHapticActuator): (WebCore::GamepadHapticActuator::~GamepadHapticActuator): (WebCore::GamepadHapticActuator::playEffect): (WebCore::GamepadHapticActuator::reset): (WebCore::GamepadHapticActuator::stopEffects): (WebCore::GamepadHapticActuator::document): (WebCore::GamepadHapticActuator::activeDOMObjectName const): (WebCore::GamepadHapticActuator::suspend): (WebCore::GamepadHapticActuator::stop): (WebCore::GamepadHapticActuator::visibilityStateChanged):
  • Source/WebCore/Modules/gamepad/GamepadHapticActuator.h:
  • Source/WebCore/Modules/gamepad/GamepadHapticActuator.idl:
  • Source/WebCore/Modules/gamepad/GamepadManager.cpp: (WebCore::navigatorGamepadFromDOMWindow):
  • Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp: (WebCore::NavigatorGamepad::NavigatorGamepad): (WebCore::NavigatorGamepad::from): (WebCore::NavigatorGamepad::gamepadFromPlatformGamepad): (WebCore::NavigatorGamepad::getGamepads): (WebCore::NavigatorGamepad::gamepadsBecameVisible): (WebCore::NavigatorGamepad::gamepadConnected):
  • Source/WebCore/Modules/gamepad/NavigatorGamepad.h:
  • Source/WebCore/Modules/webxr/WebXRInputSource.cpp: (WebCore::WebXRInputSource::WebXRInputSource):
  • Source/WebCore/page/Navigator.cpp: (WebCore::Navigator::document):
  • Source/WebCore/page/Navigator.h:
  • Source/WebCore/testing/MockGamepad.cpp: (WebCore::MockGamepad::MockGamepad):

Canonical link: https://commits.webkit.org/258802@main

[ EWS MacOS ] imported/w3c/web-platform-tests/css/css-transforms/transform-3d-rotateY-stair-below-001.xht is a constant failure https://bugs.webkit.org/show_bug.cgi?id=244012 rdar://98753930

Unreviewed test gardening.

  • LayoutTests/platform/mac/TestExpectations: Mark the test as flaky.

Canonical link: https://commits.webkit.org/258803@main

Web Inspector: WebRTC "Disable encryption" setting should be removed from remote inspection, it already isn't present for local inspection https://bugs.webkit.org/show_bug.cgi?id=250336 rdar://104042073

Reviewed by Devin Rousso.

  • Source/JavaScriptCore/inspector/protocol/Page.json:
  • Source/WebCore/inspector/agents/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::disable): (WebCore::InspectorPageAgent::overrideSetting):
  • Source/WebCore/page/Settings.yaml:
  • Source/WebInspectorUI/UserInterface/Base/Main.js:

Canonical link: https://commits.webkit.org/258804@main

Web Inspector: “Inspect Element” doesn’t reveal element in DOM tree if the element is hidden behind the "Show All Nodes" button https://bugs.webkit.org/show_bug.cgi?id=250430 rdar://102669246

Reviewed by Devin Rousso.

Revealing a TreeElement currently makes sure to traverse up through parent elements to expand each element to make sure the element is visible. This doesn't necessilary work for DOMTreeElements, though, since they may additionally have hidden elements behind a "Show All Nodes" button. This means we need to provide each parent element an opportunity to fill in these hidden elements so that the entire chain of tree elements is actually loaded, otherwise we won't actually reveal the element we wanted to.

  • Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js: (WI.DOMTreeElement.prototype.reveal):
  • Tree elements should call to each ancestor to make sure the entire chain of elements is actually revealed by providing the parent elements an opportunity to fill in missing elements that they are not currently displaying.

(WI.DOMTreeElement.prototype.onexpand):

  • Source/WebInspectorUI/UserInterface/Views/DOMTreeOutline.js: (WI.DOMTreeOutline.prototype._onmousemove):
  • Related fixes: The element will not always be a DOMTreeElement (namely the button for showing more elements).
  • Source/WebInspectorUI/UserInterface/Views/TreeElement.js: (WI.TreeElement.prototype.reveal):
  • Provide a way for to bypass expanding the ancestor tree. This is used by DOMTreeElement which overrides this method, and expands the tree itself before calling here.

Canonical link: https://commits.webkit.org/258805@main

REGRESSION(258794@main): Remove code which was unintentionally submitted with this change https://bugs.webkit.org/show_bug.cgi?id=250478 rdar://104140855

Reviewed by Simon Fraser.

Remove this code for now.

  • Source/WebCore/platform/graphics/mac/controls/ControlMac.mm: (WebCore::drawCellOrFocusRing):

Canonical link: https://commits.webkit.org/258806@main

Created at 2 weeks ago
issue comment
<textarea> element's validity state checks shouldn't be dependent on willValidate()

Thank you Darin!

WPT export: https://github.com/web-platform-tests/wpt/pull/37965

Created at 2 weeks ago
pull request opened
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=250453

This WebKit-reviewed test ensures that <textarea> element's suffering from being missing validity state is conditional on it being mutable rather than a being candidate for constraint validation.

Created at 2 weeks ago
create branch
shvaikalesh create branch webkit-export-bug-250453
Created at 2 weeks ago