[webkit-changes] [WebKit/WebKit] 8d0817: Cherry-pick 260857 at main (b5f2eee537a0). https://bu...
Xabier Rodríguez
noreply at github.com
Wed Apr 12 07:12:17 PDT 2023
Branch: refs/heads/webkitglib/2.38
Home: https://github.com/WebKit/WebKit
Commit: 8d081746e28affd55e4c57930b754c2c7227099e
https://github.com/WebKit/WebKit/commit/8d081746e28affd55e4c57930b754c2c7227099e
Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
Date: 2023-04-10 (Mon, 10 Apr 2023)
Changed paths:
M Source/WebCore/rendering/RenderLayerScrollableArea.cpp
Log Message:
-----------
Cherry-pick 260857 at main (b5f2eee537a0). https://bugs.webkit.org/show_bug.cgi?id=251676
RenderLayerScrollableArea::updateResizerStyle should early return if there is no resizer
https://bugs.webkit.org/show_bug.cgi?id=251676
Reviewed by Simon Fraser.
Merge - https://chromium.googlesource.com/chromium/blink/+/1add5ffe5081cf282014bc4cfe04b8637244c607
This is potential optimization by adding early return to "updateResizeStyle" function in case if there is no resizer.
* Source/WebCore/rendering/RenderLayerScrollableArea.cpp:
(RenderLayerScrollableArea::updateResizerStyle): Add early return
Canonical link: https://commits.webkit.org/260857@main
Commit: 3af3d0e3e2a28f3137f69e1846e7511f4504776f
https://github.com/WebKit/WebKit/commit/3af3d0e3e2a28f3137f69e1846e7511f4504776f
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2023-04-12 (Wed, 12 Apr 2023)
Changed paths:
A LayoutTests/media/media-source/media-source-appendbuffer-durationchange-expected.txt
A LayoutTests/media/media-source/media-source-appendbuffer-durationchange.html
M Source/WebCore/Modules/mediasource/SourceBuffer.cpp
M Source/WebCore/Modules/mediasource/SourceBuffer.h
M Source/WebCore/platform/graphics/SourceBufferPrivate.cpp
M Source/WebCore/platform/graphics/SourceBufferPrivate.h
M Source/WebCore/platform/graphics/SourceBufferPrivateClient.h
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
M Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h
M Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp
M Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp
M Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h
M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp
M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h
M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in
Log Message:
-----------
Cherry-pick 261029 at main (04a684748a69). https://bugs.webkit.org/show_bug.cgi?id=252886
[MSE] Only fire durationchange after parsing media buffer.
https://bugs.webkit.org/show_bug.cgi?id=252886
rdar://105870526
Reviewed by Youenn Fablet and Jer Noble.
Per spec MSE spec and the Coded Frame Processing algorithm [1]
"5. if the media segment contains data beyond the current duration, then
run the duration change algorithm with new duration set to the maximum of
the current duration and the [[group end timestamp]]."
Which occurs once all frames of a media segment added to a source buffer have been processed.
We were running step 5. after each frame parsed.
Only perform step 5. once we have parsed the entire buffer.
Note: Per spec, we should be firing a durationchange event after parsing
each individual media segment.
However, our data parsing infrastucture doesn't provide such level of details
and we can only parse the entire buffer (potentially made of multiple media segments)
at once, so we only fire a single durationchange in all cases.
However, this behaviour is preferable to firing hundreds of events unnecessarily.
The handling of a `durationchange` must occur before the `updateend` is
fired, so we make the method sourceBufferPrivateDurationChanged asynchronous
and continue the process once the it completes.
[1] https://w3c.github.io/media-source/#sourcebuffer-coded-frame-processing
* LayoutTests/media/media-source/media-source-appendbuffer-durationchange-expected.txt: Added.
* LayoutTests/media/media-source/media-source-appendbuffer-durationchange.html: Added.
* Source/WebCore/Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDurationChanged):
* Source/WebCore/Modules/mediasource/SourceBuffer.h:
* Source/WebCore/platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::appendCompleted): Must be called once all samples have been processed.
(WebCore::SourceBufferPrivate::didReceiveSample):
* Source/WebCore/platform/graphics/SourceBufferPrivate.h:
* Source/WebCore/platform/graphics/SourceBufferPrivateClient.h:
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged):
* Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::consumeAppsinksAvailableSamples):
* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged): Remove handling of longer needed blockDurationChanges/unblockDurationChanges
(WebCore::MediaPlayerPrivateGStreamerMSE::blockDurationChanges): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges): Deleted.
* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
* Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::append): Call appendCompleted.
* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDurationChanged):
* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h:
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDurationChanged):
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h:
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
Canonical link: https://commits.webkit.org/261029@main
Commit: a16681caf0c030d47adbbf1882bddac7bea9bd43
https://github.com/WebKit/WebKit/commit/a16681caf0c030d47adbbf1882bddac7bea9bd43
Author: Mark Lam <mark.lam at apple.com>
Date: 2023-04-12 (Wed, 12 Apr 2023)
Changed paths:
M Source/JavaScriptCore/heap/Heap.cpp
M Source/JavaScriptCore/heap/Heap.h
M Source/JavaScriptCore/heap/HeapInlines.h
M Source/JavaScriptCore/runtime/ArgList.cpp
M Source/JavaScriptCore/runtime/ArgList.h
M Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp
M Source/WebCore/Modules/webaudio/AudioWorkletProcessor.h
M Source/WebCore/bindings/js/SerializedScriptValue.cpp
Log Message:
-----------
Cherry-pick 259548.395 at safari-7615.1.26.11-branch (1039f0c3235f). https://bugs.webkit.org/show_bug.cgi?id=254797
Cherry-pick 2c49ff7b0481. rdar://problem/107369977
CloneDeserializer::deserialize() should store cell pointers in a MarkedVector.
https://bugs.webkit.org/show_bug.cgi?id=254797
rdar://107369977
Reviewed by Justin Michaud.
Previously, CloneDeserializer::deserialize() was storing pointers to newly created objects
in a few Vectors. This is problematic because the GC is not aware of Vectors, and cannot
scan them. In this patch, we refactor the MarkedArgumentBuffer class into a MarkedVector
template class that offer 2 enhancements:
1. It can be configured to store specific types of cell pointer types. This avoids us
having to constantly cast JSValues into these pointers.
2. It allows us to specify the type of OverflowHandler we want to use. In this case,
we want to use CrashOnOverflow. The previous MarkedArgumentBuffer always assumes
RecordOnOverflow. This allows us to avoid having to manually check for overflows,
or have to use appendWithCrashOnOverflow. For our current needs, MarkedVector can be
used as a drop in replacement for Vector.
And we fix the CloneDeserializer::deserialize() issue by replacing the use of Vectors
with MarkedVector instead.
* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
* Source/JavaScriptCore/heap/Heap.h:
* Source/JavaScriptCore/heap/HeapInlines.h:
* Source/JavaScriptCore/runtime/ArgList.cpp:
(JSC::MarkedVectorBase::addMarkSet):
(JSC::MarkedVectorBase::markLists):
(JSC::MarkedVectorBase::slowEnsureCapacity):
(JSC::MarkedVectorBase::expandCapacity):
(JSC::MarkedVectorBase::slowAppend):
(JSC::MarkedArgumentBufferBase::addMarkSet): Deleted.
(JSC::MarkedArgumentBufferBase::markLists): Deleted.
(JSC::MarkedArgumentBufferBase::slowEnsureCapacity): Deleted.
(JSC::MarkedArgumentBufferBase::expandCapacity): Deleted.
(JSC::MarkedArgumentBufferBase::slowAppend): Deleted.
* Source/JavaScriptCore/runtime/ArgList.h:
(JSC::MarkedVectorWithSize::MarkedVectorWithSize):
(JSC::MarkedVectorWithSize::at const):
(JSC::MarkedVectorWithSize::clear):
(JSC::MarkedVectorWithSize::append):
(JSC::MarkedVectorWithSize::appendWithCrashOnOverflow):
(JSC::MarkedVectorWithSize::last const):
(JSC::MarkedVectorWithSize::takeLast):
(JSC::MarkedVectorWithSize::ensureCapacity):
(JSC::MarkedVectorWithSize::hasOverflowed):
(JSC::MarkedVectorWithSize::fill):
(JSC::MarkedArgumentBufferWithSize::MarkedArgumentBufferWithSize): Deleted.
* Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:
(WebCore::AudioWorkletProcessor::buildJSArguments):
* Source/WebCore/Modules/webaudio/AudioWorkletProcessor.h:
* Source/WebCore/bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize):
Canonical link: https://commits.webkit.org/259548.530@safari-7615-branch
Identifier: 259548.395 at safari-7615.1.26.11-branch
Commit: d418e6f5caaf0ef6911e68877e4d9cdfe939486f
https://github.com/WebKit/WebKit/commit/d418e6f5caaf0ef6911e68877e4d9cdfe939486f
Author: Adrian Perez de Castro <aperez at igalia.com>
Date: 2023-04-12 (Wed, 12 Apr 2023)
Changed paths:
M Source/WebCore/html/ImageData.cpp
Log Message:
-----------
Unreviewed non-unified build fix.
* Source/WebCore/html/ImageData.cpp: Add missing
JavaScriptCore/GenericTypedArrayViewInlines.h header inclusion.
Commit: d0d840bffefbad9260a7351316b9b4b352e9bd8c
https://github.com/WebKit/WebKit/commit/d0d840bffefbad9260a7351316b9b4b352e9bd8c
Author: Maxim Cournoyer <maxim.cournoyer at gmail.com>
Date: 2023-04-12 (Wed, 12 Apr 2023)
Changed paths:
M Source/cmake/FindJournald.cmake
Log Message:
-----------
Cherry-pick 262163 at main (f2566d6ee880). https://bugs.webkit.org/show_bug.cgi?id=254475
Fallback to elogind when systemd is unavailable at build time
https://bugs.webkit.org/show_bug.cgi?id=254475
Reviewed by Michael Catanzaro.
The build system supports elogind, but it only considers the
'libsystemd' library name for the pkg-config lookup and not
'libelogind'. This change makes the build system fallback to search
for libelogind when libsystemd was not found.
* Source/cmake/FindJournald.cmake [!PC_SYSTEMD_FOUND]: Search for libelogind.
Canonical link: https://commits.webkit.org/262163@main
Commit: 1133b3d3a727591cd2614ef7029b0170b88f5ad6
https://github.com/WebKit/WebKit/commit/1133b3d3a727591cd2614ef7029b0170b88f5ad6
Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
Date: 2023-04-12 (Wed, 12 Apr 2023)
Changed paths:
M Source/WebCore/testing/MockCDMFactory.cpp
Log Message:
-----------
Cherry-pick 262819 at main (cc44de0d9d44). https://bugs.webkit.org/show_bug.cgi?id=251550
[EME] media/encrypted-media/mock-MediaKeySession-generateRequest.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=251550
Reviewed by Jer Noble.
We need to bail out with empty IDs.
* Source/WebCore/testing/MockCDMFactory.cpp:
(WebCore::MockCDMFactory::hasSessionWithID):
(WebCore::MockCDMFactory::removeSessionWithID):
Canonical link: https://commits.webkit.org/262819@main
Compare: https://github.com/WebKit/WebKit/compare/d77f824d9e1f...1133b3d3a727
More information about the webkit-changes
mailing list