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

Merge upstream 2024-06-30 (qt6) #41

Merged
merged 8,403 commits into from
Aug 27, 2024
Merged

Merge upstream 2024-06-30 (qt6) #41

merged 8,403 commits into from
Aug 27, 2024

Conversation

mnutt
Copy link
Member

@mnutt mnutt commented Jul 3, 2024

Upstream changes up to 2024-06-30.

Notable:

cdumez and others added 30 commits June 30, 2024 17:37
https://bugs.webkit.org/show_bug.cgi?id=275707

Reviewed by Darin Adler.

* Source/WebCore/platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::getPixelBuffer):
(WebCore::ImageBufferBackend::putPixelBuffer):
* Source/WebCore/platform/graphics/ImageBufferBackend.h:
* Source/WebCore/platform/graphics/ShareableBitmap.cpp:
(WebCore::ShareableBitmap::span const):
(WebCore::ShareableBitmap::mutableSpan):
(WebCore::ShareableBitmap::data const): Deleted.
* Source/WebCore/platform/graphics/ShareableBitmap.h:
* Source/WebCore/platform/graphics/cg/GraphicsContextGLCG.cpp:
(WebCore::GraphicsContextGL::createNativeImageFromPixelBuffer):
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::create):
(WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend):
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h:
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::getPixelBuffer):
(WebCore::ImageBufferIOSurfaceBackend::putPixelBuffer):
* Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.cpp:
(WebCore::verifyImageBufferIsBigEnough):
(WebCore::encode):
* Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.h:
* Source/WebCore/platform/graphics/cg/ShareableBitmapCG.mm:
(WebCore::ShareableBitmap::createGraphicsContext):
(WebCore::ShareableBitmap::makeCGImage):
(WebCore::ShareableBitmap::releaseBitmapContextData):
* Source/WebCore/platform/graphics/cocoa/IOSurface.h:
* Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp:
(WebCore::CVPixelBufferGetBytePointerCallback):
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::getPixelBuffer):
(WebKit::ImageBufferShareableBitmapBackend::putPixelBuffer):

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

Reviewed by Darin Adler.

Further split up CSSPropertyParserHelpers into type specific files.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    - Add new files.

* Source/WebCore/css/parser/CSSPropertyParserConsumer+Ident.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Ident.h:
    - Move custom and dashed ident consumers.

* Source/WebCore/css/parser/CSSPropertyParserConsumer+Image.cpp: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Image.h: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.h.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Position.cpp: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Position.h: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.h.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+String.cpp: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+String.h: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.h.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+URL.cpp: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp.
* Source/WebCore/css/parser/CSSPropertyParserConsumer+URL.h: Copied from Source/WebCore/css/parser/CSSPropertyParserHelpers.h.
    - Move consume functions to new files.

* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
* Source/WebCore/css/parser/CSSPropertyParserHelpers.h:
    - Remove moved functions.

* Source/WebCore/css/parser/CSSPropertyParser.cpp:
* Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp:
* Source/WebCore/css/process-css-properties.py:
    - Update includes.

Canonical link: https://commits.webkit.org/280294@main
…ines

https://bugs.webkit.org/show_bug.cgi?id=275793
rdar://130373046

Reviewed by Per Arne Vollan.

Call inflate() only when the dirtyRect is going to be used.

* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::didDraw):

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

Reviewed by Michael Catanzaro.

In 279373@main I enabled the offscreen canvas settings by default, but I
forgot about the build option.

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:

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

Reviewed by Alicia Boya Garcia.

If we fail to push a buffer downstream we should post an error on the bus, GST_ELEMENT_ERROR takes
care of that. In that case the error message will be handled in the player, which will also dump the
pipeline graph, so there is no need to do that anymore from the source element.

Driving-by, the pipeline dumps generated by webkitmediasrc are now named according to the pipeline
they belong to, instead of hardcoding "playback-pipeline".

* Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(dumpPipeline):
(webKitMediaSrcLoop):

Canonical link: https://commits.webkit.org/280297@main
…layer

https://bugs.webkit.org/show_bug.cgi?id=275791
rdar://130369517

Reviewed by Eric Carlson.

Apply coding style to RemoteMediaPlayerManager::didReceivePlayerMessage.

* Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::didReceivePlayerMessage):

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

Reviewed by Tim Nguyen.

This patch sync upstream tests from:

Upstream commit: web-platform-tests/wpt@4eecf04

* LayoutTests/imported/w3c/web-platform-tests/editing/run/formatblock.html:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/formatblock_4001-last-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/editing/run/forwarddelete.html:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/forwarddelete_6001-last-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertorderedlist-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertorderedlist.html:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertparagraph.html:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertparagraph_6001-last-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertunorderedlist-expected.txt: Removed.
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertunorderedlist.html:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/undo-redo.html:
* LayoutTests/tests-options.json:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/formatblock_4001-5000-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/formatblock_5001-last-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/forwarddelete_6001-7000-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/forwarddelete_7001-last-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertorderedlist_1-1000-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertorderedlist_1001-last-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertparagraph_6001-7000-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertparagraph_7001-last-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertunorderedlist_1-1000-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertunorderedlist_1001-2000-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/editing/run/insertunorderedlist_2001-last-expected.txt:

Canonical link: https://commits.webkit.org/280299@main
…LoadStatistics/

https://bugs.webkit.org/show_bug.cgi?id=275747
rdar://129872343

Reviewed by Matthew Finkel and Sihui Liu.

* LayoutTests/http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
* LayoutTests/http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.html.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname.html.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname.html.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname.html.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname.html.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname.html.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.html.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.https-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname-expected.txt.
* LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.https.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.html.
* LayoutTests/http/tests/resourceLoadStatistics/cookie-deletion.html:
* LayoutTests/http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction.html:
* LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html:
* LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/managed-domains-third-party-resources-exempt-from-cookie-blocking.html:
* LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/third-party-cookie-blocking.html:
* LayoutTests/http/tests/resourceLoadStatistics/grandfathering.html:
* LayoutTests/http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html:
* LayoutTests/http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
* LayoutTests/http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html:
* LayoutTests/http/tests/resourceLoadStatistics/resources/secure-worker-importing-localhost-script.js: Added.
(onmessage):
* LayoutTests/http/tests/resourceLoadStatistics/resources/set-cookie.py:
* LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/gtk/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/platform/wincairo/TestExpectations:
* LayoutTests/platform/wk2/TestExpectations:

Canonical link: https://commits.webkit.org/280300@main
* Source/WebKit/WPEPlatform/wpe/wayland/CMakeLists.txt: Add WPEMonitorWayland.h to installed headers list.

Canonical link: https://commits.webkit.org/280301@main
…d by the key event callback

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

Reviewed by Michael Catanzaro.

Return early if the view is nullptr after the key event emission.

* Source/WebKit/WPEPlatform/wpe/wayland/WPEWaylandSeat.cpp:
(WPE::WaylandSeat::handleKeyEvent):

Canonical link: https://commits.webkit.org/280302@main
…rent

https://bugs.webkit.org/show_bug.cgi?id=275807
rdar://127219753

Reviewed by Dan Glastonbury.

All commands using the underlying context should make the context
current.

* Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::bindExternalImage):
(WebCore::GraphicsContextGLCocoa::enableFoveation):
(WebCore::GraphicsContextGLCocoa::disableFoveation):

Canonical link: https://commits.webkit.org/280303@main
…ument for alignment

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

Reviewed by Darin Adler.

It is easy to get the order of these parameters wrong otherwise, so we
adopt the template argument whenever we round up for stack alignment.

* Source/JavaScriptCore/b3/air/AirCCallingConvention.cpp:
(JSC::B3::Air::computeCCallingConvention):
* Source/JavaScriptCore/b3/air/AirCode.cpp:
(JSC::B3::Air::Code::addStackSlot):
* Source/JavaScriptCore/b3/air/AirCode.h:
(JSC::B3::Air::Code::requestCallArgAreaSizeInBytes):
* Source/JavaScriptCore/b3/air/AirStackAllocation.cpp:
* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
(JSC::InlineCacheCompiler::generateAccessCase):
(JSC::InlineCacheCompiler::emitProxyObjectAccess):
(JSC::getByIdGetterHandler):
(JSC::getByIdProxyObjectLoadHandler):
(JSC::putByIdSetterHandlerImpl):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
* Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
* Source/JavaScriptCore/jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::makeSpaceOnStackForCCall):
(JSC::AssemblyHelpers::reclaimSpaceOnStackForCCall):
* Source/JavaScriptCore/jit/JITCall.cpp:
(JSC::JIT::compileSetupFrame):
* Source/JavaScriptCore/jit/ScratchRegisterAllocator.cpp:
(JSC::ScratchRegisterAllocator::preserveRegistersToStackForCall):
(JSC::ScratchRegisterAllocator::restoreRegistersFromStackForCall):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addThrow):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCall):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitIndirectCall):
* Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::alignedFrameSize const):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCallRef):
* Source/JavaScriptCore/wasm/WasmBBQJIT32_64.h:
(JSC::Wasm::BBQJITImpl::BBQJIT::emitCCall):
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::alignedFrameSize const):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCallRef):
* Source/JavaScriptCore/wasm/WasmBBQJIT64.h:
(JSC::Wasm::BBQJITImpl::BBQJIT::emitCCall):
* Source/JavaScriptCore/wasm/WasmCallingConvention.h:
(JSC::Wasm::WasmCallingConvention::callInformationFor const):
(JSC::Wasm::CCallingConventionArmThumb2::callInformationFor const):
* Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::tryCreateInterpretedJSToWasmCallee):
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
(JSC::Wasm::OMGIRGenerator::computeStackCheckSize):
(JSC::Wasm::OMGIRGenerator::emitIndirectCall):
(JSC::Wasm::OMGIRGenerator::createTailCallPatchpoint):
(JSC::Wasm::OMGIRGenerator::addCall):
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp:
(JSC::Wasm::OMGIRGenerator::computeStackCheckSize):
(JSC::Wasm::OMGIRGenerator::emitIndirectCall):
(JSC::Wasm::OMGIRGenerator::createTailCallPatchpoint):
(JSC::Wasm::OMGIRGenerator::addCall):
* Source/JavaScriptCore/wasm/WasmThunks.cpp:
(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* Source/JavaScriptCore/wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
* Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

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

Reviewed by Darin Adler.

In r280167 the behaviour change was implemented to use the ongoing promise information
as a fallback to determine the script execution context, since the script execution context
may be gone in detached state. However, tests such as navigate-event/intercept-detach.html
show that there is no guarantee that there is any ongoing promise at all, so remove the
ASSERT and just return early in that case.

* Source/WebCore/page/Navigation.cpp:
(WebCore::Navigation::abortOngoingNavigation):

Canonical link: https://commits.webkit.org/280305@main
https://bugs.webkit.org/show_bug.cgi?id=275620
<radar://130058905>

Reviewed by Dan Glastonbury.

A compromised web process could overflow the calculations in
validateResolveQuerySet().

* Source/WebGPU/WebGPU/CommandEncoder.mm:
(WebGPU::validateResolveQuerySet):

Canonical link: https://commits.webkit.org/280306@main
WebKit-7619.1.21

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

Reviewed by Chris Dumez.

Adopt smart pointers for Document::existingAXObjectCache
usage, most AXObjectCache are not trivial and so far
some locations have been adapted to use a smart pointer,
this PR should cover all remaining callers of existingAXObjectCache.

Based on [alpha.webkit.UncountedCallArgsChecker] warnings.

* Source/WebCore/accessibility/AXImage.cpp:
(WebCore::AXImage::imageOverlayElements):
* Source/WebCore/dom/Node.cpp:
(WebCore::Node::removedFromAncestor):
(WebCore::Node::moveNodeToNewDocumentSlowCase):
* Source/WebCore/editing/Editing.cpp:
(WebCore::isEditableToAccessibility):
(WebCore::editableRootForPosition):
* Source/WebCore/html/ColorInputType.cpp:
(WebCore::ColorInputType::attributeChanged):
(WebCore::ColorInputType::didChooseColor):
* Source/WebCore/html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::setIndeterminate):
(WebCore::HTMLInputElement::setAutoFilledAndObscured):
(WebCore::HTMLInputElement::setShowAutoFillButton):
* Source/WebCore/html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::setSelectedState):
* Source/WebCore/html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didElementStateChange):
* Source/WebCore/html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::setValueCommon):
* Source/WebCore/html/InputType.cpp:
(WebCore::InputType::applyStep):
* Source/WebCore/html/ValidatedFormListedElement.cpp:
(WebCore::ValidatedFormListedElement::updateValidity):
* Source/WebCore/page/FocusController.cpp:
(WebCore::FocusController::setInitialFocus):
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::didLayout):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
* Source/WebCore/rendering/RenderMenuList.cpp:
(RenderMenuList::didAttachChild):
(RenderMenuList::didUpdateActiveOption):
* Source/WebCore/rendering/RenderWidget.cpp:
(WebCore::RenderWidget::willBeDestroyed):
(WebCore::RenderWidget::setWidget):
(WebCore::RenderWidget::styleDidChange):

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

Reviewed by Darin Adler.

* Source/JavaScriptCore/runtime/ArrayBuffer.h:
* Source/WTF/wtf/FileSystem.cpp:
(WTF::FileSystemImpl::appendFileContentsToFileHandle):
(WTF::FileSystemImpl::readOrMakeSalt):
(WTF::FileSystemImpl::readEntireFile):
* Source/WTF/wtf/FileSystem.h:
* Source/WTF/wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::readFromFile):
* Source/WTF/wtf/win/FileSystemWin.cpp:
(WTF::FileSystemImpl::readFromFile):
* Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:
(WebCore::FileSystemSyncAccessHandle::read):
* Source/WebCore/Modules/webcodecs/WebCodecsAudioData.cpp:
(WebCore::WebCodecsAudioData::copyTo):
* Source/WebCore/Modules/webcodecs/WebCodecsAudioDecoder.cpp:
(WebCore::WebCodecsAudioDecoder::decode):
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunk.cpp:
(WebCore::WebCodecsEncodedAudioChunk::copyTo):
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedAudioChunk.h:
(WebCore::WebCodecsEncodedAudioChunk::span const):
(WebCore::WebCodecsEncodedAudioChunk::data const): Deleted.
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunk.cpp:
(WebCore::WebCodecsEncodedVideoChunk::copyTo):
* Source/WebCore/Modules/webcodecs/WebCodecsEncodedVideoChunk.h:
(WebCore::WebCodecsEncodedVideoChunk::span const):
(WebCore::WebCodecsEncodedVideoChunk::data const): Deleted.
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp:
(WebCore::WebCodecsVideoDecoder::decode):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp:
(WebCore::WebCodecsVideoFrame::create):
(WebCore::WebCodecsVideoFrame::copyTo):
* Source/WebCore/bindings/js/BufferSource.h:
(WebCore::BufferSource::length const):
(WebCore::BufferSource::span const):
(WebCore::BufferSource::mutableSpan):
(WebCore::toNSData):
(WebCore::BufferSource::data const): Deleted.
(WebCore::BufferSource::mutableData const): Deleted.
* Source/WebCore/platform/FileHandle.cpp:
(WebCore::FileHandle::read):
* Source/WebCore/platform/FileStream.cpp:
(WebCore::FileStream::read):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::unmapFunction):
* Source/WebCore/platform/network/curl/CurlFormDataStream.cpp:
(WebCore::CurlFormDataStream::readFromFile):
* Source/WebKit/NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:
(WebKit::NetworkCache::IOChannel::read):
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
* Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GstElementHarness.cpp:
(TestWebKitAPI::TEST_F):

Canonical link: https://commits.webkit.org/280309@main
…inumVertexInstanceCount

https://bugs.webkit.org/show_bug.cgi?id=275569
<radar://129990531>

Reviewed by Tadeu Zagallo.

If the user does not call setVertexBuffer on a buffer which the pipeline
uses, we should treat the buffer's size as 0.

* LayoutTests/fast/webgpu/nocrash/poc-275569-expected.txt: Added.
* LayoutTests/fast/webgpu/nocrash/poc-275569.html: Added.
Add regression test.

* Source/WebGPU/WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::computeMininumVertexInstanceCount const):
* Source/WebGPU/WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::computeMininumVertexInstanceCount const):

Canonical link: https://commits.webkit.org/280310@main
…f legacyMainFrameProcess

https://bugs.webkit.org/show_bug.cgi?id=275784
rdar://130344439

Reviewed by Brady Eidson.

While reducing use of legacyMainFrameProcess I found a few of them were related to WKURLSchemeTask,
so I got that completely working with a test.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTreeTransaction):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::commitScrollingTreeState):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::startURLSchemeTask):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForNavigationInternal):
* Source/WebKit/UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::willPerformRedirection):
* Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setPromisedDataForImage):
(WebKit::WebPageProxy::executeSavedCommandBySelector):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::siteIsolatedViewAndDelegate):
(TestWebKitAPI::TEST(SiteIsolation, URLSchemeTask)):

Canonical link: https://commits.webkit.org/280311@main
…d/w3c/web-platform-tests/navigation-api/navigate-event/navigate-form-userInitiated.html is a consistent failure

https://bugs.webkit.org/show_bug.cgi?id=275822
rdar://130441062

Unreviewed test gardening.

Adding test expectation.

* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/280312@main
https://bugs.webkit.org/show_bug.cgi?id=275655
rdar://130131152

Reviewed by Yijia Huang.

* Source/JavaScriptCore/assembler/AssemblerBuffer.cpp:
* Source/JavaScriptCore/assembler/AssemblerBuffer.h:
(JSC::AssemblerLabel::offset const):
(JSC::AssemblerLabel::setOffset):
(JSC::AssemblerDataImpl::AssemblerDataImpl):
(JSC::AssemblerDataImpl::~AssemblerDataImpl):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::~AssemblerBuffer):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::grow):
(JSC::AssemblerBuffer::outOfLineGrow):
* Source/JavaScriptCore/assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::allocate):
* Source/JavaScriptCore/assembler/LinkBuffer.h:
* Source/WTF/wtf/PlatformEnable.h:

Canonical link: https://commits.webkit.org/280313@main
https://bugs.webkit.org/show_bug.cgi?id=275781
rdar://130337376

Reviewed by Justin Michaud.

This patch adds pre-generated LLInt Polymorphic Call IC code. As a result, LLInt w/o JIT can fully use the same
Polymorphic Call IC as the same to JIT version (and this is possible now since we no longer generate any code for Call IC).

* Source/JavaScriptCore/bytecode/BytecodeList.rb:
* Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::clearStub):
(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::revertCallToStub):
(JSC::DataOnlyCallLinkInfo::initialize):
(JSC::CallLinkInfo::setStub):
* Source/JavaScriptCore/bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::stub const):
(JSC::CallLinkInfo::offsetOfStub):
(JSC::CallLinkInfo::forEachDependentCell const):
(JSC::CallLinkInfo::allowStubs const): Deleted.
(JSC::CallLinkInfo::disallowStubs): Deleted.
* Source/JavaScriptCore/bytecode/CallLinkInfoBase.cpp:
(JSC::CallLinkInfoBase::unlinkOrUpgrade):
* Source/JavaScriptCore/bytecode/CallLinkInfoBase.h:
* Source/JavaScriptCore/bytecode/Repatch.cpp:
(JSC::linkSlowFor):
(JSC::linkMonomorphicCall):
(JSC::linkPolymorphicCall):
(JSC::ecmaModeFor):
* Source/JavaScriptCore/bytecode/RepatchInlines.h:
(JSC::linkFor):
* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
* Source/JavaScriptCore/heap/JITStubRoutineSet.cpp:
(JSC::JITStubRoutineSet::~JITStubRoutineSet):
(JSC::JITStubRoutineSet::add):
(JSC::JITStubRoutineSet::prepareForConservativeScan):
(JSC::JITStubRoutineSet::clearMarks):
(JSC::JITStubRoutineSet::markSlow):
(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):
(JSC::JITStubRoutineSet::traceMarkedStubRoutines):
* Source/JavaScriptCore/heap/JITStubRoutineSet.h:
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:
(JSC::GCAwareJITStubRoutine::makeGCAware):
(JSC::GCAwareJITStubRoutine::removeDeadOwners):
* Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h:
* Source/JavaScriptCore/jit/JITStubRoutine.cpp:
(JSC::JITStubRoutine::runWithDowncast):
* Source/JavaScriptCore/jit/JITStubRoutine.h:
* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp:
(JSC::PolymorphicCallStubRoutine::markRequiredObjectsImpl):
(JSC::PolymorphicCallStubRoutine::markRequiredObjectsInternalImpl): Deleted.
* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h:
* Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_polymorphic_call):
* Source/JavaScriptCore/llint/LLIntSlowPaths.h:
* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:

Canonical link: https://commits.webkit.org/280314@main
https://bugs.webkit.org/show_bug.cgi?id=275815
rdar://129022920

Reviewed by Per Arne Vollan.

On Mac, we are getting spurious os_log_faults because LaunchServices is registering for a notifyd
notification with the prefix `com.apple.coreservices.launchservices.session` and this isn't on the
list of allowlisted notification prefixes for that process.

WebContent actually blocks connections to LaunchServices at runtime (via a call to
`_LSSetApplicationLaunchServicesServerConnectionStatus`), so we actually don't care or need LS to
get those notifications. The issue is that call has to happen late in WebContent initialization and
by that time LS has already registered for that notification.

To fix this, notifyd now allows us to specify prefixes in the notification allowlist. Since we don't
care about this notification being forwarded to the WebContent process, add it to the list of
non-forwarded entitled notifications.

* Source/WebKit/Scripts/process-entitlements.sh:

Canonical link: https://commits.webkit.org/280315@main
https://bugs.webkit.org/show_bug.cgi?id=275821
<rdar://problem/130438575>

Reviewed by Justin Michaud and Yijia Huang.

This change implements stage 3 proposal [1] to remove [[VarNames]] from global object,
which purpose was to prevent redeclaration of `var` and `function` bindings that were
declared via eval().

However, those bindings are configurable and thus still were redeclarable following `delete`.
The proposal simplified both mental model of redeclaration constraints and its implementation.

This patch effectively reverts [2] and aligns JSC with V8.

[1]: https://github.com/tc39/proposal-redeclarable-global-eval-vars
[2]: WebKit/WebKit#17662

* JSTests/stress/global-add-function-should-not-be-shadowed-by-lexical-bindings.js:
* JSTests/stress/global-add-var-should-not-be-shadowed-by-lexical-bindings.js:
* JSTests/stress/has-var-declaration.js:
* JSTests/test262/expectations.yaml: Mark 1 test as passing.
* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createGlobalFunctionBinding):
(JSC::JSGlobalObject::addStaticGlobals):
(JSC::JSGlobalObject::deleteProperty): Deleted.
* Source/JavaScriptCore/runtime/JSGlobalObject.h:
* Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::createGlobalVarBinding):
(JSC::JSGlobalObject::hasVarDeclaration): Deleted.
* Source/JavaScriptCore/runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):

Canonical link: https://commits.webkit.org/280316@main
…ium_directories assert fail due to creating overlapping directories

https://bugs.webkit.org/show_bug.cgi?id=275820
rdar://129774839

Reviewed by Yusuke Suzuki.

There are some edge cases that can cause pas_segregated_heap_ensure_size_directory_for_size()
to create a new directory that overlaps the next largest directory, i.e.
the new directory's object_size index is greater than the next largest's
min_index. One case in which this can occur is after entering mini mode,
which forces bitfit. A side effect of that is that the "ideal object size"
computation changes, which can lead to this overlap.

There are three possible solutions:
1. Extend the directory for the next largest size class (candidate) down
to the new install_index. However, after this solution can lead to
pathologically large directories if given the a particular sequence of
allocates. This is because then the candidate is extended based on the
min_index, which then could continue decreasing after each allocate.
Normally, size classes are extended based only on the candidate's
object_size, which doesn't change once the directory is created.

2. Trim the lower bound of the next biggest directory (candidate) if the
new directory would overlap the candidate min_index. This appears to be
unsafe if the candidate is bitfit given the comment in the code that does
similar trimming for result.
       /* Bitfit size directories claim super high alignment, so they should never get replaced. This is a
           hard requirement, since:

           - pas_bitfit_size_class is allocated as part of the pas_segregated_size_directory.
           - We cannot add duplicate bitfit_size_classes, so if we ever tried to replace a
             segregated_size_directory with another one of the same size, and they both had bitfit_size_classes,
             then we'd be in trouble. */
        PAS_ASSERT(!pas_segregated_size_directory_is_bitfit(result));

3. Cap the new directory's object_size at the next largest directories
min_index. Bumping of the new directory's object_size to the ideal
object size appears to be an optimization and so it is safe to not do
this if it would create overlapping directories.

Some of the existing libpas chaos test cases do hit this case, but it
goes unnoticed because the overlapping directories are small, not medium.
The assert that made this problem apparent is only for medium directories
(to verify their index can be binary searched). While this doesn't cause
an assert with small directories, it seems that overlapping directories
should not be allowed for small directories either as it can lead to
inconsistencies. For example, if the index tables need to be
dematerialized we may index to a different set of directories then were
indexed previously.

So I've added a libpas test case that does trigger the medium director
assert without this fix.

* Source/bmalloc/libpas/src/libpas/pas_bitfit_heap.c:
(pas_bitfit_heap_select_variant):
* Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c:
(pas_segregated_heap_ensure_size_directory_for_size):
* Source/bmalloc/libpas/src/test/BmallocTests.cpp:
(std::testBmallocForceBitfitAfterAlloc):
(addBmallocTests):

Canonical link: https://commits.webkit.org/280317@main
https://bugs.webkit.org/show_bug.cgi?id=275814
rdar://129366857

Reviewed by Eric Carlson.

Added a boolean -_hasActiveNowPlayingSession property to WKWebView that indicates when the web view
has an active Now Playing session. The property is key-value observable. This is achieved by teching
MediaSessionManagerCocoa to set a isActiveNowPlayingSession boolean on each PlatformMediaSession
when updating Now Playing information. PlatformMediaSession notifies its client when this value
changes, ultimately telling Page to set a 0-delay timer to check whether the Page has an active
Now Playing session (the timer coalesces updates in the case where one PlatformMediaSession becomes
inactive and another becomes active). When the timer fires, Page asks PlatformMediaSessionManager if
any media session in the page's media session group identifier has an active Now Playing session. If
this computed value changes then a message is sent to WebPageProxy that ultimately changes the value
of -_hasActiveNowPlayingSession.

Added API tests.

* Source/WebCore/Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::isActiveNowPlayingSessionChanged):
* Source/WebCore/Modules/webaudio/AudioContext.h:
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::isActiveNowPlayingSessionChanged):
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::hasActiveNowPlayingSessionChanged):
* Source/WebCore/page/Page.cpp:
(WebCore::m_activeNowPlayingSessionUpdateTimer):
(WebCore::Page::hasActiveNowPlayingSessionChanged):
(WebCore::Page::activeNowPlayingSessionUpdateTimerFired):
(WebCore::m_writingToolsController): Deleted.
* Source/WebCore/page/Page.h:
(WebCore::Page::hasActiveNowPlayingSession const):
* Source/WebCore/platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::setActiveNowPlayingSession):
* Source/WebCore/platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSession::isActiveNowPlayingSession const):
* Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::hasActiveNowPlayingSessionInGroup):
* Source/WebCore/platform/audio/PlatformMediaSessionManager.h:
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h:
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::updateActiveNowPlayingSession):
(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):
* Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::activeVideoRouteDidChange):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::hasActiveNowPlayingSessionChanged):
* Source/WebKit/UIProcess/PageClient.h:
(WebKit::PageClient::hasActiveNowPlayingSessionChanged):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::hasActiveNowPlayingSessionChanged):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::hasActiveNowPlayingSessionChanged):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::hasActiveNowPlayingSessionChanged):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/NowPlayingSession.mm: Added.
(-[NowPlayingSessionObserver observeValueForKeyPath:ofObject:change:context:]):
(TEST(NowPlayingSession, NoSession)):
(TEST(NowPlayingSession, HasSession)):
(TEST(NowPlayingSession, NavigateAfterHasSession)):

Canonical link: https://commits.webkit.org/280318@main
…ng initial animation.

https://bugs.webkit.org/show_bug.cgi?id=275700
rdar://130217887

Reviewed by Richard Robinson.

Perviously, I was using the sessionUUID for the first animation. This has made it difficult
to write clean and compartmentalized code, and caused issues where the wrong UUID was used.
This patch separated these into two separate concepts, and added mapping storage in the animation
controller. I also clean up some of the naming for the clean up code, and generally make the code
easier to understand.

* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::removeTextAnimationForAnimationID):
(WebCore::ChromeClient::removeTransparentMarkersForSessionID):
(WebCore::ChromeClient::removeInitialTextAnimation):
(WebCore::ChromeClient::addInitialTextAnimation):
(WebCore::ChromeClient::removeTextAnimationForID): Deleted.
(WebCore::ChromeClient::cleanUpTextAnimationsForSessionID): Deleted.
* Source/WebCore/page/writing-tools/WritingToolsController.mm:
(WebCore::WritingToolsController::didBeginWritingToolsSession):
(WebCore::WritingToolsController::proofreadingSessionDidReceiveSuggestions):
(WebCore::WritingToolsController::compositionSessionDidReceiveTextWithReplacementRange):
(WebCore::WritingToolsController::didEndWritingToolsSession):
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _addTextAnimationForAnimationID:withData:]):
(-[WKWebView _removeTextAnimationForAnimationID:]):
(-[WKWebView didBeginWritingToolsSession:contexts:]):
(-[WKWebView _enableSourceTextAnimationAfterElementWithID:]):
(-[WKWebView _enableFinalTextAnimationForElementWithID:]):
(-[WKWebView _disableTextAnimationWithUUID:]):
(-[WKWebView _addTextAnimationTypeForID:withData:]): Deleted.
(-[WKWebView _removeTextAnimationForID:]): Deleted.
(-[WKWebView beginWritingToolsAnimationForSessionWithUUID:]): Deleted.
(-[WKWebView endWritingToolsAnimationForSessionWithUUID:]): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::addTextAnimationForAnimationID):
(WebKit::PageClientImplCocoa::removeTextAnimationForAnimationID):
(WebKit::PageClientImplCocoa::addTextAnimationTypeForID): Deleted.
(WebKit::PageClientImplCocoa::removeTextAnimationForID): Deleted.
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::addTextAnimationForAnimationID):
(WebKit::WebPageProxy::removeTextAnimationForAnimationID):
(WebKit::WebPageProxy::addTextAnimationTypeForID): Deleted.
(WebKit::WebPageProxy::removeTextAnimationForID): Deleted.
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WKSTextAnimationManager.h:
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView addTextAnimationForAnimationID:withStyleType:]):
(-[WKContentView removeTextAnimationForAnimationID:]):
(-[WKContentView addTextAnimationTypeForID:withStyleType:]): Deleted.
(-[WKContentView removeTextAnimationForID:]): Deleted.
* Source/WebKit/UIProcess/mac/WKTextAnimationManager.h:
* Source/WebKit/UIProcess/mac/WKTextAnimationManager.mm:
(-[WKTextAnimationManager addTextAnimationForAnimationID:withData:]):
(-[WKTextAnimationManager removeTextAnimationForAnimationID:]):
(-[WKTextAnimationManager restoreTextAnimationType]):
(-[WKTextAnimationManager addTextAnimationTypeForID:withData:]): Deleted.
(-[WKTextAnimationManager removeTextAnimationForID:]): Deleted.
* Source/WebKit/UIProcess/mac/WebViewImpl.h:
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::addTextAnimationForAnimationID):
(WebKit::WebViewImpl::removeTextAnimationForAnimationID):
(WebKit::WebViewImpl::addTextAnimationTypeForID): Deleted.
(WebKit::WebViewImpl::removeTextAnimationForID): Deleted.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebKitSwift/TextAnimation/TextAnimationManager.swift:
(beginEffect(for:style:)):
(endEffect(for:)):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::removeTextAnimationForAnimationID):
(WebKit::WebChromeClient::removeTransparentMarkersForSessionID):
(WebKit::WebChromeClient::removeInitialTextAnimation):
(WebKit::WebChromeClient::addInitialTextAnimation):
(WebKit::WebChromeClient::removeTextAnimationForID): Deleted.
(WebKit::WebChromeClient::cleanUpTextAnimationsForSessionID): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/TextAnimationController.h: Renamed from Source/WebKit/WebProcess/WebPage/TextAnimationController.h.
* Source/WebKit/WebProcess/WebPage/Cocoa/TextAnimationController.mm:
(WebKit::TextAnimationController::contextRangeForTextAnimationID const):
(WebKit::TextAnimationController::removeTransparentMarkersForSessionID):
(WebKit::TextAnimationController::removeInitialTextAnimation):
(WebKit::TextAnimationController::addInitialTextAnimation):
(WebKit::TextAnimationController::addSourceTextAnimation):
(WebKit::TextAnimationController::addDestinationTextAnimation):
(WebKit::TextAnimationController::updateUnderlyingTextVisibilityForTextAnimationID):
(WebKit::TextAnimationController::createTextIndicatorForTextAnimationID):
(WebKit::TextAnimationController::contextRangeForTextAnimationType const): Deleted.
(WebKit::TextAnimationController::cleanUpTextAnimationsForSessionID): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::addTextAnimationForAnimationID):
(WebKit::WebPage::removeTextAnimationForAnimationID):
(WebKit::WebPage::removeTransparentMarkersForSessionID):
(WebKit::WebPage::removeInitialTextAnimation):
(WebKit::WebPage::addInitialTextAnimation):
(WebKit::WebPage::addTextAnimationTypeForID): Deleted.
(WebKit::WebPage::removeTextAnimationForID): Deleted.
(WebKit::WebPage::cleanUpTextAnimationsForSessionID): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:

Canonical link: https://commits.webkit.org/280319@main
https://bugs.webkit.org/show_bug.cgi?id=275837
rdar://130469910

Reviewed by Charlie Wolfe.

In order to add optional parameters to sendToProcessContainingFrame I needed to rename one to
sendWithAsyncReplyToProcessContainingFrame.

* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(WKPageDrawPagesToPDF):
* Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::getComputedRole):
(WebKit::WebAutomationSession::getComputedLabel):
(WebKit::WebAutomationSession::selectOptionElement):
(WebKit::WebAutomationSession::setFilesForInputFileUpload):
(WebKit::WebAutomationSession::viewportInViewCenterPointOfElement):
(WebKit::WebAutomationSession::takeScreenshot):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::dragEnded):
(WebKit::WebPageProxy::sendMouseEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::sendKeyEvent):
(WebKit::WebPageProxy::sendGestureEvent):
(WebKit::WebPageProxy::sendPreventableTouchEvent):
(WebKit::WebPageProxy::sendUnpreventableTouchEvent):
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPageProxy::setTextIndicatorFromFrame):
(WebKit::WebPageProxy::showPopupMenuFromFrame):
(WebKit::WebPageProxy::showContextMenuFromFrame):
(WebKit::WebPageProxy::beginPrinting):
(WebKit::WebPageProxy::computePagesForPrinting):
(WebKit::WebPageProxy::drawRectToImage):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::didPerformImmediateActionHitTest):
(WebKit::WebPageProxy::sendWithAsyncReplyToProcessContainingFrame):
(WebKit::WebPageProxy::sendToProcessContainingFrame):
(WebKit::WebPageProxy::sendScrollPositionChangedForNode):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(-[WKPrintingView _drawPreview:]):

Canonical link: https://commits.webkit.org/280320@main
https://bugs.webkit.org/show_bug.cgi?id=275836
rdar://130038973

Reviewed by Yijia Huang.

Non Int32 / Contiguous / Double can have CoW arrays. So DFG ArrayMode should not use CoW array related classes
for non appropriate array types.

* Source/JavaScriptCore/dfg/DFGArrayMode.h:
(JSC::DFG::ArrayMode::withProfile const):

Canonical link: https://commits.webkit.org/280321@main
https://bugs.webkit.org/show_bug.cgi?id=275808
rdar://problem/130404826

Reviewed by Dan Glastonbury

Contains upstream commits:
git log --oneline b150bcb873b8df30bfdb8000461dc8482ffaabc5..0c7331dfe71de0a3afc85106dce8b4948adbd5dd --pretty=%h %s
0c7331dfe7 Roll Chromium from 998b94d44e82 to dd0b2a0bee86 (601 revisions)
3c472b4502 Vulkan: Fail if texture bound to MSRTT w/o support
6f33eddc72 Vulkan: Bugfix in FindSupportedFormat
48969c95f8 GL: Implement QCOM_tiled_rendering
3be15cb046 GL: Limit uniform block size to 64KB
12028222f5 Metal: Clear visibility result buffer before use
e3c8d57b1c GL: Fix glClearTexImage for LUMA textures
3f57290520 Add basic begin/end support for perf counters
29f9a8c638 Roll Chromium from e9b6b20cee41 to 998b94d44e82 (1373 revisions)
95d6e34766 Roll vulkan-deps from 83e9eca04a1b to 30f8ac1a3f18 (8 revisions)
e53b3ad723 Vulkan: Extend coherent adv blend to emulated path
a1dea207ed Implement KHR_blend_equation_advanced_coherent
05801537a0 Vulkan: Add feature for coherent blend advanced op
0b888d5082 Add KHR_blend_equation_advanced_coherent
e30871281e Tighten FixedVector access asserts
54c4817769 GCC: Define MemoryAllocInfoMapKey's hash before using in unordered_map
0d6869c2d9 Roll vulkan-deps from 37a9cc2d9a06 to 83e9eca04a1b (5 revisions)
800ca8d38b Revert "GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm"
92148c2cbb GL: Implement GL_EXT_clear_texture.
1160fda7b7 GL: Re-enable sRGB and BGRA8 extensions
b99166882b Roll vulkan-deps from f2b13f01a465 to 37a9cc2d9a06 (5 revisions)
37b2487b46 Add LunarG api dump layer to ANGLE vulkan back-end
1917377f7b Capture/Replay: Write comments to the capture
aeff80f1dd Android perf tests: add ATrace counters for trace loops
a04239d8e9 ESSL -> WGSL: Emit most types and function params
e768aed37e GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm
ba341ef86c Add Revision: fields to third parties
223027e8fe Roll chromium_revision 865aca6c93..e9b6b20cee (1315671:1316480)
e1f0cb943b Replace issue ids post migration to new issue tracker - 2
d193d51bf8 Replace issue ids post migration to new issue tracker
10a98f4416 Add ClipControlTest.DepthFragCoord test
3da4093b1c Roll vulkan-deps from 9a192baf7bc7 to f2b13f01a465 (3 revisions)
6ac374467b Vulkan: Add feature for VK_KHR_maintenance5
d83f7beadc Vulkan: Roll volk
e070705663 Manual roll vulkan-deps from 897d900fc1b1 to 9a192baf7bc7 (6 revisions)
5703bd6115 Vulkan: Further optimize ProgramExecutableVk::resetLayout
975e9414ff CL: Initial commit for ANCLE documentation
d074491655 Vulkan: Smaller PackedDescriptorSetBinding
cdc541de11 Roll SwiftShader from 085997ddb08b to cea33ab2d5ad (1 revision)
2683633984 Roll vulkan-deps from 42ee85cf2154 to 897d900fc1b1 (10 revisions)
7f70cd0da2 Roll Chromium from 972874fcbdf2 to 865aca6c93b1 (613 revisions)
d521dd08be Metal: Set write dependency when calling fillBuffer
c7f2f84e2a Skip CopyTextureTest.CopyOutsideMipmap/ES2_OpenGL on NV
ed091d30fe Change siso path
e799084076 Manual roll VK-GL-CTS from 1c5f78753fd9 to c201252e6fbe (8 revisions)
2d8e15f87b Add stubs for GL_QCOM_tiled_rendering
60e8ea7e49 GL: Don't sync redundant texture state.
8007cad451 Android tests: run perf tests on temp_band < 30C bots
bcb567a7f8 Roll vulkan-deps from 7db4057407f4 to 42ee85cf2154 (8 revisions)
b100fd57e5 Roll Chromium from d9c3e9b06f65 to 972874fcbdf2 (598 revisions)
165b85b692 Vulkan: Disable VK_EXT_shader_stencil_export on SwiftShader
8ae918599a Vulkan: Optimize ProgramExecutableVk::resetLayout
06f1b72f55 Vulkan: Bugfix in MSRTT emulation
479c950ea5 D3D11: Implement fragment shader image2D layout updates
decaefc9a2 D3D11: Generalize shader image2D layout cache
973e5261a0 Roll third_party/dawn/ ff26bfbd4..6cdf3a1a1 (180 commits; 3 trivial rolls)
53fdd3b197 Vulkan: Remove suppression for fixed syncval error
e34a6b317d Roll vulkan-deps from 9a693759186a to 7db4057407f4 (4 revisions)

Canonical link: https://commits.webkit.org/280322@main
@chaplin89
Copy link

chaplin89 commented Jul 18, 2024

Hi @mnutt , is this still a work in progress? Seems like something is not compiling, at least for me.
In particular I can't get the gstreamer/audio part to compile. Are you excluding those during the compilation or can you explain how are you compiling it?

Thanks!

When destroying the page, we iterate over the loaders and cancel them.
Some of those loaders may have javascript event loaders attached, and
since the page is being destroyed we don't want to fire those. This is
controlled by LocalDOMWindow::isStopping, so we need to ensure we stop
the domWindow before we move forward destroying the page.
@mnutt
Copy link
Member Author

mnutt commented Jul 31, 2024

@chaplin89 sorry about that, I had hoped to get it done before I went on vacation but didn't quite get there.

You're totally right about GStreamer. It has unfortunately been broken for a while but was default-disabled in previous releases but now isn't. I looked at it for a few days and have a separate branch with it compiling with USE_GSTREAMER=ON, but videos aren't actually displaying yet. So I may disable in the build for now and continue working on that.

@chaplin89
Copy link

@mnutt thanks for the answer, no worries!

I'm not much interested in gstreamer, I was wondering about that only because it was breaking the compilation and I was wondering if I was missing something.

Sorry I have another question, do you have any instructions to build this on windows? I'm interested in the project and I can potentially help with something. I was wondering how to build it on windows without much trial and error (if you are still supporting windows in your fork). Thank you!

@mnutt
Copy link
Member Author

mnutt commented Aug 27, 2024

@chaplin89 unfortunately I don't really use windows so haven't been testing it there. I'd definitely contributions to get windows support working, though!

@mnutt
Copy link
Member Author

mnutt commented Aug 27, 2024

I've disabled GStreamer support on Linux for the time being, in order to move things forward.

@mnutt mnutt merged commit 9a33154 into master Aug 27, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.