WebKit.git
5 min ago[JSC] Introduce unlinked StructureStubInfo into uDFG master
ysuzuki@apple.com [Thu, 26 May 2022 08:13:02 +0000 (08:13 +0000)]
[JSC] Introduce unlinked StructureStubInfo into uDFG
https://bugs.webkit.org/show_bug.cgi?id=240557

Reviewed by Saam Barati.

This patch introduces unlinked StructureStubInfo into uDFG. To make it work, we refactor existing StructureStubInfo mechanism
to make unlinked StructureStubInfo first citizen instead of adhoc code.

1. JITXXXGenerator takes CompileTimeStructureStubInfo as its argument. It is variant of unlinked / linked StructureStubInfo. And we configure
   registers etc. in one place. JITXXXGenerator sets necessary fields for each type of StructureStubInfo so we have massive less code in
   Baseline and uDFG.
2. DFG::JITCompiler::LinkableConstant takes DFG::JITCompiler instead of DFG::Graph to make code simpler.
3. Introduce DFG::LinkerIR, which is currently just a constant pool. We will eventually extend it to support many uDFG LinkerIR opcodes.
4. Clean up some of unused registers in some JITXXXGenerator to make code simpler.
5. Rename useDataICInOptimizingJIT to useDataICInFTL and use it only for FTL. That flag was used to keep maintaining DataIC in DFG / FTL,
   and in uDFG case, we already have forceUnlinkedDFG flag.

* Tools/Scripts/run-jsc-stress-tests:
* JSTests/microbenchmarks/deltablue-varargs.js:
* JSTests/microbenchmarks/richards-try-catch.js:
* Source/JavaScriptCore/bytecode/AccessCase.cpp:
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeJITInlineCaches):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::useDataIC const):
* Source/JavaScriptCore/bytecode/CodeBlock.h:
(JSC::CodeBlock::useDataIC const): Deleted.
* Source/JavaScriptCore/bytecode/InlineAccess.cpp:
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::getScratchRegister):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::generateStringLength):
(JSC::InlineAccess::generateSelfInAccess):
* Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:
(JSC::AccessGenerationState::makeDefaultScratchAllocator):
(JSC::PolymorphicAccess::regenerate):
* Source/JavaScriptCore/bytecode/PolymorphicAccess.h:
(JSC::AccessGenerationState::AccessGenerationState):
* Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:
(JSC::slowOperationFromUnlinkedStructureStubInfo):
(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):
(JSC::StructureStubInfo::initializeFromDFGUnlinkedStructureStubInfo):
(JSC::StructureStubInfo::checkConsistency):
* Source/JavaScriptCore/bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::valueRegs const):
(JSC::StructureStubInfo::propertyRegs const):
(JSC::StructureStubInfo::baseRegs const):
(JSC::StructureStubInfo::thisValueIsInExtraGPR const):
(JSC::StructureStubInfo::thisGPR const):
(JSC::StructureStubInfo::prototypeGPR const):
(JSC::StructureStubInfo::propertyGPR const):
(JSC::StructureStubInfo::brandGPR const):
(JSC::StructureStubInfo::thisValueIsInThisGPR const): Deleted.
* Source/JavaScriptCore/dfg/DFGInlineCacheWrapperInlines.h:
(JSC::DFG::InlineCacheWrapper<GeneratorType>::finalize):
* Source/JavaScriptCore/dfg/DFGJITCode.cpp:
(JSC::DFG::JITData::JITData):
* Source/JavaScriptCore/dfg/DFGJITCode.h:
(JSC::DFG::LinkerIR::ValueHash::hash):
(JSC::DFG::LinkerIR::ValueHash::equal):
(JSC::DFG::LinkerIR::ValueTraits::emptyValue):
(JSC::DFG::LinkerIR::ValueTraits::constructDeletedValue):
(JSC::DFG::LinkerIR::ValueTraits::isDeletedValue):
(JSC::DFG::LinkerIR::LinkerIR):
(JSC::DFG::LinkerIR::size const):
(JSC::DFG::LinkerIR::at const):
(JSC::DFG::JITData::create):
* Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::loadConstant):
(JSC::DFG::JITCompiler::LinkableConstant::LinkableConstant):
(JSC::DFG::JITCompiler::addToConstantPool):
(JSC::DFG::JITCompiler::addStructureStubInfo):
* Source/JavaScriptCore/dfg/DFGJITCompiler.h:
* Source/JavaScriptCore/dfg/DFGPlan.cpp:
(JSC::DFG::Plan::finalizeJITData):
(JSC::DFG::Plan::addLinkableConstant): Deleted.
* Source/JavaScriptCore/dfg/DFGPlan.h:
* Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h:
(JSC::DFG::slowPathICCall):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitGetCallee):
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::compilePushWithScope):
(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileCheckTraps):
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compilePutByVal):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileFromCharCode):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileCompareEqPtr):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitUntypedBranch):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
(JSC::DFG::SpeculativeJIT::compile):
* Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValImpl):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
* Source/JavaScriptCore/ftl/FTLState.cpp:
(JSC::FTL::State::addStructureStubInfo):
* Source/JavaScriptCore/ftl/FTLState.h:
* Source/JavaScriptCore/jit/BaselineJITCode.h:
* Source/JavaScriptCore/jit/BaselineJITRegisters.h:
* Source/JavaScriptCore/jit/GPRInfo.h:
(JSC::JSValueRegs::gpr const):
(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::withTwoAvailableRegs):
* Source/JavaScriptCore/jit/IntrinsicEmitter.cpp:
(JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter):
* Source/JavaScriptCore/jit/JIT.cpp:
(JSC::JIT::addUnlinkedStructureStubInfo):
(JSC::JIT::link):
* Source/JavaScriptCore/jit/JIT.h:
* Source/JavaScriptCore/jit/JITCall.cpp:
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
* Source/JavaScriptCore/jit/JITCode.h:
(JSC::JITCode::useDataIC): Deleted.
* Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:
(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITInlineCacheGenerator::finalize):
(JSC::JITInlineCacheGenerator::generateDFGDataICFastPath):
(JSC::JITInlineCacheGenerator::generateBaselineDataICFastPath):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITByIdGenerator::finalize):
(JSC::JITByIdGenerator::generateFastCommon):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdGenerator::generateFastPath):
(JSC::JITGetByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITGetByIdGenerator::generateDFGDataICFastPath):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITGetByIdWithThisGenerator::generateFastPath):
(JSC::JITGetByIdWithThisGenerator::generateBaselineDataICFastPath):
(JSC::JITGetByIdWithThisGenerator::generateDFGDataICFastPath):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITPutByIdGenerator::generateDFGDataICFastPath):
(JSC::JITPutByIdGenerator::generateFastPath):
(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByValGenerator::generateFastPath):
(JSC::JITDelByValGenerator::finalize):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITDelByIdGenerator::generateFastPath):
(JSC::JITDelByIdGenerator::finalize):
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByValGenerator::generateFastPath):
(JSC::JITInByValGenerator::finalize):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
(JSC::JITInByIdGenerator::generateFastPath):
(JSC::JITInByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITInByIdGenerator::generateDFGDataICFastPath):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITInstanceOfGenerator::generateFastPath):
(JSC::JITInstanceOfGenerator::finalize):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITGetByValGenerator::finalize):
(JSC::JITPutByValGenerator::JITPutByValGenerator):
(JSC::JITPutByValGenerator::generateFastPath):
(JSC::JITPutByValGenerator::finalize):
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::finalize):
* Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:
(JSC::JITInlineCacheGenerator::setUpStubInfoImpl):
(JSC::JITByIdGenerator::setUpStubInfoImpl):
(JSC::JITInByValGenerator::setUpStubInfo):
* Source/JavaScriptCore/jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_instanceof):
* Source/JavaScriptCore/jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emit_op_enumerator_get_by_val):
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/WTF/wtf/CompactPointerTuple.h:

link: https://commits.webkit.org/251003@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294873 268f45cc-cd09-0410-ab3c-d52691b4dbfc

79 min agoGenerate better ChangeLogs in update-angle script
commit-queue@webkit.org [Thu, 26 May 2022 06:58:23 +0000 (06:58 +0000)]
Generate better ChangeLogs in update-angle script
https://bugs.webkit.org/show_bug.cgi?id=238649

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-25
Auto-generate the preferred commit message format during ANGLE rolls
into a commit-message.txt file.

Reviewed by Kimmo Kinnunen.

* Tools/Scripts/update-angle:

link: https://commits.webkit.org/251002@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294872 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 hours ago[Soup] USE(SOUP2) build fix after 250730@main
commit-queue@webkit.org [Thu, 26 May 2022 06:08:03 +0000 (06:08 +0000)]
[Soup] USE(SOUP2) build fix after 250730@main
https://bugs.webkit.org/show_bug.cgi?id=240943

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-05-25
Unreviewed build fix for USE(SOUP2), switching to string literals in a couple of
places where URL::protocolIs() is expecting them.

* Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::didStartRequest):

link: https://commits.webkit.org/251001@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294871 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 hours agoUnreviewed, non unified build fixes after 250949@main
dpino@igalia.com [Thu, 26 May 2022 05:36:21 +0000 (05:36 +0000)]
Unreviewed, non unified build fixes after 250949@main

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294870 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 hours ago[commits.webkit.org] Support compare redirect
jbedard@apple.com [Thu, 26 May 2022 05:21:11 +0000 (05:21 +0000)]
[commits.webkit.org] Support compare redirect
https://bugs.webkit.org/show_bug.cgi?id=240908
<rdar://problem/93904385>

Reviewed by Dewei Zhu.

* Tools/Scripts/libraries/reporelaypy/reporelaypy/__init__.py: Bump version.
* Tools/Scripts/libraries/reporelaypy/setup.py: Ditto.
* Tools/Scripts/libraries/reporelaypy/reporelaypy/checkoutroute.py:
(Redirector):
(Redirector.bitbucket_compare): Added.
(Redirector.trac_compare): Added.
(Redirector.github_compare): Added.
(Redirector.__init__): Define a compare function.
(CheckoutRoute):
(CheckoutRoute.find_newer): Add function to sort a commit pair.
(CheckoutRoute.__init__): Add 'compare' endpoints.
* Tools/Scripts/libraries/reporelaypy/reporelaypy/tests/checkoutroute_unittest.py:
(CheckoutRouteUnittest.test_compare):
(CheckoutRouteUnittest.test_compare_trac):

link: https://commits.webkit.org/250999@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294869 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 hours agoAddress flaky test case scroll-into-view-and-show-validation-message.html when run...
brandonstewart@apple.com [Thu, 26 May 2022 04:09:03 +0000 (04:09 +0000)]
Address flaky test case scroll-into-view-and-show-validation-message.html when run using WK1
https://bugs.webkit.org/show_bug.cgi?id=240875

Reviewed by Wenson Hsieh.

Address failing test case fast/forms/scroll-into-view-and-show-validation-message.html
when run using WK1. This test only fails when running WK1 and only when run
in parallel.

* LayoutTests/fast/forms/textarea-scrolled-endline-caret.html:
* LayoutTests/platform/mac-wk1/TestExpectations:

link: https://commits.webkit.org/250998@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294868 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4 hours ago[libpas] Refactor PGM to align with libpas allocation norms and split pas_get_random
brandonstewart@apple.com [Thu, 26 May 2022 03:46:27 +0000 (03:46 +0000)]
[libpas] Refactor PGM to align with libpas allocation norms and split pas_get_random
https://bugs.webkit.org/show_bug.cgi?id=240331

Reviewed by Yusuke Suzuki.

This patch touches a few major areas.

PGM did not properly align with how we returned allocation results with the rest of the code base.
We now use pas_allocation_result instead. This resulted in touching a lot of the PGM testing code.

Added numerous helper utilities to make it easier to check whether we should call into PGM.

Added config option for each heap whether PGM will be enabled or not.

Cleaned up documentation.

I split the pas_get_random into two functions (pas_get_fast_random and pas_get_secure_random).

* Source/bmalloc/libpas/Documentation.md:
* Source/bmalloc/libpas/ReadMe.md:
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_config.h:
* Source/bmalloc/libpas/src/libpas/hotbit_heap_config.h:
* Source/bmalloc/libpas/src/libpas/iso_heap_config.h:
* Source/bmalloc/libpas/src/libpas/iso_test_heap_config.h:
* Source/bmalloc/libpas/src/libpas/minalign32_heap_config.h:
* Source/bmalloc/libpas/src/libpas/pagesize64k_heap_config.h:
* Source/bmalloc/libpas/src/libpas/pas_baseline_allocator_table.c:
(pas_baseline_allocator_table_get_random_index):
* Source/bmalloc/libpas/src/libpas/pas_dynamic_primitive_heap_map.c:
(pas_dynamic_primitive_heap_map_find_slow):
* Source/bmalloc/libpas/src/libpas/pas_heap_config.h:
* Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.h:
* Source/bmalloc/libpas/src/libpas/pas_large_heap.c:
(pas_large_heap_try_allocate_pgm):
* Source/bmalloc/libpas/src/libpas/pas_large_heap.h:
* Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c:
(pas_probabilistic_guard_malloc_allocate):
(pas_probabilistic_guard_malloc_deallocate):
(pas_probabilistic_guard_malloc_check_exists):
(pas_probabilistic_guard_malloc_get_free_virtual_memory):
(pas_probabilistic_guard_malloc_get_free_wasted_memory):
(pas_probabilistic_guard_malloc_debug_info):
(pas_probabilistic_guard_malloc_trigger): Deleted.
(pas_probabilistic_guard_malloc_can_use): Deleted.
(pas_probabilistic_guard_malloc_should_use): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.h:
* Source/bmalloc/libpas/src/libpas/pas_random.h:
(pas_get_fast_random):
(pas_get_secure_random):
(pas_get_random): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.c:
(find_first_eligible_consider_view):
* Source/bmalloc/libpas/src/libpas/thingy_heap_config.h:
* Source/bmalloc/libpas/src/test/IsoHeapPartialAndBaselineTests.cpp:
* Source/bmalloc/libpas/src/test/PGMTests.cpp:
(std::testPGMSingleAlloc):
(std::testPGMMultipleAlloc):
(std::testPGMErrors):

link: https://commits.webkit.org/250997@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294866 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 hours agoCapturing a canvas that is not in the DOM can lead to erratic frame rates or no frame...
commit-queue@webkit.org [Thu, 26 May 2022 03:15:16 +0000 (03:15 +0000)]
Capturing a canvas that is not in the DOM can lead to erratic frame rates or no frame emission at all
https://bugs.webkit.org/show_bug.cgi?id=240380

Patch by Dan Glastonbury <djg@apple.com> on 2022-05-25
Reviewed by Simon Fraser.

* Source/WebCore/dom/Document.cpp:
(WebCore::Document::canvasChanged):
Schedule a rendering update whenever a canvas with out a rect needing display
preparation is added. This ensures that the prepareForDisplay is called on all
pending canvases, since this is handled in doAfterUpdateRendering.
* Source/WebCore/dom/Document.h:
Update size of RenderingUpdateState to accomodate PrepareCanvasesForDisplay.
* Source/WebCore/page/Page.cpp:
* Source/WebCore/page/Page.h:
Introduce new RenderingUpdateStep, PrepareCanvasesForDisplay, which signals that
prepareCanvasesForDisplayInNeeded() needs to be called from
doAfterRenderingUpdate(). Update size of RenderingUpdateState to accomodate
PrepareCanvasesForDisplay.
* LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-capture-out-of-DOM-canvas-expected.txt: Added.
* LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-capture-out-of-DOM-canvas.html:
Test that frame rate of captured video from out-of-DOM canvas is with in 25% of
the generating frame rate.

link: https://commits.webkit.org/250996@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294864 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 hours agoAX: Update the isolated tree in response to dynamic aria-grabbed and aria-posinset...
tyler_w@apple.com [Thu, 26 May 2022 02:56:49 +0000 (02:56 +0000)]
AX: Update the isolated tree in response to dynamic aria-grabbed and aria-posinset changes
https://bugs.webkit.org/show_bug.cgi?id=240844

Reviewed by Chris Fleizach.

Added test cases to accessibility/aria-setsize-posinset.html and
accessibility/mac/aria-drag-drop.html.

* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperty):
* LayoutTests/accessibility/aria-setsize-posinset-expected.txt:
* LayoutTests/accessibility/aria-setsize-posinset.html:
* LayoutTests/accessibility/mac/aria-drag-drop-expected.txt:
* LayoutTests/accessibility/mac/aria-drag-drop.html:

link: https://commits.webkit.org/250995@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294863 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 hours agoWeb Inspector: CSS autocomplete: suggestion hint should be the most commonly used...
drousso@apple.com [Thu, 26 May 2022 02:16:53 +0000 (02:16 +0000)]
Web Inspector: CSS autocomplete: suggestion hint should be the most commonly used property and not the alphabetically first one
https://bugs.webkit.org/show_bug.cgi?id=156271
<rdar://problem/25588888>

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:
(WI.CSSProperty):
(WI.CSSProperty.sortByPropertyNameUsageCount): Added.
(WI.CSSProperty._initializePropertyNameCounts): Added.
(WI.CSSProperty.prototype.update):
(WI.CSSProperty.prototype.remove):
(WI.CSSProperty.prototype.set name):
(WI.CSSProperty.prototype._updateName): Added.
Every time a `WI.CSSProperty` is created/updated, increment/decrement the count of that property's
name in the global map of property name counts. When showing CSS completions for property names,
initially focus the property with the highest count (but only if the count is over 100).

* Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:
(WI.ObjectStore._open):
(WI.ObjectStore.async getAllKeys): Added.
Increment the `version` to add a new `WI.ObjectStore` for CSS property name counts.

* Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldInitialCompletionIndex): Added.
* Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField.prototype._updateCompletions):
Add `delegate` methods to adjust the initial `selectedIndex` whenever completions are updated.

* Source/WebInspectorUI/UserInterface/Views/CompletionSuggestionsView.js:
(WI.CompletionSuggestionsView.prototype.set selectedIndex):
(WI.CompletionSuggestionsView.prototype.selectNext):
(WI.CompletionSuggestionsView.prototype.selectPrevious):
Make sure the `delegate` is informed whenever the `selectedIndex` changes, not just when selecting
the next/previous item.

* Source/WebInspectorUI/UserInterface/Base/Setting.js:
* Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
* Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
Add an experimental setting to control this behavior.

* Source/WebInspectorUI/UserInterface/Base/Utilities.js:
(Array.prototype.minIndex): Added.
Add a utility method for finding the index of the smallest item in an array.

* LayoutTests/inspector/css/css-property.html:
* LayoutTests/inspector/css/css-property-expected.txt:
* LayoutTests/inspector/unit-tests/array-utilities.html:
* LayoutTests/inspector/unit-tests/array-utilities-expected.txt:

link: https://commits.webkit.org/250994@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294862 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 hours agoBuild fix: Don't use __builtin_mul_overflow on PLATFORM(IOS_FAMILY_SIMULATOR).
mark.lam@apple.com [Thu, 26 May 2022 01:56:09 +0000 (01:56 +0000)]
Build fix: Don't use __builtin_mul_overflow on PLATFORM(IOS_FAMILY_SIMULATOR).
https://bugs.webkit.org/show_bug.cgi?id=240937

Reviewed by Saam Barati and Alex Christensen.

The __mulodi4 symbol used by clang for __builtin_mul_overflow is not available.

* Source/WTF/wtf/CheckedArithmetic.h:

link: https://commits.webkit.org/250993@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294861 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 hours agoREGRESSION(r294381): [ Debug ] TestWebKitAPI.WebKit.CookieObserverCrash is a constant...
sihui_liu@apple.com [Thu, 26 May 2022 01:52:56 +0000 (01:52 +0000)]
REGRESSION(r294381): [ Debug ] TestWebKitAPI.WebKit.CookieObserverCrash is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=240595

Reviewed by Alex Christensen.

The crash is an assertion failure. The assertion ensures that WebCookieManagerProxy has no cookies observer when it gets
destroyed. The assertion was valid when it was added, since WKHTTPCookieStore does not outlive WebKit::WebsiteDataStore
(r219550), and observers will be removed when WKHTTPCookieStore is deallocated. Since r279074, WKHTTPCookieStore can
outlive WebKit::WebsiteDataStore -- it holds a weak reference to WebKit::WebsiteDataStore instead of a strong reference,
so the assertion does not hold.

* Source/WebKit/UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::~WebCookieManagerProxy):

link: https://commits.webkit.org/250992@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294860 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 hours agoUnreviewed Windows build fix after r294852
cdumez@apple.com [Thu, 26 May 2022 01:48:51 +0000 (01:48 +0000)]
Unreviewed Windows build fix after r294852
https://bugs.webkit.org/show_bug.cgi?id=240936

* Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
(WebCore::copyCookiesForURLWithFirstPartyURL):

link: https://commits.webkit.org/250991@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294859 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 hours agoStop searching for WebKitLegacy plug-ins on iOS
achristensen@apple.com [Thu, 26 May 2022 01:36:41 +0000 (01:36 +0000)]
Stop searching for WebKitLegacy plug-ins on iOS
https://bugs.webkit.org/show_bug.cgi?id=240923
<rdar://92748471>

Reviewed by Chris Dumez.

NPAPI plug-in support has been completely removed, but support for plugInViewWithArguments:
is being kept on macOS until one more internal user of it finishes migration to WKWebView
even though developer.apple.com says it is "unsupported in OS X v10.7 and later"

On iOS, though, there is a concern about the API we are using to get the path to
/System/Library/Internet Plug-Ins and since it is unused, let's just remove it for now.
Soon we will remove all the plug-in support code.

* Source/WebKitLegacy/mac/Plugins/WebPluginDatabase.mm:
(+[WebPluginDatabase _defaultPlugInPaths]):

link: https://commits.webkit.org/250990@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294858 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 hours agoUSE_SYSTEM_CONTENT_PATH and USE_STAGING_INSTALL_PATH should be able to coexist
david_quesada@apple.com [Thu, 26 May 2022 01:16:04 +0000 (01:16 +0000)]
USE_SYSTEM_CONTENT_PATH and USE_STAGING_INSTALL_PATH should be able to coexist
https://bugs.webkit.org/show_bug.cgi?id=240723
rdar://92000421

Reviewed by Michael Saboff.

Make it possible to build with both USE_SYSTEM_CONTENT_PATH and USE_STAGING_INSTALL_PATH
enabled. With USE_STAGING_INSTALL_PATH, all the frameworks and dylibs will be relocated
to a common "StagedFrameworks" directory, but USE_SYSTEM_CONTENT_PATH directs the build
to locate this directory at a different location, i.e. in a system content path. The
presence of USE_STAGING_INSTALL_PATH also disables all targets' current behavior of
creating symlinks into the system content path -- in this configuration, the frameworks
only need to be referenceable from their location in the StagedFrameworks directory.

Throughout this patch, there are multiple common changes to the same build settings:

INSTALL_PATH_PREFIX:
    This variable adds the system content path as a prefix to products' install paths.
    Leave it empty when USE_STAGING_INSTALL_PATH is set, as the effective prefix will
    be baked into WK_OVERRIDE_FRAMEWORKS_DIR via WK_INSTALL_PATH_PREFIX instead.
OUTPUT_ALTERNATE_ROOT_PATH:
    Define this as empty under USE_STAGING_INSTALL_PATH, since we don't need to create
    the symlinks pointing into the system content path.
WK_INSTALL_PATH_PREFIX:
    This variable is used to define a prefix for the override install path when using
    staged frameworks. Use a different prefix under USE_SYSTEM_CONTENT_PATH. Also
    remove a now-unneeded comparison against WK_MACOS_1015. WebKit doesn't support
    building for versions of macOS prior to 10.15, so this *always* would evaluate to
    'MACOS_SINCE_1015'.

No new tests; no behavior should be changed. (Except for output of this particular
build configuration.)

* Source/JavaScriptCore/Configurations/Base.xcconfig:
    Update INSTALL_PATH_PREFIX and WK_INSTALL_PATH_PREFIX.
* Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
    Update OUTPUT_ALTERNATE_ROOT_PATH.
* Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig:
    Update INSTALL_PATH_PREFIX.
* Source/ThirdParty/ANGLE/Configurations/Base.xcconfig:
    Update WK_INSTALL_PATH_PREFIX.
* Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig:
    Moved the common definition of INSTALL_PATH_PREFIX here, updated WK_INSTALL_PATH_PREFIX.
* Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig:
    Removed definition of INSTALL_PATH_PREFIX, which has been moved to Base.xcconfig. (x9)
* Source/ThirdParty/libwebrtc/Scripts/create-symlink-to-altroot.sh:
    Avoid creating any symlinks when USE_STAGING_INSTALL_PATH is set.
* Source/WebCore/Configurations/WebCore.xcconfig:
    Update INSTALL_PATH_PREFIX and WK_INSTALL_PATH_PREFIX.
* Source/WebCore/PAL/Configurations/PAL.xcconfig:
    Update WK_INSTALL_PATH_PREFIX.
* Source/WebGPU/Configurations/WebGPU.xcconfig:
    Update INSTALL_PATH_PREFIX, OUTPUT_ALTERNATE_ROOT_PATH, and WK_INSTALL_PATH_PREFIX.
* Source/WebInspectorUI/Configurations/Base.xcconfig:
    Update WK_INSTALL_PATH_PREFIX.
* Source/WebInspectorUI/Configurations/WebInspectorUIFramework.xcconfig:
    Modify the definition of INSTALL_PATH so that the "override-ness" of
    WK_USE_OVERRIDE_FRAMEWORKS_DIR takes precedence over USE_SYSTEM_CONTENT_PATH. With
    these two set, WebInspectorUI.framework should end up in the override path (e.g. the
    StagedFrameworks directory), rather than the standard system content path location.
    Also update OUTPUT_ALTERNATE_ROOT_PATH.
* Source/WebKit/Configurations/Base.xcconfig:
    Update INSTALL_PATH_PREFIX.
* Source/WebKit/Configurations/BaseTarget.xcconfig:
    Update WK_INSTALL_PATH_PREFIX.
* Source/WebKit/Configurations/WebKit.xcconfig:
    Update OUTPUT_ALTERNATE_ROOT_PATH.
* Source/WebKit/Configurations/adattributiond.xcconfig:
    Somewhat unrelated tweak -- remove WK_OVERRIDE_FRAMEWORKS_DIR from this file since
    it is redundant with the definition of this setting in BaseTarget.xcconfig.
* Source/WebKitLegacy/mac/Configurations/Base.xcconfig:
    Update INSTALL_PATH_PREFIX.
* Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:
    Update WK_INSTALL_PATH_PREFIX.

link: https://commits.webkit.org/250989@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294855 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 hours agoSequential WebVTT cues with the same contents can be dropped
jer.noble@apple.com [Thu, 26 May 2022 00:47:32 +0000 (00:47 +0000)]
Sequential WebVTT cues with the same contents can be dropped
https://bugs.webkit.org/show_bug.cgi?id=240893

Reviewed by Eric Carlson.

When sequential WebVTT cues are parsed with the same contents, instead of dropping the new cue, extend its endTime of the existing cue to include the endTime of the newly parsed one.

* LayoutTests/http/tests/media/hls/hls-webvtt-flashing-expected.txt: Added.
* LayoutTests/http/tests/media/hls/hls-webvtt-flashing.html: Added.
* LayoutTests/http/tests/media/resources/hls/subtitles/flashSequence0.webvtt: Added.
* LayoutTests/http/tests/media/resources/hls/subtitles/prog_flashing.m3u8: Added.
* LayoutTests/http/tests/media/resources/hls/test-webvtt-flashing.m3u8: Added.
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::newCuesParsed):
* Source/WebCore/html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newCuesParsed):
* Source/WebCore/html/track/TextTrack.cpp:
(WebCore::TextTrack::matchCue):
(WebCore::TextTrack::hasCue): Deleted.
* Source/WebCore/html/track/TextTrack.h:
(WebCore::TextTrack::hasCue):

link: https://commits.webkit.org/250988@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294854 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 hours agoAdd my GitHub account to contributors.json
david_quesada@apple.com [Thu, 26 May 2022 00:23:12 +0000 (00:23 +0000)]
Add my GitHub account to contributors.json

Reviewed by Jonathan Bedard.

* metadata/contributors.json:

link: https://commits.webkit.org/250987@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294853 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 hours agoMake the StringView(const char*) constructor explicit
cdumez@apple.com [Thu, 26 May 2022 00:13:10 +0000 (00:13 +0000)]
Make the StringView(const char*) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=240754

Reviewed by Darin Adler.

Make the StringView(const char*) constructor explicit, to encourage people to use
ASCIILiteral / ""_s. StringView::fromLatin1() is available when the caller
really has a non-string literal. In a future patch, I will make this constructor
private.

* Source/WTF/wtf/Assertions.cpp:
* Source/WTF/wtf/text/StringBuilder.h:
(WTF::StringBuilder::append):
* Source/WTF/wtf/text/StringView.h:
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:
(WebCore::toRtpCodecCapability):
* Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.cpp:
(WebCore::ComputedStylePropertyMapReadOnly::entries const):
* Source/WebCore/dom/DatasetDOMStringMap.cpp:
(WebCore::isValidAttributeName):
(WebCore::propertyNameMatchesAttributeName):
* Source/WebCore/dom/ViewportArguments.cpp:
(WebCore::viewportErrorMessage):
* Source/WebCore/editing/cocoa/HTMLConverter.mm:
(HTMLConverterCaches::elementHasOwnBackgroundColor):
* Source/WebCore/history/BackForwardCache.cpp:
(WebCore::canCacheFrame):
* Source/WebCore/html/URLDecomposition.cpp:
(WebCore::URLDecomposition::setPort):
* Source/WebCore/html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::checkAndCreateRegion):
(WebCore::WebVTTParser::checkAndStoreStyleSheet):
* Source/WebCore/loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::appStoreURLAdamID):
* Source/WebCore/loader/mac/LoaderNSURLExtras.mm:
(suggestedFilenameWithMIMEType):
* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::getUnmangledInfoLog):
* Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
(WebCore::CDMPrivateMediaSourceAVFObjC::parseKeySystem):
* Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::aggregatedThirdPartyData const):
* Source/WebKit/NetworkProcess/NetworkSchemeRegistry.cpp:
(WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):
* Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
* Source/WebKit/NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::blobPathForHash const):
* Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp:
* Source/WebKit/Platform/unix/EnvironmentUtilities.cpp:
(WebKit::EnvironmentUtilities::removeValuesEndingWith):
* Source/WebKit/Shared/Cocoa/XPCEndpoint.mm:
(WebKit::XPCEndpoint::XPCEndpoint):
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getProcessIdentifier):
* Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp:
(API::constructedPathPrefix):
* Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration additionalReadAccessAllowedURLs]):
(-[_WKProcessPoolConfiguration setAdditionalReadAccessAllowedURLs:]):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):
(WebKit::WebPageProxy::isQuarantinedAndNotUserApproved):
* Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::messageSourceIsValidWebContentProcess):
* Source/WebKit/UIProcess/DeviceIdHashSaltStorage.cpp:
(WebKit::DeviceIdHashSaltStorage::deleteHashSaltFromDisk):
* Source/WebKit/UIProcess/ViewGestureController.cpp:
(WebKit::ViewGestureController::SnapshotRemovalTracker::resume):
(WebKit::ViewGestureController::SnapshotRemovalTracker::start):
(WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackImmediately):
(WebKit::ViewGestureController::SnapshotRemovalTracker::watchdogTimerFired):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::savePDFToFileInDownloadsFolder):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::resolvePathsForSandboxExtensions):
* Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
* Source/WebKit/UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetDatabaseQuota):
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::tryLoadingUsingPDFJSHandler):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::streamDidReceiveResponse):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::dumpHistoryItem):
* Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::shouldUsePDFPlugin const):
(WebKit::WebPage::platformCanHandleRequest):
* Source/WebKit/webpushd/AppBundleRequest.mm:
(WebPushD::AppBundleRequest::start):
* Source/WebKit/webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::connectionClosed):
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::broadcastAllConnectionIdentities):
(WebPushD::Daemon::injectPushMessageForTesting):
(WebPushD::Daemon::injectEncryptedPushMessageForTesting):
* Source/WebKitLegacy/mac/WebView/WebHTMLRepresentation.mm:
(regExpForLabels):
(matchLabelsAgainstString):
* Tools/DumpRenderTree/mac/DumpRenderTree.mm:
(changeWindowScaleIfNeeded):
* Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
* Tools/TestWebKitAPI/Tests/WTF/SortedArrayMap.cpp:
(TEST):
* Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::doStaticStringImplTests):
* Tools/TestWebKitAPI/Tests/WTF/StringToIntegerConversion.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/StringView.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/URL.cpp:
(TestWebKitAPI::TEST_F):
* Tools/TestWebKitAPI/Tests/WTF/URLParser.cpp:
(TestWebKitAPI::invalidParts):
(TestWebKitAPI::shouldFail):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::testUserPassword):
* Tools/TestWebKitAPI/Tests/WTF/UUID.cpp:
(TEST):
* Tools/TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
* Tools/TestWebKitAPI/Tests/WebCore/DFACombiner.cpp:
(TestWebKitAPI::TEST_F):
* Tools/TestWebKitAPI/Tests/WebCore/DFAHelpers.h:
(TestWebKitAPI::buildDFAFromPatterns):
* Tools/TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:
(TestWebKitAPI::TEST_F):
* Tools/TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
(TestWebKitAPI::readContentsOfFile):
* Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKit/EnvironmentUtilitiesTest.cpp:
(TestWebKitAPI::testStrip):
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/FTP.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:
(TEST):
(runMultipleIndicesTestWithDatabase):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IDBObjectStoreInfoUpgradeToV2.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:
(TestWebKitAPI::parseUserAgent):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:
(TestWebKitAPI::TEST_F):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(addAttributedPCMv2):
(addUnattributedPCMv2):
(addAttributedPCMv3):
(addUnattributedPCMv3):
(addUnattributedPCMv4):
(addAttributedPCMv4):
(addAttributedPCMv5):
(createAndPopulateObservedDomainTable):
(createAndPopulatePCMObservedDomainTable):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
(-[ServiceWorkerSchemeHandler webView:startURLSchemeTask:]):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(ParsedRange::ParsedRange):
* Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didFinishProgress):
(WTR::InjectedBundlePage::dump):
(WTR::InjectedBundlePage::didDisplayInsecureContentForFrame):
(WTR::InjectedBundlePage::didRunInsecureContentForFrame):
(WTR::InjectedBundlePage::didDetectXSSForFrame):
(WTR::InjectedBundlePage::willSendRequestForFrame):
(WTR::InjectedBundlePage::willAddMessageToConsole):
(WTR::InjectedBundlePage::supportsFullScreen):
(WTR::InjectedBundlePage::enterFullScreenForElement):
(WTR::InjectedBundlePage::exitFullScreenForElement):
(WTR::InjectedBundlePage::beganEnterFullScreen):
(WTR::InjectedBundlePage::beganExitFullScreen):
(WTR::InjectedBundlePage::closeFullScreen):
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::configureContentExtensionForTest):
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::TestInvocation):
(WTR::TestInvocation::urlContains const):
(WTR::TestInvocation::shouldLogHistoryClientCallbacks const):
* Tools/WebKitTestRunner/TestInvocation.h:
* Tools/WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::configureContentExtensionForTest):

link: https://commits.webkit.org/250986@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294852 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 hours agoAvoid extracting the main video in element fullscreen when fullscreen mode isn't...
wenson_hsieh@apple.com [Wed, 25 May 2022 23:42:36 +0000 (23:42 +0000)]
Avoid extracting the main video in element fullscreen when fullscreen mode isn't active
https://bugs.webkit.org/show_bug.cgi?id=240910
rdar://93906888

Reviewed by Eric Carlson.

Add a check that we're actually still in element fullscreen before extracting the main video. Since
`WebFullScreenManager` and its `m_element` both persist after exiting fullscreen mode, there's
currently nothing preventing us from re-triggering video extraction when a video is paused once
again outside of fullscreen mode.

Covered by a new API test (more details in the bug).

* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::handleEvent):
(WebKit::WebFullScreenManager::mainVideoElementExtractionTimerFired):

Deal with another corner case, wherein the main video element we previously detected may no longer
be in the fullscreen element's subtree by the time that the extraction timer fires. To avoid this,
always update the main video element again when the extraction timer is fired (as long as we're
still in fullscreen mode), before proceeding with extraction.

link: https://commits.webkit.org/250985@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294835 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 hours agoUpdate ANGLE to 2022-05-24 (8291f2d3e72eca3a25826b689a013c292ef4ba94)
commit-queue@webkit.org [Wed, 25 May 2022 23:27:02 +0000 (23:27 +0000)]
Update ANGLE to 2022-05-24 (8291f2d3e72eca3a25826b689a013c292ef4ba94)
https://bugs.webkit.org/show_bug.cgi?id=240894

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-25
Reviewed by Kimmo Kinnunen.

Contains upstream commits:
8291f2d3e Fix ValidCompressedSubImageSize for 3D uploads
84a0b462d Vulkan: Bug fix in GL_QCOM_shading_rate
1afb80587 Add Vulkan backend support for texture labels
7a243dbe2 Capture/Replay: Allow repeated Gen-on-Bind for resources
7df1f5816 GN: Add angle_build_tests.
11e9c8351 Vulkan: Dump graphics pipeline cache graph
2f0b6429b Revert "util/X11Window: Set PMinSize and PMaxSize hints."
cd48eedd9 Roll Chromium from 99a468a0505d to d624307d6d25 (438 revisions)
35e54dbb6 Vulkan: Fix EXT_texture_buffer support condition
f6c149339 dEQP: Support Wayland
6e2588639 Vulkan: Use packed enum for present modes
9e0a7be6c Traces: Update restricted_trace_perf.py
2ae8bdb3a Roll vulkan-deps from 880c9e0050c6 to 82a65519c521 (5 revisions)
80be1bb38 Roll SwiftShader from 73679602bc0b to b5cb037f0292 (2 revisions)
2db4297ad Roll Chromium from f0d8ec07c77f to 99a468a0505d (698 revisions)
e4a517c92 Vulkan: Rearrange GraphicsPipelineDesc to reduce footprint
f52c629b9 Capture/Replay: Make sure replay tests build libEGL
0b808c746 Silence all std::iterator deperecation warnings
bb3afdf42 Drop support for 64xMSAA+
688553c03 Vulkan: Dynamic state for primitive restart enable
c76fb2d82 Enable EXT_texture_norm16 on ES2/D3D11
3b78e0d56 Vulkan: Dynamic state for depth bias enable
7c83a3635 Vulkan: Dynamic state for rasterizer discard enable
2faabfe5e Vulkan: Optimize pipeline desc w.r.t dynamic state
ee1894e5f Account for GL_ANGLE_yuv_internal_format when setting yuv state
3da24b5cd Move trace loader code to a common location.
52c42e5a8 Temporarily disable deprecation warnings for VK-GL-CTS
88f582f6a D3D: fix whole-array assignment to SSBOs.
f8e8b7cc3 Roll vulkan-deps from c37d1e2ab98c to 880c9e0050c6 (19 revisions)
8af51b7ef Roll SwiftShader from 2933d3126969 to 73679602bc0b (4 revisions)
c3687f079 Roll Chromium from 170d12460fd5 to f0d8ec07c77f (430 revisions)
58fd31577 Vulkan: Dynamic state for vertex stride
e71a3e5fa Insert Metal polyfill for Matrix /= Scalar when needed
78ea85213 Suppress Flaky Tests
af869f4ac Update capture replay expectation file
118a6484c Metal: Upstream buffer cache fix from WebKit
f674e501f Tests: Add Bridge Constructor Portal trace
728dea2be Suppress Vulkan Validation Error
40269f91c Fix trigger.py to run mb.py with python3
c7182af2b Vulkan: Reserve varying for xfb if pre-rotation is enabled
86074fc77 Roll Chromium from dbb1f3a2b2f7 to 170d12460fd5 (586 revisions)
54a6b76f6 Roll third_party/rapidjson/src/ 7484e06c5..781a4e667 (156 commits)
2fd7444bc Fetch gn binary for the correct architecture on linux.
06fa297b6 Roll SwiftShader from cb4fc6d02fe4 to 2933d3126969 (1 revision)
6ae0c3214 Vulkan: clamp dynamic line width to supported values
d3eb61d4a D3D11: fix SSBO load in a return statement.
28dfa45d6 Spawn via vpython when old module detected.
b7474d0ae D3D11: Add GL_EXT_texture_buffer support
87ea0c7df Vulkan: SPIR-V Gen: Apply Flat to gl_Layer in FS
8701f53a4 Vulkan: Fix clear value for incomplete MS textures
dbeba9004 Reland "CGL, MTL: pbuffer for IOSurface fails for some formats"
b4ec8eac5 D3D11: implement image load/store for non-compute shaders.
2fdd7bfd1 Vulkan: Support binding 2D slice of a 3D texture to an image unit
14ca09bcf Metal: Remove the long type from program preludes
ff011779c Vulkan: Let texture buffer handle BufferVk's storage change
3d430f5f3 Vulkan: Add test for texture buffer and buffer data interaction
2abf9adf6 Vulkan: Bug fix in YUV descriptor pool allocation
78b8f5467 Roll SwiftShader from 89eb09307fbc to cb4fc6d02fe4 (1 revision)
428cd884e Tests: Add Stardew Valley trace
5e34541a1 Roll SwiftShader from 4011ab35f3d8 to 89eb09307fbc (3 revisions)
4dc9c79e0 Roll Chromium from 73ffbbeac851 to dbb1f3a2b2f7 (503 revisions)
c649979b7 Create EGLImage from VkImage correctly with non sized format
cd4cce3f8 Add more tips about recovering the qpa file.
957a44f41 Clarify that angle_debug_package is necessary to load the apk
93c0c90db Suppress the failing egl test to unblock roller
a277f1bce Vulkan: Fix Wayland surface size queries
6136ba273 D3D: minor cleanup of gl::RangeUI usage.
4ece3b08f Vulkan: Multiple DRM formats
d75bf9ad0 Capture/Replay: Also limit the number of per shader SSBOs
552b01d15 Roll vulkan-deps from 131de3fd9ec7 to c37d1e2ab98c (2 revisions)
7d7ed2538 Roll Chromium from 11b60f867851 to 73ffbbeac851 (445 revisions)
807c94ea8 Capture/Replay: Adjust tests do adhere to capture limits
891a46820 Vulkan: Dynamic state for stencil test/op
66dcca5e5 Vulkan: Dynamic state for depth test/write/op
bedb3075b Do not call RendererVK::handleDeviceLost() for device lost
15ecf068e Vulkan: Dynamic state for depth bounds
20820bb4b Make BitSetArray constexpr
36f5e6ce5 Vulkan: Fix DRM to GL format conversion
1cbcc1da1 Roll vulkan-deps from c6a60f3cc711 to 131de3fd9ec7 (22 revisions)
459c367ed D3D: Initialize storage after generating mipmap images.
ed909ee8a Roll SwiftShader from f1c2c0b07281 to 4011ab35f3d8 (1 revision)
7f14dd79b Roll Chromium from 3aa3e39b0aca to 11b60f867851 (666 revisions)
48b1f07b0 Vulkan: Dynamic state for front face
4e5da2d28 Vulkan: Dynamic state for cull mode
62fe36d3b Vulkan: Emulate YUV built-ins
4b95ac7df Vulkan: Don't invalidate pipeline on dynamic state change
81c84292f Do not do cleanup for Vulkan device lost
808192a74 Code Cleanup
87058cb8a Re-skip flaky test un-skipped by crrev.com/c/3641181
1b434e96b Skip flaky test on Mac NVIDIA.
4a7dd9429 Metal: Fix dangling pointer warning in IntermRebuild.cpp
e56f227d6 Vulkan: Add case: TextureSampleByDrawDispatchDraw
ece8fb5df Roll vulkan-deps from b768d03422ea to c6a60f3cc711 (1 revision)
03ccd9cc9 Revert "Vulkan: Flush texture updates more often"
21ad9b3c8 Vulkan: Add generic descriptors for DS cache.
d8d396dbc Vulkan: Add shared descriptor set caches.
0f2fc7664 TracePerfTest: Add ability to screenshot after reset.
7dc316c8f Roll Chromium from 65b23f3c9e05 to 3aa3e39b0aca (497 revisions)
8bb7c35c2 Vulkan: Flush texture updates more often
addfab1f7 Update docs for SwANGLE triage process.
8e844d0ff Tests: Add Black Desert Mobile trace.
389ae6b9a Add extension for read-only DS feedback loops.
40583b0f9 Tests: Skip pubg_mobile_skydive on Nvidia
4df8ca04f Remove angle_util from restricted traces.
580f90c7d Test Runner: Accept Chromium bot mode flag.
73cb1e6e2 Vulkan: Tag dynamic dirty bits with DYNAMIC
4ffab3bf5 Vulkan: Dynamic state for stencil reference
3d55cf0c0 Vulkan: Optimize the vkImage layout when used as GL_image
7e9e597ea Roll SwiftShader from e0a1188d7652 to f1c2c0b07281 (2 revisions)
8ec7b8b87 Roll Chromium from 693c7419bd5c to 65b23f3c9e05 (580 revisions)
1d8227dab Vulkan: Dynamic state for stencil write mask
c3def6fab Vulkan: Dynamic state for stencil compare mask
e9dc0f86d Cleanup from glBlitFramebuffer() 3D texture fix.
dcaa18b9c Vulkan: Dynamic state for blend color
536d6f57e Vulkan: Dynamic state for depth bias
42789b630 Use GLTexture in TextureTest for RAII goodness.
780f1a41b Vulkan: Dynamic state for line width
9b15e1c23 D3D11: clean up ES31 test expectations.
f6610106f Add a draw call perf test for changing a single uniform.
e73121b19 Vulkan: Fix VulkanPipelineCachePerfTest
dd9b4afe5 D3D: minor cleanup for image load/store.
1fa4442ba Vulkan: Set dynamic state after binding pipeline
089f2871b PerfTests: Add support for eglCreateImage and eglDestroyImage
5b623dd4b D3D9: Enable OES_fbo_render_mipmap
25ebc3b86 Roll vulkan-deps from 27ef4a0d9701 to b768d03422ea (7 revisions)
eea6366c7 Roll SwiftShader from e4a6f2d74d3c to e0a1188d7652 (1 revision)
029a4c948 util: Add calls for createImage* and destroyImage* to GLWindow
486ae89e4 Roll Chromium from 46c13be19f0f to 693c7419bd5c (567 revisions)
a8ebdf2b5 Basis Universal Texture Experiment
6ddbfa397 Metal: Log the shader source when a shader fails to translate
52904367d D3D: Mark images clean after syncing from storage
f1640db8c Fix crash when calling certain gl APIs before initialization.
66b9214fb Capture/Replay: rename ANGLE_CAPTURE to ANGLE_CAPTURE_GL
2fb58a95b Re-land: "Vulkan: GBM platform"
4ecb1e3e6 Vulkan: Support wide lines
18089dff2 Vulkan: Clean up flag passing in ImageView init.
8e1215716 D3D11: fix 3D texture blits.
464f30f4e Vulkan: Refactor UtilsVk dynamic state handling
86d9d66dc Vulkan: Determined sized-ness of format in initImageViews.
9872c1d63 Switch deqp merge to python3
5fa8f9045 Roll vulkan-deps from 626b2fd72bde to 27ef4a0d9701 (2 revisions)
c8c2664af Roll SwiftShader from 1dd93361b1d9 to e4a6f2d74d3c (2 revisions)
6bf0e620a Roll Chromium from 7f78f00fdc5c to 46c13be19f0f (273 revisions)
2b8172b9b Vulkan: Add missing initialization for mTotalMemorySize
31321cb73 Vulkan: Remove suppressions and workarounds for old AMD/Windows
0db4c39b5 Revert "Vulkan: GBM platform"
26a2e1471 Roll Chromium from bc117969dbb5 to 7f78f00fdc5c (162 revisions)
d4442f538 Reset the program executable if async linking fails.
825d5b2c5 Vulkan: GBM platform
0b0744f3e Vulkan: Fix VVL error for black desert mobile
b51bbe246 Add CopyTextureTest.ClearAfterCopySubTexture
b54b11460 Vulkan: Use ImageView layer count functions in TextureVk.
c8c4109cd HLSL: Disambiguate functions that have int/uint parameters.
e1de0950d Vulkan: Always init image views using image format.
8b4e74127 Roll SwiftShader from 74e34ab97aeb to 1dd93361b1d9 (3 revisions)
78d88796b Roll Chromium from 333c8248b125 to bc117969dbb5 (506 revisions)
e316203a6 Vulkan: add forceContinuousRefreshOnSharedPresent feature
225d8f83a Tests: Add Mortal Kombat App Trace
fa4523cf2 Roll vulkan-deps from 4ca7acf89869 to 626b2fd72bde (22 revisions)
cadb933fd Roll Chromium from 3bc34dd4d819 to 333c8248b125 (124 revisions)
1d073482a Tests: Add Basemark GPU trace
38a53d654 Revert "Remove limit_max_texture_size_to_4096 workaround"
bec809fe9 [Fuchsia] Download the gn sdk instead of core
5f2ad1537 Tests: Add Puzzles and Survival trace
b33d15556 Roll VK-GL-CTS from 106df4122297 to acf70aaf3fdb (12 revisions)
950db602b Roll SwiftShader from 643179694ec7 to 74e34ab97aeb (7 revisions)
dbbfac650 Tests: Add Monument Valley trace
b365a6069 Tests: Add Dead Cells trace
72cc8cbca Migrate Fuchsia sdk checkout from using script to CIPD
e0d00563f Vulkan: Simplify external format Chroma code.
51d6a1d96 Roll Chromium from 617cd3226543 to 3bc34dd4d819 (40 revisions)
a78eca2ca util/X11Window: Set PMinSize and PMaxSize hints.
332c9ad04 Roll Chromium from 7a60295b6324 to 617cd3226543 (278 revisions)
1d5d09e41 Vulkan: Prefer MAILBOX over IMMEDIATE present mode
d075dfe25 Vulkan: Reduce kMaxBufferToImageCopySize to 64M
333da2cf1 Vulkan: Limit the total bytes of suballocation garbages in flight
98488a196 FramebufferTest: Add FramebufferChangeTest test.
b79178a3e Scripts: Strip prebuilt debug APK from AOSP roll
8dcba9ae6 Roll Chromium from 1c301e690de1 to 7a60295b6324 (184 revisions)
51dc3c3e6 Vulkan: Force prune when there are lots of suballocations destroyed
bcc03bd62 Remove limit_max_texture_size_to_4096 workaround
2fae9482c Vulkan: Use heuristic to decide how many empty buffers to keep
0afa5b9f9 Tests: Add Alto's Odyssey trace.
2ce60b52a Fixes for C++20 support.
3f216ee74 Vulkan: Set timeout for MultiContextDrawWithSwap*
bd44b29d2 Roll Chromium from 6db3a94387ed to 1c301e690de1 (550 revisions)
d73468673 Decommission win7-x86-amd and win7-x64-nvidia
9865ed8b8 Check in //build files needed.
9053a641b Vulkan: Wayland dmabuf extensions
77cd0b5a3 Re-land: "Vulkan: Cache ImageView serials on texture changes."
b72cff8c0 Fix build flags not in declare_args when angle_has_build is true
14c483f1c Presubmit: Verify comment before new tests
dc1ab34c9 Roll SwiftShader from cdf43bd816d7 to 643179694ec7 (4 revisions)
34fb4f790 Roll Chromium from 55c89a3a09ac to 6db3a94387ed (508 revisions)
edd331ebe Traces: Add a device arg to restricted_trace_perf
a7238b525 Consolidate handle list before pushing to mReleasedList
064fc64aa infra: Remove some slow *SAN tests.
9ab470749 D3D11: fix BufferToTexture copy when UNPACK_ROW_LENGTH is set.
9ad43bdd2 Re-land: "Vulkan: Support Wayland"
5c9f676d3 Basis Universal Texture Experiment
84e42c3b0 Fix validation cache when deleting a Transform Feedback.
b5f0fd1bd Skip flaky tests on Win ASAN
c0942c2d4 Roll vulkan-deps from 1cde45b8d7aa to 4ca7acf89869 (6 revisions)
c92d69d7d Roll SwiftShader from adef92e7b4c6 to cdf43bd816d7 (8 revisions)
4bbc55f4c Revert "Re-land: "Vulkan: Support Wayland""
58526dea2 Roll Chromium from 929311ac6298 to 55c89a3a09ac (470 revisions)
5113ae8ef Vulkan: Explicitly enable per-sample shading if `sample` used
9200ba537 Reland "Make SPIRV optional for Metal backend"
802504add Vulkan: Add log for buffer pool stats
4d26c66d0 Vulkan: Call cleanupGarbage only if mLastCompletedQueueSerial changed
527557b9c Fix ValidateFramebufferTextureLayer for cubemap arrays
e6662832a Re-land fixing of commit ID for Android builds.
3e05b93af Vulkan: MSAA swapchain resolve based on renderArea
c6e6e284e Update Android deqp and end2end sharding
237479a27 Fix presubmit following https://crrev.com/c/3611486
bc929e6e5 D3D11: recompile all shaders using 10.0.20348.0 toolchain.
b953bc13e Tests: Add GFXBench Tessellation trace
f7615d0ad OpenGL: Add allow_astc_formats workaround
4dc4c0f05 Remove whitespace from features json files
df163d714 Test both MSL translators in APPLEClipDistanceTest
06fa7e39a Expand Intel GPU detection
e0dd196a0 Re-land: "Vulkan: Support Wayland"
ea9a2dbea Capture/Replay: handle glGetVertexAttrib parameter value
41adabc48 Use app data dir instead of /sdcard for writing qpa file
5b4f180cd Fix formatting
f1c5e2b11 Roll vulkan-deps from 7b51f5f85aad to 1cde45b8d7aa (4 revisions)
fd57d8f0c Roll Chromium from 3a1ff9044aec to 929311ac6298 (541 revisions)
e55990e35 Capture/Replay: Handle arrays with uniform block indices
1aa4c120d gl_tests: Fix formatting
c7a9f0c6c Vulkan: Remove syncval suppressions no longer triggering
e39dfe0fe Roll VK-GL-CTS from a22069b4e3b7 to 106df4122297 (1 revision)
3eb2bcf77 Vulkan: Fix syncval errors with DONT_CARE for unused attachments
3eb891960 Roll Chromium from 1e97e6cd1c3c to 3a1ff9044aec (639 revisions)
31f841386 Add option for Metal output to angle_shader_translator
394fb0d34 Vulkan: Don't take lock for getLastCompletedQueueSerial
5e4c141c2 Tests: Add GFXBench Driver Overhead 2 trace
7184fe38c Tests: Add Jetpack Joyride trace.
8b26c14c0 Roll SwiftShader from b92f7acb7e81 to adef92e7b4c6 (4 revisions)
2d3ad8ec6 Roll vulkan-deps from 1963b94c99e8 to 7b51f5f85aad (4 revisions)
1c4c9fe95 Capture/Replay: Fix formatting
2c58e7a5b Reduce console spam from Metal shader translation
437053a16 Revert "Make SPIRV optional for Metal backend"
f9729598a Revert "Fix commit ID gathering on Android builds."
c1d0e139d Roll vulkan-deps from 4f93dbdc6060 to 1963b94c99e8 (2 revisions)
d5ceba0b4 Roll SwiftShader from f88fc3b53c52 to b92f7acb7e81 (3 revisions)
3e4069290 Roll Chromium from c7e51a124fab to 1e97e6cd1c3c (915 revisions)
2a6e123b1 Vulkan: Move pruneOrphanedBufferBlocks to last
266111a55 Vulkan: Fix SemaphoreCount best practice warning
1ef90012b Vulkan: Remove API access for mTotalBufferToImageCopySizen
454efd1d5 Add forceDepthAttachmentInitOnClear frontend workaround
29287e1fc Make SPIRV optional for Metal backend
3b65b8037 Vulkan: Work around Qualcomm imprecision with dithering
6c2486918 Enable SINGLE_BUFFER with eglCreateWindowSurface
1835e5d89 Fix commit ID gathering on Android builds.
c9794d6c0 Run a smoke test in each shard and crash on timeouts.
80d50b992 Add build arg to automatically attach renderdoc
7d31a47fc Vulkan: Optimize away eglSwapBuffers for single buffer surfaces
5c756bc1a Perf Tests: Compute GPU time periodically
c402f002b Android perf tests shards 20->6 (only --smoke-test-mode)
6930184ef Log runTests so that it shows up in logcat dumps.
c45aff4f2 Roll SwiftShader from 5f5faa3a2aad to f88fc3b53c52 (4 revisions)
cc834907f Roll vulkan-deps from f685346e2e51 to 4f93dbdc6060 (2 revisions)
95c1ff52b EGL: Fix EGL_KHR_mutable_render_buffer
0c59b5d90 Log debuggerd $PID output when instrumentation gets stuck.
fe2c82ad3 check integer overflow in Texture copyImage
cdcf17153 Add missing result_skip and result_fail.
1a144edfe Metal:ReadPixels AMD Copy Texture to Buffer optimization
6b9c5c8d1 Vulkan: Improve GetStorageMemoryType logic
cbdefd933 Roll chromium_revision 192db13f85..c7e51a124f (995097:996181)
d0c8363e0 Dump logcat if instrumentation doesn't finish in 10 minutes.
ebfb9b9f0 Configure logging in perf and gold tests to include time.
7555a1590 DEPS: Remove deprecated chromium dep
fc8282875 Tests for Nvidia/Vulkan bugs with tessellation control

link: https://commits.webkit.org/250984@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294834 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8 hours ago[Gardening]: [ iOS Debug ] resize-observer/resize-observer-with-zoom.html is a flaky...
rackler@apple.com [Wed, 25 May 2022 23:24:09 +0000 (23:24 +0000)]
[Gardening]: [ iOS Debug ] resize-observer/resize-observer-with-zoom.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240929
<rdar://93934172>

Unreviewed test gardening.

* LayoutTests/platform/ios/TestExpectations:

link: https://commits.webkit.org/250983@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294833 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9 hours ago[GPU Process] [Filters] Don't use Uint8ClampedArray in software filter appliers
said@apple.com [Wed, 25 May 2022 22:57:58 +0000 (22:57 +0000)]
[GPU Process] [Filters] Don't use Uint8ClampedArray in software filter appliers
https://bugs.webkit.org/show_bug.cgi?id=240777
rdar://93916935

Reviewed by Simon Fraser.

The plan is to allocate the FilterImage buffers differently for GPUProcess. The
first step is to hide the underlying memory of PixelBuffer from the software
filter appliers. Helpers functions will provide access to Uint8ClampedArray. In
future patches different memory allocation will be used by new sub-classes of
PixelBuffer.

* Source/WebCore/platform/graphics/PixelBuffer.cpp:
(WebCore::PixelBuffer::bytes const):
(WebCore::PixelBuffer::byteLength const):
(WebCore::PixelBuffer::setRange):
(WebCore::PixelBuffer::zeroRange):
(WebCore::PixelBuffer::item const):
(WebCore::PixelBuffer::set):
(WebCore::PixelBuffer::createScratchPixelBuffer const):
* Source/WebCore/platform/graphics/PixelBuffer.h:
(WebCore::PixelBuffer::zeroFill):
* Source/WebCore/platform/graphics/filters/FEComposite.h:
* Source/WebCore/platform/graphics/filters/FilterImage.cpp:
(WebCore::FilterImage::correctPremultipliedPixelBuffer):
* Source/WebCore/platform/graphics/filters/software/FEColorMatrixSoftwareApplier.cpp:
(WebCore::FEColorMatrixSoftwareApplier::applyPlatformAccelerated const):
(WebCore::FEColorMatrixSoftwareApplier::applyPlatformUnaccelerated const):
* Source/WebCore/platform/graphics/filters/software/FEComponentTransferSoftwareApplier.cpp:
(WebCore::FEComponentTransferSoftwareApplier::applyPlatform const):
* Source/WebCore/platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:
(WebCore::FECompositeSoftwareApplier::applyArithmetic const):
* Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp:
(WebCore::FEConvolveMatrixSoftwareApplier::setDestinationPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::setInteriorPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::setOuterPixels):
(WebCore::FEConvolveMatrixSoftwareApplier::apply const):
* Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
* Source/WebCore/platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.cpp:
(WebCore::FEDisplacementMapSoftwareApplier::apply const):
* Source/WebCore/platform/graphics/filters/software/FEDropShadowSoftwareApplier.cpp:
(WebCore::FEDropShadowSoftwareApplier::apply const):
* Source/WebCore/platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAlphaOnly):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlur):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurAccelerated):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurUnaccelerated):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurGeneric):
(WebCore::FEGaussianBlurSoftwareApplier::boxBlurWorker):
(WebCore::FEGaussianBlurSoftwareApplier::applyPlatform):
(WebCore::FEGaussianBlurSoftwareApplier::apply const):
* Source/WebCore/platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
* Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.cpp:
(WebCore::FELightingSoftwareApplier::apply const):
* Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h:
* Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp:
(WebCore::FEMorphologySoftwareApplier::columnExtremum):
(WebCore::FEMorphologySoftwareApplier::applyPlatformGeneric):
(WebCore::FEMorphologySoftwareApplier::apply const):
* Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.h:
* Source/WebCore/platform/graphics/filters/software/FETurbulenceSoftwareApplier.cpp:
(WebCore::FETurbulenceSoftwareApplier::applyPlatformGeneric):
(WebCore::FETurbulenceSoftwareApplier::applyPlatformWorker):
(WebCore::FETurbulenceSoftwareApplier::applyPlatform):
(WebCore::FETurbulenceSoftwareApplier::apply const):
* Source/WebCore/platform/graphics/filters/software/FETurbulenceSoftwareApplier.h:

link: https://commits.webkit.org/250982@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294832 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9 hours agoPrevent NSAttributedString crashes when AppSSO URLs are provided
bfulgham@apple.com [Wed, 25 May 2022 22:45:26 +0000 (22:45 +0000)]
Prevent NSAttributedString crashes when AppSSO URLs are provided
https://bugs.webkit.org/show_bug.cgi?id=240739
<rdar://93656000>

Reviewed by Chris Dumez.

When NSAttributedString is used in a sandboxed app, it is prevented from checking in with the
AppSSO plugin manager, causing a Sandbox Violation and crash. We don't want NSAttributedString
to ever hand-off to AppSSO, so we should configure it's internal WKWebView to do the right thing.
Reviewed by Chris Dumez.

* Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm:
(+[_WKAttributedStringWebViewCache configuration]): Turn off AppSSO for string uses.
* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::trySOAuthorization): Use new lazy loading approach.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::trySOAuthorization): Ditto.
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::soAuthorizationCoordinator): Lazily initialize, and RELEASE_ASSERT
if we somehow reach this code without enabling AppSSO.
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::soAuthorizationCoordinator): Deleted.

link: https://commits.webkit.org/250981@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9 hours agoDirectories showing up as terminal icons in mail compose
katherine_cheney@apple.com [Wed, 25 May 2022 22:36:19 +0000 (22:36 +0000)]
Directories showing up as terminal icons in mail compose
https://bugs.webkit.org/show_bug.cgi?id=240882
rdar://45111300

Reviewed by Wenson Hsieh.

* Source/WebCore/rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::iconForAttachment):
We should not try to fetch an icon if all three provided strings are
null. This was causing issues by attempting to fetch an icon after
already rendering a valid icon using the filewrapper.

* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::requestThumbnailWithOperation):
(WebKit::WebPageProxy::requestThumbnailWithPath):
Remove some extra spaces and unnecessary WebCore:: prefix.

(WebKit::WebPageProxy::updateIconForDirectory):
New function to update the icon for directories to use the filewrapper
icon instead of the iconForFileType API. This method flips the icon so
it is right-side-up and converts it to a bitmap to pass to the web
process.

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestAttachmentIcon):
* Source/WebKit/UIProcess/WebPageProxy.h:

* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(testDirectoryAttachmentFileURL):
(-[TestWKWebView waitForAttachmentElementSizeToBecome:]):
(TestWebKitAPI::_icon):
(TestWebKitAPI::TEST):
Add a test to make sure we hit the new NSFileWrapper icon path to fetch
the correct icon for the bundle.

link: https://commits.webkit.org/250979@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294830 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9 hours ago[Gardening]: [ iOS Debug Big Sur Debug wk2 ] ASSERTION FAILED: WebCore::IDBTransactio...
rackler@apple.com [Wed, 25 May 2022 22:36:14 +0000 (22:36 +0000)]
[Gardening]: [ iOS Debug Big Sur Debug wk2 ] ASSERTION FAILED: WebCore::IDBTransaction::dispatchEvent(WebCore::Event&)
https://bugs.webkit.org/show_bug.cgi?id=240927
<rdar://93929670>

Unreviewed test gardening.

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

link: https://commits.webkit.org/250979@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9 hours ago[LFC][IFC] Support each-line keyword in text-indent
commit-queue@webkit.org [Wed, 25 May 2022 22:29:46 +0000 (22:29 +0000)]
[LFC][IFC] Support each-line keyword in text-indent
https://bugs.webkit.org/show_bug.cgi?id=240731

Patch by Kiet Ho <tho22@apple.com> on 2022-05-25
Reviewed by Alan Bujtas.

Normally, text-indent only affects the first line. When 'each-line' is specified,
subsequent lines where the previous line ends with a hard break are also indented.
This is supported in the legacy layout engine but not in LFC. Adds support for
'each-line' to bring LFC to parity with the legacy engine.

Test: imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-hanging.html

* LayoutTests/TestExpectations: Remove ImageOnlyFailure expectation.
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialConstraintsForLine const): Add logic to
indent line when 'each-line' is specified, and the previous line ends with a
hard break.
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h:
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h: Modify
initialConstraintsForLine to accept information about the previous line,
not just whether there's one or not.

link: https://commits.webkit.org/250978@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294828 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10 hours ago[run-jsc-stress-tests] Catch user error
angelos@igalia.com [Wed, 25 May 2022 21:47:41 +0000 (21:47 +0000)]
[run-jsc-stress-tests] Catch user error
https://bugs.webkit.org/show_bug.cgi?id=240905

Reviewed by Adrian Perez de Castro and Jonathan Bedard.

When the user has made a typo in the argument to --filter (selecting no
tests to execute), bring that to the user's attention instead of exiting
without an error.

* Tools/Scripts/run-jsc-stress-tests:

link: https://commits.webkit.org/250977@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10 hours ago[iOS] WebContent captive portal XPC service needs entitlement to set sandbox state...
pvollan@apple.com [Wed, 25 May 2022 21:38:32 +0000 (21:38 +0000)]
[iOS] WebContent captive portal XPC service needs entitlement to set sandbox state variables
https://bugs.webkit.org/show_bug.cgi?id=240921

Reviewed by Geoffrey Garen.

This patch also adds a function for the shared WebContent entitlements on iOS.

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

link: https://commits.webkit.org/250976@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10 hours agoRe-enable http/tests/inspector/network/har/har-page.html for mac-wk2
pangle@apple.com [Wed, 25 May 2022 21:36:01 +0000 (21:36 +0000)]
Re-enable http/tests/inspector/network/har/har-page.html for mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=229458

Unreviewed test expectations update.

* LayoutTests/platform/mac-wk2/TestExpectations:

link: https://commits.webkit.org/250975@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294823 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 hours ago[ Win EWS ] Six webanimations/offset-compositing tests are a flaky failure
ryanhaddad@apple.com [Wed, 25 May 2022 21:16:15 +0000 (21:16 +0000)]
[ Win EWS ] Six webanimations/offset-compositing tests are a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240617

Unreviewed test gardening.

* LayoutTests/platform/win/TestExpectations: Mark tests as flaky.

link: https://commits.webkit.org/250974@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294821 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 hours agoRemove old WebStorage implementation
sihui_liu@apple.com [Wed, 25 May 2022 20:29:54 +0000 (20:29 +0000)]
Remove old WebStorage implementation
https://bugs.webkit.org/show_bug.cgi?id=240833

Reviewed by Geoffrey Garen.

No behavior change; the new implementation inside Source/WebKit/NetworkProcess/storage/ is in use.

* Source/WebKit/CMakeLists.txt:
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp: Removed.
* Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.h: Removed.
* Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Removed.
* Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h: Removed.
* Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp: Removed.
* Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.h: Removed.
* Source/WebKit/NetworkProcess/WebStorage/SessionStorageNamespace.cpp: Removed.
* Source/WebKit/NetworkProcess/WebStorage/SessionStorageNamespace.h: Removed.
* Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp: Removed.
* Source/WebKit/NetworkProcess/WebStorage/StorageArea.h: Removed.
* Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp: Removed.
* Source/WebKit/NetworkProcess/WebStorage/StorageManager.h: Removed.
* Source/WebKit/NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: Removed.
* Source/WebKit/NetworkProcess/WebStorage/TransientLocalStorageNamespace.h: Removed.
* Source/WebKit/NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm: Removed.
* Source/WebKit/Platform/Logging.h:
* Source/WebKit/PlatformPlayStation.cmake:
* Source/WebKit/PlatformWin.cmake:
* Source/WebKit/Shared/StorageAreaIdentifier.h: Renamed from Source/WebKit/NetworkProcess/WebStorage/StorageAreaIdentifier.h.
* Source/WebKit/Sources.txt:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

link: https://commits.webkit.org/250973@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 hours agoAdd support for Link nonces
pgriffis@igalia.com [Wed, 25 May 2022 19:53:21 +0000 (19:53 +0000)]
Add support for Link nonces
https://bugs.webkit.org/show_bug.cgi?id=240817

This reads the nonce from link elements and Link headers.

This was implemented by Chromium in 2017 to be consistent with the HTMLPreloader:
https://chromium-review.googlesource.com/c/chromium/src/+/676769/

Reviewed by Kate Cheney.

* LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/preload/link-header-preload-nonce.html:

These test changes were already upstream: https://github.com/web-platform-tests/wpt/commit/306dc506adba97ca84ada67bdab6227dba65bbcb

* Source/WebCore/html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* Source/WebCore/loader/LinkHeader.cpp:
(WebCore::paramterNameFromString):
(WebCore::LinkHeader::setValue):
* Source/WebCore/loader/LinkHeader.h:
(WebCore::LinkHeader::nonce const):
* Source/WebCore/loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLinksFromHeader):
(WebCore::LinkLoader::preloadIfNeeded):
(WebCore::LinkLoader::prefetchIfNeeded):
* Source/WebCore/loader/LinkLoader.h:

link: https://commits.webkit.org/250972@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294819 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 hours agoWeb Inspector: Timelines Tab: Screenshots: images should be centered
drousso@apple.com [Wed, 25 May 2022 19:39:09 +0000 (19:39 +0000)]
Web Inspector: Timelines Tab: Screenshots: images should be centered
https://bugs.webkit.org/show_bug.cgi?id=240854

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.js:
(WI.ScreenshotsTimelineView.prototype.layout):
* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:
(.timeline-view.screenshots):
(.timeline-view.screenshots > .spacer): Added.
(.timeline-view.screenshots > img):

link: https://commits.webkit.org/250971@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294818 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 hours ago[Gardening]: [ iOS Debug ] Two fast/loader/ tests are a flaky failure
rackler@apple.com [Wed, 25 May 2022 19:21:54 +0000 (19:21 +0000)]
[Gardening]: [ iOS Debug ] Two fast/loader/ tests are a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=240918
<rdar://93918602>

Unreviewed test gardening.

* LayoutTests/platform/ios/TestExpectations:

link: https://commits.webkit.org/250970@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294817 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 hours agoREGRESSION(r294215): : r294317 was reverted, it fixed an edge-case for 294217
commit-queue@webkit.org [Wed, 25 May 2022 19:05:48 +0000 (19:05 +0000)]
REGRESSION(r294215): : r294317 was reverted, it fixed an edge-case for 294217
https://bugs.webkit.org/show_bug.cgi?id=240645

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-25
Unreviewed.

Revert r294215, its dependency r294317 was reverted.

Reverted changeset:
        "WebCore::IOSurface has WebCore::GraphicsContext as its
        property, it should be the other way around"
        https://bugs.webkit.org/show_bug.cgi?id=240417
        https://commits.webkit.org/r294215

* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::drawNativeImage):
* Source/WebCore/platform/graphics/cg/GraphicsContextCG.h:
* Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:
(WebCore::IOSurfacePool::willAddSurface):
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::~ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::context const):
(WebCore::ImageBufferIOSurfaceBackend::releaseGraphicsContext):
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
* Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm:
(WebCore::GraphicsContextCG::GraphicsContextCG): Deleted.
* Source/WebCore/platform/graphics/cocoa/IOSurface.h:
* Source/WebCore/platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::create):
(WebCore::IOSurface::ensureGraphicsContext):
(WebCore::IOSurface::releaseGraphicsContext):
(WebCore::IOSurface::releasePlatformGraphicsContext): Deleted.

link: https://commits.webkit.org/250969@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294816 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 hours ago[iOS] Refactor some logic around tap gesture handling when VKCImageAnalysisInteractio...
wenson_hsieh@apple.com [Wed, 25 May 2022 19:03:09 +0000 (19:03 +0000)]
[iOS] Refactor some logic around tap gesture handling when VKCImageAnalysisInteraction is active
https://bugs.webkit.org/show_bug.cgi?id=240891
rdar://93808100

Reviewed by Aditya Keerthi.

Currently, when handling a single tap in WKContentView, we check whether or not the tap occurred
over the Live Text button in the `VKCImageAnalysisInteraction`; if so, we manually toggle Live Text
interaction highlight state. This special treatment exists (instead of simply relying on the
UIButton's tap gesture) because `WKContentView` already has its own synthetic click gesture which
conflicts with the UIButton's tap gesture; without this logic, taps on the analysis button would be
completely ignored.

While this works for the Live Text button, it doesn't work for other actionable buttons in the image
analysis interaction. To address this, we install a `UIButtonConfigurationUpdateHandler` on the
image analysis interaction just to collect the set of `UIButton`s that are owned by the interaction.
When tapping on the content view, if we hit one of these VisionKitCore-owned buttons, then invoke
the button action on its behalf.

* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _singleTapIdentified:]):

Also, pull this VisionKit interception logic out into a new helper method below, named
`-_handleTapOverImageAnalysisInteractionButton:`. This returns whether or not the tap was handled by
VisionKit (in which case we avoid treating this as a synthetic click on the page).

(-[WKContentView _handleTapOverImageAnalysisInteractionButton:]):
(-[WKContentView installImageAnalysisInteraction:]):
(-[WKContentView uninstallImageAnalysisInteraction]):

link: https://commits.webkit.org/250968@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294815 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 hours ago[iOS] Remove obsolete graphics message filters
pvollan@apple.com [Wed, 25 May 2022 18:55:19 +0000 (18:55 +0000)]
[iOS] Remove obsolete graphics message filters
https://bugs.webkit.org/show_bug.cgi?id=240736
<rdar://93527356>

Reviewed by Geoffrey Garen.

Remove obsolete graphics filters in the WebContent process' sandbox on iOS, since this filtering is
now done in other parts of the system.

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

link: https://commits.webkit.org/250967@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 hours agoREGRESSION (r294434): [ iOS ] TestWebKitAPI.WebAuthenticationPanel.ExportImportDuplic...
j_pascoe@apple.com [Wed, 25 May 2022 18:33:57 +0000 (18:33 +0000)]
REGRESSION (r294434): [ iOS ] TestWebKitAPI.WebAuthenticationPanel.ExportImportDuplicateCredential is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240686
<rdar://93603762>

Reviewed by Brent Fulgham.

The sync flag may differ at runtime due to internal reasons. This patch modifies the test to support either value
of the flag.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):

link: https://commits.webkit.org/250966@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294812 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 hours ago[JSC] TestAPI::promiseUnhandledRejection() predominantly fails on MacOS 12.3 in ...
shvaikalesh@gmail.com [Wed, 25 May 2022 18:13:09 +0000 (18:13 +0000)]
[JSC] TestAPI::promiseUnhandledRejection() predominantly fails on MacOS 12.3 in --debug
https://bugs.webkit.org/show_bug.cgi?id=240243
<rdar://92975620>

Reviewed by Mark Lam.

The failures are caused by an unhandled rejection, that was originated in
TestAPI::promiseDrainDoesNotEatExceptions() and ended up in the callback of
TestAPI::promiseUnhandledRejection(), with an unexpected promise and reason.

That is, the callback of TestAPI::promiseUnhandledRejection() is called twice,
with only the first invocation being successful.

The failures weren't observed before MacOS 12.3 because TestAPI::promiseDrainDoesNotEatExceptions()
is a DYLD_MACOSX_VERSION-conditional test.

To fix the tests, this change ensures that TestAPI::promiseUnhandledRejection() performs assertions
only on the first run, aligning it with TestAPI::promiseUnhandledRejectionFromUnhandledRejectionCallback().

* Source/JavaScriptCore/API/tests/testapi.cpp:
(TestAPI::promiseUnhandledRejection):

link: https://commits.webkit.org/250965@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294811 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 hours agoSpeculative build fix: Revert use of .alt_entry directive in LLInt asm code.
mark.lam@apple.com [Wed, 25 May 2022 18:11:10 +0000 (18:11 +0000)]
Speculative build fix: Revert use of .alt_entry directive in LLInt asm code.
https://bugs.webkit.org/show_bug.cgi?id=240916

Unreviewed.

We suspect that this is causing linker issues on some builds.

* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:

link: https://commits.webkit.org/250964@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 hours agoAdd logging related to Mach bootstrap enablement
pvollan@apple.com [Wed, 25 May 2022 18:01:30 +0000 (18:01 +0000)]
Add logging related to Mach bootstrap enablement
https://bugs.webkit.org/show_bug.cgi?id=240909

Reviewed by Chris Dumez.

We are seeing telemetry that indicates that enabling Mach bootstrap is failing in some cases.
Add logging to help diagnose this.

* Source/WebKit/Platform/Logging.h:
* Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::createHandleForMachLookup):
* Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::createHandleForMachLookup):

link: https://commits.webkit.org/250963@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294809 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 hours agoAdd my GitHub account to contributors.json
jond@apple.com [Wed, 25 May 2022 17:57:41 +0000 (17:57 +0000)]
Add my GitHub account to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=240915

Unreviewed.

* metadata/contributors.json:

link: https://commits.webkit.org/250962@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294808 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 hours ago git-webkit pr crashes when run from detached HEAD
keith_miller@apple.com [Wed, 25 May 2022 17:43:05 +0000 (17:43 +0000)]
git-webkit pr crashes when run from detached HEAD
    https://bugs.webkit.org/show_bug.cgi?id=240468

    Reviewed by Jonathan Bedard.

    repository.branch is None when on a detached HEAD. This causes us to throw an Error when performing a regex on the branch name.
    This patch treats a detached HEAD the same as being on main.

    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
    (PullRequest.pull_request_branch_point):

link: https://commits.webkit.org/250961@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 hours agoExpand flex-grow support
zalan@apple.com [Wed, 25 May 2022 17:29:16 +0000 (17:29 +0000)]
Expand flex-grow support
https://bugs.webkit.org/show_bug.cgi?id=240898

Reviewed by Antti Koivisto.

This patch add support for flex-grow. This property defines how flex items take over the available space.

* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

link: https://commits.webkit.org/250960@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 hours ago[Linux] GBMBufferSwapchain should only conditionally create linear-formatted buffer...
zan@falconsigh.net [Wed, 25 May 2022 17:22:59 +0000 (17:22 +0000)]
[Linux] GBMBufferSwapchain should only conditionally create linear-formatted buffer objects
https://bugs.webkit.org/show_bug.cgi?id=240637

Reviewed by Adrian Perez de Castro.

Spawning new gbm_bo objects should not default to requesting linear-storage
buffers. Instead, these should only be created when necessary, e.g. when
copying software-decoded video data into these buffers.

By default, no GBM flags are used. When required, the linear-storage requirement
is enscribed in the new flags field of the GBMBufferSwapchain::BufferDescription
object and acted upon in the GBMBufferSwapchain::getBuffer() call, using the
GBM_BO_USE_LINEAR flag in the gbm_bo_create() call.

The DMABuf-specific sink in MediaPlayerPrivateGStreamer is the only place at the
moment where linear-storage buffers are used since software-decoded material
originates here and is stored in linear memory.

* Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp:
(WebCore::GBMBufferSwapchain::getBuffer):
* Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.h:
* Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp:
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

link: https://commits.webkit.org/250959@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

15 hours agoAdd remainingRunningTime info to logging of PrepareToSuspend message
sihui_liu@apple.com [Wed, 25 May 2022 16:53:05 +0000 (16:53 +0000)]
Add remainingRunningTime info to logging of PrepareToSuspend message
https://bugs.webkit.org/show_bug.cgi?id=240879

Reviewed by Chris Dumez.

Replace background timing info with remaining run time info, so we have a better idea of when the message is sent and
when it is processed. We will know if the message is handled after process resumes (since process can be suspended
before it handles the message).

* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::prepareToSuspend):
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::processWillSuspendImminentlyForTestingSync):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::applicationDidEnterBackground):
(WebKit::NetworkProcess::applicationWillEnterForeground):
(WebKit::NetworkProcess::processDidResume):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _processWillSuspendForTesting:]):
(-[WKWebView _processWillSuspendImminentlyForTesting]):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::sendPrepareToSuspend):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/ProcessAssertion.cpp:
(WebKit::ProcessAssertion::remainingRunTimeInSeconds):
* Source/WebKit/UIProcess/ProcessAssertion.h:
* Source/WebKit/UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::sendPrepareToSuspendIPC):
* Source/WebKit/UIProcess/ProcessThrottlerClient.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::sendPrepareToSuspend):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::sendNetworkProcessPrepareToSuspendForTesting):
* Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAssertion::remainingRunTimeInSeconds):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::prepareToSuspend):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:

link: https://commits.webkit.org/250958@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294802 268f45cc-cd09-0410-ab3c-d52691b4dbfc

15 hours agoSyscall should only be allowed for newer macOS versions
pvollan@apple.com [Wed, 25 May 2022 16:47:58 +0000 (16:47 +0000)]
Syscall should only be allowed for newer macOS versions
https://bugs.webkit.org/show_bug.cgi?id=240714

Reviewed by Chris Dumez.

* Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:

link: https://commits.webkit.org/250957@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 hours agoWeb Inspector: Computed Panel: Move ungrouped CSS variables to dedicated DetailsSidebar
rcaliman@apple.com [Wed, 25 May 2022 15:44:48 +0000 (15:44 +0000)]
Web Inspector: Computed Panel: Move ungrouped CSS variables to dedicated DetailsSidebar
https://bugs.webkit.org/show_bug.cgi?id=240805

Reviewed by Patrick Angle.

A follow-up from https://github.com/WebKit/WebKit/pull/782#pullrequestreview-978824063

> As an aside, it is unfortunate in hindsight that the variables section
> element can either directly contain variables for ungrouped mode, or contain
> sections. I wonder if there is a better way to handle this where we never
> have to even add the variables section to the map and instead have a single
> "section" within it (without a header) that behaves just like the grouped
> sections, but for ungrouped mode.

The top-level Variables details section contains either:
- the list of ungrouped variables
- nested detail sections for each group of variables grouped by type

When toggling between grouping modes, we remove the host details sections for
variable groups, but we need to take care not to remove the top-level Variables
details section. This isn't ideal. All variable lists, ungrouped or grouped,
need their own independent host details section that can be safely removed
without impacting others.

A details section has a header with text and a button to toggle collapsing the
section contents. Ungrouped variables don't need this. The top-level Variables
details section serves this role (the reason why the code was written with it
doing double duty).

We can change the implementation of `WI.DetailsSection` to hide the header
if a title is not provided. This enables us to nest details sections without
showing extraneous headers. This relieves `WI.ComputedStyleDetailsPanel.layout()`
of the duty to avoid removing the top-level Variables details section.

* Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-variables .scope-bar.computed-style-variables-grouping-mode:hover):
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-variables .computed-style-section):

Adding symmetric padding to the top of the section to space out the contents
from the header's bottom border.

* Source/WebInspectorUI/UserInterface/Views/ComputedStyleDetailsPanel.js:
(WI.ComputedStyleDetailsPanel.prototype.layout):
(WI.ComputedStyleDetailsPanel.prototype._renderVariablesStyleSectionGroup):
* Source/WebInspectorUI/UserInterface/Views/DetailsSection.css:
(.details-section > .header:not(:empty)):
(.details-section .details-section > .header:not(:empty)):
(.details-section .details-section:not(.collapsed) > .header:not(:empty)):
(.details-section > .header:not(:empty)::before):
(.details-section > .header): Deleted.
(.details-section .details-section > .header): Deleted.
(.details-section .details-section:not(.collapsed) > .header): Deleted.
(.details-section > .header::before): Deleted.
* Source/WebInspectorUI/UserInterface/Views/DetailsSection.js:
(WI.DetailsSection):
(WI.DetailsSection.prototype.get title):
(WI.DetailsSection.prototype.set title):

link: https://commits.webkit.org/250956@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

17 hours agoDon't index shorthands in computed styles
obrufau@igalia.com [Wed, 25 May 2022 15:18:07 +0000 (15:18 +0000)]
Don't index shorthands in computed styles
https://bugs.webkit.org/show_bug.cgi?id=240356

Reviewed by Tim Nguyen.

Most shorthands were already not indexed, but legacy shorthands with a
single longhand were indexed. This didn't make much sense, since they
are like aliases with a different syntax, and aliases are not indexed.

Tests: fast/css/getComputedStyle/computed-style.html
       fast/css/getComputedStyle/computed-style-without-renderer.html
       imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html
       imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
       imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html
       svg/css/getComputedStyle-basic.xhtml

link: https://commits.webkit.org/250955@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294799 268f45cc-cd09-0410-ab3c-d52691b4dbfc

17 hours ago[git-webkit] Check expiration in token
jbedard@apple.com [Wed, 25 May 2022 15:03:55 +0000 (15:03 +0000)]
[git-webkit] Check expiration in token
https://bugs.webkit.org/show_bug.cgi?id=240883
<rdar://problem/93859778>

Reviewed by Chris Dumez.

* Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py: Ditto.
* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.credentials.validater): Check token expiration explicitly.

link: https://commits.webkit.org/250954@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

17 hours ago[git-webkit] clean all dead pr branches
jbedard@apple.com [Wed, 25 May 2022 14:49:11 +0000 (14:49 +0000)]
[git-webkit] clean all dead pr branches
https://bugs.webkit.org/show_bug.cgi?id=240589
<rdar://93521924>

Reviewed by Aakash Jain.

* Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py:
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/clean.py:
(DeletePRBranches): Iterate through all local branches and remove those
associated with a closed PR.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/clean_unittest.py:
(TestClean.test_delete_pr_branches):

link: https://commits.webkit.org/250953@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 hours ago[JSC][ARMv7] Support callee save FPRs
commit-queue@webkit.org [Wed, 25 May 2022 13:32:59 +0000 (13:32 +0000)]
[JSC][ARMv7] Support callee save FPRs

Patch by Geza Lore <glore@igalia.com> on 2022-05-25
https://bugs.webkit.org/show_bug.cgi?id=240376

Reviewed by Yusuke Suzuki.

ARMv7 FPRs d8-d15 (also referenced as s16-s32 and q4-q7) are callee save
in the host ABI, but currently JSC is unaware of this. This does not
currently cause problems as they are not used, but will be used by the
Wasm JITs.

In preparation for the 32-bit ports of the Wasm JITs, this patch:
- Teaches JSC about callee save FPRs on ARMv7. d8-d15 are host ABI
  callee save, but only d8-d14 are VM callee save, i.e.: we treat d15
  as a volatile register in JIT code. This is so we can use d15 as a
  macro assembler scratch register.
- Changes offlineasm and MacroAssemblerARMv7 to use d15 as the FP
  scratch register. We do this so we can use the full range of d0-d7
  as temporary, and in particular as Wasm argument/return registers.
- To achieve the above, we need to modify RegisterAtOffsetList as GPRs
  and FPRs have different sizes on JSVALUE32_64 platforms
- Adds the ARMv7 specific registers to
  RegisterSet::macroScratchRegisters()

* assembler/ARMv7Registers.h:
* assembler/MacroAssemblerARMv7.h:
* b3/air/AirCode.cpp:
(JSC::B3::Air::Code::calleeSaveRegisterAtOffsetList const):
(JSC::B3::Air::Code::dump const):
* b3/testb3_7.cpp:
(testInfiniteLoopDoesntCauseBadHoisting):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::llintBaselineCalleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):
(JSC::roundCalleeSaveSpaceAsVirtualRegisters): Deleted.
* bytecode/ValueRecovery.h:
(JSC::ValueRecovery::calleeSaveGPRDisplacedInJSStack):
(JSC::ValueRecovery::calleeSaveRegDisplacedInJSStack): Deleted.
* dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::calleeSaveSlot):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
* interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::copyCalleeSavesToEntryFrameCalleeSavesBuffer const):
* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::restoreCalleeSavesFromEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBufferImpl):
(JSC::AssemblyHelpers::copyCalleeSavesToEntryFrameCalleeSavesBufferImpl):
(JSC::AssemblyHelpers::emitSave):
(JSC::AssemblyHelpers::emitRestore):
(JSC::AssemblyHelpers::emitSaveCalleeSavesFor):
(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor):
(JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::emitSaveOrCopyLLIntBaselineCalleeSavesFor):
* jit/CallFrameShuffleData.cpp:
(JSC::CallFrameShuffleData::setupCalleeSaveRegisters):
* jit/CallFrameShuffler.h:
(JSC::CallFrameShuffler::snapshot const):
* jit/CallFrameShuffler32_64.cpp:
(JSC::CallFrameShuffler::emitDisplace):
* jit/FPRInfo.h:
* jit/GPRInfo.h:
* jit/RegisterAtOffsetList.cpp:
(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
* jit/RegisterAtOffsetList.h:
(JSC::RegisterAtOffsetList::registerCount const):
(JSC::RegisterAtOffsetList::sizeOfAreaInBytes const):
(JSC::RegisterAtOffsetList::adjustOffsets):
(JSC::RegisterAtOffsetList::size const): Deleted.
(JSC::RegisterAtOffsetList::at): Deleted.
* jit/RegisterSet.cpp:
(JSC::RegisterSet::macroScratchRegisters):
(JSC::RegisterSet::vmCalleeSaveRegisters):
* llint/LowLevelInterpreter.asm:
* offlineasm/arm.rb:
* wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
* wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

link: https://commits.webkit.org/250952@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

22 hours ago[Flatpak SDK] Remove Subversion
commit-queue@webkit.org [Wed, 25 May 2022 09:54:20 +0000 (09:54 +0000)]
[Flatpak SDK] Remove Subversion
https://bugs.webkit.org/show_bug.cgi?id=240903

Patch by Philippe Normand <philn@igalia.com> on 2022-05-25
Reviewed by Adrian Perez de Castro.

* Tools/buildstream/elements/sdk-build-depends/swig.bst: Removed.
* Tools/buildstream/elements/sdk-build-depends/utf8proc.bst: Removed.
* Tools/buildstream/elements/sdk-platform.bst:
* Tools/buildstream/elements/sdk/libsecret.bst: Removed.
* Tools/buildstream/elements/sdk/libserf.bst: Removed.
* Tools/buildstream/elements/sdk/perl-term-readkey.bst: Removed.
* Tools/buildstream/elements/sdk/subversion.bst: Removed.

link: https://commits.webkit.org/250951@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

24 hours ago[MSE][GStreamer] Support Google Dynamic Ad Insertion (DAI)
commit-queue@webkit.org [Wed, 25 May 2022 08:00:26 +0000 (08:00 +0000)]
[MSE][GStreamer] Support Google Dynamic Ad Insertion (DAI)
https://bugs.webkit.org/show_bug.cgi?id=216039
<rdar://problem/68638316>

Patch by Philippe Normand <philn@igalia.com> on 2022-05-25
Reviewed by Alicia Boya Garcia.

The "simple DAI" demo was not working as expected because the new source pad of the demuxer in the append
pipeline was sinking buffers to a "black hole". That was happening because the second time the
no-more-pads signal was emitted, the previous source pad was still linked to a track, and there was
no code to unlink/relink demuxer pads. This is now handled...

The specific "simple DAI" demo generates 2 AAC streams, with different tkhd track-id fields, we had
no layout test reproducing this use-case, so this patch provides one.

Test: media-source/media-source-audio-track-id-switch.html

* LayoutTests/media/media-source/content/test-48kHz-new-track-id.m4a: Added.
* LayoutTests/media/media-source/content/test-48khz-new-track-id-manifest.json: Added.
* LayoutTests/media/media-source/media-source-audio-track-id-switch-expected.txt: Added.
* LayoutTests/media/media-source/media-source-audio-track-id-switch.html: Added.
* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::handleErrorSyncMessage):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::createOptionalParserForFormat):
(WebCore::AppendPipeline::recycleTrackForPad):
(WebCore::AppendPipeline::linkPadWithTrack):
(WebCore::AppendPipeline::tryMatchPadToExistingTrack): Deleted.
* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:
(WebCore::AppendPipeline::Track::isLinked const):

link: https://commits.webkit.org/250950@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294791 268f45cc-cd09-0410-ab3c-d52691b4dbfc

25 hours agoRename SharedBufferCopy to SharedBufferReference
commit-queue@webkit.org [Wed, 25 May 2022 06:20:01 +0000 (06:20 +0000)]
Rename SharedBufferCopy to SharedBufferReference
https://bugs.webkit.org/show_bug.cgi?id=240796
rdar://problem/93754681

Patch by Jean-Yves Avenard <jyavenard@gmail.com> on 2022-05-24
Reviewed by Jer Noble.

1. SharedBufferCopy doesn't perform a copy, but passes SharedMemory and return a SharedBuffer that wraps such SharedMemory.
Rename it to SharedBufferReference to more accurately reflect what it actually does.

2. Remove SharedBufferCopy::safeBuffer() and rename
 SharedBufferCopy::buffer with SharedBufferCopy::unsafeBuffer. This gives
 better clarity that accessing SharedBufferCopy should be treated with care.

3. Add SharedBufferCopy::isNull() method
4. When passing a SharedBufferReferal across multiple processes, we remove the need for a new allocation and copy of the content; instead we move the underlying SharedMemory.

No change of observable behaviour.

* Source/WebKit/GPUProcess/media/RemoteCDMInstanceProxy.h:
* Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:
(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::setData):
* Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.h:
* Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):
(WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:
(WebKit::ServiceWorkerDownloadTask::didReceiveData):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.messages.in:
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::loadBodyFromPreloader):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
* Source/WebKit/Platform/IPC/SharedBufferCopy.cpp: Removed.
* Source/WebKit/Platform/IPC/SharedBufferCopy.h: Removed.
* Source/WebKit/Platform/IPC/SharedBufferReference.cpp: Added.
(IPC::SharedBufferReference::encode const):
(IPC::SharedBufferReference::decode):
(IPC::SharedBufferReference::unsafeBuffer const):
(IPC::SharedBufferReference::data const):
* Source/WebKit/Platform/IPC/SharedBufferReference.h: Added.
(IPC::SharedBufferReference::SharedBufferReference):
(IPC::SharedBufferReference::size const):
(IPC::SharedBufferReference::isEmpty const):
(IPC::SharedBufferReference::isNull const):
* Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:
(WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView createPDFWithConfiguration:completionHandler:]):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::platformRegisterAttachment):
* Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::registerAttachmentIdentifierFromData):
(WebKit::WebPageProxy::platformRegisterAttachment):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/WebPasteboardProxy.h:
* Source/WebKit/UIProcess/WebPasteboardProxy.messages.in:
* Source/WebKit/UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::didReceiveData):
* Source/WebKit/UIProcess/gtk/WebPasteboardProxyGtk.cpp:
(WebKit::WebPasteboardProxy::readBuffer):
* Source/WebKit/UIProcess/ios/WKContentView.mm:
(-[WKContentView _wk_pageCountForPrintFormatter:]):
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::drawToPDFiOS):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
* Source/WebKit/WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:
(WebKit::RemoteImageDecoderAVF::setData):
* Source/WebKit/WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:
(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):
* Source/WebKit/WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveData):
* Source/WebKit/WebProcess/Network/WebResourceLoader.h:
* Source/WebKit/WebProcess/Network/WebResourceLoader.messages.in:
* Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::registerAttachmentIdentifier):
* Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::readBufferFromClipboard):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getContentsAsMHTMLData):
(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::getAccessibilityTreeData):
(WebKit::WebPage::drawToPDF):
(WebKit::WebPage::drawPagesToPDF):
(WebKit::WebPage::didGetLoadDecisionForIcon):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::updateAttachmentAttributes):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::drawToPDFiOS):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):

link: https://commits.webkit.org/250949@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

26 hours agoSimplify SVGPropertyOwnerRegistry slightly
simon.fraser@apple.com [Wed, 25 May 2022 05:57:54 +0000 (05:57 +0000)]
Simplify SVGPropertyOwnerRegistry slightly
https://bugs.webkit.org/show_bug.cgi?id=240839

Reviewed by Yusuke Suzuki.

SVGPropertyOwnerRegistry::findAccessor() had to loop through the hash table entries
because it wanted the behavior of QualifiedName::matches(), which is different from
QualifiedName::operator==. However, we can achieve this by using hash traits, and
the appropriate traits already exist in the form of SVGAttributeHashTranslator.

* Source/WebCore/svg/SVGElementInlines.h:
(WebCore::SVGAttributeHashTranslator::hash): Deleted.
(WebCore::SVGAttributeHashTranslator::equal): Deleted.
* Source/WebCore/svg/properties/SVGPropertyOwnerRegistry.h:
(WebCore::SVGAttributeHashTranslator::hash):
(WebCore::SVGAttributeHashTranslator::equal):
(WebCore::SVGPropertyOwnerRegistry::attributeNameToAccessorMap):
(WebCore::SVGPropertyOwnerRegistry::findAccessor):

link: https://commits.webkit.org/250948@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

27 hours agoUse dladdr to get labels instead of stashing them in the JITOperationAnnotation.
mark.lam@apple.com [Wed, 25 May 2022 04:43:31 +0000 (04:43 +0000)]
Use dladdr to get labels instead of stashing them in the JITOperationAnnotation.
https://bugs.webkit.org/show_bug.cgi?id=240895

Reviewed by Saam Barati.

We no longer need to stash these label strings in the JITOperationAnnotations.

This change also fixes an ASAN crasher.  As such, we can re-enable
ENABLE(JIT_OPERATION_DISASSEMBLY) even when ASAN_ENABLED.

* Source/JavaScriptCore/assembler/JITOperationList.cpp:
(JSC::JITOperationList::addDisassemblyLabels):
* Source/JavaScriptCore/assembler/JITOperationValidation.h:
* Source/WTF/wtf/PlatformCallingConventions.h:
* Source/WTF/wtf/PlatformEnable.h:

link: https://commits.webkit.org/250947@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

28 hours agoUse `jsc_llint` as a LLInt local label prefix instead of `_offlineasm`.
mark.lam@apple.com [Wed, 25 May 2022 04:03:14 +0000 (04:03 +0000)]
Use `jsc_llint` as a LLInt local label prefix instead of `_offlineasm`.
https://bugs.webkit.org/show_bug.cgi?id=240885

Reviewed by Geoffrey Garen.

Code generated by the offlineasm is tightly coupled with JSC anyway.  Might as well
make the local labels more informative about where the code came from in crash traces.

So, instead of this:

    JavaScriptCore`vmEntryToJavaScript:
        0x1028b5d90 <+0 >:   pacibsp
        0x1028b5d94 <+4 >:   stp    x29, x30, [sp, #-0x10]!
        0x1028b5d98 <+8 >:   mov    x29, sp
        0x1028b5d9c <+12 >:  sub    sp, x29, #0xb0
        0x1028b5da0 <+16 >:  mov    x13, #0xc800
        0x1028b5da4 <+20 >:  add    x17, x1, x13
        0x1028b5da8 <+24 >:  ldr    w4, [x17]
        0x1028b5dac <+28 >:  cbnz   w4, 0x1028b5f34           ; _offlineasm_doVMEntry__checkVMEntryPermission
        0x1028b5db0 <+32 >:  str    x1, [sp]
        0x1028b5db4 <+36 >:  mov    x17, #0x9e78
        ...
        0x1028b5de8 <+88 >:  sub    x3, sp, x4
        0x1028b5dec <+92 >:  cmp    sp, x3
        0x1028b5df0 <+96 >:  b.ls   0x1028b5ef4               ; _offlineasm_doVMEntry__throwStackOverflow
        0x1028b5df4 <+100 >: mov    x17, #0xca00
        0x1028b5df8 <+104 >: add    x13, x1, x17
        0x1028b5dfc <+108 >: ldr    x17, [x13]
        0x1028b5e00 <+112 >: cmp    x3, x17
        0x1028b5e04 <+116 >: b.lo   0x1028b5ef4               ; _offlineasm_doVMEntry__throwStackOverflow

    JavaScriptCore`_offlineasm_doVMEntry__stackHeightOK:
        0x1028b5e08 <+0 >:   mov    sp, x3
        0x1028b5e0c <+4 >:   mov    x3, #0x4

    JavaScriptCore`_offlineasm_doVMEntry__copyHeaderLoop:
        0x1028b5e10 <+0 >:   sub    w3, w3, #0x1
        0x1028b5e14 <+4 >:   add    x17, x2, x3, lsl #3
        0x1028b5e18 <+8 >:   ldr    x5, [x17]

We now get this:

    JavaScriptCore`vmEntryToJavaScript:
        0x1028cdd90 <+0>:   pacibsp
        0x1028cdd94 <+4>:   stp    x29, x30, [sp, #-0x10]!
        0x1028cdd98 <+8>:   mov    x29, sp
        0x1028cdd9c <+12>:  sub    sp, x29, #0xb0
        0x1028cdda0 <+16>:  mov    x13, #0xc800
        0x1028cdda4 <+20>:  add    x17, x1, x13
        0x1028cdda8 <+24>:  ldr    w4, [x17]
        0x1028cddac <+28>:  cbnz   w4, 0x1028cdf34           ; jsc_llint_doVMEntry__checkVMEntryPermission
        0x1028cddb0 <+32>:  str    x1, [sp]
        0x1028cddb4 <+36>:  mov    x17, #0x9e78
        ...
        0x1028cdde8 <+88>:  sub    x3, sp, x4
        0x1028cddec <+92>:  cmp    sp, x3
        0x1028cddf0 <+96>:  b.ls   0x1028cdef4               ; jsc_llint_doVMEntry__throwStackOverflow
        0x1028cddf4 <+100>: mov    x17, #0xca00
        0x1028cddf8 <+104>: add    x13, x1, x17
        0x1028cddfc <+108>: ldr    x17, [x13]
        0x1028cde00 <+112>: cmp    x3, x17
        0x1028cde04 <+116>: b.lo   0x1028cdef4               ; jsc_llint_doVMEntry__throwStackOverflow

    JavaScriptCore`jsc_llint_doVMEntry__stackHeightOK:
        0x1028cde08 <+0>:   mov    sp, x3
        0x1028cde0c <+4>:   mov    x3, #0x4

    JavaScriptCore`jsc_llint_doVMEntry__copyHeaderLoop:
        0x1028cde10 <+0>:   sub    w3, w3, #0x1
        0x1028cde14 <+4>:   add    x17, x2, x3, lsl #3
        0x1028cde18 <+8>:   ldr    x5, [x17]

* Source/JavaScriptCore/offlineasm/arm.rb:
* Source/JavaScriptCore/offlineasm/arm64.rb:
* Source/JavaScriptCore/offlineasm/backends.rb:
* Source/JavaScriptCore/offlineasm/config.rb:

link: https://commits.webkit.org/250946@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

28 hours ago[Clang only] Make every LLInt asm global label an alt entry.
mark.lam@apple.com [Wed, 25 May 2022 03:30:54 +0000 (03:30 +0000)]
[Clang only] Make every LLInt asm global label an alt entry.
https://bugs.webkit.org/show_bug.cgi?id=240890

Reviewed by Yusuke Suzuki.

This is needed to keep Clang from moving these labels around.  For correctness, the AfterGate
labels rely on themselves not being move from where they are declared in source asm code.  We
should enforce this with the .alt_entry directive.

* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:

link: https://commits.webkit.org/250945@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

29 hours ago[GCC] Debian stable build bot broken after 250926@main
dpino@igalia.com [Wed, 25 May 2022 02:53:56 +0000 (02:53 +0000)]
[GCC] Debian stable build bot broken after 250926@main
https://bugs.webkit.org/show_bug.cgi?id=240897

Reviewed by Cameron McCormack.

GCC8.3 (Debian 10) doesn't support direct brace enclosed initialization of
bitfield enums.

* Source/WebCore/platform/text/TextFlags.h: Move initialization of
  bitfield enums to constructor.

link: https://commits.webkit.org/250944@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

30 hours agoReduce refcount of SharedMemory when sending them over IPC.
jya@apple.com [Wed, 25 May 2022 02:12:52 +0000 (02:12 +0000)]
Reduce refcount of SharedMemory when sending them over IPC.
https://bugs.webkit.org/show_bug.cgi?id=240855
rdar://problem/93806688

Reviewed by Jer Noble.

In the future, we want to be able to donate memory with exclusive access to another process, this require the VM to have a refcount of 1.
No change in obeservable behaviour. Covered by existing tests.

* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeSharedBuffer):
* Source/WebKit/UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
* Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:
(WebKit::RemoteMediaResourceProxy::dataReceived):
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::append):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::writeItemsToPasteboard):
* Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteDragImage):
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::didFinishLoadForQuickLookDocumentInMainFrame):
* Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getDataSelectionForPasteboard):

link: https://commits.webkit.org/250943@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

31 hours agoWeb Inspector: Timelines Tab: Screenshots: include images from `console.screenshot`
drousso@apple.com [Wed, 25 May 2022 00:22:45 +0000 (00:22 +0000)]
Web Inspector: Timelines Tab: Screenshots: include images from `console.screenshot`
https://bugs.webkit.org/show_bug.cgi?id=240853

Reviewed by Patrick Angle.

This is nice for developers as it gives them a way to visualize all of their `console.screenshot`,
which can be used to see visual snapshots of particular nodes/areas since it's configurable (instead
of the general "snapshot the viewport after compositing").

* Source/JavaScriptCore/inspector/protocol/Console.json:
* Source/JavaScriptCore/inspector/ConsoleMessage.h:
* Source/JavaScriptCore/inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::addToFrontend):
* Source/WebInspectorUI/UserInterface/Protocol/ConsoleObserver.js:
(WI.ConsoleObserver.prototype.messageAdded):
* Source/WebInspectorUI/UserInterface/Controllers/ConsoleManager.js:
(WI.ConsoleManager.prototype.messageWasAdded):
* Source/WebInspectorUI/UserInterface/Models/ConsoleMessage.js:
(WI.ConsoleMessage):
(WI.ConsoleMessage.prototype.get timestamp): Added.
Add a `timestamp` to console messages so that the frontend can know when the message was created.

* Source/WebCore/page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::screenshot):
Capture a `timestamp` before snapshotting so it doesn't skew where it's shown in the Timelines Tab.

* Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:
(WI.TimelineManager):
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._handleMessageAdded): Added.
Listen for `WI.ConsoleManager.Event.MessageAdded` to add `console.screenshot` to the Timelines Tab.

* Source/WebCore/inspector/TimelineRecordFactory.h:
* Source/WebCore/inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createScreenshotData):
* Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::captureScreenshot):
* Source/WebInspectorUI/UserInterface/Models/ScreenshotsTimelineRecord.js:
(WI.ScreenshotsTimelineRecord):
(WI.ScreenshotsTimelineRecord.async fromJSON):
(WI.ScreenshotsTimelineRecord.prototype.toJSON):
(WI.ScreenshotsTimelineRecord.prototype.get width): Deleted.
(WI.ScreenshotsTimelineRecord.prototype.get height): Deleted.
* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.js:
(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):
Drop `width`/`height` from screenshot records as the `dataURL` will contain it (after loading).

* LayoutTests/inspector/console/console-api-expected.txt:
* LayoutTests/inspector/console/console-screenshot.html:
* LayoutTests/inspector/console/console-table-expected.txt:
* LayoutTests/inspector/timeline/timeline-event-screenshots.html:
* LayoutTests/inspector/timeline/timeline-event-screenshots-expected.txt:
* LayoutTests/inspector/worker/console-basic-expected.txt:

link: https://commits.webkit.org/250942@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294780 268f45cc-cd09-0410-ab3c-d52691b4dbfc

32 hours agoRemove floating objects during tree normalization after style changes
svillar@igalia.com [Wed, 25 May 2022 00:06:14 +0000 (00:06 +0000)]
Remove floating objects during tree normalization after style changes
https://bugs.webkit.org/show_bug.cgi?id=240797

Reviewed by Darin Adler.

Float boxes define their own block formatting context and thus can't have other intruding
floats. That's why this scenario is not allowed in the code, except in the case when
a regular box with floatting descendants becomes float. In that case the tree might
be temporarily in a semi-correct state until we don't remove the intruding floats.

The current code deals with that by calling rebuildFloatingObjectSetFromIntrudingFloats()
in the subsequent layout. However it's possible that before that a style change kicks in and
mutates the render tree. In that case we could be manipulating stale objects. To prevent
that we can simply directly call removeFloatingObjects() when normalizing the tree after
a style change.

* Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): Call removeFloatingObjects().

link: https://commits.webkit.org/250941@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

32 hours ago[ macOS wk2 ] compositing/video/video-border-radius.html is a flakey image failure
commit-queue@webkit.org [Wed, 25 May 2022 00:04:59 +0000 (00:04 +0000)]
[ macOS wk2 ] compositing/video/video-border-radius.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=223383
<rdar://75529480>

Patch by Jean-Yves Avenard <jyavenard@gmail.com> on 2022-05-24
Reviewed by Eric Carlson.

The test waited on the event "canplaythrough" before performing
the screen comparison, assuming that the two videos would have
rendered their first video frame.
canplaythrough is fired, per spec, when the media engine has
buffered sufficient data to ensure a smooth playback to the end.
It provides no guarantee that playback/decoding has actually started.

So instead we wait for a frame to be actually painted with my new
favourite method of the day: requestVideoFrameCallback

* LayoutTests/compositing/video/video-border-radius.html:
* LayoutTests/platform/mac-wk2/TestExpectations:

link: https://commits.webkit.org/250940@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

33 hours agoWeb Inspector: Timelines Tab: Screenshots: images flash while recording is still...
drousso@apple.com [Tue, 24 May 2022 23:07:20 +0000 (23:07 +0000)]
Web Inspector: Timelines Tab: Screenshots: images flash while recording is still active
https://bugs.webkit.org/show_bug.cgi?id=240852

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.js:
(WI.ScreenshotsTimelineOverviewGraph):
(WI.ScreenshotsTimelineOverviewGraph.prototype.reset):
(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):
* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.js:
(WI.ScreenshotsTimelineView):
(WI.ScreenshotsTimelineView.prototype.reset):
(WI.ScreenshotsTimelineView.prototype.layout):
(WI.ScreenshotsTimelineView.prototype.selectRecord):
(WI.ScreenshotsTimelineView.prototype.clear): Deleted.
Keep a `WeakMap` of `<img>` for each `WI.ScreenshotsTimelineRecord` so that we don't recreate it
over and over in `layout`. Also, don't show the `<img>` until after it `"load"`.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:
(.timeline-view.screenshots):
(.timeline-view.screenshots > img.selected):
Remove scroll snapping as it prevents the selected image from being scrolled offscreen, which is
unnecessarily hostile. The changing border color is enough to identify it as the selected image.

* Source/WebInspectorUI/UserInterface/Base/Utilities.js:
(Map.prototype.getOrInitialize):
(WeakMap.prototype.getOrInitialize): Added.
Adjust utility function to allow for `value` to be a function that's only executed if the `key` does
not exist in the `Map`/`WeakMap`.

* LayoutTests/inspector/unit-tests/map-utilities.html:
* LayoutTests/inspector/unit-tests/map-utilities-expected.txt:
* LayoutTests/inspector/unit-tests/weakmap-utilities.html: Added.
* LayoutTests/inspector/unit-tests/weakmap-utilities-expected.txt: Added.

link: https://commits.webkit.org/250939@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294775 268f45cc-cd09-0410-ab3c-d52691b4dbfc

33 hours agoWeb Inspector: Timelines Tab: Screenshots: clicking on another screenshot doesn't...
drousso@apple.com [Tue, 24 May 2022 22:42:44 +0000 (22:42 +0000)]
Web Inspector: Timelines Tab: Screenshots: clicking on another screenshot doesn't select it if there's already a selected screenshot
https://bugs.webkit.org/show_bug.cgi?id=240884

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.js:
(WI.ScreenshotsTimelineOverviewGraph.prototype.layout):

link: https://commits.webkit.org/250938@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294773 268f45cc-cd09-0410-ab3c-d52691b4dbfc

33 hours agoWeb Inspector: Timelines Tab: Screenshots: images should have something to make them...
drousso@apple.com [Tue, 24 May 2022 22:34:24 +0000 (22:34 +0000)]
Web Inspector: Timelines Tab: Screenshots: images should have something to make them "pop" when not selected
https://bugs.webkit.org/show_bug.cgi?id=240850

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:
(.timeline-view.screenshots > img):
(.timeline-view.screenshots > img.selected):

link: https://commits.webkit.org/250937@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

33 hours ago[iOS] TestWebKitAPI.IndexedDB.IndexedDBSuspendImminently is consistently timing out...
ryanhaddad@apple.com [Tue, 24 May 2022 22:31:59 +0000 (22:31 +0000)]
[iOS] TestWebKitAPI.IndexedDB.IndexedDBSuspendImminently is consistently timing out on release
https://bugs.webkit.org/show_bug.cgi?id=240886

Unreviewed test gardening.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm:
(TEST): Skip the test.

link: https://commits.webkit.org/250936@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

33 hours agoWeb Inspector: Timelines Tab: Screenshots: not enough space between images
drousso@apple.com [Tue, 24 May 2022 22:24:37 +0000 (22:24 +0000)]
Web Inspector: Timelines Tab: Screenshots: not enough space between images
https://bugs.webkit.org/show_bug.cgi?id=240849

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:
(.timeline-view.screenshots > img):
(.timeline-view.screenshots > img + img): Added.

link: https://commits.webkit.org/250935@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

34 hours ago[ iOS & MacOS Release ]TestWebKitAPI.WebpagePreferences.WebsitePoliciesAutoplayQuirks...
ryanhaddad@apple.com [Tue, 24 May 2022 22:18:09 +0000 (22:18 +0000)]
[ iOS & MacOS Release ]TestWebKitAPI.WebpagePreferences.WebsitePoliciesAutoplayQuirksAsyncPolicyDelegate is a flaky timeout

Unreviewed test gardening.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(TEST): Skip the test.

link: https://commits.webkit.org/250934@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294769 268f45cc-cd09-0410-ab3c-d52691b4dbfc

34 hours agoUse the Clang .alt_entry directive to allow use of global labels in LLInt asm.
mark.lam@apple.com [Tue, 24 May 2022 21:55:45 +0000 (21:55 +0000)]
Use the Clang .alt_entry directive to allow use of global labels in LLInt asm.
https://bugs.webkit.org/show_bug.cgi?id=240881

Reviewed by Geoffrey Garen.

With this, debugging LLInt code will be easier.  LLInt code will no longer all be at an
offset from vmEntryToJavaScript.  They will instead be broken up into different sections
under human readable labels.

Secondly, crash traces of LLInt crashes will now be able to give us the nearest label
for a crash site, as opposed to everything being an offset from vmEntryToJavaScript.

For example, instead of this:

    JavaScriptCore`vmEntryToJavaScript:
        0x1026525b8 <+0>:   pacibsp
        0x1026525bc <+4>:   stp    x29, x30, [sp, #-0x10]!
        0x1026525c0 <+8>:   mov    x29, sp
        0x1026525c4 <+12>:  sub    sp, x29, #0xb0
        0x1026525c8 <+16>:  mov    x13, #0xc800
        0x1026525cc <+20>:  add    x17, x1, x13
        0x1026525d0 <+24>:  ldr    w4, [x17]
        0x1026525d4 <+28>:  cbnz   w4, 0x10265275c           ; vmEntryToJavaScriptGateAfter + 120
        0x1026525d8 <+32>:  str    x1, [sp]
        0x1026525dc <+36>:  mov    x17, #0x9e78
        0x1026525e0 <+40>:  add    x13, x1, x17
        0x1026525e4 <+44>:  ldr    x4, [x13]
        0x1026525e8 <+48>:  str    x4, [sp, #0x8]
        0x1026525ec <+52>:  mov    x13, #0x9e70
        0x1026525f0 <+56>:  add    x17, x1, x13
        0x1026525f4 <+60>:  ldr    x4, [x17]
        0x1026525f8 <+64>:  str    x4, [sp, #0x10]
        0x1026525fc <+68>:  ldr    x4, [x2, #0x8]
        0x102652600 <+72>:  str    x4, [sp, #0x18]
        0x102652604 <+76>:  ldr    w4, [x2, #0x20]
        0x102652608 <+80>:  add    x4, x4, #0x5
        0x10265260c <+84>:  lsl    x4, x4, #3
        0x102652610 <+88>:  sub    x3, sp, x4
        0x102652614 <+92>:  cmp    sp, x3
        0x102652618 <+96>:  b.ls   0x10265271c               ; vmEntryToJavaScriptGateAfter + 56
        0x10265261c <+100>: mov    x17, #0xca00
        0x102652620 <+104>: add    x13, x1, x17
        0x102652624 <+108>: ldr    x17, [x13]
        0x102652628 <+112>: cmp    x3, x17
        0x10265262c <+116>: b.lo   0x10265271c               ; vmEntryToJavaScriptGateAfter + 56
        0x102652630 <+120>: mov    sp, x3
        0x102652634 <+124>: mov    x3, #0x4
        0x102652638 <+128>: sub    w3, w3, #0x1
        0x10265263c <+132>: add    x17, x2, x3, lsl #3
        0x102652640 <+136>: ldr    x5, [x17]

We now get this:

    JavaScriptCore`vmEntryToJavaScript:
        0x1028b5d90 <+0>:   pacibsp
        0x1028b5d94 <+4>:   stp    x29, x30, [sp, #-0x10]!
        0x1028b5d98 <+8>:   mov    x29, sp
        0x1028b5d9c <+12>:  sub    sp, x29, #0xb0
        0x1028b5da0 <+16>:  mov    x13, #0xc800
        0x1028b5da4 <+20>:  add    x17, x1, x13
        0x1028b5da8 <+24>:  ldr    w4, [x17]
        0x1028b5dac <+28>:  cbnz   w4, 0x1028b5f34           ; _offlineasm_doVMEntry__checkVMEntryPermission
        0x1028b5db0 <+32>:  str    x1, [sp]
        0x1028b5db4 <+36>:  mov    x17, #0x9e78
        0x1028b5db8 <+40>:  add    x13, x1, x17
        0x1028b5dbc <+44>:  ldr    x4, [x13]
        0x1028b5dc0 <+48>:  str    x4, [sp, #0x8]
        0x1028b5dc4 <+52>:  mov    x13, #0x9e70
        0x1028b5dc8 <+56>:  add    x17, x1, x13
        0x1028b5dcc <+60>:  ldr    x4, [x17]
        0x1028b5dd0 <+64>:  str    x4, [sp, #0x10]
        0x1028b5dd4 <+68>:  ldr    x4, [x2, #0x8]
        0x1028b5dd8 <+72>:  str    x4, [sp, #0x18]
        0x1028b5ddc <+76>:  ldr    w4, [x2, #0x20]
        0x1028b5de0 <+80>:  add    x4, x4, #0x5
        0x1028b5de4 <+84>:  lsl    x4, x4, #3
        0x1028b5de8 <+88>:  sub    x3, sp, x4
        0x1028b5dec <+92>:  cmp    sp, x3
        0x1028b5df0 <+96>:  b.ls   0x1028b5ef4               ; _offlineasm_doVMEntry__throwStackOverflow
        0x1028b5df4 <+100>: mov    x17, #0xca00
        0x1028b5df8 <+104>: add    x13, x1, x17
        0x1028b5dfc <+108>: ldr    x17, [x13]
        0x1028b5e00 <+112>: cmp    x3, x17
        0x1028b5e04 <+116>: b.lo   0x1028b5ef4               ; _offlineasm_doVMEntry__throwStackOverflow

    JavaScriptCore`_offlineasm_doVMEntry__stackHeightOK:
        0x1028b5e08 <+0>:   mov    sp, x3
        0x1028b5e0c <+4>:   mov    x3, #0x4

    JavaScriptCore`_offlineasm_doVMEntry__copyHeaderLoop:
        0x1028b5e10 <+0>:   sub    w3, w3, #0x1
        0x1028b5e14 <+4>:   add    x17, x2, x3, lsl #3
        0x1028b5e18 <+8>:   ldr    x5, [x17]

This feature is only available when COMPILER(CLANG) is true.

* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:

link: https://commits.webkit.org/250933@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294768 268f45cc-cd09-0410-ab3c-d52691b4dbfc

34 hours agoWK_ALTERNATE_FRAMEWORKS_DIR should not affect WK_OVERRIDE_FRAMEWORKS_DIR
emw@apple.com [Tue, 24 May 2022 21:49:41 +0000 (21:49 +0000)]
WK_ALTERNATE_FRAMEWORKS_DIR should not affect WK_OVERRIDE_FRAMEWORKS_DIR
https://bugs.webkit.org/show_bug.cgi?id=240831

Reviewed by Tim Horton.

Resolve an inconsistency among projects regarding whether
WK_OVERRIDE_FRAMEWORKS_DIR is set for Mac Catalyst. Catalyst builds work
by setting WK_ALTERNATE_FRAMEWORKS_DIR. With this change, we update
projects so that an alternates directory never affects
WK_OVERRIDE_FRAMEWORKS_DIR.

This brings JavaScriptCore and WebGPU in
line with build settings logic in ANGLE, libwebrtc, PAL, WebCore,
WebInspectorUI, WebKitLegacy, and WebKit. Some of these projects were
changed to have these semantics years ago in <https://commits.webkit.org/r230958>.

Separating WK_ALTERNATE_FRAMEWORKS_DIR from WK_OVERRIDE_FRAMEWORKS_DIR
is valuable for distinguishing between system-installed Mac Catalyst
WebKit and self-contained WebKit builds such as STP.

* Source/JavaScriptCore/Configurations/Base.xcconfig:
* Source/WebGPU/Configurations/Base.xcconfig:

link: https://commits.webkit.org/250932@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294767 268f45cc-cd09-0410-ab3c-d52691b4dbfc

34 hours ago[iOS] No message displayed when Parental content filter blocked load
pvollan@apple.com [Tue, 24 May 2022 21:37:22 +0000 (21:37 +0000)]
[iOS] No message displayed when Parental content filter blocked load
https://bugs.webkit.org/show_bug.cgi?id=240724

Reviewed by Geoffrey Garen.

The request to unblock a load after it has being blocked by the Parental content filter on iOS needs to be
performed in the UI process, since it may show UI. This path does not set the blocked error description on
the content filter like we do in the other path, which is addressed in this patch. This is a regression
from moving the content filtering to the Network process.

* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::contentFilterDidBlock):

link: https://commits.webkit.org/250931@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

35 hours agoRe-enable HEIC tests
nmouchtaris@apple.com [Tue, 24 May 2022 21:05:04 +0000 (21:05 +0000)]
Re-enable HEIC tests
https://bugs.webkit.org/show_bug.cgi?id=240843
<rdar://90658250>

Reviewed by Per Arne Vollan.

Re-enable HEIC tests as although we are not supporting them in web content, we
want to re-enable them as the process they are testing is still being used in
Mail and other apps.

* LayoutTests/fast/images/heic-as-background-image-expected.html: Added.
* LayoutTests/fast/images/heic-as-background-image.html: Added.
* LayoutTests/fast/images/resources/green-400x400.heic: Added.
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac/TestExpectations:
* Source/WebCore/platform/RuntimeApplicationChecks.h:
* Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::CocoaApplication::isWebkitTestRunner):
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):

link: https://commits.webkit.org/250930@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

35 hours agoWeb Inspector: Assertion Failed: Expect an array of string values CSSCompletions...
rcaliman@apple.com [Tue, 24 May 2022 20:54:51 +0000 (20:54 +0000)]
Web Inspector: Assertion Failed: Expect an array of string values CSSCompletions.js:39
https://bugs.webkit.org/show_bug.cgi?id=240715

Reviewed by Devin Rousso.

When instantiating `WI.CSSCompletions` in `WI.CSSKeywordCompletions.forFunction()`
for "var" functions, the `values` array is initally empty.
An array of strings was expected.

The actual values are added immediately after instantiation via
`WI.CSSCompletions.addValues()`. They come from the custom completion provider
referenced by the `additionalFunctionValueCompletionsProvider` option.

There's no reason to have this two step approach. We can provide the result of
`additionalFunctionValueCompletionsProvider("var")` at `WI.CSSCompletions`
instantiation.

* Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js:

Updated the assertion in the constructor to accept an empty array of values.
One may be returned when requesting CSS variable name completions on a
page without any variables defined.

(WI.CSSCompletions.prototype.addValues): Deleted.

The method can be removed because there are no other callers of `WI.CSSCompletions.addValues()`.

* Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:

We can concatenate the array of pre-defined values in
`WI.CSSKeywordCompletions.forFunction()` with the result of
`additionalFunctionValueCompletionsProvider()` and use the result when
instantiating `WI.CSSCompletions`.

* Source/WebInspectorUI/UserInterface/Models/CSSPropertyNameCompletions.js:
(WI.CSSPropertyNameCompletions.prototype.addValues): Deleted.

It was never expected to call `WI.CSSPropertyNameCompletions.addValues()` else
it would screw up the fixed list of supported property names instantiated only
once when Web Inspector connects to the backend. The subclass had an assertion
on `.addValues()` to remind us of this pitfall. This can go away too now.

link: https://commits.webkit.org/250929@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294763 268f45cc-cd09-0410-ab3c-d52691b4dbfc

35 hours agoWeb Inspector: Timelines Tab: Screenshots: white images blend in with the background
drousso@apple.com [Tue, 24 May 2022 20:47:29 +0000 (20:47 +0000)]
Web Inspector: Timelines Tab: Screenshots: white images blend in with the background
https://bugs.webkit.org/show_bug.cgi?id=240848

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:
(.timeline-view.screenshots):
(@media (prefers-color-scheme: dark) .timeline-view.screenshots): Added.

link: https://commits.webkit.org/250928@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

36 hours agoWeb Inspector: Timelines Tab: Screenshots: show placeholder text when there's no...
drousso@apple.com [Tue, 24 May 2022 20:14:02 +0000 (20:14 +0000)]
Web Inspector: Timelines Tab: Screenshots: show placeholder text when there's no images
https://bugs.webkit.org/show_bug.cgi?id=240851

Reviewed by Patrick Angle.

* Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.js:
(WI.ScreenshotsTimelineView.prototype.layout):

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

link: https://commits.webkit.org/250927@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294759 268f45cc-cd09-0410-ab3c-d52691b4dbfc

36 hours agoSimplify ExpansionBehavior to avoid using getters/setters
commit-queue@webkit.org [Tue, 24 May 2022 19:43:40 +0000 (19:43 +0000)]
Simplify ExpansionBehavior to avoid using getters/setters
https://bugs.webkit.org/show_bug.cgi?id=240823

Patch by Kiet Ho <tho22@apple.com> on 2022-05-24
Reviewed by Cameron McCormack.

* Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::applyRunExpansion):
* Source/WebCore/platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::expansionOpportunityCountInternal):
* Source/WebCore/platform/graphics/TextRun.cpp:
* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::calculateAdditionalWidth const):
* Source/WebCore/platform/text/TextFlags.h:
(WebCore::ExpansionBehavior::ExpansionBehavior):
(WebCore::ExpansionBehavior::defaultBehavior):
(WebCore::ExpansionBehavior::allowRightOnly):
(WebCore::ExpansionBehavior::allowLeftOnly):
(WebCore::ExpansionBehavior::forceLeftOnly):
(WebCore::ExpansionBehavior::forbidAll):
(WebCore::ExpansionBehavior::left const): Deleted.
(WebCore::ExpansionBehavior::setLeft): Deleted.
(WebCore::ExpansionBehavior::right const): Deleted.
(WebCore::ExpansionBehavior::setRight): Deleted.
* Source/WebCore/rendering/LegacyInlineTextBox.cpp:
(WebCore::LegacyInlineTextBox::expansionBehavior const):
* Source/WebCore/rendering/LegacyLineLayout.cpp:
(WebCore::expansionBehaviorForInlineTextBox):
(WebCore::applyExpansionBehavior):

link: https://commits.webkit.org/250926@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294758 268f45cc-cd09-0410-ab3c-d52691b4dbfc

36 hours agoPrivate relay should fail closed for third party loads if the main resource was loade...
achristensen@apple.com [Tue, 24 May 2022 19:36:02 +0000 (19:36 +0000)]
Private relay should fail closed for third party loads if the main resource was loaded over private relay
https://bugs.webkit.org/show_bug.cgi?id=240483

Reviewed by Chris Dumez.

This re-lands the change from r293861 along with r293481 except it uses ResourceRequest.firstPartyForCookies
instead of NetworkLoadParameters.topOrigin, which ought to be equivalent but the latter seems less reliable
and has been the cause of performance regressions associated with a few previous attempts at this fix.

* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::createWebSocketTask):

link: https://commits.webkit.org/250925@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294757 268f45cc-cd09-0410-ab3c-d52691b4dbfc

36 hours agoImport text-indent tests from WPT
commit-queue@webkit.org [Tue, 24 May 2022 19:18:53 +0000 (19:18 +0000)]
Import text-indent tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=240835

Patch by Kiet Ho <tho22@apple.com> on 2022-05-24
Reviewed by Tim Nguyen.

Imported directory css/css-text/text-indent from WPT commit
2afc2f61703755c91daaf1a7ddf9ddf868c76699. This includes tests migrated from WebKit
to WPT in PR https://github.com/web-platform-tests/wpt/pull/34153.

* LayoutTests/TestExpectations:
* LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html: Removed.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-flex-item-001-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-flex-item-001.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-grid-item-001-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/anonymous-grid-item-001.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-hanging-expected.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging-expected.html.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-each-line-hanging.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-percentage-002.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-percentage-003.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-percentage-004.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-with-absolute-pos-child-expected.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-with-absolute-pos-child-expected.html.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-with-absolute-pos-child.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-with-absolute-pos-child.html.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-indent/w3c-import.log:

link: https://commits.webkit.org/250924@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

37 hours agoStart using min/max content size for flexing
zalan@apple.com [Tue, 24 May 2022 19:12:38 +0000 (19:12 +0000)]
Start using min/max content size for flexing
https://bugs.webkit.org/show_bug.cgi?id=240872

Reviewed by Antti Koivisto.

* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:
(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::FlexLayout::updateFlexItemDimensions):
* Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.h:
* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

link: https://commits.webkit.org/250923@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294755 268f45cc-cd09-0410-ab3c-d52691b4dbfc

37 hours agoREGRESSION (r292532): pge.com: Unable to focus on any of the inputs
zalan@apple.com [Tue, 24 May 2022 18:48:31 +0000 (18:48 +0000)]
REGRESSION (r292532): pge.com: Unable to focus on any of the inputs
https://bugs.webkit.org/show_bug.cgi?id=240832
<rdar://92538460>

Reviewed by Simon Fraser.

This is a revert of r292532. Blank float avoiders (used width = 0px) do fit even when the available space is zero. We have to find a different way to address the float fitting issue in contain-inline-size-bfc-floats-001.html (though I am not convinced that the expected result is correct anymore).

* LayoutTests/TestExpectations:
* LayoutTests/fast/block/float/zero-size-float-avoider-incorrect-position-expected.html: Added.
* LayoutTests/fast/block/float/zero-size-float-avoider-incorrect-position.html: Added.
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::getClearDelta):

link: https://commits.webkit.org/250922@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

38 hours agoisContentEditable returns false for `display:none` contenteditable elements, but...
timothy_horton@apple.com [Tue, 24 May 2022 17:28:58 +0000 (17:28 +0000)]
isContentEditable returns false for `display:none` contenteditable elements, but true for children
https://bugs.webkit.org/show_bug.cgi?id=240834

Reviewed by Ryosuke Niwa.

* Source/WebCore/dom/Node.cpp:
(WebCore::computeEditabilityFromComputedStyle):
Remove a `display: none` check. This check is wrong for two reasons:

1) It only consults the style of the immediate element, not whether or not
   that element is in a `display: none` subtree. This regressed in r160966.
   This causes a confusing situation where `display: none` affects the editability
   of only the element it is directly applied to.

2) isContentEditable is not specified to be affected by `display: none`.

* LayoutTests/editing/editability/isContentEditable-in-display-none-expected.txt: Added.
* LayoutTests/editing/editability/isContentEditable-in-display-none.html: Added.
Add a test that dumps the editability of a variety of different configurations of
contenteditable elements and their children.

Before this change, this test would have said that #nonVisible (the display: none
contenteditable element) was read-only, but its child <p> was editable. Now we
agree with Gecko and Blink who both say that both are editable.

* LayoutTests/fast/events/event-input-contentEditable-expected.txt:
* LayoutTests/fast/events/event-input-contentEditable.html:
Adjust this test to expect an input event to be dispatched for programmatic
editing in display: none elements. Also add a sub-test that checks the same,
but in a child element.

Before this change, we would not dispatch an input event to the display: none
contenteditable itself, but *would* dispatch an input event for input into a child element.
Now we agree with Gecko, who dispatch events in both cases.

link: https://commits.webkit.org/250921@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294753 268f45cc-cd09-0410-ab3c-d52691b4dbfc

39 hours agoREGRESSION (r289032): rotate animation doesn't interpolate between 0 and 1turn withou...
mrobinson@webkit.org [Tue, 24 May 2022 16:57:53 +0000 (16:57 +0000)]
REGRESSION (r289032): rotate animation doesn't interpolate between 0 and 1turn without forced 50% https://bugs.webkit.org/show_bug.cgi?id=239906

Reviewed by Simon Fraser.

When using CoreAnimation non-matrix animations to animate rotations,
CoreAnimation will use the shortest direction between two rotation
angles. This means that a rotation from 0 to 360 will not rotate at all.
This is different from how CSS works, where it expects the animation to
do a full turn. In order to avoid problems with this difference, when an
animation includes larger angles (> 180 degrees), fall back to software
animation.

No new tests. It is difficult to make a test for this because
when pausing animations the software path is used.

* LayoutTests/animations/3d/full-rotation-animation-expected.html: Added.
* LayoutTests/animations/3d/full-rotation-animation.html: Added.
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::transformationAnimationValueAt):
(WebCore::hasBigRotationAngle):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
* Source/WebCore/platform/graphics/transforms/TransformOperations.h:
(WebCore::SharedPrimitivesPrefix::primitives const):
(WebCore::SharedPrimitivesPrefix::primitives): Deleted.

link: https://commits.webkit.org/250920@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294752 268f45cc-cd09-0410-ab3c-d52691b4dbfc

39 hours ago[build.webkit.org] Allow configuring multiple user credentials
ryanhaddad@apple.com [Tue, 24 May 2022 16:39:51 +0000 (16:39 +0000)]
[build.webkit.org] Allow configuring multiple user credentials
https://bugs.webkit.org/show_bug.cgi?id=240826

Reviewed by Aakash Jain.

Allow configuring multiple user credentials for build.webkit.org as we
did for ews-build.webkit.org in 246332@main. This also loads credentials
from passwords.json instead of environment variables.

* Tools/CISupport/build-webkit-org/master.cfg:

link: https://commits.webkit.org/250919@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294751 268f45cc-cd09-0410-ab3c-d52691b4dbfc

40 hours agoAvoid unnecessary calls to fastZeroedMalloc() in FastBitVector
cdumez@apple.com [Tue, 24 May 2022 16:15:40 +0000 (16:15 +0000)]
Avoid unnecessary calls to fastZeroedMalloc() in FastBitVector
https://bugs.webkit.org/show_bug.cgi?id=240812

Reviewed by Yusuke Suzuki.

We were calling fastZeroedMalloc() which would allocate the memory and memset it to 0,
only to then overwrite all (or most) of that memory with memcpy().

* Source/WTF/wtf/FastBitVector.cpp:
(WTF::FastBitVectorWordOwner::setEqualsSlow):
(WTF::FastBitVectorWordOwner::resizeSlow):

link: https://commits.webkit.org/250918@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

40 hours ago[Gardening]: [ Monterey wk2 debug ] WebGL conformance tests are a flaky time out
rackler@apple.com [Tue, 24 May 2022 16:14:21 +0000 (16:14 +0000)]
[Gardening]: [ Monterey wk2 debug ] WebGL conformance tests are a flaky time out
https://bugs.webkit.org/show_bug.cgi?id=239386
<rdar://91807783>

Unreviewed test gardening.

* LayoutTests/platform/mac-wk2/TestExpectations:

link: https://commits.webkit.org/250917@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294749 268f45cc-cd09-0410-ab3c-d52691b4dbfc

40 hours ago[GitHub] git-webkit pr doesn't sort Xcode project files before uploading
jbedard@apple.com [Tue, 24 May 2022 15:38:44 +0000 (15:38 +0000)]
[GitHub] git-webkit pr doesn't sort Xcode project files before uploading
https://bugs.webkit.org/show_bug.cgi?id=239975
<rdar://92976140>

Reviewed by Chris Dumez.

* Tools/Scripts/hooks/pre-commit: Sort Xcode project files on commit.

link: https://commits.webkit.org/250916@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294748 268f45cc-cd09-0410-ab3c-d52691b4dbfc

40 hours agoImageAnalysisTests.AnalyzeDynamicallyLoadedImages is a flaky timeout
wenson_hsieh@apple.com [Tue, 24 May 2022 15:24:58 +0000 (15:24 +0000)]
ImageAnalysisTests.AnalyzeDynamicallyLoadedImages is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=240847
rdar://93268890

Reviewed by Tim Horton.

This API test was created to verify that ImageAnalysisQueue detects and enqueues images that are
inserted into the document via script, after `-_startImageAnalysis:` has been invoked. Currently, it
occasionally times out, when the logic in `ImageAnalysisQueue::enqueueIfNeeded` to reject tiny
(< 20 by 20) images from the analysis queue falsely prevents us from enqueueing the newly inserted
image element.

Note that `enqueueIfNeeded` is called after the image has finished loading (i.e., dispatched its
"load" event for the new image). However, in this state, the image element's renderer hasn't
necessarily been laid out yet since its image source has changed, which means that the actual size
of the renderer might still be empty (0 by 0) when invoking `enqueueIfNeeded`. Since we currently
consult `RenderBox::size()` on the `RenderImage` in this method, we end up bailing too early.

Instead of checking the size of the renderer, we should be checking the size of the image instead
since the image itself is what's used to generate the bitmap image, over which we'll eventually run
image analysis. Unlike the renderer, this cached image's size doesn't depend on layout, and is
guaranteed to be up to date when the image has finished loading. This also allows us to simplify the
logic here -- since null `WebCore::Image`s are empty, checking that both the width and height of the
image are at least 20 is sufficient to avoid queueing null images for analysis.

* Source/WebCore/page/ImageAnalysisQueue.cpp:
(WebCore::ImageAnalysisQueue::enqueueIfNeeded):

link: https://commits.webkit.org/250915@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294747 268f45cc-cd09-0410-ab3c-d52691b4dbfc

41 hours agoRemove unused RenderTheme video-related methods
ntim@apple.com [Tue, 24 May 2022 15:01:15 +0000 (15:01 +0000)]
Remove unused RenderTheme video-related methods
https://bugs.webkit.org/show_bug.cgi?id=240862

Reviewed by Antoine Quint.

* Source/WebCore/html/shadow/SliderThumbElement.cpp:
(WebCore::hasVerticalAppearance):
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::formatMediaControlsTime const): Deleted.
(WebCore::RenderTheme::formatMediaControlsCurrentTime const): Deleted.
(WebCore::RenderTheme::formatMediaControlsRemainingTime const): Deleted.
(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton const): Deleted.
* Source/WebCore/rendering/RenderTheme.h:
(WebCore::RenderTheme::supportsClosedCaptioning const): Deleted.
(WebCore::RenderTheme::hasOwnDisabledStateHandlingFor const): Deleted.
(WebCore::RenderTheme::usesMediaControlStatusDisplay): Deleted.
(WebCore::RenderTheme::usesMediaControlVolumeSlider const): Deleted.
(WebCore::RenderTheme::usesVerticalVolumeSlider const): Deleted.
(WebCore::RenderTheme::mediaControlsFadeInDuration): Deleted.
(WebCore::RenderTheme::mediaControlsFadeOutDuration): Deleted.
* Source/WebCore/rendering/RenderThemeMac.h:
(WebCore::RenderThemeMac::supportsClosedCaptioning const final): Deleted.

link: https://commits.webkit.org/250914@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294746 268f45cc-cd09-0410-ab3c-d52691b4dbfc

41 hours ago[LBSE] Add support for <circle> & <ellipse>
commit-queue@webkit.org [Tue, 24 May 2022 14:31:01 +0000 (14:31 +0000)]
[LBSE] Add support for <circle> & <ellipse>
https://bugs.webkit.org/show_bug.cgi?id=240793

Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2022-05-24
Reviewed by Rob Buis.

Rename RenderSVGEllipse -> LegacyRenderSVGEllipse and adapt callees.

Re-introduce RenderSVGEllipse for LBSE, and activate renderer creation
for <circle> & <ellipse>, if LBSE is enabled at run-time.

This allows 14 more SVG 1.1 testcases to pass.

* LayoutTests/platform/mac-monterey-wk2-lbse-text/TestExpectations:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-21-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-23-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-26-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-28-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-29-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-37-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-44-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-80-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/color-prop-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/coords-units-02-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/coords-viewattr-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-felem-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/interact-cursor-01-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/interact-order-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/interact-zoom-01-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-a-04-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-a-05-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-uri-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/linking-uri-02-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/painting-render-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/script-handle-02-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/script-handle-03-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/script-handle-04-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-circle-01-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-ellipse-01-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-frag-02-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-frag-03-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-frag-04-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-css-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-css-02-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-css-03-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-inherit-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/styling-pres-01-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/text-align-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/text-align-05-b-expected.txt:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.cpp: Copied from Source/WebCore/rendering/svg/RenderSVGEllipse.cpp.
(WebCore::LegacyRenderSVGEllipse::LegacyRenderSVGEllipse):
(WebCore::LegacyRenderSVGEllipse::updateShapeFromElement):
(WebCore::LegacyRenderSVGEllipse::calculateRadiiAndCenter):
(WebCore::LegacyRenderSVGEllipse::fillShape const):
(WebCore::LegacyRenderSVGEllipse::strokeShape const):
(WebCore::LegacyRenderSVGEllipse::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGEllipse::shapeDependentFillContains const):
(WebCore::LegacyRenderSVGEllipse::isRenderingDisabled const):
* Source/WebCore/rendering/svg/LegacyRenderSVGEllipse.h: Copied from Source/WebCore/rendering/svg/RenderSVGEllipse.h.
* Source/WebCore/rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::RenderSVGEllipse):
(WebCore::RenderSVGEllipse::updateShapeFromElement):
(WebCore::RenderSVGEllipse::fillShape const):
(WebCore::RenderSVGEllipse::strokeShape const):
(WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
(WebCore::RenderSVGEllipse::shapeDependentFillContains const):
* Source/WebCore/rendering/svg/RenderSVGEllipse.h:
* Source/WebCore/svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::createElementRenderer):
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::createSVGLayerAwareElementSet):
* Source/WebCore/svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::createElementRenderer):

link: https://commits.webkit.org/250913@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294745 268f45cc-cd09-0410-ab3c-d52691b4dbfc

41 hours agoObey intrinsic min-height in nested column flex container
obrufau@igalia.com [Tue, 24 May 2022 14:22:19 +0000 (14:22 +0000)]
Obey intrinsic min-height in nested column flex container
https://bugs.webkit.org/show_bug.cgi?id=240068

Reviewed by Sergio Villar Senin.

Fixes a regression from bug 230755. An intrinsic min-height should make
a column flex container grow enough for its contents, even if it's also
a flex item with a small definite flex-basis like 0px.

Test: imported/w3c/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-031.html

link: https://commits.webkit.org/250912@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294744 268f45cc-cd09-0410-ab3c-d52691b4dbfc

42 hours ago[sqlite] Remove superfluous assertion
csaavedra@igalia.com [Tue, 24 May 2022 13:34:14 +0000 (13:34 +0000)]
[sqlite] Remove superfluous assertion
https://bugs.webkit.org/show_bug.cgi?id=240869

Reviewed by NOBODY (OOPS!).

Span::size() always returns a non-negative value, so checking
that the blob's size is greater than zero is unnecessary.

* Source/WebCore/platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::bindBlob):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294743 268f45cc-cd09-0410-ab3c-d52691b4dbfc

43 hours agocanvas-createPattern-video-modify.html is an intermittent failure
jya@apple.com [Tue, 24 May 2022 13:08:49 +0000 (13:08 +0000)]
canvas-createPattern-video-modify.html is an intermittent failure
https://bugs.webkit.org/show_bug.cgi?id=240780
rdar://93731906

Reviewed by Youenn Fablet.

The tests relied on the event "loadeddata" to be fired to check if the first video frame got painted.
However, at present there's no guarantee that a frame would have been painted at the time this event is fired.
This issue is separately tracked in bug 240779

So instead we use the new requestVideoCallbackFrame API which is designed specifically for this case.
We also simplify the existing page, using more modern JS features.

* LayoutTests/fast/canvas/canvas-createPattern-video-loading.html:
* LayoutTests/fast/canvas/canvas-createPattern-video-modify.html:
* LayoutTests/media/utilities.js:
(once):
(fetchWithXHR):
(waitForVideoFrame):
(waitForVideoFrameUntil):

link: https://commits.webkit.org/250910@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294742 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 days ago[WPE] Unreviewed test gardening, update baselines
dpino@igalia.com [Tue, 24 May 2022 08:17:38 +0000 (08:17 +0000)]
[WPE] Unreviewed test gardening, update baselines

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294741 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 days agoREGRESSION (r294291): Another nullptr crash with ::first-letter
antti@apple.com [Tue, 24 May 2022 06:00:48 +0000 (06:00 +0000)]
REGRESSION (r294291): Another nullptr crash with ::first-letter
https://bugs.webkit.org/show_bug.cgi?id=240795
<rdar://93645746>

Reviewed by Alan Bujtas.

* LayoutTests/fast/css/first-letter-remove-crash-expected.txt: Added.
* LayoutTests/fast/css/first-letter-remove-crash.html: Added.
* LayoutTests/fast/css/first-letter-removed-added-expected.txt:

* Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):

We should always find :first-letter style when we get here.

* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):

Rebuild the renderer subtree if ::first-letter pseudo-class stops applying.

link: https://commits.webkit.org/250908@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294736 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 days agoREGRESSION (250413@main): [ iOS ] system-preview/badge.html is a consistent image...
commit-queue@webkit.org [Tue, 24 May 2022 05:13:48 +0000 (05:13 +0000)]
REGRESSION (250413@main): [ iOS ] system-preview/badge.html is a consistent image failure
https://bugs.webkit.org/show_bug.cgi?id=240352
rdar://93191053

Patch by Antoine Quint <graouts@apple.com> on 2022-05-23
Reviewed by Simon Fraser.

In the case of an ARKit image, we should only be returning when we don't
have a native image to record, otherwise the system image itself needs
to be recorded as well.

* LayoutTests/platform/ios-wk2/TestExpectations:
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawSystemImage):

link: https://commits.webkit.org/250907@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294729 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 days agoRemove RenderSliderThumb
ntim@apple.com [Tue, 24 May 2022 05:09:52 +0000 (05:09 +0000)]
Remove RenderSliderThumb
https://bugs.webkit.org/show_bug.cgi?id=240794

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

* Source/WebCore/html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):
(WebCore::RenderSliderThumb::RenderSliderThumb): Deleted.
(WebCore::RenderSliderThumb::updateAppearance): Deleted.
(WebCore::RenderSliderThumb::isSliderThumb const): Deleted.
(WebCore::SliderThumbElement::createElementRenderer): Deleted.
* Source/WebCore/html/shadow/SliderThumbElement.h:
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::isSlider const):
(WebCore::RenderObject::isSliderThumb const): Deleted.
* Source/WebCore/rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout): Deleted.
* Source/WebCore/rendering/RenderSlider.h:

link: https://commits.webkit.org/250906@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 days ago[GLIB] Unreviewed test gardening, update expectations after r293691
dpino@igalia.com [Tue, 24 May 2022 04:09:57 +0000 (04:09 +0000)]
[GLIB] Unreviewed test gardening, update expectations after r293691

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294727 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 days agoFix webpushd crash when removing notification permissions
nham@apple.com [Tue, 24 May 2022 04:00:18 +0000 (04:00 +0000)]
Fix webpushd crash when removing notification permissions
https://bugs.webkit.org/show_bug.cgi?id=240737

Reviewed by Chris Dumez and Geoffrey Garen.

When removing notification permissions for an origin, webpushd crashes because of a RELEASE_ASSERT
that fires in AppBundleRequest::start when INSTALL_COORDINATION_BUNDLES isn't enabled and mock
bundles aren't enabled.

Fix this by removing the calls into AppBundleRequest when INSTALL_COORDINATION_BUNDLES isn't enabled.
Those requests are only meant to run when that feature is enabled.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm: Only run the permission management test
  when INSTALL_COORDINATION_BUNDLES is enabled (e.g. on iOS); that is the only time it makes sense
  to test that codepath.
* Source/WebKit/webpushd/WebPushDaemon.h:
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::deletePushRegistration):
(WebPushD::Daemon::deletePushAndNotificationRegistration):

link: https://commits.webkit.org/250904@main
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@294726 268f45cc-cd09-0410-ab3c-d52691b4dbfc