Timeline



May 28, 2021:

10:48 PM Changeset in webkit [278236] by achristensen@apple.com
  • 4 edits in trunk

Punycode encode U+0BE6 when not in context of other Tamil characters
https://bugs.webkit.org/show_bug.cgi?id=226409
<rdar://78160926>

Reviewed by Tim Horton.

Source/WTF:

It has quite legitimate use, so we don't want to always punycode encode it,
but when used in the context of non-Tamil characters we want to punycode encode it.

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_ARMENIAN>):
(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_TAMIL>):
(WTF::URLHelpers::isOfScriptType):
(WTF::URLHelpers::isLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeCharacter): Deleted.
(WTF::URLHelpers::isArmenianScriptCharacter): Deleted.
(WTF::URLHelpers::isArmenianLookalikeSequence): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

10:27 PM Changeset in webkit [278235] by Wenson Hsieh
  • 8 edits
    2 adds in trunk

Web process terminates when attempting to log in on bankid.no
https://bugs.webkit.org/show_bug.cgi?id=226411
rdar://77419432

Reviewed by Chris Dumez.

Source/WebCore:

On bankid.no, we hit an erroneous MESSAGE_CHECK after decoding and applying an EndClipToDrawingCommands while
the display list replayer's m_maskImageBuffer is null. This may occur as a result of the following sequence of
events:

  1. We call into clipToDrawingCommands inside CanvasRenderingContext2DBase, while drawing text with either

a gradient or pattern fill style.

  1. A BeginClipToDrawingCommands item is decoded and handled in the GPU process; we create and store a new

mask image buffer on the display list replayer in the GPU process.

  1. When we decode the DrawGlyphs item while drawing into the mask buffer, we see that the resource identifier

corresponding to the font is missing from the resource cache in the GPU process, and subsequently go to
sleep while we wait for the resource to arrive.

  1. The web font data arrives in the GPU process, and we add it to the cache; this allows us to continue

processing the display list from where we paused replay in step (3).

  1. Eventually, we handle the EndClipToDrawingCommands item; however, since this is now happening underneath

a different GPU process wakeup message than in (2), our mask image buffer from (1) is missing. This not only
causes all of the prior drawing commands to target the canvas' image buffer rather than the mask image
buffer, but also causes us to hit a MESSAGE_CHECK and terminate the web process.

To fix this, we add some DisplayList::Replayer::Delegate method hooks to call out into the replayer client when
a mask image buffer has been created or cleared out; in the GPU process, we then use these client hooks to keep
track of the current mask image buffer that is the target of display list replayer.

If we go to sleep and then resume display list processing later for any reason, we then pass this mask image
buffer back to the display list replayer upon construction, and simply let the display list replayer paint into
the maks image buffer's context.

Test: fast/canvas/fill-gradient-text-with-web-font.html

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::Replayer):
(WebCore::DisplayList::Replayer::applyItem):

Call into the client hooks below.

  • platform/graphics/displaylists/DisplayListReplayer.h:

(WebCore::DisplayList::Replayer::Replayer):

When initializing a DisplayList::Replayer, make it possible to take in an initial mask image buffer as well.

(WebCore::DisplayList::Replayer::Delegate::didCreateMaskImageBuffer):
(WebCore::DisplayList::Replayer::Delegate::didResetMaskImageBuffer):

Add new replayer delegate hooks to inform the clients layer when the replayer's mask image buffer has been
created or cleared out. See WebKit ChangeLog for more information.

Source/WebKit:

See WebCore ChangeLog for more details.

  • GPUProcess/graphics/RemoteImageBuffer.h:

Implement the new display list replayer delegate hooks and plumb the calls over to the RemoteRenderingBackend.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::submit):

Keep track of m_currentMaskImageBuffer by implementing the methods below, and use this when initializing our
DisplayList::Replayer if needed.

(WebKit::RemoteRenderingBackend::didCreateMaskImageBuffer):
(WebKit::RemoteRenderingBackend::didResetMaskImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:

LayoutTests:

Add a layout test that exercises the crash by first serializing a large number of display list items, and then
calling fillText with a web font and a gradient fillStyle.

  • fast/canvas/fill-gradient-text-with-web-font-expected.html: Added.
  • fast/canvas/fill-gradient-text-with-web-font.html: Added.
9:34 PM Changeset in webkit [278234] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[JSC] Escape $ only when run with SSH
https://bugs.webkit.org/show_bug.cgi?id=226385

Reviewed by Alexey Proskuryakov.

  • Scripts/run-jsc-stress-tests:
6:28 PM Changeset in webkit [278233] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Regression: Raw AudioBufferSourceNode playback causes repeated crackling sound
https://bugs.webkit.org/show_bug.cgi?id=222098
<rdar://problem/74546471>

Reviewed by Darin Adler.

The issue was due to certain audio nodes (such as AudioBufferSourceNode) staying in the audio
graph after they were no longer needed. As a result, the audio graph was becoming larger and
larger and the audio performance should degrade due to us traversing this increasingly large
graph.

The audio nodes that had trouble getting removed from the graphs were tail processing nodes.
Those are nodes that may still produce output for a while after they no longer have any
inputs. PannerNode and DelayNode are example of such nodes.

When a Node is no longer useful (the node no longer has any connections, m_connectionRefCount
is 0), we call disableOutputsIfNecessary() on it to disable its outputs and avoid doing any
processing of these outputs since they no longer have an input. disableOutputsIfNecessary()
would normally call disableOutputs() (if not already disabled) but there was an exception
in the case where the node requires tail processing. For such nodes, you wouldn't want to
disable them until they've finished processing their tail.

The issue was that once those nodes had finished processing their tail, we wouldn't come
back to them and disable their outputs later on. As a result, we would process more and
more (silent) nodes and the audio performance would seriously deteriorate.

To address this, we now add the node to the context's list of tail processing nodes in
disableOutputsIfNecessary() if the node requires tail processing. After each rendering
quantum, we go through those tail processing nodes and check if they have finished
processing their tail. If they have, we go ahead and disable their outputs at this point
and remove them from the list.

This is modeled after what Blink is doing for tail processing nodes in:

I have verified that on the following demo, the performance no longer deteriorates after
a while:

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::disableOutputsIfNecessary):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::isTailProcessing const):
(WebCore::AudioNode::setIsTailProcessing):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::uninitialize):
(WebCore::BaseAudioContext::handlePostRenderTasks):
(WebCore::BaseAudioContext::addTailProcessingNode):
(WebCore::BaseAudioContext::removeTailProcessingNode):
(WebCore::BaseAudioContext::updateTailProcessingNodes):
(WebCore::BaseAudioContext::disableOutputsForFinishedTailProcessingNodes):
(WebCore::BaseAudioContext::finishTailProcessing):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::TailProcessingNode::TailProcessingNode):
(WebCore::BaseAudioContext::TailProcessingNode::~TailProcessingNode):
(WebCore::BaseAudioContext::TailProcessingNode::operator-> const):
(WebCore::BaseAudioContext::TailProcessingNode::operator== const):

6:05 PM Changeset in webkit [278232] by Chris Dumez
  • 9 edits in trunk

Stop using UncheckedLock in WTF::MetaAllocator
https://bugs.webkit.org/show_bug.cgi?id=226396

Reviewed by Darin Adler.

Stop using UncheckedLock in WTF::MetaAllocator, as it is being phased out in favor on Lock,
which supports Clang thread safety analysis.

Source/JavaScriptCore:

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::getLock const):

  • jit/ExecutableAllocator.h:

(JSC::ExecutableAllocatorBase::WTF_RETURNS_LOCK):

  • tools/VMInspector.cpp:

(JSC::VMInspector::isValidExecutableMemory):

Source/WTF:

  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::release):
(WTF::MetaAllocator::MetaAllocator):
(WTF::MetaAllocator::allocate):
(WTF::MetaAllocator::currentStatistics):

  • wtf/MetaAllocator.h:
5:52 PM Changeset in webkit [278231] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

DelayDSPKernel::process() is slow
https://bugs.webkit.org/show_bug.cgi?id=226358

Reviewed by Darin Adler.

When I profiled the demo at https://jsfiddle.net/KrisJohnson/s5vL24o1/123/ (in the context of Bug 222098),
I noticed that 20% of the CPU time was spent under DelayDSPKernel::process().

To improve this, we now vectorize DelayDSPKernel::process() in the common case where there is no automation
and the delay time is constant.

The implementation is very similar to the one in Blink:

Some differences compared to the Blink implementation:

  • I did not vectorize the A-rate case for simplicity. It is not as common and it is more complicated. We may consider doing this in the future if really needed.
  • On Cocoa, we leveage Accelerate's vDSP_vintb() to do the interpolation instead of doing 2 separate operations.

This doesn't fix Bug 222098 but it does improve the situation quite a bit. I also see that the CPU time
spent under DelayDSPKernel::process() went from ~20% to 1.2% on this demo.

No new tests, no Web-facing behavior change, just a performance optimization.

  • Modules/webaudio/DelayDSPKernel.cpp:

(WebCore::copyToCircularBuffer):
(WebCore::DelayDSPKernel::DelayDSPKernel):
(WebCore::DelayDSPKernel::bufferLengthForDelay const):
(WebCore::DelayDSPKernel::process):
(WebCore::DelayDSPKernel::processARate):
(WebCore::DelayDSPKernel::processKRate):

  • Modules/webaudio/DelayDSPKernel.h:
  • platform/audio/VectorMath.cpp:

(WebCore::VectorMath::substract):
(WebCore::VectorMath::interpolate):

  • platform/audio/VectorMath.h:
5:18 PM Changeset in webkit [278230] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Cocoa] Prevent GPU Process from attempt to connect to the AppSSO service (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=226393
<rdar://problem/78614833>

Reviewed by Eric Carlson.

In Bug 224834 I modified WebKit to use avoid invoking AppSSO in CFNetwork calls, since we make those
decisions prior to beginning our network interactions. I missed a media call where this was being done.

This patch corrects that mistake.

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

(WebCore::canonicalURL):

4:53 PM Changeset in webkit [278229] by Chris Dumez
  • 11 edits
    1 delete in trunk/Source

Stop using UncheckedLock in JSDOMGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=226281

Reviewed by Darin Adler.

Source/JavaScriptCore:

Drop JSC::lockDuringMarking() and its now empty header given that it does conditional
locking and it is not compatible with Clang thread safety analysis.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/UnlinkedCodeBlock.h:
  • heap/LockDuringMarking.h: Removed.

Source/WebCore:

Stop using UncheckedLock in JSDOMGlobalObject and use Lock instead of benefit from Clang thread
safety analysis. This is a step towards phasing out UncheckedLock and improving the thread
safety of our code.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::visitChildrenImpl):
(WebCore::JSDOMGlobalObject::clearDOMGuardedObjects):

  • bindings/js/JSDOMGlobalObject.h:

(WebCore::getDOMConstructor):

  • bindings/js/JSDOMGuardedObject.cpp:

(WebCore::DOMGuardedObject::DOMGuardedObject):
(WebCore::DOMGuardedObject::clear):
(WebCore::DOMGuardedObject::removeFromGlobalObject):

  • bindings/js/JSDOMGuardedObject.h:
  • bindings/js/JSDOMWrapperCache.cpp:

(WebCore::cacheDOMStructure):

3:52 PM Changeset in webkit [278228] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.0.9

Tag Safari-612.1.15.0.9.

2:53 PM Changeset in webkit [278227] by don.olmstead@sony.com
  • 4 edits in trunk/Source/WebKit

[Cocoa] HDR variants in HLS playlists not selected when screen is HDR
https://bugs.webkit.org/show_bug.cgi?id=226349
<rdar://76963977>

Unreviewed build fix after r278204.

Update the method signature of RemoteMediaPlayerProxy::prepareForPlayback for non-Cocoa
platforms.

  • GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):

  • GPUProcess/media/playstation/RemoteMediaPlayerProxyPlayStation.cpp:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):

  • GPUProcess/media/win/RemoteMediaPlayerProxyWin.cpp:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):

2:53 PM Changeset in webkit [278226] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Regression(r278179): m_serverLock is still held after WebIDBServer is destroyed
https://bugs.webkit.org/show_bug.cgi?id=226389

Reviewed by Chris Dumez.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::close):

1:18 PM Changeset in webkit [278225] by commit-queue@webkit.org
  • 5 edits in trunk

Prevent resetting scroll position in unnecessary cases during page load
https://bugs.webkit.org/show_bug.cgi?id=226338
rdar://75334651

Patch by Matt Gilligan <matthew_gilligan@apple.com> on 2021-05-28
Reviewed by Simon Fraser.

Source/WebKit:

When WKWebView's scroll view has a refresh control and is rubber banding along the top
edge, don't cancel scrolling animations or reset contentOffset within valid range due to
the page load. This can cause flickering during dragging and can prevent the bounce
animation from finishing.

Test: ScrollViewInsetTests.PreserveContentOffsetForRefreshControl

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didCommitLoadForMainFrame]):
Avoid calling -_stopScrollingAndZoomingAnimations when rubber banding for a refresh control
to prevent cancelling a bounce animation.

(-[WKWebView _restoreScrollAndZoomStateForTransaction:]):
(-[WKWebView _didCommitLayerTree:]):
Don't adjust content offset to be within valid range when rubber banding for a refresh
control, or the scroll position will be reset while dragging or bouncing.

(-[WKWebView _scrollViewIsRubberBandingForRefreshControl]):
Return whether _scrollView has a refresh control and is rubber banding along the top edge.

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _setContentSizePreservingContentOffsetDuringRubberband:]):
When the refresh control is dismissing, the scroll view will be rubber banding but not
dragging or bouncing. Treat a non-nil refreshControl as a hint that the scroll view might
be rubber banding.

Tools:

  • TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:

(TestWebKitAPI::TEST):

1:17 PM Changeset in webkit [278224] by rmorisset@apple.com
  • 3 edits
    1 add in trunk

Fix LikelyDenseUnsignedIntegerSet::clear()
https://bugs.webkit.org/show_bug.cgi?id=226388
JSTests:

rdar://78607433

Reviewed by Mark Lam.

  • stress/stack-allocation-regression.js: Added.

(foo):

Source/WTF:

Reviewed by Mark Lam.

There are two problems with it:
1) It calls BitVector::clearAll(), which does not free any memory.
Instead, it should call BitVector::~BitVector(), then do a placement new of a fresh BitVector (to get it back to its inline condition)
2) More problematically, it changes m_size before calling isBitVector() which relies crucially on the value of m_size.
So it is going to believe that it is in BitVector mode even when it is actually in HashSet mode.

  • wtf/LikelyDenseUnsignedIntegerSet.h:

(WTF::LikelyDenseUnsignedIntegerSet::clear):

1:13 PM Changeset in webkit [278223] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebKit

[Cocoa] Hang in WebM format reader when loading content from https://powerrangers.fandom.com/
https://bugs.webkit.org/show_bug.cgi?id=226128
<rdar://77645877>

Reviewed by Eric Carlson.

When creating a format reader, MediaToolbox will query for various properties including ones about
MetadataFormat and MetadataKeySpace. We don't support those properties, but we still block until
tracks are loaded before answering that we don't support them. Instead, just return early unless
the query is for the one property which we do support, Duration.

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::copyProperty):

1:08 PM Changeset in webkit [278222] by Jean-Yves Avenard
  • 5 edits
    2 adds in trunk

Add MediaSession.callActionHandler
https://bugs.webkit.org/show_bug.cgi?id=226077
rdar://77463304

Reviewed by Eric Carlson.

Source/WebCore:

Make it possible for JavaScript to be able to trigger a MediaSession action
handler so a MediaSession.coordinator polyfill such as one provided by an
external JS library will work.
Test: media/media-session/callActionHandler.html

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::callActionHandler):

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSession.idl: Add method definition.

LayoutTests:

  • media/media-session/callActionHandler-expected.txt: Added.
  • media/media-session/callActionHandler.html: Added.
1:02 PM Changeset in webkit [278221] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[iOS] Adjust logic when determining whether to enable image extraction actions in the callout bar
https://bugs.webkit.org/show_bug.cgi?id=226387
rdar://76781788

Reviewed by Tim Horton and Devin Rousso.

Call into the superclass (which contains additional restrictions beyond our isContentEditable check on the
editor state), and additionally refactor this helper function to take a selector and return whether or not it is
one of the image extraction action selectors (as opposed to returning the selector itself).

See Radar for more details.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):

12:54 PM Changeset in webkit [278220] by Alan Coon
  • 8 edits in branches/safari-612.1.15.0-branch/Source

Versioning.

WebKit-7612.1.15.0.9

12:51 PM Changeset in webkit [278219] by Alan Bujtas
  • 5 edits
    2 adds in trunk

CrashOnOverflow in WebCore::RenderTable::cellBefore(WebCore::RenderTableCell const*)
https://bugs.webkit.org/show_bug.cgi?id=225949

Reviewed by Antti Koivisto.

Source/WebCore:

The table section maintains a grid of rows and columns. This grid is used to jump to cells directly during layout (as opposed to tree walking).
It needs to be re-populated on tree mutations e.g when a new row is added to the table.
RenderTableSection::willInsertTableRow assumes that rows and cells are inserted subsequently, after each other and
it's ok to ignore the grid invalidation on appends as the subsequent ::addCell() call takes care of the grid.
However in some continuation split cases, we re-parent complete rows under table sections which means no subsequent ::addCell() calls.

This patch addresses this case by using the same pattern we have for block continuation invalidation in RenderTreeBuilder::splitAnonymousBoxesAroundChild().

Test: fast/table/table-split-on-insert-with-section-crash.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::markBoxForRelayoutAfterSplit):
(WebCore::markBoxForRelayoutAfterSplit): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::splitInlines):

LayoutTests:

  • fast/table/table-split-on-insert-with-section-crash-expected.txt: Added.
  • fast/table/table-split-on-insert-with-section-crash.html: Added.
12:40 PM Changeset in webkit [278218] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[JSC] Fix run-jsc-stress-tests missing escape $
https://bugs.webkit.org/show_bug.cgi?id=226385

Reviewed by Alexey Proskuryakov.

  • Scripts/run-jsc-stress-tests:
11:54 AM Changeset in webkit [278217] by weinig@apple.com
  • 17 edits in trunk/Source

Add stub implementation of CA separated portal bits for GraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=226343

Reviewed by Simon Fraser.

Source/WebCore:

Plumbs isSeparatedPortal and isDescendentOfSeparatedPortal bits through GraphicsLayer.
Renames setSeparated to setIsSeparated for consistency.

Currently unused, but getting the bits in is big enough that its helpful
to land on its own.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::isIsSeparated const):
(WebCore::GraphicsLayer::setIsSeparated):
(WebCore::GraphicsLayer::isSeparatedPortal const):
(WebCore::GraphicsLayer::setIsSeparatedPortal):
(WebCore::GraphicsLayer::isDescendentOfSeparatedPortal const):
(WebCore::GraphicsLayer::setIsDescendentOfSeparatedPortal):
(WebCore::GraphicsLayer::isSeparated const): Deleted.
(WebCore::GraphicsLayer::setSeparated): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setIsSeparated):
(WebCore::GraphicsLayerCA::setIsSeparatedPortal):
(WebCore::GraphicsLayerCA::setIsDescendentOfSeparatedPortal):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateIsSeparated):
(WebCore::GraphicsLayerCA::updateIsSeparatedPortal):
(WebCore::GraphicsLayerCA::updateIsDescendentOfSeparatedPortal):
(WebCore::GraphicsLayerCA::setSeparated): Deleted.
(WebCore::GraphicsLayerCA::updateSeparated): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::setIsSeparated):
(WebCore::PlatformCALayerCocoa::isSeparatedPortal const):
(WebCore::PlatformCALayerCocoa::setIsSeparatedPortal):
(WebCore::PlatformCALayerCocoa::isDescendentOfSeparatedPortal const):
(WebCore::PlatformCALayerCocoa::setIsDescendentOfSeparatedPortal):
(WebCore::PlatformCALayerCocoa::setSeparated): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

Source/WebKit:

Plumbs isSeparatedPortal and isDescendentOfSeparatedPortal bits through GraphicsLayer.
Renames setSeparated to setIsSeparated for consistency.

Currently unused, but getting the bits in is big enough that its helpful
to land on its own.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):

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

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::RemoteLayerTreeTransaction): Deleted.
(WebKit::RemoteLayerTreeTransaction::~RemoteLayerTreeTransaction): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::setIsSeparated):
(WebKit::PlatformCALayerRemote::isSeparatedPortal const):
(WebKit::PlatformCALayerRemote::setIsSeparatedPortal):
(WebKit::PlatformCALayerRemote::isDescendentOfSeparatedPortal const):
(WebKit::PlatformCALayerRemote::setIsDescendentOfSeparatedPortal):
(WebKit::PlatformCALayerRemote::setSeparated): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:

Source/WTF:

  • wtf/PlatformHave.h: Add HAVE_CORE_ANIMATION_SEPARATED_PORTALS.
11:47 AM Changeset in webkit [278216] by Russell Epstein
  • 1 copy in tags/Safari-611.3.6.1.3

Tag Safari-611.3.6.1.3.

11:45 AM Changeset in webkit [278215] by Russell Epstein
  • 2 edits in branches/safari-611.3.6.1-branch/Source/WTF

Cherry-pick r278209. rdar://problem/78595584

Unreviewed build fix after r277881.

Deal with IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES potentially not being defined on
older OSes.

  • wtf/cocoa/FileSystemCocoa.mm: (WTF::FileSystemImpl::setAllowsMaterializingDatalessFiles): (WTF::FileSystemImpl::allowsMaterializingDatalessFiles):

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

11:45 AM Changeset in webkit [278214] by Russell Epstein
  • 2 edits in branches/safari-611.3.6.1-branch/Source/WTF

Cherry-pick r278208. rdar://problem/78595584

Unreviewed build fix after r277881.

Add missing header include.

  • wtf/cocoa/FileSystemCocoa.mm:

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

11:36 AM Changeset in webkit [278213] by sbarati@apple.com
  • 11 edits
    2 adds in trunk/Source/JavaScriptCore

Add the ability to dump statistics about cumulative counts and code sizes of Baseline JIT opcodes and DFG nodes
https://bugs.webkit.org/show_bug.cgi?id=226200

Reviewed by Robin Morisset.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::SlowPathGenerator::currentNode const):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::compileAndLinkWithoutFinalizing):

  • jit/JITSizeStatistics.cpp: Added.

(JSC::JITSizeStatistics::markStart):
(JSC::JITSizeStatistics::markEnd):
(JSC::JITSizeStatistics::dump const):

  • jit/JITSizeStatistics.h: Added.

(JSC::JITSizeStatistics::reset):

  • jsc.cpp:

(runJSC):

  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):

11:31 AM Changeset in webkit [278212] by Russell Epstein
  • 8 edits in branches/safari-611.3.6.1-branch/Source

Versioning.

WebKit-7611.3.6.1.3

11:13 AM Changeset in webkit [278211] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Don't sink arguments past the context of the inline call frame they were created in
https://bugs.webkit.org/show_bug.cgi?id=226363
<rdar://78392801>

Reviewed by Filip Pizlo.

JSTests:

  • stress/dont-sink-arguments-past-inline-call-frame.js: Added.

(foo):
(fooWrap):
(empty):
(bar):

Source/JavaScriptCore:

DFG OSR exit isn't set up to allow materializing phantom arguments objects
when the inline call frame is no longer present in the exit metadata. There
may be multiple reasons for this, but there's at least one I discovered:
We don't analyze any locals when reconstructing the variable event stream
if that local is past the extent of the inline call frame.

This patch makes it so we treat it as an escape if between the definition and
the last use of a sink candidate (either via an IR use or bytecode liveness)
there is an exit to a place in the graph where the inline call frame of the
definition is no longer present.

  • dfg/DFGVarargsForwardingPhase.cpp:
11:11 AM Changeset in webkit [278210] by stephan.szabo@sony.com
  • 14 edits in trunk/Source/JavaScriptCore

Regenerate builtins generator expectations after optional changes
https://bugs.webkit.org/show_bug.cgi?id=226381

Reviewed by Chris Dumez.

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
10:59 AM Changeset in webkit [278209] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed build fix after r277881.

Deal with IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES potentially not being defined on
older OSes.

  • wtf/cocoa/FileSystemCocoa.mm:

(WTF::FileSystemImpl::setAllowsMaterializingDatalessFiles):
(WTF::FileSystemImpl::allowsMaterializingDatalessFiles):

10:47 AM Changeset in webkit [278208] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed build fix after r277881.

Add missing header include.

  • wtf/cocoa/FileSystemCocoa.mm:
10:23 AM Changeset in webkit [278207] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Buffer computations should use correct type
https://bugs.webkit.org/show_bug.cgi?id=226352
<rdar://problem/78116213>

Reviewed by Ryosuke Niwa.

The implementation of utf8Buffer holds the buffer size in an 'int', even though our buffer
APIs take size_t arguments. Let's make this consistent.

  • platform/SharedBuffer.cpp:

(WebCore::utf8Buffer):

9:58 AM Changeset in webkit [278206] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

The jsc shell should not continue executing after a termination has been received.
https://bugs.webkit.org/show_bug.cgi?id=226368
rdar://78013374

Reviewed by Saam Barati.

This patch makes the jsc shell forbid execution in all the places that it has
caught and seen a TerminationException.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):
(checkException):
(runWithOptions):
(runInteractive):

9:52 AM Changeset in webkit [278205] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[BigSur Wk1] imported/w3c/web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-stacking-and-clipping-001.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226377

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:44 AM Changeset in webkit [278204] by jer.noble@apple.com
  • 8 edits in trunk/Source/WebKit

[Cocoa] HDR variants in HLS playlists not selected when screen is HDR
https://bugs.webkit.org/show_bug.cgi?id=226349
<rdar://76963977>

Reviewed by Eric Carlson.

An existing test, http/tests/media/hls/hls-hdr-switch.html, should have caught this regression,
but is not currently functional as it depends on PHP, which has been removed.

The preferredDynamicRangeMode needs to be piped over from WebContent -> GPU process.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::setPreferredDynamicRangeMode):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):

  • Scripts/webkit/messages.py:

(headers_for_type):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::setPreferredDynamicRangeMode):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
9:43 AM Changeset in webkit [278203] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Return immediately when asked to paint an AVPlayer that hasn't reached HaveCurrentData
https://bugs.webkit.org/show_bug.cgi?id=226350
rdar://77910715

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer): Return immediately
if readyState < HaveCurrentData.
(WebCore::MediaPlayerPrivateAVFoundationObjC::videoOutputHasAvailableFrame): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): Ditto.

9:39 AM Changeset in webkit [278202] by Devin Rousso
  • 8 edits in trunk

[Modern Media Controls] put the localized information for tracks first if the track is not in the user's preferred language
https://bugs.webkit.org/show_bug.cgi?id=226361
<rdar://problem/78497853>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html

This makes it clearer/easier for the user to understand what's going on when the track label
is not in the user's preferred language. For example, if a <video> has an "English" audio
track, it's not very helpful to show "English (英语)" for Chinese users instead of something
like "英语 (English)".

If the track has a label and either matches the user's preferred language or its label
already contains the localized language name, combine the track's label with a localized
description of the track if that description isn't already in the label. Otherwise, add
the localized language name first, then the description of the track, and finally the label.

Here are some examples if the user's preferred language is English:

  • <track kind="subtitles" srclang="en"> would show "English"
  • <track kind="subtitles" srclang="en" label="Foo"> would show "Foo"
  • <track kind="captions" srclang="en"> would show "English Captions"
  • <track kind="captions" srclang="en" label="Foo"> would show "Foo Captions"
  • <track kind="captions" srclang="en" label="Captions"> would show "Captions"
  • <track kind="subtitles" srclang="fr"> would show "French"
  • <track kind="subtitles" srclang="fr" label="Foo"> would show "French (Foo)"
  • <track kind="captions" srclang="fr"> would show "French Captions"
  • <track kind="captions" srclang="fr" label="Foo"> would show "French Captions (Foo)"
  • <track kind="captions" srclang="fr" label="Captions"> would show "French Captions"
  • page/CaptionUserPreferences.cpp:

(WebCore::trackDisplayName):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::addTextTrackKindDisplayNameIfNeeded): Added.
(WebCore::addAudioTrackKindDisplayNameIfNeeded): Added.
(WebCore::addTrackKindDisplayNameIfNeeded): Added.
(WebCore::trackDisplayName):
(WebCore::CaptionUserPreferencesMediaAF::displayNameForTrack const):
(WebCore::textTrackCompare):
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
(WebCore::buildDisplayStringForTrackBase): Deleted.

  • platform/LocalizedStrings.h:
  • platform/LocalizedStrings.cpp:

(WebCore::trackNoLabelText): Added.
(WebCore::textTrackOffMenuItemText): Added.
(WebCore::textTrackAutomaticMenuItemText): Added.
(WebCore::addTrackLabelAsSuffix): Added.
(WebCore::textTrackKindClosedCaptionsDisplayName): Added.
(WebCore::addTextTrackKindClosedCaptionsSuffix): Added.
(WebCore::textTrackKindCaptionsDisplayName): Added.
(WebCore::addTextTrackKindCaptionsSuffix): Added.
(WebCore::textTrackKindDescriptionsDisplayName): Added.
(WebCore::addTextTrackKindDescriptionsSuffix): Added.
(WebCore::textTrackKindChaptersDisplayName): Added.
(WebCore::addTextTrackKindChaptersSuffix): Added.
(WebCore::textTrackKindMetadataDisplayName): Added.
(WebCore::addTextTrackKindMetadataSuffix): Added.
(WebCore::textTrackKindSDHDisplayName): Added.
(WebCore::addTextTrackKindSDHSuffix): Added.
(WebCore::textTrackKindEasyReaderDisplayName): Added.
(WebCore::addTextTrackKindEasyReaderSuffix): Added.
(WebCore::textTrackKindForcedDisplayName): Added.
(WebCore::addTextTrackKindForcedSuffix): Added.
(WebCore::audioTrackKindDescriptionsDisplayName): Added.
(WebCore::addAudioTrackKindDescriptionsSuffix): Added.
(WebCore::audioTrackKindCommentaryDisplayName): Added.
(WebCore::addAudioTrackKindCommentarySuffix): Added.
(WebCore::textTrackNoLabelText): Deleted.
(WebCore::audioTrackNoLabelText): Deleted.
(WebCore::captionsTextTrackKindDisplayName): Deleted.
(WebCore::captionsTextTrackWithoutLabelMenuItemText): Deleted.
(WebCore::descriptionsTextTrackKindDisplayName): Deleted.
(WebCore::descriptionsTextTrackWithoutLabelMenuItemText): Deleted.
(WebCore::chaptersTextTrackKindDisplayName): Deleted.
(WebCore::chaptersTextTrackWithoutLabelMenuItemText): Deleted.
(WebCore::metadataTextTrackKindDisplayName): Deleted.
(WebCore::metadataTextTrackWithoutLabelMenuItemText): Deleted.
(WebCore::textTrackCountryAndLanguageMenuItemText): Deleted.
(WebCore::textTrackLanguageMenuItemText): Deleted.
(WebCore::closedCaptionKindTrackDisplayName): Deleted.
(WebCore::closedCaptionTrackMenuItemText): Deleted.
(WebCore::sdhTrackKindDisplayName): Deleted.
(WebCore::sdhTrackMenuItemText): Deleted.
(WebCore::easyReaderKindDisplayName): Deleted.
(WebCore::easyReaderTrackMenuItemText): Deleted.
(WebCore::forcedTrackKindDisplayName): Deleted.
(WebCore::forcedTrackMenuItemText): Deleted.
(WebCore::audioDescriptionTrackSuffixText): Deleted.

  • en.lproj/Localizable.strings:

Clean up localized string functions related to media controls.

LayoutTests:

  • media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages-expected.txt:
9:26 AM Changeset in webkit [278201] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

Unreviewed, reverting r278196.
https://bugs.webkit.org/show_bug.cgi?id=226379

Causes asserts in layoutformattingcontext

Reverted changeset:

"[LFC] Transition containing block for loops to range loops"
https://bugs.webkit.org/show_bug.cgi?id=226315
https://trac.webkit.org/changeset/278196

9:24 AM Changeset in webkit [278200] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, reverting r278199.
https://bugs.webkit.org/show_bug.cgi?id=226378

Causes asserts in layoutformattingcontext

Reverted changeset:

"[LFC][TFC] Do not include vertical spacing when resolving
percent height for table content"
https://bugs.webkit.org/show_bug.cgi?id=226365
https://trac.webkit.org/changeset/278199

8:59 AM Changeset in webkit [278199] by Alan Bujtas
  • 9 edits
    2 adds in trunk

[LFC][TFC] Do not include vertical spacing when resolving percent height for table content
https://bugs.webkit.org/show_bug.cgi?id=226365

Source/WebCore:

Reviewed by Antti Koivisto.

<table style="height: 100px; border-spacing: 10px;"><tr><td style="height: 100%"></td></tr></table>
The <td>'s 100% height is resolved against 100px - (2 * 10px) -> 80px;

Test: fast/layoutformattingcontext/table-with-percent-columns-and-spacing.html

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::TableFormattingContext):

  • layout/formattingContexts/table/TableFormattingContext.h:
  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::TableFormattingGeometry):
(WebCore::Layout::TableFormattingGeometry::computedCellBorder const):

  • layout/formattingContexts/table/TableFormattingGeometry.h:

(WebCore::Layout::TableFormattingGeometry::formattingContext const):

  • layout/formattingContexts/table/TableFormattingQuirks.cpp:

(WebCore::Layout::TableFormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):

  • layout/formattingContexts/table/TableFormattingQuirks.h:

(WebCore::Layout::TableFormattingQuirks::formattingContext const):

LayoutTests:

Reviewed by Antti Koivisto.

  • TestExpectations: WebKit table layout don't resolve the height percent properly when border spacing is present.
  • fast/layoutformattingcontext/table-with-percent-columns-and-spacing-expected.html: Added.
  • fast/layoutformattingcontext/table-with-percent-columns-and-spacing.html: Added.
8:56 AM Changeset in webkit [278198] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE] Correctly compute wheel event phase for 2D axis events
https://bugs.webkit.org/show_bug.cgi?id=226370

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-05-28
Reviewed by Adrian Perez de Castro.

2D-capable wpe_input_axis_event objects don't have usable axis and delta
values set on the base struct, but keep all that information on the more
detailed wpe_input_axis_2d_event struct.

For such events, the correct phase then has to be special-cased,
otherwise the default determination marks both axes as inactive and only
PhaseEnded events are dispatched into the engine.

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

8:50 AM Changeset in webkit [278197] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk

[GPUP] [Video/Audio/Text]TrackPrivateRemote.h should use startTimeVariance
https://bugs.webkit.org/show_bug.cgi?id=226355
rdar://77326202

Reviewed by Jer Noble.

Source/WebKit:

Test: http/tests/media/hls/hls-webvtt-seek-backwards.html

  • WebProcess/GPU/media/AudioTrackPrivateRemote.h: Use configuration.startTimeVariance.
  • WebProcess/GPU/media/TextTrackPrivateRemote.h: Ditto.
  • WebProcess/GPU/media/VideoTrackPrivateRemote.h: Ditto.

LayoutTests:

  • http/tests/media/hls/hls-webvtt-seek-backwards-expected.txt: Added.
  • http/tests/media/hls/hls-webvtt-seek-backwards.html: Added.
7:20 AM Changeset in webkit [278196] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC] Transition containing block for loops to range loops
https://bugs.webkit.org/show_bug.cgi?id=226315

Reviewed by Antti Koivisto.

Add support for stayWithin.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::mapTopLeftToFloatingStateRoot const):

  • layout/formattingContexts/FormattingGeometry.cpp:

(WebCore::Layout::FormattingGeometry::computedHeightValue const):

  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isDescendantOf const):

  • layout/layouttree/LayoutBox.h:
  • layout/layouttree/LayoutContainingBlockChainIterator.h:

(WebCore::Layout::LayoutContainingBlockChainIteratorAdapter::begin):
(WebCore::Layout::LayoutContainingBlockChainIteratorAdapter::end):
(WebCore::Layout::LayoutContainingBlockChainIterator::LayoutContainingBlockChainIterator):
(WebCore::Layout::LayoutContainingBlockChainIteratorAdapter::LayoutContainingBlockChainIteratorAdapter):
(WebCore::Layout::containingBlockChain):

6:23 AM Changeset in webkit [278195] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[SOUP] Implement NetworkDataTask::setPriority
https://bugs.webkit.org/show_bug.cgi?id=226371

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-05-28
Reviewed by Adrian Perez de Castro.

To update the soup message priority. In HTTP/2 soup can send a priority frame to prioritize the associated
stream.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::setPriority):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
5:59 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
4:35 AM Changeset in webkit [278194] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Webkit doesn't calculate padding-top/-bottom in % correctly when parent has padding
https://bugs.webkit.org/show_bug.cgi?id=221202

Patch by Rob Buis <rbuis@igalia.com> on 2021-05-28
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Add test for this.

  • web-platform-tests/css/css-position/position-absolute-padding-percentage-expected.txt: Added.
  • web-platform-tests/css/css-position/position-absolute-padding-percentage.html: Added.

Source/WebCore:

Absolute positioned elements should resolve %-ge padding against containing block padding-edge:
https://drafts.csswg.org/css-position-3/#absolute-positioning-containing-block

Test: imported/w3c/web-platform-tests/css/css-position/position-absolute-padding-percentage.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::containingBlockLogicalWidthForContent const):

1:59 AM Changeset in webkit [278193] by Martin Robinson
  • 8 edits
    2 adds in trunk

More readily layout when scroll-snap properties change
https://bugs.webkit.org/show_bug.cgi?id=225950

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scroll-snap/scroll-snap-type-change-expected.txt: Updated expectation

for newly passing test.

Source/WebCore:

Do a layout when scroll-snap properties change instead of trying
to update scroll positions without a layout.

Test: css3/scroll-snap/scroll-snap-style-change-crash.html

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange): Remove code dealing with scrollports
as this is now handled by the RenderStyle diff. Now trigger a layout for scrollports
when the scrolled children change their snap properties.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingScrollableContainerForSnapping const): Made this return a non-const.

  • rendering/RenderObject.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout const): Added code to handle scrollport specific
properties.

LayoutTests:

  • css3/scroll-snap/scroll-snap-style-change-crash-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-style-change-crash.html: Added.
12:15 AM Changeset in webkit [278192] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Metal translator should always collect variables
https://bugs.webkit.org/show_bug.cgi?id=226261

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-28
Reviewed by Dean Jackson.

Always collect the variables when translating GLSL to Metal.
This way tests that invoke translation without SH_VARIABLES still
work.

  • src/compiler/translator/TranslatorMetalDirect.cpp:

(sh::TranslatorMetalDirect::translateImpl):

  • src/compiler/translator/TranslatorMetalDirect.h:

May 27, 2021:

10:26 PM Changeset in webkit [278191] by Wenson Hsieh
  • 7 edits in trunk/Source/WebKit

[GPU Process] Add debug logging around some shared display list codepaths
https://bugs.webkit.org/show_bug.cgi?id=226356

Reviewed by Simon Fraser.

Add logging around the shared display list processing logic between the web and GPU processes. This is the basic
set of log messages I've used in the past to triage crashes and hangs while optimizing MotionMark performance,
and should be sufficient for some basic debugging around display list code around RemoteRenderingBackend(Proxy).

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList):

Log when wakeup messages are sent by the web process and received by the GPU process.

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • Platform/Logging.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::waitForDidFlushWithTimeout):

Log when synchronous flushes are performed, as well as whether they time out.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::sendWakeupMessage):
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):

Log whenever new display list shared memory is created, and also when display lists are reused (additionally
logging the remaining capacity on reused display lists).

10:10 PM Changeset in webkit [278190] by Wenson Hsieh
  • 23 edits
    3 adds in trunk/Source

[macOS] Show context menu when clicking on data detection results in image overlays
https://bugs.webkit.org/show_bug.cgi?id=226274
rdar://75504956

Reviewed by Tim Horton and Aditya Keerthi.

Source/WebCore:

Add a client hook to allow ImageOverlayController to call out into the WebKit client layer when a data detector
button (with a corresponding DDScannerResult) is clicked. See WebKit ChangeLog for more details.

  • WebCore.xcodeproj/project.pbxproj:
  • page/ChromeClient.h:

(WebCore::ChromeClient::handleClickForDataDetectionResult):

  • page/cocoa/DataDetectorElementInfo.h: Added.

Introduce a struct that wraps a data detection result and the accompanying element bounding rect, mainly so that
we have a C++ struct we can plumb through the client layers (rather than directly passing Objective-C objects
around).

  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::handleDataDetectorAction):

Source/WebCore/PAL:

Add declarations for some SPI on RVItem and RVPresenter. See WebKit for more information about where these are
used.

  • pal/spi/cocoa/RevealSPI.h:

Source/WebKit:

Implement a WebKit2 client hook to handle a click over a data detection result by using the Reveal framework to
collect and present a context menu. See below for more details.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<DataDetectorElementInfo>::encode):
(IPC::ArgumentCoder<DataDetectorElementInfo>::decode):

  • Shared/WebCoreArgumentCoders.h:

Add encoding and decoding support for DataDetectorElementInfo.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::handleClickForDataDetectionResult):

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::view const):

Add a helper method to grab the view (either a WKView or WKWebView) from a WebViewImpl.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::handleClickForDataDetectionResult):

Create and present a new WKRevealItemPresenter using the DDScannerResult.

(WebKit::WebViewImpl::didFinishPresentation):

  • UIProcess/PageClient.h:

(WebKit::PageClient::handleClickForDataDetectionResult):

Add more plumbing through the UI process to handle clicking on a data detection result.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::handleClickForDataDetectionResult):

  • UIProcess/mac/WKRevealItemPresenter.h: Added.
  • UIProcess/mac/WKRevealItemPresenter.mm: Added.

Add a helper class that takes an RVItem and is capable of presenting a context menu for the item, on behalf of
WebViewImpl. For the time being, this is only used on macOS (and thus, directly holds a WeakPtr to a
WebViewImpl). However, we may want to use this in the future for Mac Catalyst as well, in which case we should
make this work via a generic WKRevealItemPresenterDelegate protocol instead.

(-[WKRevealItemPresenter initWithWebViewImpl:item:frame:menuLocation:]):
(-[WKRevealItemPresenter showContextMenu]):
(-[WKRevealItemPresenter _callDidFinishPresentationIfNeeded]):

Call out to the WebViewImpl to reset its current reveal item presenter after we've finished presentation. This
happens either after we've dismissed the context menu (if no item is highlighted), or after we've finished
highlighting the item.

(-[WKRevealItemPresenter revealContext:rectsForItem:]):
(-[WKRevealItemPresenter revealContext:shouldUseDefaultHighlightForItem:]):
(-[WKRevealItemPresenter revealContext:startHighlightingItem:]):
(-[WKRevealItemPresenter revealContext:stopHighlightingItem:]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::handleClickForDataDetectionResult):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::handleClickForDataDetectionResult):

  • WebProcess/WebPage/WebPage.h:
10:02 PM Changeset in webkit [278189] by Devin Rousso
  • 4 edits in trunk

Sampled Page Top Color: allow snapshotting of elements with CSS animations/transitions if they're paused
https://bugs.webkit.org/show_bug.cgi?id=226313
<rdar://problem/78534076>

Reviewed by Tim Horton.

Source/WebCore:

The primary concern of sampling elements with CSS animations/transitions is that it
introduces some indeterminism in when the sampling happens vs how far progressed the CSS
animation/transition is. As an example, sampling from a page with an inline <style> that
applies a CSS animation to fade in the CSS background-color from white to black is
more likely to get a color closer to black than if that same CSS was in an external
uncached resource. This wouldn't make for a great experience, so r277044 made it so that any
CSS animations/transitions caused the sampling logic to bail, regardless of the state of the
CSS animation/transition. This is only really an issue for CSS animations/transitions that
are actively running, however, not ones that have yet to run or have already finished. It's
still possible that two loads of the same page could result in different colors (or bails)
depending on how quickly the CSS animation/transition runs or (if the CSS is in an external
resource) how long the containing resource takes to load, but with this patch it's now a
binary state (sample or bail) instead of an indeterminate range of possible sampled colors.

Tests: SampledPageTopColor.HitTestBeforeCSSTransition

SampledPageTopColor.HitTestDuringCSSTransition
SampledPageTopColor.HitTestAfterCSSTransition
SampledPageTopColor.HitTestBeforeCSSAnimation
SampledPageTopColor.HitTestDuringCSSAnimation
SampledPageTopColor.HitTestAfterCSSAnimation

  • page/PageColorSampler.cpp:

(WebCore::isValidSampleLocation):
Use Styleable instead of RenderStyle to get more information about active CSS animations/transitions.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:

(waitForSampledPageTopColorToChange): Added.
(waitForSampledPageTopColorToChangeForHTML):
(TEST.SampledPageTopColor.HitTestBeforeCSSTransition): Added.
(TEST.SampledPageTopColor.HitTestDuringCSSTransition): Added.
(TEST.SampledPageTopColor.HitTestAfterCSSTransition): Added.
(TEST.SampledPageTopColor.HitTestBeforeCSSAnimation): Added.
(TEST.SampledPageTopColor.HitTestDuringCSSAnimation): Added.
(TEST.SampledPageTopColor.HitTestAfterCSSAnimation): Added.
(TEST.SampledPageTopColor.HitTestCSSAnimation): Deleted.

9:16 PM Changeset in webkit [278188] by Said Abou-Hallawa
  • 6 edits
    2 adds in trunk

Values of keySplines control points must all be in the range 0 to 1
https://bugs.webkit.org/show_bug.cgi?id=226336

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/animations/keysplines-x-limits-expected.txt:
  • web-platform-tests/svg/animations/keysplines-y-limits-expected.txt: Added.
  • web-platform-tests/svg/animations/keysplines-y-limits.html: Added.

Source/WebCore:

W3C specs:

https://svgwg.org/specs/animations/#KeySplinesAttribute

MDN documenation:

https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/keySplines

Test: imported/w3c/web-platform-tests/svg/animations/keysplines-y-limits.html

  • svg/SVGAnimationElement.cpp:

(WebCore::parseKeySplines):

Source/WTF:

  • wtf/MathExtras.h:

(isInRange):
There are a least couple of implementations of this function in WebCore.
The next step is to remove the redundant code in WebCore and use this one.

7:26 PM Changeset in webkit [278187] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorey] Gracefully handle CNTRL-C in TaskPool
https://bugs.webkit.org/show_bug.cgi?id=226238
<rdar://problem/78472148>

Reviewed by Dewei Zhu.

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

(_BiDirectionalQueue.close): Tear-down queue objects while suppressing any logging.
(_Process.handler): Both SIGTERM and SIGINT signals should stop worker processes.
(_Process.main): Add SIGINT handler, explicitly close queue.
(TaskPool.init): Defer worker and queue construction to context manager so that we
do not have an instantiated but invalid queue if pipes are broken by children processes.
(TaskPool.enter): Construct worker processes.
(TaskPool.do): Only catch Queue.Empty exception.
(TaskPool.exit): Explicitly close queue, reset workers and queue.

7:08 PM Changeset in webkit [278186] by rmorisset@apple.com
  • 8 edits
    1 add in trunk/Source

AirAllocateStackByGraphColoring should use the optimized interference graphs from AirAllocateRegistersByGraphColoring
https://bugs.webkit.org/show_bug.cgi?id=226258

Reviewed by Phil Pizlo.

Source/JavaScriptCore:

The main change in this patch is that AirAllocateStackByGraphColoring is now using the optimized datastructures in wtf/InterferenceGraph.h.
This required templating most of it over the interference graph used (Small/Large/Huge), but I tried keeping some common parts out of the templated class to minimize the impact on compile times and binary size.

A consequence of that change is that coalescableMoves and remappedStackSlots now store indices instead of direct pointers to StackSlots, resulting in a memory reduction of about 3x as well.

Another consequence is that I had to slightly alter the way that coalescing works: instead of carefully removing the interference edges of the killed slot, we simply use mayClear() which is not guaranteed to remove anything.
I believe that this is sound, because every subsequent access to m_interference checks whether a slot has been coalesced first, so dropping these edges is purely a memory saving, but has no logical effect.

The new code was tested in a few ways:

  • running on JetStream2 with asan
  • running on JetStream2 with TEST_OPTIMIZED_INTERFERENCE_GRAPH
  • running on JetStream2 and logging the frame sizes at the end of this phase, and comparing to the results of doing the same on ToT (same average frame size)

The two functions where this code had the largest memory footprint in JetStream2 were both in tsf-wasm.
One has 751 stack slots, and had an interference graph of 2.1MB and a coalescableMoves vector of 440kB
The other has 673 stack slots, and had an interference graph of 1.9MB and a coalescableMoves vector of 421kB.
With this patch, they respectively use 79kB+146kB and 67kB+140kB
The effect on the rest of JetStream2 is less likely to matter as few functions used more than a few dozens of kB in this phase, but in percentages are just as huge.

More importantly (and the reason I wrote this patch in the first place), I checked mruby-wasm.aotoki.dev which with a few other pages forced us to lower Options::maximumTmpsForGraphColoring because of jetsams.
It has two massive functions that reach this phase if I increase Options::maximumTmpsForGraphColoring:

  • about 6k stack slots -> 215MB + 6MB (interference graph + coalescableMoves)
  • about 9k stack slots -> 395MB + 4MB

After this patch, they respectively use 4.5MB+2MB and 9MB+1.5MB, or roughly a 40x improvement.
Combined with the recent improvements to the register allocator, I hope to be able to increase Options::maximumTmpsForGraphColoring soon (in a different patch for easier bisection if either cause a perf regression).
This would be helpful, since its lowering cratered our performance on some other wasm application by 8x.

In terms of compile times, this patch lowered the time spent in AllocateStackByGraphColoring over the course of a run of JetStream2 from roughly 350ms to roughly 270ms.
This is almost certainly negligible, but at least it guarantees that it did not regress.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • b3/air/AirAllocateStackByGraphColoring.cpp:

(JSC::B3::Air::allocateStackByGraphColoring):

Source/WTF:

I moved the interference graphs datastructures from AirAllocateRegistersByGraphColoring to their own wtf/InterferenceGraph.h file.
There are three of them:

  • SmallInterferenceGraph, best for n < 400
  • LargeInterferenceGraph, for n < 216
  • HugeInterferenceGraph, for n up to 232

I also added "Iterable" versions of them, that have an operator[] method whose result you can iterate on to get all the indices which interfere with a given index.
SmallIterableInterferenceGraph is the same as the non-iterable version, but the Large and Huge versions are a bit slower than their counterparts and use 2x memory.

All of these were tested by running JetStream2 with the TEST_OPTIMIZED_INTERFERENCE_GRAPH set to 1.
This flag makes the optimized datastructures run in parallel with a reference implementation, and their results are checked for equality on every method call.
There is one small difference allowed: iteration is not guaranteed to go through elements in the same order.

I also added a clear() method to LikelyDenseUnsignedIntegerSet, and added the NotNull flag to its various uses of placement new.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/HashSet.h:

(WTF::W>::memoryUse const):

  • wtf/InterferenceGraph.h: Added.

(WTF::InterferenceBitVector::contains):
(WTF::InterferenceBitVector::addAndReturnIsNewEntry):
(WTF::InterferenceBitVector::add):
(WTF::InterferenceBitVector::clear):
(WTF::InterferenceBitVector::mayClear):
(WTF::InterferenceBitVector::setMaxIndex):
(WTF::InterferenceBitVector::forEach):
(WTF::InterferenceBitVector::size const):
(WTF::InterferenceBitVector::memoryUse const):
(WTF::InterferenceBitVector::dumpMemoryUseInKB const):
(WTF::InterferenceBitVector::Iterable::iterator::operator++):
(WTF::InterferenceBitVector::Iterable::iterator::operator* const):
(WTF::InterferenceBitVector::Iterable::iterator::operator== const):
(WTF::InterferenceBitVector::Iterable::iterator::operator!= const):
(WTF::InterferenceBitVector::Iterable::begin const):
(WTF::InterferenceBitVector::Iterable::end const):
(WTF::InterferenceBitVector::operator[] const):
(WTF::InterferenceBitVector::index const):
(WTF::InterferenceVector::contains):
(WTF::InterferenceVector::addAndReturnIsNewEntry):
(WTF::InterferenceVector::add):
(WTF::InterferenceVector::clear):
(WTF::InterferenceVector::mayClear):
(WTF::InterferenceVector::setMaxIndex):
(WTF::InterferenceVector::forEach):
(WTF::InterferenceVector::size const):
(WTF::InterferenceVector::memoryUse const):
(WTF::InterferenceVector::dumpMemoryUseInKB const):
(WTF::InterferenceVector::Iterable::begin const):
(WTF::InterferenceVector::Iterable::end const):
(WTF::InterferenceVector::operator[] const):
(WTF::UndirectedEdgesDuplicatingAdapter::contains):
(WTF::UndirectedEdgesDuplicatingAdapter::addAndReturnIsNewEntry):
(WTF::UndirectedEdgesDuplicatingAdapter::add):
(WTF::UndirectedEdgesDuplicatingAdapter::clear):
(WTF::UndirectedEdgesDuplicatingAdapter::mayClear):
(WTF::UndirectedEdgesDuplicatingAdapter::setMaxIndex):
(WTF::UndirectedEdgesDuplicatingAdapter::forEach):
(WTF::UndirectedEdgesDuplicatingAdapter::size const):
(WTF::UndirectedEdgesDuplicatingAdapter::memoryUse const):
(WTF::UndirectedEdgesDuplicatingAdapter::dumpMemoryUseInKB const):
(WTF::UndirectedEdgesDuplicatingAdapter::operator[] const):
(WTF::UndirectedEdgesDedupAdapter::contains):
(WTF::UndirectedEdgesDedupAdapter::addAndReturnIsNewEntry):
(WTF::UndirectedEdgesDedupAdapter::add):
(WTF::UndirectedEdgesDedupAdapter::clear):
(WTF::UndirectedEdgesDedupAdapter::mayClear):
(WTF::UndirectedEdgesDedupAdapter::setMaxIndex):
(WTF::UndirectedEdgesDedupAdapter::forEach):
(WTF::UndirectedEdgesDedupAdapter::size const):
(WTF::UndirectedEdgesDedupAdapter::memoryUse const):
(WTF::UndirectedEdgesDedupAdapter::dumpMemoryUseInKB const):
(WTF::InterferenceHashSet::contains):
(WTF::InterferenceHashSet::addAndReturnIsNewEntry):
(WTF::InterferenceHashSet::add):
(WTF::InterferenceHashSet::clear):
(WTF::InterferenceHashSet::setMaxIndex):
(WTF::InterferenceHashSet::forEach):
(WTF::InterferenceHashSet::size const):
(WTF::InterferenceHashSet::memoryUse const):
(WTF::InterferenceHashSet::dumpMemoryUseInKB const):
(WTF::InstrumentedInterferenceGraph::contains):
(WTF::InstrumentedInterferenceGraph::addAndReturnIsNewEntry):
(WTF::InstrumentedInterferenceGraph::add):
(WTF::InstrumentedInterferenceGraph::clear):
(WTF::InstrumentedInterferenceGraph::mayClear):
(WTF::InstrumentedInterferenceGraph::setMaxIndex):
(WTF::InstrumentedInterferenceGraph::forEach):
(WTF::InstrumentedInterferenceGraph::size const):
(WTF::InstrumentedInterferenceGraph::memoryUse const):
(WTF::InstrumentedInterferenceGraph::dumpMemoryUseInKB const):
(WTF::InstrumentedIterableInterferenceGraph::Iterable::Iterable):
(WTF::InstrumentedIterableInterferenceGraph::Iterable::begin const):
(WTF::InstrumentedIterableInterferenceGraph::Iterable::end const):
(WTF::InstrumentedIterableInterferenceGraph::operator[] const):

  • wtf/LikelyDenseUnsignedIntegerSet.h:

(WTF::LikelyDenseUnsignedIntegerSet::LikelyDenseUnsignedIntegerSet):
(WTF::LikelyDenseUnsignedIntegerSet::clear):
(WTF::LikelyDenseUnsignedIntegerSet::add):
(WTF::LikelyDenseUnsignedIntegerSet::estimateHashSetSize):
(WTF::LikelyDenseUnsignedIntegerSet::transitionToHashSet):
(WTF::LikelyDenseUnsignedIntegerSet::transitionToBitVector):

6:26 PM Changeset in webkit [278185] by Darin Adler
  • 1470 edits in trunk

Next step toward using std::optional directly instead of through WTF::Optional typedef
https://bugs.webkit.org/show_bug.cgi?id=226280

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • <many files>: Accept the renaming done by do-webcore-rename.
  • yarr/YarrSyntaxChecker.cpp: Since the style checker complained about this file,

tweaked style to make it happy after the renaming done by do-webcore-rename, and
also hand-updated Optional to std::optional as long as we were touching it.

Source/WebCore:

  • <many files>: Accept the renaming done by do-webcore-rename.
  • Modules/webauthn/fido/DeviceRequestConverter.h: Since style checker complained

about the names of some arguments, fixed them, and also hand-updated Optional to
std::optional as long as we were touching it.

  • loader/EmptyClients.cpp: Since style checker complained about the mix of

WEBCORE_EXPORT and inlined functions, moved them out of line, and
also hand-updated Optional to std::optional as long as we were touching it.
Also removed is<EmptyFrameLoaderClient>().

  • loader/EmptyFrameLoaderClient.h: Ditto.

Source/WebCore/PAL:

  • <many files>: Accept the renaming done by do-webcore-rename.

Source/WebDriver:

  • <many files>: Accept the renaming done by do-webcore-rename.

Source/WebKit:

  • <many files>: Accept the renaming done by do-webcore-rename.

Source/WebKitLegacy:

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::diskUsageForOrigin): Accept the renaming done by do-webcore-rename.

Source/WebKitLegacy/mac:

  • <many files>: Accept the renaming done by do-webcore-rename.

Source/WebKitLegacy/win:

  • <many files>: Accept the renaming done by do-webcore-rename.

Source/WTF:

  • <many files>: Accept the renaming done by do-webcore-rename.
  • wtf/Optional.h: Remove WTF::nullopt_t and WTF::makeOptional.
  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::mapHostName): Convert from nullopt to std::nullopt.

Tools:

  • Scripts/do-webcore-rename: Use script to rename valueOr, WTF::nullopt, WTF::nullopt_t,

WTF::Optional, WTF::makeOptional, and makeOptional. Other renamings can't necessarily
be done by the script and so will be done in later passes.

  • <many files>: Accept the renaming done by do-webcore-rename.
6:07 PM Changeset in webkit [278184] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitpy] Use existing signal handler when printing stacktrace
https://bugs.webkit.org/show_bug.cgi?id=226236
<rdar://problem/78471882>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/common/interrupt_debugging.py:

(log_stack_trace_on_signal): Use the same implementation for SIGTERM and SIGINT signals, call existing
handler after logging stack trace.
(log_stack_trace_on_term): Deleted.
(log_stack_trace_on_ctrl_c): Deleted.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main): Use the new log_stack_trace_on_signal function.

5:40 PM Changeset in webkit [278183] by Devin Rousso
  • 7 edits in trunk/Source/WebKit

[iOS] contextmenu hints don't follow scrolling inside <iframe>
https://bugs.webkit.org/show_bug.cgi?id=226055

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didScroll]):
(-[WKContentView _removeContainerForContextMenuHintPreviews]):
(-[WKContentView _updateFrameOfContainerForContextMenuHintPreviewsIfNeeded]): Added.
(-[WKContentView _updateTargetedPreviewScrollViewUsingContainerScrollingNodeID:]): Added.
(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement]): Added.
(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]): Added.
(-[WKContentView overridePositionTrackingViewForTargetedPreviewIfNecessary:containerScrollingNodeID:]): Deleted.
Save the UIScrollView containing the target of the contextmenu. Whenever any view is
scrolled, adjust the frame of the _contextMenuHintContainerView so that the contextmenu
hint moves by the amount of scrolling that's happened since the contextmenu hint was shown.

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::scrollViewForScrollingNodeID const):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::scrollView const): Added.
ScrollingTreeFrameScrollingNodeRemoteIOS also has a corresponding UIScrollView.

  • Platform/spi/ios/UIKitSPI.h:

Remove declaration for no-longer-used SPI.

4:29 PM Changeset in webkit [278182] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[MacOS Wk1] imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226360

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:07 PM Changeset in webkit [278181] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Silence reports about 'com.apple.runningboard'
https://bugs.webkit.org/show_bug.cgi?id=226357
<rdar://problem/76144219>

Reviewed by Per Arne Vollan.

We blocked access to 'com.apple.runningboard' from the WebContent process in Bug 209933 (about a year ago). Since
then, the only telemetry we have received has been for a benign Accessibility call that fails closed in way that
does not impact the features of the Accessibility Framework used inside the WebContent process.

We should silence this report to avoid spending time symbolicating and generating traces.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:03 PM Changeset in webkit [278180] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Hardening] Use a RELEASE_ASSERT for SharedBufferDataView constructor
https://bugs.webkit.org/show_bug.cgi?id=226346
<rdar://problem/78115298>

Reviewed by Ryosuke Niwa.

We have a DEBUG assert in the constructor for SharedBufferDataView. Debug test show that we don't hit this during normal
operation, and it's not a hot code path. We should make it a RELEASE_ASSERT.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBufferDataView::SharedBufferDataView):

2:55 PM Changeset in webkit [278179] by sihui_liu@apple.com
  • 9 edits in trunk/Source

Abandon pending tasks on background thread when WebIDBServer is closed
https://bugs.webkit.org/show_bug.cgi?id=226295

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: Disable threading check as we may

abort transactions on the main thread.
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):

Source/WebKit:

When WebIDBServer is closed, it means there is no open connection to client, so we don't need to handle pending
tasks. We can ditch them by killing the CrossThreadQueue. For ongoing task, it can be blocked on quota check, so
let's just stop database activities on the main thread to make sure database lock is released.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::close):

  • NetworkProcess/IndexedDB/WebIDBServer.h:

Source/WTF:

Make the wait end with either a new message or queue being killed.

  • wtf/CrossThreadQueue.h:

(WTF::CrossThreadQueue<DataType>::waitForMessage):

  • wtf/CrossThreadTask.h:

(WTF::CrossThreadTask::operator bool const):

  • wtf/CrossThreadTaskHandler.cpp:

(WTF::CrossThreadTaskHandler::taskRunLoop):

2:35 PM Changeset in webkit [278178] by don.olmstead@sony.com
  • 6 edits in trunk

[CMake] Add check for timingsafe_bcmp
https://bugs.webkit.org/show_bug.cgi?id=226347

Reviewed by Chris Dumez.

.:

Adds a symbol check for timingsafe_bcmp and sets HAVE_TIMINGSAFE_BCMP accordingly in the
cmakeconfig.h.

  • Source/cmake/OptionsCommon.cmake:

Source/WTF:

Use HAVE(TIMINGSAFE_BCMP) in CryptographicUtilities code. Set its value in PlatformHave for
platforms not using CMake.

  • wtf/CryptographicUtilities.cpp:
  • wtf/CryptographicUtilities.h:
  • wtf/PlatformHave.h:
2:34 PM Changeset in webkit [278177] by commit-queue@webkit.org
  • 7 edits in trunk

Increase NumberToStringBuffer to account for negative number
https://bugs.webkit.org/show_bug.cgi?id=226014

Patch by Mikhail R. Gadelha <mikhail.ramalho@gmail.com> on 2021-05-27
Reviewed by Robin Morisset.

In r250389, NumberToStringBuffer length was increased from 96 to 123 because:

<21 digits> + decimal point + <100 digits> + null char = 123.

however,

a = -100000000000000000000
a.toFixed(100)

is a valid conversion and it is 124 chars long, because of the "-" sign.

So this patch increases the length of NumberToStringBuffer to 124 and adds new
test cases.

Source/WTF:

Reviewed by Ryosuke Niwa.

  • wtf/dtoa.h:

LayoutTests:

  • js/dom/number-tofixed-expected.txt:
  • js/dom/script-tests/number-tofixed.js:
  • js/kde/Number-expected.txt:
  • js/kde/script-tests/Number.js:
1:48 PM Changeset in webkit [278176] by achristensen@apple.com
  • 4 edits in trunk/Source

Revert r277344
https://bugs.webkit.org/show_bug.cgi?id=225602
<rdar://78411776>

Source/WebKit:

It caused more sandbox issues. We are going to see if we can just remove the connection killing, but first we revert the cause of problems.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::terminateWithReason):

Source/WTF:

  • wtf/PlatformHave.h:
1:25 PM Changeset in webkit [278175] by Wenson Hsieh
  • 11 edits
    1 copy
    1 add in trunk/Source

Refactor some data detector code in WebCore::Frame
https://bugs.webkit.org/show_bug.cgi?id=226267

Reviewed by Andy Estes and Devin Rousso.

Source/WebCore:

In preparation for supporting data detection in image overlays, this patch refactors some existing data detector
logic inside (and adjacent to) Frame. See comments below for more details.

  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/DataDetection.h:
  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::canPresentDataDetectorsUIForElement):

Use DataDetectionResultsStorage instead of grabbing the array of scanner results directly from Frame.

(WebCore::DataDetection::createElementForImageOverlay):

Add a helper method to create a data detector element for image overlays; this grabs a scanner result from the
given ImageExtractionDataDetectorInfo, adds it to the element's document's frame, and then sets the newly
created element's "x-apple-data-detectors-result" attribute to the new identifier value. The main reason we do
this is to avoid having HTMLElement directly handle DDScannerResult (and instead delegate out to platform-
specific helpers in DataDetection).

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

Use the new helper function above.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame):

Use DataDetectionResultsStorage instead of setting the array of scanner results directly on Frame.

  • page/Frame.cpp:

(WebCore::Frame::dataDetectionResults):

  • page/Frame.h:

We currently store a list of document-wide data detection results (Objective-C DDScannerResult objects)
directly on Frame. For image overlays, I need to store a map of identifiers to scanner results in a similar
fashion. Rather than add more Objective-C code on Frame, it's better to instead move this logic out into a
separate C++ class, DataDetectionResultsStorage, that wraps both the document-level array of DDScannerResults,
as well as the new map of ImageOverlayDataDetectionResultIdentifier => DDScannerResult specifically for data
detector results inside image overlays.

  • page/cocoa/DataDetectionResultsStorage.h: Copied from Source/WebCore/editing/cocoa/DataDetection.h.

(WebCore::DataDetectionResultsStorage::setDocumentLevelResults):
(WebCore::DataDetectionResultsStorage::documentLevelResults const):

Move the existing m_dataDetectionResults NSArray on Frame out into the storage helper class, as
m_documentLevelResults. As its name suggests, this array stores data detection results gathered by running
data detection over the entire document.

(WebCore::DataDetectionResultsStorage::imageOverlayDataDetectionResult):
(WebCore::DataDetectionResultsStorage::addImageOverlayDataDetectionResult):

Add a new map of ImageOverlayDataDetectionResultIdentifier to DDScannerResult for storing scanner results
specific to image overlay content. Using a separate data structure here prevents image overlay data detector
results from getting blown away when document-level data detection finishes and sets document-wide results on
the frame.

  • page/cocoa/ImageOverlayDataDetectionResultIdentifier.h: Added.

Add an identifier type that we can use to look up data detection results in image overlay elements in Frame's
data detection result storage.

Source/WebKit:

See WebCore/ChangeLog for more details.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::removeDataDetectedLinks):
(WebKit::WebPage::detectDataInAllFrames):

Use DataDetectionResultsStorage instead of setting the array of scanner results directly on Frame.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::dataDetectorLinkPositionInformation):

1:06 PM Changeset in webkit [278174] by Fujii Hironori
  • 4 edits
    1 move
    2 deletes in trunk

[run-webkit-tests][Win] Strip PHP support from webserver
https://bugs.webkit.org/show_bug.cgi?id=226287

Reviewed by Jonathan Bedard.

Tools:

We don't have any PHP tests now.

  • Scripts/webkitpy/port/base.py:

(Port._apache_version):
(Port._apache_config_file_name_for_platform):
(Port._win_php_version): Deleted.

  • Scripts/webkitpy/port/port_testcase.py:

LayoutTests:

  • http/conf/libphp4.dll: Removed.
  • http/conf/win-httpd-2.4-php5.conf: Removed.
  • http/conf/win-httpd-2.4.conf: Renamed from LayoutTests/http/conf/win-httpd-2.4-php7.conf.
12:51 PM Changeset in webkit [278173] by commit-queue@webkit.org
  • 5 edits in trunk

[css-grid] Add discrete animation support for grid-template-columns|rows
https://bugs.webkit.org/show_bug.cgi?id=226174

LayoutTests/imported/w3c:

Patch by Ziran Sun <Ziran Sun> on 2021-05-27
Reviewed by Antoine Quint.

  • web-platform-tests/css/css-grid/animation/grid-template-columns-interpolation-expected.txt:
  • web-platform-tests/css/css-grid/animation/grid-template-rows-interpolation-expected.txt:

Source/WebCore:

For CSSGridTemplateTemplate|Row, the animation wrapper setter needs to check a few style
settings such as gridColumns|gridRows, gridAutoRepeatColumns|gridAutoRepeatRows etc. to be
inline with the style specified. So does the getter.

Patch by Ziran Sun <Ziran Sun> on 2021-05-27
Reviewed by Antoine Quint.

This change has improved the two exising animation related grid-template-* tests.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

12:14 PM Changeset in webkit [278172] by timothy_horton@apple.com
  • 7 edits
    3 adds in trunk

Introduce BifurcatedGraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=226318

Reviewed by Sam Weinig.

Source/WebCore:

New test: BifurcatedGraphicsContextTests.BasicBifurcatedContext

Introduce a GraphicsContext subclass that forwards painting
to two arbitrary child GraphicsContexts. This can be used, for example,
to paint into a bitmap and display list simultaneously.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/BifurcatedGraphicsContext.cpp: Added.

(WebCore::BifurcatedGraphicsContext::BifurcatedGraphicsContext):
(WebCore::BifurcatedGraphicsContext::~BifurcatedGraphicsContext):
(WebCore::BifurcatedGraphicsContext::hasPlatformContext const):
(WebCore::BifurcatedGraphicsContext::platformContext const):
(WebCore::BifurcatedGraphicsContext::save):
(WebCore::BifurcatedGraphicsContext::restore):
(WebCore::BifurcatedGraphicsContext::drawRect):
(WebCore::BifurcatedGraphicsContext::drawLine):
(WebCore::BifurcatedGraphicsContext::drawEllipse):
(WebCore::BifurcatedGraphicsContext::applyStrokePattern):
(WebCore::BifurcatedGraphicsContext::applyFillPattern):
(WebCore::BifurcatedGraphicsContext::drawPath):
(WebCore::BifurcatedGraphicsContext::fillPath):
(WebCore::BifurcatedGraphicsContext::strokePath):
(WebCore::BifurcatedGraphicsContext::beginTransparencyLayer):
(WebCore::BifurcatedGraphicsContext::endTransparencyLayer):
(WebCore::BifurcatedGraphicsContext::applyDeviceScaleFactor):
(WebCore::BifurcatedGraphicsContext::fillRect):
(WebCore::BifurcatedGraphicsContext::fillRoundedRectImpl):
(WebCore::BifurcatedGraphicsContext::fillRectWithRoundedHole):
(WebCore::BifurcatedGraphicsContext::clearRect):
(WebCore::BifurcatedGraphicsContext::strokeRect):
(WebCore::BifurcatedGraphicsContext::fillEllipse):
(WebCore::BifurcatedGraphicsContext::strokeEllipse):
(WebCore::BifurcatedGraphicsContext::setIsCALayerContext):
(WebCore::BifurcatedGraphicsContext::isCALayerContext const):
(WebCore::BifurcatedGraphicsContext::setIsAcceleratedContext):
(WebCore::BifurcatedGraphicsContext::renderingMode const):
(WebCore::BifurcatedGraphicsContext::clip):
(WebCore::BifurcatedGraphicsContext::clipOut):
(WebCore::BifurcatedGraphicsContext::clipPath):
(WebCore::BifurcatedGraphicsContext::clipBounds const):
(WebCore::BifurcatedGraphicsContext::setLineCap):
(WebCore::BifurcatedGraphicsContext::setLineDash):
(WebCore::BifurcatedGraphicsContext::setLineJoin):
(WebCore::BifurcatedGraphicsContext::setMiterLimit):
(WebCore::BifurcatedGraphicsContext::drawNativeImage):
(WebCore::BifurcatedGraphicsContext::drawPattern):
(WebCore::BifurcatedGraphicsContext::scale):
(WebCore::BifurcatedGraphicsContext::rotate):
(WebCore::BifurcatedGraphicsContext::translate):
(WebCore::BifurcatedGraphicsContext::concatCTM):
(WebCore::BifurcatedGraphicsContext::setCTM):
(WebCore::BifurcatedGraphicsContext::getCTM const):
(WebCore::BifurcatedGraphicsContext::roundToDevicePixels):
(WebCore::BifurcatedGraphicsContext::drawFocusRing):
(WebCore::BifurcatedGraphicsContext::drawLinesForText):
(WebCore::BifurcatedGraphicsContext::drawDotsForDocumentMarker):
(WebCore::BifurcatedGraphicsContext::setURLForRect):
(WebCore::BifurcatedGraphicsContext::setDestinationForRect):
(WebCore::BifurcatedGraphicsContext::addDestinationAtPoint):
(WebCore::BifurcatedGraphicsContext::supportsInternalLinks const):
(WebCore::BifurcatedGraphicsContext::updateState):
(WebCore::BifurcatedGraphicsContext::deprecatedPrivateContext const):

  • platform/graphics/BifurcatedGraphicsContext.h: Added.

Source/WebKit:

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::create):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp: Added.

(TestWebKitAPI::TEST):

11:45 AM Changeset in webkit [278171] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.33.1

WPE WebKit 2.33.1

11:45 AM Changeset in webkit [278170] by Adrian Perez de Castro
  • 4 edits in trunk

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.33.1 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.33.1
10:56 AM Changeset in webkit [278169] by Peng Liu
  • 4 edits in trunk

Calling -[WKWebView _closeAllMediaPresentations] crashes
https://bugs.webkit.org/show_bug.cgi?id=226305

Reviewed by Chris Dumez.

Source/WebKit:

Provide an empty completion handler to fix a crash.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _closeAllMediaPresentations]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:

(TEST):

10:54 AM Changeset in webkit [278168] by Devin Rousso
  • 7 edits in trunk

Use NSLocale SPI for comparing language identifiers instead of string comparison
https://bugs.webkit.org/show_bug.cgi?id=226252

Reviewed by Wenson Hsieh.

Source/WTF:

The existing indexOfBestMatchingLanguageInList logic uses (sub)string comparison of BCP47
language tags (e.g. looking for a '-' and comparing the substring before and after in the
input language and each item in the language list). While this does work for some languages,
it's really not the correct way to compare BCP47 language tags. Additionally, it basically
ignores the text after the first '-', unless there's an exact match with the input
language. This leads to "zh-CN" and "zh-HK" being considered a (not exact) match, which
isn't ideal.

  • wtf/Language.cpp:
  • wtf/cocoa/LanguageCocoa.mm:

(WTF::indexOfBestMatchingLanguageInList): Added.

  • wtf/spi/cocoa/NSLocaleSPI.h:

LayoutTests:

  • media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html:
  • media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages-expected.txt:
10:42 AM Changeset in webkit [278167] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Add animations to GraphicsLayer logging output
https://bugs.webkit.org/show_bug.cgi?id=226303

Reviewed by Tim Horton.

Log animations in GraphicsLayer, so that it shows up in the "Layers" log channel,
and in showGraphicsLayerTree() output.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::operator<<):
(WebCore::GraphicsLayerCA::dumpAnimations):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties const):

  • platform/graphics/ca/GraphicsLayerCA.h:
10:07 AM Changeset in webkit [278166] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Pass frame ref during navigationPolicyCompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=226268
<rdar://problem/78512383>

Reviewed by Ryosuke Niwa.

Pass the active frame to the navigationPolicyCompletionHandler lambda as a Ref to
ensure it is kept alive during the policy check and subsequent steps.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

10:07 AM Changeset in webkit [278165] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[GTK4] Navigation swipe snapshot always times out
https://bugs.webkit.org/show_bug.cgi?id=226332

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-05-27
Reviewed by Michael Catanzaro.

Enable ViewGestureGeometryCollector for GTK4 as well.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):
(WebKit::WebPage::mainFrameDidLayout):

  • WebProcess/WebPage/WebPage.h:
6:27 AM Changeset in webkit [278164] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r244434) Dispatch intrinsicContentsSizeChanged on the main frame only
https://bugs.webkit.org/show_bug.cgi?id=226311

Reviewed by Tim Horton.

Source/WebCore:

While the Mail version of the content autosizing runs on both the main frame and the subframe(s),
the content size reporting should only happen on the main frame. The client is only interested
in the enclosing size of the content (also the API to retrieve the information is per-WKWebView,
it doesn't expose this information on a frame-by-frame basis).

Test: fast/dynamic/mail-autosize-with-iframe.html

  • page/FrameView.cpp:

(WebCore::FrameView::autoSizeIfEnabled):
(WebCore::FrameView::enableFixedWidthAutoSizeMode):
(WebCore::FrameView::enableSizeToContentAutoSizeMode):
(WebCore::FrameView::enableAutoSizeMode):

LayoutTests:

  • fast/dynamic/mail-autosize-with-iframe-expected.txt: Added.
  • fast/dynamic/mail-autosize-with-iframe.html: Added.
6:26 AM Changeset in webkit [278163] by weinig@apple.com
  • 7 edits
    2 moves
    1 add
    4 deletes in trunk/Source/WebCore

Merge WorkerGlobalScope+Caches.idl and DOMWindow+Caches.idl into a single WindowOrWorkerGlobalScope+Caches.idl
https://bugs.webkit.org/show_bug.cgi?id=226271

Reviewed by Darin Adler.

Address FIXMEs in both WorkerGlobalScope+Caches.idl and DOMWindow+Caches.idl by
merging them into a single WindowOrWorkerGlobalScope+Caches.idl, matching the spec
langauge more closely.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/cache/DOMWindow+Caches.idl: Removed.
  • Modules/cache/DOMWindowCaches.cpp: Removed.
  • Modules/cache/DOMWindowCaches.h: Removed.
  • Modules/cache/WindowOrWorkerGlobalScope+Caches.idl: Added.
  • Modules/cache/WindowOrWorkerGlobalScopeCaches.cpp: Added.

(WebCore::DOMWindowCaches::supplementName):
(WebCore::WorkerGlobalScopeCaches::supplementName):
(WebCore::DOMWindowCaches::DOMWindowCaches):
(WebCore::DOMWindowCaches::from):
(WebCore::DOMWindowCaches::caches const):
(WebCore::WorkerGlobalScopeCaches::WorkerGlobalScopeCaches):
(WebCore::WorkerGlobalScopeCaches::from):
(WebCore::WorkerGlobalScopeCaches::caches const):
(WebCore::WindowOrWorkerGlobalScopeCaches::caches):

  • Modules/cache/WindowOrWorkerGlobalScopeCaches.h: Added.
  • Modules/cache/WorkerGlobalScope+Caches.idl: Removed.
  • Modules/cache/WorkerGlobalScopeCaches.cpp: Removed.
  • Modules/cache/WorkerGlobalScopeCaches.h: Removed.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
5:30 AM Changeset in webkit [278162] by Adrian Perez de Castro
  • 11 edits in trunk/Source

Non-unified build fixes, late May 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=226322

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • jit/JITPlan.cpp: Add missing HeapInlines.h and VMInlines.h headers.
  • jit/JITWorklist.cpp: Add missing HeapInlines.h and SlotVisitorInlines.h headers,

remove SlotVisitor.h which is now unneeded.

  • jit/JITWorklistThread.cpp: Add missing HeapInlines.h header.

Source/WebCore:

No new tests needed.

  • css/CSSGridIntegerRepeatValue.cpp: Add missing wtf/text/StringConcatenateNumbers.h

header.

  • css/CSSTimingFunctionValue.cpp: Ditto.
  • layout/formattingContexts/flex/FlexFormattingContext.h: Add missing FormattingQuirks.h

header, remove now unneeded FormattingContext.h header.

  • loader/PrivateClickMeasurement.cpp: Add missing wtf/text/StringConcatenateNumbers.h

header.

  • platform/graphics/cairo/GraphicsContextCairo.cpp: Add missing Gradient.h header.
  • platform/graphics/filters/FEMorphology.cpp: Add missing ColorTypes.h header.
5:22 AM Changeset in webkit [278161] by Wenson Hsieh
  • 7 edits in trunk/Source/WebKit

[GPU Process] Add validation when reading DisplayListSharedMemoryHeader::waitingStatus in DisplayListReaderHandle
https://bugs.webkit.org/show_bug.cgi?id=226306
rdar://78118900

Reviewed by Chris Dumez.

Store this waiting status (an enum class with three valid states) as a raw uint8_t in shared memory, rather
than an enum class. This allows us to verify that this value indicates a valid waiting status (using
isValidEnum) upon reading this flag in the GPU process, and perform a MESSAGE_CHECK in the case where it is
invalid.

  • GPUProcess/graphics/DisplayListReaderHandle.h:

(WebKit::DisplayListReaderHandle::startWaiting):
(WebKit::DisplayListReaderHandle::stopWaiting):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):

  • Shared/SessionState.cpp:

(WebKit::PageState::decode):

  • Shared/SessionState.h:

Drive-by fix: remove a non-templated declaration of isValidEnum(). This is necessary in order to use
WTF::isValidEnum without the explicit WTF namespace prefix inside DisplayListReaderHandle, since WTF's
declaration of isValidEnum clashes with this declaration.

Instead of using this separate method for validating the enum, simply encode and decode the
shouldOpenExternalURLsPolicy enum using << and >> operators, respectively; this ensures that the decoded value
of shouldOpenExternalURLsPolicy is either valid, or the result will be WTF::nullopt if decoding fails or
results in an invalid enum.

  • Shared/SharedDisplayListHandle.h:
  • WebProcess/GPU/graphics/DisplayListWriterHandle.h:

(WebKit::DisplayListWriterHandle::tryToResume):

5:19 AM Changeset in webkit [278160] by Adrian Perez de Castro
  • 2 edits in trunk

Unreviewed. [WPE] Bump version numbers

  • Source/cmake/OptionsWPE.cmake:
4:49 AM Changeset in webkit [278159] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Implement high-level retry loop for run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=225803

Reviewed by Adrian Perez de Castro.

Now that we have information on which tests produced a result and
which tests were never heard of, introduce retry logic for the
incomplete tests. This should only modify the behavior when using
--gnu-parallel-runner.

The issue here is that the MIPS boards currently in use for JSC
testing routinely crash and, often enough, end up with filesystem
corruption and need to have their R/W storage reinitialized.

Work around this by re-executing the tests that we weren't able to get
a result for. When some tests failed to complete, go through the
process of remote initilization (copying over and unpacking the
bundle) from scratch, so that remotes that had their remoteDirectory
wiped will get back into play.

To make this more efficient, introduce in-band signaling to let
run-jsc-stress-tests know that a remote lost its state. In response,
we kill the GNU parallel process and re-initialize all boards. This
helps for buildbot workers that only have a few remote boards assigned
and apparently also works around a bug in GNU parallel 20161222
(currently the most widely deployed version) which causes it to run
out of open files and get stuck in a busy loop.

While here, make run-jsc-stress-tests more robust against corrupted
status files, i.e. ignore empty ones (observed in practice) and use a
regex to verify the contents of non-empty state files.

For consistency, use the same logic for parsing status files when
doing local runs.

In testing with two remotes, run-jsc-stress-tests was able to recover
from either one or both of its remotes rebooting and wiping their
local storage in the middle of a test run.

  • Scripts/run-jsc-stress-tests:
3:58 AM WebKitGTK/2.32.x edited by clopez@igalia.com
(diff)
3:19 AM Changeset in webkit [278158] by youenn@apple.com
  • 7 edits
    2 adds in trunk

Support H264 profiles in MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=226219
<rdar://78027944>

Reviewed by Eric Carlson.

Source/WebCore:

Use mimeType option given in MediaRecorder options to detect which H264 profile to use.
Implement this by parsing the mime type codec parameter and use the avc1.WXYZ string to compute the profile.
By default, use baseline profile, which is not VideoToolbox profile but has wider decoding support.
If profile specified by the application fails, we downgrade to baseline.

Test: http/wpt/mediarecorder/MediaRecorder-video-h264-profiles.html

  • Modules/mediarecorder/MediaRecorderProvider.cpp:

(WebCore::MediaRecorderProvider::isSupported):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::create):
(WebCore::MediaRecorderPrivateWriter::initialize):
(WebCore::MediaRecorderPrivateWriter::setOptions): Deleted.

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::create):
(WebCore::VideoSampleBufferCompressor::VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::vtProfileLevel const):
(WebCore::VideoSampleBufferCompressor::initCompressionSession):

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-video-h264-profiles-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-video-h264-profiles.html: Added.
3:01 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
2:56 AM Changeset in webkit [278157] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix crash on 32-bit big endian systems.
https://bugs.webkit.org/show_bug.cgi?id=226264

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-05-27
Reviewed by Caio Araujo Neponoceno de Lima.

This is an instance where properly offsetting was missed since
the issue was not present in 2.30 series and therefore not fixed
by r273104.

  • llint/LowLevelInterpreter32_64.asm:
2:51 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
2:43 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
2:36 AM Changeset in webkit [278156] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Transient quarter display with a HiDPI /4k screen and a 200% scaling
https://bugs.webkit.org/show_bug.cgi?id=219202

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-05-27
Reviewed by Adrian Perez de Castro.

Set the root layer transformation before syncing animations and not after.
This way we avoid having the first frame use the wrong scale on hidpi.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):

2:18 AM Changeset in webkit [278155] by commit-queue@webkit.org
  • 6 edits in trunk/LayoutTests

MacOS WebM Format Reader returns enabled for tracks that do not have samples
https://bugs.webkit.org/show_bug.cgi?id=226078
<rdar://74048072>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-27
Reviewed by Jer Noble.

After r274378 the WebM format reader does not support WebM with non-disabled audio tracks
that do not have any samples.
Remove the empty audio track from all red-green.webmvp9.webm files so that WebGL
conformance tests that use the file do not fail due to this.

  • fast/canvas/webgl/resources/red-green.webmvp8.webm:
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.webmvp8.webm:
  • webgl/1.0.3/resources/webgl_test_files/conformance/resources/red-green.webmvp8.webm:
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green.webmvp8.webm:
  • webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm:
2:07 AM Changeset in webkit [278154] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Do not disable the idle connection timeout
https://bugs.webkit.org/show_bug.cgi?id=226263

Reviewed by Sergio Villar Senin.

We disable the connection timeout in SoupSession because we implement our own timeout in WebKit, but that's not
the case for the idle connection timeout. There's no reason keep idle connection alive forever.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

1:17 AM Changeset in webkit [278153] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

ANGLE could be compiled with "aggressive uninitialised variable" setting
https://bugs.webkit.org/show_bug.cgi?id=226260

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-27
Reviewed by Alexey Proskuryakov.

Turn on compiler flag to warn about uninitialized variables that might be
conditionally uninitialized. This is the same flag as upstream ANGLE uses.
Fix a spurious warning produced by this flag.
This helps in scenarios where custom targets compile ANGLE sources and
this flag set, such as tests.

  • Configurations/Base.xcconfig:
  • src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp:
1:14 AM Changeset in webkit [278152] by commit-queue@webkit.org
  • 7 edits in trunk/Source/ThirdParty/ANGLE

Cherry-pick ANGLE: D3D11: Skip blits if there is no intersection of dest areas
https://bugs.webkit.org/show_bug.cgi?id=225190
<rdar://77084155>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-27
Reviewed by David Kilzer.

Cherry-pick ANGLE commit b574643ef28c92fcea5122dd7a72acb42a514eed
Fixes a security issue on D3D11.
Potential a correctness issue on some OpenGL drivers.
No effect on Metal, but the nodiscard part is still useful.

Upstream description:
D3D11: Skip blits if there is no intersection of dest areas

Blit11 would clip the destination rectangle with the destination size
but ignore the result. gl::ClipRectangle returns false when the
rectangles do not intersect at all, indicating the blit can be skipped.

This could lead to an out-of-bounds write to the GPU memory for the
destination texture.

Mark ClipRectangle as nodiscard to prevent future issues.

  • src/libANGLE/angletypes.h:
  • src/libANGLE/renderer/d3d/d3d11/Blit11.cpp:
  • src/libANGLE/renderer/gl/FramebufferGL.cpp:

(rx::FramebufferGL::clipSrcRegion):

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

(rx::ContextMtl::updateScissor):

  • src/libANGLE/renderer/vulkan/ContextVk.cpp:

(rx::ContextVk::updateScissor):

  • src/tests/gl_tests/BlitFramebufferANGLETest.cpp:

(TEST_P):

May 26, 2021:

11:42 PM Changeset in webkit [278151] by Cameron McCormack
  • 8 edits in trunk/Source

Prevent sbix glyphs from being rendered in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=226159
<rdar://77231959>

Reviewed by Darin Adler.

Source/WebCore:

When GPUP canvas is enabled, the display list recorder handles sbix
glyphs by recording drawImage calls. This means that during display list
replay, we should not have any sbix glyphs in a DrawGlyphs display list
item. This patch checks for such glyphs (like we already do for SVG
glyphs) and returns early if they're found.

Manually tested. No new tests, since we'd need to add some way inject
sbix glyph IDs into display list items.

  • platform/graphics/Font.h:

(WebCore::Font::ComplexColorFormatGlyphs::hasRelevantTables const):
(WebCore::Font::ComplexColorFormatGlyphs::bitForInitialized):
(WebCore::Font::ComplexColorFormatGlyphs::bitForValue):
(WebCore::Font::ComplexColorFormatGlyphs::bitsRequiredForGlyphCount):
(WebCore::Font::ComplexColorFormatGlyphs::ComplexColorFormatGlyphs):

  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::drawGlyphs): Call new function that checks for
SVG and sbix glyph presence. Change release assertion to debug
assertion to avoid unnecessarily crashing the GPUP, and instead return
early in the presence of these glyphs.

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::otSVGTable const):
(WebCore::Font::ComplexColorFormatGlyphs::createWithNoRelevantTables):
(WebCore::Font::ComplexColorFormatGlyphs::createWithRelevantTablesAndGlyphCount):
(WebCore::Font::ComplexColorFormatGlyphs::hasValueFor const):
(WebCore::Font::ComplexColorFormatGlyphs::get const):
(WebCore::Font::ComplexColorFormatGlyphs::set):
(WebCore::Font::hasComplexColorFormatTables const):
(WebCore::Font::glyphsWithComplexColorFormat const):
(WebCore::Font::glyphHasComplexColorFormat const):
(WebCore::Font::findOTSVGGlyphs const):
(WebCore::Font::hasAnyComplexColorFormatGlyphs const): New function to
check if a list of glyph IDs has any that would be inappropriate
to render in the GPU process. Since calling the CoreText function that
allows us to check if an sbix glyph exists would be too expensive to
call for every drawGlyphs call, we lazily cache (in a BitVector) the
presence of sbix and SVG images for glyph IDs we check.

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h: Add declaration for an SPI that lets us

infer whether a glyph has an sbix image.

Source/WTF:

  • wtf/PlatformHave.h: Add HAVE_CORE_TEXT_SBIX_IMAGE_SIZE_FUNCTIONS.
10:13 PM Changeset in webkit [278150] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebCore

Add logging for when SQLiteDatabase fails to close
https://bugs.webkit.org/show_bug.cgi?id=226290

Reviewed by Chris Dumez.

Also fix some logging error in IDB.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidBlobTables):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsRecordIndex):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::close):

  • platform/sql/SQLiteDatabase.h:
9:43 PM Changeset in webkit [278149] by Fujii Hironori
  • 6 edits in trunk/Source/WebCore

[Win] Remove unused GraphicsContext::WindowsBitmap class
https://bugs.webkit.org/show_bug.cgi?id=226312

Reviewed by Don Olmstead.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::WindowsBitmap::hdc const): Deleted.
(WebCore::GraphicsContext::WindowsBitmap::buffer const): Deleted.
(WebCore::GraphicsContext::WindowsBitmap::bufferLength const): Deleted.
(WebCore::GraphicsContext::WindowsBitmap::size const): Deleted.
(WebCore::GraphicsContext::WindowsBitmap::bytesPerRow const): Deleted.
(WebCore::GraphicsContext::WindowsBitmap::bitsPerPixel const): Deleted.
(WebCore::GraphicsContext::WindowsBitmap::windowsDIB const): Deleted.

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::drawWindowsBitmap): Deleted.

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContext::drawWindowsBitmap): Deleted.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextDirect2D::drawWindowsBitmap): Deleted.

  • platform/graphics/win/GraphicsContextWin.cpp:

(WebCore::GraphicsContext::shouldIncludeChildWindows const):
(WebCore::GraphicsContext::WindowsBitmap::WindowsBitmap): Deleted.
(WebCore::GraphicsContext::WindowsBitmap::~WindowsBitmap): Deleted.
(WebCore::GraphicsContext::createWindowsBitmap): Deleted.

9:36 PM Changeset in webkit [278148] by Fujii Hironori
  • 4 edits in trunk/Source/WebCore

[Cairo] Remove unused members ownedPlatformContext and platformContext of GraphicsContextPlatformPrivate
https://bugs.webkit.org/show_bug.cgi?id=226310

Reviewed by Don Olmstead.

GraphicsContextPlatformPrivate is a class tracking HDC
transforming. It doesn't need to know about PlatformContextCairo.
Remove unused members ownedPlatformContext and platformContext.

GraphicsContextPlatformPrivate::syncContext was a setter of
cairo_t*. Removed it and set cairo_t* as an argument of the
constructor.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::GraphicsContextCairo):

  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::setCTM):
(WebCore::GraphicsContextPlatformPrivate::syncContext): Deleted.

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::syncContext): Deleted.

9:35 PM Changeset in webkit [278147] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[MSE] MediaSample that need to be removed with SourceBufferPrivate::evictCodedFrames() may not be removed.
https://bugs.webkit.org/show_bug.cgi?id=225800
<rdar://problem/78296352>

Patch by Toshio Ogasawara <toshio.ogasawara@access-company.com> on 2021-05-26
Reviewed by Jer Noble.

Source/WebCore:

Fixed evictCodedFrames to remove MediaSample that can be removed after the minimumRangeStart.

Test: media/media-source/media-source-evict-codedframe-after-seek.html

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::evictCodedFrames):

LayoutTests:

  • media/media-source/media-source-evict-codedframe-after-seek-expected.txt: Added.
  • media/media-source/media-source-evict-codedframe-after-seek.html: Added.
8:17 PM Changeset in webkit [278146] by Chris Dumez
  • 42 edits in trunk/Source

Leverage the new Vector(const T*, size_t) constructor
https://bugs.webkit.org/show_bug.cgi?id=226304

Reviewed by Darin Adler.

Leverage the new Vector(const T*, size_t) constructor in existing code.

Source/JavaScriptCore:

  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::consume):

Source/WebCore:

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::blobFromData):

  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::dataFromBuffer):

  • Modules/webauthn/WebAuthenticationUtils.cpp:

(WebCore::convertBytesToVector):

  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::decodeResponseMap):

  • Modules/webauthn/fido/FidoHidPacket.cpp:

(fido::FidoHidInitPacket::createFromSerializedData):
(fido::FidoHidContinuationPacket::createFromSerializedData):

  • Modules/webauthn/fido/Pin.cpp:

(fido::pin::encodeCOSEPublicKey):

  • Modules/webauthn/fido/U2fResponseConverter.cpp:

(fido::WebCore::extractECPublicKeyFromU2fRegistrationResponse):
(fido::WebCore::extractCredentialIdFromU2fRegistrationResponse):
(fido::WebCore::createFidoAttestationStatementFromU2fRegisterResponse):
(fido::readU2fSignResponse):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::enqueueRawFrame):

  • crypto/SubtleCrypto.cpp:

(WebCore::toKeyData):
(WebCore::copyToVector):

  • crypto/gcrypt/CryptoKeyECGCrypt.cpp:

(WebCore::CryptoKeyEC::platformAddFieldElements const):

  • crypto/mac/CryptoKeyECMac.cpp:

(WebCore::CryptoKeyEC::platformImportPkcs8):

  • crypto/mac/SerializedCryptoKeyWrapMac.mm:

(WebCore::vectorFromNSData):

  • crypto/openssl/CryptoAlgorithmAES_GCMOpenSSL.cpp:

(WebCore::cryptDecrypt):

  • fileapi/Blob.cpp:

(WebCore::Blob::Blob):

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::ImageBackingStore):

  • platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp:

(WebCore::data):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::GstMappedBuffer::createVector const):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:

(WebCore::CDMProxyClearKey::cencSetDecryptionKey):

  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::fetchData):

  • platform/network/FormData.cpp:

(WebCore::FormDataElement::isolatedCopy const):
(WebCore::FormData::appendData):

  • platform/network/curl/OpenSSLHelper.cpp:

(OpenSSL::BIO::getDataAsVector const):

  • testing/Internals.cpp:

(WebCore::Internals::deserializeBuffer const):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):

Source/WebCore/PAL:

  • pal/crypto/gcrypt/CryptoDigestGCrypt.cpp:

(PAL::CryptoDigest::computeHash):

Source/WebKit:

  • Platform/IPC/ArrayReference.h:

(IPC::ArrayReference::vector const):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(vectorFromNSData):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::setIconForPageURL):

  • UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:

(WebKit::WebCore::convertBytesToVector):

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension):

  • UIProcess/WebAuthentication/Cocoa/HidConnection.mm:

(WebKit::reportReceived):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::toVector):
(WebKit::LocalAuthenticatorInternal::aaguidVector):

  • UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:

(WebKit::NfcConnection::transact const):

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didComplete):

  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:

(WebKit::WebURLSchemeTaskProxy::didReceiveData):

Source/WTF:

  • wtf/text/WTFString.cpp:

(asciiDebug):

8:16 PM Changeset in webkit [278145] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the ENABLE(CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER) build

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::create):
Missed one GraphicsContext!

6:48 PM Changeset in webkit [278144] by Chris Dumez
  • 3 edits in trunk/Source/WTF

Use timingsafe_bcmp() in WTF::constantTimeMemcmp() when available
https://bugs.webkit.org/show_bug.cgi?id=226294
<rdar://problem/78542643>

Reviewed by Darin Adler.

Follow-up to r278140 to address post-landing feedback.

  • wtf/CryptographicUtilities.cpp:

(WTF::constantTimeMemcmp):

  • wtf/CryptographicUtilities.h:

(WTF::constantTimeMemcmp):

6:33 PM Changeset in webkit [278143] by Jean-Yves Avenard
  • 11 edits in trunk

Make MediaSession readystate enums all lowercase
https://bugs.webkit.org/show_bug.cgi?id=226213
<rdar://problem/78437011>

Reviewed by Eric Carlson.

Source/WebCore:

Use the current MediaSession definition pattern which makes all enum names
lower case.

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionReadyState.h:
  • Modules/mediasession/MediaSessionReadyState.idl:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm:

(TestWebKitAPI::TEST_F):

LayoutTests:

Use the current MediaSession definition pattern which makes all enum names
lower case.

  • media/media-session/mock-coordinator-expected.txt:
  • media/media-session/mock-coordinator.html:
5:40 PM Changeset in webkit [278142] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, remove some outdated test expectations.
https://bugs.webkit.org/show_bug.cgi?id=226284

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-05-26

5:40 PM Changeset in webkit [278141] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.14

Tag Safari-612.1.15.1.14.

5:39 PM Changeset in webkit [278140] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Use timingsafe_bcmp() in WTF::constantTimeMemcmp() when available
https://bugs.webkit.org/show_bug.cgi?id=226294

Reviewed by Alex Christensen.

Use timingsafe_bcmp() in WTF::constantTimeMemcmp() when available (iOS, macOS, FreeBSD, OpenBSD),
instead of our own custom implementation.

  • wtf/CryptographicUtilities.cpp:

(WTF::constantTimeMemcmp):

5:36 PM Changeset in webkit [278139] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION: ASSERTION FAILED: !isCompilationThread() in JSC::Profiler::Database::addCompilation()
https://bugs.webkit.org/show_bug.cgi?id=226302
<rdar://78537378>

Reviewed by Saam Barati.

We started linking the JIT code in the compiler thread, which now triggers this assertion.
The assertion was introduce before a lock was held to modify the data structures in the
profiler database, but it's safe to remove it now.

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::addCompilation):

5:35 PM Changeset in webkit [278138] by stephan.szabo@sony.com
  • 2 edits in trunk/Tools

Cleanup temporary directory after TestWTF's FileSystemTests
https://bugs.webkit.org/show_bug.cgi?id=226300

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp: move to deleteNonEmptyDirectory during test cleanup
5:10 PM Changeset in webkit [278137] by Kocsen Chung
  • 1 copy in tags/Safari-612.1.15.0.100

Tag Safari-612.1.15.0.100.

5:04 PM Changeset in webkit [278136] by Kocsen Chung
  • 1 edit in branches/safari-612.1.15.0.100-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb

Apply patch. rdar://problem/78538947

5:03 PM Changeset in webkit [278135] by Kocsen Chung
  • 8 edits in branches/safari-612.1.15.0.100-branch/Source

Versioning.

WebKit-7612.1.15.0.100

4:44 PM Changeset in webkit [278134] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.0.8

Tag Safari-612.1.15.0.8.

4:42 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
4:33 PM Changeset in webkit [278133] by Kocsen Chung
  • 1 copy in branches/safari-612.1.15.0.100-branch

New branch.

4:24 PM Changeset in webkit [278132] by Chris Dumez
  • 2 edits in trunk/Source/WTF

[Hardening] Have the Ref<> destructor null out its pointer
https://bugs.webkit.org/show_bug.cgi?id=226293
<rdar://problem/78532149>

Reviewed by Geoffrey Garen.

  • wtf/Ref.h:

(WTF::Ref::~Ref):

4:17 PM Changeset in webkit [278131] by Wenson Hsieh
  • 5 edits
    2 adds in trunk/Source/WebCore

Add a PAL softlinking header for the Reveal framework
https://bugs.webkit.org/show_bug.cgi?id=226292

Reviewed by Tim Horton.

Source/WebCore:

Pull soft-linking bits out of DictionaryLookup.mm and into a separate PAL header, so that we can easily soft-
link both Reveal and RevealCore in WebKit, in future patches. See below for more details.

No change in behavior.

  • editing/cocoa/DictionaryLookup.mm:

Also do some minor cleanup around this code:

  • Use auto in more places.
  • Make WebRevealHighlight conform to RVPresenterHighlightDelegate and UIRVPresenterHighlightDelegate, as

was (probably) intended. Currently, the names of these delegate methods are treated as unused type template
arguments on the class. This means we no longer need to static_cast to the protocol when passing these
objects around.

  • Move several ivars on WebRevealHighlight out of the @interface, and into the @implementation.

(-[WebRevealHighlight revealContext:drawRectsForItem:]):
(WebCore::canCreateRevealItems):
(WebCore::DictionaryLookup::rangeForSelection):
(WebCore::DictionaryLookup::rangeAtHitTestResult):
(WebCore::showPopupOrCreateAnimationController):
(SOFT_LINK_CLASS_OPTIONAL): Deleted.

Source/WebCore/PAL:

Add the new header and source file.

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/cocoa/RevealSoftLink.h: Added.
  • pal/cocoa/RevealSoftLink.mm: Added.
3:49 PM Changeset in webkit [278130] by don.olmstead@sony.com
  • 17 edits
    2 adds in trunk

[CMake] Support USE_ANGLE_EGL on additional platforms
https://bugs.webkit.org/show_bug.cgi?id=224888
<rdar://problem/77280211>

Reviewed by Ken Russell.

.:

USE_ANGLE_EGL is for platforms that want to use ANGLE as the sole OpenGL ES implementation
within WebKit. This setting is applicable to Mac and Windows platforms. USE_ANGLE_WEBGL is
just for platforms that want to use ANGLE for WebGL 2.0 support only. Any other uses of
OpenGL should go through the system OpenGL (desktop or embedded). This setting applies to
GTK.

The platform options were modified to match this.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:

Source/ThirdParty/ANGLE:

Support ANGLE using the OpenGL backend for GTK. Support ANGLE using Metal
backend for Mac. Add the generated sources for these two backends.

Clean up the CMake and introduce additional targets.

  • CMakeLists.txt:
  • Compiler.cmake:
  • GL.cmake: Added.
  • Metal.cmake: Added.
  • PlatformFTW.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:

Source/WebCore:

Use the ANGLE library targets when applicable.

  • CMakeLists.txt:
  • Headers.cmake:

Source/WebKit:

Use the ANGLE library targets when applicable.

  • CMakeLists.txt:

Tools:

Generate source listings for Metal and OpenGL ANGLE backends.

  • Scripts/update-angle:
3:46 PM Changeset in webkit [278129] by Chris Lord
  • 4 edits in trunk

Scrollbars/indicators are sometimes incorrectly drawn when async overflow scrolling is enabled
https://bugs.webkit.org/show_bug.cgi?id=226259

Reviewed by Simon Fraser.

Source/WebCore:

Respect scrolled contents visibility when rendering scrollbar layers.

No new tests, covered by existing tests.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintContents):

LayoutTests:

Some tests involving overflow scrolling now pass.

  • platform/wpe/TestExpectations:
3:44 PM Changeset in webkit [278128] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[BigSur] http/tests/performance/performance-resource-timing-resourcetimingbufferfull-crash.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226299

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:08 PM Changeset in webkit [278127] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Refactor SimulatorDevice (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=225158

Unreviewed follow-up fix.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.is_usable): When no UI Manager service is defined, we should early exit.

2:34 PM Changeset in webkit [278126] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[ macOS iOS ] crypto/crypto-random-values-oom.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223949

Unreviewed test gardening.

Updated test expectations due to test still appearing flaky.

  • platform/mac/TestExpectations:
2:19 PM Changeset in webkit [278125] by Truitt Savell
  • 3 edits
    2 deletes in trunk

Unreviewed, reverting r278028.

Caused fast/selectors/slow-style-sharing-with-long-cousin-
list.html to timeout on iOS and Windows.

Reverted changeset:

"CrashOnOverflow in
WebCore::RenderTable::cellBefore(WebCore::RenderTableCell
const*)"
https://bugs.webkit.org/show_bug.cgi?id=225949
https://commits.webkit.org/r278028

2:05 PM Changeset in webkit [278124] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Do not skip SetCommitQueueMinusFlagOnPatch step on EWS test instances
https://bugs.webkit.org/show_bug.cgi?id=226289

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(SetCommitQueueMinusFlagOnPatch.start):
(SetCommitQueueMinusFlagOnPatch.doStepIf): Deleted.

2:02 PM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
1:39 PM Changeset in webkit [278123] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Add release logging in WebPage::runJavaScriptInFrameInScriptWorld()
https://bugs.webkit.org/show_bug.cgi?id=226286

Reviewed by Geoffrey Garen.

Add release logging in WebPage::runJavaScriptInFrameInScriptWorld(). We have logging on UIProcess side but not on
WebProcess side. It makes it hard to determine if the WebProcess processed the request to run JS or not.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):

1:35 PM Changeset in webkit [278122] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip new WebAudio tests added in r278068 on Windows.

WebAudio is disabled on Windows.

  • platform/win/TestExpectations:
1:06 PM Changeset in webkit [278121] by Wenson Hsieh
  • 11 edits
    1 add in trunk/Source/WebCore

[macOS] Support painting data detector highlights inside image overlays
https://bugs.webkit.org/show_bug.cgi?id=226227

Reviewed by Tim Horton.

Add support for painting data detector highlights inside image overlays by leveraging DataDetectorHighlight.
See comments below for more details.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/Editor.cpp:

(WebCore::scanForTelephoneNumbers):

Avoid painting service-controls-based telephone number highlights for selected text inside image overlays, in
order to avoid painting a redundant data detector highlight for telephone numbers in image overlays.

  • html/HTMLElement.cpp:

(WebCore::imageOverlayDataDetectorClassName):
(WebCore::HTMLElement::isImageOverlayDataDetectorResult const):
(WebCore::HTMLElement::updateWithImageExtractionResult):

  • html/HTMLElement.h:
  • html/shadow/imageOverlay.css:

(div.image-overlay-data-detector-result):

Add support for injecting elements in the DOM that represent data detection results; these are transformed and
overlaid on the image in the same way as existing text containers. Note that we lay out these elements on top
of text, but make them invisible to hit-testing unless the IgnoreCSSPointerEventsProperty option is specified.
We'll take advantage of this behavior in a future patch.

  • page/ImageOverlayController.cpp:

(WebCore::ImageOverlayController::selectionQuadsDidChange):
(WebCore::ImageOverlayController::uninstallPageOverlayIfNeeded):
(WebCore::ImageOverlayController::drawRect):
(WebCore::ImageOverlayController::platformHandleMouseEvent):

  • page/ImageOverlayController.h:

Refactor the image overlay controller, such that we install the page overlay if there is any selection inside
the image overlay (as opposed to only when we need to use this overlay to paint the text selection for
transparent images). If data detectors are present, we'll additionally set up out DataDetectorHighlights (one
for each data detection result container).

  • page/mac/ImageOverlayControllerMac.mm: Added.

(WebCore::ImageOverlayController::updateDataDetectorHighlights):

Traverse the image overlay's subtree in search of container elements that correspond to data detection results;
for each of these elements, we create a new DataDetectorHighlight using the element's bounds, and save the
pair in m_dataDetectorContainersAndHighlights. Note that we hold a weak pointer to the container element, such
that there's no risk of leaking any of these data detection result containers (or their documents).

(WebCore::ImageOverlayController::platformHandleMouseEvent):
(WebCore::ImageOverlayController::handleDataDetectorAction):

Add a FIXME referencing the next patch in the sequence.

(WebCore::ImageOverlayController::clearDataDetectorHighlights):

  • platform/mac/DataDetectorHighlight.h:
  • platform/mac/DataDetectorHighlight.mm:

(WebCore::DataDetectorHighlight::createForImageOverlay):

Add a helper method to create a DataDetectorHighlight for image overlays.

12:59 PM Changeset in webkit [278120] by Jonathan Bedard
  • 5 edits
    1 move
    1 delete in trunk

[run-webkit-tests] Strip php support from webserver (Apache)
https://bugs.webkit.org/show_bug.cgi?id=226032
<rdar://problem/78269181>

Reviewed by Adrian Perez de Castro.

Tools:

  • Scripts/webkitpy/port/base.py:

(Port._apache_config_file_name_for_platform): Use explicit Darwin httpd.conf.
(Port._is_darwin_php_version_7): Deleted.
(Port._darwin_php_version): Deleted.

LayoutTests:

  • http/conf/apache2.2-httpd.conf: Remove PHP.
  • http/conf/apache2.4-darwin-httpd.conf: Copied from LayoutTests/http/conf/apache2.4-x-httpd.conf.
  • http/conf/apache2.4-httpd.conf: Remove PHP.
  • http/conf/apache2.4-php7-httpd.conf: Removed.
  • http/conf/apache2.4-x-httpd.conf: Renamed apache2.4-darwin-httpd.conf.
12:19 PM Changeset in webkit [278119] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

Don't hang onto expired resources without validation headers in memory cache
https://bugs.webkit.org/show_bug.cgi?id=226083
rdar://78035612

Reviewed by Chris Dumez.

They consume memory while only really being useful for history navigation.
Disk cache can handle the relatively rare cases where that is useful and not
covered by the page cache.

  • loader/ResourceTimingInformation.cpp:

(WebCore::ResourceTimingInformation::addResourceTiming):
(WebCore::ResourceTimingInformation::removeResourceTiming):

Add way to remove entries from the map.

  • loader/ResourceTimingInformation.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::removeClient):

Removal from cache is now handled in deleteIfPossible() so any path that gets the resource to
canDelete() state will do cache removal check.
Since deleteIfPossible is invoked by removeClient the existing behavior is covered.

(WebCore::CachedResource::deleteIfPossible):

Remove expired resources without validation headers from the cache if the resource is otherwise deletable.
Also eagerly remove no-store http resources (previously only https was removed).

(WebCore::CachedResource::deleteThis):

Factor into a function.

  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

Ensure existing resource is removed from cache adding a new one. This was causing confusion with inCache state.

(WebCore::CachedResourceLoader::garbageCollectDocumentResources):

Don't remove entries with active loader. They are needed for resource timing.
Don't leave removed entries to ResourceTimingInformation. They are not guaranteed to stay alive after
being removed from m_documentResources.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::remove):

Call CachedResource::deleteThis() directly.

11:52 AM Changeset in webkit [278118] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.4.1

Tag Safari-612.1.15.4.1.

11:50 AM Changeset in webkit [278117] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WTF

Cherry-pick r278032. rdar://problem/78517968

[AppleWin] JSC fails to build
https://bugs.webkit.org/show_bug.cgi?id=226225
<rdar://78330435>

Reviewed by Brent Fulgham.

Speculative build fix for missing script to generate unified sources. Make sure the WTF scripts directory exists before
copying the script there, and add a CMake log message to help further debugging if this is not the correct fix.

  • wtf/CMakeLists.txt:

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

11:48 AM Changeset in webkit [278116] by Russell Epstein
  • 1 edit in branches/safari-612.1.15.4-branch/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm

Cherry-pick r278009. rdar://problem/78463104

Ensure app highlight visibility observer is initialized before adding a new highlight
https://bugs.webkit.org/show_bug.cgi?id=226214
rdar://78173370

Patch by Matt Mokary <mmokary@apple.com> on 2021-05-25
Reviewed by Wenson Hsieh.

The app highlight visibility observer is initialized before restoring highlights, but was not initialized
before adding a new one. It must be initialized before adding a highlight so a change in visibility resulting
from a new highlight is handled correct.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::createAppHighlightInSelectedRange):

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

11:48 AM Changeset in webkit [278115] by Russell Epstein
  • 13 edits in branches/safari-612.1.15.4-branch/Source/bmalloc

Cherry-pick r277898. rdar://problem/78411755

[bmalloc] Rollout r276266 because WebKit processes are spending much more time in madvise
https://bugs.webkit.org/show_bug.cgi?id=226122

Unreviewed rollout.

Rolling out r276266 to do some automated testing. At the same time, we'll work on changing the madvise() decommitting to be more precise.

  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp: (bmalloc::Heap::scavenge): (bmalloc::Heap::scavengeToHighWatermark): (bmalloc::Heap::allocateSmallChunk): (bmalloc::Heap::allocateSmallPage): (bmalloc::Heap::allocateLarge):
  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h: (bmalloc::passedNumPages>::takeFirstEligible): (bmalloc::passedNumPages>::scavenge): (bmalloc::passedNumPages>::scavengeToHighWatermark):
  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h: (bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
  • bmalloc/LargeMap.cpp: (bmalloc::LargeMap::add):
  • bmalloc/LargeRange.h: (bmalloc::LargeRange::LargeRange): (bmalloc::merge):
  • bmalloc/Scavenger.cpp: (bmalloc::Scavenger::Scavenger): (bmalloc::Scavenger::timeSinceLastPartialScavenge): (bmalloc::Scavenger::scavenge): (bmalloc::Scavenger::partialScavenge): (bmalloc::Scavenger::threadRunLoop):
  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:

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

11:48 AM Changeset in webkit [278114] by Russell Epstein
  • 1 edit in branches/safari-612.1.15.4-branch/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm

Cherry-pick r277784. rdar://problem/78264934

CRASH: Null-pointer deref in MediaSessionManagerCocoa::setNowPlayingInfo()
https://bugs.webkit.org/show_bug.cgi?id=225999
<rdar://78232970>

Reviewed by Eric Carlson.

Null-check nowPlayingInfo.artwork->imageData before dereferencing.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):

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

11:48 AM Changeset in webkit [278113] by Russell Epstein
  • 1 edit
    2 adds in branches/safari-612.1.15.4-branch

Cherry-pick r277726. rdar://problem/78260457

[Mac] MSE-based video pauses when put in background; PiP context menu disabled
https://bugs.webkit.org/show_bug.cgi?id=225958
<rdar://78130303>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-has-audio-video.html

In r277116, in order to reduce the CPU usage incurred when pushing state changes from
the GPU process to the WebContent process, state changes to hasAudio and hasVideo
were now only updated when the MediaPlayer indicated that its characteristicsChanged().
However, in SourceBufferPrivateAVFObjC, this call was performed too early, before the
SourceBuffer in the WebContent process had informed SourceBufferPrivate of newly added
audio and video tracks. Thus the cached values of hasAudio and hasVideo inside the
WebContent process were never updated.

Call characteristicsChanged() from the callback handler of didReceiveInitializationSegment(),
which will be called only after the WebContent process completes its handling of the
new initialization segment, which includes telling the SourceBufferPrivate in the GPU
process about newly added audio and video tracks.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):

LayoutTests:

  • media/media-source/media-source-has-audio-video-expected.txt: Added.
  • media/media-source/media-source-has-audio-video.html: Added.

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

11:48 AM Changeset in webkit [278112] by Russell Epstein
  • 1 edit in branches/safari-612.1.15.4-branch/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm

Cherry-pick r277518. rdar://problem/78260425

Web Inspector: _WKInspector leaks WebInspectorUIProxy
https://bugs.webkit.org/show_bug.cgi?id=225815

Reviewed by Tim Horton.

Add a missing call in _WKInspector's destructor to destruct the WebInspectorUIProxy in API object storage.

  • UIProcess/API/Cocoa/_WKInspector.mm: (-[_WKInspector dealloc]):

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

11:48 AM Changeset in webkit [278111] by Russell Epstein
  • 1 edit in branches/safari-612.1.15.4-branch/Source/JavaScriptCore/runtime/JSCJSValue.cpp

Unreviewed build fix, rdar://problem/78224090

./runtime/JSCJSValue.cpp:262:70: error: no member named 'callSetter' in 'JSC::GetterSetter'

11:48 AM Changeset in webkit [278110] by Russell Epstein
  • 95 edits
    15 deletes in branches/safari-612.1.15.4-branch

Cherry-pick r277665. rdar://problem/78224090

Temporarily revert r276592 as it breaks some native apps
https://bugs.webkit.org/show_bug.cgi?id=225917

JSTests:

Unreviewed, revert.

  • microbenchmarks/put-slow-no-cache-array.js: Removed.
  • microbenchmarks/put-slow-no-cache-function.js: Removed.
  • microbenchmarks/put-slow-no-cache-js-proxy.js: Removed.
  • microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Removed.
  • microbenchmarks/put-slow-no-cache.js: Removed.
  • microbenchmarks/reflect-set-with-receiver.js: Removed.
  • stress/custom-get-set-proto-chain-put.js: (getObjects): (let.base.of.getBases):
  • stress/module-namespace-access-set-fails.js: Removed.
  • stress/put-non-reified-static-accessor-or-custom.js: Removed.
  • stress/put-non-reified-static-function-or-custom.js: Removed.
  • stress/put-to-primitive-non-reified-static-custom.js: Removed.
  • stress/put-to-primitive.js: Removed.
  • stress/put-to-proto-chain-overrides-put.js: Removed.
  • stress/typed-array-canonical-numeric-index-string-set.js: Removed.

LayoutTests/imported/w3c:

Unreviewed, revert.

  • web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver-expected.txt: Removed.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html: Removed.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html:

Source/JavaScriptCore:

Unreviewed, revert.

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (JSC::JSCallbackObject<Parent>::put):
  • debugger/DebuggerScope.h:
  • runtime/ClassInfo.h:
  • runtime/ClonedArguments.h:
  • runtime/CustomGetterSetter.cpp: (JSC::callCustomSetter):
  • runtime/CustomGetterSetter.h:
  • runtime/ErrorConstructor.h:
  • runtime/ErrorInstance.h:
  • runtime/GenericArguments.h:
  • runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::put):
  • runtime/GetterSetter.h:
  • runtime/JSArray.cpp: (JSC::JSArray::put):
  • runtime/JSArray.h:
  • runtime/JSArrayBufferView.cpp: (JSC::JSArrayBufferView::put):
  • runtime/JSArrayBufferView.h:
  • runtime/JSCJSValue.cpp: (JSC::JSValue::putToPrimitive):
  • runtime/JSCell.cpp: (JSC::JSCell::doPutPropertySecurityCheck):
  • runtime/JSCell.h:
  • runtime/JSFunction.cpp: (JSC::JSFunction::put):
  • runtime/JSFunction.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGlobalLexicalEnvironment.h:
  • runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::put):
  • runtime/JSGlobalObject.h:
  • runtime/JSLexicalEnvironment.h:
  • runtime/JSModuleEnvironment.h:
  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSObject.cpp: (JSC::JSObject::doPutPropertySecurityCheck): (JSC::JSObject::putInlineSlow): (JSC::JSObject::prototypeChainMayInterceptStoreTo): (JSC::definePropertyOnReceiverSlow): Deleted. (JSC::JSObject::definePropertyOnReceiver): Deleted. (JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded): Deleted.
  • runtime/JSObject.h: (JSC::JSObject::putByIndexInline): (JSC::JSObject::doPutPropertySecurityCheck): (JSC::JSObject::hasNonReifiedStaticProperties): Deleted.
  • runtime/JSObjectInlines.h: (JSC::JSObject::canPerformFastPutInlineExcludingProto): (JSC::JSObject::putInlineForJSObject): (JSC::JSObject::putDirectInternal): (JSC::JSObject::putInlineFast): Deleted.
  • runtime/JSProxy.h:
  • runtime/JSTypeInfo.h: (JSC::TypeInfo::overridesGetOwnPropertySlot const): (JSC::TypeInfo::overridesAnyFormOfGetOwnPropertyNames const): (JSC::TypeInfo::hasPutPropertySecurityCheck const): (JSC::TypeInfo::hasStaticPropertyTable const): Deleted. (JSC::TypeInfo::overridesPut const): Deleted.
  • runtime/Lookup.h: (JSC::putEntry): (JSC::lookupPut):
  • runtime/PropertySlot.h:
  • runtime/ProxyObject.cpp: (JSC::ProxyObject::put):
  • runtime/ProxyObject.h:
  • runtime/PutPropertySlot.h: (JSC::PutPropertySlot::PutPropertySlot): (JSC::PutPropertySlot::context const): (JSC::PutPropertySlot::type const): (JSC::PutPropertySlot::isInitialization const): (JSC::PutPropertySlot::isTaintedByOpaqueObject const): Deleted. (JSC::PutPropertySlot::setIsTaintedByOpaqueObject): Deleted.
  • runtime/ReflectObject.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
  • runtime/RegExpObject.cpp: (JSC::RegExpObject::put):
  • runtime/RegExpObject.h:
  • runtime/StringObject.cpp: (JSC::StringObject::put):
  • runtime/StringObject.h:
  • runtime/StringPrototype.cpp: (JSC::StringPrototype::finishCreation): (JSC::StringPrototype::create):
  • runtime/StringPrototype.h:
  • runtime/Structure.cpp: (JSC::Structure::validateFlags):
  • runtime/Structure.h: (JSC::Structure::takesSlowPathInDFGForImpureProperty): (JSC::Structure::hasNonReifiedStaticProperties const): Deleted.
  • tools/JSDollarVM.cpp:

Source/WebCore:

Unreviewed, revert.

  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::doPutPropertySecurityCheck): (WebCore::JSDOMWindow::put):
  • bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::doPutPropertySecurityCheck):
  • bindings/js/JSRemoteDOMWindowCustom.cpp: (WebCore::JSRemoteDOMWindow::put):
  • bindings/scripts/CodeGeneratorJS.pm: (GeneratePut): (GenerateHeader):
  • bindings/scripts/test/JS/JSTestDomainSecurity.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: (WebCore::JSTestIndexedSetterNoIdentifier::put):
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: (WebCore::JSTestIndexedSetterThrowingException::put):
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: (WebCore::JSTestIndexedSetterWithIdentifier::put):
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: (WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: (WebCore::JSTestNamedSetterNoIdentifier::put):
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: (WebCore::JSTestNamedSetterThrowingException::put):
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: (WebCore::JSTestNamedSetterWithIdentifier::put):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetter::put):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::put):
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::put):
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::JSTestPluginInterface::put):
  • bindings/scripts/test/JS/JSTestPluginInterface.h:
  • bridge/objc/objc_runtime.h:
  • bridge/runtime_array.h:
  • bridge/runtime_object.h:

Source/WebKit:

Unreviewed, revert.

  • WebProcess/Plugins/Netscape/JSNPObject.h:

LayoutTests:

Unreviewed, revert

  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt:
  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html:
  • js/dom/reflect-set-onto-dom-expected.txt:
  • js/dom/script-tests/reflect-set-onto-dom.js:

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

11:48 AM Changeset in webkit [278109] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Tools

Revert "Cherry-pick r277608. rdar://problem/78207944"

This reverts commit r277723

11:48 AM Changeset in webkit [278108] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Tools

Cherry-pick r277608. rdar://problem/78207944

Fix clean build after r277606
https://bugs.webkit.org/show_bug.cgi?id=223658

  • TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: (TEST): Use API instead of removed API. Why EWS didn't find this, we may never know.

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

11:48 AM Changeset in webkit [278107] by Russell Epstein
  • 2 edits
    2 adds in branches/safari-612.1.15.4-branch

Cherry-pick r277452. rdar://problem/78179698

REGRESSION (r276945): [iOS] Focus rings are too large
https://bugs.webkit.org/show_bug.cgi?id=225778
<rdar://problem/77858341>

Reviewed by Tim Horton.

Source/WebCore:

r276945 updated scaling logic to ensure that the scale of the base CTM
matches the device scale factor. The change itself makes our base CTM
more correct, but exposed a longstanding bug with our focus ring
implementation.

Focus rings are drawn using CoreGraphics, using CGFocusRingStyle. On
macOS, the style is initialized using NSInitializeCGFocusRingStyleForTime.
However, on iOS, we initialize the style ourselves, using UIKit constants.
Currently, the focus ring's style's radius is set to
+[UIFocusRingStyle cornerRadius], a constant of 8. This is the longstanding
issue. CGFocusRingStyle's radius is not a corner radius, but is the
width of the focus ring. In UIKit, this width is represented by
+[UIFocusRingStyle borderThickness], a constant of 3. WebKit has always
intended to match this width, as evidenced by the default outline-width
of 3px in the UA style sheet.

Considering the large disparity between the existing and expected radius
value, it may be surprising that this mistake has gone unnoticed since
2019, when focus rings were first introduced on iOS. This is where r276945
comes into play. Prior to r276945, the scale of the base CTM did not match
the device scale factor. This meant that CG scaled down the constant of 8
to 4 CSS pixels (1 (base CTM) / 2 (device scale factor)). After r276945,
the two scales are equal and the focus ring is drawn as 8 CSS pixels, much
larger than the expected 3px.

Test: fast/forms/ios/focus-ring-size.html

  • platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::drawFocusRingAtTime):

To fix, use the correct SPI to get the focus ring width,
+[UIFocusRingStyle borderThickness]. This ensures that focus rings have
the right width, following r276945.

The change also fixes focus ring repaint issues that arose from the
fact that the outline-width was 3px, but the painted width was 4px.

Source/WebCore/PAL:

  • pal/spi/ios/UIKitSPI.h:

LayoutTests:

Added a regression test to verify the size of the focus ring on iOS.
The test works by drawing an overlay on top of an input element, that
is just large enough to obscure the focus ring. If the focus ring is
too large, the ring will not obscured, leading to a mismatch failure.

  • fast/forms/ios/focus-ring-size-expected.html: Added.
  • fast/forms/ios/focus-ring-size.html: Added.

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

11:48 AM Changeset in webkit [278106] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Revert "Cherry-pick r277459. rdar://problem/78110796"

This reverts commit r277597.

11:48 AM Changeset in webkit [278105] by Russell Epstein
  • 29 edits
    1 add
    1 delete in branches/safari-612.1.15.4-branch

Revert "Cherry-pick r277505. rdar://problem/78110796"

This reverts commit r277598.

11:48 AM Changeset in webkit [278104] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Revert "Cherry-pick r277594. rdar://problem/78130222"

This reverts commit r277621

11:47 AM Changeset in webkit [278103] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Revert "Cherry-pick r277603. rdar://problem/78130222"

This reverts commit r277623

11:47 AM Changeset in webkit [278102] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/ThirdParty/ANGLE

Cherry-pick r277661. rdar://problem/78175007

Stop compiling ANGLE metal files twice
https://bugs.webkit.org/show_bug.cgi?id=225919
<rdar://78013511>

Reviewed by Dean Jackson.

ANGLE currently generates an unused default.metallib that conflicts with other default.metallibs being built.
Since it is unused, remove it.
What we currently do is put all the source bytes into gDefaultMetallibSrc and compile it at runtime.
This could be optimized to do it at compile time and use newLibraryWithData instead of newLibraryWithSource,
but that should be done separately.

  • ANGLE.xcodeproj/project.pbxproj:

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

11:47 AM Changeset in webkit [278101] by Russell Epstein
  • 5 edits in branches/safari-612.1.15.4-branch/Source

Apply patch. rdar://problem/77799537

11:47 AM Changeset in webkit [278100] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Cherry-pick r277603. rdar://problem/78130222

Null check m_resource in SubresourceLoader::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=225879

Reviewed by Chris Dumez.

Add ASSERT_NOT_REACHED and RELEASE_LOG_FAULT if m_resource is null.
This will help us notice this invalid state in debug builds and diagnose strange loading failures in simulated crash logs.
On further investigation, the crash fixed in r277594 was likely already fixed by something else, but that made it more robust.

  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didReceiveResponse):

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

11:47 AM Changeset in webkit [278099] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Cherry-pick r277600. rdar://problem/78130132

REGRESSION(r277425): Crash in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225795

Patch by Frederic Wang <fwang@igalia.com> on 2021-05-17
Reviewed by Ryosuke Niwa.

r277425 claimed that in FrameSelection::setSelectionWithoutUpdatingAppearance,
!m_document->frame() was equivalent to !selectionEndpointsBelongToMultipleDocuments &&
!selectionIsInAnotherDocument && selectionIsInDetachedDocument, but it misses the case when
newSelection.document() is null. So this patch adds back this particular case to the
original "if" block. This patch also adds an ASSERT on m_document->frame().

No new tests.

  • editing/FrameSelection.cpp: (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Add back the case !m_document->frame() && !newSelection.document() to the first sanity check and ASSERT on m_document->frame() after the second sanity check.

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

11:47 AM Changeset in webkit [278098] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Cherry-pick r277594. rdar://problem/78130222

Null check m_resource in SubresourceLoader::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=225879
<rdar://78084804>

Reviewed by Chris Dumez.

  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didReceiveResponse):

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

11:47 AM Changeset in webkit [278097] by Russell Epstein
  • 29 edits
    1 add
    1 delete in branches/safari-612.1.15.4-branch

Cherry-pick r277505. rdar://problem/78110796

Promote -[WKWebView _pageExtendedBackgroundColor] SPI to -[WKWebView underPageBackgroundColor] API
https://bugs.webkit.org/show_bug.cgi?id=225615
<rdar://problem/76568094>

Reviewed by Wenson Hsieh.

Source/WebCore:

underPageBackgroundColor is a null_resettable property that will return (in order of validity)

  • the most recent non-null value provided
  • the CSS background-color of the <body> and/or <html> (this is the current value of _pageExtendedBackgroundColor)
  • the underlying platform view's background color

Modifications to this property will not have any effect until control is returned to the runloop.

Tests: WKWebViewUnderPageBackgroundColor.OnLoad

WKWebViewUnderPageBackgroundColor.SingleSolidColor
WKWebViewUnderPageBackgroundColor.SingleBlendedColor
WKWebViewUnderPageBackgroundColor.MultipleSolidColors
WKWebViewUnderPageBackgroundColor.MultipleBlendedColors
WKWebViewUnderPageBackgroundColor.KVO
WKWebViewUnderPageBackgroundColor.MatchesScrollView

  • page/Page.h: (WebCore::Page::underPageBackgroundColorOverride const): Added.
  • page/Page.cpp: (WebCore::Page::setUnderPageBackgroundColorOverride): Added. Hold the client-overriden value for underPageBackgroundColor so that it can be used when drawing the overscroll layer.
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor): Remove the experimental settings UseSampledPageTopColorForScrollAreaBackgroundColor and UseThemeColorForScrollAreaBackgroundColor now that clients can override the default overscroll area background color using -[WKWebView setUnderPageBackgroundColor:].
  • dom/Document.cpp: (WebCore::Document::themeColorChanged): It's no longer necessary to force the overscroll area to redraw since that'll be handled by a client calling -[WKWebView setUnderPageBackgroundColor:] (possibly in response to a -[WKWebView themeColor] KVO notification).

Source/WebKit:

underPageBackgroundColor is a null_resettable property that will return (in order of validity)

  • the most recent non-null value provided
  • the CSS background-color of the <body> and/or <html> (this is the current value of _pageExtendedBackgroundColor)
  • the underlying platform view's background color

Modifications to this property will not have any effect until control is returned to the runloop.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView underPageBackgroundColor]): Added. (-[WKWebView setUnderPageBackgroundColor:]): Added. (+[WKWebView automaticallyNotifiesObserversOfUnderPageBackgroundColor]): Added.
  • UIProcess/API/ios/WKWebViewIOS.mm: (baseScrollViewBackgroundColor): (scrollViewBackgroundColor): Remove the experimental settings UseSampledPageTopColorForScrollAreaBackgroundColor and UseThemeColorForScrollAreaBackgroundColor now that clients can override the default overscroll area background color using -[WKWebView setUnderPageBackgroundColor:].
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::underPageBackgroundColor const): Added. (WebKit::WebPageProxy::setUnderPageBackgroundColorOverride): Added. (WebKit::WebPageProxy::pageExtendedBackgroundColorDidChange): (WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added. (WebKit::WebPageProxy::scrollAreaBackgroundColor const): Deleted.
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added.
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added. Store the client-overriden value for underPageBackgroundColor and manage state changes.
  • UIProcess/PageClient.h: (WebKit::PageClient::underPageBackgroundColorWillChange): Added. (WebKit::PageClient::underPageBackgroundColorDidChange): Added.
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm: (WebKit::PageClientImplCocoa::underPageBackgroundColorWillChange): Added. (WebKit::PageClientImplCocoa::underPageBackgroundColorDidChange): Added. Add ObjC KVO support for -[WKWebView underPageBackgroundColor].
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::contentViewBackgroundColor): Added. Provide a way to get the backgroundColor of the WKContentView. This is needed on iOS because scrollViewBackgroundColor (now WebPageProxy::platformUnderPageBackgroundColor) would use this value before falling back to the underlying platform view's background color.
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setUnderPageBackgroundColorOverride): Added. Pass the client-overriden value for underPageBackgroundColor to the WebProcess so that it can be used when drawing the overscroll layer.
  • UIProcess/ViewSnapshotStore.cpp: (WebKit::ViewSnapshotStore::recordSnapshot): Go back to using the pageExtendedBackgroundColor (before r273083).

Source/WTF:

underPageBackgroundColor is a null_resettable property that will return (in order of validity)

  • the most recent non-null value provided
  • the CSS background-color of the <body> and/or <html> (this is the current value of _pageExtendedBackgroundColor)
  • the underlying platform view's background color

Modifications to this property will not have any effect until control is returned to the runloop.

  • Scripts/Preferences/WebPreferencesInternal.yaml: Remove the experimental settings UseSampledPageTopColorForScrollAreaBackgroundColorand UseThemeColorForScrollAreaBackgroundColor now that clients can override the default overscroll area background color using -[WKWebView setUnderPageBackgroundColor:].

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm: Renamed from PageExtendedBackgroundColor.mm. (defaultBackgroundColor): Added. (TEST.WKWebViewUnderPageBackgroundColor.OnLoad): (TEST.WKWebViewUnderPageBackgroundColor.SingleSolidColor): Added. (TEST.WKWebViewUnderPageBackgroundColor.SingleBlendedColor): Added. (TEST.WKWebViewUnderPageBackgroundColor.MultipleSolidColors): Added. (TEST.WKWebViewUnderPageBackgroundColor.MultipleBlendedColors): Added. (-[WKWebViewUnderPageBackgroundColorObserver initWithWebView:]): Added. (-[WKWebViewUnderPageBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]): Added. (TEST.WKWebViewUnderPageBackgroundColor.KVO): (TEST.WKWebViewUnderPageBackgroundColor.MatchesScrollView): Added. (TEST.WKWebViewUnderPageBackgroundColor.MultipleStyles): Deleted. (-[WKWebViewPageExtendedBackgroundColorObserver initWithWebView:]): Deleted. (-[WKWebViewPageExtendedBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]): Deleted.
  • TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (createWebViewWithSampledPageTopColorMaxDifference): (TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor): Deleted.
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewThemeColor.mm: (createWebView): Deleted. (TEST.WKWebView.ExperimentalUseThemeColorForScrollAreaBackgroundColor): Deleted. Remove the experimental settings UseSampledPageTopColorForScrollAreaBackgroundColor and UseThemeColorForScrollAreaBackgroundColor now that clients can override the default overscroll area background color using -[WKWebView setUnderPageBackgroundColor:].
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

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

11:47 AM Changeset in webkit [278096] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebCore

Cherry-pick r277459. rdar://problem/78110796

[macOS] experimental "Use theme color for scroll area background" isn't working
https://bugs.webkit.org/show_bug.cgi?id=225726
<rdar://problem/77933000>

Reviewed by Tim Horton.

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor): (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): Fix last remaining m_layerForOverhangAreas->setBackgroundColor to use the helper function RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor instead so that all paths that update the overscroll area color check the experimental settings too.

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

11:47 AM Changeset in webkit [278095] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/WebKit

Cherry-pick r277528. rdar://problem/78109685

REGRESSION (r269824): Random tile corruption when scrolling/zooming in macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=225837
<rdar://problem/75053997>

Reviewed by Simon Fraser.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): Mark the newly front buffer non-volatile before painting into it. This was lost in r269824. Oddly, this caused less trouble than one might expect, except on some particular hardware.

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

11:47 AM Changeset in webkit [278094] by Russell Epstein
  • 35 edits in branches/safari-612.1.15.4-branch/Source

Cherry-pick r277453. rdar://problem/78108967

Add textIndicator bounce for AppHighlights on scroll.
https://bugs.webkit.org/show_bug.cgi?id=225727

Reviewed by Tim Horton.

  • Modules/highlight/AppHighlightStorage.cpp: (WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):
  • loader/EmptyClients.cpp: (WebCore::EmptyChromeClient::setTextIndicator const):
  • loader/EmptyClients.h:
  • page/ChromeClient.h:
  • page/TextIndicator.h:
  • page/cocoa/WebTextIndicatorLayer.h:
  • page/cocoa/WebTextIndicatorLayer.mm: (-[WebTextIndicatorLayer initWithFrame:textIndicator:margin:offset:]): (createBounceAnimation): (-[WebTextIndicatorLayer _animationDuration]):
  • page/mac/TextIndicatorWindow.h:
  • page/mac/TextIndicatorWindow.mm: (WebCore::TextIndicatorWindow::~TextIndicatorWindow): (WebCore::TextIndicatorWindow::clearTextIndicator): (WebCore::TextIndicatorWindow::setTextIndicator):

Use factored out textIndicator code to add a bounce to an appHighlight
when it is scrolled to.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm: (-[WKWindowVisibilityObserver _dictionaryLookupPopoverWillClose:]): (WebKit::WebViewImpl::setTextIndicator): (WebKit::WebViewImpl::clearTextIndicatorWithAnimation): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsWithAnimationFromViewOnly): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsFromViewOnly):
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setTextIndicator): (WebKit::WebPageProxy::clearTextIndicator):
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setUpTextIndicator:]): (-[WKContentView clearTextIndicator:]): (-[WKContentView setTextIndicatorAnimationProgress:]): (-[WKContentView teardownTextIndicatorLayer]): (-[WKContentView startFadeOut]):
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::didPerformDictionaryLookup):
  • UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _animationControllerForText]):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::setTextIndicator const):
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindIndicator):
  • WebCoreSupport/WebChromeClient.h:

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

11:35 AM Changeset in webkit [278093] by Chris Dumez
  • 35 edits in trunk/Source/JavaScriptCore

Use UncheckedLock even less in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=226278

Reviewed by Darin Adler.

Use UncheckedLock even less in JavaScriptCore as it is being phased out in
favor of Lock, which supports Clang thread safety analysis.

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::WTF_RETURNS_LOCK):

  • heap/CodeBlockSet.h:

(JSC::CodeBlockSet::WTF_RETURNS_LOCK):

  • heap/Heap.h:
  • heap/MarkedSpace.h:

(JSC::MarkedSpace::directoryLock):

  • heap/MarkingConstraintSolver.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::donateKnownParallel):

  • heap/SlotVisitor.h:
  • jit/JITWorklist.cpp:
  • jit/JITWorklist.h:
  • jsc.cpp:
  • profiler/ProfilerDatabase.h:
  • runtime/DeferredWorkTimer.h:
  • runtime/VMTraps.cpp:

(JSC::VMTraps::invalidateCodeBlocksOnStack):

  • runtime/VMTraps.h:
  • tools/FunctionOverrides.cpp:

(JSC::FunctionOverrides::FunctionOverrides):
(JSC::FunctionOverrides::reinstallOverrides):
(JSC::FunctionOverrides::parseOverridesInFile):

  • tools/FunctionOverrides.h:

(JSC::FunctionOverrides::WTF_REQUIRES_LOCK):

  • tools/VMInspector.cpp:

(JSC::ensureIsSafeToLock):
(JSC::VMInspector::codeBlockForMachinePC):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::parseAndValidateModule):
(JSC::Wasm::EntryPlan::prepare):
(JSC::Wasm::EntryPlan::ThreadCountHolder::~ThreadCountHolder):
(JSC::Wasm::EntryPlan::complete):

  • wasm/WasmEntryPlan.h:

(JSC::Wasm::EntryPlan::tryReserveCapacity):

  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::compileFunction):
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
(JSC::Wasm::LLIntPlan::completeInStreaming):
(JSC::Wasm::LLIntPlan::didFailInStreaming):

  • wasm/WasmLLIntPlan.h:
  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGForOSREntryPlan.h:
  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmOMGPlan.h:
  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::runCompletionTasks):
(JSC::Wasm::Plan::tryRemoveContextAndCancelIfLast):
(JSC::Wasm::Plan::fail):

  • wasm/WasmPlan.h:
  • wasm/WasmStreamingCompiler.cpp:

(JSC::Wasm::StreamingCompiler::didCompileFunction):
(JSC::Wasm::StreamingCompiler::completeIfNecessary):
(JSC::Wasm::StreamingCompiler::didComplete):
(JSC::Wasm::StreamingCompiler::finalize):

  • wasm/WasmStreamingCompiler.h:
  • wasm/WasmStreamingPlan.cpp:

(JSC::Wasm::StreamingPlan::work):

  • wasm/WasmStreamingPlan.h:
  • wasm/WasmThunks.h:
10:40 AM Changeset in webkit [278092] by Jonathan Bedard
  • 2 edits
    19 deletes in trunk/LayoutTests

[LayoutTests] Delete php tests from imported/blink
https://bugs.webkit.org/show_bug.cgi?id=226177
<rdar://problem/78401190>

Reviewed by Stephanie Lewis.

  • imported/blink/http/tests/css/remove-placeholder-styles-expected.txt: Removed.
  • imported/blink/http/tests/css/remove-placeholder-styles.html: Removed.
  • imported/blink/http/tests/css/resources: Removed.
  • imported/blink/http/tests/resources: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-origin-expected.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-origin-when-crossorigin-expected.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-origin-when-crossorigin.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-origin.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-picture-expected.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-picture.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-removeattr-expected.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-removeattr.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-unsafe-url-expected.html: Removed.
  • imported/blink/http/tests/security/referrer-policy-attribute-img-unsafe-url.html: Removed.
  • imported/blink/http/tests/security/resources/green-if-no-referrer.php: Removed.
  • imported/blink/http/tests/security/resources/green-if-referrer-is-full-url-origin-when-crossorigin.php: Removed.
  • imported/blink/http/tests/security/resources/green-if-referrer-is-full-url.php: Removed.
  • imported/blink/http/tests/security/resources/green-if-referrer-is-origin.php: Removed.
  • imported/blink/http/tests/svg/image-fetch-fail-expected.txt: Removed.
  • imported/blink/http/tests/svg/image-fetch-fail.svg: Removed.
  • imported/blink/http/tests/svg/resources: Removed.
  • platform/ios/TestExpectations:
10:34 AM Changeset in webkit [278091] by commit-queue@webkit.org
  • 4 edits in trunk

URL path setter messes up UTF-8 encoding after ?
https://bugs.webkit.org/show_bug.cgi?id=226136

Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-26
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/url/url-setters-expected.txt:

Source/WTF:

escapePathWithoutCopying needs to tell percentEncodeCharacters to percent encode all non-ASCII characters in the output of UTF-8 encoding
in addition to ? and #. Otherwise, we take the output of UTF-8 encoding and append each code unit to the input of URL parsing as if it were Latin-1.
This matches Chrome, Firefox, and reason.
Covered by a newly passing WPT test.
Other callers of percentEncodeCharacters use functions that already encode all non-ASCII characters.

  • wtf/URL.cpp:

(WTF::escapePathWithoutCopying):

10:08 AM Changeset in webkit [278090] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.4-branch/Source

Versioning.

WebKit-7612.1.15.4.1

10:04 AM Changeset in webkit [278089] by Chris Dumez
  • 5 edits in trunk

Drop SecurityPolicyViolationEvent's blockedURL & documentURL attributes
https://bugs.webkit.org/show_bug.cgi?id=226270

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test due to change.

  • web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window-expected.txt:

Source/WebCore:

Drop SecurityPolicyViolationEvent's blockedURL & documentURL attributes that I very recently added as part of
r278042. No other browser supports those and it looks like they may get dropped from the spec
(https://github.com/w3c/webappsec-csp/issues/498) since the blockedURI/documentURI cannot be renamed in the
SecurityPolicyViolationEventInit dictionary.

This is basically a partial revert of r278042, while we work on the spec to get updated to match browsers.

  • dom/SecurityPolicyViolationEvent.h:
  • dom/SecurityPolicyViolationEvent.idl:
9:47 AM Changeset in webkit [278088] by Russell Epstein
  • 1 copy in branches/safari-612.1.15.4-branch

New branch.

9:46 AM Changeset in webkit [278087] by Chris Dumez
  • 16 edits in trunk/Source

Stop using UncheckedLock in WTF::AutomaticThread
https://bugs.webkit.org/show_bug.cgi?id=226255

Reviewed by Keith Miller.

Source/JavaScriptCore:

Some code in JSC had to be ported from UncheckedLock to Lock as a result of
WTF::AutomaticThread using the Lock type.

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::Worklist):

  • dfg/DFGWorklist.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):

  • heap/Heap.h:
  • jit/JITWorklist.cpp:

(JSC::JITWorklist::JITWorklist):

  • jit/JITWorklist.h:
  • runtime/VMTraps.cpp:

(JSC::VMTraps::VMTraps):

  • runtime/VMTraps.h:
  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::Worklist):

  • wasm/WasmWorklist.h:

Source/WTF:

Stop using UncheckedLock in WTF::AutomaticThread as it is being phased out in favor of
Lock, which supports Clang thread safety analysis.

  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThreadCondition::wait):
(WTF::AutomaticThreadCondition::waitFor):
(WTF::AutomaticThread::AutomaticThread):

  • wtf/AutomaticThread.h:
  • wtf/ParallelHelperPool.cpp:

(WTF::ParallelHelperClient::~ParallelHelperClient):
(WTF::ParallelHelperClient::finish):
(WTF::ParallelHelperClient::finishWithLock):
(WTF::ParallelHelperPool::ParallelHelperPool):

  • wtf/ParallelHelperPool.h:

(WTF::ParallelHelperPool::numberOfThreads const):

  • wtf/WorkerPool.cpp:

(WTF::WorkerPool::WorkerPool):

  • wtf/WorkerPool.h:
9:30 AM Changeset in webkit [278086] by Alan Bujtas
  • 3 edits
    1 add in trunk/Source/WebCore

[LFC] Introduce containingBlockChain iterator
https://bugs.webkit.org/show_bug.cgi?id=226269

Reviewed by Antti Koivisto.

Let's use the range loop syntax to climb the containing block chain.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/table/TableFormattingQuirks.cpp:

(WebCore::Layout::TableFormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):

  • layout/layouttree/LayoutContainingBlockChainIterator.h: Added.

(WebCore::Layout::LayoutContainingBlockChainIterator::operator* const):
(WebCore::Layout::LayoutContainingBlockChainIterator::operator-> const):
(WebCore::Layout::LayoutContainingBlockChainIterator::operator== const):
(WebCore::Layout::LayoutContainingBlockChainIterator::operator!= const):
(WebCore::Layout::LayoutContainingBlockChainIterator::LayoutContainingBlockChainIterator):
(WebCore::Layout::LayoutContainingBlockChainIterator::operator++):
(WebCore::Layout::LayoutContainingBlockChainIteratorAdapter::LayoutContainingBlockChainIteratorAdapter):
(WebCore::Layout::LayoutContainingBlockChainIteratorAdapter::begin):
(WebCore::Layout::LayoutContainingBlockChainIteratorAdapter::end):
(WebCore::Layout::containingBlockChainOf):

8:35 AM Changeset in webkit [278085] by Ruben Turcios
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.14

8:34 AM Changeset in webkit [278084] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.0-branch/Source

Versioning.

WebKit-7612.1.15.0.8

8:23 AM Changeset in webkit [278083] by Jonathan Bedard
  • 2 edits in trunk/Tools

[test-lldb-webkit] Update for Xcode 12.5
https://bugs.webkit.org/show_bug.cgi?id=226115
<rdar://problem/78331664>

Reviewed by Darin Adler.

  • lldb/lldb_webkit_unittest.py:

(TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_8bit_string): Use unicode directly.
(TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_16bit_string): Ditto.
(TestSummaryProviders.serial_test_WTFString_SummaryProvider_8bit_string): Ditto.
(TestSummaryProviders.serial_test_WTFString_SummaryProvider_16bit_string): Ditto.

8:15 AM Changeset in webkit [278082] by Tadeu Zagallo
  • 35 edits
    3 copies
    9 moves
    3 adds
    4 deletes in trunk/Source/JavaScriptCore

Merge all the JIT worklists into a shared worklist
https://bugs.webkit.org/show_bug.cgi?id=226207

Reviewed by Saam Barati.

Delete the DFG and FTL worklists and refactor JITWorklist to handle the compilation
for all tiers. This reduces the total number of compiler threads while allowing each
tier to use more threads whenever necessary. The default configuration is for the
worklist to have 3 threads, baseline can use up to all 3 threads and DFG and FTL follow
the previous limits set through JSC::Options. Right now, the worklist will only do work
on upper tiers when all lower tiers have no pending tasks or have exceeded the maximum
number of concurrent compilations. i.e. by default we only DFG compile when there are
no baseline tasks in the queue and we only FTL compile when we either have no DFG tasks
in the queue OR there are already 2 DFG compilations in progress.

  • API/JSVirtualMachine.mm:

(+[JSVirtualMachine setNumberOfDFGCompilerThreads:]):
(+[JSVirtualMachine setNumberOfFTLCompilerThreads:]):

  • API/tests/testapi.mm:

(runJITThreadLimitTests):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::checkIfOptimizationThresholdReached):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCommon.h:

(JSC::DFG::verboseCompilationEnabled):
(JSC::DFG::logCompilationChanges):
(JSC::DFG::shouldDumpGraphAtEachPhase):
(JSC::DFG::shouldDumpDisassembly):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):
(JSC::DFG::compile):

  • dfg/DFGDriver.h:
  • dfg/DFGGraph.h:
  • dfg/DFGGraphSafepoint.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::OSRAvailabilityAnalysisPhase::run):

  • dfg/DFGOSREntrypointCreationPhase.cpp:

(JSC::DFG::OSREntrypointCreationPhase::run):

  • dfg/DFGOperations.cpp:

(JSC::DFG::triggerFTLReplacementCompile):
(JSC::DFG::tierUpCommon):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::codeSize const):
(JSC::DFG::Plan::finalizeInGC):
(JSC::DFG::Plan::notifyReady):
(JSC::DFG::Plan::cancel):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::finalize):
(JSC::DFG::Plan::iterateCodeBlocksForGC):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::isKnownToBeLiveDuringGC):
(JSC::DFG::Plan::isKnownToBeLiveAfterGC):

  • dfg/DFGPlan.h:
  • dfg/DFGPlanInlines.h: Removed.
  • dfg/DFGTierUpCheckInjectionPhase.cpp:

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

  • dfg/DFGWorklist.cpp: Removed.
  • dfg/DFGWorklist.h: Removed.
  • dfg/DFGWorklistInlines.h: Removed.
  • ftl/FTLCompile.h:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::buildExitArguments):

  • ftl/FTLState.cpp:

(JSC::FTL::State::State):

  • ftl/FTLState.h:

(JSC::FTL::verboseCompilationEnabled):
(JSC::FTL::shouldDumpDisassembly):

  • heap/Heap.cpp:

(JSC::Heap::completeAllJITPlans):
(JSC::Heap::iterateExecutingAndCompilingCodeBlocks):
(JSC::Heap::removeDeadCompilerWorklistEntries):
(JSC::Heap::stopThePeriphery):
(JSC::Heap::suspendCompilerThreads):
(JSC::Heap::resumeCompilerThreads):
(JSC::Heap::addCoreConstraints):

  • heap/Heap.h:
  • heap/RootMarkReason.h:
  • jit/JIT.cpp:

(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::codeSize const):
(JSC::JIT::compileTimeStats):

  • jit/JIT.h:
  • jit/JITBaselinePlan.cpp: Copied from Source/JavaScriptCore/ftl/FTLState.cpp.

(JSC::JITBaselinePlan::JITBaselinePlan):
(JSC::JITBaselinePlan::compileInThreadImpl):
(JSC::JITBaselinePlan::codeSize const):
(JSC::JITBaselinePlan::finalize):

  • jit/JITBaselinePlan.h: Copied from Source/JavaScriptCore/dfg/DFGScannable.h.
  • jit/JITCompilationKey.cpp: Renamed from Source/JavaScriptCore/dfg/DFGCompilationKey.cpp.

(JSC::JITCompilationKey::dump const):

  • jit/JITCompilationKey.h: Renamed from Source/JavaScriptCore/dfg/DFGCompilationKey.h.

(JSC::JITCompilationKey::JITCompilationKey):
(JSC::JITCompilationKey::operator! const):
(JSC::JITCompilationKey::isHashTableDeletedValue const):
(JSC::JITCompilationKey::mode const):
(JSC::JITCompilationKey::operator== const):
(JSC::JITCompilationKey::hash const):
(JSC::JITCompilationKeyHash::hash):
(JSC::JITCompilationKeyHash::equal):

  • jit/JITCompilationMode.cpp: Renamed from Source/JavaScriptCore/dfg/DFGCompilationMode.cpp.

(WTF::printInternal):

  • jit/JITCompilationMode.h: Renamed from Source/JavaScriptCore/dfg/DFGCompilationMode.h.

(JSC::isFTL):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITPlan.cpp: Added.

(JSC::JITPlan::JITPlan):
(JSC::JITPlan::cancel):
(JSC::JITPlan::notifyCompiling):
(JSC::JITPlan::notifyReady):
(JSC::JITPlan::tier const):
(JSC::JITPlan::key):
(JSC::JITPlan::isKnownToBeLiveAfterGC):
(JSC::JITPlan::isKnownToBeLiveDuringGC):
(JSC::JITPlan::iterateCodeBlocksForGC):
(JSC::JITPlan::checkLivenessAndVisitChildren):
(JSC::JITPlan::computeCompileTimes const):
(JSC::JITPlan::reportCompileTimes const):
(JSC::JITPlan::compileInThread):

  • jit/JITPlan.h: Added.

(JSC::JITPlan::~JITPlan):
(JSC::JITPlan::vm const):
(JSC::JITPlan::codeBlock const):
(JSC::JITPlan::thread const):
(JSC::JITPlan::mode const):
(JSC::JITPlan::stage const):
(JSC::JITPlan::isFTL const):
(JSC::JITPlan::finalizeInGC):

  • jit/JITPlanStage.h: Renamed from Source/JavaScriptCore/dfg/DFGThreadData.cpp.
  • jit/JITSafepoint.cpp: Renamed from Source/JavaScriptCore/dfg/DFGSafepoint.cpp.

(JSC::Safepoint::Safepoint):
(JSC::Safepoint::~Safepoint):
(JSC::Safepoint::begin):
(JSC::Safepoint::cancel):

  • jit/JITSafepoint.h: Renamed from Source/JavaScriptCore/dfg/DFGSafepoint.h.
  • jit/JITScannable.h: Copied from Source/JavaScriptCore/dfg/DFGScannable.h.
  • jit/JITWorklist.cpp:

(JSC::JITWorklist::JITWorklist):
(JSC::JITWorklist::~JITWorklist):
(JSC::JITWorklist::existingGlobalWorklistOrNull):
(JSC::JITWorklist::ensureGlobalWorklist):
(JSC::JITWorklist::enqueue):
(JSC::JITWorklist::queueLength const):
(JSC::JITWorklist::suspendAllThreads):
(JSC::JITWorklist::resumeAllThreads):
(JSC::JITWorklist::compilationState):
(JSC::JITWorklist::completeAllReadyPlansForVM):
(JSC::JITWorklist::waitUntilAllPlansForVMAreReady):
(JSC::JITWorklist::completeAllPlansForVM):
(JSC::JITWorklist::cancelAllPlansForVM):
(JSC::JITWorklist::removeDeadPlans):
(JSC::JITWorklist::setMaximumNumberOfConcurrentDFGCompilations):
(JSC::JITWorklist::setMaximumNumberOfConcurrentFTLCompilations):
(JSC::JITWorklist::visitWeakReferences):
(JSC::JITWorklist::dump const):
(JSC::JITWorklist::removeAllReadyPlansForVM):
(JSC::JITWorklist::removeMatchingPlansForVM):

  • jit/JITWorklist.h:

(JSC::JITWorklist::static_cast<size_t>):

  • jit/JITWorklistInlines.h: Renamed from Source/JavaScriptCore/dfg/DFGScannable.h.

(JSC::JITWorklist::iterateCodeBlocksForGC):

  • jit/JITWorklistThread.cpp: Added.

(JSC::JITWorklistThread::JITWorklistThread):
(JSC::JITWorklistThread::name const):
(JSC::JITWorklistThread::poll):
(JSC::JITWorklistThread::work):
(JSC::JITWorklistThread::threadDidStart):
(JSC::JITWorklistThread::threadIsStopping):

  • jit/JITWorklistThread.h: Renamed from Source/JavaScriptCore/dfg/DFGThreadData.h.
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):

  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::~VM):

7:23 AM Changeset in webkit [278081] by Sam Sneddon
  • 3 edits in trunk/Tools

Fix remaining test-webkitpy{,-python2} --all --integration-tests failures
https://bugs.webkit.org/show_bug.cgi?id=226242

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(GitTest.test_remote_branch_ref): Allow main
(GitTest.test_native_branch): Allow main
(SVNTest.clean_bogus_dir): Deleted.
(SVNTest.test_diff_for_file_with_existing_bogus_dir): Deleted.
(SVNTest.test_diff_for_file_with_missing_bogus_dir): Deleted.

  • Scripts/webkitpy/common/checkout/scm/svn.py:

(SVN._setup_bogus_dir): Use tempfile
(SVN._teardown_bogus_dir): Make no-op when no bogus dir exists
(SVN._bogus_dir_name): Deleted.

6:28 AM Changeset in webkit [278080] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION: Safari v14.1 computes element height to be 33,554,432 pixels
https://bugs.webkit.org/show_bug.cgi?id=226006
<rdar://problem/78471122>

Reviewed by Antti Koivisto.

Source/WebCore:

We fail to find the intrusive floats when they don't line up with the top of the line.

The fix is twofold here.

  • when probing for the intrusive float boxes, we need to look at both the line geometry and the initial line constraints. When the intrusive floats take up the entire horizontal space and the line ends up with no inline content, the computed line geometry may come back with a 0px tall line. Now if we probe the intrusive floats at [top: 0px, bottom: 0px] and they happen to have a vertical offset e.g 1px, we won't find them (since we only scan at 0px vertically).
  • if we still don't find the intrusive float(s), let's just offset the next line by the line height candidate (e.g. 18px) instead of the "inifitePoint". The layout will likely be incorrect but it won't produce an infinitely tall content.

Test: fast/inline/inline-root-with-negative-margin-and-sibling-float.html

  • layout/floats/FloatingContext.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):

LayoutTests:

  • fast/inline/inline-root-with-negative-margin-and-sibling-float-expected.html: Added.
  • fast/inline/inline-root-with-negative-margin-and-sibling-float.html: Added.
12:19 AM Changeset in webkit [278079] by Cameron McCormack
  • 2 edits
    19 adds in trunk/LayoutTests

Followup test expectation updates.
https://bugs.webkit.org/show_bug.cgi?id=225586
<rdar://77527890>

Unreviewed.

  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Added.
  • platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Added.
  • platform/mac/TestExpectations:

May 25, 2021:

11:29 PM Changeset in webkit [278078] by Fujii Hironori
  • 8 edits in trunk/Source/WebCore

Rename ImageBuffer::transformColorSpace to transformToColorSpace, and it should take a single argument
https://bugs.webkit.org/show_bug.cgi?id=226108

Reviewed by Said Abou-Hallawa.

The 'srcColorSpace' argument of ImageBuffer::transformColorSpace()
should be removed because it is redundant and it is the same as
ImageBuffer::colorSpace().

RenderSVGResourceMasker::applyResource creates a image buffer for
a mask image. In Cairo, rendering happens in sRGB color space. So,
create a image buffer in sRGB, then renders the content and
transforms to linear sRGB.

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::transformToColorSpace): Take a single argument 'newColorSpace'.
(WebCore::ImageBufferBackend::transformColorSpace): Renamed to transformToColorSpace.

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformToColorSpace):
(WebCore::ImageBufferCairoBackend::transformColorSpace): Renamed to transformToColorSpace.

  • platform/graphics/cairo/ImageBufferCairoBackend.h:
  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::transformResultColorSpace):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):

10:00 PM Changeset in webkit [278077] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using UncheckedLock in MediaElementAudioSourceNode
https://bugs.webkit.org/show_bug.cgi?id=226250

Reviewed by Darin Adler.

Stop using UncheckedLock in MediaElementAudioSourceNode as it is being phased out in favor of
Lock, which supports clang thread safety analysis.

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • html/HTMLMediaElement.cpp:
9:59 PM Changeset in webkit [278076] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

Unreviewed, another GCC8 build fix after r278035
https://bugs.webkit.org/show_bug.cgi?id=211674

Missed from previous patch.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::decode):

9:58 PM Changeset in webkit [278075] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[GStreamer] Stop using UncheckedLock in WebKitCommonEncryptionDecryptorGStreamer
https://bugs.webkit.org/show_bug.cgi?id=226249

Reviewed by Darin Adler.

Stop using UncheckedLock in WebKitCommonEncryptionDecryptorGStreamer as it is being phased out
in favor of WTF::Lock, which supports Clang thread safety analysis.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(transformInPlace):
(isCDMProxyAvailable):
(attachCDMProxy):
(sinkEventHandler):
(webKitMediaCommonEncryptionDecryptIsFlushing):
(setContext):

8:50 PM Changeset in webkit [278074] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix GCC8 build after r278035
https://bugs.webkit.org/show_bug.cgi?id=211674

Avoid "...from initializer list would use explicit constructor ..." errors
in GCC8 when initializing std::optional.

  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::HandleArray::decode):

8:31 PM Changeset in webkit [278073] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

Clang can't compile Optional<GPRTemporary> since r278035 because GPRTemporary has non-const copy constructor
https://bugs.webkit.org/show_bug.cgi?id=226251

Reviewed by Chris Dumez.

WinCairo clang-cl builds reported a compilation error since r278035.

include\optional(95,5): error: the parameter for this explicitly-defaulted copy constructor is const, but a member or base requires it to be non-const

  • dfg/DFGSpeculativeJIT.h: Deleted the const copy ctor instead of the non-const copy ctor.
6:23 PM Changeset in webkit [278072] by Dewei Zhu
  • 40 edits
    2 deletes in trunk/Websites/perf.webkit.org

[perf dashboard] Add sequential mode for perf dashboard A/B testing.
https://bugs.webkit.org/show_bug.cgi?id=223886

Reviewed by Ryosuke Niwa.

Add 'testgroup_repetition_type' to 'analysis_test_groups' table to store repetition type which defaults to 'alternating'.
Add support to schedule 'sequential' A/B testing which schedules all iterations for the first configuration (A)
before the iterations for the second configuration (B).
Before this patch, all A/B testing alternated between two different configurations for each iteration.
Add retry logic for 'sequential' A/B testing.

Update syncing script to not proceed with next configuration the current configuration successfully completed
more iterations than the initially requested or retries exceeded the list.

Fix a potential race in syncing script that 'Promise.all' may cause test group not scheduled in order.

  • browser-tests/test-group-form-tests.js: Updated and added unit tests.
  • init-database.sql: Added 'testgroup_repetition_type' field to 'analysis_test_groups' table.
  • migrate-database.sql: Updated migration script to conditionally add 'testgroup_repetition_type' field.
  • public/api/test-groups.php: Added 'repetitionType' field in api return value.
  • public/include/build-requests-fetcher.php: Fetching build requests under a triggerable should include test

group with all test groups finished but still need retry. This will allow syncing script to resolve the build
request by ID and block other request to be scheduled on the builder.

  • public/include/commit-sets-helpers.php: Added code to create build requests based on test mode.
  • public/privileged-api/add-build-requests.php: Added support to only add build requests to one commit set.
  • public/privileged-api/create-analysis-task.php: Added 'repetitionType' support.
  • public/privileged-api/create-test-group.php: Added 'repetitionType' support.
  • public/privileged-api/update-test-group.php:
  • public/shared/common-component-base.js:
  • public/v3/components/custom-configuration-test-group-form.js: Added 'repetitionType' support.

(CustomConfigurationTestGroupForm.prototype.startTesting):

  • public/v3/components/customizable-test-group-form.js:

(CustomizableTestGroupForm.prototype.startTesting):

  • public/v3/components/test-group-form.js:

(TestGroupForm.prototype.startTesting):

  • public/v3/models/analysis-task.js:

(AnalysisTask.async create):
(AnalysisTask):

  • public/v3/models/build-request.js:

(BuildRequest):
(BuildRequest.prototype.updateSingleton): Allow build request order to be updated.

  • public/v3/models/test-group.js:

(TestGroup):
(TestGroup.prototype.updateSingleton):
(TestGroup.prototype.repetitionType):
(TestGroup.prototype.repetitionCountForCommitSet): Refactored repetitionCount since repetition may be different
between configurations.
(TestGroup.prototype.hasRetries): A helper function to tell if a test group has retry runs.
(TestGroup.prototype.additionalRepetitionNeededToReachInitialRepetitionCount):
(TestGroup.prototype.successfulTestCount):
(TestGroup.prototype.isFirstTestRequest):
(TestGroup.prototype.precedingBuildRequest):
(TestGroup.prototype.retryCountForCommitSet):
(TestGroup.prototype.retryCountsAreSameForAllCommitSets):
(TestGroup.prototype.async _createAlternatingRetriesForTestGroup): Moved from 'retry-failed-build-requests' module.
(TestGroup.async _createSequentialRetriesForTestGroup): Moved from 'retry-failed-build-requests' module.
(TestGroup.prototype.async cancelPendingRequests):
(TestGroup.prototype.async didSendNotification):
(TestGroup.prototype.async addMoreBuildRequests):
(TestGroup.async createWithTask):
(TestGroup.async createWithCustomConfiguration):
(TestGroup.async createAndRefetchTestGroups):
(TestGroup.prototype.async scheduleMoreRequestsOrClearFlag): Moved from 'retry-failed-build-requests' module.
(TestGroup.async fetchById): Added support to fetch test group by ID.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskChartPane.prototype.didConstructShadowTree):
(AnalysisTaskResultsPane.prototype.didConstructShadowTree):
(AnalysisTaskConfiguratorPane.prototype.setTestGroups):
(AnalysisTaskConfiguratorPane):
(AnalysisTaskTestGroupPane.prototype.didConstructShadowTree):
(AnalysisTaskTestGroupPane.prototype._renderCurrentTestGroup):
(AnalysisTaskTestGroupPane.prototype._retrySummary):
(AnalysisTaskPage.prototype.didConstructShadowTree):
(AnalysisTaskPage.prototype.async _retryCurrentTestGroup):
(AnalysisTaskPage.prototype.async _bisectCurrentTestGroup):
(AnalysisTaskPage.set const):
(AnalysisTaskPage.prototype.async _createTestGroupAfterVerifyingCommitSetList):
(AnalysisTaskPage.prototype.async _createCustomTestGroup):

  • public/v3/pages/chart-pane.js:

(ChartPane.prototype.didConstructShadowTree):
(ChartPane.prototype.async _analyzeRange):

  • public/v3/pages/create-analysis-task-page.js:

(CreateAnalysisTaskPage.prototype.async _createAnalysisTaskWithGroup):

  • server-tests/api-build-requests-tests.js: Added a unit test.
  • server-tests/api-upload-root-tests.js: Updated unit tests.
  • server-tests/privileged-api-add-build-requests-tests.js: Updated and added unit tests.
  • server-tests/privileged-api-create-analysis-task-tests.js: Added unit tests.
  • server-tests/privileged-api-create-test-group-tests.js: Updated and added unit tests.
  • server-tests/privileged-api-update-test-group-tests.js: Updated and added unit tests.
  • server-tests/resources/common-operations.js:

(async assertThrows):

  • server-tests/resources/mock-data.js:

(MockData.addMockData):
(MockData.set addMockBuildRequestsWithRoots):
(MockData.set addAnotherMockTestGroup):
(MockData.set mockTestSyncConfigWithSingleBuilder):
(MockData.sampleBuildData):

  • server-tests/tools-buildbot-triggerable-tests.js: Updated and added unit tests.
  • server-tests/tools-sync-buildbot-integration-tests.js: Updated unit tests.

(async createTestGroupWithPatch):
(createTestGroupWihOwnedCommit):

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable):
(BuildbotSyncer.prototype.pullBuildbot):

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable):
(BuildbotTriggerable.prototype.async syncOnce):
(BuildbotTriggerable.prototype.async _scheduleRequest):
(BuildbotTriggerable.prototype._shouldDeferSequentialTestingRequestWithNewCommitSet):

  • tools/js/measurement-set-analyzer.js:

(MeasurementSetAnalyzer.prototype.async _analyzeMeasurementSet):
(MeasurementSetAnalyzer):

  • tools/js/retry-failed-build-requests.js: Removed.
  • tools/run-analysis.js: Use updated API to retry.

(async analysisLoop):
(async processTestGroupMayNeedMoreRequests):

  • tools/sync-buildbot.js: Added command line option '--max-retry-factor'.
  • unit-tests/analysis-task-tests.js: Updated unit tests.
  • unit-tests/buildbot-syncer-tests.js: Updated unit tests.

(createSampleBuildRequest):

  • unit-tests/measurement-set-analyzer-tests.js:
  • unit-tests/retry-failed-build-requests-tests.js: Moved unit tests to test-group-tests.js.
  • unit-tests/test-groups-tests.js: Added unit tests from 'retry-failed-build-requests-tests.js'.
6:19 PM Changeset in webkit [278071] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

_WKRemoteObjectRegistry should not call completion handlers if block signatures don't match or can't be found
https://bugs.webkit.org/show_bug.cgi?id=226189

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-25
Reviewed by Chris Dumez.

_WKRemoteObjectRegistry already enforces completion handlers to not be nil,
so complete that enforcement by dropping invocations where block signatures aren't available
or don't match. This has not reproduced but completes our hardening efforts.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]):

6:10 PM Changeset in webkit [278070] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

Support byte components for all bounded RGB color types, not just SRGBA
https://bugs.webkit.org/show_bug.cgi?id=226222

Reviewed by Darin Adler.

We currently arbitrarily restrict byte components (e.g. SRGBA<uint8_t>)
to just SRGBA by only supporting conversion for that one color type. Support
for any bounded (e.g. [0..1]) RGB type would have the same semantics and
be useful now that we can get pixel buffers that are not SRGBA only out
of ImageBuffer.

To do this, we replace the ColorConversion specializations for this type
of conversion, and inline it directly in the main conversion convert function,
allowing for a more complex conditional without SFINAE complexity.

To make things a bit simpler, this also simplifies the RGB color type descriptors
to no longer be templates, as the description of the types is always float
based, regardless of the component used. This allows for a simpler new helper,
SelfWithReplacementComponent, to convert to and from ColorType<float>/ColorType<uint8_t>.

  • platform/graphics/ColorConversion.cpp:

(WebCore::SRGBA<uint8_t>>::convert): Deleted.

  • platform/graphics/ColorConversion.h:

(WebCore::ColorConversion::convert):
(WebCore::ColorConversion::handleToFloatConversion):
(WebCore::ColorConversion::handleToByteConversion):

  • platform/graphics/ColorTypes.h:
5:37 PM Changeset in webkit [278069] by Chris Dumez
  • 12 edits in trunk/Source

Use UncheckedLock less in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=226212

Reviewed by Saam Barati.

Source/JavaScriptCore:

Use UncheckedLock less in JavaScriptCore as it is being phased out in favor of Lock, which
enables Clang thread safety analysis.

  • assembler/testmasm.cpp:
  • dfg/DFGCommon.cpp:
  • dynbench.cpp:
  • heap/Heap.cpp:
  • heap/Heap.h:
  • inspector/remote/socket/RemoteInspectorSocketEndpoint.h:
  • runtime/JSLock.cpp:
  • runtime/JSLock.h:
  • runtime/VM.h:

Source/WTF:

Add support for unlockEarly() to Locker<Lock> specialization, for consistency
with the generic Locker.

  • wtf/Lock.h:
5:29 PM Changeset in webkit [278068] by Chris Dumez
  • 5 edits
    5 adds in trunk

CSP does not apply to AudioWorklets
https://bugs.webkit.org/show_bug.cgi?id=225862
<rdar://problem/78098440>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/worklets/audio-worklet-csp.https-expected.txt:

Source/WebCore:

Make sure Worklet::addModule() checks with CSP before attempting to load the script.

Tests: http/tests/security/contentSecurityPolicy/audioworklet-script-src-allowed.html

http/tests/security/contentSecurityPolicy/audioworklet-script-src-blocked.html

  • worklets/Worklet.cpp:

(WebCore::Worklet::addModule):

LayoutTests:

Add layout test coverage since the upstream WPT tests for this are unable to run with our infrastructure.

  • http/tests/security/contentSecurityPolicy/audioworklet-script-src-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/audioworklet-script-src-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/audioworklet-script-src-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/audioworklet-script-src-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/resources/audioworklet-processor.js: Added.

(DummyProcessor):
(DummyProcessor.prototype.process):

5:21 PM Changeset in webkit [278067] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.13

Tag Safari-612.1.15.1.13.

5:19 PM Changeset in webkit [278066] by Russell Epstein
  • 1 delete in tags/Safari-612.1.15.1.13

Delete tag.

5:15 PM Changeset in webkit [278065] by Chris Fleizach
  • 3 edits
    1 add in trunk/Tools

AX: Improve string conversion in AccessibilityController::injectAccessibilityPreference
https://bugs.webkit.org/show_bug.cgi?id=226239

Reviewed by Darin Adler.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::injectAccessibilityPreference):

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/cocoa/StringFunctionsCocoa.h: Added.

(WTR::toWK):

5:15 PM Changeset in webkit [278064] by Devin Rousso
  • 20 edits
    3 adds in trunk

[Modern Media Controls] REGRESSION(r254389) media controls needs the full list of language preferences for ordering tracks
https://bugs.webkit.org/show_bug.cgi?id=226038

Reviewed by Myles C. Maxfield and Eric Carlson.

Source/JavaScriptCore:

Media controls need access to the full list of language preferences in order to properly
sort/order the list of tracks in the controls UI. For example, if a <video> has subtitles
for English, Spanish, and French, and the user has English (default) and French (alternate)
configured in the Language & Region view of System Preferences on macOS, WebKit should order
the subtitles list English, French, and then Spanish.

  • shell/playstation/TestShell.cpp:

(preTest):
Instead of propagating the override, just clear it out.

Source/WebCore:

Media controls need access to the full list of language preferences in order to properly
sort/order the list of tracks in the controls UI. For example, if a <video> has subtitles
for English, Spanish, and French, and the user has English (default) and French (alternate)
configured in the Language & Region view of System Preferences on macOS, WebKit should order
the subtitles list English, French, and then Spanish.

Test: media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::preferredLanguages const):
(WebCore::CaptionUserPreferences::textTrackSelectionScore const):
(WebCore::CaptionUserPreferences::primaryAudioTrackLanguageOverride const):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::preferredLanguages const):
(WebCore::buildDisplayStringForTrackBase):
(WebCore::trackDisplayName):
(WebCore::textTrackCompare):

  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:

(WebCore::MediaSelectionGroupAVFObjC::updateOptions):

  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:

Wrap defaultLanguage in a lambda since it now has a parameter.

  • platform/LocalizedStrings.h:
  • platform/LocalizedStrings.cpp:

(WebCore::captionsTextTrackKindDisplayName): Added.
(WebCore::descriptionsTextTrackKindDisplayName): Added.
(WebCore::chaptersTextTrackKindDisplayName): Added.
(WebCore::metadataTextTrackKindDisplayName): Added.
(WebCore::closedCaptionKindTrackDisplayName): Added.
(WebCore::sdhTrackKindDisplayName): Added.
(WebCore::easyReaderKindDisplayName): Added.
(WebCore::forcedTrackKindDisplayName): Added.
Move the logic added in r277797 from buildDisplayStringForTrackBase to trackDisplayName
and only perform it if the text track display name doesn't already contain the display name
for the text track kind (e.g. if the label is "English Captions" don't add "Captions", but
do if the label is only "English").

Source/WTF:

Media controls need access to the full list of language preferences in order to properly
sort/order the list of tracks in the controls UI. For example, if a <video> has subtitles
for English, Spanish, and French, and the user has English (default) and French (alternate)
configured in the Language & Region view of System Preferences on macOS, WebKit should order
the subtitles list English, French, and then Spanish.

  • wtf/Language.h:
  • wtf/Language.cpp:

(WTF::cachedFullPlatformPreferredLanguages): Added.
(WTF::cachedMinimizedPlatformPreferredLanguages): Added.
(WTF::languageDidChange):
(WTF::defaultLanguage):
(WTF::userPreferredLanguages):
(WTF::platformLanguageDidChange): Deleted.
Move the caching in wtf/cf/LanguageCF.cpp to wtf/Language.cpp so that all platforms can
benefit from caching the result of platformUserPreferredLanguages.

  • wtf/cf/LanguageCF.cpp:

(WTF::platformUserPreferredLanguages):
(WTF::platformLanguageDidChange): Deleted.

  • wtf/playstation/LanguagePlayStation.cpp:

(WTF::platformUserPreferredLanguages):

  • wtf/spi/cocoa/NSLocaleSPI.h:
  • wtf/unix/LanguageUnix.cpp:

(WTF::platformUserPreferredLanguages):

  • wtf/win/LanguageWin.cpp:

(WTF::platformUserPreferredLanguages):
Add WTF::ShouldMinimizeLanguages that controls whether WTF::minimizedPreferredLanguages
is called. Since the result is cached, create separate Vector<String> for each enum value.

LayoutTests:

  • media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html: Added.
  • media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages-expected.txt: Added.
  • media/content/lorem-ipsum.vtt: Added.
5:05 PM Changeset in webkit [278063] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.13

Tag Safari-612.1.15.1.13.

5:01 PM Changeset in webkit [278062] by timothy_horton@apple.com
  • 90 edits
    1 move
    2 adds
    5 deletes in trunk

Virtualize GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=226170

Reviewed by Simon Fraser.

Source/WebCore:

No new tests, just a refactoring.

In preparation for future patches which introduce new kinds of GraphicsContexts,
virtualize GraphicsContext, moving platform implementations into subclasses
GraphicsContext{CG,Cairo,Direct2D}, NullGraphicsContext, DisplayList::Recorder,
and Nicosia::CairoOperationRecorder.

GraphicsContextImpl dissolves away; platform contexts that were
unnecessarily implemented both as GraphicsContext and as a subclass
of GraphicsContextImpl (GraphicsContextImplCairo and GraphicsContextImplDirect2D)
are folded into their GraphicsContext subclass.

paintingDisabled() is no longer relevant in GraphicsContext implementations,
so we no longer have to check it everywhere; NullGraphicsContext overrides
everything with an empty implementation. We keep paintingDisabled() for
use in code outside of GraphicsContext, where it just distinguishes between
NullGraphicsContext and the others.

Also, a few bits of cleanup to make this easier:

  • Legacy shadow radius behavior becomes a parameter to setShadow instead of a separate method.
  • canvasClip(), which hasn't done anything different than clip() since Skia, is removed.
  • GraphicsContext gains renderingMode() in place of isAcceleratedContext().
  • Subclasses override updateState() to respond to GraphicsContext state changes, as was already done for GraphicsContextImpl, to keep subclassing simple.
  • builderState(), which was unused, is removed.
  • drawPath() is introduced on all platforms, with a default implementation that just fills and strokes.
  • Headers.cmake:
  • PlatformFTW.cmake:
  • PlatformWin.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BoxDecorationPainter::paintBoxShadow const):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::isAccelerated const):
(WebCore::CanvasRenderingContext2DBase::clipInternal):
(WebCore::CanvasRenderingContext2DBase::clearRect):
(WebCore::CanvasRenderingContext2DBase::applyShadow):
(WebCore::CanvasRenderingContext2DBase::createPattern):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):

  • page/FrameView.cpp:

(WebCore::FrameView::traverseForPaintInvalidation):
(WebCore::FrameView::adjustPageHeightDeprecated):

  • page/FrameView.h:
  • page/win/FrameCGWin.cpp:

(WebCore::imageFromRect):

  • page/win/FrameGdiWin.cpp:

(WebCore::imageFromRect):

  • platform/Cairo.cmake:
  • platform/SourcesCairo.txt:
  • platform/cocoa/DragImageCocoa.mm:

(WebCore::createDragImageForLink):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextStateChange::accumulate):
(WebCore::GraphicsContextStateChange::apply const):
(WebCore::GraphicsContextStateChange::dump const):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::save):
(WebCore::GraphicsContext::restore):
(WebCore::GraphicsContext::drawRaisedEllipse):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::drawText):
(WebCore::GraphicsContext::drawGlyphs):
(WebCore::GraphicsContext::drawEmphasisMarks):
(WebCore::GraphicsContext::drawBidiText):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):
(WebCore::GraphicsContext::clipRoundedRect):
(WebCore::GraphicsContext::clipOutRoundedRect):
(WebCore::GraphicsContext::clipToDrawingCommands):
(WebCore::GraphicsContext::clipToImageBuffer):
(WebCore::GraphicsContext::clipBounds const):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::paintFrameForMedia):
(WebCore::NullGraphicsContext::drawConsumingImageBuffer):
(WebCore::GraphicsContext::GraphicsContext): Deleted.
(WebCore::GraphicsContext::hasPlatformContext const): Deleted.
(WebCore::GraphicsContext::setStrokeThickness): Deleted.
(WebCore::GraphicsContext::setStrokeStyle): Deleted.
(WebCore::GraphicsContext::setLegacyShadow): Deleted.
(WebCore::GraphicsContext::setShadowsIgnoreTransforms): Deleted.
(WebCore::GraphicsContext::setShouldAntialias): Deleted.
(WebCore::GraphicsContext::setShouldSmoothFonts): Deleted.
(WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts): Deleted.
(WebCore::GraphicsContext::setImageInterpolationQuality): Deleted.
(WebCore::GraphicsContext::setFillRule): Deleted.
(WebCore::GraphicsContext::drawNativeImage): Deleted.
(WebCore::GraphicsContext::drawPattern): Deleted.
(WebCore::GraphicsContext::setTextDrawingMode): Deleted.
(WebCore::GraphicsContext::setAlpha): Deleted.
(WebCore::GraphicsContext::setDrawLuminanceMask): Deleted.
(WebCore::GraphicsContext::setUseDarkAppearance): Deleted.
(WebCore::GraphicsContext::setPlatformTextDrawingMode): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeStyle): Deleted.
(WebCore::GraphicsContext::setPlatformShouldSmoothFonts): Deleted.
(WebCore::GraphicsContext::isAcceleratedContext const): Deleted.
(WebCore::GraphicsContext::platformApplyDeviceScaleFactor): Deleted.
(WebCore::GraphicsContext::applyDeviceScaleFactor): Deleted.
(WebCore::GraphicsContext::fillEllipse): Deleted.
(WebCore::GraphicsContext::strokeEllipse): Deleted.
(WebCore::GraphicsContext::platformFillEllipse): Deleted.
(WebCore::GraphicsContext::platformStrokeEllipse): Deleted.
(WebCore::GraphicsContext::builderState): Deleted.
(WebCore::GraphicsContext::supportsInternalLinks const): Deleted.
(WebCore::GraphicsContext::setDestinationForRect): Deleted.
(WebCore::GraphicsContext::addDestinationAtPoint): Deleted.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::hasPlatformContext const):
(WebCore::GraphicsContext::platformContext const):
(WebCore::GraphicsContext::paintingDisabled const):
(WebCore::GraphicsContext::performingPaintInvalidation const):
(WebCore::GraphicsContext::invalidatingControlTints const):
(WebCore::GraphicsContext::invalidatingImagesWithAsyncDecodes const):
(WebCore::GraphicsContext::detectingContentfulPaint const):
(WebCore::GraphicsContext::setStrokeThickness):
(WebCore::GraphicsContext::setStrokeStyle):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillRule):
(WebCore::GraphicsContext::setShadowsIgnoreTransforms):
(WebCore::GraphicsContext::setShouldAntialias):
(WebCore::GraphicsContext::setShouldSmoothFonts):
(WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
(WebCore::GraphicsContext::setImageInterpolationQuality):
(WebCore::GraphicsContext::imageInterpolationQuality const):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::alpha const):
(WebCore::GraphicsContext::compositeOperation const):
(WebCore::GraphicsContext::blendModeOperation const):
(WebCore::GraphicsContext::setDrawLuminanceMask):
(WebCore::GraphicsContext::drawLuminanceMask const):
(WebCore::GraphicsContext::setTextDrawingMode):
(WebCore::GraphicsContext::textDrawingMode const):
(WebCore::GraphicsContext::hasVisibleShadow const):
(WebCore::GraphicsContext::hasShadow const):
(WebCore::GraphicsContext::hasBlurredShadow const):
(WebCore::GraphicsContext::setUseDarkAppearance):
(WebCore::GraphicsContext::useDarkAppearance const):
(WebCore::GraphicsContext::state const):
(WebCore::GraphicsContext::renderingMode const):
(WebCore::GraphicsContext::fillEllipse):
(WebCore::GraphicsContext::strokeEllipse):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::isInTransparencyLayer const):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::applyDeviceScaleFactor):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::setDestinationForRect):
(WebCore::GraphicsContext::addDestinationAtPoint):
(WebCore::GraphicsContext::supportsInternalLinks const):
(WebCore::GraphicsContext::setContentfulPaintDetected):
(WebCore::GraphicsContext::contenfulPaintDetected const):
(WebCore::GraphicsContext::deprecatedPrivateContext const):
(WebCore::GraphicsContext::supportsTransparencyLayers const):
(WebCore::GraphicsContext::impl): Deleted.

  • platform/graphics/GraphicsContextImpl.cpp: Removed.
  • platform/graphics/GraphicsContextImpl.h: Removed.
  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled):

  • platform/graphics/Image.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::ShadowBlur):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::drawTextAtPoint const):

  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::displayCallback):
(PlatformCALayerWinInternal::drawRepaintCounters):

  • platform/graphics/ca/win/WebTiledBackingLayerWin.cpp:

(WebTiledBackingLayerWin::displayCallback):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::GraphicsContextCairo):
(WebCore::GraphicsContextCairo::~GraphicsContextCairo):
(WebCore::GraphicsContextCairo::hasPlatformContext const):
(WebCore::GraphicsContextCairo::getCTM const):
(WebCore::GraphicsContextCairo::platformContext const):
(WebCore::GraphicsContextCairo::save):
(WebCore::GraphicsContextCairo::restore):
(WebCore::GraphicsContextCairo::drawRect):
(WebCore::GraphicsContextCairo::drawNativeImage):
(WebCore::GraphicsContextCairo::drawLine):
(WebCore::GraphicsContextCairo::drawEllipse):
(WebCore::GraphicsContextCairo::fillPath):
(WebCore::GraphicsContextCairo::strokePath):
(WebCore::GraphicsContextCairo::fillRect):
(WebCore::GraphicsContextCairo::clip):
(WebCore::GraphicsContextCairo::clipPath):
(WebCore::GraphicsContextCairo::clipBounds const):
(WebCore::GraphicsContextCairo::clipToImageBuffer):
(WebCore::GraphicsContextCairo::drawFocusRing):
(WebCore::GraphicsContextCairo::drawLinesForText):
(WebCore::GraphicsContextCairo::drawDotsForDocumentMarker):
(WebCore::GraphicsContextCairo::roundToDevicePixels):
(WebCore::GraphicsContextCairo::translate):
(WebCore::GraphicsContextCairo::updateState):
(WebCore::GraphicsContextCairo::concatCTM):
(WebCore::GraphicsContextCairo::setCTM):
(WebCore::GraphicsContextCairo::beginTransparencyLayer):
(WebCore::GraphicsContextCairo::endTransparencyLayer):
(WebCore::GraphicsContextCairo::clearRect):
(WebCore::GraphicsContextCairo::strokeRect):
(WebCore::GraphicsContextCairo::setLineCap):
(WebCore::GraphicsContextCairo::setLineDash):
(WebCore::GraphicsContextCairo::setLineJoin):
(WebCore::GraphicsContextCairo::setMiterLimit):
(WebCore::GraphicsContextCairo::clipOut):
(WebCore::GraphicsContextCairo::rotate):
(WebCore::GraphicsContextCairo::scale):
(WebCore::GraphicsContextCairo::fillRoundedRectImpl):
(WebCore::GraphicsContextCairo::fillRectWithRoundedHole):
(WebCore::GraphicsContextCairo::drawPattern):
(WebCore::GraphicsContextCairo::renderingMode const):
(WebCore::GraphicsContextCairo::drawGlyphs):
(WebCore::GraphicsContext::platformInit): Deleted.
(WebCore::GraphicsContext::platformDestroy): Deleted.
(WebCore::GraphicsContext::getCTM const): Deleted.
(WebCore::GraphicsContext::platformContext const): Deleted.
(WebCore::GraphicsContext::savePlatformState): Deleted.
(WebCore::GraphicsContext::restorePlatformState): Deleted.
(WebCore::GraphicsContext::drawRect): Deleted.
(WebCore::GraphicsContext::drawPlatformImage): Deleted.
(WebCore::GraphicsContext::drawLine): Deleted.
(WebCore::GraphicsContext::drawEllipse): Deleted.
(WebCore::GraphicsContext::fillPath): Deleted.
(WebCore::GraphicsContext::strokePath): Deleted.
(WebCore::GraphicsContext::fillRect): Deleted.
(WebCore::GraphicsContext::clip): Deleted.
(WebCore::GraphicsContext::clipPath): Deleted.
(WebCore::GraphicsContext::clipBounds const): Deleted.
(WebCore::GraphicsContext::drawFocusRing): Deleted.
(WebCore::GraphicsContext::drawLineForText): Deleted.
(WebCore::GraphicsContext::drawLinesForText): Deleted.
(WebCore::GraphicsContext::drawDotsForDocumentMarker): Deleted.
(WebCore::GraphicsContext::roundToDevicePixels): Deleted.
(WebCore::GraphicsContext::translate): Deleted.
(WebCore::GraphicsContext::setPlatformFillColor): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeColor): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeThickness): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeStyle): Deleted.
(WebCore::GraphicsContext::setURLForRect): Deleted.
(WebCore::GraphicsContext::concatCTM): Deleted.
(WebCore::GraphicsContext::setCTM): Deleted.
(WebCore::GraphicsContext::setPlatformShadow): Deleted.
(WebCore::GraphicsContext::clearPlatformShadow): Deleted.
(WebCore::GraphicsContext::beginPlatformTransparencyLayer): Deleted.
(WebCore::GraphicsContext::endPlatformTransparencyLayer): Deleted.
(WebCore::GraphicsContext::supportsTransparencyLayers): Deleted.
(WebCore::GraphicsContext::clearRect): Deleted.
(WebCore::GraphicsContext::strokeRect): Deleted.
(WebCore::GraphicsContext::setLineCap): Deleted.
(WebCore::GraphicsContext::setLineDash): Deleted.
(WebCore::GraphicsContext::setLineJoin): Deleted.
(WebCore::GraphicsContext::setMiterLimit): Deleted.
(WebCore::GraphicsContext::setPlatformAlpha): Deleted.
(WebCore::GraphicsContext::setPlatformCompositeOperation): Deleted.
(WebCore::GraphicsContext::canvasClip): Deleted.
(WebCore::GraphicsContext::clipOut): Deleted.
(WebCore::GraphicsContext::rotate): Deleted.
(WebCore::GraphicsContext::scale): Deleted.
(WebCore::GraphicsContext::platformFillRoundedRect): Deleted.
(WebCore::GraphicsContext::fillRectWithRoundedHole): Deleted.
(WebCore::GraphicsContext::drawPlatformPattern): Deleted.
(WebCore::GraphicsContext::setPlatformShouldAntialias): Deleted.
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality): Deleted.
(WebCore::GraphicsContext::isAcceleratedContext const): Deleted.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp: Removed.
  • platform/graphics/cairo/GraphicsContextImplCairo.h: Removed.
  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:
  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:

(WebCore::ImageBufferCairoSurfaceBackend::ImageBufferCairoSurfaceBackend):

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::strokeBoundingRect const):
(WebCore::Path::strokeContains const):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::coreInterpolationQuality):
(WebCore::cgInterpolationQuality):
(WebCore::cgTextDrawingMode):
(WebCore::GraphicsContextCG::GraphicsContextCG):
(WebCore::GraphicsContextCG::~GraphicsContextCG):
(WebCore::GraphicsContextCG::hasPlatformContext const):
(WebCore::GraphicsContextCG::platformContext const):
(WebCore::GraphicsContextCG::save):
(WebCore::GraphicsContextCG::restore):
(WebCore::GraphicsContextCG::drawNativeImage):
(WebCore::drawPatternCallback):
(WebCore::GraphicsContextCG::drawPattern):
(WebCore::GraphicsContextCG::drawRect):
(WebCore::GraphicsContextCG::drawLine):
(WebCore::GraphicsContextCG::drawEllipse):
(WebCore::GraphicsContextCG::applyStrokePattern):
(WebCore::GraphicsContextCG::applyFillPattern):
(WebCore::GraphicsContextCG::drawPath):
(WebCore::GraphicsContextCG::fillPath):
(WebCore::GraphicsContextCG::strokePath):
(WebCore::GraphicsContextCG::fillRect):
(WebCore::GraphicsContextCG::fillRoundedRectImpl):
(WebCore::GraphicsContextCG::fillRectWithRoundedHole):
(WebCore::GraphicsContextCG::clip):
(WebCore::GraphicsContextCG::clipOut):
(WebCore::GraphicsContextCG::clipPath):
(WebCore::GraphicsContextCG::clipBounds const):
(WebCore::GraphicsContextCG::beginTransparencyLayer):
(WebCore::GraphicsContextCG::endTransparencyLayer):
(WebCore::applyShadowOffsetWorkaroundIfNeeded):
(WebCore::setCGShadow):
(WebCore::GraphicsContextCG::updateState):
(WebCore::GraphicsContextCG::setMiterLimit):
(WebCore::GraphicsContextCG::clearRect):
(WebCore::GraphicsContextCG::strokeRect):
(WebCore::GraphicsContextCG::setLineCap):
(WebCore::GraphicsContextCG::setLineDash):
(WebCore::GraphicsContextCG::setLineJoin):
(WebCore::GraphicsContextCG::scale):
(WebCore::GraphicsContextCG::rotate):
(WebCore::GraphicsContextCG::translate):
(WebCore::GraphicsContextCG::concatCTM):
(WebCore::GraphicsContextCG::setCTM):
(WebCore::GraphicsContextCG::getCTM const):
(WebCore::GraphicsContextCG::roundToDevicePixels):
(WebCore::GraphicsContextCG::drawLinesForText):
(WebCore::GraphicsContextCG::setURLForRect):
(WebCore::GraphicsContextCG::setIsCALayerContext):
(WebCore::GraphicsContextCG::isCALayerContext const):
(WebCore::GraphicsContextCG::setIsAcceleratedContext):
(WebCore::GraphicsContextCG::renderingMode const):
(WebCore::GraphicsContextCG::applyDeviceScaleFactor):
(WebCore::GraphicsContextCG::fillEllipse):
(WebCore::GraphicsContextCG::strokeEllipse):
(WebCore::GraphicsContextCG::supportsInternalLinks const):
(WebCore::GraphicsContextCG::setDestinationForRect):
(WebCore::GraphicsContextCG::addDestinationAtPoint):
(WebCore::setCGStrokeColor): Deleted.
(WebCore::convertInterpolationQuality): Deleted.
(WebCore::GraphicsContext::platformInit): Deleted.
(WebCore::GraphicsContext::platformDestroy): Deleted.
(WebCore::GraphicsContext::platformContext const): Deleted.
(WebCore::GraphicsContext::savePlatformState): Deleted.
(WebCore::GraphicsContext::restorePlatformState): Deleted.
(WebCore::GraphicsContext::drawPlatformImage): Deleted.
(WebCore::GraphicsContext::drawPlatformPattern): Deleted.
(WebCore::GraphicsContext::drawRect): Deleted.
(WebCore::GraphicsContext::drawLine): Deleted.
(WebCore::GraphicsContext::drawEllipse): Deleted.
(WebCore::GraphicsContext::applyStrokePattern): Deleted.
(WebCore::GraphicsContext::applyFillPattern): Deleted.
(WebCore::GraphicsContext::drawPath): Deleted.
(WebCore::GraphicsContext::fillPath): Deleted.
(WebCore::GraphicsContext::strokePath): Deleted.
(WebCore::GraphicsContext::fillRect): Deleted.
(WebCore::GraphicsContext::platformFillRoundedRect): Deleted.
(WebCore::GraphicsContext::fillRectWithRoundedHole): Deleted.
(WebCore::GraphicsContext::clip): Deleted.
(WebCore::GraphicsContext::clipOut): Deleted.
(WebCore::GraphicsContext::clipPath): Deleted.
(WebCore::GraphicsContext::clipBounds const): Deleted.
(WebCore::GraphicsContext::beginPlatformTransparencyLayer): Deleted.
(WebCore::GraphicsContext::endPlatformTransparencyLayer): Deleted.
(WebCore::GraphicsContext::supportsTransparencyLayers): Deleted.
(WebCore::GraphicsContext::setPlatformShadow): Deleted.
(WebCore::GraphicsContext::clearPlatformShadow): Deleted.
(WebCore::GraphicsContext::setMiterLimit): Deleted.
(WebCore::GraphicsContext::clearRect): Deleted.
(WebCore::GraphicsContext::strokeRect): Deleted.
(WebCore::GraphicsContext::setLineCap): Deleted.
(WebCore::GraphicsContext::setLineDash): Deleted.
(WebCore::GraphicsContext::setLineJoin): Deleted.
(WebCore::GraphicsContext::canvasClip): Deleted.
(WebCore::GraphicsContext::scale): Deleted.
(WebCore::GraphicsContext::rotate): Deleted.
(WebCore::GraphicsContext::translate): Deleted.
(WebCore::GraphicsContext::concatCTM): Deleted.
(WebCore::GraphicsContext::setCTM): Deleted.
(WebCore::GraphicsContext::getCTM const): Deleted.
(WebCore::GraphicsContext::roundToDevicePixels): Deleted.
(WebCore::GraphicsContext::drawLineForText): Deleted.
(WebCore::GraphicsContext::drawLinesForText): Deleted.
(WebCore::GraphicsContext::setURLForRect): Deleted.
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality): Deleted.
(WebCore::GraphicsContext::setIsCALayerContext): Deleted.
(WebCore::GraphicsContext::isCALayerContext const): Deleted.
(WebCore::GraphicsContext::setIsAcceleratedContext): Deleted.
(WebCore::GraphicsContext::isAcceleratedContext const): Deleted.
(WebCore::GraphicsContext::setPlatformTextDrawingMode): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeColor): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeThickness): Deleted.
(WebCore::GraphicsContext::setPlatformFillColor): Deleted.
(WebCore::GraphicsContext::setPlatformShouldAntialias): Deleted.
(WebCore::GraphicsContext::setPlatformShouldSmoothFonts): Deleted.
(WebCore::GraphicsContext::setPlatformAlpha): Deleted.
(WebCore::GraphicsContext::setPlatformCompositeOperation): Deleted.
(WebCore::GraphicsContext::platformApplyDeviceScaleFactor): Deleted.
(WebCore::GraphicsContext::platformFillEllipse): Deleted.
(WebCore::GraphicsContext::platformStrokeEllipse): Deleted.
(WebCore::GraphicsContext::supportsInternalLinks const): Deleted.
(WebCore::GraphicsContext::setDestinationForRect): Deleted.
(WebCore::GraphicsContext::addDestinationAtPoint): Deleted.

  • platform/graphics/cg/GraphicsContextCG.h:
  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::create):

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::strokeContains const):
(WebCore::Path::strokeBoundingRect const):

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::patternCallback):

  • platform/graphics/cocoa/FontCascadeCocoa.mm:
  • platform/graphics/cocoa/GraphicsContextCocoa.mm:

(WebCore::GraphicsContextCG::drawFocusRing):
(WebCore::drawFocusRingToContextAtTime):
(WebCore::GraphicsContextCG::drawDotsForDocumentMarker):
(WebCore::GraphicsContext::drawFocusRing): Deleted.
(WebCore::GraphicsContext::drawDotsForDocumentMarker): Deleted.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::ensureGraphicsContext):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:
  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::createInternalContext):
(WebCore::DisplayList::DrawGlyphsRecorder::populateInternalContext):
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawingContext.cpp:

(WebCore::DisplayList::DrawingContext::DrawingContext):
(WebCore::DisplayList::DrawingContext::recorder): Deleted.

  • platform/graphics/displaylists/DisplayListDrawingContext.h:

(WebCore::DisplayList::DrawingContext::recorder):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawPath::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::drawImageBuffer):
(WebCore::DisplayList::Recorder::getCTM const):
(WebCore::DisplayList::Recorder::drawLinesForText):
(WebCore::DisplayList::Recorder::drawFocusRing):
(WebCore::DisplayList::Recorder::clipBounds const):
(WebCore::DisplayList::Recorder::clipToDrawingCommands):
(WebCore::DisplayList::Recorder::paintFrameForMedia):
(WebCore::DisplayList::Recorder::extentFromLocalBounds const):
(WebCore::DisplayList::Recorder::clearShadow): Deleted.
(WebCore::DisplayList::Recorder::getCTM): Deleted.
(WebCore::DisplayList::Recorder::clipBounds): Deleted.
(WebCore::DisplayList::Recorder::canPaintFrameForMedia const): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::append):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):

  • platform/graphics/mac/WebLayer.mm:

(-[WebLayer drawInContext:]):
(-[WebSimpleLayer drawInContext:]):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::CairoOperationRecorder):
(Nicosia::CairoOperationRecorder::fillRect):
(Nicosia::CairoOperationRecorder::fillRoundedRect):
(Nicosia::CairoOperationRecorder::fillRectWithRoundedHole):
(Nicosia::CairoOperationRecorder::fillPath):
(Nicosia::CairoOperationRecorder::fillEllipse):
(Nicosia::CairoOperationRecorder::strokeRect):
(Nicosia::CairoOperationRecorder::strokePath):
(Nicosia::CairoOperationRecorder::strokeEllipse):
(Nicosia::CairoOperationRecorder::drawGlyphs):
(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawRect):
(Nicosia::CairoOperationRecorder::drawLine):
(Nicosia::CairoOperationRecorder::drawLinesForText):
(Nicosia::CairoOperationRecorder::drawEllipse):
(Nicosia::CairoOperationRecorder::getCTM const):
(Nicosia::CairoOperationRecorder::clipBounds const):
(Nicosia::CairoOperationRecorder::clipToDrawingCommands):
(Nicosia::CairoOperationRecorder::paintFrameForMedia):
(Nicosia::CairoOperationRecorder::clearShadow): Deleted.
(Nicosia::CairoOperationRecorder::drawPath): Deleted.
(Nicosia::CairoOperationRecorder::getCTM): Deleted.
(Nicosia::CairoOperationRecorder::clipBounds): Deleted.

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp:

(Nicosia::PaintingContextCairo::ForPainting::ForPainting):
(Nicosia::PaintingContextCairo::ForRecording::ForRecording):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContextCG::GraphicsContextCG):
(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContext::drawWindowsBitmap):
(WebCore::GraphicsContextCG::drawFocusRing):
(WebCore::GraphicsContextCG::drawDotsForDocumentMarker):
(WebCore::GraphicsContextCG::deprecatedPrivateContext const):
(WebCore::GraphicsContext::GraphicsContext): Deleted.
(WebCore::GraphicsContext::platformInit): Deleted.
(WebCore::GraphicsContext::drawFocusRing): Deleted.
(WebCore::GraphicsContext::drawDotsForDocumentMarker): Deleted.

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContextCairo::GraphicsContextCairo):
(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContextCairo::deprecatedPrivateContext const):
(WebCore::GraphicsContext::GraphicsContext): Deleted.
(WebCore::GraphicsContext::platformInit): Deleted.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextDirect2D::GraphicsContextDirect2D):
(WebCore::GraphicsContextDirect2D::systemFactory):
(WebCore::GraphicsContextDirect2D::defaultRenderTarget):
(WebCore::GraphicsContextDirect2D::platformInit):
(WebCore::GraphicsContextDirect2D::~GraphicsContextDirect2D):
(WebCore::GraphicsContextDirect2D::platformContext const):
(WebCore::GraphicsContextDirect2D::save):
(WebCore::GraphicsContextDirect2D::restore):
(WebCore::GraphicsContextDirect2D::drawNativeImage):
(WebCore::GraphicsContextDirect2D::releaseWindowsContext):
(WebCore::GraphicsContextDirect2D::drawWindowsBitmap):
(WebCore::GraphicsContextDirect2D::drawFocusRing):
(WebCore::GraphicsContextDirect2D::drawDotsForDocumentMarker):
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextDirect2D::brushWithColor):
(WebCore::GraphicsContextDirect2D::colorWithGlobalAlpha const):
(WebCore::GraphicsContextDirect2D::solidStrokeBrush const):
(WebCore::GraphicsContextDirect2D::solidFillBrush const):
(WebCore::GraphicsContextDirect2D::patternStrokeBrush const):
(WebCore::GraphicsContextDirect2D::patternFillBrush const):
(WebCore::GraphicsContextDirect2D::beginDraw):
(WebCore::GraphicsContextDirect2D::endDraw):
(WebCore::GraphicsContextDirect2D::flush):
(WebCore::GraphicsContextDirect2D::drawPattern):
(WebCore::GraphicsContextDirect2D::drawRect):
(WebCore::GraphicsContextDirect2D::strokeStyle const):
(WebCore::GraphicsContextDirect2D::drawLine):
(WebCore::GraphicsContextDirect2D::drawEllipse):
(WebCore::GraphicsContextDirect2D::applyStrokePattern):
(WebCore::GraphicsContextDirect2D::applyFillPattern):
(WebCore::GraphicsContextDirect2D::drawPath):
(WebCore::GraphicsContextDirect2D::fillPath):
(WebCore::GraphicsContextDirect2D::strokePath):
(WebCore::GraphicsContextDirect2D::fillRect):
(WebCore::GraphicsContextDirect2D::fillRoundedRectImpl):
(WebCore::GraphicsContextDirect2D::fillRectWithRoundedHole):
(WebCore::GraphicsContextDirect2D::clip):
(WebCore::GraphicsContextDirect2D::clipOut):
(WebCore::GraphicsContextDirect2D::clipPath):
(WebCore::GraphicsContextDirect2D::clipBounds const):
(WebCore::GraphicsContextDirect2D::beginTransparencyLayer):
(WebCore::GraphicsContextDirect2D::endTransparencyLayer):
(WebCore::GraphicsContextDirect2D::supportsTransparencyLayers):
(WebCore::GraphicsContextDirect2D::updateState):
(WebCore::GraphicsContextDirect2D::setMiterLimit):
(WebCore::GraphicsContextDirect2D::clearRect):
(WebCore::GraphicsContextDirect2D::strokeRect):
(WebCore::GraphicsContextDirect2D::setLineCap):
(WebCore::GraphicsContextDirect2D::setLineDash):
(WebCore::GraphicsContextDirect2D::setLineJoin):
(WebCore::GraphicsContextDirect2D::scale):
(WebCore::GraphicsContextDirect2D::rotate):
(WebCore::GraphicsContextDirect2D::translate):
(WebCore::GraphicsContextDirect2D::concatCTM):
(WebCore::GraphicsContextDirect2D::setCTM):
(WebCore::GraphicsContextDirect2D::getCTM const):
(WebCore::GraphicsContextDirect2D::roundToDevicePixels):
(WebCore::GraphicsContextDirect2D::drawLinesForText):
(WebCore::GraphicsContextDirect2D::setURLForRect):
(WebCore::GraphicsContextDirect2D::setIsCALayerContext):
(WebCore::GraphicsContextDirect2D::isCALayerContext const):
(WebCore::GraphicsContextDirect2D::setIsAcceleratedContext):
(WebCore::GraphicsContextDirect2D::isAcceleratedContext const):
(WebCore::GraphicsContextDirect2D::applyDeviceScaleFactor):
(WebCore::GraphicsContextDirect2D::fillEllipse):
(WebCore::GraphicsContextDirect2D::strokeEllipse):
(WebCore::GraphicsContextDirect2D::drawGlyphs):
(WebCore::GraphicsContextDirect2D::clipToDrawingCommands):
(WebCore::GraphicsContextDirect2D::clipToImageBuffer):
(WebCore::GraphicsContextDirect2D::paintFrameForMedia):
(WebCore::GraphicsContext::GraphicsContext): Deleted.
(WebCore::GraphicsContext::systemFactory): Deleted.
(WebCore::GraphicsContext::defaultRenderTarget): Deleted.
(WebCore::GraphicsContext::platformInit): Deleted.
(WebCore::GraphicsContext::platformDestroy): Deleted.
(WebCore::GraphicsContext::platformContext const): Deleted.
(WebCore::GraphicsContext::savePlatformState): Deleted.
(WebCore::GraphicsContext::restorePlatformState): Deleted.
(WebCore::GraphicsContext::drawPlatformImage): Deleted.
(WebCore::GraphicsContext::releaseWindowsContext): Deleted.
(WebCore::GraphicsContext::drawWindowsBitmap): Deleted.
(WebCore::GraphicsContext::drawFocusRing): Deleted.
(WebCore::GraphicsContext::drawDotsForDocumentMarker): Deleted.
(WebCore::GraphicsContext::brushWithColor): Deleted.
(WebCore::GraphicsContext::colorWithGlobalAlpha const): Deleted.
(WebCore::GraphicsContext::solidStrokeBrush const): Deleted.
(WebCore::GraphicsContext::solidFillBrush const): Deleted.
(WebCore::GraphicsContext::patternStrokeBrush const): Deleted.
(WebCore::GraphicsContext::patternFillBrush const): Deleted.
(WebCore::GraphicsContext::beginDraw): Deleted.
(WebCore::GraphicsContext::endDraw): Deleted.
(WebCore::GraphicsContext::flush): Deleted.
(WebCore::GraphicsContext::drawPlatformPattern): Deleted.
(WebCore::GraphicsContext::drawRect): Deleted.
(WebCore::GraphicsContext::platformStrokeStyle const): Deleted.
(WebCore::GraphicsContext::drawLine): Deleted.
(WebCore::GraphicsContext::drawEllipse): Deleted.
(WebCore::GraphicsContext::applyStrokePattern): Deleted.
(WebCore::GraphicsContext::applyFillPattern): Deleted.
(WebCore::GraphicsContext::drawPath): Deleted.
(WebCore::GraphicsContext::fillPath): Deleted.
(WebCore::GraphicsContext::strokePath): Deleted.
(WebCore::GraphicsContext::fillRect): Deleted.
(WebCore::GraphicsContext::platformFillRoundedRect): Deleted.
(WebCore::GraphicsContext::fillRectWithRoundedHole): Deleted.
(WebCore::GraphicsContext::clip): Deleted.
(WebCore::GraphicsContext::clipOut): Deleted.
(WebCore::GraphicsContext::clipPath): Deleted.
(WebCore::GraphicsContext::clipBounds const): Deleted.
(WebCore::GraphicsContext::beginPlatformTransparencyLayer): Deleted.
(WebCore::GraphicsContext::endPlatformTransparencyLayer): Deleted.
(WebCore::GraphicsContext::supportsTransparencyLayers): Deleted.
(WebCore::GraphicsContext::setPlatformShadow): Deleted.
(WebCore::GraphicsContext::clearPlatformShadow): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeStyle): Deleted.
(WebCore::GraphicsContext::setMiterLimit): Deleted.
(WebCore::GraphicsContext::clearRect): Deleted.
(WebCore::GraphicsContext::strokeRect): Deleted.
(WebCore::GraphicsContext::setLineCap): Deleted.
(WebCore::GraphicsContext::setLineDash): Deleted.
(WebCore::GraphicsContext::setLineJoin): Deleted.
(WebCore::GraphicsContext::canvasClip): Deleted.
(WebCore::GraphicsContext::scale): Deleted.
(WebCore::GraphicsContext::rotate): Deleted.
(WebCore::GraphicsContext::translate): Deleted.
(WebCore::GraphicsContext::concatCTM): Deleted.
(WebCore::GraphicsContext::setCTM): Deleted.
(WebCore::GraphicsContext::getCTM const): Deleted.
(WebCore::GraphicsContext::roundToDevicePixels): Deleted.
(WebCore::GraphicsContext::drawLineForText): Deleted.
(WebCore::GraphicsContext::drawLinesForText): Deleted.
(WebCore::GraphicsContext::setURLForRect): Deleted.
(WebCore::GraphicsContext::setPlatformImageInterpolationQuality): Deleted.
(WebCore::GraphicsContext::setIsCALayerContext): Deleted.
(WebCore::GraphicsContext::isCALayerContext const): Deleted.
(WebCore::GraphicsContext::setIsAcceleratedContext): Deleted.
(WebCore::GraphicsContext::isAcceleratedContext const): Deleted.
(WebCore::GraphicsContext::setPlatformTextDrawingMode): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeColor): Deleted.
(WebCore::GraphicsContext::setPlatformStrokeThickness): Deleted.
(WebCore::GraphicsContext::setPlatformFillColor): Deleted.
(WebCore::GraphicsContext::setPlatformShouldAntialias): Deleted.
(WebCore::GraphicsContext::setPlatformShouldSmoothFonts): Deleted.
(WebCore::GraphicsContext::setPlatformAlpha): Deleted.
(WebCore::GraphicsContext::setPlatformCompositeOperation): Deleted.
(WebCore::GraphicsContext::platformApplyDeviceScaleFactor): Deleted.
(WebCore::GraphicsContext::platformFillEllipse): Deleted.
(WebCore::GraphicsContext::platformStrokeEllipse): Deleted.

  • platform/graphics/win/GraphicsContextImplDirect2D.cpp: Removed.
  • platform/graphics/win/GraphicsContextImplDirect2D.h: Removed.
  • platform/graphics/win/GraphicsContextWin.cpp:

(WebCore::GraphicsContext::setShouldIncludeChildWindows):
(WebCore::GraphicsContext::shouldIncludeChildWindows const):
(WebCore::GraphicsContext::createWindowsBitmap):
(WebCore::GraphicsContext::getWindowsContext):
(WebCore::GraphicsContext::hdc const):

  • platform/graphics/win/ImageBufferDirect2DBackend.cpp:

(WebCore::ImageBufferDirect2DBackend::create):

  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::Path::strokeContains const):
(WebCore::Path::strokeBoundingRect const):

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageFromImage):
(WebCore::createDragImageForLink):
(WebCore::createDragImageForSelection):
(WebCore::createDragImageForRange):
(WebCore::createDragImageForColor):

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageForLink):

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::paint):

  • rendering/ContentfulPaintChecker.cpp:

(WebCore::ContentfulPaintChecker::qualifiesForContentfulPaint):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::applyBoxShadowForBackground):
(WebCore::RenderBoxModelObject::paintBoxShadow):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

Source/WebKit:

  • Shared/cairo/ShareableBitmapCairo.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::incorporateUpdate):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPreview:]):

  • UIProcess/win/BackingStoreDirect2D.cpp:
  • UIProcess/win/WebPopupMenuProxyWin.cpp:

(WebKit::WebPopupMenuProxyWin::paint):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::paintControlForLayerInContext):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::pdfSnapshotAtSize):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::drawPagesToPDFImpl):

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

(WebKit::WebPrintOperationGtk::renderPage):

Source/WebKitLegacy/mac:

  • Misc/WebCoreStatistics.mm:

(-[WebFrame printToCGContext:pageWidth:pageHeight:]):

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:]):

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView drawRect:]):

  • WebView/WebFrame.mm:

(-[WebFrame _drawRect:contentsOnly:]):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::draw):

  • WebFrame.cpp:

(WebFrame::paintDocumentRectToContext):
(WebFrame::paintScrollViewRectToContextAtPoint):
(WebFrame::spoolPages):

  • WebNodeHighlight.cpp:

(WebNodeHighlight::update):

  • WebView.cpp:

(WebView::paintWithDirect2D):
(WebView::paintIntoBackingStore):

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST):

4:52 PM Changeset in webkit [278061] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Raise jitMemoryReservationSize for ftl-no-cjit-small-pool* tests.
https://bugs.webkit.org/show_bug.cgi?id=226205

Rubber-stamped by Saam Barati.

The bump to 75K didn't relieve the jsc EWS bot. Trying a bump to 100K this time.

  • Scripts/run-jsc-stress-tests:
4:35 PM Changeset in webkit [278060] by Russell Epstein
  • 1 copy in tags/Safari-611.3.6.0.2

Tag Safari-611.3.6.0.2.

4:33 PM Changeset in webkit [278059] by Russell Epstein
  • 1 copy in tags/Safari-611.3.6.1.2

Tag Safari-611.3.6.1.2.

4:19 PM Changeset in webkit [278058] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Stop using UncheckedLock in Node's s_eventTargetDataMapLock
https://bugs.webkit.org/show_bug.cgi?id=226191

Reviewed by Geoffrey Garen.

Stop using UncheckedLock in Node's s_eventTargetDataMapLock. This is a step towards phasing
out UncheckedLock in favor of Lock which supports Clang Thread Safety Analysis.

Note that I had to factor the code a little differently because Clang Thread Safety Analysis
doesn't support conditional locking.

  • dom/Node.cpp:

(WebCore::Node::eventTargetDataConcurrently):

4:19 PM Changeset in webkit [278057] by Chris Dumez
  • 13 edits in trunk/Source

Stop using UncheckedLock in html/canvas
https://bugs.webkit.org/show_bug.cgi?id=226186

Reviewed by Darin Adler.

Source/WebCore:

Stop using UncheckedLock in html/canvas. This is a step towards phasing out
UncheckedLock, in favor of the checked Lock. Technically, the code still
doesn't do much thread-safety analysis after this change. It is very difficult
to adopt thread-safety analysis here because the call sites don't always lock
(there are cases where no locking is needed). It is also hard to get a reference
to the various locks to make WTF_REQUIRES_LOCK() work.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::deleteVertexArray):

  • html/canvas/WebGLContextGroup.cpp:

(WebCore::WebGLContextGroup::objectGraphLockForAContext):

  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLContextObject.cpp:

(WebCore::WebGLContextObject::objectGraphLockForContext):

  • html/canvas/WebGLContextObject.h:
  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::objectGraphLock):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLSharedObject.cpp:

(WebCore::WebGLSharedObject::objectGraphLockForContext):

  • html/canvas/WebGLSharedObject.h:

Source/WTF:

Allow converting a Locker<Lock> to an AbstractLocker type. This allows porting
code from UncheckedLock to Lock even if said code is passing the Locker<Lock>
as parameter around as an AbstractLocker. This is very common in JSC and in
html/canvas.

Also make DropLockForScope work with Locker<Lock> to help port code over.

  • wtf/Lock.h:
4:17 PM Changeset in webkit [278056] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[iOS] ASSERTION FAILED: !isMainThread() in WebCore::SpeechRecognitionCaptureSourceImpl::audioSamplesAvailable
https://bugs.webkit.org/show_bug.cgi?id=226247
<rdar://problem/78481513>

Unreviewed, drop threading assertions I added in r277921 as my understanding was wrong
about which thread the functions run on and they are hitting on the bots.

  • Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:

(WebCore::SpeechRecognitionCaptureSourceImpl::updateDataSource):

  • Modules/speech/SpeechRecognitionCaptureSourceImpl.h:
4:14 PM Changeset in webkit [278055] by Chris Dumez
  • 3 edits in trunk/Source/JavaScriptCore

Stop using UncheckedLock in JSC::PerfLog
https://bugs.webkit.org/show_bug.cgi?id=226209

Reviewed by Saam Barati.

Stop using UncheckedLock in JSC::PerfLog and use Lock instead to benefit from Clang thread
safety analysis.

  • assembler/PerfLog.cpp:

(JSC::PerfLog::PerfLog):
(JSC::PerfLog::write):
(JSC::PerfLog::flush):
(JSC::PerfLog::log):

  • assembler/PerfLog.h:
4:07 PM Changeset in webkit [278054] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.0.7

Tag Safari-612.1.15.0.7.

3:34 PM Changeset in webkit [278053] by sihui_liu@apple.com
  • 6 edits in trunk/Source/WebCore

Make error returned by SQLiteIDBBackingStore::getOrEstablishDatabaseInfo more detailed
https://bugs.webkit.org/show_bug.cgi?id=226124

Reviewed by Chris Dumez.

Convert some error loggings to error info to help debug rdar://77532291.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidBlobTables):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsRecordIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • platform/sql/SQLiteDatabase.cpp: add two helper funtions that are used in many places.

(WebCore::SQLiteDatabase::tableExists):
(WebCore::SQLiteDatabase::tableSQL):
(WebCore::SQLiteDatabase::indexSQL):

  • platform/sql/SQLiteDatabase.h:
2:34 PM Changeset in webkit [278052] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.1-branch/Source/WebKit

Cherry-pick r278009. rdar://problem/78463104

Ensure app highlight visibility observer is initialized before adding a new highlight
https://bugs.webkit.org/show_bug.cgi?id=226214
rdar://78173370

Patch by Matt Mokary <mmokary@apple.com> on 2021-05-25
Reviewed by Wenson Hsieh.

The app highlight visibility observer is initialized before restoring highlights, but was not initialized
before adding a new one. It must be initialized before adding a highlight so a change in visibility resulting
from a new highlight is handled correct.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::createAppHighlightInSelectedRange):

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

2:11 PM Changeset in webkit [278051] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[ Catalina E Wk1 ] imported/w3c/web-platform-tests/css/css-backgrounds/hidpi/simple-bg-color.html is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226229

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:05 PM Changeset in webkit [278050] by Russell Epstein
  • 5 edits in branches/safari-611.3.6.1-branch/Source

Cherry-pick r277881. rdar://problem/78467211

[Cocoa] Unable to upload files that are stored in the cloud (without a local copy)
https://bugs.webkit.org/show_bug.cgi?id=226090
<rdar://77775887>

Reviewed by Darin Adler.

Source/WebKit:

Allow the network process to load / read dataless files stored in the cloud by allowing
the process to materialize such files. I initially only allowed the AsyncFileStream
thread to materialize the dataless files and this was enough to make the file upload
use cases work. However, I noticed that drag and dropping such file in the Safari URL
bar would fail loading, which I think is bad user experience. As a result, I have
decided to allow the materializing at network process level.

I have verified manually that I can now upload such dataless files via either file
picker or drag and drop (used https://blueimp.github.io/jQuery-File-Upload/). I have
also verified that drag and dropping such a file in the Safari URL bar successfuly
loads that file.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

Source/WTF:

Add FileSystem API to allow/disallow the materializing of dataless files stored
in the cloud, at process or thread level.

  • wtf/FileSystem.h:
  • wtf/cocoa/FileSystemCocoa.mm: (WTF::FileSystemImpl::toIOPolicyScope): (WTF::FileSystemImpl::setAllowsMaterializingDatalessFiles): (WTF::FileSystemImpl::allowsMaterializingDatalessFiles):

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

2:01 PM Changeset in webkit [278049] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[PlayStation] Update usage of libWPE API
https://bugs.webkit.org/show_bug.cgi?id=226231

Reviewed by Ross Kirsling.

Update to use 1.6.0+ API version.

  • UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:

(WKPageHandleWheelEvent):

1:47 PM Changeset in webkit [278048] by Russell Epstein
  • 1 edit in branches/safari-611.3.6.0-branch/Source/WTF/wtf/cocoa/FileSystemCocoa.mm

Unreviewed build fix, rdar://problem/78467190

1:37 PM Changeset in webkit [278047] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Build failure in UserAgentPlayStation
https://bugs.webkit.org/show_bug.cgi?id=226232

Unreviewed build fix after r277967.

  • platform/playstation/UserAgentPlayStation.cpp:

(WebCore::standardUserAgentStatic):

1:37 PM Changeset in webkit [278046] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.13

1:36 PM Changeset in webkit [278045] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.12

Tag Safari-612.1.15.1.12.

1:35 PM Changeset in webkit [278044] by Russell Epstein
  • 1 delete in tags/Safari-612.1.15.1.12

Delete tag.

1:35 PM Changeset in webkit [278043] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Revert "Versioning."

This reverts commit r278039.

1:31 PM Changeset in webkit [278042] by Chris Dumez
  • 10 edits in trunk

SecurityPolicyViolationEvent.constructor do not throw any exception as expected when eventInitDict param do not include all the members required
https://bugs.webkit.org/show_bug.cgi?id=226215

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/content-security-policy/securitypolicyviolation/constructor-required-fields-expected.txt:
  • web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window-expected.txt:

Source/WebCore:

Update our SecurityPolicyViolationEvent & SecurityPolicyViolationEventInit IDL to match
Blink more closely, which gets us much closer to the specification:

I added comments in the IDL for cases where we intentionally don't match the specification
because it would not be compatible with Blink.

The following changes were made:

  • Mark documentURI, violatedDirective, effectiveDirective, originalPolicy, disposition and statusCode dictionary members as required.
  • Use 'unsigned long' type for lineNumber & columNumber dictionary members instead of 'long'.
  • Add disposition and sample dictionary members.
  • Use USVString type for referrer dictionary member instead of DOMString
  • Allow workers to construct a SecurityPolicyViolationEvent.
  • Add documentURL, blockedURL, sample, disposition, lineno, colno attributes to SecurityPolicyViolationEvent.
  • dom/SecurityPolicyViolationEvent.h:

(WebCore::SecurityPolicyViolationEvent::Init::encode const):
(WebCore::SecurityPolicyViolationEvent::Init::decode):

  • dom/SecurityPolicyViolationEvent.idl:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation const):

LayoutTests:

Update existing test so that it keeps passing with the new SecurityPolicyViolationEvent constructor
changes.

  • http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html:
1:29 PM Changeset in webkit [278041] by keith_miller@apple.com
  • 2 edits in trunk/Tools

Wasm low memory tests should have a larger executable pool
https://bugs.webkit.org/show_bug.cgi?id=226233

Reviewed by Saam Barati.

With some other recent JSC changes we can sometimes go over the allocation pool we set aside. Let's bump the number.

  • Scripts/run-jsc-stress-tests:
1:27 PM Changeset in webkit [278040] by Sam Sneddon
  • 9 edits in trunk/Tools

Run webkitpy integration tests under pytest by default
https://bugs.webkit.org/show_bug.cgi?id=226017

Reviewed by Jonathan Bedard.

This involves adding a variety of new xfail annotations and moving some tests to
be serial to avoid flakiness.

  • Scripts/webkitpy/common/config/committers_unittest.py:

(CommittersTest):

  • Scripts/webkitpy/conftest.py:

(pytest_addoption): Remove --run-integration
(pytest_collection_modifyitems): Remove --run-integration

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.serial_test_basic):
(RunTest.serial_test_batch_size):
(RunTest.serial_test_dryrun):
(RunTest.serial_test_full_results_html):
(RunTest.serial_test_no_order_with_directory_entries_in_natural_order):
(RunTest.serial_test_gc_between_tests):
(RunTest.serial_test_check_for_world_leaks):
(RunTest.serial_test_complex_text):
(RunTest.serial_test_threaded):
(RunTest.serial_test_run_force):
(RunTest.serial_test_run_singly):
(RunTest.serial_test_skip_failing_tests):
(RunTest.serial_test_run_singly_actually_runs_tests):
(RunTest.serial_test_stderr_is_saved):
(RunTest.serial_test_results_directory_absolute):
(RunTest.serial_test_results_directory_default):
(RunTest.serial_test_results_directory_relative):
(RunTest.serial_test_run_orderinline):
(RunTest.serial_test_additional_platform_directory):
(RunTest.serial_test_no_http_and_force):
(RunTest.serial_test_no_http_tests):
(RunTest.serial_test_platform_tests_are_found):

  • Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py:

(BaseTest):
(HTTPServerTest):
(HTTPServerTest.integration_test_servernormal):
(HTTPServerTest.integration_test_server
fails):
(HTTPServerTest.integration_test_port_and_root):
(WebsocketserverTest):
(WebsocketserverTest.integration_test_servernormal):
(WebsocketserverTest.integration_test_server
fails):
(WebsocketserverTest.integration_test_port_and_root):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase):

  • Scripts/webkitpy/test/main_unittest.py:

(TesterTest):

  • Scripts/webkitpy/test/markers.py:

(skip): Add skip

  • Scripts/webkitpy/tool/steps/haslanded_unittest.py:

(HasLandedTest): Always skip this, as it seems to fail always

1:25 PM Changeset in webkit [278039] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.13

1:24 PM Changeset in webkit [278038] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.12

Tag Safari-612.1.15.1.12.

1:06 PM Changeset in webkit [278037] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.12

12:41 PM Changeset in webkit [278036] by Russell Epstein
  • 5 edits in branches/safari-611.3.6.0-branch/Source

Cherry-pick r277881. rdar://problem/78467190

[Cocoa] Unable to upload files that are stored in the cloud (without a local copy)
https://bugs.webkit.org/show_bug.cgi?id=226090
<rdar://77775887>

Reviewed by Darin Adler.

Source/WebKit:

Allow the network process to load / read dataless files stored in the cloud by allowing
the process to materialize such files. I initially only allowed the AsyncFileStream
thread to materialize the dataless files and this was enough to make the file upload
use cases work. However, I noticed that drag and dropping such file in the Safari URL
bar would fail loading, which I think is bad user experience. As a result, I have
decided to allow the materializing at network process level.

I have verified manually that I can now upload such dataless files via either file
picker or drag and drop (used https://blueimp.github.io/jQuery-File-Upload/). I have
also verified that drag and dropping such a file in the Safari URL bar successfuly
loads that file.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

Source/WTF:

Add FileSystem API to allow/disallow the materializing of dataless files stored
in the cloud, at process or thread level.

  • wtf/FileSystem.h:
  • wtf/cocoa/FileSystemCocoa.mm: (WTF::FileSystemImpl::toIOPolicyScope): (WTF::FileSystemImpl::setAllowsMaterializingDatalessFiles): (WTF::FileSystemImpl::allowsMaterializingDatalessFiles):

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

12:35 PM Changeset in webkit [278035] by Darin Adler
  • 38 edits
    1 delete in trunk

Switch from WTF::Optional to std::optional
https://bugs.webkit.org/show_bug.cgi?id=211674

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator): Use JSObject* instead of
Optional<JSObject&>.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::toDateTimeOptionsAnyDate): Ditto.
(JSC::IntlDateTimeFormat::initializeDateTimeFormat): Ditto.

  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames): Ditto.

  • runtime/IntlListFormat.cpp:

(JSC::IntlListFormat::initializeListFormat): Ditto.

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::initializeLocale): Ditto.

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat): Ditto.

  • runtime/IntlNumberFormat.h: Ditto.
  • runtime/IntlNumberFormatInlines.h:

(JSC::setNumberFormatDigitOptions): Ditto.

  • runtime/IntlObject.cpp:

(JSC::intlBooleanOption): Ditto.
(JSC::intlStringOption): Ditto.
(JSC::intlNumberOption): Ditto.
(JSC::supportedLocales): Ditto.

  • runtime/IntlObject.h: Ditto.
  • runtime/IntlObjectInlines.h:

(JSC::intlOption): Ditto.
(JSC::intlGetOptionsObject): Ditto.
(JSC::intlCoerceOptionsToObject): Ditto.

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::initializePluralRules): Ditto.

  • runtime/IntlPluralRules.h: Ditto.
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat): Ditto.

  • runtime/IntlSegmenter.cpp:

(JSC::IntlSegmenter::initializeSegmenter): Ditto.

Source/WebCore:

  • platform/graphics/VP9Utilities.h: Tweaked coding style a bit.

Added missing operator!= because std::optional's operator!= relies
on that, while WTF::Optional's operator!= relied on operator==.

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:

(Encoders::definition): Use a pointer instead of Optional<&>.

  • testing/Internals.cpp:

(WebCore::Internals::setVP9ScreenSizeAndScaleForTesting): Use a
form of construction for ScreenDataOverrides that works with both
WTF::Optional and std::optional. Something about way the old code
used WTF::makeOptional was not compatible with std::make_optional,
but it was easy to make it more straightforward and not even have
to use a "make" function.

Source/WebKit:

  • Platform/IPC/ArgumentCoder.h:

(IPC::ArgumentCoder::decode): Add a WTFMove. Turns out this was not needed
to get compiling with std::optional, but it's a good idea for performance.
This is one of those cases where it looks like the return value optimization
would work, but it doesn't because the return value doesn't exactly match
the local variable's type.

  • Shared/TouchBarMenuData.h: Remove some overzealous use of explicit that

was preventing some files from compiling with the stricter std::optional
constructor rules, while it did not prevent compiling with WTF::Optional.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::switchToBrowsingContext): Removed an unused
lambda capture and local variable. Not clear how this is related to
std::optional, but showed up as a compiler warning.

Source/WTF:

  • wtf/Forward.h: Remove Optional forward declaration.

Also include Optional.h, just for now. Need to remove this once
we do the global rename.

  • wtf/Optional.h: Replaced the entire WTF::Optional implementation

with a WTF::Optional "using" that makes it a synonym for std::optional.
WTF::nullopt being a synonym for std::nullopt and WTF::nullopt_t
being a synonym for std::nullopt_t. Also included functions so
that WTF::makeOptional calls std::make_optional and kept the
WTF extension named valueOrCompute. Need to remove these once we
do the global rename, and likely just get rid of valueOrCompute, and
then delete this entire header.

  • wtf/Seconds.h: Added an include of FastMalloc.h, since it's no

longer pulled in because of including Optional.h.

  • wtf/persistence/PersistentCoder.h: Use Forward.h for now instead of

forward-declaring WTF::optional.

Tools:

  • Scripts/webkitpy/style/checker.py: Removed exceptions from the WTF::Optional

style rule for WebRTC.

  • Scripts/webkitpy/style/checkers/cpp.py: Removed check_wtf_optional.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py: Removed test_wtf_optional.
  • TestWebKitAPI/CMakeLists.txt: Removed Optional.cpp.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
  • TestWebKitAPI/Tests/WTF/Optional.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/cf/RetainPtr.cpp: Updated test to not rely on non-standard

aspects of moving from an optional. Instead check the retain count to make sure we
have moved successfully.

  • TestWebKitAPI/Tests/WTF/ns/RetainPtr.mm: Ditto.
12:33 PM Changeset in webkit [278034] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.1.11

Tag Safari-612.1.15.1.11.

12:32 PM Changeset in webkit [278033] by Jonathan Bedard
  • 1 edit
    32 deletes in trunk/LayoutTests

[LayoutTess] Delete unused LayoutTests/fast resources
https://bugs.webkit.org/show_bug.cgi?id=226064
<rdar://problem/78289833>

Reviewed by Dewei Zhu.

  • fast/box-shadow/resources/box-shadow-overflow-scroll.js: Removed.
  • fast/canvas/resources/empty.svg: Removed.
  • fast/canvas/resources/orientation-rotate-0.jpg: Removed.
  • fast/canvas/resources/orientation-rotate-180.jpg: Removed.
  • fast/canvas/resources/orientation-rotate-90-ccw.jpg: Removed.
  • fast/canvas/resources/orientation-rotate-90-cw.jpg: Removed.
  • fast/canvas/webgl/resources/out-of-bounds-test.js: Removed.
  • fast/css-grid-layout/resources/blue-100x50.png: Removed.
  • fast/css/resources/alignment-parsing-utils.js: Removed.
  • fast/css/resources/purple-noprofile.png: Removed.
  • fast/custom-elements/resources/document-types.js: Removed.
  • fast/dom/HTMLScriptElement/resources/script-set-src-p4pass.js: Removed.
  • fast/dom/resources/event-sender-util.js: Removed.
  • fast/forms/resources/common-clearbutton-change-and-input-events.js: Removed.
  • fast/forms/resources/multiple-fields-ax-aria-attributes.js: Removed.
  • fast/forms/resources/multiple-fields-blur-and-focus-events.js: Removed.
  • fast/forms/resources/multiple-fields-validity-badinput.js: Removed.
  • fast/forms/resources/multiple-fields-value-set-empty.js: Removed.
  • fast/history/resources/clicked-link-is-visited-2.html: Removed.
  • fast/history/resources/page-cache-helper-10000ms.html: Removed.
  • fast/history/resources/page-cache-helper-100ms.html: Removed.
  • fast/images/resources/animated-red-green-blue-repeat-infinite.webp: Removed.
  • fast/images/resources/large.webp: Removed.
  • fast/images/resources/lenna.jpg: Removed.
  • fast/images/resources/lenna.png: Removed.
  • fast/reflections/resources/reflection-overflow-scroll.js: Removed.
  • fast/shadow-dom/resources/red-div.css: Removed.
  • fast/text/resources/gw432047-license.txt: Removed.
  • fast/text/resources/unicode-range-download-Ahem.otf: Removed.
  • fast/text/resources/unicode-range-download-Ahem.ttf: Removed.
  • fast/text/resources/unicode-range-download-Ahem.woff: Removed.
  • fast/workers/resources/messageevent-source.js: Removed.
  • fast/xmlhttprequest/resources/1251.html: Removed.
12:12 PM Changeset in webkit [278032] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

[AppleWin] JSC fails to build
https://bugs.webkit.org/show_bug.cgi?id=226225
<rdar://78330435>

Reviewed by Brent Fulgham.

Speculative build fix for missing script to generate unified sources. Make sure the WTF scripts directory exists before
copying the script there, and add a CMake log message to help further debugging if this is not the correct fix.

  • wtf/CMakeLists.txt:
11:26 AM Changeset in webkit [278031] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Divide by zero in DisplayUpdate::relevantForUpdateFrequency()
https://bugs.webkit.org/show_bug.cgi?id=226224
<rdar://76894675>

Reviewed by Wenson Hsieh.

Check for non-zero preferredFramesPerSecond before using it as a denominator
to avoid divide by zero.

  • platform/graphics/DisplayUpdate.cpp:

(WebCore::DisplayUpdate::relevantForUpdateFrequency const):

11:16 AM Changeset in webkit [278030] by sbarati@apple.com
  • 22 edits in trunk/Source/JavaScriptCore

Finalize DFG/FTL code refs on the compiler threads
https://bugs.webkit.org/show_bug.cgi?id=226096

Reviewed by Mark Lam.

Previously, link tasks that ran via the addLinkTask API were guaranteed to be
called on the main thread. This is no longer the case. Most link tasks are
happy running on a background thread, since all they're really doing is
linking branches/calls or grabbing labels. However, a few users of addLinkTask were
relying on it running on the main thread. For those users, there is a new
addMainThreadFinalizationTask API, which is now used instead.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::~LinkBuffer):
(JSC::LinkBuffer::runMainThreadFinalizationTasks):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::cancel):
(JSC::LinkBuffer::addMainThreadFinalizationTask):
(JSC::LinkBuffer::~LinkBuffer): Deleted.

  • dfg/DFGFailedFinalizer.cpp:

(JSC::DFG::FailedFinalizer::finalizeFunction): Deleted.

  • dfg/DFGFailedFinalizer.h:
  • dfg/DFGFinalizer.h:

(JSC::DFG::Finalizer::cancel):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::cancel):
(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction): Deleted.
(JSC::DFG::JITFinalizer::finalizeCommon): Deleted.

  • dfg/DFGJITFinalizer.h:
  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::emit const):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
(JSC::DFG::Plan::cancel):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalize):
(JSC::FTL::JITFinalizer::cancel):
(JSC::FTL::JITFinalizer::finalizeFunction): Deleted.
(JSC::FTL::JITFinalizer::finalizeCommon): Deleted.

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLPatchpointExceptionHandle.cpp:

(JSC::FTL::PatchpointExceptionHandle::scheduleExitCreationForUnwind):

  • ftl/FTLThunks.h:

(JSC::FTL::Thunks::getSlowPathCallThunk):
Add a lock to FTLThunks since we now may be calling into it from more than
one thread at a time.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitVirtualCall):
(JSC::AssemblyHelpers::emitUnlinkedVirtualCall): Deleted.

  • jit/AssemblyHelpers.h:
  • jit/JIT.cpp:

(JSC::JIT::finalizeOnMainThread):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):

11:03 AM Changeset in webkit [278029] by mark.lam@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Reduce Baseline JIT emitted code size for op_jfalse, op_jtrue, op_get_from_scope, op_resolve_scope.
https://bugs.webkit.org/show_bug.cgi?id=226107

Reviewed by Saam Barati.

Benchmarking with JetStream2 and Speedometer2 on M1 Mac shows that performance is
neutral.

This patch reduces Baseline JIT emitted code side on a run of JetStream2 CLI by
another ~6.6M:

Base New Diff

BaselineJIT: 64955116 (61.946026 MB) 57991704 (55.305199 MB) 0.89x (reduction)

DFG: 36382012 (34.696590 MB) 36540652 (34.847881 MB) 1.00x

Thunk: 23217692 (22.142117 MB) 23115852 (22.044994 MB) 1.00x

InlineCache: 22228140 (21.198406 MB) 22262572 (21.231243 MB) 1.00x

FTL: 6025320 (5.746193 MB) 6164332 (5.878765 MB) 1.02x

Wasm: 2327604 (2.219776 MB) 2297036 (2.190624 MB) 0.99x

YarrJIT: 1547172 (1.475498 MB) 1522584 (1.452049 MB) 0.98x

CSSJIT: 0 0

Uncategorized: 0 0

Cumulative diff since the start of this effort to reduce Baseline JIT code size:

Base New Diff

BaselineJIT: 89089964 (84.962811 MB) 57991704 (55.305199 MB) 0.65x (reduction)

DFG: 39117360 (37.305222 MB) 36540652 (34.847881 MB) 0.93x (reduction)

Thunk: 23230968 (22.154778 MB) 23115852 (22.044994 MB) 1.00x

InlineCache: 22027416 (21.006981 MB) 22262572 (21.231243 MB) 1.01x

FTL: 6575772 (6.271145 MB) 6164332 (5.878765 MB) 0.94x (reduction)

Wasm: 2302724 (2.196049 MB) 2297036 (2.190624 MB) 1.00x

YarrJIT: 1538956 (1.467663 MB) 1522584 (1.452049 MB) 0.99x

CSSJIT: 0 0

Uncategorized: 0 0

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::offsetInMetadataTable):
(JSC::CodeBlock::offsetOfMetadataTable):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfTruthy):
(JSC::AssemblyHelpers::branchIfFalsey):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_jfalse):
(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::valueIsTruthyGenerator):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::slow_op_resolve_scopeGenerator):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::slow_op_get_from_scopeGenerator):

  • jit/ThunkGenerators.cpp:

(JSC::popThunkStackPreservesAndHandleExceptionGenerator):

  • runtime/GetPutInfo.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::offsetOfGlobalLexicalEnvironment):
(JSC::JSGlobalObject::offsetOfGlobalLexicalBindingEpoch):

10:34 AM Changeset in webkit [278028] by Alan Bujtas
  • 3 edits
    2 adds in trunk

CrashOnOverflow in WebCore::RenderTable::cellBefore(WebCore::RenderTableCell const*)
https://bugs.webkit.org/show_bug.cgi?id=225949

Reviewed by Sergio Villar Senin.

Source/WebCore:

The table section maintains a grid of rows and columns. This grid is used to jump to cells directly during layout (as opposed to tree walking).
It needs to be re-populated on tree mutations e.g when a new row is added to the table.
RenderTableSection::willInsertTableRow assumes that rows and cells are inserted subsequently, after each other and
it's ok to ignore the grid invalidation on the first row insertion (beforeChild is nullptr).
However in case of continuation split (e.g <table> is inside of an inline element and this inline element
needs to be split due to a block level box insertion), the row and all of its cells are cloned and inserted under the table section at once.

Test: fast/table/table-split-on-insert-with-section-crash.html

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::willInsertTableRow): fun fact: this code dates back to r3351 "The new table code from Lars.".

LayoutTests:

  • fast/table/table-split-on-insert-with-section-crash-expected.txt: Added.
  • fast/table/table-split-on-insert-with-section-crash.html: Added.
10:34 AM Changeset in webkit [278027] by don.olmstead@sony.com
  • 7 edits
    1 add in trunk

[PlayStation] Implement FileSystem without std::filesystem
https://bugs.webkit.org/show_bug.cgi?id=226197

Reviewed by Chris Dumez.

.:

Expose the result of the check for <filesystem> support as HAVE_STD_FILESYSTEM.

  • Source/cmake/OptionsCommon.cmake:

Source/WTF:

The PlayStation 4 doesn't have support in its SDK for std::filesystem so backport the
functions jettisoned from FileSystemPOSIX and add them to a FileSystemPlayStation.cpp.
The ordering matches the contents of FileSystem.cpp.

Most of the functions ported to std::filesystem were just moved over as is from the commit
prior to r276879. Minor changes to the function signatures made when required.

The fileTypePotentiallyFollowingSymLinks function was created from the previous behavior
of fileMetadataUsingFunction and toFileMetataType.

The hardLinkCount was created from looking at the behavior hardLinkCount replaced in
r277446.

  • wtf/FileSystem.cpp:
  • wtf/PlatformHave.h:
  • wtf/PlatformPlayStation.cmake:
  • wtf/StdFilesystem.h:
  • wtf/playstation/FileSystemPlayStation.cpp: Added.

(WTF::FileSystemImpl::fileTypePotentiallyFollowingSymLinks):
(WTF::FileSystemImpl::fileExists):
(WTF::FileSystemImpl::deleteFile):
(WTF::FileSystemImpl::deleteEmptyDirectory):
(WTF::FileSystemImpl::moveFile):
(WTF::FileSystemImpl::fileSize):
(WTF::FileSystemImpl::makeAllDirectories):
(WTF::FileSystemImpl::volumeFreeSpace):
(WTF::FileSystemImpl::createSymbolicLink):
(WTF::FileSystemImpl::hardLink):
(WTF::FileSystemImpl::hardLinkOrCopyFile):
(WTF::FileSystemImpl::hardLinkCount):
(WTF::FileSystemImpl::deleteNonEmptyDirectory):
(WTF::FileSystemImpl::fileModificationTime):
(WTF::FileSystemImpl::updateFileModificationTime):
(WTF::FileSystemImpl::isHiddenFile):
(WTF::FileSystemImpl::fileType):
(WTF::FileSystemImpl::fileTypeFollowingSymlinks):
(WTF::FileSystemImpl::pathFileName):
(WTF::FileSystemImpl::parentPath):
(WTF::FileSystemImpl::realPath):
(WTF::FileSystemImpl::pathByAppendingComponent):
(WTF::FileSystemImpl::pathByAppendingComponents):
(WTF::FileSystemImpl::listDirectory):

10:25 AM Changeset in webkit [278026] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612.1.15.0-branch

Cherry-pick r277990. rdar://problem/78463670

[iOS] Adjust meaningful click heuristic to detect focus changes and editable content
https://bugs.webkit.org/show_bug.cgi?id=226199
rdar://78368624

Reviewed by Tim Horton.

Source/WebKit:

Fine tune the "meaningful click" heuristic by not dispatching a non-meaningful click message to the UI process
in the cases where the tap:

  • Causes the focused element to change.
  • Is over a form control or editable element.

Test: fast/events/ios/meaningful-click-when-focusing-body.html

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::completeSyntheticClick):

LayoutTests:

Add a layout test to exercise the change.

  • fast/events/ios/meaningful-click-when-focusing-body-expected.txt: Added.
  • fast/events/ios/meaningful-click-when-focusing-body.html: Added.

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

10:24 AM Changeset in webkit [278025] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.0-branch/Source

Versioning.

WebKit-7612.1.15.0.7

10:13 AM Changeset in webkit [278024] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.1-branch/Source

Versioning.

WebKit-7612.1.15.1.11

9:47 AM Changeset in webkit [278023] by Russell Epstein
  • 1 copy in tags/Safari-611.2.7.1.7

Tag Safari-611.2.7.1.7.

9:46 AM Changeset in webkit [278022] by Russell Epstein
  • 1 copy in tags/Safari-611.2.7.0.5

Tag Safari-611.2.7.0.5.

9:46 AM Changeset in webkit [278021] by Russell Epstein
  • 1 copy in tags/Safari-611.2.6.2.1

Tag Safari-611.2.6.2.1.

9:43 AM Changeset in webkit [278020] by Russell Epstein
  • 2 edits in branches/safari-611.2.6.2-branch/Source/WebCore

Cherry-pick r277177. rdar://problem/78431521

AudioWorkletProcessor which does not extend base class crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=225449
<rdar://problem/77624792>

Reviewed by Sam Weinig.

Update AudioWorkletGlobalScope::createProcessor() to validate the type of the processor
after constructing it.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp: (WebCore::AudioWorkletGlobalScope::createProcessor):

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

9:41 AM Changeset in webkit [278019] by Russell Epstein
  • 8 edits in branches/safari-611.2.6.2-branch/Source

Versioning.

WebKit-7611.2.6.2.1

9:18 AM Changeset in webkit [278018] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.2.6.2.1

9:15 AM Changeset in webkit [278017] by Russell Epstein
  • 1 copy in branches/safari-611.2.6.2-branch

New branch.

9:06 AM Changeset in webkit [278016] by Russell Epstein
  • 2 edits in branches/safari-611.2.7.0-branch/Source/WebCore

Cherry-pick r277177. rdar://problem/78427537

AudioWorkletProcessor which does not extend base class crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=225449
<rdar://problem/77624792>

Reviewed by Sam Weinig.

Update AudioWorkletGlobalScope::createProcessor() to validate the type of the processor
after constructing it.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp: (WebCore::AudioWorkletGlobalScope::createProcessor):

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

9:06 AM Changeset in webkit [278015] by Russell Epstein
  • 2 edits in branches/safari-611.2.7.1-branch/Source/WebCore

Cherry-pick r277177. rdar://problem/78427582

AudioWorkletProcessor which does not extend base class crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=225449
<rdar://problem/77624792>

Reviewed by Sam Weinig.

Update AudioWorkletGlobalScope::createProcessor() to validate the type of the processor
after constructing it.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp: (WebCore::AudioWorkletGlobalScope::createProcessor):

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

9:04 AM Changeset in webkit [278014] by Russell Epstein
  • 8 edits in branches/safari-611.2.7.0-branch/Source

Versioning.

WebKit-7611.2.7.0.5

9:03 AM Changeset in webkit [278013] by Russell Epstein
  • 8 edits in branches/safari-611.2.7.1-branch/Source

Versioning.

WebKit-7611.2.7.1.7

9:00 AM Changeset in webkit [278012] by Russell Epstein
  • 8 edits in branches/safari-611.3.6.1-branch/Source

Versioning.

WebKit-7611.3.6.1.2

8:58 AM Changeset in webkit [278011] by Russell Epstein
  • 8 edits in branches/safari-611.3.6.0-branch/Source

Versioning.

WebKit-7611.3.6.0.2

8:35 AM Changeset in webkit [278010] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][TFC] Percent height resolving quirk should stop at the table formatting context root
https://bugs.webkit.org/show_bug.cgi?id=226156

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/layoutformattingcontext/table-with-percent-height-descendant.html

  • layout/formattingContexts/FormattingQuirks.h:
  • layout/formattingContexts/table/TableFormattingQuirks.cpp:

(WebCore::Layout::TableFormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):

  • layout/formattingContexts/table/TableFormattingQuirks.h:

LayoutTests:

  • fast/layoutformattingcontext/table-with-percent-height-descendant-expected.html: Added.
  • fast/layoutformattingcontext/table-with-percent-height-descendant.html: Added.
8:31 AM Changeset in webkit [278009] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Ensure app highlight visibility observer is initialized before adding a new highlight
https://bugs.webkit.org/show_bug.cgi?id=226214
rdar://78173370

Patch by Matt Mokary <mmokary@apple.com> on 2021-05-25
Reviewed by Wenson Hsieh.

The app highlight visibility observer is initialized before restoring highlights, but was not initialized
before adding a new one. It must be initialized before adding a highlight so a change in visibility resulting
from a new highlight is handled correct.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createAppHighlightInSelectedRange):

8:26 AM Changeset in webkit [278008] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using UncheckedLock in DatabaseTracker
https://bugs.webkit.org/show_bug.cgi?id=226208

Reviewed by Sam Weinig.

Stop using UncheckedLock in DatabaseTracker. This is a step towards phasing out the
UncheckedLock in favor of the regular Lock which support Clang thread safety analysis.

In this particular instance, I have opted to annotate the functions that gave out
warning with WTF_IGNORES_THREAD_SAFETY_ANALYSIS. I initially tried to use proper
annotations (WTF_ACQUIRES_LOCK() / WTF_RELEASES_LOCK()). However, the call sites are
Objective C functions and I am unable to annotate those.

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::openDatabaseMutex):

  • Modules/webdatabase/DatabaseTracker.h:
8:11 AM Changeset in webkit [278007] by Simon Fraser
  • 10 edits in trunk/Source

Initialize WebCore and WebKit logging channels in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=226210

Reviewed by Andy Estes.
Source/WebCore:

Send the strings representing the enabled WebCore and WebKit logging channels to the
GPU Process, and use them to initialize log channels there, as we do for the WebContent
process.

  • platform/LogInitialization.h: Export logLevelString().
  • platform/Logging.h: Remove functions that are declared in LogInitialization.h.
  • platform/mac/LoggingMac.mm:

Source/WebKit:

Send the strings representing the enabled WebCore and WebKit logging channels to the
GPU Process, and use them to initialize log channels there, as we do for the WebContent
process.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):

  • GPUProcess/GPUProcessCreationParameters.h:
  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::GPUProcessProxy):

7:45 AM Changeset in webkit [278006] by Lauro Moura
  • 3 edits in trunk/Tools

[WebDriver][WPE] Support running w3c webdriver tests with Cog
https://bugs.webkit.org/show_bug.cgi?id=226203

Reviewed by Adrian Perez de Castro.

Using the same infrastructure as the MiniBrowser, through ENABLE_COG.

Selenium not yet supported, as the browserName capability is hardcoded
as MiniBrowser in selenium's test codebase.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.browser_env): Factored out of run_minibrowser to be used in the WebDriver driver module.
(WPEPort.run_minibrowser):

  • Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py:

(WebDriverWPE.browser_args):
(WebDriverWPE.browser_env):

7:00 AM Changeset in webkit [278005] by commit-queue@webkit.org
  • 2 edits
    2 moves
    1 add
    3 deletes in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update some SVG test baselines.
https://bugs.webkit.org/show_bug.cgi?id=226111

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-05-25

  • platform/glib/svg/transforms/svg-css-transforms-clip-path-expected.txt: Renamed from LayoutTests/platform/wpe/svg/transforms/svg-css-transforms-clip-path-expected.txt.
  • platform/glib/svg/transforms/svg-css-transforms-expected.txt: Renamed from LayoutTests/platform/wpe/svg/transforms/svg-css-transforms-expected.txt.
  • platform/glib/transforms/svg-vs-css-expected.txt:
  • platform/gtk/svg/transforms/svg-css-transforms-clip-path-expected.txt: Removed.
  • platform/gtk/svg/transforms/svg-css-transforms-expected.txt: Removed.
  • platform/wpe/transforms/svg-vs-css-expected.txt: Removed.
5:52 AM Changeset in webkit [278004] by eocanha@igalia.com
  • 5 edits in trunk

[GTK] Layout test media/track/track-cue-missing.html is failing
https://bugs.webkit.org/show_bug.cgi?id=191004

Reviewed by Alicia Boya Garcia.

Source/WebCore:

Implemented the missing performTaskAtMediaTime() method, needed by HTMLMediaElement::updateActiveTextTrackCues()
to trigger custom updates at times that don't fit in the regular updates statically scheduled every 250 ms.
The implementation uses triggerRepaint() for synchronization instead of timers, computing the current stream time
of the last video frame to be painted as an heuristic, instead of asking the position to the pipeline (more
expensive and risky from a non-main thread). If the stream time is beyond the task target time, the task is run
on the main thread.

Still, that is not enough. The task scheduled by HTMLMediaElement requires currentTime() to return an accurate
value, not one cached every 200ms. m_cachedTime needs to be updated more frequently (at least once every main
loop iteration), but still remain consistent along the whole iteration. This is achieved by enqueing an
invalidation task (to be run at the end of the current iteration) each time the cached value is set with a value
coming from a position query.

The changes in the m_cachedTime management add an overhead between 173% (track-cue-missing test) and 426%
(regular video playback without subtitles) in the run time spent querying the position to the pipeline. As an
optimization, the position is now directly queried to the audio and video sink and the highest value (according
to the current playback direction) is returned. This reduces the overhead to just 63% in the regular playback
without subtitles case.

The inner TaskAtMediaTimeScheduler class is used for task target time evaluation. As it can be used from the
main thread and from a secondary one in triggerRepaint(), it's wrapped in a DataMutex to manage concurrent
access. The original task is returned to the caller of checkTaskForScheduling() when the currentTime is beyond
the target time. The caller is then responsible of running the task externally in the main thread, out of the
influence of the DataMutex lock (the task can be expensive and the lock is only needed to evaluate the triggering
conditions).

Covered by existing tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::TaskAtMediaTimeScheduler::setTask): Configure the object with the right task, targetTime, and current playback direction.
(WebCore::MediaPlayerPrivateGStreamer::TaskAtMediaTimeScheduler::checkTaskForScheduling): Check if the task must run. In that case, return the task as result so the caller can run it externally on the main thread after the DataMutex lock has been released.
(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition): Implementation moved to the cpp file.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Don't initialize m_cachedPosition, as it's now an Optional that will be initialized as no-value.
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const): Change the time based caching mechanism to a mainloop iteration based one. Directly query the sinks instead of the pipeline for position.
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone): Invalidate the Optional, instead of setting an invalid MediaTime.
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::didEnd): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::performTaskAtMediaTime): Set the task on the TaskAtMediaTimeScheduler when the media is currently playing. That task will run at the target time. The HTMLMediaElement periodic update will already take care if the media isn't currently playing.
(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition const): Reset Optional<MediaTime> m_cachedTime.
(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPositionOnNextIteration const): Enqueue an invalidation on the next mainloop iteration.
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint): Check if the PendingTask needs to be run, using the streaming time of the last rendered sample as an approximate way to get the position, and run it if that's the case.

LayoutTests:

  • platform/glib/TestExpectations: Unskipped test.
1:33 AM Changeset in webkit [278003] by ntim@apple.com
  • 15 edits in trunk

Add basic <dialog> element UA styles
https://bugs.webkit.org/show_bug.cgi?id=226169

Reviewed by Antti Koivisto.

Basic styles from https://html.spec.whatwg.org/#flow-content-3

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-multiple-times-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-unfocusable-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:

Source/WebCore:

  • css/dialog.css:

(dialog):

LayoutTests:

  • TestExpectations: marked relevant tests as failing until a proper modal dialog implementation makes them pass
  • fast/box-shadow/box-shadow-huge-area-crash.html: changed it to use a <div> to match the behaviour before this patch
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:
1:32 AM Changeset in webkit [278002] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=225267

Patch by Frederic Wang <fwang@igalia.com> on 2021-05-25
Reviewed by Ryosuke Niwa.

Source/WebCore:

WebCore::Position::upstream behaves specially for table renderer, which may confuse the
execution of WebCore::InsertParagraphSeparatorCommand::doApply() when the visible position
is within a table, leading to a debug assertion failure and a nullptr dereference in release
build. In r273375, this was fixed for DOM elements with the table tag, but this does not work
for display: table. This patch instead directly calls isRenderedTable, for consistency with
WebCore::Position::upstream.

Test: fast/editing/paste-and-match-style-with-table-2-crash.html

  • editing/markup.cpp:

(WebCore::createFragmentFromText): Use isRenderedTable instead of checking the tag name.

LayoutTests:

Add regression test.

  • fast/editing/paste-and-match-style-with-table-2-crash-expected.txt: Added.
  • fast/editing/paste-and-match-style-with-table-2-crash.html: Added.
12:40 AM Changeset in webkit [278001] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
12:08 AM Changeset in webkit [278000] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Only create MediaElementSession when necessary
https://bugs.webkit.org/show_bug.cgi?id=226132

Patch by Ian Gilbert <iang@apple.com> on 2021-05-25
Reviewed by Eric Carlson.

Some methods had an unexpected side effect of creating a MediaElementSession.
Modified these to not create one if one does not already exist.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::mediaState const):

May 24, 2021:

11:22 PM Changeset in webkit [277999] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

GLContextEGL::swapBuffers() shouldn't do anything for Surfaceless contexts
https://bugs.webkit.org/show_bug.cgi?id=226164

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-05-24
Reviewed by Philippe Normand.

In case of a surfaceless GLContextEGL, the swapBuffers() method should
return early, avoiding an assert expecting a non-null EGLSurface (not
viable for surfaceless context) and a call to eglSwapBuffers(), which
on some drivers could still fail even when the surfaceless context
support is present and active.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::swapBuffers):

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

[CoordinatedGraphics] Handle null native surface handle for surfaceless rendering
https://bugs.webkit.org/show_bug.cgi?id=226165

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-05-24
Reviewed by Philippe Normand.

During ThreadedCompositor initialization, a null native surface handle
would represent a surfaceless rendering target. Assuming corresponding
driver support for this behavior, the GL context creation would still
succeed and composition could be performed.

To support this behavior, the GL context is now spawned first, and if
successful, the scene is set as active. But in case of a null native
surface (i.e. surfaceless rendering), the painting has to be mirrored
by default because of the OpenGL coordinate system being the immediate
coordinate system inside which we end up working.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::createGLContext):

10:39 PM Changeset in webkit [277997] by cathiechen
  • 13 edits in trunk

Use the parsed width and height attributes as a presentational hint for aspect-ratio CSS property
https://bugs.webkit.org/show_bug.cgi?id=217529

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update the expected results of test_computed_style which are passed now.

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio-expected.txt:

Source/WebCore:

The feature "mapping attributes width and height to aspect ratio" currently is handled by RenderReplaced::computeIntrinsicRatioInformation.
However, per [1], the non-negative width and height attributes are expected to be used as a presentational hint for the aspect-ratio property.
This patch addes HTMLElement::applyAspectRatioFromWidthAndHeightAttributesToStyle to apply the attributes to m_presentationAttributeStyle.
Also this patch supports the feature for <video> and <input> with type="image".

[1] https://html.spec.whatwg.org/#map-to-the-aspect-ratio-property-(using-dimension-rules)

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::applyAspectRatioFromWidthAndHeightAttributesToStyle): Apply attributes width / height to aspectRatio of style if they aren't negative.

  • html/HTMLElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::collectStyleForPresentationAttribute): Use attributes width and height as a presentational hint for aspect-ratio.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::collectStyleForPresentationAttribute): If isImageButton(), collect attributes width and height as aspect-ratio of m_presentationAttributeStyle.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::collectStyleForPresentationAttribute): Ditto.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::computeIntrinsicRatioInformation const): The intrinsicRatio is logicalAspectRatio()
if error image is not showing alt text.
(WebCore::RenderImage::canMapWidthHeightToAspectRatio const): Deleted. Remove the legacy code.

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

(WebCore::RenderReplaced::computeIntrinsicRatioInformation const): Ditto.
(WebCore::RenderReplaced::intrinsicAspectRatioFromWidthHeight const): Deleted. Ditto.

  • rendering/RenderReplaced.h:

(WebCore::RenderReplaced::canMapWidthHeightToAspectRatio const): Deleted. Ditto.

9:13 PM Changeset in webkit [277996] by commit-queue@webkit.org
  • 3 edits
    4 deletes in trunk

Unreviewed, reverting r277867.
https://bugs.webkit.org/show_bug.cgi?id=226211

Causes problems playing YouTube videos

Reverted changeset:

"[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis'
appended to a SampleBuffer are not played"
https://bugs.webkit.org/show_bug.cgi?id=226069
https://trac.webkit.org/changeset/277867

8:59 PM Changeset in webkit [277995] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Stop using UncheckedLock in WTF::RecursiveLock
https://bugs.webkit.org/show_bug.cgi?id=226206

Reviewed by Sam Weinig.

Stop using UncheckedLock in WTF::RecursiveLock and use a regular Lock instead.
This is a step towards phasing out UncheckedLock.

Note that despite this change, RecursiveLock still doesn't benefit from
Clang thread safety analysis. Its functions do conditional locking / unlocking
which are not currently supported by analysis. Even if they were, we'd need
a template specialization for RecursiveLockAdapter<Lock> since
RecursiveLockAdapter may wrap other types of Lock which do not support analysis.

  • wtf/RecursiveLockAdapter.h:
8:36 PM Changeset in webkit [277994] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

DestinationColorSpace's well known color space accessors cause unnecessary retain count churn
https://bugs.webkit.org/show_bug.cgi?id=226160

Reviewed by Darin Adler.

While unlikely to be hot, we can avoid unnecessary retain count churn of
the well known color spaces on DestinationColorSpace by switching their
signature to return a const-reference and storing/returning a static instance.

  • platform/graphics/DestinationColorSpace.cpp:

(WebCore::knownColorSpace):
(WebCore::DestinationColorSpace::SRGB):
(WebCore::DestinationColorSpace::LinearSRGB):
(WebCore::DestinationColorSpace::DisplayP3):

  • platform/graphics/DestinationColorSpace.h:
8:23 PM Changeset in webkit [277993] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[GStreamer] Stop using UncheckedLock in VideoRenderRequestScheduler
https://bugs.webkit.org/show_bug.cgi?id=226192

Reviewed by Sam Weinig.

Stop using UncheckedLock in VideoRenderRequestScheduler to benefit from Clang thread safety
analysis.

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(VideoRenderRequestScheduler::start):
(VideoRenderRequestScheduler::stop):
(VideoRenderRequestScheduler::drain):
(VideoRenderRequestScheduler::requestRender):

8:16 PM Changeset in webkit [277992] by Chris Dumez
  • 2 edits in trunk/Tools

Stop using UncheckedLock in Condition API tests
https://bugs.webkit.org/show_bug.cgi?id=226198

Reviewed by Sam Weinig.

Stop using UncheckedLock in Condition API tests. This is a step towards phasing out UncheckedLock
in favor the Lock so that we can benefit from Clang Thread Safety Analysis.

  • TestWebKitAPI/Tests/WTF/Condition.cpp:
8:13 PM Changeset in webkit [277991] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[GLIB] Stop using UncheckedLock in IconDatabase
https://bugs.webkit.org/show_bug.cgi?id=226190

Reviewed by Sam Weinig.

Stop using UncheckedLock in IconDatabase to benefit from Clang thread-safety analysis.

  • UIProcess/API/glib/IconDatabase.h:
8:04 PM Changeset in webkit [277990] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[iOS] Adjust meaningful click heuristic to detect focus changes and editable content
https://bugs.webkit.org/show_bug.cgi?id=226199
rdar://78368624

Reviewed by Tim Horton.

Source/WebKit:

Fine tune the "meaningful click" heuristic by not dispatching a non-meaningful click message to the UI process
in the cases where the tap:

  • Causes the focused element to change.
  • Is over a form control or editable element.

Test: fast/events/ios/meaningful-click-when-focusing-body.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::completeSyntheticClick):

LayoutTests:

Add a layout test to exercise the change.

  • fast/events/ios/meaningful-click-when-focusing-body-expected.txt: Added.
  • fast/events/ios/meaningful-click-when-focusing-body.html: Added.
8:00 PM Changeset in webkit [277989] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Raise jitMemoryReservationSize for ftl-no-cjit-small-pool* tests.
https://bugs.webkit.org/show_bug.cgi?id=226205

Reviewed by Saam Barati.

Raise jitMemoryReservationSize for ftl-no-cjit-small-pool* tests from 50000 to

  1. The 50000 number was picked years ago to be a size that is small, but is

still large enough for JSC tests to pass. 50000 appears to not be sufficient
anymore. This has caused some JSC tests to fail intermittently on the EWS bots.

Raising the size to 75000 to give the tests a little more room to work in.

  • Scripts/run-jsc-stress-tests:
7:52 PM Changeset in webkit [277988] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

[iOS DnD] [WK2] don't cancel the long-press gesture until we know we have UIDragItem
https://bugs.webkit.org/show_bug.cgi?id=226188
<rdar://problem/77448503>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):
Instead of _cancelLongPressGestureRecognizer when first asked to get UIDragItem, only
call it once we actually have UIDragItem. This shouldn't change the behavior of r218812
as we're still _cancelLongPressGestureRecognizer before generating UITargetedDragPreview
or animating them (i.e. before the drag starts). This allows a synthetic click from a
long-press gesture to be dispatched in the case that drag gesture has no items.

7:33 PM Changeset in webkit [277987] by Chris Fleizach
  • 5 edits in trunk

AX: Fix build failure for WK API WTF::String usage
https://bugs.webkit.org/show_bug.cgi?id=226204
Source/WebKit:

Reviewed by Tim Horton.

Build fix for WTF string usage.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKAccessibilityTestingInjectPreference):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:

Tools:

<rdar://problem/78428840>

Reviewed by Tim Horton.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::injectAccessibilityPreference):

6:26 PM Changeset in webkit [277986] by weinig@apple.com
  • 173 edits
    2 copies
    1 add
    2 deletes in trunk

Convert DestinationColorSpace from an enum to class wrapping a platform color space (CGColorSpaceRef for CG ports, etc.)
https://bugs.webkit.org/show_bug.cgi?id=226143

Reviewed by Darin Adler.

Source/WebCore:

Replace enumeration based DestinationColorSpace with a struct wrapping
a platform color space (CGColorSpaceRef for CG ports, etc.). For ports
that don't have a platform level color space type, a builtin PlatformColorSpace
type is provided that is just the old enum renamed to PlatformColorSpace::Name.

The goal of this change is to unify the currently bifurcated concept of an
ImageBuffer's color space, which previosly could either be based on the
DestinationColorSpace (and reflected in the colorSpace() member function),
or (for CG ports) based on a CGColorSpaceRef, with the colorSpace() function
returning sRGB even if the ImageBuffer was not.

  • Headers.cmake:
  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::notifyFinished):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneDeserializer::readImageBitmap):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::copiedImage const):

  • html/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::drawPattern):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toMediaSample):
(WebCore::HTMLCanvasElement::createImageBuffer const):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createBufferForPainting const):

  • html/HTMLVideoElement.h:
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createImageBuffer):
(WebCore::ImageBitmap::createPromise):

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::colorSpace const):

  • html/canvas/CanvasRenderingContext.h:
  • html/canvas/CanvasRenderingContext2D.cpp:
  • html/canvas/ImageBitmapRenderingContext.cpp:

(WebCore::ImageBitmapRenderingContext::setOutputBitmap):

  • html/canvas/PredefinedColorSpace.cpp:

(WebCore::toDestinationColorSpace):
(WebCore::toPredefinedColorSpace):

  • html/canvas/PredefinedColorSpace.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):

  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):
(WebCore::InspectorCanvas::buildArrayForCanvasPattern):

  • page/Chrome.cpp:

(WebCore::Chrome::createImageBuffer const):

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::createImageBuffer const):

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRectWithClip):

  • page/PageColorSampler.cpp:

(WebCore::sampleColor):

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • platform/HostWindow.h:
  • platform/PlatformColorSpace.h: Added.

(WebCore::PlatformColorSpace::get const):

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

(WebCore::ScreenProperties::encode const):
(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):
(WebCore::BitmapImage::drawPattern):

  • platform/graphics/Color.cpp:

(WebCore::Color::toColorComponentsInColorSpace const):

  • platform/graphics/Color.h:
  • platform/graphics/ColorConversion.cpp:

(WebCore::converColorComponents):

  • platform/graphics/ColorConversion.h:
  • platform/graphics/ColorSpace.cpp:
  • platform/graphics/ColorSpace.h:
  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/DestinationColorSpace.cpp: Added.

(WebCore::DestinationColorSpace::SRGB):
(WebCore::DestinationColorSpace::LinearSRGB):
(WebCore::DestinationColorSpace::DisplayP3):
(WebCore::DestinationColorSpace::DestinationColorSpace):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::operator<<):

  • platform/graphics/DestinationColorSpace.h: Added.

(WebCore::DestinationColorSpace::platformColorSpace const):
(WebCore::DestinationColorSpace::encode const):
(WebCore::DestinationColorSpace::decode):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::drawPattern):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::clipToDrawingCommands):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::copyRectToBuffer):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::getPixelBuffer const):
(WebCore::ImageBufferBackend::putPixelBuffer):

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::transformColorSpace):
(WebCore::ImageBufferBackend::colorSpace const):

  • platform/graphics/PixelBuffer.h:

(WebCore::PixelBuffer::decode):

  • platform/graphics/PixelBufferConversion.cpp:

(WebCore::makeVImageCGImageFormat):

  • platform/graphics/PixelBufferFormat.h:

(WebCore::PixelBufferFormat::decode):

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::transferBGRAPixelBufferToIOSurface):
(WebCore::RemoteVideoSample::create):
(WebCore::RemoteVideoSample::RemoteVideoSample):
(WebCore::RemoteVideoSample::surface const):

  • platform/graphics/RemoteVideoSample.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::getScratchBuffer):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::blurShadowBuffer):
(WebCore::ShadowBlur::drawShadowLayer):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixelsForPaintResults):

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformColorSpace):

  • platform/graphics/cairo/ImageBufferCairoBackend.h:
  • platform/graphics/cg/ColorCG.cpp:

(WebCore::convertToCGCompatibleComponents):
(WebCore::createCGColor):
(WebCore::platformConvertColorComponents):

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedCGColorSpace): Deleted.

  • platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGLOpenGL::paintToCanvas):

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::surfaceMatchesParameters):
(WebCore::IOSurfacePool::takeSurface):

  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferCGBackend::copyCGImageForEncoding const):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::create):
(WebCore::ImageBufferCGBitmapBackend::copyNativeImage const):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::create):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/cg/ImageBufferUtilitiesCG.cpp:

(WebCore::encode):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::NativeImage::singlePixelSolidColor const):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::allocateAndBindDisplayBufferBacking):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::surfaceFromPool):
(WebCore::IOSurface::create):
(WebCore::IOSurface::createFromSendRight):
(WebCore::IOSurface::createFromSurface):
(WebCore::IOSurface::createFromImage):
(WebCore::IOSurface::createFromPixelBuffer):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::ensurePlatformContext):
(WebCore::IOSurface::migrateColorSpaceToProperties):

  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:

(WebCore::FilterEffectRendererCoreImage::renderToImageBuffer):

  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::createPixelBuffer):

  • platform/graphics/cv/PixelBufferConformerCV.cpp:

(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::create):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::destroy):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::BeginClipToDrawingCommands::BeginClipToDrawingCommands):
(WebCore::DisplayList::BeginClipToDrawingCommands::colorSpace const):
(WebCore::DisplayList::BeginClipToDrawingCommands::encode const):
(WebCore::DisplayList::BeginClipToDrawingCommands::decode):
(WebCore::DisplayList::GetPixelBuffer::GetPixelBuffer):
(WebCore::DisplayList::GetPixelBuffer::outputFormat const):
(WebCore::DisplayList::GetPixelBuffer::encode const):
(WebCore::DisplayList::GetPixelBuffer::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::clipToDrawingCommands):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::setResultColorSpace):

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::convertPixelBufferToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::copyConvertedImageBufferToDestination):
(WebCore::FilterEffect::copyConvertedPixelBufferToDestination):
(WebCore::FilterEffect::requiresPixelBufferColorSpaceConversion):
(WebCore::FilterEffect::transformResultColorSpace):

  • platform/graphics/filters/FilterEffect.h:

(WebCore::FilterEffect::operatingColorSpace const):
(WebCore::FilterEffect::setOperatingColorSpace):
(WebCore::FilterEffect::resultColorSpace const):
(WebCore::FilterEffect::setResultColorSpace):

  • platform/graphics/filters/SourceGraphic.h:

(WebCore::SourceGraphic::SourceGraphic):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenColorSpace):

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenColorSpace):
(WebCore::collectScreenProperties):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::collectScreenProperties):
(WebCore::screenColorSpace):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • platform/mediastream/mac/ScreenDisplayCapturerMac.mm:

(WebCore::ScreenDisplayCapturerMac::createDisplayStream):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::imageBuffer const):

  • platform/playstation/PlatformScreenPlayStation.cpp:

(WebCore::screenColorSpace):

  • platform/win/PlatformScreenWin.cpp:

(WebCore::screenColorSpace):

  • platform/wpe/PlatformScreenWPE.cpp:

(WebCore::screenColorSpace):

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::FrameData::LayerData::decode):

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::build):
(WebCore::CSSFilter::allocateBackingStoreIfNeeded):
(WebCore::CSSFilter::apply):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForDescription):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSystemPreviewBadge):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives const):
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage const):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):

  • rendering/svg/SVGRenderingContext.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::drawPatternForContainer):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

Source/WebCore/PAL:

  • pal/spi/cg/CoreGraphicsSPI.h:

Add addional SPI for working with CGColorSpaceRefs.

Source/WebKit:

  • Update ImageBuffer subclass signatures to use "const DestinationColorSpace&" to conform to the base class.
  • Replace ColorSpaceData with Optional<DestinationColorSpace>. No reason to have two types that are the same.
  • Give all ports a color space configuration for ShareableBitmap now that there is a common class for representing color space.
  • Update DisplayList decoding to account for BeginClipToDrawingCommands and GetPixelBuffer no longer being inlineable due to now having non-trivial destructors due to DestinationColorSpace member.
  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::Configuration::encode const):
(WebKit::ShareableBitmap::Configuration::decode):

  • Shared/ShareableBitmap.h:
  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::colorSpace):

  • Shared/mac/ColorSpaceData.h: Removed.
  • Shared/mac/ColorSpaceData.mm: Removed.
  • SourcesCocoa.txt:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

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

(WebKit::WebViewImpl::colorSpace):

  • UIProcess/PageClient.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::recursivelyMapIOSurfaceBackingStore):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::colorSpace):

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::colorSpace):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::configuration):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):

  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime):
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:

(WebKit::createShareableBitmap):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::convertDragImageToBitmap):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::setColorSpace):

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::snapshotOptionsToBitmapConfiguration):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::setColorSpace):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem):
Update for new DestinationColorSpace class.

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST):
Upate test to use new DestinationColorSpace type.

5:07 PM Changeset in webkit [277985] by stephan.szabo@sony.com
  • 2 edits in trunk/Tools

[PlayStation] Update scripts for JSC test changes
https://bugs.webkit.org/show_bug.cgi?id=226181

Reviewed by Ross Kirsling.

Update the scripts to pass the status file location and
unique test id into the runner for handling some crash
cases, and update the status command because the status
is written as a number in our case rather than being
the return type from executing the program directly.

  • Scripts/webkitruby/jsc-stress-test-writer-playstation.rb:
5:03 PM Changeset in webkit [277984] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

When running with --reportTotalPhaseTimes=1, we should also log the max time in a phase
https://bugs.webkit.org/show_bug.cgi?id=226196

Reviewed by Saam Barati.

It is especially useful when looking at DFG phases, since the GC may have to wait for them to finish.

  • tools/CompilerTimingScope.cpp:
4:47 PM Changeset in webkit [277983] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove deprecated API usage in PageClientImplMac
https://bugs.webkit.org/show_bug.cgi?id=226184

Patch by Dana Estra <destra@apple.com> on 2021-05-24
Reviewed by Devin Rousso.

Covered by existing tests.

  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):

4:44 PM Changeset in webkit [277982] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.15.1.10

Tag Safari-612.1.15.1.10.

4:43 PM Changeset in webkit [277981] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.15.0.6

Tag Safari-612.1.15.0.6.

4:43 PM Changeset in webkit [277980] by Alan Coon
  • 1 copy in tags/Safari-611.3.6.0.1

Tag Safari-611.3.6.0.1.

4:42 PM Changeset in webkit [277979] by Alan Coon
  • 1 copy in tags/Safari-611.3.6.1.1

Tag Safari-611.3.6.1.1.

4:36 PM Changeset in webkit [277978] by Alan Coon
  • 13 edits in branches/safari-611.3.6.1-branch/Source/bmalloc

Cherry-pick r277898. rdar://problem/78411705

[bmalloc] Rollout r276266 because WebKit processes are spending much more time in madvise
https://bugs.webkit.org/show_bug.cgi?id=226122

Unreviewed rollout.

Rolling out r276266 to do some automated testing. At the same time, we'll work on changing the madvise() decommitting to be more precise.

  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp: (bmalloc::Heap::scavenge): (bmalloc::Heap::scavengeToHighWatermark): (bmalloc::Heap::allocateSmallChunk): (bmalloc::Heap::allocateSmallPage): (bmalloc::Heap::allocateLarge):
  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h: (bmalloc::passedNumPages>::takeFirstEligible): (bmalloc::passedNumPages>::scavenge): (bmalloc::passedNumPages>::scavengeToHighWatermark):
  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h: (bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
  • bmalloc/LargeMap.cpp: (bmalloc::LargeMap::add):
  • bmalloc/LargeRange.h: (bmalloc::LargeRange::LargeRange): (bmalloc::merge):
  • bmalloc/Scavenger.cpp: (bmalloc::Scavenger::Scavenger): (bmalloc::Scavenger::timeSinceLastPartialScavenge): (bmalloc::Scavenger::scavenge): (bmalloc::Scavenger::partialScavenge): (bmalloc::Scavenger::threadRunLoop):
  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:

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

4:18 PM Changeset in webkit [277977] by Alan Coon
  • 13 edits in branches/safari-611.3.6.0-branch/Source

Cherry-pick r274746. rdar://78422238

Cannot login to microsoftonline.com without allowing storage access
https://bugs.webkit.org/show_bug.cgi?id=223510
<rdar://problem/75619058>

Reviewed by John Wilander.

Source/WebCore:

This patch introduces two changes:

  1. Activate the storage access quirks for default browsers only. This is the main place we test them, and can lead to unexpected behavior in apps otherwise.
  1. Doesn't cancel the click even if the user denies storage access. Previously we we were not allowing the click because it produces unexpected behavior. But, sites like login.microsoftonline.com are used by multiple Microsoft login flows. Since only a subset require storage access, canceling the click across the board could be considered regressing behavior.

Since storage access data is stored in the network process, we
currently cancel the user's click on quirked sites while we wait
asyncronously for the IPC response. If the user grants storage access,
we store this in the web content process and dispatch a synthetic
click. In this case, when the click triggers another storage access
check, we can allow the click because we no longer need to wait for
information from the network process.

We need some heuristic in the web content process to handle the case
of the user denying storage access to know whether to allow a
synthetic click to happen. This patch introduces
hasDeniedCrossPageStorageAccess which stores domains in the web
content process which have been denied storage access via quirk. If
a user has previously denied storage access in that web content
process, we don't prompt again. A new web content process will give them
another opportunity to allow/deny storage access.

  • dom/Element.cpp: (WebCore::Element::dispatchMouseEvent):
  • loader/FrameLoaderClient.h: Add a client function to check if the parent process is a full web browser, and pass this to the place we apply the quirks.
  • loader/ResourceLoadObserver.h: (WebCore::ResourceLoadObserver::setHasDeniedCrossPageStorageAccess): (WebCore::ResourceLoadObserver::hasDeniedCrossPageStorageAccess const):
  • page/Quirks.cpp: (WebCore::hasDeniedCrossPageStorageAccess): (WebCore::Quirks::requestStorageAccessAndHandleClick const): (WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
  • page/Quirks.h:

Source/WebKit:

Disable the storage access quirk for non-default web browsers and
don't cancel the login click on sites even if the user denies storage
access. See WebCore changelog for more details.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::isParentProcessAFullWebBrowser const):
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: (WebKit::WebResourceLoadObserver::hasDeniedCrossPageStorageAccess const): (WebKit::WebResourceLoadObserver::setHasDeniedCrossPageStorageAccess):
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::pageIsParentProcessAFullWebBrowser): (WebKit::WebPage::updatePreferences):
  • WebProcess/WebPage/WebPage.h:

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

4:14 PM Changeset in webkit [277976] by Alan Coon
  • 8 edits in branches/safari-611.3.6.0-branch/Source

Versioning.

WebKit-7611.3.6.0.1

3:39 PM Changeset in webkit [277975] by Alan Coon
  • 1 copy in branches/safari-611.3.6.0-branch

New branch.

3:34 PM Changeset in webkit [277974] by sbarati@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Allow CTI stubs to be generated off the main thread
https://bugs.webkit.org/show_bug.cgi?id=226180

Reviewed by Mark Lam.

We make this work by tracking if we're a compiler thread when generating
the CTI stub. If so, it means that the main thread needs to issue a
crossModifyingCodeFence when it's going to run the CTI stub for the first
time.

This patch also does away with pre-generating thunks. Thunks can now generate
other thunks while they're running. To do this, we make JITThunks lock a
recursive lock. The reason this is ok is that we don't have any recursive
thunks in the thunk graph. It's a DAG.

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • jit/JITOpcodes.cpp:

(JSC::JIT::op_check_traps_handlerGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::slow_op_put_to_scopeGenerator):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):
(JSC::JITThunks::ctiStubImpl):
(JSC::JITThunks::ctiStub):
(JSC::JITThunks::ctiSlowPathFunctionStub):
(JSC::JITThunks::existingCTIStub): Deleted.
(JSC::JITThunks::preinitializeCTIThunks): Deleted.

  • jit/JITThunks.h:
  • jit/SlowPathCall.cpp:

(JSC::JITSlowPathCall::generateThunk):

  • jit/ThunkGenerators.cpp:

(JSC::popThunkStackPreservesAndHandleExceptionGenerator):
(JSC::checkExceptionGenerator):
(JSC::virtualThunkFor):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::getCTIInternalFunctionTrampolineFor):

  • runtime/VM.h:
3:31 PM Changeset in webkit [277973] by Alan Coon
  • 8 edits in branches/safari-611.3.6.1-branch/Source

Versioning.

WebKit-7611.3.6.1.1

3:30 PM Changeset in webkit [277972] by Alan Bujtas
  • 34 edits in trunk/Source/WebCore

[LFC] Add support for geometry/quirks virtual functions
https://bugs.webkit.org/show_bug.cgi?id=226150

Reviewed by Antti Koivisto.

This enables us to override quirks/geometry functionality at the subclasses.

  • layout/formattingContexts/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::FormattingContext::geometry const): Deleted.
(WebCore::Layout::FormattingContext::quirks const): Deleted.

  • layout/formattingContexts/FormattingContext.h:
  • layout/formattingContexts/FormattingGeometry.cpp:

(WebCore::Layout::FormattingGeometry::computedHeightValue const):

  • layout/formattingContexts/FormattingGeometry.h:

(WebCore::Layout::FormattingGeometry::isBlockFormattingGeometry const):
(WebCore::Layout::FormattingGeometry::isInlineFormattingGeometry const):
(WebCore::Layout::FormattingGeometry::isFlexFormattingGeometry const):
(WebCore::Layout::FormattingGeometry::isTableFormattingGeometry const):

  • layout/formattingContexts/FormattingQuirks.cpp:

(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):

  • layout/formattingContexts/FormattingQuirks.h:

(WebCore::Layout::FormattingQuirks::isBlockFormattingQuirks const):
(WebCore::Layout::FormattingQuirks::isInlineFormattingQuirks const):
(WebCore::Layout::FormattingQuirks::isTableFormattingQuirks const):

  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::BlockFormattingContext):
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::BlockFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/block/BlockFormattingContext.h:

(WebCore::Layout::BlockFormattingContext::formattingState):
(WebCore::Layout::BlockFormattingContext::blockFormattingGeometry const):
(WebCore::Layout::BlockFormattingContext::blockFormattingQuirks const):

  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::inFlowContentHeightAndMargin const):

  • layout/formattingContexts/block/BlockFormattingGeometry.h:
  • layout/formattingContexts/block/BlockFormattingQuirks.cpp:

(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeightIfApplicable const):

  • layout/formattingContexts/block/BlockFormattingQuirks.h:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::TableWrapperBlockFormattingContext):
(WebCore::Layout::TableWrapperBlockFormattingContext::layoutTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeBorderAndPaddingForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:

(WebCore::Layout::TableWrapperQuirks::overriddenTableHeight const):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.h:
  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::FlexFormattingContext):
(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):
(WebCore::Layout::FlexFormattingContext::computeIntrinsicWidthConstraintsForFlexItems):
(WebCore::Layout::FlexFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/flex/FlexFormattingContext.h:
  • layout/formattingContexts/flex/FlexFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
(WebCore::Layout::InlineFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
(WebCore::Layout::InlineFormattingGeometry::lineBoxForLineContent const):
(WebCore::Layout::InlineFormattingGeometry::inlineLevelBoxAffectsLineBox const):
(WebCore::Layout::InlineFormattingGeometry::lineBoxForLineContent): Deleted.

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingQuirks.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::TableFormattingContext):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::layoutCell):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraSpace):
(WebCore::Layout::TableFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/table/TableFormattingContext.h:
  • layout/formattingContexts/table/TableFormattingGeometry.h:
  • layout/formattingContexts/table/TableFormattingQuirks.h:
  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

3:27 PM Changeset in webkit [277971] by Chris Fleizach
  • 16 edits
    3 adds in trunk

AX: Settings: Increase contrast isn't detected in browser until an additional setting is applied
https://bugs.webkit.org/show_bug.cgi?id=225909

Reviewed by Per Arne Vollan.

Source/WebCore/PAL:

  • pal/spi/mac/HIServicesSPI.h:

Source/WebKit:

Tests: accessibility/mac/media-query-values-change.html

1) WebContent blocks access to distributed notification center, so we can't rely on that to re-post notifications
2) AppKit caches the values of these AX settings, so we need to invalidate that cache directly

  • Platform/spi/mac/AppKitSPI.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKAccessibilityTestingInjectPreference):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::invertColorsPreferenceKey):
(WebKit::dispatchSimulatedNotificationsForPreferenceChange):
(WebKit::setPreferenceValue):
(WebKit::reduceMotionPreferenceKey): Deleted.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::injectAccessibilityPreference):

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::injectAccessibilityPreference):

LayoutTests:

  • accessibility/mac/media-query-values-change-expected.txt: Added.
  • accessibility/mac/media-query-values-change.html: Added.
3:24 PM Changeset in webkit [277970] by Cameron McCormack
  • 21 edits
    13 copies
    13 adds
    1 delete in trunk/LayoutTests

Add missing operators.woff that a few WPTs reference.
https://bugs.webkit.org/show_bug.cgi?id=225586
<rdar://77527890>

Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

  • web-platform-tests/fonts/math/operators.woff: Added.
  • web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt:
  • platform/mac-catalina-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt:
  • platform/mac/TestExpectations:
3:15 PM Changeset in webkit [277969] by Alan Coon
  • 1 copy in branches/safari-611.3.6.1-branch

New branch.

3:11 PM Changeset in webkit [277968] by Alan Coon
  • 1 copy in tags/Safari-611.3.6

Tag Safari-611.3.6.

2:51 PM Changeset in webkit [277967] by Darin Adler
  • 163 edits in trunk

Remove StringBuilder::appendLiteral
https://bugs.webkit.org/show_bug.cgi?id=226137

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • API/tests/PingPongStackOverflowTest.cpp:

(PingPongStackOverflowObject_hasInstance): Use append instead of appendLiteral.

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptCallArgumentHandler::appendArgument): Remove unnecessary cast
from const char* to String, which defeats optimization and has no benefit.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::toString const): Use append instead of appendLiteral.
(JSC::RestParameterNode::toString const): Ditto.

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::json): Use append instead of appendLiteral.
Removed unnecesary use of appendQuotedJSONString to append the result of
snapshotTypeToString and edgeTypeToString, which return a const char* that
never contains characters that require special quoting consideration, so
can be appended efficiently with the normal append function.

  • inspector/agents/InspectorAuditAgent.cpp:

(Inspector::InspectorAuditAgent::run): Use makeString instead of StringBuilder.

  • inspector/agents/InspectorConsoleAgent.cpp: Use auto for the result of makeString.
  • jsc.cpp: Use appned instead of appendLiteral.
  • parser/ParserArena.cpp:

(JSC::IdentifierArena::makePrivateIdentifier): Use auto for the result of makeString.

  • runtime/ConsoleClient.cpp:

(JSC::ConsoleClient::printConsoleMessage): Use append instead of appendLiteral.
Also use variadic append when practical for better efficiency.
(JSC::ConsoleClient::printConsoleMessageWithArguments): Ditto.

  • runtime/DateConversion.cpp:

(JSC::formatDateTime): Ditto.

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::sanitizedToString): Use makeString instead of StringBuilder.

  • runtime/ExceptionHelpers.cpp:

(JSC::notAFunctionSourceAppender): Use append instead of appendLiteral.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat): Ditto.

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat): Ditto.

  • runtime/JSCustomGetterFunction.cpp:

(JSC::JSCustomGetterFunction::create): Use auto and cut down on reference count
churn by using passing the StringImpl to makeString.

  • runtime/JSCustomSetterFunction.cpp:

(JSC::JSCustomSetterFunction::create): Ditto.

  • runtime/JSGlobalObjectFunctions.cpp: Use more const and use variadic

append for better efficiency.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue): Use append instead of appendLiteral.
(JSC::Stringifier::Holder::appendNextProperty): Ditto.

  • runtime/JSStringJoiner.h: Deleted unused appendLiteral function.

Unrelated to StringBuilder::appendLiteral, but dead code.

  • runtime/Options.cpp:

(JSC::Options::dumpOption): Use append instead of appendLiteral.

  • runtime/RegExpPrototype.cpp:

(JSC::appendLineTerminatorEscape<UChar>): Ditto.

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::reportTopFunctions): Use auto for the result of makeString.
(JSC::SamplingProfiler::reportTopBytecodes): Ditto.

  • runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::typeInformationForExpressionAtOffset): Use append instead of
appendLiteral.

  • runtime/TypeSet.cpp:

(JSC::TypeSet::dumpTypes const): Use append instead of appendLiteral.
(JSC::TypeSet::toJSONString const): Ditto.
(JSC::StructureShape::propertyHash): Ditto.
(JSC::StructureShape::toJSONString const): Ditto.

Source/WebCore:

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::packageFormData): Use auto for the result of makeString.

  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::loggingString const): Use append instead
of appendLiteral.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord): Use auto
for the result of makeString.

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::buildPreIndexStatement): Use makeString
instead of StringBuilder.
(WebCore::IDBServer::buildIndexStatement): Ditto.
(WebCore::IDBServer::buildObjectStoreStatement): Ditto.

  • Modules/websockets/WebSocket.cpp:

(WebCore::encodeProtocolString): Use append instead of appendLiteral.

  • Modules/websockets/WebSocketExtensionDispatcher.cpp:

(WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension): Ditto.

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clientHandshakeMessage const): Use
makeString instead of StringBuilder.
(WebCore::WebSocketHandshake::clientHandshakeRequest const): Tweak
to match the function above more closely, and use ASCIILiteral.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(formatForDebugger): Use makeString instead of StringBuilder.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::prefixTreeVertexToString): Use
append instead of appendLiteral.

  • css/CSSBasicShapes.cpp:

(WebCore::buildCircleString): Ditto.
(WebCore::buildEllipseString): Ditto.
(WebCore::buildPathString): Ditto.
(WebCore::buildPolygonString): Ditto.
(WebCore::buildInsetString): Ditto.

  • css/CSSGradientValue.cpp:

(WebCore::CSSLinearGradientValue::customCSSText const): Ditto.
(WebCore::CSSRadialGradientValue::customCSSText const): Ditto.
(WebCore::CSSConicGradientValue::customCSSText const): Ditto.

  • css/CSSGridIntegerRepeatValue.cpp:

(WebCore::CSSGridIntegerRepeatValue::customCSSText const):
Use makeString instead of StringBuilder.

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::customCSSText const): Use append
instead of appendLiteral.

  • css/CSSImportRule.cpp:

(WebCore::CSSImportRule::cssText const): Use makeString instead
of StringBuilder.

  • css/CSSKeyframeRule.cpp:

(WebCore::StyleRuleKeyframe::cssText const): Ditto.

  • css/CSSKeyframesRule.cpp:

(WebCore::CSSKeyframesRule::cssText const): Use variadic append.

  • css/CSSLineBoxContainValue.cpp:

(WebCore::CSSLineBoxContainValue::customCSSText const): Use
append instead of appendLiteral.

  • css/CSSNamespaceRule.cpp:

(WebCore::CSSNamespaceRule::cssText const): Ditto.

  • css/CSSPageRule.cpp:

(WebCore::CSSPageRule::cssText const): Use makeString instead of
StringBuilder.

  • css/CSSPaintImageValue.cpp:

(WebCore::CSSPaintImageValue::customCSSText const): Ditto.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
Use append instead of appendLiteral.

  • css/CSSSelector.cpp:

(WebCore::appendLangArgumentList): Use variadic append.
(WebCore::CSSSelector::selectorText const): Ditto. Also use
append instead of appendLiteral and make some improvements to
cut down on allocations a little.

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::buildSelectorsText const): Use
append instead of appendLiteral.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::CSSStyleSheet): Moved more of the
data member initialization to the class definition.
(WebCore::CSSStyleSheet::addRule): Use makeString instead of
StringBuilder.

  • css/CSSStyleSheet.h: Moved initialization here.
  • css/CSSTimingFunctionValue.cpp:

(WebCore::CSSStepsTimingFunctionValue::customCSSText const):
Use makeString instead of StringBuilder.
(WebCore::CSSSpringTimingFunctionValue::customCSSText const):
Ditto.

  • css/MediaList.cpp:

(WebCore::MediaQuerySet::mediaText const): Use append instead
of appendLiteral.

  • css/MediaQuery.cpp:

(WebCore::MediaQuery::serialize const): Ditto.

  • css/MediaQueryExpression.cpp:

(WebCore::MediaQueryExpression::serialize const): Use makeString
instead of StringBuilder.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getLayeredShorthandValue const):
Use append instead of appendLiteral.

  • css/parser/CSSParserToken.cpp:

(WebCore::CSSParserToken::serialize const): Removed a lot of
unnecessary braces. Use variadic append and append instead of appendLiteral.

  • dom/Document.cpp:

(WebCore::Document::initSecurityContext): Use auto for the result
of makeString.

  • dom/Element.cpp:

(WebCore::appendAttributes): Use variadic append and append
instead of appendLiteral.

  • dom/SecurityContext.cpp:

(WebCore::SecurityContext::parseSandboxPolicy): Ditto.

  • editing/HTMLInterchange.cpp:

(WebCore::convertHTMLTextToInterchangeFormat): Ditto.

  • editing/TextIterator.cpp:

(WebCore::createSearcher): Use auto for the result of makeString.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
Use append instead of appendLiteral.
(WebCore::StyledMarkupAccumulator::appendStartTag): Ditto.
(WebCore::urlToMarkup): Ditto.

  • html/FormController.cpp:

(WebCore::recordFormStructure): Ditto.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::reportValidity): Use auto for
the result of makeString.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::validateInteractively): Ditto.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::completeURLsInAttributeValue const):
Use append insteaed of appendLiteral.

  • html/MediaElementSession.cpp:

(WebCore::restrictionNames): Use auto for the result of makeString.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getUniformLocation): Ditto.

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemaining): Ditto.

  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::buildConsoleError): Use makeString instead of StringBuilder.

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::rebuildDisplayTree): Ditto.

  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::expressionForEvaluatingCommand): Use append instead of appendLiteral.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawElementTitle): Use auto for the result of makeString.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::addRule): Use append instead of appendLiteral.

  • inspector/agents/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
Use makeString instead of StringBuilder.

  • inspector/agents/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::didReceiveResponse): Use auto for the result of makeString.
(WebCore::WebConsoleAgent::didFailLoading): Ditto.

  • loader/MixedContentChecker.cpp:

(WebCore::logWarning): Ditto
(WebCore::MixedContentChecker::checkFormForMixedContent): Ditto

  • loader/PrivateClickMeasurement.cpp:

(WebCore::makeValidURL): Added. Used for various cases below that all construct
URLs in the same way with the same kinds of checks. Use makeString here instead
of StringBuilder.
(WebCore::attributionReportURL): Call makeValidURL.
(WebCore::PrivateClickMeasurement::tokenSignatureURL const): Ditto.
(WebCore::PrivateClickMeasurement::tokenPublicKeyURL const): Ditto.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::appendBoolean): Use append instead of appendLiteral.
(WebCore::appendHashSet): Ditto.
(WebCore::appendNavigatorAPIOptionSet): Ditto.
(WebCore::appendScreenAPIOptionSet): Ditto.
(WebCore::ResourceLoadStatistics::toString const): Ditto.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::loadResourceSynchronously): Use auto for
the result of makeString.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage): Ditto.

  • page/Frame.cpp:

(WebCore::createRegExpForLabels): Use append instead of appendLiteral.
Also tweak coding style a bit.

  • page/FrameView.cpp:

(WebCore::FrameView::logMockScrollAnimatorMessage const): Use makeString
instead of StringBuilder.

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator::appendStartTag):
Use append instead of appendLiteral.
(WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
(WebCore::PageSerializer::urlForBlankFrame): Use auto for the result of
makeString.

  • page/PerformanceLoggingClient.cpp:

(WebCore::PerformanceLoggingClient::synchronousScrollingReasonsAsString):
Use makeString instead of StringBuilder.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::ResourceUsageOverlay::platformDraw): Use auto for the result of
makeString.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::consoleMessageForViolation): Use makeString instsead of StringBuilder.
(WebCore::ContentSecurityPolicy::allowRunningOrDisplayingInsecureContent): Ditto.
(WebCore::ContentSecurityPolicy::reportInvalidDirectiveValueCharacter const):
Get rid of local variable for result of makeString.
(WebCore::ContentSecurityPolicy::reportInvalidPathCharacter const): Ditto.
(WebCore::ContentSecurityPolicy::reportInvalidSourceExpression const): Ditto.

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::create): Get rid of local
variable for result of makeString.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
Use makeString instead of StringBulder.

  • platform/Decimal.cpp:

(WebCore::Decimal::toString const): Use append instead of appendLiteral.

  • platform/animation/TimingFunction.cpp:

(WebCore::TimingFunction::createFromCSSText): Use makeString instead
of StringBuilder.

  • platform/audio/HRTFElevation.cpp:

(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation): Use auto
for the result of makeString.

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString): Use append instead of appendLiteral.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Use
append instead of appendLiteral.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges): Got rid of local
variable for result of makeString.
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Use auto
for result of makeString.

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::tileRevalidationTimerFired): Update to
use OptionSet.

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::validationPolicyAsString): Use OptionSet.
(WebCore::TileGrid::setNeedsDisplayInRect): Use auto for iterator
and range-based for loop.
(WebCore::TileGrid::updateTileLayerProperties): Ditto.
(WebCore::TileGrid::blankPixelCount const): Ditto.
(WebCore::TileGrid::removeTiles): Use HashCountedSet.
(WebCore::TileGrid::revalidateTiles): Use OptionSet.
(WebCore::TileGrid::retainedTileBackingStoreMemory const): Use
ranged-based for loop.
(WebCore::TileGrid::drawTileMapContents const): Use range-based
for loop and use writeIntegerToBuffer instead of String::number.
(WebCore::TileGrid::platformCALayerRepaintCount const): Use
HashCountedSet.
(WebCore::TileGrid::platformCALayerIncrementRepaintCount): Ditto.
This cuts us down from 3 hash table lookups to 1.
(WebCore::TileGrid::removeUnparentedTilesNow): Removed local
variable to make code a little tighter.

  • platform/graphics/ca/TileGrid.h: Use OptionSet and HashCountedSet.

Removed some type names.

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:

(WebCore::PlatformCAFilters::setFiltersOnLayer): Use auto for
reuslt of makeString.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText): Ditto.

  • platform/mock/ScrollAnimatorMock.cpp:

(WebCore::ScrollAnimatorMock::scrollbarPrefix const): Added
helper function for use below.
(WebCore::ScrollAnimatorMock::mouseEnteredScrollbar const): Use
makeString instead of StringBuilder.
(WebCore::ScrollAnimatorMock::mouseExitedScrollbar const): Ditto.
(WebCore::ScrollAnimatorMock::mouseIsDownInScrollbar const): Ditto.

  • platform/mock/ScrollAnimatorMock.h: Ditto.
  • platform/network/ProxyServer.cpp:

(WebCore::appendProxyServerString): Use append instead of appendLiteral.
(WebCore::toString): Ditto.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeSuggestedFilename): Get rid
of local variable with result of maekString in it.

  • platform/playstation/UserAgentPlayStation.cpp:

(WebCore::platformForUAString): Deleted. No need for a global variable
to hold the result of something called only once.
(WebCore::platformVersionForUAString): Ditto.
(WebCore::buildUserAgentString): Deleted.
(WebCore::standardUserAgentStatic): Moved the logic from buildUserAgentString
here, using makeString instead of StringBuilder.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open): Use auto for result of makeString.

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::deleteDatabaseFile): Ditto.

  • platform/text/DateTimeFormat.cpp:

(WebCore::DateTimeFormat::quoteAndAppendLiteral): Use append instead
of appendLiteral and StringView::substring instead of String::substring.

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::replaceNewlinesWithWindowsStyleNewlines): Use append
instead of appendLiteral.

  • platform/win/UserAgentWin.cpp:

(WebCore::standardUserAgent): Use makeString instead of StringBuildeer.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::name const): Ditto.
(WebCore::RenderLayer::debugDescription const): Ditto.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo): Use append instead of
appendLiteral.

  • rendering/RenderTreeAsText.cpp:

(WebCore::quoteAndEscapeNonPrintables): Ditto.
(WebCore::nodePosition): Ditto.

  • svg/SVGPathStringBuilder.cpp:

(WebCore::SVGPathStringBuilder::moveTo): Ditto.
(WebCore::SVGPathStringBuilder::lineTo): Ditto.
(WebCore::SVGPathStringBuilder::lineToHorizontal): Ditto.
(WebCore::SVGPathStringBuilder::lineToVertical): Ditto.
(WebCore::SVGPathStringBuilder::curveToCubic): Ditto.
(WebCore::SVGPathStringBuilder::curveToCubicSmooth): Ditto.
(WebCore::SVGPathStringBuilder::curveToQuadratic): Ditto.
(WebCore::SVGPathStringBuilder::curveToQuadraticSmooth): Ditto.
(WebCore::SVGPathStringBuilder::arcTo): Ditto.
(WebCore::SVGPathStringBuilder::closePath): Ditto.

  • testing/Internals.cpp:

(WebCore::Internals::dumpMarkerRects): Ditto.
(WebCore::appendOffsets):
(WebCore::Internals::scrollSnapOffsets): Ditto.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::validateWorkerResponse): Use auto
for reuslt of makeString.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ensureAndMakeDomainList): Use append
instead of appendLiteral.
(WebKit::domainsToString): Ditto.
(WebKit::buildList): Ditto.
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources): Ditto.
(WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics): Ditto.
(WebKit::appendBoolean): Ditto.
(WebKit::appendNextEntry): Ditto.
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const): Ditto.
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const): Ditto.
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString): Ditto.
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString): Ditto.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::dumpResourceLoadStatistics): Ditto.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: Ditto.

(WebKit::domainsToString): Ditto.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::create): Moved this here from the header.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyDataForSpecificFirstParty::toString const): Ditto.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyDataForSpecificFirstParty::encode const): Ditto.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyDataForSpecificFirstParty::decode): Ditto.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyDataForSpecificFirstParty::operator== const): Ditto.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyData::toString const): Ditto.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyData::encode const): Ditto.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyData::decode): Ditto.
(WebKit::WebResourceLoadStatisticsStore::ThirdPartyData::operator< const): Ditto.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: Moved member

functions of the nested structures into the implementation file and fixed
the indentation of the structures to indicate the nesting.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::continueCheckingRequest): Do not use a local
variable for the reuslt of makeString.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::newTestingSession): Ditto.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::dumpContentsToFile): Use append instead of appendLiteral

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::asJSON const): Ditto.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::makeVersionedDirectoryPath): Do not use a local variable for
the result of makeString.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::buildAcceptLanguages): Use append instead of appendLiteral.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::acceptedExtensions const): Ditto.

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::registerMDNSName): Use auto for the result of makeString.

  • Shared/WebMemorySampler.cpp:

(WebKit::WebMemorySampler::writeHeaders): Ditto.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeSandboxParameters): Do not use a local variable for the result of
makeString. Also, take advantage of the support for concatenating an NSString instead
of converting it to a WTF::String.

  • Shared/mac/WebMemorySampler.mac.mm:

(WebKit::WebMemorySampler::sampleWebKit const): Use ASCIILiteral and remove explicit
conversion to String.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewRunJavaScriptCallback): Use append instead of appendLiteral.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::fileCanBeAcceptedForUpload): Use auto for result of makeString.

  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: Use makeString instead of

StringBuilder.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::requestStorageSpace): Use auto for result of makeString.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::loggingString): Use append instead of appendLiteral.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching): Use auto for result of makeString.
(WebKit::WebProcessPool::startMemorySampler): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::dumpHistoryItem): Use append instead of appendLiteral.
(WebKit::WebPage::getContentsAsString): Ditto.

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::switchToNewTestingSession): Do not use local
for return value of makeString.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLRepresentation.mm:

(regExpForLabels): Use append instead of appendLiteral.
Also imrpove local variable names a bit.

Source/WebKitLegacy/win:

  • AccessibleBase.cpp:

(AccessibleBase::get_accKeyboardShortcut): Use append instead of appnedLiteral.

  • WebView.cpp: Ditto.

Source/WTF:

The optimization done by appendLiteral has minimal value and is something we
can do without. It does not cut down the number of allocations, which is the
main cost of the StringBuilder class. Getting rid of the differently named
appendLiteral improves the design of the StringBuilder class for callers.
Our goal is to get as close as possible to a single append function.

If we decide we need an optimization for literals, we can come up with a
different way that is compatible with append. For example, we could assume
that any char array is a literal and check that at compile time in
StringConcatenate; that optimization would work for both makeString and
StringBuilder. Or we could use a strategy like ASCIILiteral.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::encodeForFileName): Streamline logic,
and use variadic append to make this more efficient.

  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::escapeString): Use append instead
of appendLiteral.
(WTF::JSONImpl::Value::writeJSON const): Ditto.

  • wtf/Logger.h:

(WTF::Logger::log): Use auto for result of makeString.
(WTF::Logger::logVerbose): Ditto.

  • wtf/MediaTime.cpp:

(WTF::MediaTime::toString const): Use makeString instead of StringBuilder.

  • wtf/text/IntegerToStringConversion.h:

Made lengthOfIntegerAsString a constexpr function so we can use it to
compute the required size of arrays for conversion. Added using for both
lengthOfIntegerAsString and writeIntegerToBuffer so we can use them without
the WTF prefix as is customary for functions in WTF.

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::appendLiteral): Deleted.

  • wtf/text/StringConcatenate.h: Added support for appending StringImpl&,

StringImpl*, AtomStringImpl&, and AtomStringImpl*.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

Use append instead of appendLiteral.

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:

(TestWebKitAPI::createCommand): Use makeString instead of StringBuilder.

  • TestWebKitAPI/Tests/WebCore/Logging.cpp:

(TestWebKitAPI::TEST_F): Made lots of fixes to code inside #if TEST_OUTPUT,
which hasn't compiled in a long time. Still not 100% there, but closer.

  • TestWebKitAPI/Tests/WebCore/TextCodec.cpp:

(TestWebKitAPI::testDecode): Use append instead of appendLiteral.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::helpText const): Ditto.

2:44 PM Changeset in webkit [277966] by Jonathan Bedard
  • 1 edit
    12 deletes in trunk/LayoutTests

[LayoutTests] Delete unused jquery resources
https://bugs.webkit.org/show_bug.cgi?id=226043
<rdar://problem/78277881>

Reviewed by Dewei Zhu.

  • jquery/resources/src/intro.js: Removed.
  • jquery/resources/src/outro.js: Removed.
  • jquery/resources/src/selector.js: Removed.
  • jquery/resources/test/csp.php: Removed.
  • jquery/resources/test/data/readywaitasset.js: Removed.
  • jquery/resources/test/data/readywaitloader.js: Removed.
  • jquery/resources/test/delegatetest.html: Removed.
  • jquery/resources/test/localfile.html: Removed.
  • jquery/resources/test/networkerror.html: Removed.
  • jquery/resources/test/polluted.php: Removed.
  • jquery/resources/test/readywait.html: Removed.
  • jquery/resources/test/xhtml.php: Removed.
2:05 PM Changeset in webkit [277965] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using UncheckedLock in ShadowBlur's ScratchBuffer
https://bugs.webkit.org/show_bug.cgi?id=226183

Reviewed by Simon Fraser.

Stop using UncheckedLock in ShadowBlur's ScratchBuffer to benefit from Clang
Thread Safety Analysis. Note that I had to factor the code a bit differently
because analysis doesn't support conditionally held locks. I could have also
used WTF_IGNORES_THREAD_SAFETY_ANALYSIS but I think it is better to factor
the code so that we do get the validation.

  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::WTF_REQUIRES_LOCK):
(WebCore::ScratchBuffer::WTF_RETURNS_LOCK):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawRectShadowWithTilingWithLayerImageBuffer):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTilingWithLayerImageBuffer):

  • platform/graphics/ShadowBlur.h:
1:11 PM Changeset in webkit [277964] by Chris Gambrell
  • 17 edits in trunk/LayoutTests

[LayoutTests] Remove straggling PHP references
https://bugs.webkit.org/show_bug.cgi?id=226179
<rdar://problem/78407224>

Reviewed by Jonathan Bedard.

  • http/tests/blink/sendbeacon/beacon-cross-origin-redirect-blob-expected.txt:
  • http/tests/blink/sendbeacon/beacon-cross-origin-redirect-blob.html:
  • http/tests/blink/sendbeacon/beacon-cross-origin-redirect-expected.txt:
  • http/tests/blink/sendbeacon/beacon-cross-origin-redirect.html:
  • http/tests/eventsource/eventsource-events-after-close.html:
  • http/tests/images/avif-partial-load-crash.html:
  • http/tests/inspector/css/bad-mime-type-expected.txt:
  • http/tests/inspector/css/bad-mime-type.html:
  • http/tests/loading/resources/post-in-iframe-with-back-navigation-page-2.py:
  • http/tests/media/resources/serve_video.py:
  • http/tests/navigation/redirect-to-fragment2-expected.txt:
  • http/tests/navigation/slow-loading-page-with-slow-script.py:
  • http/tests/security/contentSecurityPolicy/resources/worker.py:
  • http/tests/security/xssAuditor/resources/echo-intertag.pl:
  • http/tests/workers/service/basic-register-exceptions-expected.txt:
  • http/tests/workers/service/resources/basic-register-exceptions.js:
12:29 PM Changeset in webkit [277963] by keith_miller@apple.com
  • 6 edits in trunk/Source

Unreviewed, revert r276610 because it causes a 1% PLT regression.

Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::JITData::size const): Deleted.

  • bytecode/CodeBlock.h:
  • jit/JITCodeMap.h:

(JSC::JITCodeMap::memorySize const): Deleted.

Source/WTF:

  • wtf/Bag.h:
11:58 AM Changeset in webkit [277962] by Ruben Turcios
  • 13 edits in branches/safari-612.1.15.1-branch/Source/bmalloc

Cherry-pick r277898. rdar://problem/78411755

[bmalloc] Rollout r276266 because WebKit processes are spending much more time in madvise
https://bugs.webkit.org/show_bug.cgi?id=226122

Unreviewed rollout.

Rolling out r276266 to do some automated testing. At the same time, we'll work on changing the madvise() decommitting to be more precise.

  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp: (bmalloc::Heap::scavenge): (bmalloc::Heap::scavengeToHighWatermark): (bmalloc::Heap::allocateSmallChunk): (bmalloc::Heap::allocateSmallPage): (bmalloc::Heap::allocateLarge):
  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h: (bmalloc::passedNumPages>::takeFirstEligible): (bmalloc::passedNumPages>::scavenge): (bmalloc::passedNumPages>::scavengeToHighWatermark):
  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h: (bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
  • bmalloc/LargeMap.cpp: (bmalloc::LargeMap::add):
  • bmalloc/LargeRange.h: (bmalloc::LargeRange::LargeRange): (bmalloc::merge):
  • bmalloc/Scavenger.cpp: (bmalloc::Scavenger::Scavenger): (bmalloc::Scavenger::timeSinceLastPartialScavenge): (bmalloc::Scavenger::scavenge): (bmalloc::Scavenger::partialScavenge): (bmalloc::Scavenger::threadRunLoop):
  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:

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

11:54 AM Changeset in webkit [277961] by commit-queue@webkit.org
  • 173 edits
    2 copies
    3 deletes in trunk

Unreviewed, reverting r277940.
https://bugs.webkit.org/show_bug.cgi?id=226182

Caused Safari crash under IPC::typeFromCFTypeRef

Reverted changeset:

"Convert DestinationColorSpace from an enum to class wrapping
a platform color space (CGColorSpaceRef for CG ports, etc.)"
https://bugs.webkit.org/show_bug.cgi?id=226143
https://trac.webkit.org/changeset/277940

11:52 AM Changeset in webkit [277960] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r277177. rdar://problem/78411433

AudioWorkletProcessor which does not extend base class crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=225449
<rdar://problem/77624792>

Reviewed by Sam Weinig.

Update AudioWorkletGlobalScope::createProcessor() to validate the type of the processor
after constructing it.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp: (WebCore::AudioWorkletGlobalScope::createProcessor):

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

11:50 AM Changeset in webkit [277959] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.3.6

11:29 AM Changeset in webkit [277958] by Chris Dumez
  • 167 edits
    4 deletes in trunk

Drop CheckedLock / CheckedCondition aliases
https://bugs.webkit.org/show_bug.cgi?id=226176

Reviewed by Kate Cheney.

Drop CheckedLock / CheckedCondition aliases now that they are the default.

Source/JavaScriptCore:

  • API/JSVirtualMachine.mm:
  • API/glib/JSCVirtualMachine.cpp:
  • assembler/PerfLog.h:
  • assembler/testmasm.cpp:
  • bytecode/StructureStubInfo.h:
  • bytecode/SuperSampler.cpp:
  • dfg/DFGCommon.cpp:
  • dfg/DFGCommonData.cpp:
  • dfg/DFGPlan.h:
  • dfg/DFGThreadData.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::Worklist):

  • dfg/DFGWorklist.h:
  • disassembler/Disassembler.cpp:
  • dynbench.cpp:
  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::parallelNotEmptyBlockSource):

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::bitvectorLock):

  • heap/CodeBlockSet.h:

(JSC::CodeBlockSet::getLock):

  • heap/Heap.cpp:

(JSC::Heap::Heap):

  • heap/Heap.h:
  • heap/IsoSubspacePerVM.h:
  • heap/MarkedSpace.h:

(JSC::MarkedSpace::directoryLock):

  • heap/MarkingConstraintSolver.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::donateKnownParallel):

  • heap/SlotVisitor.h:
  • inspector/remote/socket/RemoteInspectorConnectionClient.h:
  • inspector/remote/socket/RemoteInspectorSocketEndpoint.h:
  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::getLock const):
(JSC::dumpJITMemory):

  • jit/ExecutableAllocator.h:

(JSC::ExecutableAllocatorBase::getLock const):

  • jit/JITWorklist.cpp:

(JSC::JITWorklist::JITWorklist):

  • jit/JITWorklist.h:
  • jsc.cpp:
  • profiler/ProfilerDatabase.h:
  • runtime/ConcurrentJSLock.h:
  • runtime/DeferredWorkTimer.h:
  • runtime/JSLock.h:
  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::FrameWalker):
(JSC::CFrameWalker::CFrameWalker):
(JSC::SamplingProfiler::takeSample):

  • runtime/SamplingProfiler.h:

(JSC::SamplingProfiler::getLock):

  • runtime/VM.h:
  • runtime/VMTraps.cpp:

(JSC::VMTraps::invalidateCodeBlocksOnStack):
(JSC::VMTraps::VMTraps):

  • runtime/VMTraps.h:
  • tools/FunctionOverrides.h:
  • tools/VMInspector.cpp:

(JSC::ensureIsSafeToLock):

  • tools/VMInspector.h:

(JSC::VMInspector::getLock):

  • wasm/WasmCalleeRegistry.h:

(JSC::Wasm::CalleeRegistry::getLock):

  • wasm/WasmPlan.h:
  • wasm/WasmStreamingCompiler.h:
  • wasm/WasmThunks.h:
  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::Worklist):

  • wasm/WasmWorklist.h:

Source/WebCore:

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/server/IDBSerializationContext.cpp:
  • Modules/indexeddb/server/IDBServer.cpp:
  • Modules/mediastream/RTCDataChannel.cpp:
  • Modules/mediastream/RTCRtpSFrameTransformer.h:
  • Modules/mediastream/RTCRtpScriptTransform.h:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.h:
  • Modules/speech/SpeechRecognitionCaptureSourceImpl.h:
  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webdatabase/Database.cpp:
  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/DatabaseTask.h:
  • Modules/webdatabase/DatabaseThread.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::openDatabaseMutex):

  • Modules/webdatabase/DatabaseTracker.h:
  • Modules/webdatabase/OriginLock.cpp:
  • Modules/webdatabase/SQLCallbackWrapper.h:
  • Modules/webdatabase/SQLTransaction.h:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::instancesLock):

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUPipeline.cpp:

(WebCore::WebGPUPipeline::instancesLock):

  • Modules/webgpu/WebGPUPipeline.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::allActiveWebSocketsLock):

  • Modules/websockets/WebSocket.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:
  • accessibility/isolatedtree/AXIsolatedTree.h:
  • bindings/js/JSDOMGlobalObject.h:
  • bridge/objc/WebScriptObject.mm:
  • crypto/CryptoAlgorithmRegistry.h:
  • dom/MessagePort.cpp:
  • dom/Node.cpp:
  • dom/ScriptExecutionContext.cpp:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::createMediaPlayer):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::instancesLock):

  • html/canvas/CanvasRenderingContext.h:
  • html/canvas/WebGLContextGroup.cpp:

(WebCore::WebGLContextGroup::objectGraphLockForAContext):

  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLContextObject.cpp:

(WebCore::WebGLContextObject::objectGraphLockForContext):

  • html/canvas/WebGLContextObject.h:
  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::instancesLock):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::objectGraphLock):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLSharedObject.cpp:

(WebCore::WebGLSharedObject::objectGraphLockForContext):

  • html/canvas/WebGLSharedObject.h:
  • inspector/agents/WebHeapAgent.cpp:
  • page/ResourceUsageThread.h:
  • page/SecurityPolicy.cpp:
  • page/WheelEventTestMonitor.h:
  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::WTF_RETURNS_LOCK):

  • page/scrolling/ScrollingTreeLatchingController.h:
  • page/scrolling/ThreadedScrollingTree.h:

(WebCore::ThreadedScrollingTree::WTF_RETURNS_LOCK):

  • page/scrolling/mac/ScrollingTreeMac.h:
  • platform/AbortableTaskQueue.h:
  • platform/GenericTaskQueue.cpp:
  • platform/GenericTaskQueue.h:
  • platform/LegacySchemeRegistry.cpp:
  • platform/audio/AudioDestination.h:
  • platform/audio/HRTFDatabaseLoader.h:
  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::backgroundThreadEntry):

  • platform/audio/cocoa/AudioDestinationCocoa.h:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
  • platform/audio/mac/FFTFrameMac.cpp:
  • platform/encryptedmedia/CDMProxy.h:
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::lock):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/cg/SubimageCacheWithTimer.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
  • platform/graphics/gstreamer/MainThreadNotifier.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:

(WebCore::TextureMapperPlatformLayerProxy::WTF_RETURNS_LOCK):

  • platform/image-decoders/ScalableImageDecoder.h:
  • platform/ios/QuickLook.mm:
  • platform/ios/WebSQLiteDatabaseTrackerClient.mm:
  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeOutgoingAudioSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h:
  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):

  • platform/network/cocoa/WebCoreNSURLSession.mm:
  • platform/network/mac/UTIUtilities.mm:
  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
  • platform/sql/SQLiteDatabase.cpp:
  • platform/sql/SQLiteDatabase.h:
  • platform/sql/SQLiteDatabaseTracker.cpp:
  • platform/text/TextEncodingRegistry.cpp:
  • storage/StorageQuotaManager.h:
  • workers/WorkerGlobalScope.cpp:
  • workers/WorkerOrWorkletScriptController.h:
  • workers/WorkerOrWorkletThread.cpp:

(WebCore::WorkerOrWorkletThread::workerOrWorkletThreadsLock):

  • workers/WorkerOrWorkletThread.h:
  • worklets/PaintWorkletGlobalScope.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h:
  • NetworkProcess/IndexedDB/WebIDBServer.cpp:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h:
  • NetworkProcess/glib/DNSCache.h:
  • Platform/IPC/Connection.cpp:
  • Platform/IPC/Connection.h:
  • Platform/IPC/StreamConnectionWorkQueue.h:
  • Platform/IPC/StreamServerConnection.h:
  • Shared/BlockingResponseMap.h:
  • Shared/Cocoa/XPCEndpointClient.h:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/mac/MediaFormatReader/MediaFormatReader.h:
  • Shared/mac/MediaFormatReader/MediaSampleCursor.h:
  • Shared/mac/MediaFormatReader/MediaTrackReader.h:
  • UIProcess/API/glib/IconDatabase.h:
  • UIProcess/WebURLSchemeTask.h:
  • UIProcess/mac/DisplayLink.h:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView knowsPageRange:]):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/Network/WebSocketStream.cpp:
  • WebProcess/Plugins/PluginProcessConnectionManager.h:
  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/ViewUpdateDispatcher.h:

Source/WebKitLegacy:

  • Storage/StorageAreaSync.h:

Source/WebKitLegacy/mac:

  • DOM/DOMInternal.mm:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Assertions.cpp:
  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThreadCondition::wait):
(WTF::AutomaticThreadCondition::waitFor):
(WTF::AutomaticThread::AutomaticThread):

  • wtf/AutomaticThread.h:
  • wtf/CMakeLists.txt:
  • wtf/CheckedCondition.h: Removed.
  • wtf/CheckedLock.h: Removed.
  • wtf/Condition.h:
  • wtf/CrossThreadQueue.h:
  • wtf/CrossThreadTaskHandler.h:
  • wtf/CryptographicallyRandomNumber.cpp:
  • wtf/FastMalloc.cpp:
  • wtf/Forward.h:
  • wtf/Language.cpp:
  • wtf/Lock.cpp:

(WTF::UncheckedLock::lockSlow):
(WTF::UncheckedLock::unlockSlow):
(WTF::UncheckedLock::unlockFairlySlow):
(WTF::UncheckedLock::safepointSlow):

  • wtf/Lock.h:

(WTF::WTF_ASSERTS_ACQUIRED_LOCK):

  • wtf/Logger.cpp:
  • wtf/Logger.h:

(WTF::Logger::WTF_RETURNS_LOCK):

  • wtf/MessageQueue.h:
  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::release):
(WTF::MetaAllocator::MetaAllocator):
(WTF::MetaAllocator::allocate):
(WTF::MetaAllocator::currentStatistics):

  • wtf/MetaAllocator.h:
  • wtf/OSLogPrintStream.h:
  • wtf/ParallelHelperPool.cpp:

(WTF::ParallelHelperPool::ParallelHelperPool):

  • wtf/ParallelHelperPool.h:
  • wtf/ParallelJobsGeneric.h:
  • wtf/ParallelVectorIterator.h:
  • wtf/ReadWriteLock.h:
  • wtf/RecursiveLockAdapter.h:
  • wtf/RunLoop.h:
  • wtf/SynchronizedFixedQueue.h:
  • wtf/Threading.cpp:

(WTF::Thread::allThreadsLock):

  • wtf/Threading.h:
  • wtf/TimingScope.cpp:
  • wtf/URL.cpp:
  • wtf/WTFSemaphore.h:
  • wtf/WorkQueue.cpp:

(WTF::WorkQueue::concurrentApply):

  • wtf/WorkerPool.cpp:

(WTF::WorkerPool::WorkerPool):

  • wtf/WorkerPool.h:
  • wtf/cf/LanguageCF.cpp:
  • wtf/text/AtomStringImpl.cpp:

(WTF::AtomStringTableLocker::AtomStringTableLocker):

  • wtf/text/StringView.cpp:
  • wtf/threads/BinarySemaphore.h:
  • wtf/unicode/icu/CollatorICU.cpp:

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/CheckedConditionTest.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/CheckedLockTest.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/Condition.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/MetaAllocator.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AXThread::createThreadIfNeeded):

11:08 AM Changeset in webkit [277957] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

[LFC] Rename the geometry() helpers to formattingGeometry()
https://bugs.webkit.org/show_bug.cgi?id=226153

Reviewed by Antti Koivisto.

  • layout/formattingContexts/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::FormattingContext::formattingGeometry const):
(WebCore::Layout::FormattingContext::geometry const): Deleted.

  • layout/formattingContexts/FormattingContext.h:
  • layout/formattingContexts/FormattingQuirks.cpp:

(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):

  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::BlockFormattingContext::formattingGeometry const):
(WebCore::Layout::BlockFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/block/BlockFormattingContext.h:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::layoutTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeBorderAndPaddingForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):
(WebCore::Layout::FlexFormattingContext::computeIntrinsicWidthConstraintsForFlexItems):
(WebCore::Layout::FlexFormattingContext::formattingGeometry const):
(WebCore::Layout::FlexFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/flex/FlexFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
(WebCore::Layout::InlineFormattingContext::formattingGeometry const):
(WebCore::Layout::InlineFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::layoutCell):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraSpace):
(WebCore::Layout::TableFormattingContext::formattingGeometry const):
(WebCore::Layout::TableFormattingContext::geometry const): Deleted.

  • layout/formattingContexts/table/TableFormattingContext.h:
  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):

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

[LFC] FormattingGeometry functions should all be const
https://bugs.webkit.org/show_bug.cgi?id=226147

Reviewed by Simon Fraser.

While the const_cast is unfortunate, those functions do not mutate *this*.

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::hasFormattingState const):

  • layout/LayoutState.h:
  • layout/formattingContexts/FormattingGeometry.cpp:

(WebCore::Layout::FormattingGeometry::computedWidthValue const):
(WebCore::Layout::FormattingGeometry::computedWidth const):
(WebCore::Layout::FormattingGeometry::computedMinWidth const):
(WebCore::Layout::FormattingGeometry::computedMaxWidth const):
(WebCore::Layout::FormattingGeometry::shrinkToFitWidth const):
(WebCore::Layout::FormattingGeometry::outOfFlowNonReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingGeometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingGeometry::floatingNonReplacedContentWidthAndMargin const):
(WebCore::Layout::FormattingGeometry::floatingReplacedContentWidthAndMargin const):
(WebCore::Layout::FormattingGeometry::outOfFlowHorizontalGeometry const):
(WebCore::Layout::FormattingGeometry::floatingContentWidthAndMargin const):
(WebCore::Layout::FormattingGeometry::inlineReplacedContentWidthAndMargin const):
(WebCore::Layout::FormattingGeometry::constraintsForOutOfFlowContent const):
(WebCore::Layout::FormattingGeometry::computedWidthValue): Deleted.
(WebCore::Layout::FormattingGeometry::computedWidth): Deleted.
(WebCore::Layout::FormattingGeometry::computedMinWidth): Deleted.
(WebCore::Layout::FormattingGeometry::computedMaxWidth): Deleted.
(WebCore::Layout::FormattingGeometry::shrinkToFitWidth): Deleted.
(WebCore::Layout::FormattingGeometry::outOfFlowNonReplacedHorizontalGeometry): Deleted.
(WebCore::Layout::FormattingGeometry::outOfFlowReplacedHorizontalGeometry): Deleted.
(WebCore::Layout::FormattingGeometry::floatingNonReplacedContentWidthAndMargin): Deleted.
(WebCore::Layout::FormattingGeometry::floatingReplacedContentWidthAndMargin): Deleted.
(WebCore::Layout::FormattingGeometry::outOfFlowHorizontalGeometry): Deleted.
(WebCore::Layout::FormattingGeometry::floatingContentWidthAndMargin): Deleted.
(WebCore::Layout::FormattingGeometry::inlineReplacedContentWidthAndMargin): Deleted.
(WebCore::Layout::FormattingGeometry::constraintsForOutOfFlowContent): Deleted.

  • layout/formattingContexts/FormattingGeometry.h:

(WebCore::Layout::FormattingGeometry::layoutState const):
(WebCore::Layout::FormattingGeometry::layoutState): Deleted.

  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin const):
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentWidthAndMargin const):
(WebCore::Layout::BlockFormattingGeometry::inFlowReplacedContentWidthAndMargin const):
(WebCore::Layout::BlockFormattingGeometry::inFlowContentHeightAndMargin const):
(WebCore::Layout::BlockFormattingGeometry::inFlowContentWidthAndMargin const):
(WebCore::Layout::BlockFormattingGeometry::computedContentWidthAndMargin const):
(WebCore::Layout::BlockFormattingGeometry::intrinsicWidthConstraints const):
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin): Deleted.
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingGeometry::inFlowReplacedContentWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingGeometry::inFlowContentHeightAndMargin): Deleted.
(WebCore::Layout::BlockFormattingGeometry::inFlowContentWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingGeometry::computedContentWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingGeometry::intrinsicWidthConstraints): Deleted.

  • layout/formattingContexts/block/BlockFormattingGeometry.h:
  • layout/formattingContexts/flex/FlexFormattingGeometry.cpp:

(WebCore::Layout::FlexFormattingGeometry::intrinsicWidthConstraints const):
(WebCore::Layout::FlexFormattingGeometry::intrinsicWidthConstraints): Deleted.

  • layout/formattingContexts/flex/FlexFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::InlineFormattingGeometry::inlineBlockContentWidthAndMargin const):
(WebCore::Layout::InlineFormattingGeometry::inlineBlockContentWidthAndMargin): Deleted.

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::computedColumnWidth const):
(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell const):
(WebCore::Layout::TableFormattingGeometry::usedBaselineForCell const):
(WebCore::Layout::TableFormattingGeometry::computedColumnWidth): Deleted.
(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell): Deleted.
(WebCore::Layout::TableFormattingGeometry::usedBaselineForCell): Deleted.

  • layout/formattingContexts/table/TableFormattingGeometry.h:
10:04 AM Changeset in webkit [277955] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][TFC] Add a helper function to compute the intrinsic vertical paddings for the cell
https://bugs.webkit.org/show_bug.cgi?id=226130

Reviewed by Antti Koivisto.

Add a comment explaining what the intrinsic vertical padding is.

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::layoutCell):

  • layout/formattingContexts/table/TableFormattingContext.h:
9:07 AM Changeset in webkit [277954] by imanol
  • 6 edits
    5 adds in trunk/Source/WebCore

Implement OpenXR input sources
https://bugs.webkit.org/show_bug.cgi?id=224931

Reviewed by Sergio Villar Senin.

  • Sources.txt: Add OpenXRInput and OpenXRInputSource files
  • platform/xr/openxr/OpenXRInput.cpp: Entry point to query and sync input in OpenXR.

(PlatformXR::OpenXRInput::create):
(PlatformXR::OpenXRInput::OpenXRInput):
(PlatformXR::OpenXRInput::initialize):
(PlatformXR::OpenXRInput::getInputSources const):
(PlatformXR::OpenXRInput::updateInteractionProfile):

  • platform/xr/openxr/OpenXRInput.h: Added.
  • platform/xr/openxr/OpenXRInputMappings.h: Mapping definition for supported input profiles.

(PlatformXR::buttonTypeToString):
(PlatformXR::axisTypetoString):

  • platform/xr/openxr/OpenXRInputSource.cpp: Handles tracking and status of a specific input source.

(PlatformXR::OpenXRInputSource::create):
(PlatformXR::OpenXRInputSource::~OpenXRInputSource):
(PlatformXR::OpenXRInputSource::initialize):
(PlatformXR::OpenXRInputSource::suggestBindings const):
(PlatformXR::OpenXRInputSource::getInputSource const):
(PlatformXR::OpenXRInputSource::updateInteractionProfile):
(PlatformXR::OpenXRInputSource::createSpaceAction const):
(PlatformXR::OpenXRInputSource::createAction const):
(PlatformXR::OpenXRInputSource::createButtonActions const):
(PlatformXR::OpenXRInputSource::createBinding const):
(PlatformXR::OpenXRInputSource::getPose const):
(PlatformXR::OpenXRInputSource::getButton const):
(PlatformXR::OpenXRInputSource::getAxis const):
(PlatformXR::OpenXRInputSource::getActionState const):

  • platform/xr/openxr/OpenXRInputSource.h: Added.

(PlatformXR::OpenXRInputSource::OpenXRInputSource):
(PlatformXR::OpenXRInputSource::actionSet const):

  • platform/xr/openxr/OpenXRUtils.h:

(PlatformXR::XrPoseIdentity): Creates a identity pose.
(PlatformXR::handenessToString): Convert from handeness enum to string.

  • platform/xr/openxr/PlatformXROpenXR.cpp: Handle input sources in the OpenXR render loop.

(PlatformXR::OpenXRDevice::initializeTrackingAndRendering):
(PlatformXR::OpenXRDevice::requestFrame):
(PlatformXR::OpenXRDevice::pollEvents):
(PlatformXR::OpenXRDevice::resetSession):
(PlatformXR::OpenXRDevice::updateInteractionProfile):

  • platform/xr/openxr/PlatformXROpenXR.h:
8:30 AM Changeset in webkit [277953] by imanol
  • 148 edits
    5 copies
    44 adds in trunk/LayoutTests/imported/w3c

Update WebXR WPT tests
https://bugs.webkit.org/show_bug.cgi?id=224935
<rdar://problem/77323099>

Reviewed by Sergio Villar Senin.

  • resources/import-expectations.json:
  • web-platform-tests/webxr/META.yml:
  • web-platform-tests/webxr/anchors/META.yml: Added.
  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_create_move.https.html:
  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_delay_creation.https.html:
  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_failure.https.html:
  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https.html:
  • web-platform-tests/webxr/anchors/ar_anchor_states.https.html:
  • web-platform-tests/webxr/anchors/w3c-import.log:
  • web-platform-tests/webxr/ar-module/META.yml: Added.
  • web-platform-tests/webxr/ar-module/w3c-import.log:
  • web-platform-tests/webxr/ar-module/xrDevice_requestSession_immersive-ar.https-expected.txt:
  • web-platform-tests/webxr/ar-module/xrDevice_requestSession_immersive-ar.https.html:
  • web-platform-tests/webxr/ar-module/xrSession_environmentBlendMode.https.html:
  • web-platform-tests/webxr/ar-module/xrSession_interactionMode.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/cpu/w3c-import.log: Added.
  • web-platform-tests/webxr/depth-sensing/dataUnavailableTests.js: Added.

(return.session.requestReferenceSpace.then):
(const.dataUnavailableTestFunctionGenerator):

  • web-platform-tests/webxr/depth-sensing/depth_sensing_notEnabled.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html: Added.
  • web-platform-tests/webxr/depth-sensing/gpu/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webxr/ar-module/w3c-import.log.
  • web-platform-tests/webxr/depth-sensing/inactiveFrameTests.js: Added.

(return.session.requestReferenceSpace.then):
(const.inactiveFrameTestFunctionGenerator):

  • web-platform-tests/webxr/depth-sensing/staleViewsTests.js: Added.

(return.session.requestReferenceSpace.then):
(const.staleViewsTestFunctionGenerator):

  • web-platform-tests/webxr/depth-sensing/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webxr/dom-overlay/w3c-import.log.
  • web-platform-tests/webxr/dom-overlay/META.yml: Added.
  • web-platform-tests/webxr/dom-overlay/ar_dom_overlay.https.html:
  • web-platform-tests/webxr/dom-overlay/idlharness.https.window.js:

(async idl_array):

  • web-platform-tests/webxr/dom-overlay/nested_fullscreen.https.html: Added.
  • web-platform-tests/webxr/dom-overlay/w3c-import.log:
  • web-platform-tests/webxr/events_input_source_recreation.https-expected.txt:
  • web-platform-tests/webxr/events_input_source_recreation.https.html:
  • web-platform-tests/webxr/events_input_sources_change.https-expected.txt:
  • web-platform-tests/webxr/events_input_sources_change.https.html:
  • web-platform-tests/webxr/events_referenceSpace_reset_immersive.https.html:
  • web-platform-tests/webxr/events_referenceSpace_reset_inline.https.html:
  • web-platform-tests/webxr/events_session_select.https-expected.txt:
  • web-platform-tests/webxr/events_session_select.https.html:
  • web-platform-tests/webxr/events_session_select_subframe.https-expected.txt:
  • web-platform-tests/webxr/events_session_select_subframe.https.html:
  • web-platform-tests/webxr/events_session_squeeze.https-expected.txt:
  • web-platform-tests/webxr/events_session_squeeze.https.html:
  • web-platform-tests/webxr/exclusive_requestFrame_nolayer.https.html:
  • web-platform-tests/webxr/gamepads-module/META.yml: Added.
  • web-platform-tests/webxr/gamepads-module/w3c-import.log:
  • web-platform-tests/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html:
  • web-platform-tests/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https.html:
  • web-platform-tests/webxr/getInputPose_handedness.https-expected.txt:
  • web-platform-tests/webxr/getInputPose_handedness.https.html:
  • web-platform-tests/webxr/getInputPose_pointer.https.html:
  • web-platform-tests/webxr/getViewerPose_emulatedPosition.https-expected.txt:
  • web-platform-tests/webxr/getViewerPose_emulatedPosition.https.html:
  • web-platform-tests/webxr/hand-input/META.yml: Added.
  • web-platform-tests/webxr/hand-input/idlharness.https.window.html: Added.
  • web-platform-tests/webxr/hand-input/idlharness.https.window.js: Copied from LayoutTests/imported/w3c/web-platform-tests/webxr/dom-overlay/idlharness.https.window.js.

(async idl_array):

  • web-platform-tests/webxr/hand-input/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webxr/dom-overlay/w3c-import.log.
  • web-platform-tests/webxr/hit-test/META.yml: Added.
  • web-platform-tests/webxr/hit-test/ar_hittest_source_cancel.https.html: Added.
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_inputSources.https.html:
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html:
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_states_regular.https.html:
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_states_transient.https.html:
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_transientInputSources.https.html:
  • web-platform-tests/webxr/hit-test/w3c-import.log:
  • web-platform-tests/webxr/layers/META.yml: Added.
  • web-platform-tests/webxr/layers/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/webxr/dom-overlay/w3c-import.log.
  • web-platform-tests/webxr/layers/xrWebGLBinding_constructor.https.html: Added.
  • web-platform-tests/webxr/light-estimation/w3c-import.log: Added.
  • web-platform-tests/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https.html: Added.
  • web-platform-tests/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https.html: Added.
  • web-platform-tests/webxr/light-estimation/xrFrame_getLightEstimate_valid.https.html: Added.
  • web-platform-tests/webxr/light-estimation/xrSession_getLightProbe_ended.https.html: Added.
  • web-platform-tests/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https.html: Added.
  • web-platform-tests/webxr/light-estimation/xrSession_getLightProbe_valid.https.html: Added.
  • web-platform-tests/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https.html: Added.
  • web-platform-tests/webxr/navigator_xr_sameObject.https-expected.txt:
  • web-platform-tests/webxr/navigator_xr_sameObject.https.html:
  • web-platform-tests/webxr/render_state_update.https-expected.txt:
  • web-platform-tests/webxr/render_state_update.https.html:
  • web-platform-tests/webxr/render_state_vertical_fov_immersive.https-expected.txt:
  • web-platform-tests/webxr/render_state_vertical_fov_immersive.https.html:
  • web-platform-tests/webxr/render_state_vertical_fov_inline.https.html:
  • web-platform-tests/webxr/resources/w3c-import.log:
  • web-platform-tests/webxr/resources/webxr_math_utils.js:

(let.flip_quaternion):

  • web-platform-tests/webxr/resources/webxr_test_asserts.js:

(const.get_mismatched_component):
(const.assert_point_approx_equals):
(const.assert_orientation_approx_equals):
(const.assert_point_significantly_not_equals):
(const.assert_transform_approx_equals):

  • web-platform-tests/webxr/resources/webxr_test_constants.js:
  • web-platform-tests/webxr/resources/webxr_test_constants_fake_depth.js: Added.

(const.convertDepthBufferToArrayBuffer):
(const.createDepthSensingData):
(const.getExpectedValueAt):

  • web-platform-tests/webxr/resources/webxr_util.js:

(async return):
(async loadChromiumResources):

  • web-platform-tests/webxr/w3c-import.log:
  • web-platform-tests/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt:
  • web-platform-tests/webxr/webGLCanvasContext_create_xrcompatible.https.html:
  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt:
  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_contextlost.https.html:
  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt:
  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https.html:
  • web-platform-tests/webxr/webxr_feature_policy.https.html:
  • web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https-expected.txt:
  • web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html:
  • web-platform-tests/webxr/xrDevice_disconnect_ends.https.html:
  • web-platform-tests/webxr/xrDevice_requestSession_immersive.https-expected.txt:
  • web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html:
  • web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt:
  • web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html:
  • web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https-expected.txt:
  • web-platform-tests/webxr/xrFrame_getPose.https-expected.txt:
  • web-platform-tests/webxr/xrFrame_getPose.https.html:
  • web-platform-tests/webxr/xrFrame_getViewerPose_getPose.https-expected.txt:
  • web-platform-tests/webxr/xrFrame_getViewerPose_getPose.https.html:
  • web-platform-tests/webxr/xrFrame_getViewerPose_getPose_identities.https.html: Added.
  • web-platform-tests/webxr/xrFrame_lifetime.https.html:
  • web-platform-tests/webxr/xrFrame_session_sameObject.https-expected.txt:
  • web-platform-tests/webxr/xrFrame_session_sameObject.https.html:
  • web-platform-tests/webxr/xrInputSource_add_remove.https-expected.txt:
  • web-platform-tests/webxr/xrInputSource_add_remove.https.html:
  • web-platform-tests/webxr/xrInputSource_emulatedPosition.https-expected.txt:
  • web-platform-tests/webxr/xrInputSource_emulatedPosition.https.html:
  • web-platform-tests/webxr/xrInputSource_profiles.https-expected.txt:
  • web-platform-tests/webxr/xrInputSource_profiles.https.html:
  • web-platform-tests/webxr/xrInputSource_sameObject.https-expected.txt:
  • web-platform-tests/webxr/xrInputSource_sameObject.https.html:
  • web-platform-tests/webxr/xrPose_transform_sameObject.https.html:
  • web-platform-tests/webxr/xrReferenceSpace_originOffset.https-expected.txt:
  • web-platform-tests/webxr/xrReferenceSpace_originOffset.https.html:
  • web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html:
  • web-platform-tests/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt:
  • web-platform-tests/webxr/xrReferenceSpace_originOffset_viewer.https.html:
  • web-platform-tests/webxr/xrReferenceSpace_relationships.https-expected.txt:
  • web-platform-tests/webxr/xrReferenceSpace_relationships.https.html:
  • web-platform-tests/webxr/xrRigidTransform_constructor.https-expected.txt:
  • web-platform-tests/webxr/xrRigidTransform_constructor.https.html:
  • web-platform-tests/webxr/xrRigidTransform_inverse.https-expected.txt:
  • web-platform-tests/webxr/xrRigidTransform_inverse.https.html:
  • web-platform-tests/webxr/xrRigidTransform_sameObject.https-expected.txt:
  • web-platform-tests/webxr/xrRigidTransform_sameObject.https.html:
  • web-platform-tests/webxr/xrSession_cancelAnimationFrame.https-expected.txt:
  • web-platform-tests/webxr/xrSession_cancelAnimationFrame.https.html:
  • web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt:
  • web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html:
  • web-platform-tests/webxr/xrSession_end.https-expected.txt:
  • web-platform-tests/webxr/xrSession_end.https.html:
  • web-platform-tests/webxr/xrSession_input_events_end.https.html:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https.html:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https.html:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html:
  • web-platform-tests/webxr/xrSession_requestReferenceSpace.https-expected.txt:
  • web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html:
  • web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https-expected.txt:
  • web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html:
  • web-platform-tests/webxr/xrSession_requestSessionDuringEnd.https.html: Added.
  • web-platform-tests/webxr/xrSession_sameObject.https-expected.txt:
  • web-platform-tests/webxr/xrSession_sameObject.https.html:
  • web-platform-tests/webxr/xrSession_viewer_referenceSpace.https-expected.txt:
  • web-platform-tests/webxr/xrSession_viewer_referenceSpace.https.html:
  • web-platform-tests/webxr/xrSession_visibilityState.https.html:
  • web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html:
  • web-platform-tests/webxr/xrView_eyes.https-expected.txt:
  • web-platform-tests/webxr/xrView_eyes.https.html:
  • web-platform-tests/webxr/xrView_match.https-expected.txt:
  • web-platform-tests/webxr/xrView_match.https.html:
  • web-platform-tests/webxr/xrView_oneframeupdate.https-expected.txt:
  • web-platform-tests/webxr/xrView_oneframeupdate.https.html:
  • web-platform-tests/webxr/xrView_sameObject.https-expected.txt:
  • web-platform-tests/webxr/xrView_sameObject.https.html:
  • web-platform-tests/webxr/xrViewerPose_views_sameObject.https-expected.txt:
  • web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html:
  • web-platform-tests/webxr/xrViewport_valid.https-expected.txt:
  • web-platform-tests/webxr/xrViewport_valid.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_constructor.https-expected.txt:
  • web-platform-tests/webxr/xrWebGLLayer_constructor.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_framebuffer_draw.https-expected.txt:
  • web-platform-tests/webxr/xrWebGLLayer_framebuffer_draw.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt:
  • web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_framebuffer_scale.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_opaque_framebuffer.https-expected.txt:
  • web-platform-tests/webxr/xrWebGLLayer_opaque_framebuffer.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_viewports.https-expected.txt:
  • web-platform-tests/webxr/xrWebGLLayer_viewports.https.html:
  • web-platform-tests/webxr/xr_viewport_scale.https.html: Added.
8:30 AM Changeset in webkit [277952] by Kate Cheney
  • 4 edits in trunk/LayoutTests

[ wk2 ] http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.py is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=224626
<rdar://problem/76729427>

http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.py
initiates a redirect that generates a CSP violation, but does not wait
for the console logging. This results in flakiness of other test that
occasionally pick up this console logging in their output. To fix this,
we should wait to end the test until we get the CSP violation report.

Reviewed by Sam Weinig.

  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked-expected.txt:

Update expectations now that we consistently expect to get report
violation console logging for this test.

  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.py:
  • platform/wk2/TestExpectations:
8:26 AM Changeset in webkit [277951] by sihui_liu@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r256715): XSLTProcessor does not parse script when transforming to document
https://bugs.webkit.org/show_bug.cgi?id=226087

Reviewed by Darin Adler.

Source/WebCore:

Allow JavaScript if context document is null to match old behavior before r256715.

Test: fast/xsl/xslt-transform-script.html

  • dom/Document.cpp:

(WebCore::Document::allowsContentJavaScript const):

LayoutTests:

  • fast/xsl/xslt-transform-script.html: Added.
  • fast/xsl/xslt-transform-script-expected.txt: Added.
7:56 AM Changeset in webkit [277950] by Jonathan Bedard
  • 1 edit
    63 deletes in trunk/LayoutTests

[LayoutTests] Delete unused LayoutTests/http resources
https://bugs.webkit.org/show_bug.cgi?id=226065
<rdar://problem/78289889>

Reviewed by Darin Adler.

  • http/tests/appcache/resources/abort-cache-onprogress-4.text: Removed.
  • http/tests/cookies/resources/post-cookies-onmessage.py: Removed.
  • http/tests/cookies/resources/setArraycookies-expected.txt: Removed.
  • http/tests/cookies/resources/setUtf8Cookies-expected.txt: Removed.
  • http/tests/inspector/network/resources/stylesheet-with-sourcemap.scss: Removed.
  • http/tests/media/media-stream/resources/getUserMedia-helper.js: Removed.
  • http/tests/media/resources/hls/metadata/fileSequence0.ts: Removed.
  • http/tests/media/resources/hls/metadata/fileSequence1.ts: Removed.
  • http/tests/media/resources/media-source: Removed.
  • http/tests/mime/resources/accept-all-text-types.cgi: Removed.
  • http/tests/misc/resources/acid3/support-a.png.404: Removed.
  • http/tests/misc/resources/animated-gif-with-offsets.gif: Removed.
  • http/tests/misc/resources/chromium-selectionAsMarkup.html: Removed.
  • http/tests/misc/resources/generatedimage.bat: Removed.
  • http/tests/misc/resources/referrer-main-resource-expected.txt: Removed.
  • http/tests/misc/resources/referrer-main-resource.py: Removed.
  • http/tests/misc/resources/script-write-slow-stylesheet.js: Removed.
  • http/tests/navigation/resources/redirect-to-cookie.py: Removed.
  • http/tests/quicklook/resources/http-equiv-blocked.docx: Removed.
  • http/tests/security/XFrameOptions/resources/x-frame-options-parent-same-origin-deny.cgi: Removed.
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-and-without-policy.html: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-eval.js: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-function-function.js: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-make-xhr.js: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-set-timeout.js: Removed.
  • http/tests/security/mixedContent/resources/frame-with-programmatically-added-insecure-image-redirects-to-basic-auth-secure-image.html: Removed.
  • http/tests/security/postMessage/resources/middle-frame-for-lexical.html: Removed.
  • http/tests/security/postMessage/resources/post-message-listener-with-ready.html: Removed.
  • http/tests/security/resources/create-filesystem-file.html: Removed.
  • http/tests/security/resources/cross-origin-iframe-for-worker-websql.html: Removed.
  • http/tests/security/resources/document-for-cross-origin-worker-websql.html: Removed.
  • http/tests/security/resources/drag-drop-allowed-expected.txt: Removed.
  • http/tests/security/resources/image-wrapper.svg: Removed.
  • http/tests/security/resources/pass-if-no-referrer.py: Removed.
  • http/tests/security/resources/worker-for-websql.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/context: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/conformance: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/boolUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-conformance-test.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-feature-tests.css: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/glsl-generator.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/intArrayUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/intUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/matUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/noopUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/ogles-tests.css: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/samplerUniformShader.frag: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/structUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/test-eval.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/webgl-logo.png: Removed.
  • http/tests/workers/resources/sync-operations.js: Removed.
  • http/tests/xmlhttprequest/resources/access-control-basic-allow-print-headers.cgi: Removed.
  • http/tests/xmlhttprequest/resources/print-headers.py: Removed.
  • http/tests/xmlhttprequest/resources/reply2.txt: Removed.
  • http/tests/xmlhttprequest/resources/reply2.xml: Removed.
  • http/tests/xmlhttprequest/resources/reply3.txt: Removed.
  • http/tests/xmlhttprequest/resources/reply3.xml: Removed.
  • http/tests/xmlhttprequest/resources/reply4.txt: Removed.
  • http/tests/xmlhttprequest/resources/reply4.xml: Removed.
  • http/tests/xmlhttprequest/resources/reply5.txt: Removed.
  • http/tests/xmlhttprequest/resources/svgtest.svg: Removed.
  • http/tests/xmlhttprequest/resources/utf-8-no-charset.html: Removed.
6:59 AM Changeset in webkit [277949] by ntim@apple.com
  • 9 edits in trunk/Source/WebCore

Clean up handling of -webkit-inline-flex/-webkit-flex CSS display values
https://bugs.webkit.org/show_bug.cgi?id=224807

Reviewed by Antti Koivisto.

These are now aliased at parse-time, like the two-value CSS display syntax is.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeDisplay):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isInlineLevelBox const):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

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

(WebCore::Style::equivalentBlockDisplay):

6:48 AM Changeset in webkit [277948] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GStreamer] WebProcess crashes when certain elements are missing
https://bugs.webkit.org/show_bug.cgi?id=226081
<rdar://problem/78394687>

Unreviewed LTS build fix.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
4:22 AM Changeset in webkit [277947] by commit-queue@webkit.org
  • 22 edits in trunk/Source/WebCore

[GStreamer] WebProcess crashes when certain elements are missing
https://bugs.webkit.org/show_bug.cgi?id=226081

Patch by Philippe Normand <pnormand@igalia.com> on 2021-05-24
Reviewed by Xabier Rodriguez-Calvar.

Introducing makeGStreamerElement() and makeGStreamerBin() that should be used when
requesting non-WebKit and non-core GStreamer elements/bins to be created at runtime. The
goal is to prevent NULL pointers to be used in case the runtime host has an incomplete
GStreamer plugins installation.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::handleNewDeinterleavePad):
(WebCore::AudioFileReader::plugDeinterleave):
(WebCore::AudioFileReader::decodeAudioForBusCreation):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::configureAudioBin):
(WebCore::AudioSourceProviderGStreamer::setClient):
(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed):

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):

  • platform/graphics/gstreamer/GStreamerAudioMixer.cpp:

(WebCore::GStreamerAudioMixer::GStreamerAudioMixer):
(WebCore::GStreamerAudioMixer::registerProducer):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::createPlatformAudioSink):
(WebCore::makeGStreamerElement):
(WebCore::makeGStreamerBin):

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::createHolePunchVideoSink):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):

  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp:

(webKitTextCombinerHandleCapsEvent):

  • platform/graphics/gstreamer/TextSinkGStreamer.cpp:

(webkitTextSinkConstructed):

  • platform/graphics/gstreamer/WebKitAudioSinkGStreamer.cpp:

(webKitAudioSinkConfigure):

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

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::createOptionalParserForFormat):

  • platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp:

(WebCore::GStreamerAudioCapturer::createConverter):

  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:

(WebCore::GStreamerCapturer::makeElement):

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

(WebCore::GStreamerVideoCapturer::createConverter):

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:

(WebCore::GStreamerVideoDecoder::makeElement):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:

(webrtcVideoEncoderSetEncoder):
(webrtcVideoEncoderSetFormat):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::makeElement):

1:55 AM Changeset in webkit [277946] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update to libsoup3 2.99.6
https://bugs.webkit.org/show_bug.cgi?id=226166

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-05-24
Reviewed by Philippe Normand.

  • elements/sdk/libsoup3.bst:
1:13 AM Changeset in webkit [277945] by Angelos Oikonomopoulos
  • 3 edits in trunk/Tools

Be resilient against remote failure when determining the native architecture
https://bugs.webkit.org/show_bug.cgi?id=226009

Reviewed by Jonathan Bedard.

Change determineNativeArchitecture to not return an empty string if the
first remote host happens to be down. Instead, check every remote host in turn
until one responds.

Returning an empty string ended up passing an empty parameter to --arch when
invoking run-jsc-stress-tests, which resulted in an inappropriate set of tests
being selected, leading to occasional partial but massive test failures.

  • Scripts/run-javascriptcore-tests:

(runTest):
(runJSCStressTests):

  • Scripts/webkitdirs.pm:

(determineNativeArchitecture):
(determineArchitecture):
(nativeArchitecture):

12:19 AM Changeset in webkit [277944] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
Note: See TracTimeline for information about the timeline view.