Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop requiring JSONP for layout tests results #21009

Merged
merged 83 commits into from
Nov 29, 2023

Conversation

gsnedders
Copy link
Contributor

@gsnedders gsnedders commented Nov 28, 2023

8a12b0a

Stop requiring JSONP for layout tests results
https://bugs.webkit.org/show_bug.cgi?id=265467

Reviewed by Jonathan Bedard.

This parser is the only place where we actually require the JSONP
wrapper; instead migrate this to strip the wrapper in the same way as
Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/Utilities.js
before passing it to JSON.parse (which every major browser has supported
for over a decade).

* Tools/CISupport/build-webkit-org/public_html/TestFailures/scripts/NRWTResultsParser.js:
(NRWTResultsParser.prototype.ADD_RESULTS): Deleted.

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

f221655

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe βœ… πŸ›  wincairo
βœ… πŸ§ͺ bindings βœ… πŸ›  ios-sim βœ… πŸ›  mac-AS-debug βœ… πŸ§ͺ wpe-wk2
βœ… πŸ§ͺ webkitperl βœ… πŸ§ͺ ios-wk2 βœ… πŸ§ͺ api-mac βœ… πŸ§ͺ api-wpe
βœ… πŸ§ͺ ios-wk2-wpt βœ… πŸ§ͺ mac-wk1 βœ… πŸ›  gtk
βœ… πŸ§ͺ api-ios βœ… πŸ§ͺ mac-wk2 βœ… πŸ§ͺ gtk-wk2
βœ… πŸ›  tv ❌ πŸ§ͺ mac-AS-debug-wk2 βœ… πŸ§ͺ api-gtk
βœ… πŸ§ͺ services βœ… πŸ›  tv-sim
βœ… πŸ›  watch
βœ… πŸ›  πŸ§ͺ unsafe-merge βœ… πŸ›  watch-sim

@gsnedders gsnedders self-assigned this Nov 28, 2023
@gsnedders gsnedders added the Tools / Tests Tools in the Tools directory, build issues, test infrastructure, and bugs in test cases label Nov 28, 2023
graouts and others added 2 commits November 28, 2023 10:59
…tedTimeline.cpp`

https://bugs.webkit.org/show_bug.cgi?id=265456
rdar://118881524

Reviewed by Tim Nguyen.

We include `WebAnimation.h` in `AcceleratedTimeline.cpp` even though we never deal with such objects.

* Source/WebCore/animation/AcceleratedTimeline.cpp:

Canonical link: https://commits.webkit.org/271227@main
https://bugs.webkit.org/show_bug.cgi?id=238104
rdar://90509913

Reviewed by Eric Carlson.

To support profile 2, we need to use a configuration with CONFIG_VP9_HIGHBITDEPTH set to 1.
Based on how other projects like Chromium compile libvpx, we are reusing the linux configuration for arm64.
This enables CONFIG_VP9_HIGHBITDEPTH and allows us to support VP9 profile 2 in WebRTC.

* LayoutTests/platform/mac/TestExpectations:
* Source/ThirdParty/libwebrtc/Configurations/Base-libvpx.xcconfig:
* Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/271228@main
eric-carlson and others added 6 commits November 28, 2023 11:26
https://bugs.webkit.org/show_bug.cgi?id=265452
rdar://118879100

Reviewed by Youenn Fablet.

Add runtime logging to help diagnose future errors and failures.

* Source/WebCore/Modules/mediastream/ImageCapture.cpp:
(WebCore::ImageCapture::ImageCapture):
(WebCore::ImageCapture::takePhoto):
(WebCore::ImageCapture::getPhotoCapabilities):
(WebCore::ImageCapture::getPhotoSettings):
(WebCore::ImageCapture::logChannel const):
* Source/WebCore/Modules/mediastream/ImageCapture.h:
(WebCore::ImageCapture::logger const):
(WebCore::ImageCapture::logIdentifier const):
(WebCore::ImageCapture::logClassName const):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::getPhotoCapabilities const):
(WebCore::MediaStreamTrack::getPhotoSettings const):

Canonical link: https://commits.webkit.org/271229@main
…nternal UIResponder methods

https://bugs.webkit.org/show_bug.cgi?id=265464

Reviewed by Megan Gardner.

Call directly into the superclass implementation when the `UIAsyncTextInput` codepath is enabled,
instead of relying on custom logic in WebKit for the following two internal `UIResponder`
subclassing hooks.

* Source/WebKit/Platform/spi/ios/UIKitSPI.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView _requiresKeyboardResetOnReload]):

Canonical link: https://commits.webkit.org/271230@main
…nimation resolution

https://bugs.webkit.org/show_bug.cgi?id=265457
rdar://118881620

Reviewed by Matt Woodrow.

As part of the threaded animation resolution work we will use the scrolling thread to resolve
animations in the UI process, so we must make sure that code is compiled everywhere threaded
animation resolution is enabled.

* Source/WebCore/page/scrolling/ScrollingThread.cpp:
* Source/WebCore/page/scrolling/ScrollingThread.h:

Canonical link: https://commits.webkit.org/271231@main
…ebKit

https://bugs.webkit.org/show_bug.cgi?id=265458
rdar://118881712

Reviewed by Matt Woodrow.

We currently use an `Animations` logging channel in WebCore and with the work on
threaded animation resolution we will need to add animation-related logging in
WebKit as well.

* Source/WebKit/Platform/Logging.h:

Canonical link: https://commits.webkit.org/271232@main
https://bugs.webkit.org/show_bug.cgi?id=265305
rdar://118874132

Reviewed by Eric Carlson.

Our frame decimator is based on knowing the observed frame rate.
DisplayCaptureSourceCocoa was not implementing observedFrameRate so the frame rate decimator was not kicking in.
We implement observedFrameRate by using the frame rate used by the timer that generates frames.
We beef up the existing test and use rvfc instead of the internals API.

* LayoutTests/fast/mediastream/getDisplayMedia-frame-rate.html:
* Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::observedFrameRate const):
* Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:

Canonical link: https://commits.webkit.org/271233@main
https://bugs.webkit.org/show_bug.cgi?id=265459
rdar://118882053

Reviewed by Dean Jackson.

In order to be able to resolve the current time of animation with threaded animation resolution,
we will need to make the timeline time origin available to the UI Process through the `RemoteLayerTreeTransaction`.

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::acceleratedTimelineTimeOrigin const):
(WebKit::RemoteLayerTreeTransaction::setAcceleratedTimelineTimeOrigin):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedTimelineTimeOrigin const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTreeTransaction):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::acceleratedTimelineTimeOrigin const):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):

Canonical link: https://commits.webkit.org/271234@main
martadarbinyan and others added 2 commits November 28, 2023 13:33
…Connection-GC.https.html is a consistent/flaky text failure.

https://bugs.webkit.org/show_bug.cgi?id=260225
rdar://113932040

Unreviewed test gardening.

Adding test expectation

* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/271235@main
https://bugs.webkit.org/show_bug.cgi?id=265471

Reviewed by Tim Horton.

Add an explicit case to handle the scenario where `UIKeyModifierFlags` is 0, to avoid hitting the
debug assertion below.

* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(shiftKeyState):

Canonical link: https://commits.webkit.org/271236@main
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Nov 28, 2023
beidson and others added 12 commits November 28, 2023 14:44
…ns (and add a few more exclusions)

https://bugs.webkit.org/show_bug.cgi?id=265428
rdar://118865137

Reviewed by Alex Christensen.

When adding some more exclusions, I got tired of the thrown together way of adding exclusions.
So I made it easier to add exclusions.

Also rename to count-handwritten-decoders-cocoa to represent the target platforms.

* Tools/Scripts/count-handwritten-decoders:

Canonical link: https://commits.webkit.org/271237@main
https://bugs.webkit.org/show_bug.cgi?id=265455
rdar://problem/118879753

Reviewed by Eric Carlson.

Use WebRTC VP9 profile 2 flag to expose WebCodecs VP9 profile 2 support.
Add an option to use SW libvpx VP9 profile 2 encoder and decoder and implement support.
HW decoder already supports VP9 profile 2, no change needed.

Covered by rebased tests.

* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_av1-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_h265_hevc-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_av1-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h264_avc-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h265_annexb-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_vp9_p0-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_vp9_p2-expected.txt:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp:
(WebCore::isSupportedDecoderCodec):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp:
(WebCore::isSupportedEncoderCodec):
* Source/WebCore/platform/VideoDecoder.cpp:
(WebCore::VideoDecoder::createLocalDecoder):
* Source/WebCore/platform/VideoEncoder.cpp:
(WebCore::VideoEncoder::createLocalEncoder):
* Source/WebCore/platform/libwebrtc/LibWebRTCVPXVideoDecoder.cpp:
(WebCore::createInternalDecoder):
* Source/WebCore/platform/libwebrtc/LibWebRTCVPXVideoDecoder.h:
* Source/WebCore/platform/libwebrtc/LibWebRTCVPXVideoEncoder.cpp:
(WebCore::createInternalEncoder):
(WebCore::LibWebRTCVPXInternalVideoEncoder::initialize):
* Source/WebCore/platform/libwebrtc/LibWebRTCVPXVideoEncoder.h:

Canonical link: https://commits.webkit.org/271238@main
…cess

https://bugs.webkit.org/show_bug.cgi?id=265413
<rdar://107933292>

Reviewed by Per Arne Vollan.

We needed to keep access to `setsockopt` in the WebContent process until Content
Filtering had completely moved to the Network process. That happened in macOS 13,
so we should be able to remove this ability for Ventura and newer operating systems.
All iOS ports have made this transition already, so no version checks are needed there.

* Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
* Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:

Canonical link: https://commits.webkit.org/271239@main
…http/wpt/webcodecs are a constant failure

https://bugs.webkit.org/show_bug.cgi?id=265483
rdar://118901410

Unreviewed test gardening.

Adding test expectation

* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/271240@main
https://bugs.webkit.org/show_bug.cgi?id=265416
rdar://116202187

Reviewed by Pascoe.

During the initial development we skipped a few messages, but the time has come to handle them all correctly.

* LayoutTests/http/tests/site-isolation/post-message-expected.txt:
* Source/WebKit/UIProcess/RemotePageProxy.cpp:
(WebKit::RemotePageProxy::didReceiveMessage):
(WebKit::RemotePageProxy::handleMessage):
(WebKit::RemotePageProxy::didCommitLoadForFrame):
* Source/WebKit/UIProcess/RemotePageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMessage):
(WebKit::WebPageProxy::handleMessageShared):
* Source/WebKit/UIProcess/WebPageProxy.h:

Canonical link: https://commits.webkit.org/271241@main
…tation time

https://bugs.webkit.org/show_bug.cgi?id=265389
rdar://problem/118836800

Reviewed by Eric Carlson.

We compute the reorder queue size by parsing SPS.
We reuse the same queue as RTCVideoDecoderH264 and, for that purpose, refactor the code in a RTCVideoFrameWithOrder class.

* LayoutTests/http/tests/webcodecs/hevc-reordering-expected.txt: Added.
* LayoutTests/http/tests/webcodecs/hevc-reordering.html: Added.
* LayoutTests/platform/glib/TestExpectations:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_sps_parser.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/common_video/h265/h265_sps_parser.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
(-[WK_RTCLocalVideoH264H265VP9Decoder setFormat:size:width:height:]):
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
(RTCFrameDecodeParams::RTCFrameDecodeParams):
(decompressionOutputCallback):
(-[RTCVideoDecoderH264 init]):
(-[RTCVideoDecoderH264 decodeData:size:timeStamp:]):
(-[RTCVideoDecoderH264 setAVCFormat:size:width:height:]):
(-[RTCVideoDecoderH264 flush]):
(-[RTCVideoDecoderH264 processFrame:reorderSize:]):
(RTCVideoFrameWithOrder::RTCVideoFrameWithOrder): Deleted.
(RTCVideoFrameWithOrder::~RTCVideoFrameWithOrder): Deleted.
(RTCVideoFrameWithOrder::take): Deleted.
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
(RTCH265FrameDecodeParams::RTCH265FrameDecodeParams):
(spsDataFromHvcc):
(ComputeH265ReorderSizeFromSPS):
(ComputeH265ReorderSizeFromHVCC):
(ComputeH265ReorderSizeFromAnnexB):
(h265DecompressionOutputCallback):
(-[RTCVideoDecoderH265 decodeData:size:timeStamp:]):
(-[RTCVideoDecoderH265 setHVCCFormat:size:width:height:]):
(-[RTCVideoDecoderH265 resetDecompressionSession]):
(-[RTCVideoDecoderH265 flush]):
(-[RTCVideoDecoderH265 processFrame:reorderSize:]):
(-[RTCVideoDecoderH265 setAVCFormat:size:width:height:]): Deleted.
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoFrameReorderQueue.h: Added.
(webrtc::RTCVideoFrameReorderQueue::RTCVideoFrameWithOrder::RTCVideoFrameWithOrder):
(webrtc::RTCVideoFrameReorderQueue::RTCVideoFrameWithOrder::~RTCVideoFrameWithOrder):
(webrtc::RTCVideoFrameReorderQueue::RTCVideoFrameWithOrder::take):
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoFrameReorderQueue.mm: Added.
(webrtc::RTCVideoFrameReorderQueue::isEmpty):
(webrtc::RTCVideoFrameReorderQueue::reorderSize const):
(webrtc::RTCVideoFrameReorderQueue::setReorderSize):
(webrtc::RTCVideoFrameReorderQueue::append):
(webrtc::RTCVideoFrameReorderQueue::takeIfAvailable):
(webrtc::RTCVideoFrameReorderQueue::takeIfAny):
* Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/271242@main
… is disabled

https://bugs.webkit.org/show_bug.cgi?id=265463

Reviewed by Brent Fulgham.

Move the CookieChangeEvent behind the runtime flag.

* Source/WebCore/Modules/cookie-store/CookieChangeEvent.idl:

Canonical link: https://commits.webkit.org/271243@main
https://bugs.webkit.org/show_bug.cgi?id=265418
rdar://118861915

Reviewed by Justin Michaud and Mark Lam.

Some of JIT thunks are frequently used even from main thread, and those are typically *always used* whenever JIT is enabled.
We should eagerly generate them and make the lookup super fast. This patch adds CommonJITThunkID and pre-generates common
thunks when initializing JITThunks.

* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
(JSC::InlineCacheCompiler::emitExplicitExceptionHandler):
(JSC::getByIdSlowPathCodeGenerator):
(JSC::getByIdWithThisSlowPathCodeGenerator):
(JSC::getByValSlowPathCodeGenerator):
(JSC::getPrivateNameSlowPathCodeGenerator):
(JSC::getByValWithThisSlowPathCodeGenerator):
(JSC::putByIdSlowPathCodeGenerator):
(JSC::putByValSlowPathCodeGenerator):
(JSC::instanceOfSlowPathCodeGenerator):
(JSC::delByIdSlowPathCodeGenerator):
(JSC::delByValSlowPathCodeGenerator):
* Source/JavaScriptCore/bytecode/Repatch.cpp:
(JSC::linkMonomorphicCall):
(JSC::linkPolymorphicCall):
* Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
* Source/JavaScriptCore/dfg/DFGJITCompiler.h:
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileFunction):
* Source/JavaScriptCore/ftl/FTLCompile.cpp:
(JSC::FTL::compile):
* Source/JavaScriptCore/ftl/FTLLink.cpp:
(JSC::FTL::link):
* Source/JavaScriptCore/jit/JIT.cpp:
(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::link):
* Source/JavaScriptCore/jit/JIT.h:
* Source/JavaScriptCore/jit/JITCall.cpp:
(JSC::JIT::emit_op_ret):
(JSC::JIT::returnFromBaselineGenerator): Deleted.
* Source/JavaScriptCore/jit/JITOpcodes.cpp:
(JSC::JIT::op_check_traps_handlerGenerator):
* Source/JavaScriptCore/jit/JITPropertyAccess.cpp:
(JSC::JIT::slow_op_resolve_scopeGenerator):
(JSC::JIT::slow_op_put_to_scopeGenerator):
* Source/JavaScriptCore/jit/JITThunks.cpp:
(JSC::JITThunks::JITThunks):
(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):
(JSC::JITThunks::ctiStub):
* Source/JavaScriptCore/jit/JITThunks.h:
* Source/JavaScriptCore/jit/SlowPathCall.cpp:
(JSC::JITSlowPathCall::generateThunk):
* Source/JavaScriptCore/jit/ThunkGenerators.cpp:
(JSC::popThunkStackPreservesAndHandleExceptionGenerator):
(JSC::checkExceptionGenerator):
(JSC::virtualThunkForRegularCall):
(JSC::virtualThunkForTailCall):
(JSC::virtualThunkForConstruct):
(JSC::returnFromBaselineGenerator):
(JSC::virtualThunkForConstructConstruct): Deleted.
* Source/JavaScriptCore/jit/ThunkGenerators.h:
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::getCTIStub):
(JSC::VM::getCTILinkCall):
(JSC::VM::getCTIThrowExceptionFromCallSlowPath):
(JSC::VM::getCTIVirtualCall):
* Source/JavaScriptCore/runtime/VM.h:

Canonical link: https://commits.webkit.org/271244@main
…pty buffer

https://bugs.webkit.org/show_bug.cgi?id=265433
<radar://118866396>

Reviewed by Dan Glastonbury.

GPUBuffer.destroy should be a no-op if the buffer was never mapped.

* Source/WebCore/Modules/WebGPU/GPUBuffer.cpp:
(WebCore::GPUBuffer::destroy):

Canonical link: https://commits.webkit.org/271245@main
https://bugs.webkit.org/show_bug.cgi?id=265475
rdar://118893186

Reviewed by Mark Lam.

PolymorphicCallNode::unlinkImpl calls m_callLinkInfo->unlink. But it is possible that this CallLinkInfo is
holding PolymorphicCallNode's owner stub and it may clear stub. Previously, we are always deferring this stub
destruction until JITStubRoutineSet destroys it. But now, it is possible that they get deleted immediately
when owner CodeBlock is dead. This means that after calling m_callLinkInfo->unlink, it is possible that PolymorphicCallNode |this|
is already destroyed.

This patch reorders unlink's operation in PolymorphicCallNode so that we first unlink it from linked-list.
This is OK since we are not expecting that this is in the linked-list in unlink calls. So after m_callLinkInfo->unlink,
we no longer touch anything in PolymorphicCallNode.

* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp:
(JSC::PolymorphicCallNode::unlinkImpl):

Canonical link: https://commits.webkit.org/271246@main
rdar://118208532

Reviewed by Jonathan Bedard.

Adds more punctuation to be ignored when constructing link.

* Tools/CISupport/ews-build/steps.py:
(UpdatePullRequest.escape_html):
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:
(PullRequest.escape_html):
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

Canonical link: https://commits.webkit.org/271247@main
… haven't changed

https://bugs.webkit.org/show_bug.cgi?id=265473
rdar://118839289

Reviewed by Timothy Hatcher.

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::declarativeNetRequestRuleStore):
(WebKit::computeStringHashForContentBlockerRules): Compute the hash for these content blocker rules, making sure to
append the current version of the rule translator, so when it is updated, rules will be re-compiled.
(WebKit::WebExtensionContext::compileDeclarativeNetRequestRules): Before compiling the rule, perform a lookup and check
the hash.
* Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionDeclarativeNetRequestRule.mm:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:

Canonical link: https://commits.webkit.org/271248@main
https://bugs.webkit.org/show_bug.cgi?id=265518
rdar://118931010

Reviewed by Antti Koivisto.

CSSSelectorList is an optimized data structure,
we should only construct it when it's actually needed (so not when empty or error)
and keep the editable CSSParserSelector data structure until then.

* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeStyleRule):
* Source/WebCore/css/parser/CSSSelectorParser.cpp:
(WebCore::parseCSSParserSelectorList):
(WebCore::parseCSSSelectorList):
(WebCore::CSSSelectorParser::consumeSelectorList):
(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeRelativeSelectorList):
(WebCore::CSSSelectorParser::consumeNestedSelectorList):
(WebCore::CSSSelectorParser::consumeForgivingSelectorList):
(WebCore::CSSSelectorParser::consumeComplexForgivingSelectorList):
(WebCore::CSSSelectorParser::consumeNestedComplexForgivingSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):
(WebCore::CSSSelectorParser::consumePseudo):
* Source/WebCore/css/parser/CSSSelectorParser.h:

Canonical link: https://commits.webkit.org/271290@main
@gsnedders
Copy link
Contributor Author

Is anything in this TestFailures directory still in use? It doesn't appear to be live on build.webkit.org.

webkit-patch garden-o-matic still works in principle, which creates a local server with this. It was last functionally changed in https://commits.webkit.org/199812@main (7353f00) in 2018.

That said, nobody has ever argued against its removal in https://bugs.webkit.org/show_bug.cgi?id=221991.

Maybe we could remove it, but this is a sufficiently minor change and it unblocks moving away from JSONP.

emw-apple and others added 13 commits November 29, 2023 11:24
…r/layers are flaky failures

https://bugs.webkit.org/show_bug.cgi?id=265536
rdar://118943342

Unreviewed test gardening.

Adding test expectation

* LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/271292@main
…ility-auto-state-changed-removed.html fails sometimes

https://bugs.webkit.org/show_bug.cgi?id=264414

Reviewed by Simon Fraser.

Change timing of checking whether the element to dispatch ContentVisibilityAutoStateChangeEvent to is connected to the
moment we try to dispatch, rather than the time we queue the dispatching task.

* Source/WebCore/dom/ContentVisibilityDocumentState.cpp:
(WebCore::ContentVisibilityDocumentState::checkRelevancyOfContentVisibilityElement const):

Canonical link: https://commits.webkit.org/271293@main
https://bugs.webkit.org/show_bug.cgi?id=265532
<rdar://problem/118941115>

Reviewed by Timothy Hatcher.

* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm: Added.
(WebKit::WebExtensionAPIDeclarativeNetRequest::updateEnabledRulesets):
(WebKit::WebExtensionAPIDeclarativeNetRequest::getEnabledRulesets):
(WebKit::WebExtensionAPIDeclarativeNetRequest::updateDynamicRules):
(WebKit::WebExtensionAPIDeclarativeNetRequest::getDynamicRules):
(WebKit::WebExtensionAPIDeclarativeNetRequest::updateSessionRules):
(WebKit::WebExtensionAPIDeclarativeNetRequest::getSessionRules):
(WebKit::WebExtensionAPIDeclarativeNetRequest::getMatchedRules):
(WebKit::WebExtensionAPIDeclarativeNetRequest::isRegexSupported):
(WebKit::WebExtensionAPIDeclarativeNetRequest::setExtensionActionOptions):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm:
(WebKit::WebExtensionAPINamespace::declarativeNetRequest):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIDeclarativeNetRequest.h: Added.
(WebKit::WebExtensionAPIDeclarativeNetRequest::maxNumberOfStaticRulesets const):
(WebKit::WebExtensionAPIDeclarativeNetRequest::maxNumberOfEnabledRulesets const):
(WebKit::WebExtensionAPIDeclarativeNetRequest::maxNumberOfDynamicAndSessionRules const):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIDeclarativeNetRequest.idl: Added.
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPINamespace.idl:

Canonical link: https://commits.webkit.org/271294@main
…apCheck

https://bugs.webkit.org/show_bug.cgi?id=265533

Reviewed by Antti Koivisto.

We can certainly find any type of inline level boxes next to ruby.

* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp:
(WebCore::Layout::RubyFormattingContext::annotationOverlapCheck const):

Canonical link: https://commits.webkit.org/271295@main
…/layers-for-node.html is timing out

https://bugs.webkit.org/show_bug.cgi?id=265535
rdar://118943372

Unreviewed test gardening.

Adding test expectation

* LayoutTests/platform/mac-wk1/TestExpectations:

This commit include:

[Gardening]: REGRESSION (271261@main): [ macOS wk1 ] inspector/layers/layers-for-node.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=265535
rdar://118943372

Unreviewed test gardening.

Adding test expectation

* LayoutTests/platform/mac-wk1/TestExpectations:

[Gardening]: REGRESSION (271261@main): [ macOS wk1 ] inspector/layers/layers-for-node.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=265535
rdar://118943372

Unreviewed test gardening.

Adding test expectation

* LayoutTests/platform/mac-wk1/TestExpectations:

Canonical link: https://commits.webkit.org/271296@main
…ated

https://bugs.webkit.org/show_bug.cgi?id=265534
rdar://118940171

Reviewed by Simon Fraser.

* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm:
(WebKit::UnifiedPDFPlugin::paintContents):
PDFKit handles the page transform itself.

Canonical link: https://commits.webkit.org/271297@main
https://bugs.webkit.org/show_bug.cgi?id=265493
rdar:///118907442

Reviewed by Alex Christensen.

This follows the same pattern as mouse/drag/touch events, where IPC is sent between the UI process and
web process until a hit test does not lead to an out-of-process frame.

I used the same `RemoteUserInputEventData` struct and coordinate correction logic as the other user input
events implemented for site isolation.

* LayoutTests/http/tests/site-isolation/resources/post-message-wheel-coordinates.html: Added.
* LayoutTests/http/tests/site-isolation/wheel-event-coordinates-expected.txt: Added.
* LayoutTests/http/tests/site-isolation/wheel-event-coordinates.html: Added.
* LayoutTests/platform/ios/TestExpectations:
* Source/WebCore/page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleWheelEventInternal):
* Source/WebCore/page/EventHandler.h:
* Source/WebCore/page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::wheelEvent):
* Source/WebCore/page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::passWheelEventToWidget):
* Source/WebKit/Shared/WebWheelEvent.h:
(WebKit::WebWheelEvent::setPosition):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::continueWheelEventHandling):
(WebKit::WebPageProxy::sendWheelEvent):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::dispatchWheelEvent):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::handleWheelEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::dispatchWheelEventWithoutScrolling):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:

Canonical link: https://commits.webkit.org/271298@main
https://bugs.webkit.org/show_bug.cgi?id=265488

Reviewed by Jonathan Bedard.

When searching through a line of source code use `finditer` instead of
`search` so multiple feature flags can be found on the same line.

Fix a typo while modifying the file.

* Tools/Scripts/webkitpy/featuredefines/matcher.py:
* Tools/Scripts/webkitpy/featuredefines/matcher_unittest.py:
* Tools/Scripts/webkitpy/featuredefines/search.py:

Canonical link: https://commits.webkit.org/271299@main
https://bugs.webkit.org/show_bug.cgi?id=256747

Reviewed by Patrick Angle.

`OffscreenCanvas` currently supports more than just `"2d"`, so Web Inspector should too.

* Source/JavaScriptCore/inspector/protocol/Canvas.json:
* Source/JavaScriptCore/inspector/protocol/Recording.json:
* Source/JavaScriptCore/inspector/scripts/codegen/generator.py:
* Source/WebCore/inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::releaseObjectForRecording):
Add `offscreen-*` variants for `bitmaprenderer`, `webgl`, and `webgl2`.
Drive-by: Fix an issue that prevented getting the content of an `OffscreenCanvas`.

* Source/WebInspectorUI/UserInterface/Models/Canvas.js:
(WI.Canvas.fromPayload):
(WI.Canvas.displayNameForContextType):
(WI.Canvas.displayNameForColorSpace):
(WI.Canvas.prototype.get supportsRecording): Added.
(WI.Canvas.prototype.get is2D): Added.
(WI.Canvas.prototype.get isBitmapRender): Added.
(WI.Canvas.prototype.get isWebGL): Added.
(WI.Canvas.prototype.get isWebGL2): Added.
(WI.Canvas.prototype.is2D): Deleted.
* Source/WebInspectorUI/UserInterface/Models/Recording.js:
(WI.Recording):
(WI.Recording.fromPayload):
(WI.Recording.displayNameForRecordingType):
(WI.Recording.prototype.get isCanvas): Added.
(WI.Recording.prototype.get isCanvas2D): Added.
(WI.Recording.prototype.get isCanvasBitmapRender): Added.
(WI.Recording.prototype.get isCanvasWebGL): Added.
(WI.Recording.prototype.get isCanvasWebGL2): Added.
(WI.Recording.prototype.createContext):
(WI.Recording.prototype.async _process):
(WI.Recording.is2D): Deleted.
Add helpers for identifying the context type regardless of whether it's from `HTMLCanvasElement` or `OffscreenCanvas` (since the API of the rendering context is (almost) identical in most cases).

* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:
(WI.RecordingAction._prototypeForType):
(WI.RecordingAction.prototype.process):
(WI.RecordingAction.prototype.process.getContent):
(WI.RecordingAction.prototype.async swizzle):
* Source/WebInspectorUI/UserInterface/Models/RecordingState.js:
(WI.RecordingState.prototype.fromCanvasContext2D): Renamed from `fromContext`.
(WI.RecordingState.async swizzleInitialState):
* Source/WebInspectorUI/UserInterface/Models/ShaderProgram.js:
(WI.ShaderProgram):
(WI.ShaderProgram.contextTypeSupportsProgramType):
(WI.ShaderProgram.prototype.get displayName):
(WI.ShaderProgram.prototype.set disabled):
(WI.ShaderProgram.prototype.showHighlight):
(WI.ShaderProgram.prototype.hideHighlight):
* Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.initialLayout):
* Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype._canvasChanged):
(WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
* Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView):
(WI.RecordingContentView.prototype.get navigationItems):
(WI.RecordingContentView.prototype.attached):
(WI.RecordingContentView.prototype._export):
(WI.RecordingContentView.prototype._updateExportButton):
(WI.RecordingContentView.prototype._handleExportNavigationItemClicked):
* Source/WebInspectorUI/UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
(WI.RecordingStateDetailsSidebarPanel.prototype.inspect):
(WI.RecordingStateDetailsSidebarPanel.prototype.set action):
* Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:
(WI.ShaderProgramContentView.prototype.get saveData):
* Source/WebInspectorUI/UserInterface/Views/ShaderProgramTreeElement.js:
(WI.ShaderProgramTreeElement):
(WI.ShaderProgramTreeElement.prototype.onattach):
(WI.ShaderProgramTreeElement.prototype.ondetach):
(WI.ShaderProgramTreeElement.prototype.populateContextMenu):
Use the new helpers instead of directly checking the `contextType`/`type` where able.

* Source/WebCore/inspector/InspectorFrontendHost.idl:
* Source/WebCore/inspector/InspectorFrontendHost.h:
* Source/WebCore/inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::getCurrentX const):
(WebCore::InspectorFrontendHost::getCurrentY const):
(WebCore::InspectorFrontendHost::getPath const):
(WebCore::InspectorFrontendHost::setPath const):
* Source/WebInspectorUI/UserInterface/Base/IDLExtensions.js:
Add IDL extensions for `OffscreenCanvasRenderingContext2D`.

* Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:

* LayoutTests/inspector/canvas/resources/recording-2d.js:
(async load):
* LayoutTests/inspector/canvas/resources/recording-bitmaprenderer.js:
(load):
* LayoutTests/inspector/canvas/resources/recording-webgl.js:
(load):
* LayoutTests/inspector/canvas/resources/recording-webgl2.js:
(load):
* LayoutTests/inspector/canvas/resources/shaderProgram-utilities-webgl.js:
(createProgram):
* LayoutTests/inspector/canvas/console-record-offscreen-bitmaprenderer.html: Added.
* LayoutTests/inspector/canvas/console-record-offscreen-bitmaprenderer-expected.txt: Added.
* LayoutTests/inspector/canvas/console-record-offscreen-canvas-2d.html:
* LayoutTests/inspector/canvas/console-record-offscreen-canvas-2d-expected.txt:
* LayoutTests/inspector/canvas/console-record-offscreen-webgl.html: Added.
* LayoutTests/inspector/canvas/console-record-offscreen-webgl-expected.txt: Added.
* LayoutTests/inspector/canvas/console-record-offscreen-webgl2.html: Added.
* LayoutTests/inspector/canvas/console-record-offscreen-webgl2-expected.txt: Added.
* LayoutTests/inspector/canvas/create-context-bitmaprenderer.html:
* LayoutTests/inspector/canvas/create-context-bitmaprenderer-expected.txt:
* LayoutTests/inspector/canvas/create-context-webgl.html:
* LayoutTests/inspector/canvas/create-context-webgl-expected.txt:
* LayoutTests/inspector/canvas/create-context-webgl2.html:
* LayoutTests/inspector/canvas/create-context-webgl2-expected.txt:
* LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-frameCount.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-frameCount-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-full.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-full-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-memoryLimit.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-bitmaprenderer-memoryLimit-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-frameCount.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-frameCount-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl-frameCount-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-full.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-full-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl-full-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-memoryLimit.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-memoryLimit-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl-memoryLimit-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-snapshots.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl-snapshots-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl-snapshots-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-frameCount.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-frameCount-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl2-frameCount-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-full.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-full-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl2-full-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-memoryLimit.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-memoryLimit-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl2-memoryLimit-expected.txt: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-snapshots.html: Added.
* LayoutTests/inspector/canvas/recording-offscreen-webgl2-snapshots-expected.txt: Added.
* LayoutTests/platform/mac-wk1/inspector/canvas/recording-offscreen-webgl2-snapshots-expected.txt: Added.
* LayoutTests/platform/gtk/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/271300@main
https://bugs.webkit.org/show_bug.cgi?id=265492
rdar://113292205

Reviewed by Tim Horton.

Make sure corner radii on CALayers use circular corner radius, rather than continuous corner radius.

* Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h: setCornerRadius: is API now.
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::setCornerRadius):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
* Source/WebKit/UIProcess/PDF/WKPDFHUDView.mm:
(-[WKPDFHUDView _setupLayer:]):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm:
(WebKit::updateLayersForInteractionRegions):
* Source/WebKit/UIProcess/ios/fullscreen/WKFullscreenStackView.mm:
(-[WKFullscreenStackView init]):
* WebKitLibraries/SDKs/watchos10.0-additions.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore.tbd: QuartzCore is SPI on watchOS so we have to add the symbol here.
* WebKitLibraries/SDKs/watchos9.0-additions.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore.tbd:
* WebKitLibraries/SDKs/watchsimulator10.0-additions.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore.tbd:
* WebKitLibraries/SDKs/watchsimulator9.0-additions.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore.tbd:

Canonical link: https://commits.webkit.org/271301@main
…media/media-source/mock-managedmse-bufferedchange.html is a flaky crash

https://bugs.webkit.org/show_bug.cgi?id=265549
rdar://118951399

Unreviewed test gardening.

Adding test expectation

* LayoutTests/platform/wk2/TestExpectations:

Canonical link: https://commits.webkit.org/271302@main
…ache

https://bugs.webkit.org/show_bug.cgi?id=265522

Reviewed by Antti Koivisto.

This is in preparation for supporting individual min/max computations.

* Source/WebCore/layout/formattingContexts/inline/InlineContentCache.h:
(WebCore::Layout::InlineContentCache::setMinimumContentSize):
(WebCore::Layout::InlineContentCache::setMaximumContentSize):
(WebCore::Layout::InlineContentCache::minimumContentSize const):
(WebCore::Layout::InlineContentCache::maximumContentSize const):
(WebCore::Layout::InlineContentCache::resetMinimumMaximumContentSizes):
(WebCore::Layout::InlineContentCache::setIntrinsicWidthConstraints): Deleted.
(WebCore::Layout::InlineContentCache::resetIntrinsicWidthConstraints): Deleted.
(WebCore::Layout::InlineContentCache::intrinsicWidthConstraints const): Deleted.
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicSizes):
(WebCore::Layout::InlineFormattingContext::maximumContentSize):

Canonical link: https://commits.webkit.org/271303@main
Smackteo and others added 5 commits November 29, 2023 15:05
… is a constant text failure (264293))

rdar://118020922
https://bugs.webkit.org/show_bug.cgi?id=264293

Unreviewed test gardening.

* LayoutTests/platform/ios/TestExpectations:

Canonical link: https://commits.webkit.org/271304@main
https://bugs.webkit.org/show_bug.cgi?id=264821
rdar://118404748

Reviewed by Alex Christensen.

This change propagates ignoreInvalidMessageForTesting to the
NetworkConnectionToWebProcess.

* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
* Source/WebKit/Shared/NetworkProcessConnectionParameters.h:
* Source/WebKit/Shared/NetworkProcessConnectionParameters.serialization.in:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):

Canonical link: https://commits.webkit.org/271305@main
https://bugs.webkit.org/show_bug.cgi?id=265543
rdar://118946789

Reviewed by Pascoe.

event.source should be the DOMWindow of the frame that sent the message,
even if it is a RemoteDOMWindow.  It shouldn't be the DOMWindow of the
frame that is receiving the message.

* LayoutTests/http/tests/site-isolation/post-message-expected.txt:
* LayoutTests/http/tests/site-isolation/post-message.html:
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::postMessageFromRemoteFrame):
* Source/WebCore/page/LocalDOMWindow.h:
* Source/WebCore/page/RemoteDOMWindow.cpp:
(WebCore::RemoteDOMWindow::postMessage):
* Source/WebCore/page/RemoteFrameClient.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::postMessageToRemote):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp:
(WebKit::WebRemoteFrameClient::postMessageToRemote):
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::remotePostMessage):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:

Canonical link: https://commits.webkit.org/271306@main
…eForProvisionalNavigationInProcess

https://bugs.webkit.org/show_bug.cgi?id=265550
rdar://118471432

Reviewed by Pascoe.

Similar to code in WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation
and WebPageProxy::continueNavigationInNewProcess, if we do anything asynchronous between
the point where we decide to use a process and the point where we actually start using it,
we need to make a shutdown preventing scope.  Otherwise, we hit the release assertion
in WebPageProxy::continueNavigationInNewProcess, which happened occasionally when loading
to and from complicated web pages with site isolation enabled.

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::continueNavigationInNewProcess):

Canonical link: https://commits.webkit.org/271307@main
https://bugs.webkit.org/show_bug.cgi?id=264886
rdar://118464614

Reviewed by Brady Eidson.

* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h:
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::typeFromObject):
* Source/WebKit/Shared/Cocoa/CoreIPCLocale.h: Copied from Source/WebKit/Shared/Cocoa/CoreIPCTypes.h.
(WebKit::CoreIPCLocale::identfier const):
* Source/WebKit/Shared/Cocoa/CoreIPCLocale.mm: Added.
(WebKit::CoreIPCLocale::isValidIdentifier):
(WebKit::CoreIPCLocale::CoreIPCLocale):
(WebKit::CoreIPCLocale::toID const):
(WebKit::CoreIPCLocale::canonicalLocaleStringReplacement):
* Source/WebKit/Shared/Cocoa/CoreIPCLocale.serialization.in: Added.
* Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.h:
* Source/WebKit/Shared/Cocoa/CoreIPCNSCFObject.mm:
(WebKit::valueFromID):
* Source/WebKit/Shared/Cocoa/CoreIPCTypes.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::changedLayerProperties const):
(WebKit::RemoteLayerTreeTransaction::changedLayerProperties):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::allocateBufferForBackingStore):
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm:
(TEST):

Canonical link: https://commits.webkit.org/271308@main
@gsnedders gsnedders added unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing and removed merging-blocked Applied to prevent a change from being merged labels Nov 29, 2023
https://bugs.webkit.org/show_bug.cgi?id=265467

Reviewed by Jonathan Bedard.

This parser is the only place where we actually require the JSONP
wrapper; instead migrate this to strip the wrapper in the same way as
Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/Utilities.js
before passing it to JSON.parse (which every major browser has supported
for over a decade).

* Tools/CISupport/build-webkit-org/public_html/TestFailures/scripts/NRWTResultsParser.js:
(NRWTResultsParser.prototype.ADD_RESULTS): Deleted.

Canonical link: https://commits.webkit.org/271309@main
@webkit-commit-queue
Copy link
Collaborator

Committed 271309@main (8a12b0a): https://commits.webkit.org/271309@main

Reviewed commits have been landed. Closing PR #21009 and removing active labels.

@webkit-commit-queue webkit-commit-queue removed the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Nov 29, 2023
@webkit-commit-queue webkit-commit-queue merged commit 8a12b0a into WebKit:main Nov 29, 2023
@gsnedders gsnedders deleted the ADD_RESULTS branch November 30, 2023 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tools / Tests Tools in the Tools directory, build issues, test infrastructure, and bugs in test cases
Projects
None yet