Timeline



Mar 15, 2022:

11:07 PM Changeset in webkit [291333] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

REGRESSION (r291191): [iOS] ASSERTION FAILED: m_contentsBufferHandle in WebKit::RemoteLayerBackingStore::paintContents()
https://bugs.webkit.org/show_bug.cgi?id=237922

Reviewed by Geoffrey Garen.

The assertion added in r291191 is incorrect. With that change, we end up calling
RemoteLayerBackingStore::paintContents() on WebGL layers (which use delegated display)
when we used to just early return from display(). So it's OK for m_frontBuffer.imageBuffer
to be null on these layers.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::paintContents):

10:35 PM Changeset in webkit [291332] by ysuzuki@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

[JSC] Add UnlinkedDFG compilation mode enum
https://bugs.webkit.org/show_bug.cgi?id=237934

Reviewed by Mark Lam.

This patch adds UnlinkedDFG compilation mode to prepare new unlinked DFG.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::inliningCost):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::watchCondition):
(JSC::DFG::Graph::watchConditions):
(JSC::DFG::Graph::watchGlobalProperty):
(JSC::DFG::Graph::tryGetConstantProperty):
(JSC::DFG::Graph::tryGetConstantClosureVar):
(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::getRegExpPrototypeProperty):
(JSC::DFG::Graph::canOptimizeStringObjectAccess):
(JSC::DFG::Graph::canDoFastSpread):

  • dfg/DFGGraph.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGTierUpCheckInjectionPhase.cpp:

(JSC::DFG::TierUpCheckInjectionPhase::run):

  • jit/JITCompilationMode.cpp:

(WTF::printInternal):

  • jit/JITCompilationMode.h:

(JSC::isDFG):
(JSC::isUnlinked):

  • jit/JITPlan.cpp:

(JSC::JITPlan::tier const):
(JSC::JITPlan::reportCompileTimes const):

  • jit/JITPlan.h:

(JSC::JITPlan::isDFG const):
(JSC::JITPlan::isUnlinked const):

  • profiler/ProfilerCompilationKind.cpp:

(WTF::printInternal):

  • profiler/ProfilerCompilationKind.h:
10:19 PM Changeset in webkit [291331] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Concurrent byteOffsetImpl should not assume non-detached array-buffer
https://bugs.webkit.org/show_bug.cgi?id=237935

Reviewed by Saam Barati.

r279707 is not enough to fix the issue since underlying ArrayBuffer can be also detached concurrently to
the compiler thread too. This patch fixes it by using dataWithoutPACValidation in the concurrent compiler
thread.

  • runtime/ArrayBuffer.h:

(JSC::ArrayBufferContents::dataWithoutPACValidation const):
(JSC::ArrayBuffer::dataWithoutPACValidation):
(JSC::ArrayBuffer::dataWithoutPACValidation const):

  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::byteOffsetImpl):

9:11 PM Changeset in webkit [291330] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r282737): text-shadow is clipped
https://bugs.webkit.org/show_bug.cgi?id=237898
<rdar://problem/90320701>

Reviewed by Darin Adler.

Source/WebCore:

Inflate the ink overflow rect with the text shadow values (note that here, in the display builder we work with physical coordinates).

Test: fast/text/text-shadow-ink-overflow-missing.html

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::getTextShadowHorizontalExtent const):
(WebCore::RenderStyle::getTextShadowVerticalExtent const):

LayoutTests:

  • fast/text/text-shadow-ink-overflow-missing-expected.html: Added.
  • fast/text/text-shadow-ink-overflow-missing.html: Added.
9:06 PM Changeset in webkit [291329] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[GLIB] REGRESSION(r291257): Unreviewed, fix build when using ATK
https://bugs.webkit.org/show_bug.cgi?id=237939

r291257 renamed RenderStyle::textDecoration() to
RenderStyle::textDecorationLine() in the ATSPI module, but it missed
to do the same for the ATK module.

ATK is still in use when building with flag -DUSE_ATSPI=OFF, which is
used by Ubuntu 18.04 and Debian Stable bots.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):

8:51 PM Changeset in webkit [291328] by mark.lam@apple.com
  • 2 edits in trunk/Source/bmalloc

Remove unused directory local variable in pas_enumerate_segregated_heaps.
https://bugs.webkit.org/show_bug.cgi?id=237931

Reviewed by Geoffrey Garen.

Also remove the call to pas_unwrap_local_view_cache_node(). It doesn't add any
value. The only thing of substance that it does is a PAS_ASSERT that turns out to
be redundant because pas_enumerate_segregated_heaps() already asserts the same
thing before calling pas_unwrap_local_view_cache_node().

  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(pas_enumerate_segregated_heaps):

8:25 PM Changeset in webkit [291327] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[GLIB] Unreviewed, fix build for Ubuntu 18.04 and Debian Stable after r291229
https://bugs.webkit.org/show_bug.cgi?id=237938

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(elementSize):

8:21 PM Changeset in webkit [291326] by eric.carlson@apple.com
  • 13 edits in trunk/Source

Video poster disappears prematurely on play, leaving transparent video element.
https://bugs.webkit.org/show_bug.cgi?id=226960
<rdar://problem/79315114>

Reviewed by Jer Noble.

Source/WebCore:

If a media file has an enabled video track, don't advance readyState to
HAVE_ENOUGH_DATA until we have the first frame so we won't hide the poster image
until AVFoundation has something to render.

Tested manually.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::mediaPlayerFirstVideoFrameAvailable): Always log.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::updateStates): Move the test for the
first video frame above the player item status check. If a file has a video track,
don't advance to HAVE_ENOUGH_DATA unless we have the first video frame.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_cachedHasEnabledVideo.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): Remove unneeded
local variable.
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformSetVisible): Minro cleanup.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Set hasVideo if
AVPlayerItem.hasEnabledVideo is true, because it remains stable while AVAssetTracks
sometimes disappear and reappear.
(WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Add logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasEnabledAudioDidChange): Ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasEnabledVideoDidChange): New, cache
AVPlayerItem.hasEnabledVideo.
(WebCore::itemKVOProperties):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Respond
to @"hasEnabledVideo".

  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote): Always log.
(WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote): Ditto.
(WebKit::MediaPlayerPrivateRemote::prepareForPlayback): Pass the player's content
rect box to createVideoLayerRemote so it can be sized correctly even before it
becomes visible.
(WebKit::MediaPlayerPrivateRemote::firstVideoFrameAvailable): Always log.
(WebKit::MediaPlayerPrivateRemote::renderingModeChanged): Ditto.

  • WebProcess/GPU/media/VideoLayerRemote.h:
  • WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:

(WebKit::createVideoLayerRemote): Set the new layer's frame so its children will
be positioned correctly when the are made visible.

7:35 PM Changeset in webkit [291325] by sbarati@apple.com
  • 2 edits in trunk/Tools

Add support for chrome-beta and chrome-dev to run-benchmark
https://bugs.webkit.org/show_bug.cgi?id=237937

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(set_binary_location_impl):
(OSXChromeDriver._set_chrome_binary_location):
(OSXChromeCanaryDriver):
(OSXChromeCanaryDriver._set_chrome_binary_location):
(OSXChromeBetaDriver):
(OSXChromeBetaDriver._set_chrome_binary_location):
(OSXChromeDevDriver):
(OSXChromeDevDriver._set_chrome_binary_location):

5:51 PM Changeset in webkit [291324] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

Crash under HTMLDocumentParser::didBeginYieldingParser()
https://bugs.webkit.org/show_bug.cgi?id=237930
<rdar://45607220>

Reviewed by Geoffrey Garen.

Add null pointer check.

No new tests, unable to reproduce.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::didBeginYieldingParser):
(WebCore::HTMLDocumentParser::didEndYieldingParser):

4:44 PM Changeset in webkit [291323] by mmaxfield@apple.com
  • 60 edits in trunk/Source

[WebGPU] Migrate from WTF::Function to WTF::CompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=237925

Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

CompletionHandlers make sure they are called exactly 1 time, and eagerly free up resources.

There are still 2 places which continue to use Functions, becuase they are expected to be
called multiple times:

  • Device::setDeviceLostCallback()
  • Device::setUncapturedErrorCallback()
  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::AdapterImpl::requestDevice):

  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:

(PAL::WebGPU::BufferImpl::mapAsync):

  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::popErrorScope):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:

(PAL::WebGPU::GPUImpl::requestAdapter):

  • pal/graphics/WebGPU/Impl/WebGPUImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:

(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):

  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp:

(PAL::WebGPU::ShaderModuleImpl::compilationInfo):

  • pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
  • pal/graphics/WebGPU/WebGPU.h:
  • pal/graphics/WebGPU/WebGPUAdapter.h:
  • pal/graphics/WebGPU/WebGPUBuffer.h:
  • pal/graphics/WebGPU/WebGPUDevice.h:
  • pal/graphics/WebGPU/WebGPUQueue.h:
  • pal/graphics/WebGPU/WebGPUShaderModule.h:

Source/WebGPU:

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/Buffer.h:
  • WebGPU/Buffer.mm:

(WebGPU::Buffer::mapAsync):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::popErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):

  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:

(WebGPU::Instance::requestAdapter):

  • WebGPU/Queue.h:
  • WebGPU/Queue.mm:

(WebGPU::Queue::onSubmittedWorkDone):

  • WebGPU/RenderPassEncoder.h:
  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipelineAsync):

  • WebGPU/ShaderModule.h:
  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::getCompilationInfo):

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:

(WebKit::RemoteAdapter::requestDevice):

  • GPUProcess/graphics/WebGPU/RemoteAdapter.h:
  • GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:

(WebKit::RemoteBuffer::mapAsync):

  • GPUProcess/graphics/WebGPU/RemoteBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteDevice.cpp:

(WebKit::RemoteDevice::createComputePipelineAsync):
(WebKit::RemoteDevice::createRenderPipelineAsync):
(WebKit::RemoteDevice::popErrorScope):

  • GPUProcess/graphics/WebGPU/RemoteDevice.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::requestAdapter):

  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/graphics/WebGPU/RemoteQueue.cpp:

(WebKit::RemoteQueue::onSubmittedWorkDone):

  • GPUProcess/graphics/WebGPU/RemoteQueue.h:
  • GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp:

(WebKit::RemoteShaderModule::compilationInfo):

  • GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:

(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):

  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp:

(WebKit::WebGPU::RemoteBufferProxy::mapAsync):

  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:

(WebKit::WebGPU::RemoteDeviceProxy::createComputePipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderPipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::popErrorScope):

  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:

(WebKit::RemoteGPUProxy::requestAdapter):

  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.cpp:

(WebKit::WebGPU::RemoteQueueProxy::onSubmittedWorkDone):

  • WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.cpp:

(WebKit::WebGPU::RemoteShaderModuleProxy::compilationInfo):

  • WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
4:40 PM Changeset in webkit [291322] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add RELEASE_LOG_FAULT to ApplicationCache entry function
https://bugs.webkit.org/show_bug.cgi?id=237866

Reviewed by Alex Christensen.

To help learn remaining ApplicationCache usage.

  • html/HTMLHtmlElement.cpp:

(WebCore::HTMLHtmlElement::insertedByParser):

4:23 PM Changeset in webkit [291321] by J Pascoe
  • 4 edits in trunk/Source/WebKit

[WebAuthn] Mock UI interactions whenever virtual authenticators are in use.
https://bugs.webkit.org/show_bug.cgi?id=237856
rdar://problem/90274854

Reviewed by Brent Fulgham.

Tested by wpt's webauthn tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:

(WebKit::VirtualAuthenticatorManager::runPanel):
(WebKit::VirtualAuthenticatorManager::selectAssertionResponse):
(WebKit::VirtualAuthenticatorManager::decidePolicyForLocalAuthenticator):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h:
4:16 PM Changeset in webkit [291320] by Chris Dumez
  • 7 edits in trunk/Source

Make it clearer in the loading logging when it is for the main frame or not
https://bugs.webkit.org/show_bug.cgi?id=237913

Reviewed by Alex Christensen.

Source/WebCore:

  • dom/Document.cpp:
  • loader/DocumentLoader.cpp:
  • loader/FrameLoader.cpp:
  • page/FrameView.cpp:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::willPerformClientRedirectForFrame):
(WebKit::WebPageProxy::didCancelClientRedirectForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::didPerformClientRedirectShared):

3:34 PM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
3:22 PM Changeset in webkit [291319] by Jean-Yves Avenard
  • 4 edits in trunk/LayoutTests

REGRESSION(r287249): [ Monterey wk2 ] media/media-source/media-webm-vorbis-partial.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=236656
rdar://88978504

Reviewed by Eric Carlson.

Update test expectations, they didn't get committed after the test got
modified in bug 236211

  • media/media-source/media-webm-vorbis-partial-expected.txt:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:09 PM Changeset in webkit [291318] by commit-queue@webkit.org
  • 5 edits
    4 deletes in trunk

Unreviewed, reverting r291282.
https://bugs.webkit.org/show_bug.cgi?id=237924

Speedometer2 1-2% regression

Reverted changeset:

"Dialog element only animates once"
https://bugs.webkit.org/show_bug.cgi?id=236274
https://commits.webkit.org/r291282

2:52 PM Changeset in webkit [291317] by mmaxfield@apple.com
  • 5 edits
    4 copies in trunk/Source/WebGPU

[WebGPU] Update WebGPU CommandLinePlayground to execute asynchronous tasks
https://bugs.webkit.org/show_bug.cgi?id=237852

Reviewed by Kimmo Kinnunen.

This patch hooks up dispatch_async(dispatch_get_main_queue()) to WebGPU's CommandLinePlayground,
so asynchronous tasks get run.

  • CommandLinePlayground/CommandLinePlayground-Bridging-Header.h: Copied from Source/WebGPU/CommandLinePlayground/main.swift.
  • CommandLinePlayground/Utilities.c: Copied from Source/WebGPU/CommandLinePlayground/main.swift.

(createDefaultInstance):

  • CommandLinePlayground/Utilities.h: Copied from Source/WebGPU/CommandLinePlayground/main.swift.
  • CommandLinePlayground/config.h: Copied from Source/WebGPU/CommandLinePlayground/main.swift.
  • CommandLinePlayground/main.swift:

(adapter):

  • Configurations/CommandLinePlayground.xcconfig:
  • WebGPU.xcodeproj/project.pbxproj:
  • WebGPU/TextureView.mm:
2:39 PM Changeset in webkit [291316] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add RELEASE_LOG_FAULT to WebSQL entry functions
https://bugs.webkit.org/show_bug.cgi?id=237865

Reviewed by Geoffrey Garen.

To help learn remaining WebSQL usage.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::transaction):
(WebCore::Database::readTransaction):

2:30 PM Changeset in webkit [291315] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Repeated calls to wgpuDeviceGetQueue() are supposed to return the same pointer
https://bugs.webkit.org/show_bug.cgi?id=237861

Reviewed by Kimmo Kinnunen.

Previously, wgpuDeviceGetQueue() had "new WGPUQueueImpl { ... }" but this is wrong because
the default queue doesn't change from one call to the next.

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::getQueue):
(wgpuDeviceGetQueue):

2:30 PM Changeset in webkit [291314] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

RemoteGraphicsContextGLProxy omits context lost checks for back and front buffer access functions
https://bugs.webkit.org/show_bug.cgi?id=237891

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-15
Reviewed by Myles Maxfield.

Add missing isContextLost() checks to RemoteGraphicsContextGLProxy functions.
WebGLRenderingContextBase would call as follows:
void WebGLRenderingContextBase::paintRenderingResultsToCanvas()
{

if (isContextLostOrPending())

return;

...
m_context->prepareForDisplay();
...
m_context->paintCompositedResultsToCanvas();

}

The context may be ok during the first check but then fail later,
and so all the context functions need to check for validity.

No new tests, testing hooks need non-trivial implementation.
This is tracked in bug 237891.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):

2:22 PM Changeset in webkit [291313] by mmaxfield@apple.com
  • 12 edits in trunk/Source

[WebGPU] Allow for scheduling asynchronous work
https://bugs.webkit.org/show_bug.cgi?id=237755

Reviewed by Kimmo Kinnunen.

Source/WebCore/PAL:

WebGPU doesn't know how to schedule asynchronous work, so that will have to be handled
by dependency injection from the caller. The way it works is Instance creation takes
a block, which is retained. Whenever asynchronous work needs to be scheduled on the
relevant thread, this block is called, and is passed another block for the work to be
performed.

The API contract is: callers of WebGPU must call its functions in a non-racey way. The
schedule function will execute on a background thread, and it must schedule the block
it's passed to be run in a non-racey way with regards to all the other WebGPU calls.
The schedule function can be NULL, in which case the asynchronous tasks will just be
internally queued up inside WebGPU, and then users will have to call
wgpuInstanceProcessEvents() periodically to synchronously call the queued callbacks.

  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:

(PAL::WebGPU::GPUImpl::create):

  • pal/graphics/WebGPU/Impl/WebGPUImpl.h:

Source/WebGPU:

  • WebGPU/Instance.h:

(WebGPU::Instance::runLoop const): Deleted.

  • WebGPU/Instance.mm:

(WebGPU::Instance::create):
(WebGPU::Instance::Instance):
(WebGPU::Instance::scheduleWork):
(WebGPU::Instance::defaultScheduleWork):
(WebGPU::Instance::processEvents):

  • WebGPU/WebGPUExt.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::workQueueUninitialize):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createGPUForWebGPU const):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createGPUForWebGPU const):

2:17 PM Changeset in webkit [291312] by Alan Bujtas
  • 16 edits in trunk/Source/WebCore

[IFC][Integration] Rename selection* to enclosing* in InlineIterator::Line
https://bugs.webkit.org/show_bug.cgi?id=237909

Reviewed by Antti Koivisto.

These functions return enclosing (line box and content) geometries which we happen to use to compute selection boundaries (among other things).

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):

  • layout/integration/InlineIteratorLine.cpp:

(WebCore::InlineIterator::Line::blockDirectionPointInLine const):
(WebCore::InlineIterator::Line::enclosingTopAdjustedForPrecedingBlock const):
(WebCore::InlineIterator::Line::enclosingHeightAdjustedForPrecedingBlock const):
(WebCore::InlineIterator::Line::selectionTopAdjustedForPrecedingBlock const): Deleted.
(WebCore::InlineIterator::Line::selectionHeightAdjustedForPrecedingBlock const): Deleted.

  • layout/integration/InlineIteratorLine.h:

(WebCore::InlineIterator::Line::enclosingTop const):
(WebCore::InlineIterator::Line::enclosingTopForHitTesting const):
(WebCore::InlineIterator::Line::enclosingBottom const):
(WebCore::InlineIterator::Line::enclosingHeight const):
(WebCore::InlineIterator::Line::enclosingLogicalRect const):
(WebCore::InlineIterator::Line::enclosingPhysicalRect const):
(WebCore::InlineIterator::Line::selectionTop const): Deleted.
(WebCore::InlineIterator::Line::selectionTopForHitTesting const): Deleted.
(WebCore::InlineIterator::Line::selectionBottom const): Deleted.
(WebCore::InlineIterator::Line::selectionHeight const): Deleted.
(WebCore::InlineIterator::Line::selectionLogicalRect const): Deleted.
(WebCore::InlineIterator::Line::selectionPhysicalRect const): Deleted.

  • layout/integration/InlineIteratorTextBox.cpp:

(WebCore::InlineIterator::TextBox::selectionRect const):

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForLinePosition):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::selectionTopAdjustedForPrecedingBlock const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustEnclosingTopForPrecedingBlock const):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::adjustSelectionTopForPrecedingBlock const): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::collectSelectionGeometries):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionGeometries):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::positionForPoint):

  • rendering/RenderText.cpp:

(WebCore::RenderText::positionForPoint):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintBackground):

1:45 PM Changeset in webkit [291311] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Fix logging in GPUProcessProxy::didCreateContextForVisibilityPropagation()
https://bugs.webkit.org/show_bug.cgi?id=237907

Reviewed by Simon Fraser.

LayerHostingContextID is a uint32_t. The current printing ends up logging negative values:
GPUProcessProxy::didCreateContextForVisibilityPropagation: webPageProxyID: 7, pagePID: 79, contextID: -2041854761

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didCreateContextForVisibilityPropagation):

1:30 PM Changeset in webkit [291310] by Patrick Griffis
  • 29 edits
    1 copy
    12 adds in trunk

Add initial implementation of Fetch Metadata
https://bugs.webkit.org/show_bug.cgi?id=204744

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update expectations for Fetch Metadata.

  • web-platform-tests/fetch/metadata/download.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/download.https.sub.html:
  • web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any-expected.txt: Added.
  • web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.worker-expected.txt: Added.
  • web-platform-tests/fetch/metadata/fetch-via-serviceworker--fallback.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/fetch-via-serviceworker--respondWith.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/fetch.https.sub.any-expected.txt: Added.
  • web-platform-tests/fetch/metadata/fetch.https.sub.any.worker-expected.txt: Added.
  • web-platform-tests/fetch/metadata/fetch.sub-expected.txt:
  • web-platform-tests/fetch/metadata/font.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/img.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/redirect/cross-site-redirect.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/redirect/multiple-redirect-cross-site.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/script.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/script.sub-expected.txt:
  • web-platform-tests/fetch/metadata/serviceworker-accessors.https.sub-expected.txt: Added.
  • web-platform-tests/fetch/metadata/serviceworker.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/sharedworker.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/trailing-dot.https.sub.any-expected.txt: Added.
  • web-platform-tests/fetch/metadata/trailing-dot.https.sub.any.worker-expected.txt: Added.
  • web-platform-tests/fetch/metadata/unload.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/worker.https.sub-expected.txt:
  • web-platform-tests/fetch/metadata/xslt.https.sub-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-module-request-mode.https-expected.txt:

Source/WebCore:

Add initial implementation of Fetch Metadata as specified here:
https://w3c.github.io/webappsec-fetch-metadata/

Currently only Fetch-Sec-Mode and Fetch-Sec-Dest are implemented with more
to come in later patches.

Test: http/wpt/fetch/fetch-metadata-same-origin-redirect.html

  • loader/CrossOriginAccessControl.cpp:

(WebCore::cleanHTTPRequestHeadersForAccessControl):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateFetchMetadataHeaders):

  • loader/cache/CachedResourceRequest.h:
  • platform/network/HTTPHeaderNames.in:

Source/WTF:

Add new experimental preference for Fetch Metadata, disabled by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Skip fewer of the Fetch Metadata tests. Many still timeout and are still
being worked on.

  • TestExpectations:
  • http/wpt/fetch/fetch-metadata-same-origin-redirect-expected.txt: Added.
  • http/wpt/fetch/fetch-metadata-same-origin-redirect.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any-expected.txt: Added.
1:09 PM Changeset in webkit [291309] by commit-queue@webkit.org
  • 10 edits
    7 deletes in trunk/Source/WebCore

REGRESSION(r291270): Changes need better build-time guards
https://bugs.webkit.org/show_bug.cgi?id=237908

Unreviewed, rolling out r291270 and r291294 until proper build guards
and relevant configuration options are introduced.

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-15

  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/TextureMapper.cmake:
  • platform/graphics/gbm/DMABufFormat.h: Removed.
  • platform/graphics/gbm/DMABufObject.h: Removed.
  • platform/graphics/gbm/DMABufReleaseFlag.h: Removed.
  • platform/graphics/gbm/GBMBufferSwapchain.cpp: Removed.
  • platform/graphics/gbm/GBMBufferSwapchain.h: Removed.
  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:

(webKitDMABufVideoSinkProbePlatform):
(webKitDMABufVideoSinkIsEnabled): Deleted.

  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::platformLayer const):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
(WebCore::fourccValue): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkDMABuf): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:

(Nicosia::ContentLayerTextureMapperImpl::createFactory):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: Removed.
  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h: Removed.
12:34 PM Changeset in webkit [291308] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Rename bugzilla_comment_text
https://bugs.webkit.org/show_bug.cgi?id=237911
<rdar://problem/90319995>

Reviewed by Aakash Jain.

Rename bugzilla_comment_text to comment_text to re-use
code to comment on pull requests.

  • Tools/CISupport/ews-build/steps.py:

(ApplyPatch.evaluateCommand):
(ValidateCommiterAndReviewer.fail_build):
(ValidateChangeLogAndReviewer.evaluateCommand):
(CommentOnBug.start):
(AnalyzeCompileWebKitResults.analyzeResults):
(AnalyzeLayoutTestsResults.report_failure):
(FindModifiedChangeLogs.evaluateCommand):
(CreateLocalGITCommit.evaluateCommand):
(PushCommitToWebKitRepo.evaluateCommand):

  • Tools/CISupport/ews-build/steps_unittest.py:

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

12:22 PM Changeset in webkit [291307] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS ] ASSERTION FAILED: m_isWaitingForDidUpdateGeometry on accessibility/visible-character-range.html
https://bugs.webkit.org/show_bug.cgi?id=237557

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:53 AM Changeset in webkit [291306] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix SQL statement in ApplicationCacheStorage::verifySchemaVersion()
https://bugs.webkit.org/show_bug.cgi?id=237905

Reviewed by Geoffrey Garen.

This was leading to the following logging:
SQLiteDatabase::prepareStatement: Failed to prepare statement PRAGMA user_version=%7

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::verifySchemaVersion):

11:47 AM Changeset in webkit [291305] by Philippe Normand
  • 2 edits in trunk/Source/WTF

Unreviewed, CMake Debug build fix attempt after 248407@main

  • wtf/CMakeLists.txt: Include StackCheck source unit.
10:39 AM Changeset in webkit [291304] by Aditya Keerthi
  • 14 edits in trunk

[iOS] Indefinite hang when printing using a UIPrintPageRenderer
https://bugs.webkit.org/show_bug.cgi?id=237835
rdar://90002387

Reviewed by Devin Rousso.

Source/WebKit:

r290186 adopted UIKit API to support printing web content on a
background thread, to avoid blocking the main thread while waiting
on PDF data from the web process. However, the changes made the
assumption that, with the new API, all printing would be performed on
a background thread. While this is the case when using
UIPrintInteractionController, clients can also print using
UIPrintPageRenderer on the main thread. The background thread logic
waits on a semaphore, until PDF data is received on the main thread.
However, if the logic runs on the main thread, it will wait on the
semaphore indefinitely.

To fix, restore the original sync IPC codepath when performing printing
on the main thread. Additionally, make the BinarySemaphore a
unique_ptr, so that it can be signalled and reset in failure scenarios,
regardless of whether a thread was waiting on the semaphore. This
change also allows us to avoid creating the BinarySemaphore unless it
is actually needed.

All uses of HAVE(UIKIT_BACKGROUND_THREAD_PRINTING) are removed, as the
API adoption only involves a method override, which is harmless in
builds that lack support for the new API.

  • UIProcess/WebPageProxy.h:
  • UIProcess/_WKWebViewPrintFormatter.mm:
  • UIProcess/_WKWebViewPrintFormatterInternal.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _processDidExit]):
(-[WKContentView _wk_pageCountForPrintFormatter:]):
(-[WKContentView _waitForDrawToPDFCallbackIfNeeded]):
(-[WKContentView _wk_printedDocument]):

  • UIProcess/ios/WKPDFView.mm:
  • UIProcess/ios/WebPageProxyIOS.mm:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

Source/WTF:

Remove unused HAVE macro.

  • wtf/PlatformHave.h:

Tools:

Add API test coverage for printing web content to a PDF, using a
UIPrintPageRenderer (which uses the main thread) and a
UIPrintInteractionController (which uses a background thread).

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewPrintFormatter.mm:

(TEST):

10:36 AM Changeset in webkit [291303] by Antti Koivisto
  • 3 edits
    3 adds in trunk

background-clip:text doesn't work with display:flex
https://bugs.webkit.org/show_bug.cgi?id=169125
<rdar://problem/72432683>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex-expected.html: Added.
  • web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex-ref.html: Added.
  • web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex.html: Added.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintAsInlineBlock):

Flexbox children paint as inline blocks. This path didn't support text clip paint phase.

10:31 AM Changeset in webkit [291302] by commit-queue@webkit.org
  • 5 edits
    3 deletes in trunk

Stop using DYLD_INTERPOSE
https://bugs.webkit.org/show_bug.cgi?id=237867

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-15
Reviewed by Anders Carlsson.

Source/WebCore:

It never worked on iOS, and it doesn't work on M1 Macs.
It used to be used for NPAPI and the SecItemShim,
but those have been removed and updated to use other methods that work on M1 Macs.
It is currently only used for tests in editing/secure-input which continue to pass
as much as they did before this change.

  • Configurations/WebCoreTestShim.xcconfig: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/DynamicLinkerInterposing.h: Removed.
  • testing/WebCoreTestShimLibrary.cpp: Removed.

Tools:

  • Scripts/webkitpy/port/mac.py:

(MacPort.setup_environ_for_server):

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_setup_environ_for_server):

10:24 AM Changeset in webkit [291301] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[model] model-element/model-element-camera.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=237894
rdar://88982597

Reviewed by Tim Horton.

Ensure we have a non-zero contentSize() and model data before attempting to
create a player. Otherwise, we could end up with a zero frame when calling
into ARKit and the model would fail to load and the ready promise would be
rejected, causing this test to fail.

We can change the existing call site to sizeMayHaveChanged() to no longer
check whether we are using a platform layer since sizeMayHaveChanged() now
takes care of checking whether it has a player.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::sizeMayHaveChanged):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):

10:14 AM Changeset in webkit [291300] by Ryan Haddad
  • 1 edit in trunk/Tools/Scripts/webkitpy/xcode/simulated_device.py

[webkitpy] Make SimulatedDevice.is_usable check more robust
https://bugs.webkit.org/show_bug.cgi?id=237795

Reviewed by Jonathan Bedard.

Rather than searching for the service name in the output of launchctl list,
pass in the name as an additional argument so that it prints out information
about that particular service. I have verified that this works in local testing
for both iOS and watchOS simulators.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice):
(SimulatedDevice.is_usable):

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

10:06 AM Changeset in webkit [291299] by Brandon
  • 2 edits in trunk/Source/WebCore

Line Builder and Content Breaker out of sync
https://bugs.webkit.org/show_bug.cgi?id=237903

Reviewed by Simon Fraser.

Line builder and content breaker could become out of sync in the case where
the first line style was different than following styles. This could result
in issues with wrapping later on.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::handleInlineContent):

9:56 AM Changeset in webkit [291298] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Unreviewed gardening
https://bugs.webkit.org/show_bug.cgi?id=237902

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
9:52 AM Changeset in webkit [291297] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=237846
<rdar://90249455>

Reviewed by Brent Fulgham.

Add required syscall to the WebContent process' sandbox on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
9:40 AM Changeset in webkit [291296] by jer.noble@apple.com
  • 14 edits in trunk/Source

[Cocoa] Adopt AVAssetPrefersSandboxedParsingOptionKey
https://bugs.webkit.org/show_bug.cgi?id=237832
<rdar://89029829>

Reviewed by Eric Carlson.

Source/WebCore:

Adopt a AVURLAsset option which would allow the media file parser to run out-of-process.
Because this adoption may have a performance impact (though it should not affect the
functionality of AVURLAsset), add a Setting to disable this adoption at runtime for the
purpose of A/B testing.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::requestInstallMissingPlugins):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerPrefersSandboxedParsing const):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.h:

Source/WebKit:

Propogate the prefersSandboxedParsing() property across to the GPU process.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:

(WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
(WebKit::RemoteMediaPlayerProxyConfiguration::decode):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
9:37 AM Changeset in webkit [291295] by commit-queue@webkit.org
  • 59 edits
    1 copy
    20 adds in trunk

Expose some web APIs on Shadow Realms and Worklets
https://bugs.webkit.org/show_bug.cgi?id=235736

Patch by Joseph Griego <jgriego@igalia.com> on 2022-03-15
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Import the latest relevant idl definitions and new idlharness-shadowrealm tests

  • web-platform-tests/dom/idlharness-shadowrealm.window-expected.txt:
  • web-platform-tests/dom/idlharness.any.serviceworker-expected.txt:
  • web-platform-tests/dom/idlharness.any.sharedworker-expected.txt:
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/encoding/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/encoding/idlharness-shadowrealm.window.html: Added.
  • web-platform-tests/encoding/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/hr-time/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/hr-time/idlharness-shadowrealm.window.html: Added.
  • web-platform-tests/hr-time/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/html/dom/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/html/dom/idlharness-shadowrealm.window.html: Added.
  • web-platform-tests/html/dom/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/interfaces/compression.idl:
  • web-platform-tests/interfaces/dom.idl:
  • web-platform-tests/interfaces/encoding.idl:
  • web-platform-tests/interfaces/hr-time.idl:
  • web-platform-tests/interfaces/html.idl:
  • web-platform-tests/interfaces/performance-timeline.idl:
  • web-platform-tests/interfaces/streams.idl:
  • web-platform-tests/interfaces/url.idl:
  • web-platform-tests/interfaces/user-timing.idl:
  • web-platform-tests/performance-timeline/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/performance-timeline/idlharness-shadowrealm.window.html: Added.
  • web-platform-tests/performance-timeline/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/resources/idlharness-shadowrealm.js:

(promise_setup.):
(idl_test_shadowrealm):
(promise_setup): Deleted.

  • web-platform-tests/resources/idlharness.js:

(IdlInterface.prototype.test_self):

  • web-platform-tests/streams/idlharness-shadowrealm.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt.
  • web-platform-tests/streams/idlharness-shadowrealm.window.html: Added.
  • web-platform-tests/streams/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/streams/idlharness.any-expected.txt:
  • web-platform-tests/streams/idlharness.any.serviceworker-expected.txt:
  • web-platform-tests/streams/idlharness.any.worker-expected.txt:
  • web-platform-tests/url/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/url/idlharness-shadowrealm.window.html: Added.
  • web-platform-tests/url/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/user-timing/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/user-timing/idlharness-shadowrealm.window.html: Added.
  • web-platform-tests/user-timing/idlharness-shadowrealm.window.js: Added.

Source/WebCore:

Mark a handful of web APIs as Exposed=*, making them visible in shadow
realm contexts. The existence of these APIs is checked by new idlharness-shadowrealm
tests in WPT, which have been imported.

Safety: I looked at the implementation of the interfaces that are exposed here and
some of them interact with the scriptExecutionContext() of the calling global scope--
since shadow realms pass that context through unchanged, nothing should go dramatically wrong.

I'm planning on adding more comprehensive testing in WPT shortly.

There's one bug currently which is that AbortSignal.timeout is exposed
on shadow realms but shouldn't be. It will only be exposed when the
incubating realm is a worker or window, which is good since it should still
work there, but it's just not supported in the spec; I'll submit a patch after
this to fix; the problem is that the script execution context in a shadow realm
does not return true for isShadowRealmGlobalScope

Also required adjustment to CodeGeneratorJS.pm since it refused to
generate a runtime check when a member is exposed less than the interface it
appears on *and* in more than one scope.

Tests: imported/w3c/web-platform-tests/encoding/idlharness-shadowrealm.window.html

imported/w3c/web-platform-tests/hr-time/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/html/dom/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/streams/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/url/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window.html

  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/ReadableByteStreamController.idl:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStreamBYOBReader.idl:
  • Modules/streams/ReadableStreamBYOBRequest.idl:
  • Modules/streams/ReadableStreamDefaultController.idl:
  • Modules/streams/ReadableStreamDefaultReader.idl:
  • Modules/streams/TransformStream.idl:
  • Modules/streams/TransformStreamDefaultController.idl:
  • Modules/streams/WritableStream.idl:
  • Modules/streams/WritableStreamDefaultController.idl:
  • Modules/streams/WritableStreamDefaultWriter.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(IsAlwaysExposedOnInterface):
(GenerateRuntimeEnableConditionalStringForExposeScope):
(GenerateRuntimeEnableConditionalStringForExposed):

  • bindings/scripts/preprocess-idls.pl: Add SharedWorker to list for Exposed=*
  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp: Fixed after adding SharedWorker to the list for Exposed=*

(WebCore::jsSharedWorkerGlobalScope_ExposedStarConstructorGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • bindings/scripts/test/SharedWorkerGlobalScopeConstructors.idl: Fixed after adding SharedWorker to the list for Exposed=*
  • dom/AbortController.idl:
  • dom/AbortSignal.idl:
  • dom/CustomEvent.idl:
  • dom/ErrorEvent.idl:
  • dom/Event.idl:
  • dom/EventTarget.idl:
  • dom/PromiseRejectionEvent.idl:
  • dom/TextDecoder.idl:
  • dom/TextDecoderStream.idl:
  • dom/TextEncoder.idl:
  • dom/TextEncoderStream.idl:
  • html/DOMURL.idl:
  • html/URLSearchParams.idl:
  • page/Performance.idl:
  • page/PerformanceEntry.idl:
  • page/PerformanceMark.idl:
  • page/PerformanceMeasure.idl:
  • page/PerformanceObserver.idl:
  • page/PerformanceObserverEntryList.idl:
  • page/PerformanceResourceTiming.idl:
  • page/PerformanceServerTiming.idl:
9:18 AM Changeset in webkit [291294] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GStreamer] Unreviewed, tentative clang build fix after 248419@main
https://bugs.webkit.org/show_bug.cgi?id=237897

Adds static_cast to avoid "non-const-expression cannot be narrowed"
error.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

9:13 AM Changeset in webkit [291293] by Antti Koivisto
  • 30 edits
    2 adds in trunk/LayoutTests/imported/w3c

[CSS Container Queries] Some more WPT updates
https://bugs.webkit.org/show_bug.cgi?id=237890

Reviewed by Antoine Quint.

  • web-platform-tests/css/css-contain/container-queries/canvas-as-container-005.html:
  • web-platform-tests/css/css-contain/container-queries/canvas-as-container-006.html:
  • web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc.html:
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-computed.html:
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-animation.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-basic.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-computational-independence.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-invalidation.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-selection.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-small-viewport-fallback.html:
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-units-typed-om.html:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none.html:
  • web-platform-tests/css/css-contain/container-queries/fragmented-container-001.html:
  • web-platform-tests/css/css-contain/container-queries/multicol-container-001.html:
  • web-platform-tests/css/css-contain/container-queries/sibling-layout-dependency-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/sibling-layout-dependency.html: Added.
  • web-platform-tests/css/css-contain/container-queries/svg-foreignobject-no-size-container.html:
  • web-platform-tests/css/css-contain/container-queries/svg-root-size-container.html:
  • web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display.html:
  • web-platform-tests/css/css-contain/container-queries/w3c-import.log:
  • web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal.html:
8:38 AM Changeset in webkit [291292] by Jonathan Bedard
  • 4 edits in trunk/Tools

[Merge-Queue] Fail draft PRs
https://bugs.webkit.org/show_bug.cgi?id=237859
<rdar://problem/90277316>

Reviewed by Aakash Jain.

We should never merge a draft pull request.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Verify that provided change is not a draft.

  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin._is_pr_draft): Check if pr_json indicates a draft PR.
(ValidateChange.init): Accept verifyNoDraft flag.
(ValidateChange.start):
(ValidateChange.fail_build):
(ValidateChange.validate_github): Fail the build if the provided PR is a draft.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

8:26 AM Changeset in webkit [291291] by Matteo Flores
  • 2 edits in trunk/LayoutTests

A combination of scrolling and a content change can leave a fixed layer in the wrong place
https://bugs.webkit.org/show_bug.cgi?id=203112

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:23 AM Changeset in webkit [291290] by eocanha@igalia.com
  • 8 edits in trunk/Source/WebCore

[GStreamer] clarify playback errors with MediaError.message
https://bugs.webkit.org/show_bug.cgi?id=237602

Reviewed by Philippe Normand.

This patch is co-authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797

  • html/HTMLMediaElement.cpp: Use internal last error message from the player, if available.
  • platform/graphics/MediaPlayer.cpp: Cache the last error message from the player private and update it when NetworkState changes to an error state. This allows the player private to be regenerated (as it has always been) while providing access to the former player private error after that.
  • platform/graphics/MediaPlayer.h: Added lastErrorMessage() method to get the last internal error message from the player private.
  • platform/graphics/MediaPlayerPrivate.h: Default lastErrorMessage() empty implementation.
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Detect decryption and no-key errors.
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added errorMessage() to expose the internal error message.
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: Post multiple kind of errors to the GstBus to notify upper layers instead of just logging them.
8:02 AM Changeset in webkit [291289] by Matteo Flores
  • 2 edits in trunk/LayoutTests

Implement ElementInternals
https://bugs.webkit.org/show_bug.cgi?id=197960

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
7:49 AM Changeset in webkit [291288] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[GPU Process] Test failures in writing modes
https://bugs.webkit.org/show_bug.cgi?id=236921

Unreviewed test gardening.

  • gpu-process/TestExpectations:
7:25 AM Changeset in webkit [291287] by Wenson Hsieh
  • 5 edits in trunk/Source

[macOS] Tooltip no longer disappears after leaving hovered element
https://bugs.webkit.org/show_bug.cgi?id=237815
rdar://90187247

Reviewed by Tim Horton.

Source/WebKit:

On certain versions of macOS, AppKit's tooltip management system installs tracking areas (NSTrackingArea) using
-addTrackingArea: instead of tracking rects. This breaks our existing mechanism for keeping track of the
current tracking rect owner by overriding -addTrackingRect:owner:userData:assumeInside: (which assumes that
the only client that adds tracking rects is the tooltip manager). Since -addTrackingRect: isn't called,
m_trackingRectOwner remains nil, which causes both sendToolTipMouseExited() and sendToolTipMouseEntered()
to be no-ops.

To fix this, in the case where m_trackingRectOwner is nil, we instead fall back on -[WKWebView trackingAreas]
and look for an NSTrackingArea that's owned by AppKit's NSToolTipManager. We then send fake mouse enter/exit
events to this owner, the same way as we currently do.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::addTrackingRect):
(WebKit::WebViewImpl::addTrackingRectWithTrackingNum):
(WebKit::WebViewImpl::addTrackingRectsWithTrackingNums):
(WebKit::WebViewImpl::toolTipTrackingAreaOwner const):
(WebKit::WebViewImpl::sendToolTipMouseExited):
(WebKit::WebViewImpl::sendToolTipMouseEntered):

Source/WebKitLegacy/mac:

Apply the same fix to legacy WebKit; see WebKit/ChangeLog for more information.

  • WebView/WebHTMLView.mm:

Also wrap the owner in a WeakObjCPtr to avoid the possibility of calling methods on deallocated instances.

(-[WebHTMLView _toolTipOwnerForSendingMouseEvents]):
(-[WebHTMLView _sendToolTipMouseExited]):
(-[WebHTMLView _sendToolTipMouseEntered]):

7:16 AM Changeset in webkit [291286] by Antti Koivisto
  • 9 edits in trunk

CSSConditionRule.conditionText should be readonly
https://bugs.webkit.org/show_bug.cgi?id=237880

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/interfaces/css-conditional.idl:

Source/WebCore:

Per CSSWG resolution https://github.com/w3c/csswg-drafts/issues/6819#issuecomment-1016695585

This also matches Blink.

  • css/CSSConditionRule.h:
  • css/CSSConditionRule.idl:
  • css/CSSMediaRule.cpp:

(WebCore::CSSMediaRule::setConditionText): Deleted.

  • css/CSSMediaRule.h:
  • css/CSSSupportsRule.cpp:

(WebCore::CSSSupportsRule::setConditionText): Deleted.

  • css/CSSSupportsRule.h:
6:57 AM Changeset in webkit [291285] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS release wk2 ] compositing/debug-borders-dynamic.html is a flaky image failure
https://github.com/Smackteo

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:21 AM Changeset in webkit [291284] by youenn@apple.com
  • 7 edits in trunk

Mark permission as denied if system forbids access to camera and/or microphone
https://bugs.webkit.org/show_bug.cgi?id=237823

Reviewed by Eric Carlson.

Source/WebKit:

If application has not set the camera/microphone usage string, we do not need to call ther permission delegate.
Ditto if TCC prompt is denied. Instead, we can return deny if possible or prompt otherwise.
Covered by API test.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/WebPageProxy.cpp:

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
  • TestWebKitAPI/Tests/WebKit/getUserMediaPermission.html:
5:40 AM Changeset in webkit [291283] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][MSE] add ac-3,ec-3 and flac codecs gst caps
https://bugs.webkit.org/show_bug.cgi?id=237843

Reviewed by Philippe Normand.

AC-3, EC-3 and FLAC formats should be supported on MSE and EME on those
platforms having the appropriate decoders for them.

This patch adds the appropriate mime types, factories and caps to the
set of codecs whose local support will be tested on MSE.

This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/804

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp: Add support for the codecs, factories and caps.
  • platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp: Add support for the caps.
4:40 AM Changeset in webkit [291282] by graouts@webkit.org
  • 5 edits
    4 adds in trunk

Dialog element only animates once
https://bugs.webkit.org/show_bug.cgi?id=236274

Reviewed by Dean Jackson, Tim Nguyen and Antti Koivisto.

LayoutTests/imported/w3c:

Import relevant WPT tests that had already been upstreamed in a previous, reverted
version of this patch.

  • web-platform-tests/css/css-animations/dialog-animation-expected.txt: Added.
  • web-platform-tests/css/css-animations/dialog-animation.html: Added.
  • web-platform-tests/css/css-animations/dialog-backdrop-animation-expected.txt: Added.
  • web-platform-tests/css/css-animations/dialog-backdrop-animation.html: Added.
  • web-platform-tests/css/css-animations/support/testcommon.js:

(addElement):
(addDiv):

Source/WebCore:

Two issues related to CSS Animation surfaced in this bug which animates both <dialog>
and its ::backdrop as the dialog is open and eventually re-opened.

The first issue was that we didn't clear all CSS Animations state when a <dialog> was
closed and its style was set to display: none. We now call setAnimationsCreatedByMarkup
to correctly clear such state both when we identify a Styleable is newly getting
display: none. We do the same when cancelDeclarativeAnimations() is called, but also
call setCSSAnimationList() on the associated effect stack since that wasn't done either.
Now both functions do similar cleanup.

This allows us to remove removeCSSAnimationCreatedByMarkup() which did a fair bit of work
to clear CSS Animation state per-animation when we only ever used that function for
_all_ animations.

The second issue was that we never called cancelDeclarativeAnimations() for ::backdrop.
We now do that inside of Element::removeFromTopLayer() at a point where the code in
Styleable::fromRenderer() will still work as the element will still be contained in
Document::topLayerElements().

Tests: imported/w3c/web-platform-tests/css/css-animations/dialog-animation.html

imported/w3c/web-platform-tests/css/css-animations/dialog-backdrop-animation.html

  • dom/Element.cpp:

(WebCore::Element::removeFromTopLayer):

  • style/Styleable.cpp:

(WebCore::Styleable::cancelDeclarativeAnimations const):
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::removeCSSAnimationCreatedByMarkup): Deleted.

4:01 AM Changeset in webkit [291281] by gnavamarino@apple.com
  • 3 edits
    2 adds in trunk

Crash in KeyframeList.cpp:183 in WebCore::KeyframeList::fillImplicitKeyframes
https://bugs.webkit.org/show_bug.cgi?id=237858

Reviewed by Antoine Quint.

Source/WebCore:

When filling implicit key frames, we iterate through the current keyframes (m_keyframes),
and cache the address of the implicitZeroKeyframe and implicitOneKeyframe.

However, if we're not provided with an existing implicit zero keyframe, we will create a new one
and insert it to the list of current keyframes.

This mutates m_keyframes and the old address for the implicitOneKeyframe would no longer be valid.
Thus we should iterate through the current keyframes, after the insertion, to get the latest address.

Test: animations/fill-implicit-keyframes-crash.html

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::fillImplicitKeyframes):

LayoutTests:

  • animations/fill-implicit-keyframes-crash-expected.txt: Added.
  • animations/fill-implicit-keyframes-crash.html: Added.
3:50 AM Changeset in webkit [291280] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.36/Tools

Merge r290982 - [GTK][WPE] Do not add new modules under ThirdParty to the tarball
https://bugs.webkit.org/show_bug.cgi?id=237519

Reviewed by Michael Catanzaro.

We currently include ThirdParty and exclude individually what we don't want in the tarball. That means every
time something new is added to ThirdParty we have to manually exclude it. It's better to exclude ThirdParty and
manually add what we need instead.

  • gtk/manifest.txt.in:
  • wpe/manifest.txt.in:
3:00 AM Changeset in webkit [291279] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.36

Merge r291111 - REGRESSION(r284711): [GStreamer] Buffering, seek broken on youtube.com
https://bugs.webkit.org/show_bug.cgi?id=233861

Unreviewed, manual revert of 284711.

Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-10

Source/WebCore:

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::currentTimeFudgeFactor):

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::timeFudgeFactor const):

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::toGstClockTime):

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::bufferTimeToStreamTime): Deleted.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
2:53 AM WebKitGTK/2.36.x edited by Carlos Garcia Campos
(diff)
2:35 AM Changeset in webkit [291278] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290890 - [GTK] generate-automation-atom.py breaks reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=237506

Reviewed by Carlos Garcia Campos.

  • Scripts/generate-automation-atom.py:

(append_functions): Sort utility functions to produce stable output.

2:35 AM Changeset in webkit [291277] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore

Merge r290883 - makeprop.pl breaks reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=237521

Reviewed by Carlos Garcia Campos.

  • css/makeprop.pl: Sort hash elements so the output file is always

the same across different builds.

2:35 AM Changeset in webkit [291276] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.36/Source

Merge r290681 - Misc compiler warnings, late Feb 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=237275

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-03-01
Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Suppress suspected false-positive -Wstringop-overflow and -Wformat-overflow warnings. Also,
remove an unused variable.

  • API/tests/MultithreadedMultiVMExecutionTest.cpp:

(startMultithreadedMultiVMExecutionTest):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):

  • yarr/YarrJIT.cpp:

Source/WebCore:

Remove a redundant move. Sprinkle RELEASE_ASSERT_NOT_REACHED() as required to avoid
-Wreturn-type warnings.

  • Modules/push-api/PushDatabase.cpp:

(WebCore::openAndMigrateDatabaseImpl):

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluateCondition const):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

  • style/ContainerQueryEvaluator.h:

(WebCore::Style::operator!):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::updateQueryContainerState):

Source/WebKit:

Delete an unused function. Remove a redundant move.

  • Shared/AuxiliaryProcess.cpp:

(WebKit::applySandboxProfileForDaemon): Deleted.

  • Shared/WebFoundTextRange.cpp:

(WebKit::WebFoundTextRange::decode):

2:05 AM Changeset in webkit [291275] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36

Merge r290597 - -Wodr warning spam caused by ENABLE(BINDING_INTEGRITY)
https://bugs.webkit.org/show_bug.cgi?id=229867
<rdar://problem/82975115>

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-02-28
Reviewed by Carlos Garcia Campos.

Build WebKit with -Wno-odr. This warning is not salvagable, and it's impossible to suppress
locally.

  • Source/cmake/WebKitCompilerFlags.cmake:

2022-02-24 Matt Woodrow <Matt Woodrow>

Unreviewed, update my (Matt Woodrow) status to committer.

  • metadata/contributors.json:
2:04 AM Changeset in webkit [291274] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.36

Merge r290724 - REGRESSION(r216096): [GTK] Test accessibility/gtk/menu-list-unfocused-notifications.html is failing since r216096
https://bugs.webkit.org/show_bug.cgi?id=171598

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Enable accessibility when a WTR observer is added.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::addNotificationObserver):

LayoutTests:

Since r216096 the notification for menu list changes is deffered, so we need to wait one run loop cycle to get
the notifications. Also update the test to ignore notifications that are not interesting like AXLoadComplete and
AXElementBusyChanged, and update expectations for the new behavior with ATSPI where the notification is emitted
on the menu and not the combo.

  • accessibility/gtk/menu-list-unfocused-notifications-expected.txt:
  • accessibility/gtk/menu-list-unfocused-notifications.html:
  • platform/gtk/TestExpectations:
2:04 AM Changeset in webkit [291273] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.36/LayoutTests

Merge r290723 - [ATSPI] Test accessibility/select-element-at-index.html is failing
https://bugs.webkit.org/show_bug.cgi?id=237315

Reviewed by Adrian Perez de Castro.

This is because the test contains platform specific behavior for ATK that was migrated to ATSPI by mistake. We
should behave like all other ports now.

  • accessibility/select-element-at-index.html:
  • platform/glib/TestExpectations:
2:04 AM Changeset in webkit [291272] by Carlos Garcia Campos
  • 10 edits
    4 deletes in releases/WebKitGTK/webkit-2.36

Merge r290633 - [ATSPI] Remove layout tests checking children added/removed notifications
https://bugs.webkit.org/show_bug.cgi?id=237272

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Do not send children-changed notifications to WTR observers.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::notifyChildrenChanged const): Deleted.

  • accessibility/atspi/AccessibilityAtspi.h:

LayoutTests:

Children changed notifications are not expected by any other tests because other ports don't support them. We
already have unit tests to ensure they work as expected so we can just remove the layout tests and ensure we
don't emit those notifications either.

  • accessibility/children-changed-sends-notification-expected.txt: Removed.
  • accessibility/children-changed-sends-notification.html: Removed.
  • accessibility/gtk/menu-list-unfocused-notifications-expected.txt:
  • accessibility/gtk/no-notification-for-unrendered-iframe-children-expected.txt: Removed.
  • accessibility/gtk/no-notification-for-unrendered-iframe-children.html: Removed.
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
2:04 AM Changeset in webkit [291271] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.36

Merge r290502 - AX: List item marker not exposed when not a direct child of a list item
https://bugs.webkit.org/show_bug.cgi?id=236777
<rdar://problem/89082485>

Reviewed by Adrian Perez de Castro.

Source/WebCore:

It can happen that the marker is not a direct child of a list item, in which case the marker is ignored and not
exposed to ATs.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObjectUnignored const): In case of list marker find the marker list item.
(WebCore::AccessibilityRenderObject::markerRenderer const): Helper to return the list item marker renderer.
(WebCore::AccessibilityRenderObject::addListItemMarker): Add always the list item marker as the first child of
list items.
(WebCore::AccessibilityRenderObject::addChildren): Do not add list item marker children, they will be added to
the right parent in addListItemMarker().

  • accessibility/AccessibilityRenderObject.h:

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::roleValueToString): Return AXStatic for Text role too.

LayoutTests:

Update test results.

  • accessibility/gtk/list-items-always-exposed-expected.txt:
  • accessibility/gtk/list-items-always-exposed.html:
  • accessibility/gtk/spans-expected.txt:
  • accessibility/gtk/spans.html:
  • platform/gtk/TestExpectations:
1:55 AM Changeset in webkit [291270] by commit-queue@webkit.org
  • 10 edits
    7 adds in trunk/Source/WebCore

[GTK][WPE] Provide DMABuf-based composition layers, DMABufVideoSink integration
https://bugs.webkit.org/show_bug.cgi?id=237328

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-15
Reviewed by Alejandro G. Castro.

Introduce TextureMapperPlatformLayerProxyDMABuf, a TextureMapper proxy
implementation that handles platform layers backed by dmabuf objects.
This will be used to handle display of dmabuf producers like GStreamer
pipelines or ANGLE-backed WebGL contexts. The DMABufLayer class is the
platform layer object, handling display of the actual dmabuf. The proxy
itself is tasked with creating and caching such layers for any dmabuf
object that originates from the producer.

For each dmabuf object pushed into the proxy, the according DMABufLayer
object is spawned and cached for future reuse, expecting the producer
to be able to provide dmabufs from a pool or swapchain of these objects.
The cache is emptied whenever dmabufs go unused for a certain amount of
swaps, or if the size of the provided dmabufs changes.

DMABufFormat provides information for different DRM formats, for
instance how different planes for specific formats are formatted and
sized.

DMABufObject is a class that handles a given grouping of dmabufs
according to the specified format. It has an associated handle value,
size, and per-plane dmabuf file descriptors, offsets, strides and
modifiers, along with a DMABufReleaseFlag instance.

DMABufReleaseFlag objects are used as an eventfd-based release mechanism
that indicates to the producer that the given DMABufObject has been
presented and subsequently released and is thus available for reuse.

GBMBufferSwapchain provides a custom swapchain implementation that's
based on libgbm functionality. Each such swapchain has a capacity
specified during construction, with the capacities of four or eight
currently supported. getBuffer() is called by the producer to obtain a
buffer object that's then used for backing of specific content like
ANGLE execution or media's software-decoded video frames. Buffers
obtained this way are moved over to the end of the buffer array, with
the expectation of reusing them once they are released by the
composition engine.

MediaPlayerPrivateGStreamer implementation is enhanced to use the
recently-added WebKitDMABufVideoSink element if its use is enabled
through the development-purpose environment variable and if the
necessary GStreamer facilities are present on the system. When these
conditions are met, the Nicosia::ContentLayer instance is also
constructed with a TextureMapperPlatformLayerProxyDMABuf instance, since
we expect to present the dmabufs through that functionality.

With the WebKitDMABufVideoSink, the incoming samples are either based
on dmabufs (in case of dmabuf-capable hardware decoder) or are just raw
data (most likely coming from a software-based decoder). In case of
dmabufs we can use the GstMemory pointer as the handle through which
the relevant data is cached in TextureMapperPlatformLayerProxyDMABuf,
and upon the first occurrence we retrieve all the relevant dmabuf data
so that it can be used by that proxy implementation to construct a
renderable EGLImage.

In case of software-decoded raw data, we have to use the swapchain
object and copy the data on a per-plane basis for each such sample,
finally pushing the dmabuf data of that swapchain buffer into the
TextureMapperPlatformLayerProxyDMABuf instance.

  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/TextureMapper.cmake:
  • platform/graphics/gbm/DMABufFormat.h: Added.

(WebCore::DMABufFormatImpl::createFourCC):
(WebCore::DMABufFormat::planeWidth const):
(WebCore::DMABufFormat::planeHeight const):
(WebCore::DMABufFormat::Plane::Plane):
(WebCore::DMABufFormatImpl::createSinglePlaneRGBA):
(WebCore::DMABufFormatImpl::definePlane):
(WebCore::DMABufFormat::instantiate):
(WebCore::DMABufFormat::create):

  • platform/graphics/gbm/DMABufObject.h: Added.

(WebCore::DMABufObject::DMABufObject):
(WebCore::DMABufObject::~DMABufObject):
(WebCore::DMABufObject::operator=):

  • platform/graphics/gbm/DMABufReleaseFlag.h: Added.

(WebCore::DMABufReleaseFlag::DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::~DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::operator=):
(WebCore::DMABufReleaseFlag::dup const):
(WebCore::DMABufReleaseFlag::released const):
(WebCore::DMABufReleaseFlag::release):

  • platform/graphics/gbm/GBMBufferSwapchain.cpp: Added.

(WebCore::GBMBufferSwapchain::GBMBufferSwapchain):
(WebCore::GBMBufferSwapchain::getBuffer):
(WebCore::GBMBufferSwapchain::Buffer::Buffer):
(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):
(WebCore::GBMBufferSwapchain::Buffer::PlaneData::~PlaneData):

  • platform/graphics/gbm/GBMBufferSwapchain.h: Added.

(WebCore::GBMBufferSwapchain::Buffer::handle const):
(WebCore::GBMBufferSwapchain::Buffer::numPlanes const):
(WebCore::GBMBufferSwapchain::Buffer::planeData const):

  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:

(webKitDMABufVideoSinkIsEnabled):
(webKitDMABufVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::platformLayer const):
(WebCore::fourccValue):
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkDMABuf):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:

(Nicosia::ContentLayerTextureMapperImpl::createFactory):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: Added.

(WebCore::createImageKHR):
(WebCore::destroyImageKHR):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::EGLImageData::~EGLImageData):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::invalidate):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::swapBuffer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::pushDMABuf):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::DMABufLayer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::paintToTextureMapper):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h: Added.
12:52 AM Changeset in webkit [291269] by youenn@apple.com
  • 45 edits
    1 move in trunk/Source

Rename VideoSampleMetadata to VideoFrameTimeMetadata
https://bugs.webkit.org/show_bug.cgi?id=237593

Reviewed by Eric Carlson.

Source/WebCore:

We are going to rename videoSampleAvailable to videoFrameAvailable and move from passing MediaSample to VideoFrame.
We rename VideoSampleMetadata to VideoFrameTimeMetadata for consistency.
No change of behavior.

  • Headers.cmake:
  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::captureCanvas):

  • WebCore.xcodeproj/project.pbxproj:
  • platform/VideoFrameTimeMetadata.h: Renamed from Source/WebCore/platform/VideoSampleMetadata.h.

(WebCore::VideoFrameTimeMetadata::encode const):
(WebCore::VideoFrameTimeMetadata::decode):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
(WebCore::MediaSampleGStreamer::createImageSample):

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:

(WebCore::MediaSampleGStreamer::create):
(WebCore::MediaSampleGStreamer::createImageSample):

  • platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp:

(webkitGstBufferSetVideoFrameTimeMetadata):
(webkitGstBufferSetVideoSampleMetadata): Deleted.

  • platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/MediaRecorderPrivateGStreamer.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::videoSampleAvailable):

  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::metadataFromVideoFrame):

  • platform/mediastream/RealtimeIncomingVideoSource.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::videoSampleAvailable):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::dispatchMediaSampleToObservers):

  • platform/mediastream/RealtimeVideoCaptureSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::videoSampleAvailable):

  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::emitFrame):

  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:

(WebCore::GStreamerCapturer::createSource):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::videoSampleAvailable):
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):

  • platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

(WebCore::RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
  • testing/Internals.cpp:

(WebCore::Internals::videoSampleAvailable):

  • testing/Internals.h:

Source/WebKit:

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::videoSampleAvailable):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::videoFrameAvailable):
(WebKit::RemoteCaptureSampleManager::videoFrameAvailableCV):
(WebKit::RemoteCaptureSampleManager::RemoteVideo::videoFrameAvailable):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::videoSampleAvailable):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:
12:28 AM Changeset in webkit [291268] by youenn@apple.com
  • 7 edits
    2 adds in trunk

Make sure to end any pending AudioSession interruption when activating it
https://bugs.webkit.org/show_bug.cgi?id=237654
<rdar://88405081>

Reviewed by Eric Carlson.

Source/WebCore:

In some cases, we receive audio session interruptions without receiving any end of interruption notification.
In those cases, if we reactivate the audio session, we should end this pending interruption so that our WebCore code
gets its expected end of interruption message. This for instance allows to get back regular autoplay behavior.

Test: platform/ios/mediastream/getUserMedia-override-audio-session-interruption.html

  • platform/audio/AudioSession.cpp:
  • platform/audio/AudioSession.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • platform/ios/mediastream/getUserMedia-override-audio-session-interruption-expected.txt: Added.
  • platform/ios/mediastream/getUserMedia-override-audio-session-interruption.html: Added.
12:19 AM Changeset in webkit [291267] by youenn@apple.com
  • 6 edits in trunk

AudioContext stops playing when minimizing or moving the macOS Safari window to the background.
https://bugs.webkit.org/show_bug.cgi?id=231105
<rdar://problem/83889697>

Reviewed by Eric Carlson.

Source/WebCore:

AudioContext was stopped when minimizing windows if not playing audio as a way to reduce CPU usage.
But this is visible to users (if AudioContext produces audio through a track) or to web pages (use of audio worklet or script processor node).
Remove that code.
Small refactoring to remove isOfflineContext checks that can only be false in AudioContext.

Covered by existing tests.

  • Modules/webaudio/AudioContext.cpp:
  • Modules/webaudio/AudioContext.h:

LayoutTests:

Use internals API to be working on iOS as well (this does not trigger enterBackground code path).

  • webaudio/silent-audio-interrupted-in-background-expected.txt:
  • webaudio/silent-audio-interrupted-in-background.html:

Mar 14, 2022:

9:16 PM Changeset in webkit [291266] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed, gardening crash and timeout
https://bugs.webkit.org/show_bug.cgi?id=237873

  • platform/glib/TestExpectations:
7:28 PM Changeset in webkit [291265] by Russell Epstein
  • 2 edits in branches/safari-614.1.5.9-branch/Source/WebKit

Cherry-pick r290797. rdar://problem/79198381

WKContentView should explicitly request the system pointer in the fallback case
https://bugs.webkit.org/show_bug.cgi?id=237410
<rdar://79198381>

Reviewed by Anders Carlsson.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView pointerRegionForPositionInformation:point:]): (-[WKContentView pointerInteraction:styleForRegion:]): Instead of assuming a nil region and nil style will provide the system pointer, provide a region the size of the WKContentView and explicitly request the system pointer shape.

Also, drive-by adopt the API systemPointerStyle instead of the
deprecated SPI version.

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

7:13 PM Changeset in webkit [291264] by Russell Epstein
  • 9 edits in branches/safari-614.1.5.9-branch/Source

Versioning.

WebKit-7614.1.5.9.1

7:00 PM Changeset in webkit [291263] by Russell Epstein
  • 1 copy in branches/safari-614.1.5.9-branch

New branch.

6:56 PM Changeset in webkit [291262] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] 8X imported/w3c/web-platform-tests/pointerevents/pointere vent (layout-tests) are flaky text failures (236128)
https://bugs.webkit.org/show_bug.cgi?id=236128

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Disabling test that is believed to cause the others to fail as a test.
6:55 PM Changeset in webkit [291261] by Wenson Hsieh
  • 4 edits in trunk

[Mail compose] Allow copied resources with remote (HTTP/HTTPS) URLs to be pasted as attachments
https://bugs.webkit.org/show_bug.cgi?id=237810
rdar://90119983

Reviewed by Devin Rousso.

Source/WebCore:

When creating attachments by pasting subresources with remote URLs, Mail compose in shipping macOS inserts such
subresources as attachments, which are sent as MIME parts alongside the rest of the Mail message. However, when
using the WebKit2 client-side attachment API, we currently leave remote (i.e. HTTP-family) URLs as-is, which
means they don't end up being sent as attachments.

I implemented this current behavior in r226340; back then, we opted to preserve the HTTP/HTTPS URL in pasted
resources over falling back to blob URL conversion. However, in order to match legacy Mail compose behavior, we
should've handled it by propagating the data as attachments to the client layer instead.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::shouldReplaceSubresourceURL):

Tools:

Add an API test to exercise copying remote images and pasting as attachment-backed images. This API test first
loads a web page (simulating page load via HTTPS, along with multiple image subresources); it then pastes into
an attachment-enabled WKWebView-based editor and verifies that the _WKAttachment UI delegate hooks are invoked
with attachments corresponding to each of the remote images.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

6:48 PM Changeset in webkit [291260] by Oriol Brufau
  • 6 edits
    1 copy
    1 add in trunk

[css-cascade] Fix 'revert' on low-priority properties
https://bugs.webkit.org/show_bug.cgi?id=236272

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Add one test and expect an existing one to pass.

  • web-platform-tests/css/css-cascade/all-prop-revert-layer-noop-expected.txt:
  • web-platform-tests/css/css-cascade/all-prop-revert-noop-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-noop-expected.txt.
  • web-platform-tests/css/css-cascade/all-prop-revert-noop.html: Added.

Source/WebCore:

Some CSS properties are low-priority (a.k.a deferred or applied in parse
order). The logic for the 'revert' keyword was not taking these into
account, so it just behaved as 'unset'.
That made elements like <del>, <ins>, <s> and <u> lose the line-through
or underline thet they get in UA origin, when styled with 'all: revert'
or 'text-decoration: revert'.

This patch takes these properties into account so that 'revert' works.

Tests: imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-noop.html

imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-noop.html

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::setDeferred):

  • style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::hasDeferredProperty const):
(WebCore::Style::PropertyCascade::deferredProperty const):

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyProperty):

6:40 PM Changeset in webkit [291259] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Use sRGB colorspace in ScreenCaptureKitCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=237855
<rdar://problem/90273792>

Reviewed by Jer Noble.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:

(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration): Configure
ScreenCaptureKit to capture in kCGColorSpaceSRGB.

5:45 PM Changeset in webkit [291258] by Robert Jenner
  • 3 edits in trunk/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
<rdar://86037417>

Uneviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
5:42 PM Changeset in webkit [291257] by Oriol Brufau
  • 15 edits in trunk/Source/WebCore

Rename RenderStyle::textDecoration() to RenderStyle::textDecorationLine()
https://bugs.webkit.org/show_bug.cgi?id=237400

Reviewed by Darin Adler.

Before https://webkit.org/b/237175, the text-decoration-line and
text-decoration properties were 2 longhands that shared a computed
value, accessed via RenderStyle::textDecoration().

But now text-decoration is a proper shorthand of text-decoration-line.
So it doesn't make much sense to continue accessing the line via
textDecoration(), it should be textDecorationLine() instead.

Same for RenderStyle::setTextDecoration(), etc.

No tests since it's just a rename, no change in behavior.

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textAttributes const):

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • rendering/TextDecorationPainter.cpp:

(WebCore::collectStylesForRenderer):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::changeAffectsVisualOverflow const):
(WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::textDecorationsInEffect const):
(WebCore::RenderStyle::textDecorationLine const):
(WebCore::RenderStyle::addToTextDecorationsInEffect):
(WebCore::RenderStyle::setTextDecorationsInEffect):
(WebCore::RenderStyle::setTextDecorationLine):
(WebCore::RenderStyle::initialTextDecorationLine):
(WebCore::RenderStyle::InheritedFlags::operator== const):
(WebCore::RenderStyle::textDecoration const): Deleted.
(WebCore::RenderStyle::setTextDecoration): Deleted.
(WebCore::RenderStyle::initialTextDecoration): Deleted.

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleVisualData.cpp:

(WebCore::StyleVisualData::StyleVisualData):

  • rendering/style/StyleVisualData.h:

(WebCore::StyleVisualData::operator== const):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::findRendererDefininingTextDecoration):

  • style/InlineTextBoxStyle.cpp:

(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):
(WebCore::enclosingRendererWithTextDecoration):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTextDecorationLine):
(WebCore::Style::BuilderConverter::convertTextDecoration): Deleted.

5:17 PM Changeset in webkit [291256] by gnavamarino@apple.com
  • 2 edits in trunk

Add myself (Gabriel Nava Marino) to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237634

Unreviewed.

  • metadata/contributors.json:
3:39 PM Changeset in webkit [291255] by mark.lam@apple.com
  • 4 edits
    1 add in trunk/Source/WTF

Enhance StackCheck debugging support and bump up the ASAN reserved zone size.
https://bugs.webkit.org/show_bug.cgi?id=237805

Reviewed by Robin Morisset.

  1. Apply the ASAN multiplier to StackBound::DefaultReservedZone instead of just in the StackCheck class. This ensures that all stack checks using this default value gets the necessary bump for ASAN as well.

Also bump the ASAN multipler from 2 to 3. We have evidence that an ASAN Debug
build inflates stack usage more than 2x over a non-ASAN Debug build.

  1. Enhance the StackCheck class to dump some debugging information when VERIFY_STACK_CHECK_RESERVED_ZONE_SIZE is enabled.
  • WTF.xcodeproj/project.pbxproj:
  • wtf/StackBounds.h:
  • wtf/StackCheck.cpp: Added.

(WTF::StackCheck::Scope::reportVerificationFailureAndCrash):

  • wtf/StackCheck.h:

(WTF::StackCheck::Scope::Scope):
(WTF::StackCheck::Scope::~Scope):
(WTF::StackCheck::StackCheck):

3:13 PM Changeset in webkit [291254] by Stephanie Lewis
  • 3 copies
    2 adds in trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans

Update Speedometer plan files.
rdar://89648567 (Use Speedometer 2.1 on perf bots)

Reviewed by NOBODY (OOPS!).

Create speedometer plan files for each version of speedometer.
Symlink shortcuts speedometer and speedometer2 to point at speedometer2.1

  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer1.0.plan: Copied from Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan.
  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.0.plan: Copied from Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan.
  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.1.plan: Copied from Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan.

T Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: T Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan

3:02 PM Changeset in webkit [291253] by Wenson Hsieh
  • 6 edits
    1 add in trunk

[Mail Compose] Spelling and grammar context menu items need custom identifiers
https://bugs.webkit.org/show_bug.cgi?id=237804
rdar://90124049

Reviewed by Aditya Keerthi.

Source/WebKit:

Introduce several new context menu item identifier strings that correspond to the default spelling and grammar
menu items that appear when showing the context menu for editable content, such that Mail can replace or
customize behaviors around these items in compose, via WKUIDelegate.

Test: ContextMenuTests.ProposedMenuContainsSpellingMenu

  • UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):

Tools:

Add a new API test to exercise the new identifiers.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/ContextMenuTests.mm: Added.

(-[NSMenu itemWithIdentifier:]):
(TestWebKitAPI::TEST):

2:59 PM Changeset in webkit [291252] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Clean up PR branches and remotes
https://bugs.webkit.org/show_bug.cgi?id=237714
<rdar://problem/88771970>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(ShellMixin.shell_command): Use sh on Windows.
(CleanGitRepo.run): Delete all non-origin remote and all unused branches.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

2:14 PM Changeset in webkit [291251] by Elliott Williams
  • 2 edits in trunk/Source/bmalloc

bmalloc.xcodeproj: Remove duplicate file reference
https://bugs.webkit.org/show_bug.cgi?id=237845

Reviewed by Simon Fraser.

pas_thread_local_cache_layout_node_kind.h was listed twice in the same group, probably due
to a merge conflict resolution typo. Dedupe it.

  • bmalloc.xcodeproj/project.pbxproj:
1:44 PM Changeset in webkit [291250] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.11

Tag Safari-614.1.5.11.

1:23 PM Changeset in webkit [291249] by Elliott Williams
  • 4 edits
    1 delete in trunk/Source/ThirdParty/libwebrtc

Unreviewed, reverting r291239.

Some builds failing with "fatal error:
'absl/utility/utility.h' file not found"

Reverted changeset:

"Reland "[XCBuild] libwebrtc's headers are copied via rsync
and do not emit task outputs""
https://bugs.webkit.org/show_bug.cgi?id=237112
https://commits.webkit.org/r291239

1:22 PM Changeset in webkit [291248] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.11

1:15 PM Changeset in webkit [291247] by Russell Epstein
  • 1 copy in branches/safari-614.1.6-branch

New branch.

1:14 PM Changeset in webkit [291246] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.7

12:36 PM Changeset in webkit [291245] by graouts@webkit.org
  • 12 edits in trunk

[model] <model interactive> doesn't allow model to be rotated on iOS
https://bugs.webkit.org/show_bug.cgi?id=237831
rdar://89698247

Reviewed by Simon Fraser.

Source/WebCore:

A <model> element is *not* interactive by default and the "interactive" HTML attribute
must be set explicitly. We used to mirror this initial disabled state by explicitly
setting "userInteractionEnabled" to NO on WKModelView during its creation, and we would
update that property when HTMLModelElement::isInteractive() would change value.

However, in the case where the attribute was originally set, we would completely
disregard that value.

We now account for it when we create the GraphicsLayer for the <model> element, letting the
existing GraphicsLayer machinery to set the matching "userInteractionEnabled" property on
the WKModelView.

  • Modules/model-element/HTMLModelElement.h:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setContentsToModel):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setContentsToModel):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):

Source/WebKit:

Remove the call to set userInteractionEnabled on the WKModelView when created. This property
is now set via the layer tree application code from the GraphicsLayer::userInteractionEnabled()
value.

  • UIProcess/ios/WKModelView.mm:

(-[WKModelView initWithModel:]):

LayoutTests:

Add a test where the <model> element is added to the DOM with the "interactive"
HTML attribute already set.

  • model-element/model-element-interactive-dragging-expected.txt:
  • model-element/model-element-interactive-dragging.html:
  • model-element/resources/model-utils.js:

(const.makeModel):
(const.readyModel.async test):

12:18 PM Changeset in webkit [291244] by Oriol Brufau
  • 18 edits in trunk

[css] Implement 'text-decoration' as a shorthand.
https://bugs.webkit.org/show_bug.cgi?id=237175

Reviewed by Darin Adler.

Source/WebCore:

The 'text-decoration' property was considered to be a longhand, sharing
a computed value with 'text-decoration-line'.

This patch switches 'text-decoration' to be shorthand instead.
According to the CSS Text Decoration spec, the longhands should be
'text-decoration-line', 'text-decoration-thickness',
'text-decoration-style' and 'text-decoration-color'.
I tried that in https://commits.webkit.org/r290756, but it got reverted
because of a performance regression. So as a first step, here I'm making
'text-decoration-line' be the only longhand.

There is a bunch of editing code that was getting/setting/removing
'text-decoration' as a longhand, so I'm switching that to instead
use 'text-decoration-line'.

Tests: fast/css/getComputedStyle/computed-style.html

fast/css/getComputedStyle/computed-style-without-renderer.html
fast/css/getComputedStyle/getComputedStyle-text-decoration.html
fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html
imported/w3c/web-platform-tests/css/css-variables/variable-presentation-attribute.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html
svg/css/getComputedStyle-basic.xhtml

  • css/CSSProperties.json:
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::asText const):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

  • editing/EditingStyle.cpp:

(WebCore::HTMLTextDecorationEquivalent::HTMLTextDecorationEquivalent):
(WebCore::EditingStyle::init):
(WebCore::EditingStyle::styleWithResolvedTextDecorations const):
(WebCore::EditingStyle::collapseTextDecorationProperties):
(WebCore::textDecorationValueList):
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement const):
(WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode const):
(WebCore::EditingStyle::mergeStyle):
(WebCore::reconcileTextDecorationProperties):
(WebCore::StyleChange::StyleChange):
(WebCore::StyleChange::extractTextStyles):
(WebCore::extractPropertiesNotIn):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::propertyValueForNode):
(HTMLConverter::computedAttributesForElement):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::removeUnchangeableStyles):

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearanceInternal):

  • style/PropertyAllowlist.cpp:

(WebCore::Style::isValidCueStyleProperty):

LayoutTests:

Update tests to take into account that 'text-decoration' is a shorthand.

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-text-decoration-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-text-decoration.html:
  • fast/css/getComputedStyle/resources/property-names.js:
  • fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand-expected.txt:
  • fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand.html:
  • svg/css/getComputedStyle-basic-expected.txt:
12:11 PM Changeset in webkit [291243] by Simon Fraser
  • 13 edits
    1 add in trunk/Source/WebKit

Do a single IPC for MarkSurfaceNonVolatile and SwapToValidFrontBuffer
https://bugs.webkit.org/show_bug.cgi?id=237814

Reviewed by Tim Horton.

Now that we know how to group the calls to markSurfaceNonVolatile() followed by
swapToValidFrontBuffer(), we can do them with a single sync IPC to the GPU process, passing
supportsPartialRepaint and hasEmptyDirtyRegion.

RemoteLayerWithRemoteRenderingBackingStoreCollection::prepareBackingStoreBuffers() takes
care to avoid IPCs for layers which don't need display, which is important for performance.

Introduce the SwapBuffersDisplayRequirement enum which is returned, and used to know if
we have to do a full repaint.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::prepareBuffersForDisplay):
(WebKit::RemoteRenderingBackend::markSurfaceNonVolatile): Deleted.
(WebKit::RemoteRenderingBackend::swapToValidFrontBuffer): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:

(WebKit::RemoteLayerBackingStore::hasEmptyDirtyRegion const):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::operator<<):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::prepareBuffers):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::prepareBackingStoreBuffers):
(WebKit::RemoteLayerBackingStoreCollection::makeFrontBufferNonVolatile): Deleted.
(WebKit::RemoteLayerBackingStoreCollection::swapToValidFrontBuffer): Deleted.

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::prepareBackingStoreBuffers):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile): Deleted.
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::swapToValidFrontBuffer): Deleted.

  • Shared/RemoteLayerTree/SwapBuffersDisplayRequirement.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::prepareBuffersForDisplay):
(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer): Deleted.
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
11:48 AM Changeset in webkit [291242] by Jonathan Bedard
  • 7 edits in trunk/Tools

[git-webkit] Handle comparing User and Contributor to None
https://bugs.webkit.org/show_bug.cgi?id=237622
<rdar://problem/89992772>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/user_unittest.py:

(TestUser.test_compare):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/user.py:

(User.cmp): Handle 'None' case.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:

(Contributor.cmp): Ditto.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/contributor_unittest.py:

(TestContributor.test_comparison):

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

11:44 AM Changeset in webkit [291241] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r289850): Bundle size has increased
https://bugs.webkit.org/show_bug.cgi?id=237844

Unreviewed, fully revert r289850.

  • Makefile:
  • WebCore.xcodeproj/project.pbxproj:
11:25 AM Changeset in webkit [291240] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[Flatpack SDK] Api tests scripts have conflicting parameters with the flatpak scripts
https://bugs.webkit.org/show_bug.cgi?id=237778

Patch by Alejandro G. Castro <alex@igalia.com> on 2022-03-14
Reviewed by Philippe Normand.

run-gtk-tests and run-wpe-tests have arguments that cause
conflicts with the flatpak sdk, we have to rewrite and consume
some of them to avoid problems because we do not know what the
user is requesting. This patch gives priority to the api tests
parameters, the flatpak ones for the conflictive situations need
to be passed with the long format, namely regenerate-toolchains
and sccache-token.

  • Scripts/run-gtk-tests:
  • Scripts/run-wpe-tests:
  • glib/api_test_runner.py:

(add_options):
(get_runner_args):

11:14 AM Changeset in webkit [291239] by Elliott Williams
  • 4 edits
    1 add in trunk/Source/ThirdParty/libwebrtc

Reland "[XCBuild] libwebrtc's headers are copied via rsync and do not emit task outputs"
https://bugs.webkit.org/show_bug.cgi?id=237112

Reviewed by Alexey Proskuryakov.

r290966 had a bad xcconfig setting in libabsl.xcconfig, which prevented absl's headers from
being copied to the right location, causing build failures. Fix this setting and reland.

  • Configurations/Base.xcconfig:
  • Configurations/libabsl.xcconfig: s/PREFIX/PATH/g to fix settings.
  • Configurations/libwebrtc.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:
10:57 AM Changeset in webkit [291238] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

Don't create a scroll corner without renderer
https://bugs.webkit.org/show_bug.cgi?id=237837

Reviewed by Simon Fraser.

Don't create a scroll corner without renderer, as renderer document is needed to create one.
Also destroy the scroll corner early when RenderView is available.

  • page/FrameView.cpp:

(WebCore::FrameView::willBeDestroyed):
(WebCore::FrameView::updateScrollCorner):

10:34 AM Changeset in webkit [291237] by Tyler Wilcock
  • 5 edits in trunk/Source/WebCore

AX: Move addChildren, addChild, insertChild, canHaveChildren, setNeedsToUpdateChildren, setNeedsToUpdateSubtree, clearChildren, and needsToUpdateChildren out of AXCoreObject interface
https://bugs.webkit.org/show_bug.cgi?id=237801

Reviewed by Andres Gonzalez.

All of these virtual methods are ASSERT_NOT_REACHED no-ops for AXIsolatedObjects,
so this patch moves them to AccessibilityObject.h instead.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::addChildren):
(WebCore::AccessibilityObject::canHaveChildren const):
(WebCore::AccessibilityObject::setNeedsToUpdateChildren):
(WebCore::AccessibilityObject::setNeedsToUpdateSubtree):
(WebCore::AccessibilityObject::needsToUpdateChildren const):

  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::addChildren): Deleted.
(WebCore::AXIsolatedObject::addChild): Deleted.
(WebCore::AXIsolatedObject::insertChild): Deleted.
(WebCore::AXIsolatedObject::canHaveChildren const): Deleted.
(WebCore::AXIsolatedObject::setNeedsToUpdateChildren): Deleted.
(WebCore::AXIsolatedObject::setNeedsToUpdateSubtree): Deleted.
(WebCore::AXIsolatedObject::clearChildren): Deleted.
(WebCore::AXIsolatedObject::needsToUpdateChildren const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
9:52 AM Changeset in webkit [291236] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[model] model-element/model-element-camera.html fails due to promise_rejects being undefined
https://bugs.webkit.org/show_bug.cgi?id=237833
rdar://88982597

Unreviewed test fix after testharness.js was updated in bug 235398 but neglected to update this
test to use promise_rejects_dom.

  • model-element/model-element-camera.html:
9:50 AM Changeset in webkit [291235] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Do not fetch key without username
https://bugs.webkit.org/show_bug.cgi?id=237830
<rdar://problem/90248939>

Unreviewed git-webkit fix.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:

(credentials): Only attempt to fetch key if username is defined.

9:42 AM Changeset in webkit [291234] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Revert r290659
https://bugs.webkit.org/show_bug.cgi?id=237296

It caused a performance regression.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::createWebSocketTask):

9:40 AM Changeset in webkit [291233] by Matteo Flores
  • 1 edit in trunk/LayoutTests/ChangeLog

[GTK][WPE] EXIF orientation tests are failing since added in r249364 - "EXIF orientation should be respected when rendering images"
https://bugs.webkit.org/show_bug.cgi?id=201982

Unreviewed test gardening.

  • platform/ios/TestExpectations:
9:37 AM Changeset in webkit [291232] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[GTK][WPE] EXIF orientation tests are failing since added in r249364 - "EXIF orientation should be respected when rendering images"
Nhttps://bugs.webkit.org/show_bug.cgi?id=201982

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:47 AM Changeset in webkit [291231] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r291206.
https://bugs.webkit.org/show_bug.cgi?id=237829

Introduced perf regression

Reverted changeset:

"Adjust when
_setPrivacyProxyFailClosedForUnreachableNonMainHosts is
called"
https://bugs.webkit.org/show_bug.cgi?id=237735
https://commits.webkit.org/r291206

8:46 AM Changeset in webkit [291230] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS iPhone 12 ] fast/hidpi & fast/layers/hidpi tests are flaky text/image failing
https://bugs.webkit.org/show_bug.cgi?id=232384

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:42 AM Changeset in webkit [291229] by Adrian Perez de Castro
  • 6 edits in trunk

[GLib] Expose typed arrays in the public API
https://bugs.webkit.org/show_bug.cgi?id=197535

Reviewed by Carlos Garcia Campos.

This adds a set of new functions to operate on JSCValue objects which refer to typed
arrays in the JavaScript side of the world. Typed array values can be created with an
existing ArrayBuffer to hold the contents, in which case custom allocations are possible;
or letting JSC handle allocation. Operating on typed arrays is expected to be done on an
element-by-element basis, and in general it is recommended to use the functions dealing
with the "length" (number of elements) of typed arrays; nevertheless it is also possible
to retrieve their "size" and "offset" over the underlying ArrayBuffer, and/or retrieving
said ArrayBuffer.

Source/JavaScriptCore:

  • API/glib/JSCValue.cpp:

(toTypedArrayType):
(toJSCTypedArrayType):
(jsc_value_new_typed_array):
(jsc_value_new_typed_array_with_buffer):
(jsc_value_is_typed_array):
(jsc_value_typed_array_get_buffer):
(jsc_value_typed_array_get_data):
(jsc_value_typed_array_get_length):
(jsc_value_typed_array_get_offset):
(jsc_value_typed_array_get_size):
(jsc_value_typed_array_get_type):

  • API/glib/JSCValue.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: Added test for typed arrays.

(elementSize):
(testJSCTypedArray):
(main):

7:03 AM Changeset in webkit [291228] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] marker-start should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237826

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Test failures are due to SVGURIReference::fragmentIdentifierFromIRIString() rejecting the values used in the
test which do not contain a "#". While this is not the greatest test values for this property, this is indeed
a bug that we reject the value during parsing instead of storing it.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:54 AM Changeset in webkit [291227] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] marker-mid should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237825

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Test failures are due to SVGURIReference::fragmentIdentifierFromIRIString() rejecting the values used in the
test which do not contain a "#". While this is not the greatest test values for this property, this is indeed
a bug that we reject the value during parsing instead of storing it.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:49 AM Changeset in webkit [291226] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] marker-end should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237824

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Test failures are due to SVGURIReference::fragmentIdentifierFromIRIString() rejecting the values used in the
test which do not contain a "#". While this is not the greatest test values for this property, this is indeed
a bug that we reject the value during parsing instead of storing it.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:21 AM Changeset in webkit [291225] by eocanha@igalia.com
  • 3 edits
    2 adds in trunk

[MSE][SourceBuffer] Fix removal of paddings from buffered range
https://bugs.webkit.org/show_bug.cgi?id=237780

Reviewed by Jer Noble.

Source/WebCore:

When removing a range ending up in a sample S2 which overlaps slightly with a
previous one S1 but still extends beyond the removal range, the buffered range
computing algorithm can become confused removing the range paddings and
completely skip the S2 sample (instead of accounting it as part of the still
buffered ranges). The sample S2 is leaked and becomes unnoticed in the buffered
ranges.

This patch changes the way in which buffered ranges boundaries are computed in
such cases.

This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797#discussion_r818973424

Test: media/media-source/media-source-remove-overlapped.html

  • platform/graphics/SourceBufferPrivate.cpp: End the additionalErasedRanges iterator in removeSamplesFromTrackBuffer() in a sample starting after erasedStart, instead of starting on or after erasedEnd.

LayoutTests:

This tests that overlapped samples in the boundaries of removal ranges aren't leaked.

This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797

  • media/media-source/media-source-remove-overlapped-expected.txt: Added.
  • media/media-source/media-source-remove-overlapped.html: Added.
5:45 AM Changeset in webkit [291224] by commit-queue@webkit.org
  • 15 edits in trunk

WebGL context should use discrete gpu if the context is created when the window is on external monitor, ANGLE Metal backend
https://bugs.webkit.org/show_bug.cgi?id=236487

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-14
Reviewed by Kenneth Russell.

Source/WebCore:

Add GraphicsContextGLAttributes::windowGPUID which describes the GPU ID
for the window that the context is on.
Create the ANGLE Metal context based on this, unless high-performance GPU
is requested.

Changes the behavior so that new WebGL contexts will use dgpu is always when user has
external display plugged in. The system changes all the windows to the dgpu, so
this is consistent with the system expectation.

Notable difference due to the above is that we get different layout tests for a developer
that has a external monitor than before.

Tested by new unit tests.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • page/Chrome.cpp:

(WebCore::Chrome::createGraphicsContextGL const):

  • page/ChromeClient.cpp:

(WebCore::ChromeClient::createGraphicsContextGL const):

  • page/ChromeClient.h:
  • platform/PlatformScreen.h:
  • platform/ScreenProperties.h:

(WebCore::ScreenData::decode):

  • platform/graphics/GraphicsContextGLAttributes.h:

(WebCore::GraphicsContextGLAttributes::encode const):
(WebCore::GraphicsContextGLAttributes::decode):

  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::initializeEGLDisplay):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::collectScreenProperties):
(WebCore::primaryGPUID):
(WebCore::gpuIDForDisplay):
(WebCore::gpuIDForDisplayMask):

Source/WebKit:

Before, the ChromeClient passed PlatformDisplayID to the createGraphicsContextGL. This was ignored.
After, pass the PlatformGPUID as part of GraphicsContextGLAttributes.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createGraphicsContextGL const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Tools:

Add tests to test that the windowGPUID affects the contexts being created.
Avoid ifdefs by always compiling the tests and move the "platform can have
multiple gpus / there is no multiple gpus in the platform" ifdef aspects
to helper functions.

  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:

(TestWebKitAPI::allDevices):
(TestWebKitAPI::lowPowerDevice):
(TestWebKitAPI::highPerformanceDevice):
(TestWebKitAPI::hasMultipleGPUs):
(TestWebKitAPI::TEST_F):

5:04 AM Changeset in webkit [291223] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[ MacOS ] imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230116
<rdar://problem/82936812>

Unreviewed.

  • platform/mac/TestExpectations:

Unflake test now that is passing consistently on bots.

4:35 AM Changeset in webkit [291222] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[BigSur wk2] http/tests/fetch/redirectmode-and-preload.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230112
<rdar://problem/82932781>

Unreviewed.

  • platform/mac-wk2/TestExpectations:

Unflake test now that is passing consistently on bots.

4:27 AM Changeset in webkit [291221] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 arm64 ] 4 webrtc/ Layout-tests are consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=223043
<rdar://problem/75280718>

Unreviewed.

  • platform/mac/TestExpectations:

Unflake tests now that are passing consistently on bots.

3:24 AM Changeset in webkit [291220] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, fixing an incomplete-type build error in InlineIteratorLine
https://bugs.webkit.org/show_bug.cgi?id=237822

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-14

  • layout/integration/InlineIteratorLine.h:

Add the missing RenderBlockFlow.h include to avoid incomplete-type
error in InlineIterator::Line::selectionPhysicalRect() that might occur
when unified sources are sorted some other way.

2:20 AM Changeset in webkit [291219] by commit-queue@webkit.org
  • 3 edits
    5 deletes in trunk/Tools/buildstream

[Flatpak SDK] Get rid of Python2
https://bugs.webkit.org/show_bug.cgi?id=221043

Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-14
Reviewed by Michael Catanzaro.

Python2 is no longer needed as the tooling was ported to Python3.

  • elements/freedesktop-sdk.bst: Update junction to 21.08-11 release.
  • elements/sdk-platform.bst:
  • elements/sdk/python2-pycairo.bst: Removed.
  • elements/sdk/python2-pygobject.bst: Removed.
  • elements/sdk/python2-six.bst: Removed.
  • elements/sdk/python2-subprocess32.bst: Removed.
  • elements/sdk/python2.bst: Removed.
1:42 AM Changeset in webkit [291218] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (iOS 15.4 beta) - WebGL yields incorrect results when using preserveDrawingBuffer on iOS 15.4 Beta
https://bugs.webkit.org/show_bug.cgi?id=237113

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-14
Reviewed by Myles C. Maxfield.

Cherry-pick without tests conflicting tests.

Cherry-pick ANGLE commit: 74f3270214394c896154e4bf9338e7d75002de61
From: Gregg Tavares <Gregg Tavares>
Date: Thu, 3 Mar 2022 13:13:34 -0800
Subject: [PATCH] Metal: Fix for mulitsampled buffers losing their contents

Fixes tst included as well as WebGL CTS

https://www.khronos.org/registry/webgl/sdk/tests/conformance2/renderbuffers/multisample-draws-between-blits.html

Both fail on M1 without this fix.

Also fixes WebKit bug https://bugs.webkit.org/show_bug.cgi?id=237113

Bug: angleproject:7073

  • src/libANGLE/renderer/metal/FrameBufferMtl.mm:

(rx::FramebufferMtl::setLoadStoreActionOnRenderPassFirstStart):

Mar 13, 2022:

7:34 AM Changeset in webkit [291217] by Angelos Oikonomopoulos
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Use addressTempRegister in loadValue(void *) on 32 bits
https://bugs.webkit.org/show_bug.cgi?id=237773

Reviewed by Žan Doberšek.

Instead of using one of the destination registers as an address
temporary, use addressTempRegister instead. This allows reusing
the value in addressTempRegister (with an appropriate offset) if
possible, which results in a >25% size reduction for DFGOSRExit
(JS2) on ARMv7 (though not a significant size reduction overall).
Technically, this change could be killing some address reuse that
was previously possible because loadValue was not clobbering
addressTempRegister but, if so, this seems to be balanced out for
JS2.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::BoundsNonDoubleWordOffset::within):
(JSC::MacroAssemblerARMv7::BoundsDoubleWordOffset::within):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::setupArmAddress):
(JSC::MacroAssemblerARMv7::absoluteAddressWithinShortOffset):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::loadPair32):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::loadValue):

Mar 12, 2022:

11:23 PM Changeset in webkit [291216] by Jean-Yves Avenard
  • 8 edits
    7 adds in trunk

Safari produces scrambled output for some webm videos with vp8 codec.
https://bugs.webkit.org/show_bug.cgi?id=236754
Source/ThirdParty/libwebrtc:

rdar://80869041

Reviewed by Eric Carlson.

  • Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp:

(webrtc::WebKitDecoderReceiver::decoderFailed): Tell CoreMedia if a frame
was silently dropped by the decoder.

Source/WebCore:

rdar://80869041

Reviewed by Eric Carlson.

The MediaFormatReader plugin and the MSE SourceBufferPrivate are using
a SampleMap to store all the media samples timing information: one sorted
by DTS order and the other in PTS order.
Those SampleMap use the sample's presentation time as unique key.
The VP8 codec can define hidden samples that are to be fed to the decoder
but will not decode into an actual image. Those samples are typically
packed together in the webm container in two or more consecutive blocks
with the same presentation time (similar behaviour can also be found in
webm where multiple frames may be stored with the same presentation
time).
When stored in the SampleMap, only the latest sample added would be kept
after overwriting the previous one with the same time.
To get around this issue, we pack all samples with the same presentation
time in a single MediaSamplesBlock so that they can be stored together in
the map without any losses.
Upon decoding, all those sub-samples will be retrieved and fed to the
decoder.

The CoreMedia MediaFormatReader backend however has a bug where it will
enter in an infinite if we return successive frames with the same
timestamp which will cause memory exhaustion and a crash.
To get around this, we make the grouped samples appear as discrete,
making each hidden sample have a duration of 1us followed by the
visible frames (which will see its duration shorten by 1us).

Tests: media/media-source/media-source-vp8-hiddenframes.html

media/media-vp8-hiddenframes.html

New tests had to be disabled due to bug 236755. We currently have no
way to guarantee which frame is currently displayed after either a seek
operation or reaching the end of playback.

  • platform/MediaSample.h:

(WebCore::MediaSamplesBlock::append):
(WebCore::MediaSamplesBlock::clear):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::WebMParser::parse):
(WebCore::WebMParser::OnFrame):
(WebCore::WebMParser::flushPendingVideoSamples):
(WebCore::WebMParser::VideoTrackData::resetCompletedFramesState):
(WebCore::WebMParser::VideoTrackData::consumeFrameData):
(WebCore::WebMParser::VideoTrackData::processPendingMediaSamples):
(WebCore::WebMParser::VideoTrackData::flushPendingSamples):
(WebCore::WebMParser::AudioTrackData::consumeFrameData):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

(WebCore::WebMParser::TrackData::consumeFrameData):
(WebCore::WebMParser::TrackData::resetCompletedFramesState):
(WebCore::WebMParser::TrackData::drainPendingSamples):

LayoutTests:

Reviewed by Eric Carlson.

VP8 files were generated such that alternative reference frames were used:
$ fmpeg -i dragon.webm -c:v libvpx -vf scale=320:-1 -auto-alt-ref 1 -arnr-maxframes 5 -arnr-strength 3 -pass 1 test-vp8-hiddenframes.webm
$ fmpeg -i dragon.webm -c:v libvpx -vf scale=320:-1 -auto-alt-ref 1 -arnr-maxframes 5 -arnr-strength 3 -pass 2 test-vp8-hiddenframes.webm

The command used to extract the last frame in png format was:
$ ffmpeg -sseof -3 -i test-vp8-hiddenframes.webm -pred mixed -pix_fmt rgb24 -sws_flags +accurate_rnd+full_chroma_int -update 1 -q:v 1 test-vp8-hiddenframes.png

  • TestExpectations:
  • media/content/test-vp8-hiddenframes.png: Added.
  • media/content/test-vp8-hiddenframes.webm: Added.
  • media/media-source/media-source-vp8-hiddenframes-expected.html: Added.
  • media/media-source/media-source-vp8-hiddenframes.html: Added.
  • media/media-vp8-hiddenframes-expected.html: Added.
  • media/media-vp8-hiddenframes.html: Added.
  • media/utilities.js: Added.

(once):
(fetchWithXHR):
(loadSegment):

8:55 PM Changeset in webkit [291215] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] Add InlineIterator::Line::selectionPhysicalRect
https://bugs.webkit.org/show_bug.cgi?id=237796

Reviewed by Antti Koivisto.

Introduce selectionPhysicalRect() so that the clients don't need to convert/flip the logical coords and
also rename selectionRect() to selectionLogicalRect() to clear up any ambiguity.

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):

  • layout/integration/InlineIteratorLine.h:

(WebCore::InlineIterator::Line::selectionLogicalRect const):
(WebCore::InlineIterator::Line::selectionPhysicalRect const):
(WebCore::InlineIterator::Line::selectionRect const): Deleted.

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForLinePosition):

8:54 PM Changeset in webkit [291214] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

In RemoteLayerBackingStore, group makeFrontBufferNonVolatile() and swapToValidFrontBuffer() into a single function
https://bugs.webkit.org/show_bug.cgi?id=237806

Reviewed by Tim Horton.

As a step towards reducing the number of sync IPC calls when displaying layers, refactor
code in RemoteLayerBackingStore so that we can do the makeFrontBufferNonVolatile()
and swapToValidFrontBuffer() in a single function. Its return value indicates whether
we need to do any display, or a full display.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::operator<<):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
(WebKit::RemoteLayerBackingStore::paintContents): Fix an assertion that fired for WebGL.
(WebKit::RemoteLayerBackingStore::swapBuffers): Deleted.

7:01 PM Changeset in webkit [291213] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WTF

Fail the build if Internal or Experimental web preferences are missing human readable names
https://bugs.webkit.org/show_bug.cgi?id=237813

Reviewed by Alex Christensen.

  • Scripts/GeneratePreferences.rb:

Ensure that all preferences that expose human readable strings to the
API client actually have such a name.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add one missing human readable preference name.

3:29 PM Changeset in webkit [291212] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r291209.
https://bugs.webkit.org/show_bug.cgi?id=237811

Re-land 290754 due to mis-blaming

Reverted changeset:

"Unreviewed, reverting r290754."
https://bugs.webkit.org/show_bug.cgi?id=237808
https://commits.webkit.org/r291209

3:15 PM Changeset in webkit [291211] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[IFC][Integration] Replace generic InlineIterator::Line::legacyRootInlineBox() with 2 dedicated functions
https://bugs.webkit.org/show_bug.cgi?id=237807

Reviewed by Antti Koivisto.

  • layout/integration/InlineIteratorLine.h:

(WebCore::InlineIterator::Line::containingFragment const):
(WebCore::InlineIterator::Line::isFirstAfterPageBreak const):
(WebCore::InlineIterator::Line::legacyRootInlineBox const): Deleted.

  • layout/integration/InlineIteratorLineLegacyPath.h:

(WebCore::InlineIterator::LineIteratorLegacyPath::containingFragment const):
(WebCore::InlineIterator::LineIteratorLegacyPath::isFirstAfterPageBreak const):
(WebCore::InlineIterator::LineIteratorLegacyPath::legacyRootInlineBox const): Deleted.

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::containingFragment const):
(WebCore::InlineIterator::LineIteratorModernPath::isFirstAfterPageBreak const):
(WebCore::InlineIterator::LineIteratorModernPath::legacyRootInlineBox const): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionGeometries):

3:12 PM Changeset in webkit [291210] by timothy_horton@apple.com
  • 44 edits in trunk

Adopt FALLBACK_PLATFORM_NAME in place of FALLBACK_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=237809

Reviewed by Per Arne Vollan.

PerformanceTests:

  • MediaTime/Configurations/SDKVariant.xcconfig:

Source/bmalloc:

  • Configurations/SDKVariant.xcconfig:

Source/JavaScriptCore:

  • Configurations/SDKVariant.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/SDKVariant.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/SDKVariant.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/SDKVariant.xcconfig:

Source/WebCore:

  • Configurations/SDKVariant.xcconfig:

Source/WebCore/PAL:

  • Configurations/SDKVariant.xcconfig:

Source/WebGPU:

  • Configurations/SDKVariant.xcconfig:

Source/WebInspectorUI:

  • Configurations/SDKVariant.xcconfig:

Source/WebKit:

  • Configurations/SDKVariant.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/SDKVariant.xcconfig:

Source/WTF:

  • Configurations/SDKVariant.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/SDKVariant.xcconfig:
  • DumpRenderTree/mac/Configurations/SDKVariant.xcconfig:
  • ImageDiff/cg/Configurations/SDKVariant.xcconfig:
  • MiniBrowser/Configurations/SDKVariant.xcconfig:
  • MobileMiniBrowser/Configurations/SDKVariant.xcconfig:
  • TestWebKitAPI/Configurations/SDKVariant.xcconfig:
  • WebEditingTester/Configurations/SDKVariant.xcconfig:
  • WebKitTestRunner/Configurations/SDKVariant.xcconfig:
  • lldb/lldbWebKitTester/Configurations/SDKVariant.xcconfig:
12:53 PM Changeset in webkit [291209] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r290754.
https://bugs.webkit.org/show_bug.cgi?id=237808

Introduced launch regression

Reverted changeset:

"[iOS] Seatbelt sandbox profile entitlement is deprecated"
https://bugs.webkit.org/show_bug.cgi?id=237374
https://commits.webkit.org/r290754

11:10 AM Changeset in webkit [291208] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] previousLinePosition/nextLinePosition should use Line::lineBoxHeight
https://bugs.webkit.org/show_bug.cgi?id=237788

Reviewed by Antti Koivisto.

Line::lineBoxHeight() should be sufficient for checking if the line is empty for VisualPosition.

  • editing/VisibleUnits.cpp:

(WebCore::previousLinePosition):
(WebCore::nextLinePosition):

  • layout/integration/InlineIteratorLine.h:

(WebCore::InlineIterator::Line::lineBoxHeight const):
(WebCore::InlineIterator::Line::logicalHeight const): Deleted.

  • layout/integration/InlineIteratorLineLegacyPath.h:

(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalRight const):
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalHeight const): Deleted.

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalRight const):
(WebCore::InlineIterator::LineIteratorModernPath::logicalHeight const): Deleted.

6:30 AM Changeset in webkit [291207] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[IFC][Integration] RenderBlockFlow::findClosestTextAtAbsolutePoint should use root inline box iterator
https://bugs.webkit.org/show_bug.cgi?id=237786

Reviewed by Antti Koivisto.

Let's remove root inline box APIs from the line iterator interface.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint): Replace line iterator with root inline box iterator
and check whether the local point is in between these root inline boxes.

Mar 11, 2022:

9:01 PM Changeset in webkit [291206] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Adjust when _setPrivacyProxyFailClosedForUnreachableNonMainHosts is called
https://bugs.webkit.org/show_bug.cgi?id=237735
<rdar://89972004>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Geoff Garen.

It was originally being called differently between main resources and subresources on the same domain,
causing them to use connections with different properties, so we couldn't share connections any more.
This will make it so that more connections are shared, which should fix the performance regression from
no longer sharing connections to the same domain.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

8:07 PM Changeset in webkit [291205] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Unreviewed logging removal.

Revert an ALWAYS_LOG_WITH_STREAM() that I inadvertently committed back to a
LOG_WITH_STREAM().

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):

7:15 PM Changeset in webkit [291204] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore

[macOS] Image decoders should be restricted for Mail
https://bugs.webkit.org/show_bug.cgi?id=237717
<rdar://89827733>

Reviewed by Geoffrey Garen.

Use correct prefix for static member.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::enableRestrictedDecoding):
(WebCore::ImageDecoderCG::restrictedDecodingEnabled):

  • platform/graphics/cg/ImageDecoderCG.h:
6:33 PM Changeset in webkit [291203] by Chris Dumez
  • 5 edits in trunk/Source

IPC thread's QOS should match the sending thread's QOS when calling sendSync()
https://bugs.webkit.org/show_bug.cgi?id=237800
<rdar://problem/90061548>

Reviewed by Geoffrey Garen.

Source/WebKit:

IPC thread's QOS should match the sending thread's QOS when calling sendSync(), since it blocks the calling thread.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):

Source/WTF:

Add function to get the QoS of the current thread.

  • wtf/Threading.cpp:

(WTF::toQOS):
(WTF::Thread::currentThreadQOS):

  • wtf/Threading.h:
6:23 PM Changeset in webkit [291202] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Move RemoteLayerBackingStore flusher creation into RemoteLayerBackingStoreCollection
https://bugs.webkit.org/show_bug.cgi?id=237798

Reviewed by Tim Horton.

Move the code that creates layer flushers from RemoteLayerTreeDrawingArea into
RemoteLayerBackingStoreCollection, per the FIXME.

RemoteLayerBackingStoreCollection::didFlushLayers() then becomes internal, and gets renamed
to updateUnreachableBackingStores(). Now we only need to schedule the volatility timer from
one place.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::didFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::updateUnreachableBackingStores):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

4:56 PM Changeset in webkit [291201] by Wenson Hsieh
  • 6 edits in trunk/Source

Refactor the filter block in DocumentMarkerController::filterMarkers() to return an enum type
https://bugs.webkit.org/show_bug.cgi?id=237794

Reviewed by Megan Gardner.

Source/WebCore:

Change the return value of the filter function argument in filterMarkers() from a bool to a named enum
type with 2 values: Keep or Remove; this makes it more obvious to call sites whether the return value will
cause document markers to remain or be removed from the document.

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::filterMarkers):
(WebCore::DocumentMarkerController::removeMarkers):

  • dom/DocumentMarkerController.h: Remove a FIXME and comment that's no longer needed.

Source/WebKit:

Drive-by fix: only remove the spellchecking document marker in removeAnnotationRelativeToSelection if the
annotation string of the marker matches the given annotation string to the method.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::clearDictationAlternatives):

4:32 PM Changeset in webkit [291200] by commit-queue@webkit.org
  • 9 edits in trunk

Finish implementing modify-headers actions for WKContentRuleList SPI
https://bugs.webkit.org/show_bug.cgi?id=237784
Source/WebCore:

<rdar://72433048>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.

I hadn't implemented regex substitution yet.

  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::applyToRequest):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::deserialize):
(WebCore::ContentExtensions::makeJSString):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::applyToURL const):

  • contentextensions/ContentExtensionActions.h:

(WebCore::ContentExtensions::add):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):

Source/WebKit:

<rdar://72433048>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.

  • UIProcess/API/APIContentRuleListStore.h:

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

4:00 PM Changeset in webkit [291199] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, ASan specific build fix
https://bugs.webkit.org/show_bug.cgi?id=237572

  • libpas/src/libpas/pas_utils.h:

(pas_zero_memory):

3:42 PM Changeset in webkit [291198] by Nikos Mouchtaris
  • 10 edits
    2 adds in trunk

[iOS] Fix ovserscroll-behavior for main document
https://bugs.webkit.org/show_bug.cgi?id=237696

Reviewed by Simon Fraser.

Source/WebCore:

Make getters for overscroll behavior public.

Test: fast/scrolling/ios/overscroll-behavior-on-body.html

  • page/scrolling/ScrollingTreeScrollingNode.h:

Source/WebKit:

Get value of over scroll behavior from root scrolling node to set whether root
UIScrollView should rubber band or not. Add new UIScrollView SPI.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _updateScrollViewForTransaction:]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::rootNode const):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateScrollViewForOverscrollBehavior):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

LayoutTests:

Added test that does a scroll expecting a rubberband, sets overscroll-behavior:none for
the body, then does another scroll, expected that no rubberband occurs.

  • fast/scrolling/ios/overscroll-behavior-on-body-expected.txt: Added.
  • fast/scrolling/ios/overscroll-behavior-on-body.html: Added.
3:34 PM Changeset in webkit [291197] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=231266

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:30 PM Changeset in webkit [291196] by J Pascoe
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Unreviewed build fix after r291177
https://bugs.webkit.org/show_bug.cgi?id=237797
rdar://problem/90183881

Remove unused move that is breaking iOS build

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
3:25 PM Changeset in webkit [291195] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.5.10

Tag Safari-614.1.5.10.

2:55 PM Changeset in webkit [291194] by Adrian Perez de Castro
  • 6 edits in trunk

[GLib] Expose ArrayBuffer in the public API
https://bugs.webkit.org/show_bug.cgi?id=237088

Reviewed by Carlos Garcia Campos.

This adds a set of new functions to operate on JSCValue objects which refer to array
buffers in the JS side of the world. This allows sharing chunks of memory buffers
efficiently with native code, without needing to copy nor encode data back and forth.

Source/JavaScriptCore:

  • API/glib/JSCValue.cpp:

(jscArrayBufferDeallocate):
(jsc_value_new_array_buffer):
(jsc_value_is_array_buffer):
(jsc_value_array_buffer_get_data):
(jsc_value_array_buffer_get_length):

  • API/glib/JSCValue.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: Added test for array buffers.

(testJSCArrayBuffer):
(main):

2:45 PM Changeset in webkit [291193] by Jonathan Bedard
  • 7 edits in trunk/Tools

[Merge-Queue] Add queue triggered by label addition
https://bugs.webkit.org/show_bug.cgi?id=237615
<rdar://problem/89983452>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json: Add Merge-Queue.
  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits): Remove action list, add merge-queue labels.
(GitHubEventHandlerNoEdits.handle_pull_request): Let parent class filter actions, treat
merge-queue label addition as a 'synchronize', but change event name to trigger different
scheduler family.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory): Added.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps):

  • Tools/CISupport/ews-build/loadConfig.py:

(loadBuilderConfig): AnyBranchSchedulers should only accept events which match their name.

  • Tools/CISupport/ews-build/loadConfig_unittest.py:

(ConfigDotJSONTest): Match pull request scheduler name to pull request event.

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

2:30 PM Changeset in webkit [291192] by Elliott Williams
  • 4 edits in trunk/Source

[Xcode] "Nest Headers" script phases copy headers incorrectly on Catalyst
https://bugs.webkit.org/show_bug.cgi?id=237793

Reviewed by Alexey Proskuryakov.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:

Source/WTF:

SDK_VARIANT needs to be passed into the nested xcodebuild invocation that these script
phases run. Pass WK_USE_ALTERNATE_FRAMEWORKS_DIR=NO to prevent the default behavior where
Catalyst content is installed to /System/iOSSupport, as this causes headers to be copied to
WebKitBuild/Release/System/iOSSupport/...

This script phases only run under the legacy build system, so they do not affect production
builds. https://commits.webkit.org/247656@main provides more context on this hack (tl;dr
it's a temporary workaround for the XCBuild migration).

  • WTF.xcodeproj/project.pbxproj:
2:22 PM Changeset in webkit [291191] by Simon Fraser
  • 7 edits in trunk/Source/WebKit

Do buffer swapping on all RemoteLayerBackingStores before painting all of them
https://bugs.webkit.org/show_bug.cgi?id=237752

Reviewed by Tim Horton.

Buffer swapping requires sync IPC with the GPU Process, but painting can be asynchronous, so
do all the sync IPC before all the async IPC to avoid serializing everything.

During the recursive PlatformCALayerRemote::recursiveBuildTransaction() we now call
prepareToDisplay() which does the buffer swapping, and then we paint all the reachable
backing stores via RemoteLayerTreeContext::buildTransaction().

This is a 9% perf improvement on the "Images" MotionMark subtest.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::display): Deleted.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::paintReachableBackingStoreContents):
(WebKit::RemoteLayerBackingStoreCollection::didFlushLayers): The local variables can
be pointers, rather than using references to pointers.
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatile): Ditto

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::buildTransaction):

2:13 PM Changeset in webkit [291190] by pvollan@apple.com
  • 10 edits in trunk/Source

[macOS] Image decoders should be restricted for Mail
https://bugs.webkit.org/show_bug.cgi?id=237717
<rdar://89827733>

Reviewed by Geoffrey Garen.

Source/WebCore:

Only add restricted decoding flag when it is explicitly requested.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):
(WebCore::ImageDecoderCG::enableRestrictedDecoding):
(WebCore::ImageDecoderCG::restrictedDecodingEnabled):

  • platform/graphics/cg/ImageDecoderCG.h:

Source/WebKit:

We already restrict image decoders for Mail on iOS. We should do so on macOS too.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
1:55 PM Changeset in webkit [291189] by Kocsen Chung
  • 2 edits in branches/safari-614.1.5-branch/Source/WebGPU

Cherry-pick r291184. rdar://problem/90172920

WebGPU Catalyst builds fail when using the system content path
https://bugs.webkit.org/show_bug.cgi?id=237790

Reviewed by Saam Barati.

The value of ALTERNATE_ROOT_PATH should be set to the framework directory instead of
DYLIB_INSTALL_NAME_BASE since it will include the system content path as a prefix for
Catalyst builds.

This is similar to the construction of ALTERNATE_ROOT_PATH for the other frameworks.

  • Configurations/WebGPU.xcconfig:

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

1:55 PM Changeset in webkit [291188] by Kocsen Chung
  • 16 edits in branches/safari-614.1.5-branch/Source

Cherry-pick r291139. rdar://problem/90127039

Catalyst JavaScriptCore, WebCore, WebKitLegacy, and WebKit shouldn't be copied to the Secondary Path
https://bugs.webkit.org/show_bug.cgi?id=237748

Reviewed by Mark Lam.

Updated the configuration to exclude copying Catalyst build products to the secondary path.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Source/WebGPU:

  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:

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

1:52 PM Changeset in webkit [291187] by Kocsen Chung
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.10

1:51 PM Changeset in webkit [291186] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Check for merge-queue labels
https://bugs.webkit.org/show_bug.cgi?id=237690
<rdar://problem/90064892>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin):
(GitHubMixin.get_pr_json): Add retry.
(GitHubMixin._is_pr_in_merge_queue): Check for merge-queue label.
(GitHubMixin.should_send_email_for_pr): get_pr_json now owns logging.
(ValidateChange.init): Add verifyMergeQueue flag.
(ValidateChange):
(ValidateChange.start): Add log to indicate PR has a merge-queue flag.
(ValidateChange.validate_github): Add retry when getting PR json, add merge queue check.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

1:25 PM Changeset in webkit [291185] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Allow table of contents on posts in special cases
https://bugs.webkit.org/show_bug.cgi?id=237744

Reviewed by Devin Rousso.

  • wp-content/plugins/table-of-contents.php:
  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/single.php:
1:08 PM Changeset in webkit [291184] by msaboff@apple.com
  • 2 edits in trunk/Source/WebGPU

WebGPU Catalyst builds fail when using the system content path
https://bugs.webkit.org/show_bug.cgi?id=237790

Reviewed by Saam Barati.

The value of ALTERNATE_ROOT_PATH should be set to the framework directory instead of
DYLIB_INSTALL_NAME_BASE since it will include the system content path as a prefix for
Catalyst builds.

This is similar to the construction of ALTERNATE_ROOT_PATH for the other frameworks.

  • Configurations/WebGPU.xcconfig:
1:07 PM Changeset in webkit [291183] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Unreviewed gardening after r291169.

  • platform/ios/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
12:22 PM Changeset in webkit [291182] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

Delay responsiveness checks for the Network Process until it has finished initialization
https://bugs.webkit.org/show_bug.cgi?id=237782
<rdar://88226412>

Reviewed by Geoffrey Garen.

Delay responsiveness checks for the Network Process until it has finished initialization.
Network process initialization can be slow but we have evidence that it is not truly
hung since we see network process terminations right as the network process is initiating
the WebProcess connection later on.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
(WebKit::AuxiliaryProcessProxy::beginResponsivenessChecks):
(WebKit::AuxiliaryProcessProxy::startResponsivenessTimer):

  • UIProcess/AuxiliaryProcessProxy.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didFinishLaunching):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:

(WebKit::WebAuthnProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

11:14 AM Changeset in webkit [291181] by Elliott Williams
  • 2 edits in trunk

Makefile.shared: Rename WORKSPACE to WORKSPACE_PATH and allow overrides
https://bugs.webkit.org/show_bug.cgi?id=237746

Reviewed by Alexey Proskuryakov.

This permits Make-based workflows which build out of a different workspace, e.g. a workspace
that includes WebKitAdditions.

WORKSPACE_PATH was chosen as a new name for parity with SCRIPTS_PATH and to avoid confusion
with USE_WORKSPACE.

Refactors Makefile.shared a bit to prevent SCHEME or WORKSPACE_PATH being set without
USE_WORKSPACE from breaking the build.

  • Makefile.shared:
11:08 AM Changeset in webkit [291180] by Wenson Hsieh
  • 21 edits in trunk

[iOS] Add support for -[UITextInput removeEmojiAlternatives] on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=237742
rdar://89647018

Reviewed by Kate Cheney.

Source/WebCore:

Add plumbing to AlternativeTextUIController and AlternativeTextContextController to replace an existing
DictationContext's NSTextAlternatives; passing in a nil NSTextAlternatives simply removes the DictationContext
and its existing text alternatives.

See WebKit ChangeLog for more details.

Tests: TextAlternatives.AddAndRemoveTextAlternativesWithMatch

TextAlternatives.AddAndRemoveTextAlternativesWithTextAndEmojis

  • dom/DocumentMarkerController.h:

Drive-by fix: adjust a comment to reflect the actual behavior in DocumentMarkerController, and also add a FIXME
to replace the bool return type with an enum type.

  • editing/cocoa/AlternativeTextContextController.h:
  • editing/cocoa/AlternativeTextContextController.mm:

(WebCore::AlternativeTextContextController::replaceAlternatives):

  • editing/cocoa/AlternativeTextUIController.h:
  • editing/cocoa/AlternativeTextUIController.mm:

(WebCore::AlternativeTextUIController::replaceAlternatives):

Source/WebKit:

Add support for -removeEmojiAlternatives, which removes all dictation alternatives at the current selection,
whose text alternative strings only contain emojis. See below for more details.

  • Platform/spi/ios/TextInputSPI.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::replaceDictationAlternatives):

Add PageClient plumbing to the new AlternativeTextUIController methods in WebCore to replace an existing
dictation context's text alternatives.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::dictationAlternativesAtSelection):

We expand the selection range by one character here since DocumentMarkerController::markersInRange() does not
include document markers that end exactly at the given range.

(WebKit::WebPageProxy::clearDictationAlternatives):

Add two helper methods on WebPageProxy: one to query all dictation alternative identifiers that intersect with
the current selection range, and another to remove all dictation alternative document markers whose
DictationContext matches an identifier in a given list of identifiers.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView removeEmojiAlternatives]):

Implement the new SPI method with a two-step process:

  1. Request the list of dictation context IDs at the selection; for each ID, we either (a) replace the text

alternatives for that context ID with a new NSTextAlternatives object that doesn't have any of the emoji-
only alternatives that appear in the original NSTextAlternatives, or (b) remove the NSTextAlternatives and
dictation context ID mapping entirely, if all the alternatives only contain emojis.

  1. For all the text alternatives that were removed in step 1 (due to only containing emojis), clear out all

document markers corresponding to those text alternatives in the document.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictationAlternativesAtSelection):
(WebKit::WebPage::clearDictationAlternatives):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Adjust an API test and augment an existing test to exercise -removeEmojiAlternatives.

  • TestWebKitAPI/Tests/ios/TextAlternatives.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
11:05 AM Changeset in webkit [291179] by Russell Epstein
  • 1 copy in tags/Safari-613.2.2

Tag Safari-613.2.2.

10:42 AM Changeset in webkit [291178] by Simon Fraser
  • 7 edits in trunk/Source/WebKit

Some minor refactoring in RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=237749

Reviewed by Tim Horton.

Simplify RemoteLayerBackingStore a little, primarily to push the setNeedsDisplay() calls
when swapToValidFrontBuffer() returns WebCore::SetNonVolatileResult::Empty out to the
callers, so it's clearer when m_dirtyRegion gets mutated.

In order to pass SetNonVolatileResult around more, change setBufferVolatility(bool) into
setBufferVolatile() and setFrontBufferNonVolatile(), which makes it clear that we only ever
set the front buffer to non-volatile.

Also move the call to clearBackendHandle() into
RemoteLayerWithRemoteRenderingBackingStoreCollection, since it's about GPU process.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::swapBuffers):
(WebKit::RemoteLayerBackingStore::setContents):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::willMakeBufferVolatile): Deleted.
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile): Deleted.
(WebKit::RemoteLayerBackingStore::setBufferVolatility): Deleted.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStoreCollection::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::swapToValidFrontBuffer):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectBackingStoreBufferIdentifiersToMarkVolatile):

10:25 AM Changeset in webkit [291177] by J Pascoe
  • 5 edits in trunk/Source/WebKit

[WebAuthn] Cancel running operations in ASA on navigation
https://bugs.webkit.org/show_bug.cgi?id=237452
rdar://problem/89781990

Reviewed by Brent Fulgham.

Pre-ASA WebAuthn calls cancel requests on navigation via calling authenticatorManager.cancelRequest
in WebPageProxy. In WebAuthn calls that go through ASA, the authenticatorManager lives in the ASA
process, so calls won't be cancelled on navigation.

This patch attempts to cancel ongoing operations whenever a WebAuthenticatorCoordinatorProxy that
uses ASA is destroyed, effectively cancelling requests on reload or navigation.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::~WebAuthenticatorCoordinatorProxy):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
9:49 AM Changeset in webkit [291176] by J Pascoe
  • 28 edits
    3 copies in trunk

[WebAuthn] Support authenticatorSelection.residentKey ResidentKeyRequirement
https://bugs.webkit.org/show_bug.cgi?id=237567
rdar://89788378

Reviewed by Brent Fulgham and Chris Dumez.

Source/WebCore:

In Web Authentication level one, relying parties can specify authenticatorSelection.residentKeyRequired,
to signify they require a client-side discoverable credential. However, if the authenticator does not
support client-side discoverable credentials, the rp has no way to clarify they want a client-side
discoverable credential only if available.

This patch implements authenticatorSelection.residentKeyRequired introduced in level 2, which has three
values 'Preferred', 'Required', and 'Discouraged'. This allows RPs to create a client-side discoverable
credential if possible.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:

(WebCore::PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::encode const):
(WebCore::PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::decode):

  • Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
  • Modules/webauthn/ResidentKeyRequirement.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
  • Modules/webauthn/ResidentKeyRequirement.idl: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
  • Modules/webauthn/fido/AuthenticatorSupportedOptions.cpp:

(fido::AuthenticatorSupportedOptions::setResidentKeyAvailability):
(fido::convertToCBOR):
(fido::AuthenticatorSupportedOptions::setSupportsResidentKey): Deleted.

  • Modules/webauthn/fido/AuthenticatorSupportedOptions.h:
  • Modules/webauthn/fido/DeviceRequestConverter.cpp:

(fido::encodeMakeCredenitalRequestAsCBOR):

  • Modules/webauthn/fido/DeviceRequestConverter.h:
  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPGetInfoResponse):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

In Web Authentication level one, relying parties can specify authenticatorSelection.residentKeyRequired,
to signify they require a client-side discoverable credential. However, if the authenticator does not
support client-side discoverable credentials, the rp has no way to clarify they want a client-side
discoverable credential only if available.

This patch implements authenticatorSelection.residentKeyRequired introduced in level 2, which has three
values 'Preferred', 'Required', and 'Discouraged'. This allows RPs to create a client-side discoverable
credential if possible.

  • UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm:

(-[_WKAuthenticatorSelectionCriteria init]):

  • UIProcess/API/Cocoa/_WKResidentKeyRequirement.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(residentKey):
(authenticatorSelectionCriteria):
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataJSON:options:userVerificationAvailability:]):
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::makeCredential):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Add API tests for authenticatorSelection.residentKey.

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

LayoutTests:

Add layout tests using residentKey field.

  • http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
9:39 AM Changeset in webkit [291175] by Ben Nham
  • 2 edits in trunk/Source/WebCore

Fix WebContent jetsam that occurs when selecting text in a large e-mail
https://bugs.webkit.org/show_bug.cgi?id=237698

Reviewed by Simon Fraser.

When selecting text in a large e-mail in MobileMail, we often jetsam. This is due to this
chain of events:

  1. If the selection extends enough to start causing the content to pan (which is easy to do when zoomed in on the mail content), then AutoscrollController ends up changing the scroll position of the FrameView to perform the pan.
  2. FrameView::requestScrollPositionUpdate tries to prepopulate tiles around the endpoint of the pan by calling TileController::prepopulateRect with visibleContentRect's size.

The problem is that MobileMail resizes their web view (and therefore FrameView) to match
the size of the content. This causes FrameView's visibleContentRect to be very large (>100k
pts high for some emails). As a result, we end up prepopulating every single tile in the
email, causing a huge spike in IOSurface memory usage that leads to a jetsam.

To fix this, we make FrameView::requestScrollPositionUpdate act more like
RenderLayerCompositor::visibleRectForLayerFlushing. In particular, on iOS, we now use
exposedContentRect instead of visibleContentRect. Since exposedContentRect is derived from
contentOffset/contentSize of the scroll view in the UIProcess, it's more correct and is much
smaller than visibleContentRect in this case.

  • page/FrameView.cpp:

(WebCore::FrameView::requestScrollPositionUpdate):

9:38 AM Changeset in webkit [291174] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] DrawingAreaWC::sendUpdateAC should keep a WeakPtr of this for the reply handler
https://bugs.webkit.org/show_bug.cgi?id=237757

Reviewed by Don Olmstead.

WinCairo Release was crashing by visiting some random web sites
for several minutes. The reply handler in
DrawingAreaWC::sendUpdateAC should check that this object is
still alive with weakThis.

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::sendUpdateAC): Capture weakThis for the
reply handler and check it.

9:31 AM Changeset in webkit [291173] by don.olmstead@sony.com
  • 2 edits
    2 copies
    6 adds
    3 deletes in trunk/LayoutTests

Platforms implementing WebSocketTask pass hybi/close-and-server-script-exception-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=237727

Reviewed by Alex Christensen.

The root expected.txt had a line with FAIL but all platforms that implement WebSocketTask
PASS the test fully. Make this the default and remove redundant expectations and add a
FAIL for Apple WebKitLegacy ports which don't implement WebSocketTask.

  • http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt:
  • platform/glib/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
  • platform/ios-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
  • platform/mac-wk1/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Copied from LayoutTests/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt.
  • platform/mac-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
  • platform/win/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Copied from LayoutTests/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt.
9:16 AM Changeset in webkit [291172] by Brandon
  • 2 edits in trunk/Source/WebCore

Verify values before adding to hash map
https://bugs.webkit.org/show_bug.cgi?id=237781

Reviewed by Simon Fraser.

Verify values before adding to hash map to avoid hash map corruption.

Original patch by John Cunningham

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::updateSnapOffsetsForScrollableArea):

9:11 AM Changeset in webkit [291171] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] shape-rendering should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237767

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

9:08 AM Changeset in webkit [291170] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] vector-effect should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237766

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

8:44 AM Changeset in webkit [291169] by Alan Bujtas
  • 8 edits in trunk

[IFC][Integration] Add support for inline table
https://bugs.webkit.org/show_bug.cgi?id=237498

Reviewed by Antti Koivisto.

Source/WebCore:

This patch enables inline tables for IFC
e.g.
<div>inline content with <table style="display: inline-table">table</table></div>

We treat the inline table as any other atomic inline level box with synthetic baseline.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateInlineTableDimensions):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

LayoutTests:

  • platform/mac/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
8:05 AM Changeset in webkit [291168] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required sys call to sandbox
https://bugs.webkit.org/show_bug.cgi?id=237739

Reviewed by Chris Dumez.

Add a rarely used, but required syscall, to the WebContent process sandbox on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
7:33 AM Changeset in webkit [291167] by youenn@apple.com
  • 23 edits
    2 deletes in trunk

Do capture video frame downsampling in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=237316
<rdar://problem/89959777>

Reviewed by Eric Carlson.

Source/WebCore:

To prevent some flakinesses, we now compute the video frame size from MediaSample given to rvfc metadata.
We stop making requestToEnd as virtual by introducing a virtual endProducingData method.
RealtimeMediaSource::end calls the new endProducingData virtual method, which is stop by default.
RealtimeVideoSource::endProducingData is implemented by calling requestToEnd on the underlying source.
This makes sure that ending a source will not end a related cloned source.

Covered by existing tests.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
  • platform/mediastream/RealtimeMediaSource.cpp:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:
  • platform/mediastream/RealtimeVideoSource.h:

Source/WebKit:

Instead of cloning within WebProcess, we know clone in GPUProcess for camera tracks.
This allows to keep using IOSurfaces when several tracks are using the same device with different resolutions.
Since display tracks are already cloned remotely, we can merge RemoteRealtimeDisplaySource and RemoteRealtimeVideoSource.

We no longer need to stop the source in ~SourceProxy given we are removing ourselves from observing the source.
We rename UserMediaCaptureManagerProxy end to remove and requestToEnd to endProducingData.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp: Removed.
  • WebProcess/cocoa/RemoteRealtimeDisplaySource.h: Removed.
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:
  • WebProcess/cocoa/UserMediaCaptureManager.h:

LayoutTests:

  • fast/mediastream/getDisplayMedia-size.html:

Remove potential race condition by restarting playing the stream to compute the size.

6:30 AM Changeset in webkit [291166] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] text-anchor should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237765

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:27 AM Changeset in webkit [291165] by Mikhail R. Gadelha
  • 3 edits in trunk/Source

Debug build failure after r246172: ASSERT_UNDER_CONSTEXPR_CONTEXT should work in constexpr contexts
https://bugs.webkit.org/show_bug.cgi?id=236728

Reviewed by Michael Catanzaro.

ASSERT_UNDER_CONSTEXPR_CONTEXT is calling a non-constexpr function (WTFReportAssertionFailure)
when it fails, so it cannot be used for an assert not reached.

This patch adds a new RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT() macro
that calls CRASH_UNDER_CONSTEXPR_CONTEXT() instead of WTFReportAssertionFailure.

No functional change.

  • wasm/WasmCompilationMode.h:

(JSC::Wasm::isOSREntry):
(JSC::Wasm::isAnyBBQ):
(JSC::Wasm::isAnyOMG):

6:27 AM Changeset in webkit [291164] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] stroke-linejoin should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237764

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:23 AM Changeset in webkit [291163] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] stroke-linecap should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237763

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:19 AM Changeset in webkit [291162] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

Rename invalidation methods in SVGElement
https://bugs.webkit.org/show_bug.cgi?id=237716

Patch by Rob Buis <rbuis@igalia.com> on 2022-03-11
Reviewed by Martin Robinson.

Rename invalidation methods in SVGElement to be more specific. This in fact
uses the naming in the underlying ElementData.

  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::svgAttributeChanged):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):

  • svg/SVGElement.h:
  • svg/SVGElementInlines.h:

(WebCore::SVGElement::setAnimatedSVGAttributesAreDirty):
(WebCore::SVGElement::setPresentationalHintStyleIsDirty):
(WebCore::SVGElement::invalidateSVGAttributes): Deleted.
(WebCore::SVGElement::invalidateSVGPresentationalHintStyle): Deleted.

  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::svgAttributeChanged):

  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::svgAttributeChanged):

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::svgAttributeChanged):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::svgAttributeChanged):

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::svgAttributeChanged):

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::svgAttributeChanged):

  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::svgAttributeChanged):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::svgAttributeChanged):

  • svg/properties/SVGAttributeAnimator.cpp:

(WebCore::SVGAttributeAnimator::invalidateStyle):

6:17 AM Changeset in webkit [291161] by graouts@webkit.org
  • 7 edits in trunk

[web-animations] mask-repeat should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237771

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setMaskRepeatX):
(WebCore::RenderStyle::setMaskRepeatY):

6:08 AM Changeset in webkit [291160] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-mode should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237770

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:05 AM Changeset in webkit [291159] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-composite should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237769

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

Refactor FillLayerFillBoxPropertyWrapper to a templatized DiscreteFillLayerPropertyWrapper
which allows us to support other enum types like CompositeOperator.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

6:01 AM Changeset in webkit [291158] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] mask-type should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237768

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

5:48 AM Changeset in webkit [291157] by graouts@webkit.org
  • 6 edits in trunk

[web-animations] text-rendering should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237777

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

5:45 AM Changeset in webkit [291156] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

[web-animations] refactor discrete FontCascadeDescription to use dedicated animation wrappers
https://bugs.webkit.org/show_bug.cgi?id=237776

Reviewed by Antti Koivisto.

We added getters and setters on RenderStyle for properties exposed on FontCascadeDescription
solely for the purpose of animation support. Instead, we add a couple of dedicated animation
wrapper that removes the methods from RenderStyle and do all the work in
CSSPropertyAnimation.cpp.

The base class DiscreteFontDescriptionWrapper and is used for CSS properties backed by several
FontCascadeDescription methods.

The subclass DiscreteFontDescriptionTypedWrapper is used for CSS properties backed by a single
FontCascadeDescrption method dealing with a simple type.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::DiscreteFontDescriptionWrapper::DiscreteFontDescriptionWrapper):
(WebCore::DiscreteFontDescriptionWrapper::propertiesInFontDescriptionAreEqual const):
(WebCore::DiscreteFontDescriptionWrapper::setPropertiesInFontDescription const):
(WebCore::DiscreteFontDescriptionTypedWrapper::DiscreteFontDescriptionTypedWrapper):
(WebCore::DiscreteFontDescriptionTypedWrapper::value const):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontKerning): Deleted.
(WebCore::RenderStyle::setFontFeatureSettings): Deleted.
(WebCore::RenderStyle::setFontFamilies): Deleted.
(WebCore::RenderStyle::setFontSynthesis): Deleted.
(WebCore::RenderStyle::setFontVariantAlternates): Deleted.
(WebCore::RenderStyle::setFontVariantPosition): Deleted.
(WebCore::RenderStyle::setFontVariantCaps): Deleted.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontPalette const):
(WebCore::RenderStyle::fontKerning const): Deleted.
(WebCore::RenderStyle::fontFeatureSettings const): Deleted.
(WebCore::RenderStyle::fontFamilies const): Deleted.
(WebCore::RenderStyle::fontSynthesis const): Deleted.
(WebCore::RenderStyle::fontVariantAlternates const): Deleted.
(WebCore::RenderStyle::fontVariantPosition const): Deleted.
(WebCore::RenderStyle::fontVariantCaps const): Deleted.

4:59 AM Changeset in webkit [291155] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Allow AOM AV1 decoder and check for hardware AV1 decoders as well
https://bugs.webkit.org/show_bug.cgi?id=237713

Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-11
Reviewed by Xabier Rodriguez-Calvar.

The AOM AV1 decoder performs better nowadays. Also it seems hardware-accelerated decoders
are appearing, so we should check for this as well.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initializeDecoders):

3:51 AM Changeset in webkit [291154] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Only apply inline-size containment when it is allowed
https://bugs.webkit.org/show_bug.cgi?id=237761

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:

Source/WebCore:

"Giving an element inline-size containment has no effect if any of the following are true:

if the element does not generate a principal box (as is the case with display: contents or display: none)
if its inner display type is table
if its principal box is an internal table box
if its principal box is an internal ruby box or a non-atomic inline-level box"

https://drafts.csswg.org/css-contain-3/#containment-inline-size

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

Check for valid inline-size containment.

  • rendering/RenderObject.cpp:

(WebCore::shouldApplyInlineSizeContainment):

  • rendering/RenderObject.h:
  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::selectContainer const):

Cleanups.

(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

Check for valid size containment for the type, evaluate to unknown if it doesn't exist.
Also check layout containment.

3:17 AM Changeset in webkit [291153] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed isInGPUProcess() fix after 248209@main
https://bugs.webkit.org/show_bug.cgi?id=237762

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-11

  • platform/RuntimeApplicationChecks.h:

(WebCore::isInGPUProcess): Define isInGPUProcess() in all cases but
return false if ENABLE_GPU_PROCESS is disabled.

2:36 AM Changeset in webkit [291152] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Add a unit tests to check the remote inspector HTTP server
https://bugs.webkit.org/show_bug.cgi?id=237708

Reviewed by Michael Catanzaro.

Source/WebKit:

Ensure we close the socket if it's still open when the remote inspector client is destroyed.

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::~RemoteInspectorClient):

Source/WTF:

  • wtf/glib/SocketConnection.h: Export close().

Tools:

Rework the inspector server test to also allow to launch the HTTP server and check it correctly serves the
target list page.

  • TestWebKitAPI/Tests/WebKitGtk/InspectorTestServer.cpp:

(main):

  • TestWebKitAPI/Tests/WebKitGtk/TestInspectorServer.cpp:

(InspectorHTTPServerTest::setup):
(InspectorHTTPServerTest::teardown):
(testInspectorServerPageList):
(testInspectorHTTPServerPageList):
(beforeAll):
(afterAll):
(stopTestServer): Deleted.
(sigAbortHandler): Deleted.
(connectToInspectorServer): Deleted.
(waitUntilInspectorServerIsReady): Deleted.
(startTestServer): Deleted.

1:27 AM Changeset in webkit [291151] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[web-animations] refactor discrete SVG properties to use a dedicated animation wrapper
https://bugs.webkit.org/show_bug.cgi?id=237760

Reviewed by Antti Koivisto.

We added getters and setters on RenderStyle for properties exposed on SVGRenderStyle
solely for the purpose of animation support. Instead, we add a dedicated animation
wrapper that removes the methods from RenderStyle and do all the work in
CSSPropertyAnimation.cpp. This will be beneficial for future SVG properties
with discrete animation support that are yet to be added.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::clipRule const): Deleted.
(WebCore::RenderStyle::setClipRule): Deleted.
(WebCore::RenderStyle::colorInterpolation const): Deleted.
(WebCore::RenderStyle::setColorInterpolation): Deleted.
(WebCore::RenderStyle::colorInterpolationFilters const): Deleted.
(WebCore::RenderStyle::setColorInterpolationFilters): Deleted.
(WebCore::RenderStyle::dominantBaseline const): Deleted.
(WebCore::RenderStyle::setDominantBaseline): Deleted.
(WebCore::RenderStyle::fillRule const): Deleted.
(WebCore::RenderStyle::setFillRule): Deleted.

1:20 AM Changeset in webkit [291150] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GLIB] Debian Stable & Ubuntu LTS build is failing after r291093
https://bugs.webkit.org/show_bug.cgi?id=237756

Reviewed by Carlos Garcia Campos.

Use soup_websocket_connection_send_message when SOUP < 2.67.3.

  • UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp:
12:40 AM Changeset in webkit [291149] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Disable WebGL and DOM GPU process when some dependencies are unavailable
https://bugs.webkit.org/show_bug.cgi?id=237700
<rdar://problem/88735051>

Reviewed by Eric Carlson.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
(WebKit::defaultUseGPUProcessForWebGLEnabled):

Note: See TracTimeline for information about the timeline view.