Skip to content

Cherry-pick(s) b424c89ef690. rdar://136988841#1

Open
bravc wants to merge 6595 commits intomainfrom
integration/conflict/b424c89ef690_b424c89ef690_main
Open

Cherry-pick(s) b424c89ef690. rdar://136988841#1
bravc wants to merge 6595 commits intomainfrom
integration/conflict/b424c89ef690_b424c89ef690_main

Conversation

@bravc
Copy link
Owner

@bravc bravc commented Oct 3, 2024

Integration has hit a merge conflict while integrating rdar://136988841 to main.


    neowin.net: 'share' drop-down layout is broken and overlaps
    https://bugs.webkit.org/show_bug.cgi?id=275290
    <rdar://problem/129445546>

    Reviewed by Antti Koivisto.

    Floats, somewhat surprisingly may overlap each other, but only when an already placed float coming from outside of
    the current containing block does not overlap the containing block's content box.
    In such cases, newly placed floats may overlap such non-intrusive floats at their non-floating side.

    e.g.

    F - float box
    C - containing block for (F)
    N - non-overlapping box, sibling of C, also float but not overlapping C's content box.

     <div id=N style="width: 20px; float: left"></div>
     <div id=C style="width: 100px; padding-left: 20px">
       <div id=F style="width: 200px; float: right">

      _____
     |N    |  This is where (C)'s content box starts (see padding-left: 20px)
     |_____|_|____________________
     |C ___|_|__________________ |
     | |   | |                 F||
     | |   | |                  ||
     | |   | |                  ||
     | |___|_|__________________||
     |_____|_|___________________|
     |     |
     |_____|

    Note that (F) float box overlaps (N -also float) with its non-floating (left) side.

    * Source/WebCore/layout/floats/FloatingContext.cpp:
    (WebCore::Layout::findAvailablePosition):
    (WebCore::Layout::FloatingContext::positionForFloat const):
    (WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
    (WebCore::Layout::FloatingContext::findPositionForFormattingContextRoot const):
    * Source/WebCore/layout/floats/FloatingContext.h:

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

szewai and others added 30 commits September 27, 2024 13:47
https://bugs.webkit.org/show_bug.cgi?id=280305
rdar://136631464

Reviewed by Chris Dumez and Ryosuke Niwa.

Make sure ApplePay message endpoints are disabled when feature is disabled.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:
(WebKit::NetworkConnectionToWebProcess::sharedPreferencesForWebPaymentMessages const):
* Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.h:
(WebKit::WebPaymentCoordinatorProxy::sharedPreferencesForWebProcess const):
* Source/WebKit/Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::Internals::sharedPreferencesForWebPaymentMessages const):
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/WebPageProxyInternals.h:

Canonical link: https://commits.webkit.org/284390@main
https://bugs.webkit.org/show_bug.cgi?id=280532
rdar://136846218

Reviewed by Alan Baradlay and Sam Weinig.

It has been replaced by a calc() based implementation for anchor().

* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/css/CSSAnchorValue.cpp: Removed.
* Source/WebCore/css/CSSAnchorValue.h: Removed.
* Source/WebCore/css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::~CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::serializeInternal const):
(WebCore::CSSPrimitiveValue::equals const):
(WebCore::CSSPrimitiveValue::addDerivedHash const):
(WebCore::CSSPrimitiveValue::collectComputedStyleDependencies const):
* Source/WebCore/css/CSSPrimitiveValue.h:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/CSSUnits.cpp:
(WebCore::unitCategory):
(WebCore::operator<<):
(WebCore::conversionToCanonicalUnitRequiresConversionData):
* Source/WebCore/css/CSSUnits.h:
* Source/WebCore/css/CSSValue.cpp:
(WebCore::CSSValue::visitDerived):
* Source/WebCore/css/CSSValue.h:
(WebCore::CSSValue::isAnchorValue const): Deleted.
* Source/WebCore/css/calc/CSSCalcTree+NumericIdentity.h:
(WebCore::CSSCalc::toNumericIdentity):
* Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp:
(WebCore::CSSCalc::sortPriority):
* Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp:
(WebCore::CSSCalc::canonicalize):
* Source/WebCore/css/calc/CSSCalcTree.cpp:
(WebCore::CSSCalc::makeNumeric):
* Source/WebCore/css/calc/CSSCalcType.cpp:
(WebCore::CSSCalc::Type::determineType):
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Length.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+LengthPercentage.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Time.cpp:
* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeAnchor): Deleted.
* Source/WebCore/css/parser/CSSPropertyParserHelpers.h:
* Source/WebCore/css/typedom/numeric/CSSMathValue.cpp:
* Source/WebCore/css/values/CSSPrimitiveNumericTypes+ComputedStyleDependencies.cpp:
(WebCore::CSS::collectComputedStyleDependencies):
* Source/WebCore/style/AnchorPositionEvaluator.cpp:
* Source/WebCore/style/AnchorPositionEvaluator.h:
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLength):

Canonical link: https://commits.webkit.org/284391@main
https://bugs.webkit.org/show_bug.cgi?id=280541
rdar://136542647

Reviewed by Ryan Haddad.

Remove tests from the safe-merge-queue status check.

* Tools/CISupport/ews-build/steps.py:
(CheckStatusOfPR):

Canonical link: https://commits.webkit.org/284392@main
https://bugs.webkit.org/show_bug.cgi?id=280297
rdar://136614456

Reviewed by Keith Miller.

Adds more PAS_PROFILE macro invocations, providing hooks for
profiling more parts of libpas.

* Source/bmalloc/libpas/src/libpas/pas_get_allocation_size.h:
(pas_get_allocation_size):
* Source/bmalloc/libpas/src/libpas/pas_get_heap.h:
(pas_get_heap):
* Source/bmalloc/libpas/src/libpas/pas_large_heap.c:
(pas_large_heap_try_deallocate):
(pas_large_heap_try_shrink):
* Source/bmalloc/libpas/src/libpas/pas_large_sharing_pool.c:
(pas_large_sharing_pool_boot_free):
(pas_large_sharing_pool_free):
(pas_large_sharing_pool_allocate_and_commit):
(pas_large_sharing_pool_compute_summary):
* Source/bmalloc/libpas/src/libpas/pas_megapage_cache.c:
(megapage_cache_allocate_aligned):
* Source/bmalloc/libpas/src/libpas/pas_page_base_config_utils.h:
* Source/bmalloc/libpas/src/libpas/pas_page_base_config_utils_inlines.h:
* Source/bmalloc/libpas/src/libpas/pas_try_reallocate.h:
(pas_try_reallocate):

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

Reviewed by Adrian Perez de Castro.

* Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::sendPIDToPeer):
(IPC::readPIDFromPeer):

Canonical link: https://commits.webkit.org/284394@main
https://bugs.webkit.org/show_bug.cgi?id=280294
rdar://136616671

Reviewed by Keith Miller.

Creates a new pas_always_compact_allocation_mode, used for allocations
from memory spans that are known to be contiguous and specially managed
and for which pointer compression is particularly simple. We adopt this
mode for the libpas bootstrap heap and JIT reservation.

* Source/bmalloc/bmalloc/CompactAllocationMode.h:
(bmalloc::asPasAllocationMode):
* Source/bmalloc/bmalloc/IsoHeap.cpp:
(bmalloc::api::isoAllocateCompact):
(bmalloc::api::isoTryAllocateCompact):
* Source/bmalloc/bmalloc/TZoneHeap.cpp:
(bmalloc::api::tzoneAllocateCompact):
(bmalloc::api::tzoneTryAllocateCompact):
* Source/bmalloc/libpas/src/libpas/jit_heap.c:
(jit_heap_try_allocate):
* Source/bmalloc/libpas/src/libpas/pas_allocation_mode.h:
(pas_allocation_mode_get_string):
* Source/bmalloc/libpas/src/libpas/pas_utility_heap.c:

Canonical link: https://commits.webkit.org/284395@main
<https://bugs.webkit.org/show_bug.cgi?id=280496>
<rdar://136802343>

Reviewed by Geoffrey Garen.

Fix construction of HexNumberBuffer::span() to convert std::array first,
then create a subspan from the last N characters.

Remove unsafe characters() methods and use span() instead.

Introduce LIFETIME_BOUND attribute to prevent use-after-free bugs with
C++ temporary objects.  (I accidentally introduced this bug in a local
version of this change before posting it.)

* Source/WTF/wtf/Compiler.h:
(LIFETIME_BOUND): Add.
- Add support for the lifetimebound attribute in clang and gcc.

* Source/WTF/wtf/HexNumber.h:
(WTF::HexNumberBuffer::characters const): Delete.
- Remove unsafe method.
(WTF::HexNumberBuffer::span const):
- Adopt LIFETIME_BOUND attribute for this method.
- Change to construct std::span directly from std::array, then use
  std::span::last() to create a span of the last N elements.
(WTF::StringTypeAdapter<HexNumberBuffer>::characters const): Delete.
- Remove unused method.

* Source/WebCore/platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::appendFormURLEncoded):
- Switch to use HexNumberBuffer::span(), but keep hexBuffer alive on the
  stack.

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

Reviewed by Mike Wyrzykowski.

* Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnectionCallbackIdentifier.h:
* Source/WebCore/Modules/indexeddb/shared/IDBDatabaseConnectionIdentifier.h:
* Source/WebKit/Platform/IPC/ObjectIdentifierReference.serialization.in:
* Source/WebKit/Shared/WTFArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUBindGroupEntry.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUBufferBinding.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUCanvasConfiguration.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUIdentifier.h:
* Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUImageCopyTexture.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):
* Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.h:
* Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.serialization.in:
* Source/WebKit/Shared/WebGPU/WebGPUPipelineLayoutDescriptor.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUPresentationContextDescriptor.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUProgrammableStage.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPURenderPassColorAttachment.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/WebGPU/WebGPUShaderModuleCompilationHint.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebKit/Shared/wc/WCContentBufferIdentifier.h:
* Source/WebKit/WebProcess/GPU/graphics/GraphicsContextGLIdentifier.h:
* Source/WebKit/WebProcess/GPU/graphics/RenderingBackendIdentifier.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.cpp:
(WebKit::WebGPU::RemoteCommandEncoderProxy::copyBufferToBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::clearBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::writeTimestamp):
(WebKit::WebGPU::RemoteCommandEncoderProxy::resolveQuerySet):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.cpp:
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::dispatchIndirect):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::setBindGroup):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.cpp:
(WebKit::WebGPU::RemoteQueueProxy::submit):
(WebKit::WebGPU::RemoteQueueProxy::writeBuffer):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.cpp:
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setIndexBuffer):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setVertexBuffer):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndirect):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::drawIndexedIndirect):
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::setBindGroup):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.cpp:
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setPipeline):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setIndexBuffer):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setVertexBuffer):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndirect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::drawIndexedIndirect):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::setBindGroup):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::executeBundles):
* Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameIdentifier.h:
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::createDecoderInternal):
(WebKit::LibWebRTCCodecs::createEncoderInternal):
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
(WebKit::LibWebRTCCodecs::Decoder::Decoder):
(WebKit::LibWebRTCCodecs::Encoder::Encoder):
* Source/WebKit/WebProcess/GPU/webrtc/VideoDecoderIdentifier.h:
* Source/WebKit/WebProcess/GPU/webrtc/VideoEncoderIdentifier.h:
* Tools/TestWebKitAPI/Tests/IPC/ThreadSafeObjectHeapTests.cpp:

Canonical link: https://commits.webkit.org/284397@main
https://bugs.webkit.org/show_bug.cgi?id=280444
rdar://136789447

Reviewed by Antoine Quint.

Previously this calculation had coverRangeEnd take into account the current scroll offset
which was incorrect. Update the progress calculation to be more in line with the spec. Also
update subjectOffset to use offsetTop/Left since we need an offset that is not affected by
scroll position. This is not correct for situations where offsetParent is different than the
source scroller, so we may need a solution that walks up the tree and adds scrollTop/Left. Also
update the comment and filed an issue (w3c/csswg-drafts#10960) due
to a small issue in the spec.

To help visualize this calculation, there is a tool: https://scroll-driven-animations.style/tools/view-timeline/ranges/.
coverRangeStart is equivalent to the scroll offset necessary to have the top edge of the subject touch
the bottom edge of the scroller. Conversly, coverRangeEnd is equivalent to the scroll offset necessary
to have the bottom edge of the subject touch the top edge of the scroller. Note that this calculation is
only correct for the cover named timeline range. This will be further complicated when we start
doing calculations for other timeline ranges, which correspond to different start and end positions for
the subject.

* Source/WebCore/animation/ViewTimeline.cpp:
(WebCore::ViewTimeline::computeViewTimelineData const):
(WebCore::ViewTimeline::startOffset const):
(WebCore::ViewTimeline::endOffset const):
* Source/WebCore/animation/ViewTimeline.h:

Canonical link: https://commits.webkit.org/284398@main
…rophone was muted by the UA once

rdar://135941062
https://bugs.webkit.org/show_bug.cgi?id=279658

Reviewed by Eric Carlson.

When web page is muting, it notified CoreAudioSharedUnit which can then send back an AirPod muted notification.
This triggers the fact that, even though web page decided to be muted, we know think that the user decided to mute.
When web page tries to unmute, user is then prompted.

We update CoreAudioSharedUnit to only send back muted notifications when isMuting is not aligned with isProducingMicrophoneSamples().

We will be able to test this with some refactoring in the way we mock audio capture.
A follow-up patch will do this testing refactoring and improvement.

* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp:
(WebCore::CoreAudioSharedUnit::isProducingMicrophoneSamplesChanged):
(WebCore::CoreAudioSharedUnit::handleMuteStatusChangedNotification):
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.mm:
(WebCore::CoreAudioSharedUnit::setMutedState):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::microphoneMuteStatusChanged):

Canonical link: https://commits.webkit.org/284399@main
…tatistics/* are flaky failures.

https://bugs.webkit.org/show_bug.cgi?id=280553
rdar://136862956

Unreviewed test gardening.

Setting test expectations.

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

Canonical link: https://commits.webkit.org/284400@main
https://bugs.webkit.org/show_bug.cgi?id=280554
rdar://136863793

Reviewed by Ryosuke Niwa.

Enable NoUncheckedPtrMemberChecker in build-and-analyze.
Add the checker to various scripts that deal with static analyzer output.

* Tools/Scripts/build-and-analyze:
(make_analyzer_flags):
* Tools/Scripts/compare-static-analysis-results:
* Tools/Scripts/generate-dirty-files:
* Tools/Scripts/smart-pointer-tool:

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

Reviewed by Alan Baradlay.

An inline box containing only a float should not be considered as contentful.

* LayoutTests/TestExpectations:
* LayoutTests/css3/unicode-bidi-float-crash.html: Added.
* LayoutTests/platform/glib/css3/unicode-bidi-float-crash-expected.txt: Added.
* LayoutTests/platform/ios/css3/unicode-bidi-float-crash-expected.txt: Added.
* LayoutTests/platform/mac/css3/unicode-bidi-float-crash-expected.txt: Added.
* LayoutTests/platform/win/css3/unicode-bidi-float-crash-expected.txt: Added.
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):

Canonical link: https://commits.webkit.org/284402@main
…es.html is a flaky failure.

https://bugs.webkit.org/show_bug.cgi?id=280556
rdar://136866521

Unreviewed test gardening.

Setting test expectations.

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

Canonical link: https://commits.webkit.org/284403@main
https://bugs.webkit.org/show_bug.cgi?id=280408
rdar://136754786

Reviewed by Eric Carlson.

Add logging which tracks stall events, their duration, and which media loading source was being used at the time.

* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::updateBufferingState):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
(WebCore::HTMLMediaElement::watchtimeTimerFired):
(WebCore::HTMLMediaElement::startBufferingStopwatch):
(WebCore::HTMLMediaElement::invalidateBufferingStopwatch):
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::mediaBufferingWatchTimeKey):
* Source/WebCore/page/DiagnosticLoggingKeys.h:

Canonical link: https://commits.webkit.org/284404@main
https://bugs.webkit.org/show_bug.cgi?id=280494
<rdar://136798735>

Reviewed by Charlie Wolfe.

Text zoom equivalent to 278002@main.

Largely identical (sending the WebPageProxy message to all processes, and
iterating all root frames in each WebPage), except also removes the
setPageAndTextZoomFactors. This should fix a case where the page zoom wasn't
sent to all processes, and is hopefully slightly simpler.

* LayoutTests/http/tests/site-isolation/text-zoom-expected.html: Added.
* LayoutTests/http/tests/site-isolation/text-zoom.html: Added.
* Source/WebCore/page/LocalFrame.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setTextZoomFactor):
(WebKit::WebPageProxy::setPageZoomFactor):
(WebKit::WebPageProxy::setPageAndTextZoomFactors):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_textAnimationController):
(WebKit::WebPage::didSetTextZoomFactor):
(WebKit::WebPage::didSetPageZoomFactor):
(WebKit::WebPage::setTextZoomFactor): Deleted.
(WebKit::WebPage::setPageZoomFactor): Deleted.
(WebKit::WebPage::setPageAndTextZoomFactors): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:

Canonical link: https://commits.webkit.org/284405@main
rdar://136847241
https://bugs.webkit.org/show_bug.cgi?id=280534

Reviewed by Matthieu Dubet.

Re-import to pick up new anchor-size() tests.
Upstream commit: web-platform-tests/wpt@a6337a9

* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow-all-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow-all.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow-flat-tree-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow.tentative-expected.txt.
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow-flat-tree.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow.tentative.html.
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow-names-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scope-shadow-names.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-parse-invalid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-parse-invalid.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-parse-valid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-parse-valid.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/chrome-365594098-crash.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/w3c-import.log:

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

Reviewed by Adrian Perez de Castro.

logIdentifier() returns a uint64_t now.

* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

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

Reviewed by Chris Dumez.

Use a WeakRef instead of a raw reference for contexts,
preventing static analyzer warnings of uncounted class
members.

* Source/WebCore/html/canvas/CanvasFilterContextSwitcher.cpp:
(WebCore::CanvasFilterContextSwitcher::CanvasFilterContextSwitcher):
(WebCore::CanvasFilterContextSwitcher::~CanvasFilterContextSwitcher):
(WebCore::CanvasFilterContextSwitcher::expandedBounds const):
* Source/WebCore/html/canvas/CanvasFilterContextSwitcher.h:
(WebCore::CanvasFilterContextSwitcher::protectedContext const):
* Source/WebCore/html/canvas/CanvasLayerContextSwitcher.cpp:
(WebCore::CanvasLayerContextSwitcher::CanvasLayerContextSwitcher):
(WebCore::CanvasLayerContextSwitcher::outsets const):
* Source/WebCore/html/canvas/CanvasLayerContextSwitcher.h:
(WebCore::CanvasLayerContextSwitcher::protectedContext const):

Canonical link: https://commits.webkit.org/284408@main
…a crashtest directory

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

Reviewed by Sam Sneddon.

Various crashtests/* WPT tests are wrongfully skipped by the test runner due to being listed under `resource-files.json` wrongfully. This is likely due to them being imported when the importer script was on the revision in [1]. Since this seems to have been fixed in [2], simply remove the tests from `resource-files.json`.

[1]: WebKit@d8b1589#diff-955991178e0e7971ad17ceface65532b503e98975aec31d0fc7093e0d80c3dc5R167-R169
[2]: WebKit@b702871
Canonical link: https://commits.webkit.org/284409@main
https://bugs.webkit.org/show_bug.cgi?id=280562

Reviewed by Adrian Perez de Castro.

logIdentifier() returns a uint64_t now.

* Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp:
(WebCore::GStreamerPeerConnectionBackend::GStreamerPeerConnectionBackend):

Canonical link: https://commits.webkit.org/284410@main
https://bugs.webkit.org/show_bug.cgi?id=278022
rdar://133759441

Reviewed by Chris Dumez.

In order to address quarantine issues with forwarding to the Networking process, forward WebContent logs to the UI process instead.
This will attribute the WebContent logs to a large number of UI processes, instead of to the single Networking process.

* Source/WebKit/NetworkProcess/LogStream.cpp:
(WebKit::LogStream::logOnBehalfOfWebContent):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::setupLogStream): Deleted.
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/Shared/LogStream.cpp: Renamed from Source/WebKit/NetworkProcess/LogStream.cpp.
(WebKit::LogStream::~LogStream):
(WebKit::LogStream::logOnBehalfOfWebContent):
(WebKit::LogStream::setup):
* Source/WebKit/Shared/LogStream.h: Renamed from Source/WebKit/NetworkProcess/LogStream.h.
* Source/WebKit/Shared/LogStream.messages.in: Renamed from Source/WebKit/NetworkProcess/LogStream.messages.in.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::setupLogStream):
(WebKit::WebProcessProxy::logOnBehalfOfWebContent): Deleted.
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.messages.in:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureNetworkProcessConnection):
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::setupLogStream):

Canonical link: https://commits.webkit.org/284411@main
…tify-content-horiz-003.xhtml

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

Reviewed by Antti Koivisto.

Implement fallback values for space-between, space-around and space-evenly.
It handles both overflowing and lone flex item cases.
(FFC already handled the lone case, but let's use the fallback mechanism instead.)

* Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:
(WebCore::Layout::FlexLayout::handleMainAxisAlignment const):

Canonical link: https://commits.webkit.org/284412@main
…13.html

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

Reviewed by Antti Koivisto.

In logical space margin-end becomes margin-start when main axis direction is reversed.

* Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):

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

Reviewed by Antti Koivisto.

Not supported yet.

* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForFlexLayoutWithReason):

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

Reviewed by Antti Koivisto.

According to the spec flex box can't have float children, in practice (probably due to some tree builder bug)
it happened and this condition was added (years ago). However I don't seem to be hitting it anymore.
Let's remove it for now.

* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForFlexLayoutWithReason):

Canonical link: https://commits.webkit.org/284415@main
* LayoutTests/platform/win/TestExpectations:

Canonical link: https://commits.webkit.org/284416@main
…sent

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

Reviewed by Antti Koivisto.

Unsupported property (this is on the flex box though and not part of flex layout).

* LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/self-align-safe-unsafe-flex-001.html:
* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForFlexLayoutWithReason):
(WebCore::LayoutIntegration::printReason):

Canonical link: https://commits.webkit.org/284417@main
…ity tree behind a new feature flag

https://bugs.webkit.org/show_bug.cgi?id=280012
rdar://136316595

Reviewed by Chris Fleizach.

This patch adds a compile-time feature flag, ENABLE_INCLUDE_IGNORED_IN_CORE_AX_TREE, and a runtime feature flag,
IncludeIgnoredInCoreAXTree, to start including ignored objects in the "core", platform-agnostic accessibility tree.
This is necessary to support off-main-thread text marker computation, e.g. for emitting a newline when exiting the
accessibility object of an ignored `tr` element, as one of many examples.

Prior to this commit, any use of `AXCoreObject::children` implicitly assumed that the returned objects were unignored.
With this commit, that function is renamed to `unignoredChildren`, and any context which expected to only process
unignored objects now uses it. A new function, `childrenIncludingIgnored` is added, and that is used in a few places.

There were several direct usages of `m_children` that were problematic, as `m_children` now includes ignored objects
when ENABLE_INCLUDE_IGNORED_IN_CORE_AX_TREE is true. These usages are replaced with unignoredChildren(/* updateChildrenIfNeeded */ false),
achieving the same behavior in both configurations with more explicit intent.

There are many test failures left to fix in ENABLE_INCLUDE_IGNORED_IN_CORE_AX_TREE with this change (6 ITM off, 60 ITM on).
Those will be addressed in follow-up patches. We will also need to find ways to optimize `unignoredChildren`, either by
caching the result or something else, as this naive initial implementation does show up heavily in samples since the
accessibility tree now has signifcantly more objects to traverse through.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::tabChildren):
(WebCore::AXCoreObject::unignoredChildren):
(WebCore::AXCoreObject::nextInPreOrder):
(WebCore::AXCoreObject::nextSiblingIncludingIgnored const):
(WebCore::AXCoreObject::nextUnignoredSibling const):
(WebCore::AXCoreObject::nextUnignoredSiblingOrParent const):
(WebCore::AXCoreObject::contents):
(WebCore::AXCoreObject::ariaTreeItemContent):
(WebCore::AXCoreObject::selectedRadioButton):
(WebCore::AXCoreObject::selectedTabItem):
(WebCore::AXCoreObject::appendRadioButtonDescendants const):
(WebCore::AXCoreObject::parentObjectUnignored const):
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AXCoreObject::childrenIncludingIgnored):
(WebCore::AXCoreObject::unignoredChildren):
(WebCore::AXCoreObject::childrenIDs):
(WebCore::Accessibility::findUnignoredChild):
(WebCore::Accessibility::enumerateUnignoredDescendants):
(WebCore::Accessibility::findChild): Deleted.
(WebCore::Accessibility::enumerateDescendants): Deleted.
* Source/WebCore/accessibility/AXImage.cpp:
(WebCore::AXImage::imageOverlayElements):
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::streamSubtree):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::modalElementHasAccessibleContent):
(WebCore::AXObjectCache::focusedImageMapUIElement):
(WebCore::AXObjectCache::handleChildrenChanged):
* Source/WebCore/accessibility/AXSearchManager.cpp:
(WebCore::appendChildrenToArray):
* Source/WebCore/accessibility/AXTextMarker.cpp:
(WebCore::appendChildren):
(WebCore::AXTextMarker::characterRangeForLine const):
(WebCore::AXTextMarker::lineNumberForIndex const):
* Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::rowHeader):
* Source/WebCore/accessibility/AccessibilityLabel.cpp:
(WebCore::childrenContainOnlyStaticText):
(WebCore::AccessibilityLabel::containsOnlyStaticText const):
(WebCore::AccessibilityLabel::updateChildrenIfNecessary):
* Source/WebCore/accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers):
(WebCore::AccessibilityList::determineAccessibilityRole):
* Source/WebCore/accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::setSelectedChildren):
(WebCore::AccessibilityListBox::selectedChildren):
(WebCore::AccessibilityListBox::visibleChildren):
(WebCore::AccessibilityListBox::elementAccessibilityHitTest const):
* Source/WebCore/accessibility/AccessibilityMathMLElement.cpp:
(WebCore::AccessibilityMathMLElement::mathRadicand):
(WebCore::AccessibilityMathMLElement::mathRootIndexObject):
(WebCore::AccessibilityMathMLElement::mathNumeratorObject):
(WebCore::AccessibilityMathMLElement::mathDenominatorObject):
(WebCore::AccessibilityMathMLElement::mathUnderObject):
(WebCore::AccessibilityMathMLElement::mathOverObject):
(WebCore::AccessibilityMathMLElement::mathBaseObject):
(WebCore::AccessibilityMathMLElement::mathSubscriptObject):
(WebCore::AccessibilityMathMLElement::mathSuperscriptObject):
* Source/WebCore/accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::didUpdateActiveOption):
* Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::selectedChildren):
(WebCore::AccessibilityMenuListPopup::handleChildrenChanged):
(WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::boundingBoxRect const):
(WebCore::AccessibilityNodeObject::visibleChildren):
(WebCore::AccessibilityNodeObject::internalLinkElement const):
(WebCore::AccessibilityNodeObject::textAsLabelFor const):
(WebCore::AccessibilityNodeObject::stringValue const):
(WebCore::accessibleNameForNode):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::clickPoint):
(WebCore::AccessibilityObject::ariaTreeRows):
(WebCore::AccessibilityObject::disclosedRows):
(WebCore::AccessibilityObject::supportsPressAction const):
(WebCore::AccessibilityObject::elementAccessibilityHitTest const):
(WebCore::AccessibilityObject::includeIgnoredInCoreTree const):
(WebCore::AccessibilityObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityObject::selectedListItems):
(WebCore::AccessibilityObject::parentObjectUnignored const): Deleted.
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::parentInCoreTree const):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue const):
(WebCore::AccessibilityRenderObject::documentLinks):
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest const):
(WebCore::AccessibilityRenderObject::updateAttachmentViewParents):
(WebCore::AccessibilityRenderObject::addNodeOnlyChildren):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
* Source/WebCore/accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::updateChildrenRoles):
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::cells):
* Source/WebCore/accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::elementRect const):
(WebCore::AccessibilityTableColumn::columnHeader):
* Source/WebCore/accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::rowHeader):
(WebCore::AccessibilityTableRow::addChildren):
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityElements]):
(-[WebAccessibilityObjectWrapper accessibilityElementCount]):
(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
(-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
(-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
(accessibleElementsForObjects):
(-[WebAccessibilityObjectWrapper accessibilityIsFirstItemInSuggestion]):
(-[WebAccessibilityObjectWrapper accessibilityIsLastItemInSuggestion]):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::setProperty):
(WebCore::AXIsolatedObject::boolAttributeValue const):
(WebCore::AXIsolatedObject::relativeFrameFromChildren const):
(WebCore::AXIsolatedObject::sibling const): Deleted.
(WebCore::AXIsolatedObject::siblingOrParent const): Deleted.
(WebCore::AXIsolatedObject::parentObjectUnignored const): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createEmptyContent):
(WebCore::AXIsolatedTree::shouldCreateNodeChange):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updatePropertiesForSelfAndDescendants):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::lastMarker):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::isUnconnectedNode const):
* Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::textMarkerRange const):
* Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::isEmptyGroup):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(transformSpecialChildrenCases):
(children):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):

Canonical link: https://commits.webkit.org/284418@main
https://bugs.webkit.org/show_bug.cgi?id=274756
rdar://128807880

Reviewed by Chris Dumez.

Changed JSC::CachePayload, WTF::MappedFileData, and
WebCore::DataSegment::Provider to use spans instead of pointer/size pairs.

* Source/JavaScriptCore/runtime/CachePayload.cpp:
(JSC::CachePayload::span const): Added.
(JSC::CachePayload::data const): Deleted.
(JSC::CachePayload::size const): Deleted.
* Source/JavaScriptCore/runtime/CachePayload.h: Updated for the above.

* Source/JavaScriptCore/runtime/CachedTypes.cpp:
(JSC::Decoder::offsetOf): Tweaked coding style a bit
(JSC::decodeCodeBlockImpl): Ditto.
(JSC::isCachedBytecodeStillValid): Removed use of CachePayload::size
in function that already calls CachePayload::span.

* Source/WTF/wtf/FileSystem.cpp:
(WTF::FileSystemImpl::MappedFileData::~MappedFileData): Updated since
m_fileData is now a span.
(WTF::FileSystemImpl::MappedFileData::mapFileHandle): Use span for
m_fileData.

* Source/WTF/wtf/win/FileSystemWin.cpp:
(WTF::FileSystemImpl::MappedFileData::~MappedFileData): Updated since
m_fileData is now a span.
(WTF::FileSystemImpl::MappedFileData::mapFileHandle): Use span for
m_fileData.

* Source/WTF/wtf/FileSystem.h: Use span for m_fileData. Return a span
from leakHandle.

* Source/WebCore/platform/ShareableResource.cpp:
(WebCore::ShareableResource::wrapInSharedBuffer): Updated since
DataSegment::Provider now takes a Function that returns a span.
(WebCore::ShareableResource::span const): Fixed bug where the span
returned here was bigger than it should be: not past the end of the
shared memory, but possibly past the end of the resource.

* Source/WebCore/platform/SharedBuffer.cpp:
(WebCore::FragmentedSharedBuffer::FragmentedSharedBuffer): Updated
since DataSegment::Provider now takes a Function that returns a span.
(WebCore::FragmentedSharedBuffer::tryCreateArrayBuffer const):
Removed unneeded cast to unsigned. Use copyTo instead of a hand-written
loop to copy the data from m_segments into the ArrayBuffer.
(WebCore::DataSegment::iterate const): Use span.
(WebCore::FragmentedSharedBuffer::startsWith const): Ditto.
(WebCore::FragmentedSharedBuffer::copyTo const): Use span, memcpySpan,
and subspan instead of pointers.
(WebCore::FragmentedSharedBuffer::operator== const): Use equalSpans.
(WebCore::SharedBuffer::span const): Added.
(WebCore::SharedBuffer::data const): Deleted.
(WebCore::SharedBuffer::operator[] const): Updated since
DataSegment::Provider now takes a Function that returns a span.
(WebCore::SharedBuffer::decoder const): Use span.
(WebCore::DataSegment::span const): Added.
(WebCore::DataSegment::data const): Deleted.
(WebCore::DataSegment::size const): Deleted.
(WebCore::SharedBufferDataView::createSharedBuffer const): Updated
since DataSegment::Provider now takes a Function that returns a span.

* Source/WebCore/platform/SharedBuffer.h: Changed
DataSegment::Provider to a single Function that returns a span instead
of one that returns a data pointer and another that returns a size.

* Source/WebCore/platform/SharedMemory.cpp:
(WebCore::SharedMemory::createSharedBuffer const): Updated
since DataSegment::Provider now takes a Function that returns a span.

* Source/WebCore/platform/cocoa/SharedBufferCocoa.mm:
(WebCore::FragmentedSharedBuffer::createCMBlockBuffer const):
Removed unneeded cast.

* Source/WebCore/platform/glib/SharedBufferGlib.cpp:
(WebCore::SharedBuffer::createGBytes const): Use span.

* Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp:
(copyFromSharedBuffer): Deleted.
(WebCore::ScalableImageDecoder::create): Use FragmentedSharedBuffer::copyTo
instead of a local copyFromSharedBuffer function here that does the same thing.

* Source/WebCore/platform/network/BlobRegistryImpl.cpp:
(WebCore::writeFilePathsOrDataBuffersToFile): Use the correct int64_t type here,
which matches the return type of FileSystem::writeToFile.

* Source/WebCore/platform/skia/SharedBufferSkia.cpp:
(WebCore::SharedBuffer::createSkData const): Use span.

* Source/WebKit/NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:
(WebKit::WebPushD::Connection::performSendWithAsyncReplyWithoutUsingIPCConnection const):
Tweak coding style.

* Source/WebKit/NetworkProcess/cache/NetworkCacheDataCocoa.mm:
(WebKit::NetworkCache::Data::adoptMap): Updated since MappedFileData::leakHandle now
returns a span.

* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(dataReferenceFrom): Updated since DataSegment::Provider now takes a Function that
returns a span. This new version now holds a reference to the string instead of
making a copy of the bytes, which seems what was intended from the start.

* Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):
Updated for changes to DataSegment. This now makes the object lifetime clearer
using an explicit RetainPtr.
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]): Ditto.

* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::WebPushDaemon::connectionEventHandler): Use auto* for style consistency.

Canonical link: https://commits.webkit.org/284419@main
Ahmad-S792 and others added 29 commits October 3, 2024 07:45
https://bugs.webkit.org/show_bug.cgi?id=280817
rdar://137197266

Reviewed by Wenson Hsieh.

This patch adds missing `SecureContext` from `ClipboardItem` interface as
per web specification [1]:

[1] https://w3c.github.io/clipboard-apis/#clipboard-item-interface

It also do drive-by to add specification link and `{}` to constructor
argument.

* Source/WebCore/Modules/async-clipboard/ClipboardItem.idl:

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

Reviewed by Michael Catanzaro.

FileSystemPOSIX opens files without the O_CLOEXEC file in openFile()
and openTemporaryFile().

This can cause file handles to be leaked to subprocess.

For example, if the UIProcess opens content rules files from the
ContentRuleListStore class before the NetworkProcess is spawned, the
content rules file handles are leaked to the NetworkProcess.

It does not seem useful to open files without O_CLOEXEC.

Also fix FileSystemCocoa for createTemporaryZipArchive().

* Source/WTF/wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::openFile):
(WTF::FileSystemImpl::openTemporaryFile):
* Source/WTF/wtf/cocoa/FileSystemCocoa.mm:
(WTF::FileSystemImpl::createTemporaryZipArchive):
(WTF::FileSystemImpl::openTemporaryFile):

Canonical link: https://commits.webkit.org/284612@main
https://bugs.webkit.org/show_bug.cgi?id=280643
rdar://137000722

Reviewed by Tyler Wilcock.

In isolated tree mode, WebKit wasn't properly handling the case where
an aria-modal dialog is dynamically created and added to the DOM.  In
addition, WebKit didn't have any logic to pick the deepest aria-modal
dialog if multiple dialogs are nested. Adding this logic matches
Chrome's behavior now.  In both cases, the issue was correctly
ignoring everything outside of the dialog while focus is inside.

* LayoutTests/accessibility/mac/dynamic-modal-expected.txt: Added.
* LayoutTests/accessibility/mac/dynamic-modal.html: Added.
* LayoutTests/accessibility/mac/nested-modal-expected.txt: Added.
* LayoutTests/accessibility/mac/nested-modal.html: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::updateCurrentModalNode):
(WebCore::AXObjectCache::handleAttributeChange):

Canonical link: https://commits.webkit.org/284613@main
…PP-Checks queue

https://bugs.webkit.org/show_bug.cgi?id=280810
rdar://137179960

Reviewed by Ryan Haddad.

Disable adding merging blocked label upon failure.
Remove from safe-merge-queue list.

* Tools/CISupport/ews-build/steps.py:
(CheckStatusOfPR):
(DisplaySaferCPPResults.getResultSummary):
* Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/284614@main
…niff header.

https://bugs.webkit.org/show_bug.cgi?id=280714
rdar://131857015

Reviewed by Chris Dumez.

Respect the site's policy not to sniff the content. If the server sends the X-Content-Type-Options: nosniff header,
we should not replace the content type to text/html if it is application/octet-stream.

* LayoutTests/http/tests/workers/service/resources/download-octet-stream.py: Added.
* LayoutTests/http/tests/workers/service/service-worker-download-octet-stream-nosniff.https-expected.txt: Added.
* LayoutTests/http/tests/workers/service/service-worker-download-octet-stream-nosniff.https.html: Added.
* Source/WebCore/platform/network/ResourceResponseBase.cpp:
(WebCore::isScriptAllowedByNosniff):
(WebCore::ResourceResponseBase::isNosniff const):
* Source/WebCore/platform/network/ResourceResponseBase.h:
* Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::processResponse):

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

Reviewed by Yusuke Suzuki.

This patch changes to use `@argumentCount` instead of `arguments.length` in builtin JS code for
consistency.

* Source/JavaScriptCore/builtins/ArrayConstructor.js:
(of):
* Source/JavaScriptCore/builtins/ArrayPrototype.js:
(linkTimeConstant.concatSlowPath):
(toSpliced):
* Source/JavaScriptCore/builtins/FunctionPrototype.js:
(call):
* Source/JavaScriptCore/builtins/PromiseConstructor.js:
(try):
* Source/JavaScriptCore/builtins/StringConstructor.js:
(raw):
* Source/JavaScriptCore/builtins/StringPrototype.js:
(linkTimeConstant.stringConcatSlowPath):
* Source/JavaScriptCore/builtins/TypedArrayConstructor.js:
(of):

Canonical link: https://commits.webkit.org/284616@main
https://bugs.webkit.org/show_bug.cgi?id=280583
rdar://136926899

Reviewed by Mike Wyrzykowski.

A conditional compilation directive flag named `HAVE_HDR_SUPPORT` is added.

An internal feature flag named `HDRForImagesEnabled` is added.

A new option named Headroom is added to ImagePaintingOptions.

When rendering to a CABackingStore, the layer.contentsFormat needs to be set to
float 16 bit format.

When creating an IOSurface this IOSurface will be rendered via layer.contents,
the color space of this IOSurface has to be CGColorSpaceUsesExtendedRange(). The
pixel format of this IOSurface has to be float 16 bit format.

When displaying CGImage, its headroom has to be set to the context by calling
CGContextSetEDRTargetHeadroom().

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/css/query/MediaQueryFeatures.cpp:
(WebCore::MQ::Features::colorGamut):
* Source/WebCore/page/PageOverlayController.cpp:
(WebCore::PageOverlayController::updateSettingsForLayer):
* Source/WebCore/platform/PlatformScreen.h:
* Source/WebCore/platform/ScreenProperties.h:
* Source/WebCore/platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::draw):
* Source/WebCore/platform/graphics/BitmapImage.h:
* Source/WebCore/platform/graphics/BitmapImageSource.cpp:
(WebCore::BitmapImageSource::frameHeadroomAtIndex const):
* Source/WebCore/platform/graphics/BitmapImageSource.h:
* Source/WebCore/platform/graphics/ContentsFormat.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/RemoteNativeImageBackendProxy.h.
(WebCore::contentsFormatExtendedColorSpace):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/ContentsFormat.h: Copied from Source/WebCore/platform/graphics/ca/cocoa/WebTiledBackingLayer.h.
(WebCore::contentsFormatBytesPerPixel):
* Source/WebCore/platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setHDRForImagesEnabled):
(WebCore::GraphicsLayer::hdrForImagesEnabled const):
* Source/WebCore/platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::hdrForImagesEnabled const):
* Source/WebCore/platform/graphics/ImageBufferPixelFormat.h:
(WebCore::convertToPixelFormat):
(WebCore::convertToIOSurfaceFormat):
* Source/WebCore/platform/graphics/ImageFrame.h:
(WebCore::ImageFrame::setHeadroom):
(WebCore::ImageFrame::headroom const):
* Source/WebCore/platform/graphics/ImagePaintingOptions.h:
(WebCore::ImagePaintingOptions::allowImageSubsampling const):
(WebCore::ImagePaintingOptions::showDebugBackground const):
(WebCore::ImagePaintingOptions::headroom const):
(WebCore::ImagePaintingOptions::setOption):
* Source/WebCore/platform/graphics/ImageSource.h:
(WebCore::ImageSource::frameHeadroomAtIndex const):
* Source/WebCore/platform/graphics/ImageTypes.h:
(WebCore::Headroom::Headroom):
(WebCore::Headroom::operator float const):
* Source/WebCore/platform/graphics/LayerTreeAsTextOptions.h:
* Source/WebCore/platform/graphics/NativeImage.cpp:
(WebCore::NativeImage::headroom const):
* Source/WebCore/platform/graphics/NativeImage.h:
* Source/WebCore/platform/graphics/PixelBuffer.cpp:
(WebCore::PixelBuffer::supportedPixelFormat):
* Source/WebCore/platform/graphics/PixelBufferConversion.cpp:
(WebCore::makeVImageCGImageFormat):
* Source/WebCore/platform/graphics/PixelFormat.cpp:
(WebCore::operator<<):
* Source/WebCore/platform/graphics/PixelFormat.h:
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createPlatformCALayer):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties const):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebCore/platform/graphics/ca/PlatformCALayer.h:
* Source/WebCore/platform/graphics/ca/PlatformCALayer.mm:
(WebCore::PlatformCALayer::drawRepaintIndicator):
* Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::hdrForImagesEnabled const):
* Source/WebCore/platform/graphics/ca/TileController.cpp:
(WebCore::TileController::setContentsFormat):
(WebCore::TileController::createTileLayer):
(WebCore::TileController::setWantsDeepColorBackingStore): Deleted.
* Source/WebCore/platform/graphics/ca/TileController.h:
* Source/WebCore/platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::updateTileLayerProperties):
* Source/WebCore/platform/graphics/ca/cocoa/ContentsFormatCocoa.h: Copied from Source/WebCore/platform/graphics/ImageBufferPixelFormat.h.
(WebCore::convertToIOSurfaceFormat):
(WebCore::contentsFormatString):
(WebCore::contentsFormatWantsExtendedDynamicRangeContent):
(WebCore::contentsFormatWantsToneMapMode):
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::commonInit):
(WebCore::PlatformCALayerCocoa::contentsFormat const):
(WebCore::PlatformCALayerCocoa::setContentsFormat):
(WebCore::PlatformCALayerCocoa::updateContentsFormat):
(WebCore::PlatformCALayerCocoa::backingStoreBytesPerPixel const):
(WebCore::PlatformCALayerCocoa::wantsDeepColorBackingStore const): Deleted.
(WebCore::PlatformCALayerCocoa::setWantsDeepColorBackingStore): Deleted.
(WebCore::layerContentsFormat): Deleted.
* Source/WebCore/platform/graphics/ca/cocoa/WebTiledBackingLayer.h:
* Source/WebCore/platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:
(-[WebTiledBackingLayer setContentsFormat:]):
(-[WebTiledBackingLayer contentsFormat]):
(-[WebTiledBackingLayer setWantsDeepColorBackingStore:]): Deleted.
(-[WebTiledBackingLayer wantsDeepColorBackingStore]): Deleted.
* Source/WebCore/platform/graphics/cairo/NativeImageCairo.cpp:
(WebCore::PlatformImageNativeImageBackend::headroom const):
* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::drawNativeImageInternal):
* Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::createImageSourceOptions):
(WebCore::ImageDecoderCG::fetchFrameMetaDataAtIndex const):
* Source/WebCore/platform/graphics/cg/NativeImageCG.cpp:
(WebCore::PlatformImageNativeImageBackend::headroom const):
(WebCore::NativeImage::draw):
* Source/WebCore/platform/graphics/cocoa/IOSurface.h:
* Source/WebCore/platform/graphics/cocoa/IOSurface.mm:
(WebCore::optionsForSurface):
(WebCore::optionsFor32BitSurface):
(WebCore::optionsFor64BitSurface):
(WebCore::IOSurface::IOSurface):
(WebCore::formatFromSurface):
(WebCore::IOSurface::bitmapConfiguration const):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/skia/NativeImageSkia.cpp:
(WebCore::PlatformImageNativeImageBackend::headroom const):
* Source/WebCore/platform/ios/LegacyTileGridTile.mm:
(WebCore::LegacyTileGridTile::LegacyTileGridTile):
* Source/WebCore/platform/ios/PlatformScreenIOS.mm:
(WebCore::screenContentsFormat):
(WebCore::screenColorSpace):
(WebCore::collectScreenProperties):
(WebCore::screenSupportsExtendedColor): Deleted.
* Source/WebCore/platform/mac/PlatformScreenMac.mm:
(WebCore::screenContentsFormat):
(WebCore::collectScreenProperties):
(WebCore::screenSupportsExtendedColor): Deleted.
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::hdrForImagesEnabled const):
* Source/WebCore/rendering/RenderLayerBacking.h:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::hdrForImagesEnabled const):
* Source/WebCore/rendering/RenderLayerCompositor.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::toLayerTreeAsTextOptions):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::contentsFormat const):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::pixelFormat const):
(WebKit::RemoteLayerBackingStore::bytesPerPixel const):
(WebKit::RemoteLayerBackingStore::usesDeepColorBackingStore const): Deleted.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::dumpChangedLayers):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStore::ensureBackingStore):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _takeViewSnapshot]):
* Source/WebKit/WebProcess/GPU/graphics/RemoteNativeImageBackendProxy.cpp:
(WebKit::RemoteNativeImageBackendProxy::headroom const):
* Source/WebKit/WebProcess/GPU/graphics/RemoteNativeImageBackendProxy.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.mm:
(WebKit::GraphicsLayerCARemote::createPlatformCALayer):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:
(WebKit::PlatformCALayerRemote::displayColorSpace const):
(WebKit::PlatformCALayerRemote::updateBackingStore):
(WebKit::PlatformCALayerRemote::contentsFormat const):
(WebKit::PlatformCALayerRemote::setContentsFormat):
(WebKit::PlatformCALayerRemote::wantsDeepColorBackingStore const): Deleted.
(WebKit::PlatformCALayerRemote::setWantsDeepColorBackingStore): Deleted.
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp:
(WebKit::PlatformCALayerRemoteTiledBacking::contentsFormat const):
(WebKit::PlatformCALayerRemoteTiledBacking::setContentsFormat):
(WebKit::PlatformCALayerRemoteTiledBacking::wantsDeepColorBackingStore const): Deleted.
(WebKit::PlatformCALayerRemoteTiledBacking::setWantsDeepColorBackingStore): Deleted.
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::hdrForImagesEnabled const):
* Tools/DumpRenderTree/ios/PixelDumpSupportIOS.mm:
(createBitmapContextFromWebView):

Canonical link: https://commits.webkit.org/284617@main
…lineAlignSelf

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

Reviewed by Antti Koivisto.

* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForFlexLayoutWithReason):
(WebCore::LayoutIntegration::printReason):

Canonical link: https://commits.webkit.org/284618@main
…in Safari

https://bugs.webkit.org/show_bug.cgi?id=280829
rdar://137135213

Reviewed by Eric Carlson.

Mute video elements used when testing requestVideoFrameCallback(). This allows those elements
to begin playback, even absent a user gesture, with default autoplay policies in Safari.

* LayoutTests/imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-before-xr-session.https.html:
* LayoutTests/imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-dom.html:
* LayoutTests/imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-during-xr-session.https.html:
* LayoutTests/imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-parallel.html:
* LayoutTests/imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback-repeating.html:
* LayoutTests/imported/w3c/web-platform-tests/video-rvfc/request-video-frame-callback.html:

Canonical link: https://commits.webkit.org/284619@main
https://bugs.webkit.org/show_bug.cgi?id=280721
rdar://137091365

Reviewed by Ryosuke Niwa.

Smart pointer adoption as per the static analyzer.

* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::imageBuffer const):
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
(WebKit::RemoteDisplayListRecorder::protectedRenderingBackend const):
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::surfaceBufferToVideoFrame):
(WebKit::RemoteGraphicsContextGL::paintNativeImageToImageBuffer):
(WebKit::RemoteGraphicsContextGL::protectedVideoFrameObjectHeap const):
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
(WebKit::RemoteGraphicsContextGL::copyTextureFromVideoFrame):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::workQueueInitialize):
(WebKit::RemoteRenderingBackend::workQueueUninitialize):
(WebKit::RemoteRenderingBackend::moveToSerializedBuffer):
(WebKit::RemoteRenderingBackend::moveToImageBuffer):
(WebKit::RemoteRenderingBackend::createRemoteBarcodeDetector):
(WebKit::RemoteRenderingBackend::releaseRemoteBarcodeDetector):
(WebKit::RemoteRenderingBackend::createRemoteFaceDetector):
(WebKit::RemoteRenderingBackend::releaseRemoteFaceDetector):
(WebKit::RemoteRenderingBackend::createRemoteTextDetector):
(WebKit::RemoteRenderingBackend::releaseRemoteTextDetector):
(WebKit::RemoteRenderingBackend::protectedShapeDetectionObjectHeap const):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::initializeIPC):
(WebKit::RemoteGraphicsContextGLProxy::protectedVideoFrameObjectHeapProxy const):
(WebKit::RemoteGraphicsContextGLProxy::videoFrameToImage):
(WebKit::RemoteGraphicsContextGLProxy::wasCreated):
(WebKit::RemoteGraphicsContextGLProxy::waitUntilInitialized):
(WebKit::RemoteGraphicsContextGLProxy::abandonGpuProcess):
(WebKit::RemoteGraphicsContextGLProxy::disconnectGpuProcessIfNeeded):
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
(WebKit::RemoteGraphicsContextGLProxy::send):
(WebKit::RemoteGraphicsContextGLProxy::sendSync):
(WebKit::RemoteGraphicsContextGLProxy::protectedStreamConnection const):
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):
(WebKit::RemoteRenderingBackendProxy::disconnectGPUProcess):
(WebKit::RemoteRenderingBackendProxy::didInitialize):
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
(WebKit::RemoteRenderingBackendProxy::protectedConnection const):
* Source/WebKit/WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:

Canonical link: https://commits.webkit.org/284620@main
https://bugs.webkit.org/show_bug.cgi?id=280661
rdar://137023471

Reviewed by Chris Dumez and Mike Wyrzykowski.

Smart pointer adoption as per the static analyzer.

* Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp:
(WebKit::RemoteImageBufferSet::endPrepareForDisplay):
(WebKit::RemoteImageBufferSet::ensureBufferForDisplay):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp:
(WebKit::RemoteCommandBuffer::RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::destruct):
(WebKit::RemoteCommandBuffer::stopListeningForIPC):
(WebKit::RemoteCommandBuffer::setLabel):
(WebKit::RemoteCommandBuffer::protectedStreamConnection const):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp:
(WebKit::RemoteComputePipeline::RemoteComputePipeline):
(WebKit::RemoteComputePipeline::destruct):
(WebKit::RemoteComputePipeline::stopListeningForIPC):
(WebKit::RemoteComputePipeline::getBindGroupLayout):
(WebKit::RemoteComputePipeline::setLabel):
(WebKit::RemoteComputePipeline::protectedBacking):
(WebKit::RemoteComputePipeline::protectedStreamConnection const):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp:
(WebKit::RemoteExternalTexture::RemoteExternalTexture):
(WebKit::RemoteExternalTexture::destroy):
(WebKit::RemoteExternalTexture::undestroy):
(WebKit::RemoteExternalTexture::destruct):
(WebKit::RemoteExternalTexture::stopListeningForIPC):
(WebKit::RemoteExternalTexture::setLabel):
(WebKit::RemoteExternalTexture::protectedBacking):
(WebKit::RemoteExternalTexture::protectedStreamConnection const):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.cpp:
(WebKit::RemoteTexture::createView):
(WebKit::RemoteTexture::destroy):
(WebKit::RemoteTexture::destruct):
(WebKit::RemoteTexture::setLabel):
(WebKit::RemoteTexture::protectedBacking):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.cpp:
(WebKit::RemoteTextureView::RemoteTextureView):
(WebKit::RemoteTextureView::destruct):
(WebKit::RemoteTextureView::stopListeningForIPC):
(WebKit::RemoteTextureView::setLabel):
(WebKit::RemoteTextureView::protectedStreamConnection const):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteXRProjectionLayer.cpp:
(WebKit::RemoteXRProjectionLayer::destruct):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp:
(WebKit::RemoteImageBufferSetProxy::didPrepareForDisplay):
(WebKit::RemoteImageBufferSetProxy::close):
(WebKit::RemoteImageBufferSetProxy::willPrepareForDisplay):
(WebKit::RemoteImageBufferSetProxy::remoteBufferSetWasDestroyed):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp:
(WebKit::WebGPU::RemoteTextureProxy::createView):

Canonical link: https://commits.webkit.org/284621@main
…s a flaky timeout

https://bugs.webkit.org/show_bug.cgi?id=280834
rdar://137216934

Unreviewed test gardening.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm:
(TEST(WebKit, AutoLayoutIntegration)):

Canonical link: https://commits.webkit.org/284622@main
https://bugs.webkit.org/show_bug.cgi?id=279728
rdar://136031070

Reviewed by Tim Nguyen.

Add CSSNumericValue as one of the options for `EffectTiming.duration`. Since percentage
values are not allowed as input, we add the `EffectTiming::durationAsDoubleOrString()`
to convert this value for the `double` and `DOMString` case.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/animation/CustomEffect.cpp:
(WebCore::CustomEffect::create):
* Source/WebCore/animation/EffectTiming.cpp: Added.
(WebCore::EffectTiming::durationAsDoubleOrString const):
* Source/WebCore/animation/EffectTiming.h:
* Source/WebCore/animation/EffectTiming.idl:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::create):

Canonical link: https://commits.webkit.org/284623@main
…igin-vary-cookie.html is a constant failure.

https://bugs.webkit.org/show_bug.cgi?id=280832
rdar://137213463

Unreviewed test gardening.

Setting test expectations.

* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/284624@main
* Source/WebCore/SaferCPPExpectations/NoUncountedMemberCheckerExpectations:
* Source/WebKit/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebKit/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations:

Canonical link: https://commits.webkit.org/284625@main
…tegration.mm

rdar://137222338
https://bugs.webkit.org/show_bug.cgi?id=280838

Reviewed by Antoine Quint.

Removed extra #if

* Tools/TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm:

Canonical link: https://commits.webkit.org/284626@main
https://bugs.webkit.org/show_bug.cgi?id=256856
rdar://problem/109419228

Reviewed by Charlie Wolfe.

This patch implements methods to turn different webauthn dictionaries into
more JSON friendly versions. This was added to make ergonomics for developers
easier in https://w3c.github.io/webauthn/#dom-publickeycredential-tojson.

BufferSource is tricky here, because it is currently not defined in IDL to the
BufferSource type, but instead IDLUnion<ArrayBuffer, ArrayBufferView>, which we
maintain. To get around this issue I defined a new IDLBufferSource to be used
for situations where we need JSGenerateToJSObject and JSGenerateToNativeObject.
This is the first instance of an IDL type containing a BufferSource needing both
JSGenerateToJSObject and JSGenerateToNativeObject.

I imported the WPT tests that exercise fromJSON, but the WPT toJSON ones require
virtual authenticator support. This is currently only available with WebDriver,
so I instead added WKTR-friendly test cases for toJSON.

* LayoutTests/TestExpectations:
* LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
* LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
* LayoutTests/imported/w3c/resources/import-expectations.json:
* LayoutTests/imported/w3c/web-platform-tests/webauthn/META.yml: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/WEB_FEATURES.yml: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/conditional-mediation.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-abort.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-attachment.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-badargs-authnrselection.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-badargs-challenge.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-badargs-rp.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-badargs-user.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-clientdata.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-cross-origin-iframe.https.sub.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-excludecredentials.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-extensions.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-getpublickey.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-hints.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-large-blob-not-supported.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-large-blob-supported.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-minpinlength.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-passing.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-prf.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-pubkeycredparams.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-resident-key.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/createcredential-timeout.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/credblob-not-supported.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/credblob-supported.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getclientcapabilities.https-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getclientcapabilities.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-abort.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-allowcredentials.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-attachment.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-badargs-rpid.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-badargs-userverification.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-extensions.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-hints.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-large-blob-not-supported.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-large-blob-supported.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-passing.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-prf.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-rk-passing.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/getcredential-timeout.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/helpers.js: Added.
(createCredential):
(assertCredential):
(ab2str):
(parseAuthenticatorData):
(TestCase.this.testFunction):
(TestCase):
(TestCase.prototype.toObject):
(TestCase.prototype.toArgs):
(TestCase.prototype.modify.recursiveSetObject):
(TestCase.prototype.modify):
(TestCase.prototype.doIt):
(TestCase.prototype.testPasses):
(TestCase.prototype.testFails):
(TestCase.prototype.runTest):
(TestCase.prototype.testSetup):
(TestCase.prototype.beforeTest):
(TestCase.prototype.testTeardown):
(TestCase.prototype.afterTest):
(TestCase.prototype.validateRet):
(cloneObject):
(extendObject):
(CreateCredentialsTest):
(CreateCredentialsTest.prototype.validateRet):
(GetCredentialsTest):
(GetCredentialsTest.prototype.addCredential):
(GetCredentialsTest.prototype.testSetup):
(GetCredentialsTest.prototype.validateRet):
(GetCredentialsTest.prototype.setIsResidentKeyTest):
(base64urlEncode):
* LayoutTests/imported/w3c/web-platform-tests/webauthn/idlharness-manual.https.window-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/idlharness-manual.https.window.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/idlharness-manual.https.window.js: Added.
(async idlArray):
* LayoutTests/imported/w3c/web-platform-tests/webauthn/idlharness.https.window-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/idlharness.https.window.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/idlharness.https.window.js: Added.
(async idlArray):
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-creation-options-from-json.https.window-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-creation-options-from-json.https.window.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-creation-options-from-json.https.window.js: Added.
(test):
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-request-options-from-json.https.window-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-request-options-from-json.https.window.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-request-options-from-json.https.window.js: Added.
(test):
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-to-json.https.window-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-to-json.https.window.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/public-key-credential-to-json.https.window.js: Added.
(assertObjectKeysEq):
(convertObject):
(authenticatorResponseToJson):
(publicKeyCredentialToJson):
(virtualAuthenticatorPromiseTest.async t):
* LayoutTests/imported/w3c/web-platform-tests/webauthn/remote-desktop-client-override.tentative.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/resources/common-inputs.js: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/resources/utils.js: Added.
(base64urlEncode):
* LayoutTests/imported/w3c/web-platform-tests/webauthn/resources/w3c-import.log: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/resources/webauthn-subframe.sub.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/securecontext.http-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/securecontext.http.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/securecontext.https-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/securecontext.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/signal-all-accepted-credentials.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/signal-current-user-details.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/signal-unknown-credential.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/storecredential.https.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/w3c-import.log: Added.
* LayoutTests/imported/w3c/web-platform-tests/webauthn/webauthn-testdriver-basic.https.html: Added.
* LayoutTests/tests-options.json:
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.cpp:
(WebCore::AuthenticationExtensionsClientInputs::toCBOR const):
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.h:
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl:
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputsJSON.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl.
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputsJSON.idl: Copied from Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl.
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.cpp:
(WebCore::AuthenticationExtensionsClientOutputs::toJSON const):
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.h:
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.idl:
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputsJSON.h: Copied from Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.h.
* Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputsJSON.idl: Copied from Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.idl.
* Source/WebCore/Modules/webauthn/AuthenticationResponseJSON.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl.
* Source/WebCore/Modules/webauthn/AuthenticationResponseJSON.idl: Copied from Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl.
* Source/WebCore/Modules/webauthn/AuthenticatorAssertionResponse.cpp:
(WebCore::AuthenticatorAssertionResponse::toJSON):
* Source/WebCore/Modules/webauthn/AuthenticatorAssertionResponse.h:
* Source/WebCore/Modules/webauthn/AuthenticatorAttestationResponse.cpp:
(WebCore::AuthenticatorAttestationResponse::toJSON):
* Source/WebCore/Modules/webauthn/AuthenticatorAttestationResponse.h:
* Source/WebCore/Modules/webauthn/AuthenticatorResponse.cpp:
(WebCore::AuthenticatorResponse::data const):
* Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.h: Copied from Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl.
* Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl.
* Source/WebCore/Modules/webauthn/CredentialPropertiesOutput.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/CredentialPropertiesOutput.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp:
(WebCore::PublicKeyCredential::toJSON):
(WebCore::fromJSON):
(WebCore::PublicKeyCredential::parseCreationOptionsFromJSON):
(WebCore::PublicKeyCredential::parseRequestOptionsFromJSON):
* Source/WebCore/Modules/webauthn/PublicKeyCredential.h:
* Source/WebCore/Modules/webauthn/PublicKeyCredential.idl:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:
(): Deleted.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptionsJSON.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptionsJSON.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptorJSON.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptorJSON.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialEntity.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialEntity.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialParameters.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialParameters.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptionsJSON.h: Copied from Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.h.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptionsJSON.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRpEntity.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRpEntity.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialUserEntity.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialUserEntity.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialUserEntityJSON.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialUserEntityJSON.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Source/WebCore/Modules/webauthn/RegistrationResponseJSON.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl.
* Source/WebCore/Modules/webauthn/RegistrationResponseJSON.idl: Copied from Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.idl.
* Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.cpp:
(fido::convertRpEntityToCBOR):
(fido::convertUserEntityToCBOR):
(fido::convertParametersToCBOR):
(fido::encodeGetAssertionRequestAsCBOR):
* Source/WebCore/Modules/webauthn/fido/U2fCommandConstructor.cpp:
(fido::convertToU2fRegisterCommand):
(fido::convertToU2fCheckOnlySignCommand):
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AXRemoteFrame::initializePlatformElementWithRemoteToken):
* Source/WebCore/bindings/IDLTypes.h:
* Source/WebCore/bindings/js/BufferSource.h:
(WebCore::BufferSource::BufferSource):
* Source/WebCore/bindings/js/JSDOMConvertBufferSource.h:
(WebCore::JSConverter<IDLBufferSource>::convert):
(WebCore::toJS):
* Source/WebCore/bindings/js/JSDOMConvertUnion.h:
(WebCore::Converter<IDLBufferSource>::convert):
* Source/WebCore/bindings/js/JSDOMPromiseDeferredForward.h:
* Source/WebCore/bindings/scripts/IDLParser.pm:
(addBuiltinTypedefs):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(publicKeyCredentialRpEntity):
(publicKeyCredentialUserEntity):
(publicKeyCredentialParameters):
(publicKeyCredentialDescriptors):
(authenticatorSelectionCriteria):
* Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::WebCore::collectTransports):
(WebKit::WebCore::getRpId):
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::produceHashSet):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::processClientExtensions):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::WebAuthenticatorCoordinatorProxy::requestsForRegistration):
(WebKit::configureRegistrationRequestContext):
* Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::makeCredential):
(WebKit::CtapAuthenticator::continueSilentlyCheckCredentials):
(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived):
* Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:
(WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
* Tools/TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestParam)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestParamNoUVNoRK)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestParamUVRequiredButNotSupported)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestParamWithPin)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestRKPreferred)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestRKPreferredNotSupported)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestRKDiscouraged)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestWithLargeBlob)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestWithUnsupportedLargeBlob)):
* Tools/TestWebKitAPI/Tests/WebCore/U2fCommandConstructorTest.cpp:
(TestWebKitAPI::constructMakeCredentialRequest):
(TestWebKitAPI::TEST(U2fCommandConstructorTest, TestConvertCtapMakeCredentialToU2fCheckOnlySign)):
(TestWebKitAPI::TEST(U2fCommandConstructorTest, TestConvertCtapMakeCredentialToU2fCheckOnlySignWithInvalidCredentialType)):
(TestWebKitAPI::TEST(U2fCommandConstructorTest, TestU2fRegisterCredentialAlgorithmRequirement)):
(TestWebKitAPI::TEST(U2fCommandConstructorTest, TestU2fRegisterUserVerificationRequirement)):
(TestWebKitAPI::TEST(U2fCommandConstructorTest, TestU2fRegisterResidentKeyRequirement)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST(WebAuthenticationPanel, PublicKeyCredentialCreationOptionsMinimum)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, PublicKeyCredentialCreationOptionsMaximumDefault)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, PublicKeyCredentialCreationOptionsMaximum1)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, PublicKeyCredentialCreationOptionsMaximum2)):

Canonical link: https://commits.webkit.org/284627@main
…7-14)

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

Reviewed by Tim Nguyen.

Upstream commit: web-platform-tests/wpt@c8da6ae

* LayoutTests/TestExpectations:
* LayoutTests/imported/w3c/resources/resource-files.json:
* LayoutTests/imported/w3c/web-platform-tests/websockets/...: Resynced.
* LayoutTests/platform/mac-wk1/TestExpectations:

Canonical link: https://commits.webkit.org/284628@main
https://bugs.webkit.org/show_bug.cgi?id=280822
rdar://137200143

Reviewed by Tim Nguyen.

Upstream commit: web-platform-tests/wpt@db4fbbb

* LayoutTests/imported/w3c/resources/resource-files.json:
* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/w3c-import.log:
* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font.html:
* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font-ref.html:
* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font-expected.html:
* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/mi-automatic-italic-with-default-font.html:
* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/mi-automatic-italic-with-default-font-ref.html:
* LayoutTests/imported/w3c/web-platform-tests/mathml/relations/text-and-math/mi-automatic-italic-with-default-font-expected-mismatch.html:

Canonical link: https://commits.webkit.org/284629@main
rdar://136444595
https://bugs.webkit.org/show_bug.cgi?id=280148

Reviewed by Antti Koivisto.

Implement parsing anchor-size() as a calc() function.

* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-fallback-invalidation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-invalid-fallback-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-parse-invalid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-animation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-minmax-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-parse-valid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-size-replaced-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-typed-om-expected.txt:
* Source/WebCore/css/CSSProperties.json: Extended grammar of several properties to accept anchor-size()
* Source/WebCore/css/CSSValueKeywords.in: Added new value keywords required by anchor-size()
* Source/WebCore/css/calc/CSSCalcTree+CalculationValue.cpp:
(WebCore::CSSCalc::toCalculationValue): Added toCalculationValue() for AnchorSize
* Source/WebCore/css/calc/CSSCalcTree+Evaluation.cpp:
(WebCore::CSSCalc::evaluate): Added dummy evaluate() for AnchorSize
* Source/WebCore/css/calc/CSSCalcTree+Parser.cpp:
(WebCore::CSSCalc::checkDepth): renamed from checkDepthAndIndex.
Remove empty token range check, because anchor-size() is valid and allowed.
(WebCore::CSSCalc::isCalcFunction): Recognized anchor-size() as a valid calc() function.
(WebCore::CSSCalc::consumeAnchorSize): Added function to parse anchor-size()
(WebCore::CSSCalc::parseCalcFunction):
(WebCore::CSSCalc::parseCalcSum):
(WebCore::CSSCalc::parseCalcProduct):
(WebCore::CSSCalc::parseCalcValue):
(WebCore::CSSCalc::checkDepthAndIndex): Deleted.
* Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp:
(WebCore::CSSCalc::serializeMathFunctionArguments): Implemented serializeMathFunctionArguments for AnchorSize
* Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp:
(WebCore::CSSCalc::simplify): Added stub simplify() for AnchorSize
* Source/WebCore/css/calc/CSSCalcTree+Simplification.h:
* Source/WebCore/css/calc/CSSCalcTree.h: Added new AnchorSize type, representing an anchor-size()
* Source/WebCore/css/parser/CSSPropertyParserConsumer+LengthPercentage.cpp:
(WebCore::CSSPropertyParserHelpers::consumeLengthPercentage):
* Source/WebCore/css/parser/CSSPropertyParserConsumer+LengthPercentage.h:
Added new argument to consumeLengthPercentage that controls parsing of anchor-size()
* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeAutoOrLengthPercentage): Added new argument to control parsing of anchor-size()
(WebCore::CSSPropertyParserHelpers::consumeMarginSide): Allow parsing anchor-size()
(WebCore::CSSPropertyParserHelpers::consumeSide): Allow parsing anchor-size()
(WebCore::CSSPropertyParserHelpers::consumeInsetLogicalStartEnd): Allow parsing anchor-size()
* Source/WebCore/css/parser/CSSPropertyParserOptions.h:
Added a new parsing policy to control whether to allow anchor-size() or not.
* Source/WebCore/css/process-css-properties.py:
(ReferenceTerm): Added all optional parameters supported by <length-percentage>.

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

Reviewed by Chris Dumez and Darin Adler.

Fixed smart pointer static analyzer warnings in NetworkProcess.cpp by deploying more smart pointers.

* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didCommitCrossSiteLoadWithDataTransfer):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigin):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::findPendingDownloadLocation):
(WebKit::NetworkProcess::logDiagnosticMessage):
(WebKit::NetworkProcess::logDiagnosticMessageWithResult):
(WebKit::NetworkProcess::logDiagnosticMessageWithValue):
(WebKit::NetworkProcess::terminateRemoteWorkerContextConnectionWhenPossible):
(WebKit::NetworkProcess::storeServiceWorkerRegistrations):
(WebKit::NetworkProcess::processNotificationEvent):
(WebKit::NetworkProcess::processPushMessage):
(WebKit::NetworkProcess::requestBackgroundFetchPermission):
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::ensureProtectedSWServer):
* Source/WebKit/NetworkProcess/NetworkSession.h:

Canonical link: https://commits.webkit.org/284631@main
https://bugs.webkit.org/show_bug.cgi?id=280806
rdar://133310966

Reviewed by Brent Fulgham.

With this patch we will also apply auto space between for
according to the ideograph-numeric rule, i.e.: between
a ideograph character and a non-ideograph numeral character.

* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-autospace/text-autospace-ideograph-numeric-001-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-autospace/text-autospace-ideograph-numeric-001-ref.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-autospace/text-autospace-ideograph-numeric-001.html: Added.
* Source/WebCore/platform/text/TextSpacing.cpp:
(WebCore::TextAutospace::shouldApplySpacing const):

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

Unreviewed build fix.

Missing <optional> header breaks Debian Stable build.

* Source/WebCore/platform/graphics/ContentsFormat.h:

Canonical link: https://commits.webkit.org/284633@main
…ardScrollingAnimator::scrollingDirections()

https://bugs.webkit.org/show_bug.cgi?id=280777
rdar://137147372

Reviewed by Richard Robinson.

rubberBandableDirections in KeyboardScrollingAnimator does not control rubber banding.
It actually controls regular scrollable directions.

* Source/WebCore/platform/KeyboardScrollingAnimator.cpp:
(WebCore::KeyboardScrollingAnimator::scrollingDirections const):
(WebCore::KeyboardScrollingAnimator::beginKeyboardScrollGesture):
(WebCore::KeyboardScrollingAnimator::rubberbandableDirections const): Deleted.
* Source/WebCore/platform/KeyboardScrollingAnimator.h:

Canonical link: https://commits.webkit.org/284634@main
…where(:scope)

https://bugs.webkit.org/show_bug.cgi?id=280544
rdar://136856371

Reviewed by Sammy Gill.

w3c/csswg-drafts#10431

This patch maintains a stack during rule set building to be able
to determine whether the closest ancestor rule is a style rule or a scope rule,
and to resolve the nesting parent selector & appropriately (:is(<parent>) or :where(:scope)).

* LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/nested-declarations-matching-expected.txt:
* Source/WebCore/style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::addChildRule):
(WebCore::Style::RuleSetBuilder::resolveSelectorListWithNesting):
(WebCore::Style::RuleSetBuilder::addStyleRule):
* Source/WebCore/style/RuleSetBuilder.h:

Canonical link: https://commits.webkit.org/284635@main
https://bugs.webkit.org/show_bug.cgi?id=280655
rdar://137009069

Reviewed by Antoine Quint.

Implement parsing of view timeline inset if set via the ViewTimelineOptions,
and adjust computeViewTimelineData to use insets.

* Source/WebCore/animation/ViewTimeline.cpp:
(WebCore::lengthForInset):
(WebCore::insetsFromString):
(WebCore::insetsFromOptions):
(WebCore::ViewTimeline::ViewTimeline):
(WebCore::ViewTimeline::computeViewTimelineData const):
(WebCore::ViewTimeline::currentTime):
* Source/WebCore/animation/ViewTimeline.h:

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

Reviewed by Brian Weinstein.

WECG issue: w3c/webextensions#252
WECG proposal: w3c/webextensions#569

Also changed the i18n APIs to return `"und"` instead of `undefined` when there is no language code.

* Source/WebKit/Platform/spi/Cocoa/FoundationSPI.h:
* Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm:
(WebKit::toWebAPI): Return "und" where then is no language code.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPILocalizationCocoa.mm:
(WebKit::WebExtensionAPILocalization::getPreferredSystemLanguages):
(WebKit::WebExtensionAPILocalization::getSystemUILanguage):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPILocalization.h:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPILocalization.idl:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPILocalization.mm:
(TestWebKitAPI::localeStringInWebExtensionFormat): Return "und".
(TestWebKitAPI::TEST(WKWebExtensionAPILocalization, i18n)):
(TestWebKitAPI::TEST(WKWebExtensionAPILocalization, i18nWithFallback)):
(TestWebKitAPI::TEST(WKWebExtensionAPILocalization, i18nWithoutMessages)):
(TestWebKitAPI::TEST(WKWebExtensionAPILocalization, i18nWithoutDefaultLocale)):

Canonical link: https://commits.webkit.org/284637@main
https://bugs.webkit.org/show_bug.cgi?id=280715
rdar://136672126

Reviewed by Mike Wyrzykowski.

Re-implement Queue::writeBuffer using a Swift implementation.
It is still using some underlying utilities from the C++ implementation
but that can only be moved over once Swift implements the whole class and has ownership
of underlying objects.

Testing:
Manual at desk builds with --webGpuSwift and running the Buffer and Queue tests.
Then Run writeBuffer.html test.

* Source/WTF/wtf/RefCounted.h:
(retainRefCounted): Deleted.
(releaseRefCounted): Deleted.
* Source/WTF/wtf/RetainReleaseSwift.h:
* Source/WTF/wtf/ThreadSafeRefCounted.h:
(retainThreadSafeRefCounted): Deleted.
(releaseThreadSafeRefCounted): Deleted.
* Source/WTF/wtf/ThreadSafeWeakPtr.h:
(WTF::retainThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr):
(WTF::releaseThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr):
* Source/WebGPU/WebGPU.xcodeproj/project.pbxproj:
* Source/WebGPU/WebGPU/Buffer.h:
(retainBuffer):
(releaseBuffer):
* Source/WebGPU/WebGPU/Device.h:
(retainDevice):
(releaseDevice):
* Source/WebGPU/WebGPU/Queue.h:
(WebGPU::Queue::blitCommandEncoder):
(retainQueue):
(releaseQueue):
* Source/WebGPU/WebGPU/Queue.swift:
(WebGPU.writeBuffer(_:bufferOffset:data:)):
(writeBuffer(_:buffer:offset:data:)): Deleted.
* Source/WebGPU/WebGPU/WebGPUExt.h:

Canonical link: https://commits.webkit.org/284638@main
    neowin.net: 'share' drop-down layout is broken and overlaps
    https://bugs.webkit.org/show_bug.cgi?id=275290
    <rdar://problem/129445546>

    Reviewed by Antti Koivisto.

    Floats, somewhat surprisingly may overlap each other, but only when an already placed float coming from outside of
    the current containing block does not overlap the containing block's content box.
    In such cases, newly placed floats may overlap such non-intrusive floats at their non-floating side.

    e.g.

    F - float box
    C - containing block for (F)
    N - non-overlapping box, sibling of C, also float but not overlapping C's content box.

     <div id=N style="width: 20px; float: left"></div>
     <div id=C style="width: 100px; padding-left: 20px">
       <div id=F style="width: 200px; float: right">

      _____
     |N    |  This is where (C)'s content box starts (see padding-left: 20px)
     |_____|_|____________________
     |C ___|_|__________________ |
     | |   | |                 F||
     | |   | |                  ||
     | |   | |                  ||
     | |___|_|__________________||
     |_____|_|___________________|
     |     |
     |_____|

    Note that (F) float box overlaps (N -also float) with its non-floating (left) side.

    * Source/WebCore/layout/floats/FloatingContext.cpp:
    (WebCore::Layout::findAvailablePosition):
    (WebCore::Layout::FloatingContext::positionForFloat const):
    (WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
    (WebCore::Layout::FloatingContext::findPositionForFormattingContextRoot const):
    * Source/WebCore/layout/floats/FloatingContext.h:

    Canonical link: https://commits.webkit.org/279867@main
@bravc bravc self-assigned this Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.