Timeline
Jun 23, 2021:
- 11:56 PM Changeset in webkit [279214] by
-
- 3 edits in trunk/Tools
[WPE] WebKitGLibAPITestsCore should more explicitly link against library dependencies
https://bugs.webkit.org/show_bug.cgi?id=227288
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-06-23
Reviewed by Carlos Garcia Campos.
- TestWebKitAPI/glib/CMakeLists.txt: Set up the WebKitGLibAPITestsCore_LIBRARIES
variable, use that for the target_link_libraries() call for the
WebKitGLibAPITestsCore target.
- TestWebKitAPI/glib/PlatformWPE.cmake: Extent the new variable to also
explicitly include Cairo and WPEToolingBackends libraries.
- 11:52 PM Changeset in webkit [279213] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Fix incorrect indexing / out of bounds access in getRestartIndices
https://bugs.webkit.org/show_bug.cgi?id=227274
<rdar://79244789>
In the case where a restart index is present in the last element of an index array, we can accidently
access out of bounds. Fix this by checking boundaries, and fixing other indexing errors
Tests: Ran deqp/functional/gles3/primitiverestart suite. Passed 8 tests.
Reviewed by Dean Jackson.
- src/libANGLE/renderer/metal/BufferMtl.mm:
(rx::calculateRestartRanges):
- 11:51 PM Changeset in webkit [279212] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
Guard against compile failures of the default libraries
https://bugs.webkit.org/show_bug.cgi?id=227239
<rdar://79037623>
Under certain events (High memory usage), the MTLCompilerService can fail when creating the default library.
Guard against nil pipelines by failing GL calls instead, if this happens. While this can create rendering artifacts
due to missing blits / conversions, this can at least avoid crashing the process.
Reviewed by Dean Jackson.
- src/libANGLE/renderer/metal/mtl_render_utils.h:
- src/libANGLE/renderer/metal/mtl_render_utils.mm:
(rx::mtl::ClearUtils::setupClearWithDraw):
(rx::mtl::ClearUtils::clearWithDraw):
(rx::mtl::ColorBlitUtils::setupColorBlitWithDraw):
(rx::mtl::ColorBlitUtils::blitColorWithDraw):
(rx::mtl::DepthStencilBlitUtils::setupDepthStencilBlitWithDraw):
(rx::mtl::DepthStencilBlitUtils::blitDepthStencilWithDraw):
(rx::mtl::VertexFormatConversionUtils::setupCommonConvertVertexFormatToFloat):
(rx::mtl::VertexFormatConversionUtils::expandVertexFormatComponentsVS):
(rx::mtl::VertexFormatConversionUtils::setupCommonExpandVertexFormatComponents):
- 11:01 PM Changeset in webkit [279211] by
-
- 16 edits23 adds3 deletes in trunk/LayoutTests/imported/w3c
Resync url WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227321
Patch by Chris Dumez <Chris Dumez> on 2021-06-23
Reviewed by Alex Christensen.
Resync url WPT tests from upstream a38612f39e7752c353.
- web-platform-tests/url/*: Updated.
- 10:27 PM Changeset in webkit [279210] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r278970): A CATransaction commitHandler should not execute a client callback
https://bugs.webkit.org/show_bug.cgi?id=227318
<rdar://79625962>
Reviewed by Tim Horton.
In takeSnapshotWithConfiguration() we call callSnapshotRect() inside the
callback of [CATransaction addCommitHandler].
callSnapshotRect() calls the client callback which may call directly or
indirectly addCommitHandler. But it is prohibited by CA to add a commit
handler while processing a registered commit handler.
The fix is to postpone calling callSnapshotRect() till CATransaction
processes all its commit handler callbacks.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- 9:27 PM Changeset in webkit [279209] by
-
- 7 edits in trunk/Source
Base Options::useWebAssemblyFastMemory's default value on Gigacage::hasCapacityToUseLargeGigacage.
https://bugs.webkit.org/show_bug.cgi?id=227328
Reviewed by Saam Barati.
Source/bmalloc:
Rename Gigacage::useLargeGigacage to Gigacage::hasCapacityToUseLargeGigacage.
- bmalloc/Gigacage.h:
Source/JavaScriptCore:
Gigacage::hasCapacityToUseLargeGigacage is determined based on EFFECTIVE_ADDRESS_WIDTH.
If we have enough address range to potentially use a large gigacage, then we have
enough address range to useWebAssemblyFastMemory.
- runtime/Options.cpp:
(JSC::canUseWebAssemblyFastMemory):
- runtime/OptionsList.h:
Source/WTF:
Provide a Gigacage::hasCapacityToUseLargeGigacage value for when !GIGACAGE_ENABLED.
- wtf/Gigacage.h:
- 9:13 PM Changeset in webkit [279208] by
-
- 67 edits in trunk/Source
Not all uses of AudioToolbox framework use soft linking
https://bugs.webkit.org/show_bug.cgi?id=227250
<rdar://problem/79606090>
Reviewed by Eric Carlson.
Source/WebCore:
Unify AudioToolbox, CoreMedia, VideoToolbox and MediaToolbox's method
definitions and their use, ensuring that they are always soft-linked.
Unified builds and the inconsistent use of explicitly using the PAL namespace
caused some calls to be ambiguous leading to compilation errors; some
code would also use the softlinked methods while others called into the frameworks
directly.
To get around those we ensure that any calls to AudioToolbox or CoreMedia is always using
the fully resolved PAL name.
Remove unnecessaryusing namespace PAL;statements wherever applicable.
No change in observable behavior.
- Modules/mediastream/PeerConnectionBackend.cpp:
- Modules/plugins/QuickTimePluginReplacement.mm:
- Modules/webaudio/MediaStreamAudioSourceCocoa.cpp:
(WebCore::MediaStreamAudioSource::consumeAudio):
- dom/Document.cpp:
- html/HTMLCanvasElement.cpp:
- html/HTMLMediaElement.cpp:
- platform/audio/AudioFileReader.h:
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile): Deleted.
- platform/audio/cocoa/AudioFileReaderCocoa.h:
- platform/audio/cocoa/AudioOutputUnitAdaptor.cpp:
(WebCore::AudioOutputUnitAdaptor::~AudioOutputUnitAdaptor):
(WebCore::AudioOutputUnitAdaptor::start):
(WebCore::AudioOutputUnitAdaptor::stop):
- platform/audio/cocoa/AudioSampleBufferList.cpp:
(WebCore::AudioSampleBufferList::copyFrom):
- platform/audio/cocoa/AudioSampleDataSource.mm:
- platform/audio/cocoa/WebAudioBufferList.cpp:
(WebCore::WebAudioBufferList::WebAudioBufferList):
- platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::decodeAudioForBusCreation):
(WebCore::createBusFromAudioFile): Deleted.
- platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/audio/mac/AudioOutputUnitAdaptorMac.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/cocoa/MediaUtilities.cpp:
(WebCore::createAudioFormatDescription):
(WebCore::createAudioSampleBuffer):
- platform/graphics/RemoteVideoSample.cpp:
(WebCore::RemoteVideoSample::create):
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::create):
(WebCore::AudioSourceProviderAVFObjC::provideInput):
(WebCore::AudioSourceProviderAVFObjC::createMixIfNeeded):
(WebCore::AudioSourceProviderAVFObjC::finalizeCallback):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):
(WebCore::AudioSourceProviderAVFObjC::prepare):
(WebCore::AudioSourceProviderAVFObjC::process):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::isAvailable):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataGroupDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::EffectiveRateChangedListener::stop):
(WebCore::EffectiveRateChangedListener::EffectiveRateChangedListener):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCurrentTimeDidChangeCallback):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable):
(WebCore::videoTransformationMatrix):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::MediaSampleAVFObjC::createImageSample):
(WebCore::MediaSampleAVFObjC::presentationTime const):
(WebCore::MediaSampleAVFObjC::decodeTime const):
(WebCore::MediaSampleAVFObjC::duration const):
(WebCore::MediaSampleAVFObjC::sizeInBytes const):
(WebCore::MediaSampleAVFObjC::videoPixelFormat const):
(WebCore::isCMSampleBufferAttachmentRandomAccess):
(WebCore::doesCMSampleBufferHaveSyncInfo):
(WebCore::isCMSampleBufferRandomAccess):
(WebCore::isCMSampleBufferAttachmentNonDisplaying):
(WebCore::isCMSampleBufferNonDisplaying):
(WebCore::MediaSampleAVFObjC::presentationSize const):
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy):
(WebCore::MediaSampleAVFObjC::setTimestamps):
(WebCore::MediaSampleAVFObjC::isDivisable const):
(WebCore::MediaSampleAVFObjC::divide):
(WebCore::MediaSampleAVFObjC::createNonDisplayingCopy const):
(WebCore::MediaSampleAVFObjC::getRGBAImageData const):
(WebCore::setSampleBufferAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::isHomogeneous const):
(WebCore::MediaSampleAVFObjC::divideIntoHomogeneousSamples):
(WebCore::MediaSampleAVFObjC::cloneSampleBufferAndSetAsDisplayImmediately):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::bufferWasConsumedCallback):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::rendererWasAutomaticallyFlushed):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
(WebCore::SourceBufferPrivateAVFObjC::setMinimumUpcomingPresentationTime):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::OnFrame):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::convertToCMColorPrimaries):
(WebCore::convertToCMTransferFunction):
(WebCore::convertToCMYCbCRMatrix):
(WebCore::createFormatDescriptionFromVPCodecConfigurationRecord):
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WTF::CFTypeTrait<CMSampleBufferRef>::typeID):
(WebCore::WebCoreDecompressionSession::setTimebase):
(WebCore::WebCoreDecompressionSession::enqueueSample):
(WebCore::WebCoreDecompressionSession::shouldDecodeSample):
(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
(WebCore::WebCoreDecompressionSession::decodeSample):
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::automaticDequeue):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample):
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData const):
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame):
(WebCore::WebCoreDecompressionSession::imageForTime):
(WebCore::WebCoreDecompressionSession::flush):
(WebCore::WebCoreDecompressionSession::getDecodeTime):
(WebCore::WebCoreDecompressionSession::getPresentationTime):
(WebCore::WebCoreDecompressionSession::getDuration):
(WebCore::WebCoreDecompressionSession::compareBuffers):
(WebCore::WebCoreDecompressionSession::updateQosWithDecodeTimeStatistics):
- platform/graphics/cv/ImageTransferSessionVT.mm:
(WebCore::ImageTransferSessionVT::createPixelBuffer):
(WebCore::ImageTransferSessionVT::convertCMSampleBuffer):
(WebCore::ImageTransferSessionVT::createCMSampleBuffer):
- platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::PlaybackSessionInterfaceAVKit::seekableRangesChanged):
- platform/mac/VideoFullscreenInterfaceMac.mm:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:
(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initialize):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::provideSourceDataNumOutputPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
(WebCore::AudioSampleBufferCompressor::processSampleBuffer):
(WebCore::AudioSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::AudioSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::MediaRecorderPrivateWriter):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::startAssetWriter):
(WebCore::MediaRecorderPrivateWriter::appendCompressedVideoSampleBuffer):
(WebCore::appendEndsPreviousSampleDurationMarker):
(WebCore::copySampleBufferWithCurrentTimeStamp):
(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::completeFetchData):
(WebCore::MediaRecorderPrivateWriter::pause):
(WebCore::MediaRecorderPrivateWriter::resume):
- platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:
(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::initialize):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::videoCompressionCallback):
(WebCore::VideoSampleBufferCompressor::vtProfileLevel const):
(WebCore::VideoSampleBufferCompressor::initCompressionSession):
(WebCore::VideoSampleBufferCompressor::processSampleBuffer):
(WebCore::VideoSampleBufferCompressor::getOutputSampleBuffer):
(WebCore::VideoSampleBufferCompressor::takeOutputSampleBuffer):
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::start):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::stop):
(WebCore::LocalAudioMediaStreamTrackRendererInternalUnit::createAudioUnitIfNeeded):
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
(WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
(WebCore::AVVideoCaptureSource::generatePresets):
- platform/mediastream/mac/CoreAudioCaptureDevice.cpp:
(WebCore::CoreAudioCaptureDevice::deviceClock):
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::cleanupAudioUnit):
(WebCore::CoreAudioSharedUnit::reconfigureAudioUnit):
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioSharedUnit::stopInternal):
(WebCore::CoreAudioSharedUnit::defaultInputDevice):
- platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
- platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockAudioSharedUnit::reconfigure):
(WebCore::MockAudioSharedUnit::emitSampleBuffers):
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
(WebCore::RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable):
- platform/mediastream/mac/WindowDisplayCapturerMac.mm:
Source/WebCore/PAL:
- pal/cf/AudioToolboxSoftLink.cpp:
- pal/cf/AudioToolboxSoftLink.h: Add methods whose definitions were scattered across
the code.
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h: Same as above.
- pal/cf/AudioToolboxSoftLink.cpp:
- pal/cf/AudioToolboxSoftLink.h: Add missing methods
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h: Add missing methods
- pal/cf/VideoToolboxSoftLink.cpp:
- pal/cf/VideoToolboxSoftLink.h: Add missing methods and fix some spelling in define names
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h: Add missing methods
Source/WebKit:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp:
(WebKit::createWrapper):
(WebKit::wrapperStorage):
(WebKit::wrapperVTable):
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::copyProperty):
- Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:
(WebKit::MediaSampleByteRange::MediaSampleByteRange):
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- UIProcess/Media/cocoa/MediaUsageManagerCocoa.mm:
- WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- 8:43 PM Changeset in webkit [279207] by
-
- 2 edits in trunk/Source/WebCore
Remove #include <wtf/Optional.h>
https://bugs.webkit.org/show_bug.cgi?id=227335
Reviewed by Darin Adler.
- Modules/mediasession/MediaSessionCoordinatorPrivate.h:
- 8:34 PM Changeset in webkit [279206] by
-
- 3 edits in trunk/Source/WebCore
[iPadOS] A video cannot enter picture-in-picture when Safari is suspended
https://bugs.webkit.org/show_bug.cgi?id=227325
Reviewed by Eric Carlson.
When an element goes into the element fullscreen mode, a descendant video element
gains the ability to automatically enter picture-in-picture on application suspend.
However, the video element may lose the ability after some stress tests.
The root cause is related to
m_restoringFullscreenForPictureInPictureStop.
Under stress tests,-[AVPlayerViewController enterFullScreenAnimated:completionHandler]
may call the completion handler withsuccess == NO. The current implementation
will keepm_restoringFullscreenForPictureInPictureStopwith a wrong value,
so that the video cannot enter picture-in-picture automatically when the browser
is suspended.
This patch removes
m_restoringFullscreenForPictureInPictureStopsince it is not needed
after r269557.
Manually tested.
- platform/ios/VideoFullscreenInterfaceAVKit.h:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
- 8:32 PM Changeset in webkit [279205] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, mark imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https.html as flaky on iOS.
- platform/ios-wk2/TestExpectations:
- 8:27 PM Changeset in webkit [279204] by
-
- 4 edits in trunk/LayoutTests
Unreviewed, silence console logging for imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
The console logging was making the test flaky.
LayoutTests/imported/w3c:
- web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
LayoutTests:
- 7:06 PM Changeset in webkit [279203] by
-
- 8 edits2 adds in trunk
Fix some PerformanceNavigationTiming bugs
https://bugs.webkit.org/show_bug.cgi?id=227329
Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-23
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/navigation-timing/buffered-flag.window-expected.txt: Added.
- web-platform-tests/navigation-timing/buffered-flag.window.html: Added.
- web-platform-tests/navigation-timing/nav2_test_unique_nav_instances-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/navigation-timing/buffered-flag.window.html
This fixes two bugs:
- We need to delay the PerformanceObserver event until didFinishNavigation time, which is after iframes have also finished loading.
- We need to remember whether we've added the PerformanceNavigationTiming to a PerformanceObserver's list to avoid duplicate entries.
This fixes two WPT tests that were passed by Chrome and Firefox.
PerformanceNavigationTiming is still an off-by-default experimental feature, so this won't affect anything yet.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
- page/Performance.cpp:
(WebCore::Performance::appendBufferedEntriesByType const):
(WebCore::Performance::registerPerformanceObserver):
(WebCore::Performance::scheduleNavigationObservationTaskIfNeeded):
- page/Performance.h:
- page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::observe):
- page/PerformanceObserver.h:
(WebCore::PerformanceObserver::hasNavigationTiming const):
(WebCore::PerformanceObserver::addedNavigationTiming):
- 6:58 PM Changeset in webkit [279202] by
-
- 91 edits2 moves3 adds1 delete in trunk/LayoutTests
Update WPT resources from upstream
https://bugs.webkit.org/show_bug.cgi?id=227296
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/IndexedDB/idlharness.any-expected.txt:
- web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:
- web-platform-tests/WebCryptoAPI/idlharness.https.any-expected.txt:
- web-platform-tests/WebCryptoAPI/idlharness.https.any.worker-expected.txt:
- web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window-expected.txt:
- web-platform-tests/css/css-animations/idlharness-expected.txt:
- web-platform-tests/css/css-font-loading/idlharness.https-expected.txt:
- web-platform-tests/css/css-syntax/input-preprocessing-expected.txt:
- web-platform-tests/css/css-transitions/idlharness-expected.txt:
- web-platform-tests/css/cssom-view/idlharness-expected.txt:
- web-platform-tests/css/cssom/idlharness-expected.txt:
- web-platform-tests/dom/idlharness.any.worker-expected.txt:
- web-platform-tests/dom/idlharness.window-expected.txt:
- web-platform-tests/domparsing/idlharness.window-expected.txt:
- web-platform-tests/eventsource/idlharness-expected.txt:
- web-platform-tests/fetch/api/idlharness.any-expected.txt:
- web-platform-tests/fetch/api/idlharness.any.worker-expected.txt:
- web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any-expected.txt:
- web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any.worker-expected.txt:
- web-platform-tests/hr-time/idlharness.any-expected.txt:
- web-platform-tests/hr-time/idlharness.any.worker-expected.txt:
- web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic-expected.txt:
- web-platform-tests/html/dom/idlharness.worker-expected.txt:
- web-platform-tests/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt:
- web-platform-tests/interfaces/DOM-Parsing.idl:
- web-platform-tests/interfaces/SVG.idl:
- web-platform-tests/interfaces/mediasession.idl:
- web-platform-tests/mediasession/idlharness.window-expected.txt:
- web-platform-tests/notifications/idlharness.https.any-expected.txt:
- web-platform-tests/notifications/idlharness.https.any.worker-expected.txt:
- web-platform-tests/pointerevents/idlharness.window-expected.txt:
Rebaseline existing tests.
- web-platform-tests/resources/*: Updated.
LayoutTests:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 6:25 PM Changeset in webkit [279201] by
-
- 1 copy in tags/Safari-611.3.10.1.2
Tag Safari-611.3.10.1.2.
- 5:45 PM Changeset in webkit [279200] by
-
- 2 edits in trunk/Source/WebCore
Fix iOS Debug testing be removing the assert added in r279119
https://bugs.webkit.org/show_bug.cgi?id=227227
Reviewed by Eric Carlson.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::setEligibleForSmartRouting):
- 5:15 PM Changeset in webkit [279199] by
-
- 1 copy in tags/Safari-612.1.18.11.2
Tag Safari-612.1.18.11.2.
- 5:10 PM Changeset in webkit [279198] by
-
- 8 edits in branches/safari-612.1.18.11-branch/Source
Versioning.
WebKit-7612.1.18.11.2
- 4:44 PM Changeset in webkit [279197] by
-
- 3 edits in trunk/Source/WebKit
Add a delegate SPI to allow arbitrary gestures to ignore preventDefault() with active touch events
https://bugs.webkit.org/show_bug.cgi?id=227311
rdar://79624236
Reviewed by Tim Horton.
Add a UI delegate hook to allow internal clients to (easily) introduce gesture recognizers on WKWebView that are
capable of recognizing even if active touch events are prevented by the page. This allows Safari to stop
overriding an internal method on WKWebView,-_isNavigationSwipeGestureRecognizer:.
Testing this requires the ability to simulate touch events (through HID event dispatch) in API tests.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _touchEventsMustRequireGestureRecognizerToFail:]):
Note that we only consult the delegate here for gestures that are added directly to WKWebView. This is because
we already avoid deferring gestures that are added *above* WKWebView, and it's unnecessary to allow clients to
avoid deferring gestures that are internal to WebKit (i.e. added on WKContentView).
(-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
- 4:36 PM Changeset in webkit [279196] by
-
- 3 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit
Unreviewed build fix. rdar://problem/79474211
Sources/libwebrtc/Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:82:5: error: static_assert failed due to requirement 'sizeof (WebKitVP9Decoder_BaseClass.alignedClass.version) == sizeof(unsigned long)' CMBaseClass fixup is not required
- 4:00 PM Changeset in webkit [279195] by
-
- 6 edits4 adds in trunk
[iOS 15 Regression]: scroll position resets when using scroll snap
https://bugs.webkit.org/show_bug.cgi?id=226816
<rdar://problem/79081301>
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-06-23
Reviewed by Simon Fraser.
Source/WebKit:
To improve scrolling fluidity on iOS, have any sort of momentum scroll trigger directional
scroll snapping. This means that any momentum scroll will move to the next or previous scroll
position and not snap back. This improves behavior on tesla.com and also on the scroll
snapping demo on the WebKit page.
Tests: fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-main-frame.html
fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-overflow-scroll-area.html
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Pass the current scroll offset to
the RemoteScrollingCoordinatorProxy. Passing a value for this offset is the trigger for directional scroll
snapping.
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: Update method definitions.
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Pass the current offset.
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const): Ditto.
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Enable
directional scroll snapping for RenderLayers.
LayoutTests:
- fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-main-frame-expected.txt: Added.
- fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-main-frame.html: Added.
- fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-overflow-scroll-area-expected.txt: Added.
- fast/scrolling/ios/scroll-snap-with-momentum-scroll-in-overflow-scroll-area.html: Added.
- 3:37 PM Changeset in webkit [279194] by
-
- 1 copy in tags/Safari-612.1.18.11.1
Tag Safari-612.1.18.11.1.
- 3:09 PM Changeset in webkit [279193] by
-
- 10 edits in trunk/Source
Add a new pattern to instruction selector to utilize UBFIZ supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227204
Patch by Yijia Huang <Yijia Huang> on 2021-06-23
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch includes three parts:
A) Add UBFIZ to instruction selector.
B) Fix UBFX, introduced in https://bugs.webkit.org/show_bug.cgi?id=226984,
to match all patterns.
C) Fix error condition in one strength reduction introduced
Part A
Unsigned Bitfield Insert in Zero(UBFIZ), supported by ARM64, zeros the
destination register and copies any number of contiguous bits from a
source register into any position in the destination register. The
instruction selector can utilize this to lowering certain patterns in
B3 IR before further Air optimization.
Given the operation: ubfiz d, n, lsb, width
This is equivalent to "d = (n << lsb) & (((1 << width) - 1) << lsb)".
Since wasm introduces constant folding, then the matched patterns would be:
1.1 d = (n << lsb) & maskShift
1.2 d = maskShift & (n << lsb)
2.1 d = (n & mask) << lsb
2.2 d = (mask & n) << lsb
Where:
maskShift = mask << lsb
mask = (1 << width) - 1
To make the pattern matching in instruction selection beneficial to JIT, these
constraints should be introduced:
- 0 <= lsb < datasize
- 0 < width < datasize
- lsb + width <= datasize
Choose (n & mask) << lsb as the canonical form and introduce a strength reduction.
Turn this: (n << lsb) & maskShift
Into this: (n & mask) << lsb
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = lsb
Int @2 = 0b0110
Int @3 = Shl(@0, @1)
Int @4 = BitAnd(@3, @2)
Void@5 = Return(@4, Terminal)
Before Adding UBFIZ Pattern:
Old optimized AIR
Lshift %x0, $62, %x0, @3
And 0b0110, %x0, %x0, @4
Ret %x0, @5
After Adding UBFIZ Pattern:
New optimized AIR
Ubfiz %x0, lsb, 2, %x0, @4
Ret %x0, @5
Part B
Fix UBFX to match both patterns:
dest = (src >> lsb) & mask
dest = mask & (src >> lsb)
Where:
- mask = (1 << width) - 1
- 0 <= lsb < datasize
- 0 < width < datasize
- lsb + width <= datasize
Part C
Fix one B3 strength reduction.
Turn this: (src >> shiftAmount) & mask
Into this: src >> shiftAmount
With updated constraints:
- mask = (1 << width) - 1
- 0 <= shiftAmount < datasize
- 0 < width < datasize
- shiftAmount + width >= datasize
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::ubfiz32):
(JSC::MacroAssemblerARM64::ubfiz64):
- assembler/testmasm.cpp:
(JSC::testUbfiz32):
(JSC::testUbfiz64):
- b3/B3LowerToAir.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(testUbfx32ArgLeft):
(testUbfx32ArgRight):
(testUbfx64ArgLeft):
(testUbfx64ArgRight):
(testUbfiz32ArgLeft):
(testUbfiz32ArgRight):
(testUbfiz64ArgLeft):
(testUbfiz64ArgRight):
(addBitTests):
(testUbfx32): Deleted.
(testUbfx32PatternMatch): Deleted.
(testUbfx64): Deleted.
(testUbfx64PatternMatch): Deleted.
Source/WTF:
Add functions to count the consecutive zero bits (trailing) on the
right with modulus division and lookup. Reference: Bit Twiddling Hacks.
- wtf/MathExtras.h:
(WTF::countTrailingZeros):
- 3:04 PM Changeset in webkit [279192] by
-
- 6 edits13 adds in trunk/LayoutTests/imported/w3c
Resync IndexedDB WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227315
Reviewed by Darin Adler.
Resync IndexedDB WPT tests from upstream a38612f39e7752c3532080c.
- web-platform-tests/IndexedDB/*: Updated.
- 3:03 PM Changeset in webkit [279191] by
-
- 8 edits in branches/safari-612.1.18.11-branch/Source
Versioning.
WebKit-7612.1.18.11.1
- 2:42 PM Changeset in webkit [279190] by
-
- 8 edits in branches/safari-611.3.10.1-branch/Source
Versioning.
WebKit-7611.3.10.1.2
- 2:41 PM Changeset in webkit [279189] by
-
- 2 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc
Cherry-pick r279187. rdar://problem/79474211
WebKitDecoder.h should include TargetConditionals.h
https://bugs.webkit.org/show_bug.cgi?id=227314
<rdar://problem/79689776>
Reviewed by Geoff Garen.
- Source/webrtc/sdk/WebKit/WebKitDecoder.h: Include TargetConditionals.h so the TARGET_ defines are initialized correctly.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279187 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:41 PM Changeset in webkit [279188] by
-
- 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc
Cherry-pick r279101. rdar://problem/79474211
[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137
<rdar://problem/79464124>
Reviewed by Youenn Fablet.
- Source/webrtc/sdk/WebKit/WebKitDecoder.h: Define CMBASE_OBJECT_NEEDS_ALIGNMENT.
- Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: (webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on Mac and Mac Catalyst when building for x86_64 so function pointers are naturally aligned. Add static_asserts to ensure alignment and sizes are correct.
- Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp: (webrtc::createWebKitVP9Decoder): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279101 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:30 PM Changeset in webkit [279187] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
WebKitDecoder.h should include TargetConditionals.h
https://bugs.webkit.org/show_bug.cgi?id=227314
<rdar://problem/79689776>
Reviewed by Geoff Garen.
- Source/webrtc/sdk/WebKit/WebKitDecoder.h: Include TargetConditionals.h so the
TARGET_ defines are initialized correctly.
- 2:21 PM Changeset in webkit [279186] by
-
- 14 edits in trunk/Source
[Cocoa] Make the hostTime parameter to playSession a Monotonic time
https://bugs.webkit.org/show_bug.cgi?id=226515
Reviewed by Youenn Fablet.
Source/WebCore:
Fire the playSession action handler at approximately the hostTime indicated by the MediaSessionCoordinatorPrivate.
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::playSession):
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasession/MediaSessionCoordinatorPrivate.h:
(WebCore::MediaSessionCoordinatorClient::playSession):
Source/WebCore/PAL:
SoftLink CMClockConvertHostTimeToSystemUnits.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
Source/WebKit:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]):
(-[WKMediaSessionCoordinatorHelper playSessionWithCompletion:]):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::playSession):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:
(WebKit::RemoteMediaSessionCoordinator::playSession):
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
- 1:44 PM Changeset in webkit [279185] by
-
- 3 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 1:27 PM Changeset in webkit [279184] by
-
- 9 edits in trunk
Migrate App Privacy Report code from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=227045
<rdar://problem/74333287>
Reviewed by Alex Christensen.
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(processPCMRequest):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(contextString): Deleted.
This patch deletes the contextString function because it is no longer
needed now that CFNetwork sets the attribution context based on the
main document URL, and it seemed silly to migrate code from
WebKitAdditions just to delete it immediately. This also moves the
processPCMRequest function declaration from WebKitAdditions so we can
remove NETWORK_DATA_TASK_COCOA_ADDITIONS.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::isActingOnBehalfOfAFullWebBrowser):
(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::setLastNavigationWasAppBound):
Source/WTF:
Update compile flag naming to align with the App Privacy Report
feature. Added a new check for Symptoms for a simpler, more clear
check.
- wtf/PlatformEnableCocoa.h:
- wtf/PlatformHave.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
- 1:20 PM Changeset in webkit [279183] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
REGRESSION (r279169?): [MacOS] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html is consistently failing.
https://bugs.webkit.org/show_bug.cgi?id=227312
<rdar://problem/79684170>
Unreviewed, update python script used by the test to be compatible with the new WPT tools (updated in r279169).
- web-platform-tests/html/semantics/embedded-content/the-video-element/timeout_on_seek.py:
(main):
- 1:08 PM Changeset in webkit [279182] by
-
- 1 copy in branches/safari-612.1.18.11-branch
New branch.
- 1:02 PM Changeset in webkit [279181] by
-
- 7 edits in trunk
[iOS] Adopt new date picker presentation SPI
https://bugs.webkit.org/show_bug.cgi?id=227221
<rdar://problem/77930086>
Reviewed by Wenson Hsieh.
Source/WebKit:
In native applications, tapping on a compact UIDatePicker presents an
inline picker using _UIDatePickerOverlayPresentation. To avoid
maintaining our own presentation logic, and to better match the native
presentation, use _UIDatePickerOverlayPresentation when tapping on a
date/time input in WebKit.
Covered by existing tests.
- Platform/spi/ios/UIKitSPI.h:
Declare the SPI rather than importing the header directly, as the
_UIDatePickerOverlayAnchor enum is not available in all SDKs with
the header.
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePickerViewController initWithDatePicker:]):
(-[WKDateTimePickerViewController setDelegate:]):
(-[WKDateTimePicker initWithView:datePickerMode:]):
Create the UIDatePicker here so it can be shared by the old context menu
presentation and the new overlay presentation.
(-[WKDateTimePicker handleDatePickerPresentationDismissal]):
(-[WKDateTimePicker removeDatePickerPresentation]):
accessoryDoneeventually removes the presentation. If the date picker
is already being dismissed, do not dismiss it without an animation.
For programmatic dismissal (using blur()) this method is called prior to
accessoryDone, in which case we force dismissal without animation.
(-[WKDateTimePicker dateTimePickerViewControllerDidPressResetButton:]):
(-[WKDateTimePicker dateTimePickerViewControllerDidPressDoneButton:]):
(-[WKDateTimePicker showDateTimePicker]):
(-[WKDateTimePicker datePickerChanged:]):
(-[WKDateTimePicker reset:]):
(-[WKDateTimePicker done:]):
(-[WKDateTimePicker dealloc]):
(-[WKDateTimePicker _timeZoneOffsetFromGMT:]):
(-[WKDateTimePicker dateFormatterForPicker]):
(-[WKDateTimePicker _dateChangedSetAsNumber]):
(-[WKDateTimePicker _dateChangedSetAsString]):
(-[WKDateTimePicker setDateTimePickerToInitialValue]):
(-[WKDateTimePicker controlBeginEditing]):
(-[WKDateTimePicker controlEndEditing]):
(-[WKDateTimePicker calendarType]):
(-[WKDateTimePicker hour]):
(-[WKDateTimePicker minute]):
(-[WKDateTimePicker setHour:minute:]):
Source/WTF:
- wtf/PlatformHave.h:
Add HAVE(UIDATEPICKER_OVERLAY_PRESENTATION) and HAVE(UITOOLBAR_STANDARD_APPEARANCE).
LayoutTests:
- fast/forms/ios/constant-scroll-area-when-moving-focus-between-fields.html:
Re-order the call to wait for the keyboard to dismiss since the
presentation SPI doesn't tell us exactly when the presentation animation
is complete. The other alternative was to add a manual delay, however,
re-ordering the calls is safe and preserves the original test behavior.
- 12:40 PM Changeset in webkit [279180] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening, skip a WebGL2 test
https://bugs.webkit.org/show_bug.cgi?id=227303
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-23
- platform/glib/TestExpectations:
- 12:20 PM Changeset in webkit [279179] by
-
- 2 edits in trunk/Source/JavaScriptCore
add/removeManagedReference:withOwner: should have autoreleasepools
https://bugs.webkit.org/show_bug.cgi?id=227308
Reviewed by Darin Adler.
Since these APIs create autoreleased objects as an implementation detail
but don't return any to the caller there's no indication such autoreleased
objects could be accumulating. Additionally, it's entirely reasonable to
call these methods in a loop an a large set of objects, which further
exacerbates the problem.
- API/JSVirtualMachine.mm:
(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):
- 12:11 PM Changeset in webkit [279178] by
-
- 2 edits in trunk/Source/WebCore
Remove unneeded explicit exception checks in ScriptModuleLoader::evaluate().
https://bugs.webkit.org/show_bug.cgi?id=227302
Reviewed by Yusuke Suzuki.
A RELEASE_AND_RETURN will do because we're just propagating the exception to the
client in both cases.
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::evaluate):
- 11:49 AM Changeset in webkit [279177] by
-
- 2 edits in trunk/JSTests
Bound stress/put-by-id-flags with a fixed number of iterations
https://bugs.webkit.org/show_bug.cgi?id=227305
Reviewed by Mark Lam.
- stress/put-by-id-flags.js:
(numberOfDFGCompiles): Deleted.
- 11:38 AM Changeset in webkit [279176] by
-
- 1 edit2 adds in trunk/LayoutTests
CSSStyleDeclaration.getPropertyPriority() should return the empty string for invalid CSS properties
https://bugs.webkit.org/show_bug.cgi?id=227257
<rdar://problem/79622278>
Reviewed by Darin Adler.
Follow-up to r279125 to improve test coverage for usage of USVString in CSSStyleDeclaration.
- fast/css/CSSStyleDeclaration-setProperty-unicode-expected.txt: Added.
- fast/css/CSSStyleDeclaration-setProperty-unicode.html: Added.
- 11:34 AM Changeset in webkit [279175] by
-
- 2 edits in trunk/JSTests
Run typedarray-intrinsic-getters-change-prototype for a fixed set of iterations
https://bugs.webkit.org/show_bug.cgi?id=227304
Reviewed by Mark Lam.
- stress/typedarray-intrinsic-getters-change-prototype.js:
(body):
- 10:42 AM Changeset in webkit [279174] by
-
- 2 edits in trunk/LayoutTests
[macOS WK1] imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-snap-003.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=227085
Unreviewed test gardening.
Updating previous test expectation.
- platform/mac-wk1/TestExpectations:
- 10:14 AM Changeset in webkit [279173] by
-
- 8 edits in branches/safari-611.3.10.0-branch/Source
Versioning.
WebKit-7611.3.10.0.1
- 10:08 AM Changeset in webkit [279172] by
-
- 9 edits in trunk/Source
rAF driven WebGL submits excessive amount of GPU work when frames are slow
https://bugs.webkit.org/show_bug.cgi?id=227059
<rdar://problem/79385858>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-23
Reviewed by Kenneth Russell.
Source/ThirdParty/ANGLE:
Advertise GL_ARB_sync for the Metal backend.
Since GL_ARB_sync is core in OpenGL ES 3.0 and the Metal backend advertises OpenGL ES 3.0,
the API must be working already.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::initializeExtensions const):
Source/WebCore:
Limit in-flight WebGL frames to three frames. Do not continue preparation for display
until the commands for the oldest frame have been executed by the GPU.
This limits the impact slow frames have, especially in the
case where the compositor skip frames and WebKit would issue a new slow frame
on top of the skipped frame.
No new tests, tested manually with the pages referenced from the bugs.
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::waitAndUpdateOldestFrame):
- platform/graphics/angle/GraphicsContextGLANGLEUtilities.h:
(WebCore::ScopedGLFence::ScopedGLFence):
(WebCore::ScopedGLFence::operator=):
(WebCore::ScopedGLFence::~ScopedGLFence):
(WebCore::ScopedGLFence::reset):
(WebCore::ScopedGLFence::abandon):
(WebCore::ScopedGLFence::fenceSync):
(WebCore::ScopedGLFence::operator GLsync const):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- 9:59 AM Changeset in webkit [279171] by
-
- 24 edits5 adds in trunk
Accessibility support for image text recognition.
https://bugs.webkit.org/show_bug.cgi?id=224280
rdar://76348740
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/ios-simulator/image-overlay-elements.html
Exposes to accessibility clients the elements created by
WebPage::requestTextRecognition for static images. This allows clients
to present the recognized text in images to assistive technology users.
- Added a new AXObject subclass, AXImage, to encapsulate this functionality.
This class can be expanded to offload some of the image specific code
contained in AccessibilityRenderObject, AccessibilityNodeObject,
AccessibilityObject and others.
- Since requestTextRecognition is an async call, added an AXNotification
to notify clients when the image overlay elements are available for
consumption.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AXImage.cpp: Added.
(WebCore::AXImage::AXImage):
(WebCore::AXImage::create):
(WebCore::AXImage::roleValue const):
(WebCore::AXImage::imageOverlayElements):
- accessibility/AXImage.h: Added.
- accessibility/AXLogger.cpp:
(WebCore::operator<<):
- accessibility/AXObjectCache.cpp:
(WebCore::isSimpleImage): Determines whether a given element is a static
image.
(WebCore::createFromRenderer): Instantiate an AXImage object when
appropriate.
- accessibility/AXObjectCache.h:
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren const): Images can
have children.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::notificationPlatformName):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityElements]):
(-[WebAccessibilityObjectWrapper accessibilityImageOverlayElements]):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::isAXImageInstance const):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::children const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::children const):
(WTR::AccessibilityUIElement::imageOverlayElements const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::children const):
(WTR::AccessibilityUIElement::imageOverlayElements const):
LayoutTests:
- accessibility/image-link-expected.txt:
- accessibility/ios-simulator/image-overlay-elements-expected.txt: Added.
- accessibility/ios-simulator/image-overlay-elements.html: Added.
- accessibility/resources/green-400x400.png: Added.
- 9:25 AM Changeset in webkit [279170] by
-
- 7 edits2 adds in trunk
Add missing exception checks in ScriptModuleLoader and JSDOMPromiseDeferred.
https://bugs.webkit.org/show_bug.cgi?id=221374
rdar://problem/68911404
Reviewed by Yusuke Suzuki.
Based on patch by Frédéric Wang <fwang@igalia.com>.
Source/WebCore:
When an import call fails, ScriptModuleLoader::notifyFinished() rejects the
deferred promise with either a call to
DeferredPromise::reject(ExceptionCode, const String&, RejectAsHandled) or a call to
rejectToPropagateNetworkError() / DeferredPromise::rejectWithCallback(). When it
succeeds, it calls DeferredPromise::resolveWithPromise(). These correspond to three
places where we enter the VM. Catch scopes are thus added to handle uncaught
exceptions for DeferredPromise.
Currently, this logic for uncaught exceptions is already duplicated at several
places in the code, and is likely needed for other places too in follow-up work.
This patch however covers all the rejection and resolution calls from
ScriptModuleLoader. Additionally, it handles missing exception checks in
ScriptModuleLoader::evaluate.
Test: js/dom/modules/missing-exception-check-for-import.html
- bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::reject):
(WebCore::DeferredPromise::handleTerminationExceptionIfNeeded):
(WebCore::DeferredPromise::handleUncaughtException):
- bindings/js/JSDOMPromiseDeferred.h:
(WebCore::DeferredPromise::resolveWithCallback):
(WebCore::DeferredPromise::rejectWithCallback):
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::evaluate):
LayoutTests:
Add a regression test for import('./'). Depending on the system configuration this can
execute two different rejection methods from ScriptModuleLoader::notifyFinished().
In other words, we may get 2 different error messages. Hence, the test needs to
allow for this variance.
Additional test cases are added for rejectToPropagateNetworkError /
DeferredPromise::rejectWithCallback (e.g. module file not found), for
DeferredPromise::reject(ExceptionCode, const String&, RejectAsHandled) (e.g. module file does
not have JavaScript MIME type) and DeferredPromise::resolveWithCallback (e.g. module import
is successful).
Also update promise-rejection-might-stack-overflow.html now that the stack overflow error is
reported.
- js/dom/modules/missing-exception-check-for-import-expected.txt: Added.
- js/dom/modules/missing-exception-check-for-import.html: Added.
- js/dom/promise-rejection-might-stack-overflow-expected.txt:
- js/dom/promise-rejection-might-stack-overflow.html:
- 8:37 AM Changeset in webkit [279169] by
-
- 725 edits15 copies1 move682 adds32 deletes in trunk
Update WPT tools from upstream
https://bugs.webkit.org/show_bug.cgi?id=227255
Reviewed by Jonathan Bedard.
LayoutTests/imported/w3c:
Update WPT tools from upstream 94d018bb5d7c0d46df7ba1.
- web-platform-tests/tools/*: Updated.
Tools:
- Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer.init):
The WPT server requires Python v3 to run so fallback to python3 executable if
the python executable is v2.
- 8:20 AM Changeset in webkit [279168] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r279104.
https://bugs.webkit.org/show_bug.cgi?id=227292
Made various layout tests very flaky
Reverted changeset:
"[GPU Process] RELEASE_ASSERT in
RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may
fire if GPUP is relaunched"
https://bugs.webkit.org/show_bug.cgi?id=227229
https://trac.webkit.org/changeset/279104
- 8:20 AM Changeset in webkit [279167] by
-
- 2 edits in trunk/Source/JavaScriptCore
Run lazy properties initializers under a DeferTerminationForAWhile scope
https://bugs.webkit.org/show_bug.cgi?id=227271
Reviewed by Mark Lam.
We don't expect that exceptions can be thrown when initializing
a lazy property. Termination exceptions were preventing this from
being true. The latest example found is inside JSModuleLoader when
it asserts that no exception is thrown when creating its JSMap field.
This patch makes it so termination exceptions can't be thrown when
running lazy property initializers.
- runtime/LazyPropertyInlines.h:
(JSC::ElementType>::initLater):
(JSC::ElementType>::callFunc):
Jun 22, 2021:
- 11:34 PM Changeset in webkit [279166] by
-
- 2 edits in trunk/Source/WebKit
Message dropped when restoring webpages.
https://bugs.webkit.org/show_bug.cgi?id=227278
Reviewed by Tim Horton.
The message to initialize the state of highlightVisibility is dropped sometimes, but
fortunately, there is no need to pass the current state when initializing the
HighlightObserver, as WebPageProxy::creationParameters will obtain the correct
highlight state on initialization after r279078.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::setUpHighlightsObserver):
- 6:33 PM Changeset in webkit [279165] by
-
- 27 edits in trunk
Improve more of the CSS list style implementations
https://bugs.webkit.org/show_bug.cgi?id=227206
Reviewed by Antti Koivisto.
Source/WebCore:
Added support for 12 new values for list-style-type: disclosure-closed,
disclosure-open, ethiopic-numeric, japanese-formal, japanese-informal,
korean-hangul-formal, korean-hanja-formal, korean-hanja-informal,
simp-chinese-formal, simp-chinese-informal, trad-chinese-informal,
and trad-chinese-formal.
Improved implementation to match specification more closely for a few
existing values for list-style-type: armenian, cjk-ideographic, hebrew,
lower-armenian, lower-roman, upper-armenian, and upper-roman.
Fixed a rendering issue where we would position list items incorrectly
in list-style-position:inside cases because of measuring the list marker
widths and the list marker suffix widths separately and adding them
instead of measuring them together. This was causing some of the
Web Platform Tests, done using ref tests, to fail.
- accessibility/AccessibilityObject.cpp:
(WebCore::listMarkerTextForNode): Updated since
RenderListItem::markerTextWithSuffix now returns a StringView.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue const): Updated
to call RenderListMarker::textWithoutSuffix.
- accessibility/atk/WebKitAccessibleHyperlink.cpp:
(rangeLengthForObject): Ditto.
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(accessibilityObjectLength): Ditto.
(webkitAccessibleTextGetText): Updated since
RenderListItem::markerTextWithSuffix now returns a StringView.
- css/CSSPrimitiveValueMappings.h:
(WebCore::toCSSValueID): Factored this out into a separate helper.
Also made it take advantage of the relationship between the enumeration
and the CSS value keywords that the code in the other direction already
was relying on so we don't have to list all the keywords.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Refactored to call the
toCSSValueID function.
- css/CSSValueKeywords.in: Added 12 new list-type-style constants:
disclosure-open, disclosure-closed, japanese-informal, japanese-formal,
korean-hangul-formal, korean-hanja-informal, korean-hanja-formal,
simp-chinese-informal, simp-chinese-formal, trad-chinese-informal,
trad-chinese-formal, and ethiopic-numeric.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::isPredefinedCounterStyle): Updated
since the last predefined counter style is EthiopicNumeric.
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::markerTextWithoutSuffix const): Renamed from
markerText, and changed to return a StringView.
(WebCore::RenderListItem::markerTextWithSuffix const): Return a StringView.
- rendering/RenderListItem.h: Updated for the above.
- rendering/RenderListMarker.cpp:
(WebCore::toRoman): Deleted.
(WebCore::toAlphabeticOrNumeric): Tweaked to use compile time instead of
runtime checks for alphabetic vs. numeric.
(WebCore::toSymbolic): Updated for above.
(WebCore::toAlphabetic): Ditto.
(WebCore::toNumeric): Ditto.
(WebCore::toHebrewUnder1000): Deleted.
(WebCore::toHebrew): Deleted.
(WebCore::toArmenianUnder10000): Deleted.
(WebCore::toArmenian): Deleted.
(WebCore::toGeorgian): Deleted.
(WebCore::toCJKIdeographic): Added handling for negative numbers and also
tweaked coding style a bit.
(WebCore::toPredefinedAdditiveSystem): Added. Implements the additive
system concept, which we use below to re-implement Hebrew, Armenian,
Georgian, Japanese, and Korean styles.
(WebCore::toEthiopicNumeric): Added.
(WebCore::effectiveListMarkerType): Added the new styles. Also updated the
allowable values for CJKIdeographic to allow negative numbers, and for Hebrew
to no longer allow 0 or numbers over 10999. Also sorted the sections by the
name of the first list style type in each section.
(WebCore::listMarkerSuffix): Changed to return a StringView instead of a
UChar, and include the trailing space. Choose the suffix based on the
specified type and not the effective type, so fallback does not cause the
suffix to fall back. Added the new types.
(WebCore::suffixRequiresSpace): Deleted.
(WebCore::listMarkerText): Added implementations for all the new types.
Also updated the implementation of CJKIdeographic, LowerRoman, UpperRoman,
Armenian, UpperArmenian, LowerArmenian, Georgian, and Hebrew to match a
newer CSS specification draft, and in most cases was able to use
toPredefinedAdditiveSystem instead of language-specific functions.
(WebCore::RenderListMarker::createInlineBox): Stop using the isText function,
which was only used here.
(WebCore::RenderListMarker::paint): Updated for the name change of
relativeMarkerRect. Removed unneeded special case for ListStyleType::None.
Use the new RenderListMarker::textRun function, moving all the code that
deals with direction and suffix in there.
(WebCore::reversed): Added. Helper used by textRun.
(WebCore::RenderListMarker::textRun const): Added. Composes a TextRun for
drawing or measuring text. By using the same function in all those places,
we guarantee we measure the text together instead of in pieces, which fixes
some layout errors leading to test failures that measuring separately and
adding the results together was causing.
(WebCore::RenderListMarker::addOverflowFromListMarker): Use the data
member m_lineOffsetForListItem instead of the lineOffsetForListItem
function, which was only used here.
(WebCore::RenderListMarker::updateMarginsAndContent): Moved the check of
preferredLogicalWidthsDirty and the comment about it here.
(WebCore::RenderListMarker::updateContent): Moved check of
preferredLogicalWidthsDirty out of this function since one caller asserts
it, and so the other caller can do the check itself. Added code to set
m_textWithSuffix, m_textWithoutSuffixLength, and m_textIsLeftToRightDirection.
Removed unneeded special cases for ListStyleType::None, Circle, Disc, and
Square, which are all handled correctly by the main algorithm. Added a FIXME
about the inadequacy of our bidi algorithm implementation for the general case.
(WebCore::RenderListMarker::computePreferredLogicalWidths): Use the new
textRun function, allowing us to remove some special case code, including
the special cases for ListStyleType::None, Asterisks, Footnotes, and String.
(WebCore::RenderListMarker::updateMargins): Removed unneeded special case for
ListStyleType::None, and updated string empty checks for the new name of the
m_textWithSuffix data member.
(WebCore::RenderListMarker::suffix const): Deleted.
(WebCore::RenderListMarker::relativeMarkerRect): Renamed from
getRelativeMarkerRect. Use the new textRun function, allowing us to remove
some special case code, including the special cases for ListTyleType::None,
Asterisks, Footnotes, and String.
(WebCore::RenderListMarker::textWithoutSuffix const): Added.
- rendering/RenderListMarker.h: Marked functions as final instead of just
override. Got rid of unneeded suffix and lineOffsetForListItem functions.
Renamed text ot textWithoutSuffix and added textWithSuffix. Added textRun
private member function. Replaced m_text with m_textWithSuffix,
m_textWithoutSuffixLength, and m_textIsLeftToRightDirection.
- rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject): Use textWithoutSuffix.
(WebCore::markerTextForListItem): Use markerTextWithoutSuffix.
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<): Use getValueName from CSSValueKeywords.h and
toCSSValueID to avoid repeating the names of all the list style types here.
- rendering/style/RenderStyleConstants.h: Added the 12 new list style types.
Source/WTF:
- wtf/unicode/CharacterNames.h: Added blackDown/Left/RightPointingSmallTriangle.
LayoutTests:
- TestExpectations: Expect about 50 more css-counter-styles tests to pass.
- fast/lists/li-values-expected.txt: Updated to expect newly specified behavior. When
this test was written, the specification was different.
- fast/lists/li-values.html: Ditto.
- fast/lists/w3-css3-list-styles-fallback-style-expected.txt: Ditto. Also many of these
were expecting failures.
- fast/lists/w3-css3-list-styles-fallback-style.html: Ditto.
- fast/lists/w3-css3-list-styles-numeric-expected.txt: Ditto. Also added tests for
ethiopic-numeric.
- fast/lists/w3-css3-list-styles-numeric.html: Ditto.
- fast/lists/w3-list-styles-expected.txt: Updated expected result for 0 in Hebrew.
- platform/mac/TestExpectations: Moved some image failure expectations from here to the
main TestExpectations because they do not seem to be platform-specific.
- 6:32 PM Changeset in webkit [279164] by
-
- 28 edits1 copy in trunk/Source
[Live Text] [macOS] Add an internal option to disable inline text selection in images
https://bugs.webkit.org/show_bug.cgi?id=227265
rdar://79460142
Reviewed by Tim Horton.
Source/WebCore:
Add support for the new feature flag. See WebKit/ChangeLog for more details.
- en.lproj/Localizable.strings:
Add additional localizable strings to represent each of the possible titles for the "Quick Look"/"Look Up"
context menu item. When inline text selection is enabled, the item shows up as "Look Up", and is only added if
we actually discover visual search results.
However, when inline text selection is disabled, this item will always be added to the context menu under the
title "Quick Look", and will be retitled to either "Look Up in Quick Look" or "Select Text in Quick Look" once
either visual search results or text is recognized, respectively.
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
In the case where inline text selection is disabled, add the Quick Look item to the end of the context menu,
after a separator. Note that in the case where inline text selection is enabled, it doesn't actually matter
where we add this item, since it is automatically removed and only reinserted if we find visual search results
for the image.
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):
Rename the existing ContextMenuItemTagLookUpImage to ContextMenuItemTagQuickLookImage, since it is no longer
limited to the visual look up feature.
- page/EventHandler.cpp:
(WebCore::EventHandler::updateMouseEventTargetNode):
Consult the feature flag and avoid kicking off the text recognition timer if inline text selection is disabled.
- platform/ContextMenuItem.cpp:
(WebCore::isValidContextMenuAction):
- platform/ContextMenuItem.h:
- platform/LocalizedStrings.h:
- platform/cocoa/LocalizedStringsCocoa.mm:
(WebCore::contextMenuItemTagQuickLookImage):
(WebCore::contextMenuItemTagQuickLookImageForTextSelection):
(WebCore::contextMenuItemTagQuickLookImageForVisualSearch):
Source/WebKit:
Refactor Live Text and Visual Look Up logic, such that the ability to select text inside of images is behind an
internal feature flag that can be toggled at runtime. When Live Text is disabled, we'll unconditionally show the
"Look Up" context menu action using the more generic title "Quick Look". This "Quick Look" action is then
retitled to either "Look Up in Quick Look" or "Select Text in Quick Look" once image analysis completes.
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toImpl):
Rename ContextMenuItemTagLookUpImage to ContextMenuItemTagQuickLookImage.
- UIProcess/Cocoa/QuickLookPreviewActivity.h: Copied from Source/WebKit/UIProcess/mac/WKQuickLookPreviewController.h.
Move this enum out of WKQuickLookPreviewController.h, such that we can use and import it in non-Cocoa headers
and implementation files.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::computeHasImageAnalysisResults):
Rename
computeHasVisualSearchResultstocomputeHasImageAnalysisResults, and allow it to take a flag to
indicate whether or not it should request text recognition results or visual search results. We use this for the
"Quick Look" context menu action when inline text selection is disabled, in order to retitle the item to "Select
Text in Quick Look".
(WebKit::WebViewImpl::computeHasVisualSearchResults): Deleted.
- UIProcess/PageClient.h:
(WebKit::PageClient::computeHasImageAnalysisResults):
(WebKit::PageClient::computeHasVisualSearchResults): Deleted.
- UIProcess/WebContextMenuProxy.h:
(WebKit::WebContextMenuProxy::quickLookPreviewActivity const):
Add a flag to WebContextMenuProxy to determine what initial activity to use when presenting the QuickLook
preview panel after selecting the ContextMenuItemTagQuickLookImage item.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::computeHasImageAnalysisResults):
(WebKit::WebPageProxy::computeHasVisualSearchResults): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::computeHasImageAnalysisResults):
(WebKit::PageClientImpl::computeHasVisualSearchResults): Deleted.
- UIProcess/mac/WKQuickLookPreviewController.h:
- UIProcess/mac/WKQuickLookPreviewController.mm:
- UIProcess/mac/WebContextMenuProxyMac.h:
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
Add logic to either remove and reinsert the "Look Up" context menu action (if inline text selection in images is
enabled), or to promote the "Quick Look" context menu action to either "Select Text in Quick Look" or "Look Up
in Quick Look" in the case where inline text selection in images is disabled.
Note that when inline text selection in images is disabled, we'll first check for visual search results before
checking for text. This is because visual search results will take precedence over text selection (i.e., we'll
show "Look Up in Quick Look" even if both visual search results and text is present), so we can avoid performing
text analysis in the case where we already found visual search results.
(WebKit::WebContextMenuProxyMac::insertOrUpdateQuickLookImageItem):
(WebKit::WebContextMenuProxyMac::updateQuickLookContextMenuItemTitle):
Add a helper method to find and update the title of the NSMenuItem corresponding to
ContextMenuItemTagQuickLookImage. SeegetContextMenuFromItemsabove for more details.
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::handleContextMenuQuickLookImage):
(WebKit::WebPageProxy::handleContextMenuLookUpImage): Deleted.
Rename this to
handleContextMenuQuickLookImage, and have it take an argument to indicate whether the QuickLook
panel should start out in Visual Look Up mode.
- WebKit.xcodeproj/project.pbxproj:
Source/WebKitLegacy/mac:
Rename ContextMenuItemTagLookUpImage to ContextMenuItemTagQuickLookImage.
- WebView/WebHTMLView.mm:
(toTag):
Source/WTF:
Add a new internal feature flag. See WebKit ChangeLog for more details.
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 6:19 PM Changeset in webkit [279163] by
-
- 1 copy in tags/Safari-611.3.10.1.1
Tag Safari-611.3.10.1.1.
- 6:16 PM Changeset in webkit [279162] by
-
- 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc
Revert "Revert "Revert r279101. rdar://problem/79474211""
This reverts commit r279156.
- 6:16 PM Changeset in webkit [279161] by
-
- 1 edit in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.h
Revert "Unreviewed build fix. rdar://problem/79474211"
This reverts commit r279157.
- 6:00 PM Changeset in webkit [279160] by
-
- 1 copy in tags/Safari-611.3.8.1.1
Tag Safari-611.3.8.1.1.
- 5:43 PM Changeset in webkit [279159] by
-
- 1 copy in tags/Safari-612.1.18.1.4
Tag Safari-612.1.18.1.4.
- 5:27 PM Changeset in webkit [279158] by
-
- 3 edits in trunk/LayoutTests
[Catalina WK2 Debug/ iOS 14 Debug] fast/css-custom-paint/out-of-memory-while-adding-worklet-module.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=227273
Unrevieweed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 4:52 PM Changeset in webkit [279157] by
-
- 1 edit in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.h
Unreviewed build fix. rdar://problem/79474211
Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:82:5: error: static_assert failed due to requirement 'sizeof (WebKitVP8Decoder_BaseClass.alignedClass.version) == sizeof(unsigned long)'
- 4:52 PM Changeset in webkit [279156] by
-
- 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc
Revert "Revert r279101. rdar://problem/79474211"
This reverts commit r279154.
- 4:48 PM Changeset in webkit [279155] by
-
- 7 edits in trunk/Source/WebKit
[macOS] Suspend WebProcesses that are in the process cache
https://bugs.webkit.org/show_bug.cgi?id=227269
Reviewed by Geoffrey Garen.
Suspend WebProcesses that are in the process cache on macOS to make sure they use no CPU.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):
- UIProcess/WebProcessProxy.h:
- UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setIsInProcessCache):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 3:06 PM Changeset in webkit [279154] by
-
- 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc
Revert r279101. rdar://problem/79474211
This reverts commit r279141.
- 3:00 PM Changeset in webkit [279153] by
-
- 2 edits in branches/safari-611.3.8.1-branch/Source/ThirdParty/libwebrtc
Cherry-pick r278906. rdar://problem/79634523
Enable kVTVideoEncoderSpecification_RequiredLowLatency in case of MacOS software encoder
https://bugs.webkit.org/show_bug.cgi?id=226873
Reviewed by Eric Carlson.
In case software encoder is being created for baseline, we can use kVTVideoEncoderSpecification_RequiredLowLatency
which provides better bitrate management than the regular SW encoder while still generating baseline content.
We check whether SW encoder is created based on kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder.
If property is unsupported or if its value is false, it means the encoder is software.
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm: (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278906 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:58 PM Changeset in webkit [279152] by
-
- 8 edits in branches/safari-611.3.8.1-branch/Source
Versioning.
WebKit-7611.3.8.1.1
- 2:55 PM Changeset in webkit [279151] by
-
- 2 edits in trunk/Source/WebKit
Further unreviewed build fix after r279133: remove even more things.
- UIProcess/WebPageProxy.cpp:
- 2:43 PM Changeset in webkit [279150] by
-
- 1 copy in branches/safari-611.3.8.1-branch
New branch.
- 2:25 PM Changeset in webkit [279149] by
-
- 4 edits in trunk/Tools
[results.webkit.org] XSS vulnerability in configuration
https://bugs.webkit.org/show_bug.cgi?id=227267
<rdar://problem/74876210>
Reviewed by Dewei Zhu.
- Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/drawer.js: Escape configuration specification.
- Scripts/libraries/resultsdbpy/setup.py: Bump version.
- 2:25 PM Changeset in webkit [279148] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION: [iOS] ASSERTION FAILED: pixelBuffer->data().length() >= 4 under WebCore::sampleColor
https://bugs.webkit.org/show_bug.cgi?id=227256
<rdar://problem/79584286>
Unreviewed, speculative internal test fix.
- page/PageColorSampler.cpp:
(WebCore::sampleColor):
It seems like sometimes thePixelBuffercan have alength()of0. Instead of only
having anASSERTthat there are enough items, actually early-return.
- 2:20 PM Changeset in webkit [279147] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r279133: remove unnecessary includes and defines after upstreaming.
- UIProcess/WebPageProxy.cpp:
- 2:11 PM Changeset in webkit [279146] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] AVPlayer periodic time observer callback should use weakPtr
https://bugs.webkit.org/show_bug.cgi?id=227264
rdar://79269047
Reviewed by Jer Noble.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
- 2:07 PM Changeset in webkit [279145] by
-
- 7 edits in trunk
[macOS] Deny mach-lookup to the service 'com.apple.print.normalizerd'
https://bugs.webkit.org/show_bug.cgi?id=227248
<rdar://problem/79600557>
Reviewed by Brent Fulgham.
Source/WebKit:
Deny mach-lookup to the service 'com.apple.print.normalizerd' in the WebKit processes on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::gpuMachServices):
- WebProcess/com.apple.WebProcess.sb.in:
LayoutTests:
Skip EPS test, which is failing when this service is unavailable.
- platform/mac/TestExpectations:
- 2:00 PM Changeset in webkit [279144] by
-
- 8 edits in branches/safari-612.1.18.1-branch/Source
Versioning.
WebKit-7612.1.18.1.4
- 1:33 PM Changeset in webkit [279143] by
-
- 18 edits4 adds in trunk/Source/ThirdParty/ANGLE
[ANGLE] Support importing external MTLTextures
https://bugs.webkit.org/show_bug.cgi?id=226690
Reviewed by Tim Horton.
Support MTLTextures as GL textures.
Merge https://chromium-review.googlesource.com/c/angle/angle/+/2820178
- ANGLE.xcodeproj/project.pbxproj:
- extensions/EGL_ANGLE_metal_texture_client_buffer.txt: Added.
- include/EGL/eglext_angle.h:
- src/common/utilities.cpp:
(egl::IsExternalImageTarget):
- src/libANGLE/Caps.cpp:
(egl::DisplayExtensions::getStrings const):
- src/libANGLE/Caps.h:
- src/libANGLE/renderer/metal/BUILD.gn:
- src/libANGLE/renderer/metal/DisplayMtl.h:
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::createImage):
(rx::DisplayMtl::createExternalImageSibling):
(rx::DisplayMtl::generateExtensions const):
(rx::DisplayMtl::validateImageClientBuffer const):
(rx::DisplayMtl::initializeExtensions const):
- src/libANGLE/renderer/metal/ImageMtl.h: Added.
(rx::TextureImageSiblingMtl::getTexture const):
(rx::TextureImageSiblingMtl::getFormatMtl const):
(rx::ImageMtl::getTexture const):
(rx::ImageMtl::getImageTextureType const):
(rx::ImageMtl::getImageLevel const):
(rx::ImageMtl::getImageLayer const):
- src/libANGLE/renderer/metal/ImageMtl.mm: Added.
(rx::TextureImageSiblingMtl::TextureImageSiblingMtl):
(rx::TextureImageSiblingMtl::~TextureImageSiblingMtl):
(rx::TextureImageSiblingMtl::ValidateClientBuffer):
(rx::TextureImageSiblingMtl::initialize):
(rx::TextureImageSiblingMtl::initImpl):
(rx::TextureImageSiblingMtl::onDestroy):
(rx::TextureImageSiblingMtl::getFormat const):
(rx::TextureImageSiblingMtl::isRenderable const):
(rx::TextureImageSiblingMtl::isTexturable const):
(rx::TextureImageSiblingMtl::getSize const):
(rx::TextureImageSiblingMtl::getSamples const):
(rx::ImageMtl::ImageMtl):
(rx::ImageMtl::~ImageMtl):
(rx::ImageMtl::onDestroy):
(rx::ImageMtl::initialize):
(rx::ImageMtl::orphan):
- src/libANGLE/renderer/metal/RenderBufferMtl.mm:
(rx::RenderbufferMtl::setStorageEGLImageTarget):
- src/libANGLE/renderer/metal/TextureMtl.mm:
(rx::TextureMtl::setEGLImageTarget):
- src/libANGLE/renderer/metal/gen_mtl_format_table.py:
(gen_image_map_switch_mac_case.gen_format_assign_code):
(gen_image_mtl_to_angle_switch_string):
(main):
- src/libANGLE/renderer/metal/mtl_common.h:
- src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:
(rx::mtl::Format::MetalToAngleFormatID):
- src/libANGLE/renderer/metal/mtl_format_utils.h:
- src/libANGLE/validationEGL.cpp:
(egl::ValidateCreateImage):
- src/tests/BUILD.gn:
- src/tests/gl_tests/ImageTest.cpp:
(angle::TEST_P):
- src/tests/gl_tests/ImageTestMetal.mm: Added.
(angle::ScopeMetalTextureRef::ScopeMetalTextureRef):
(angle::ScopeMetalTextureRef::~ScopeMetalTextureRef):
(angle::ScopeMetalTextureRef::get const):
(angle::ScopeMetalTextureRef::operator id<MTLTexture> const):
(angle::ScopeMetalTextureRef::operator=):
(angle::ScopeMetalTextureRef::release):
(angle::CreateMetalTexture2D):
(angle::ImageTestMetal::ImageTestMetal):
(angle::ImageTestMetal::getMtlDevice):
(angle::ImageTestMetal::createMtlTexture2D):
(angle::ImageTestMetal::verifyResultsTexture):
(angle::ImageTestMetal::verifyResults2D):
(angle::ImageTestMetal::reinterpretHelper):
(angle::ImageTestMetal::hasImageNativeMetalTextureExt const):
(angle::ImageTestMetal::hasOESExt const):
(angle::ImageTestMetal::hasBaseExt const):
(angle::ImageTestMetal::sourceMetalTarget2D_helper):
(angle::TEST_P):
- 1:26 PM Changeset in webkit [279142] by
-
- 5 edits2 adds in trunk
[RenderTreeBuilder] ASSERTION FAILED: m_renderer in FloatingObject::renderer()
https://bugs.webkit.org/show_bug.cgi?id=227260
<rdar://77329323>
Reviewed by Antti Koivisto.
Source/WebCore:
This is a very similar to webkit.org/b/224996, where moving subtrees around fails to invalidate floating object sets in sibling blocks.
(see the Changelog entry for more details on how sibling invalidation works).
In this case the anonymous parent block is destroyed as it is no longer needed (and we move all its descendants out first). However this
block has an intruding float and this float is also registered in the sibling blocks.
Test: fast/block/float-assert-when-anon-parent-is-destroyed.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::moveChildren):
(WebCore::RenderTreeBuilder::removeFloatingObjects):
- rendering/updating/RenderTreeBuilder.h:
- rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::removeLeftoverAnonymousBlock):
LayoutTests:
- fast/block/float-assert-when-anon-parent-is-destroyed-expected.txt: Added.
- fast/block/float-assert-when-anon-parent-is-destroyed.html: Added.
- 1:13 PM Changeset in webkit [279141] by
-
- 4 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc
Cherry-pick r279101. rdar://problem/79474211
[Mac] libwebrtc CMBaseClass objects need alignment fixup
https://bugs.webkit.org/show_bug.cgi?id=227137
<rdar://problem/79464124>
Reviewed by Youenn Fablet.
- Source/webrtc/sdk/WebKit/WebKitDecoder.h: Define CMBASE_OBJECT_NEEDS_ALIGNMENT.
- Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: (webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on Mac and Mac Catalyst when building for x86_64 so function pointers are naturally aligned. Add static_asserts to ensure alignment and sizes are correct.
- Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp: (webrtc::createWebKitVP9Decoder): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279101 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:13 PM Changeset in webkit [279140] by
-
- 2 edits in branches/safari-611.3.10.1-branch/Source/ThirdParty/libwebrtc
Cherry-pick r278906. rdar://problem/79581492
Enable kVTVideoEncoderSpecification_RequiredLowLatency in case of MacOS software encoder
https://bugs.webkit.org/show_bug.cgi?id=226873
Reviewed by Eric Carlson.
In case software encoder is being created for baseline, we can use kVTVideoEncoderSpecification_RequiredLowLatency
which provides better bitrate management than the regular SW encoder while still generating baseline content.
We check whether SW encoder is created based on kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder.
If property is unsupported or if its value is false, it means the encoder is software.
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm: (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278906 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:08 PM Changeset in webkit [279139] by
-
- 8 edits in branches/safari-611.3.10.1-branch/Source
Versioning.
WebKit-7611.3.10.1.1
- 1:07 PM Changeset in webkit [279138] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed tvOS build fix after r279119: add PLATFORM(IOS) guards to exclude tvOS and Catalyst builds.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::setEligibleForSmartRouting):
- 12:47 PM Changeset in webkit [279137] by
-
- 4 edits in trunk/Source
[GLib] Rewrite NetworkCache::Data::adoptMap without FileSystem::MappedFileData::leakHandle and munmap
https://bugs.webkit.org/show_bug.cgi?id=227017
Reviewed by Carlos Garcia Campos.
Source/WebKit:
FileSystem::MappedFileData class wraps file mapping APIs like mmap
and munmap in cross-platform manner. NetworkCache::Data::adoptMap
shouldn't use FileSystem::MappedFileData::leakHandle and munmap.
- NetworkProcess/cache/NetworkCacheDataGLib.cpp:
(WebKit::NetworkCache::MapWrapper::~MapWrapper):
(WebKit::NetworkCache::Data::adoptMap):
Source/WTF:
- wtf/FileSystem.h: MappedFileData::leakHandle is used only if PLATFORM(COCOA) now.
- 12:38 PM Changeset in webkit [279136] by
-
- 1 copy in branches/safari-611.3.10.1-branch
New branch.
- 12:38 PM Changeset in webkit [279135] by
-
- 1 copy in branches/safari-611.3.10.0-branch
New branch.
- 11:53 AM Changeset in webkit [279134] by
-
- 8 edits in trunk/Source/JavaScriptCore
Add a new pattern to instruction selector to utilize SMADDL supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227188
Patch by Yijia Huang <Yijia Huang> on 2021-06-22
Reviewed by Saam Barati.
Signed Multiply-Add Long(SMADDL), supported by ARM64, multiplies two 32-bit
register values, adds a 64-bit register value, and writes the result to the
64-bit destination register. The instruction selector can utilize this to
lowering certain patterns in B3 IR before further Air optimization.
Given the operation:
smaddl d, n, m, a
The equivalent patterns would be:
d = a + SExt32(n) * SExt32(m)
d = SExt32(n) * SExt32(m) + a
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = SExt32(Trunc(ArgumentReg(%x1)))
Int @2 = SExt32(Trunc(ArgumentReg(%x2)))
Int @3 = Mul(@1, @2)
Int @4 = Add(@0, @3)
Void@5 = Return(@4, Terminal)
Before Adding SMADDL:
Old optimized AIR
SignExtend32ToPtr %x1, %x1, @1
SignExtend32ToPtr %x2, %x2, @2
MultiplyAdd64 %x1, %x2, %x0, %x0, @4
Ret64 %x0, @5
After Adding SMADDL:
New optimized AIR
MultiplyAddSignExtend32 %x1, %x2, %x0, %x0, @8
Ret64 %x0, @9
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::multiplyAddSignExtend32):
- assembler/testmasm.cpp:
(JSC::testMultiplyAddSignExtend32Left):
(JSC::testMultiplyAddSignExtend32Right):
- b3/B3LowerToAir.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(testMulAddArg):
(testMulAddArgsLeft):
(testMulAddArgsRight):
(testMulAddSignExtend32ArgsLeft):
(testMulAddSignExtend32ArgsRight):
(testMulAddArgsLeft32):
(testMulAddArgsRight32):
- b3/testb3_3.cpp:
(addArgTests):
- 11:49 AM Changeset in webkit [279133] by
-
- 5 edits1 copy10 adds in trunk/Source/WebKit
[Cocoa] Upstream GroupActivitiesCoordinator
https://bugs.webkit.org/show_bug.cgi?id=226757
Reviewed by Eric Carlson.
Upstream the backing objects for a GroupActivities-based MediaSessionCoordinator.
- SourcesCocoa.txt:
- UIProcess/Cocoa/GroupActivities/GroupActivitiesCoordinator.h: Added.
- UIProcess/Cocoa/GroupActivities/GroupActivitiesCoordinator.mm: Added.
(-[WKGroupActivitiesCoordinatorDelegate initWithParent:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssuePlayCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssuePauseCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssueSeekCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssueBufferingCommand:completionHandler:]):
(-[WKGroupActivitiesCoordinatorDelegate playbackCoordinator:didIssuePrepareTransitionCommand:]):
(WebKit::GroupActivitiesCoordinator::create):
(WebKit::GroupActivitiesCoordinator::GroupActivitiesCoordinator):
(WebKit::GroupActivitiesCoordinator::~GroupActivitiesCoordinator):
(WebKit::GroupActivitiesCoordinator::sessionStateChanged):
(WebKit::GroupActivitiesCoordinator::identifier const):
(WebKit::GroupActivitiesCoordinator::join):
(WebKit::GroupActivitiesCoordinator::leave):
(WebKit::GroupActivitiesCoordinator::seekTo):
(WebKit::GroupActivitiesCoordinator::play):
(WebKit::GroupActivitiesCoordinator::pause):
(WebKit::GroupActivitiesCoordinator::setTrack):
(WebKit::GroupActivitiesCoordinator::positionStateChanged):
(WebKit::GroupActivitiesCoordinator::readyStateChanged):
(WebKit::GroupActivitiesCoordinator::playbackStateChanged):
(WebKit::GroupActivitiesCoordinator::trackIdentifierChanged):
(WebKit::GroupActivitiesCoordinator::issuePlayCommand):
(WebKit::GroupActivitiesCoordinator::issuePauseCommand):
(WebKit::GroupActivitiesCoordinator::issueSeekCommand):
(WebKit::GroupActivitiesCoordinator::issueBufferingCommand):
(WebKit::GroupActivitiesCoordinator::issuePrepareTransitionCommand):
- UIProcess/Cocoa/GroupActivities/GroupActivitiesSession.h: Added.
(WebKit::GroupActivitiesSession::groupSession):
- UIProcess/Cocoa/GroupActivities/GroupActivitiesSession.mm: Added.
(WebKit::GroupActivitiesSession::create):
(WebKit::GroupActivitiesSession::GroupActivitiesSession):
(WebKit::GroupActivitiesSession::~GroupActivitiesSession):
(WebKit::GroupActivitiesSession::join):
(WebKit::GroupActivitiesSession::leave):
(WebKit::GroupActivitiesSession::state const):
(WebKit::GroupActivitiesSession::uuid const):
(WebKit::GroupActivitiesSession::fallbackURL const):
(WebKit::GroupActivitiesSession::addStateChangeObserver):
(WebKit::GroupActivitiesSession::addFallbackURLObserver):
- UIProcess/Cocoa/GroupActivities/GroupActivitiesSessionNotifier.h: Added.
- UIProcess/Cocoa/GroupActivities/GroupActivitiesSessionNotifier.mm: Added.
(WebKitSwiftLibrary):
(WebKit::GroupActivitiesSessionNotifier::sharedNotifier):
(WebKit::GroupActivitiesSessionNotifier::GroupActivitiesSessionNotifier):
(WebKit::GroupActivitiesSessionNotifier::sessionStateChanged):
(WebKit::GroupActivitiesSessionNotifier::addWebPage):
(WebKit::GroupActivitiesSessionNotifier::removeWebPage):
(WebKit::GroupActivitiesSessionNotifier::webPageURLChanged):
(WebKit::GroupActivitiesSessionNotifier::hasSessionForURL):
(WebKit::GroupActivitiesSessionNotifier::takeSessionForURL):
- UIProcess/Cocoa/GroupActivities/WKGroupSession.h: Added.
- UIProcess/Cocoa/GroupActivities/WKGroupSession.swift: Added.
(WKURLActivityWrapper.urlActivity):
(WKURLActivityWrapper.fallbackURL):
(WKGroupSessionWrapper.groupSession):
(WKGroupSessionWrapper.cancellables):
(WKGroupSessionWrapper.activity):
(WKGroupSessionWrapper.uuid):
(WKGroupSessionWrapper.wrapperSessionState(_:)):
(WKGroupSessionWrapper.state):
(WKGroupSessionWrapper.newActivityCallback):
(WKGroupSessionWrapper.stateChangedCallback):
(WKGroupSessionWrapper.join):
(WKGroupSessionWrapper.leave):
(WKGroupSessionWrapper.coordinate(_:)):
(WKGroupSessionWrapper.activityChanged(_:)):
(WKGroupSessionWrapper.stateChanged(_:)):
(WKGroupSessionObserver.newSessionCallback):
(WKGroupSessionObserver.cancellables):
(WKGroupSessionObserver.recievedSession(_:)):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::didCommitLoadForFrame):
- WebKit.xcodeproj/project.pbxproj:
- 11:48 AM Changeset in webkit [279132] by
-
- 2 edits in trunk/JSTests
Don't assume stress/out-of-memory-while-constructing-BytecodeGenerator.js will OOM
https://bugs.webkit.org/show_bug.cgi?id=227263
Reviewed by Yusuke Suzuki.
- stress/out-of-memory-while-constructing-BytecodeGenerator.js:
- 11:44 AM Changeset in webkit [279131] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening, add timeouts in new test
https://bugs.webkit.org/show_bug.cgi?id=227258
media/media-source/media-source-has-audio-video.html and
media/media-source/media-source-seek-unbuffered.html
have timed on GTK and WPE since they were added.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-22
- platform/glib/TestExpectations:
- 11:33 AM Changeset in webkit [279130] by
-
- 3 edits2 adds in trunk
REGRESSION (Safari 14): Submenus on https://codelearn.cat don't show
https://bugs.webkit.org/show_bug.cgi?id=225467
<rdar://problem/77612276>
Reviewed by Alan Bujtas.
Source/WebCore:
RenderBox::requiresLayerWithScrollableArea() is called via RenderLayer::styleChanged()
which is before layout, yet requiresLayerWithScrollableArea() was consulting layout-dependent
state under hasHorizontalOverflow() hasVerticalOverflow(). This resulted in composited scrolling layers sticking around after overflow style changed from
scrolltovisible.
Fix by just removing the "has overflow" checks; we make RenderLayerScrollableArea
for any non-visible overflow anyway. scrollsOverflow() checks hasOverflowClip(),
so all we need is a hasOverflowClip() check.
Remove some redundant comments and add a FIXME about layers which get RenderLayerScrollableAreas
but don't need them.
Test: compositing/overflow/overflow-scroll-to-visible.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::requiresLayerWithScrollableArea const):
LayoutTests:
- compositing/overflow/overflow-scroll-to-visible-expected.html: Added.
- compositing/overflow/overflow-scroll-to-visible.html: Added.
- 11:18 AM Changeset in webkit [279129] by
-
- 2 edits in trunk/JSTests
Run detach-buffer-during-iteration for fewer iterations
https://bugs.webkit.org/show_bug.cgi?id=227262
Reviewed by Yusuke Suzuki.
- stress/detach-buffer-during-iteration.js:
- 11:08 AM Changeset in webkit [279128] by
-
- 2 edits in trunk/JSTests
Run microbenchmarks/interpreter-wasm under runDefault only
https://bugs.webkit.org/show_bug.cgi?id=227261
Reviewed by Robin Morisset.
- microbenchmarks/interpreter-wasm.js:
- 11:04 AM Changeset in webkit [279127] by
-
- 1 copy in tags/Safari-611.3.10
Tag Safari-611.3.10.
- 10:48 AM Changeset in webkit [279126] by
-
- 17 edits in trunk
jitCompileAndSetHeuristics shouldn't return true when we fail to compile
https://bugs.webkit.org/show_bug.cgi?id=227155
Reviewed by Tadeu Zagallo.
JSTests:
- microbenchmarks/interpreter-wasm.js:
- microbenchmarks/memcpy-wasm-large.js:
- microbenchmarks/memcpy-wasm-medium.js:
- microbenchmarks/memcpy-wasm-small.js:
- microbenchmarks/memcpy-wasm.js:
- stress/wasm-error-message-cross-threads.js:
Source/JavaScriptCore:
jitCompileAndSetHeuristics should only return true when we've successfully
compiled a baseline JIT CodeBlock. However, with the rewrite to using a
unified JIT worklist, the code was changed to returning true when a
compilation finished, regardless of it being successful or not. This patch
fixes that error.
This bug was found by our existing executable allocation fuzzer, but at a low
hit rate. That fuzzer only ran a single test case. This patch also introduces
a new form of the executable fuzzer where we fail to allocate JIT code
randomly, and the crash manifests more reliably. And this patch also hooks
the new fuzzer into more JSC stress tests.
- dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::run):
- jit/ExecutableAllocationFuzz.cpp:
(JSC::doExecutableAllocationFuzzing):
- jsc.cpp:
(runJSC):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/OptionsList.h:
Source/WTF:
- wtf/WeakRandom.h:
Tools:
- Scripts/run-jsc-stress-tests:
- 10:43 AM Changeset in webkit [279125] by
-
- 5 edits2 adds in trunk
CSSStyleDeclaration.getPropertyPriority() should return the empty string for invalid CSS properties
https://bugs.webkit.org/show_bug.cgi?id=227257
Reviewed by Geoffrey Garen.
Source/WebCore:
CSSStyleDeclaration.getPropertyPriority() should return the empty string for invalid CSS properties,
not null. Corresponding specification:
Gecko and Blink match the specification here so changing our behavior improves compatibility.
Also use CSSOMString instead of DOMString in the CSSStyleDeclaration IDL to match the specification,
since I was modifying the IDL.
Test: fast/css/CSSStyleDeclaration-getPropertyPriority-invalid-property.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
- css/CSSStyleDeclaration.idl:
- css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
LayoutTests:
Add layout test coverage.
- fast/css/CSSStyleDeclaration-getPropertyPriority-invalid-property-expected.txt: Added.
- fast/css/CSSStyleDeclaration-getPropertyPriority-invalid-property.html: Added.
- 10:36 AM Changeset in webkit [279124] by
-
- 3 edits in branches/safari-611-branch/Source/ThirdParty/libwebrtc
Revert r279011. rdar://problem/79474211
This reverts commit r279021.
- 10:30 AM Changeset in webkit [279123] by
-
- 5 edits in trunk/Source/WebCore
Remove unused method in AudioFileReader
https://bugs.webkit.org/show_bug.cgi?id=227208
Reviewed by Chris Dumez.
Remove two unused methods in AudioFileReader and their related constructors.
- platform/audio/AudioFileReader.h:
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
- platform/audio/cocoa/AudioFileReaderCocoa.h:
- platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::decodeAudioForBusCreation):
- 10:00 AM Changeset in webkit [279122] by
-
- 2 edits in trunk/Source/WebKit
ASSERTION FAILED: videoFullscreenManager->client() == nullptr in WKFullScreenWindowController.mm
https://bugs.webkit.org/show_bug.cgi?id=227243
Reviewed by Eric Carlson.
-[WKFullScreenWindowController windowDidExitFullScreen:]needs to clear
its client like-[WKFullScreenWindowController didExitPictureInPicture]does.
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController windowDidExitFullScreen:]):
- 9:55 AM Changeset in webkit [279121] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.3.10
- 9:44 AM Changeset in webkit [279120] by
-
- 8 edits in trunk
Unreviewed, reverting r279083.
Broke Mac Builds
Reverted changeset:
"Migrate App Privacy Report code from WebKitAdditions"
https://bugs.webkit.org/show_bug.cgi?id=227045
https://commits.webkit.org/r279083
- 9:17 AM Changeset in webkit [279119] by
-
- 5 edits in trunk/Source/WebCore
[Cocoa] iOS device steals BT headphones from other devices during silent playback
https://bugs.webkit.org/show_bug.cgi?id=227227
<rdar://78792479>
Reviewed by Eric Carlson.
Source/WebCore:
Explicitly disable smart routing when WebKit itself does not explicitly activate its AVAudioSession.
The audio session will be implicitly activated even for audio-less or silent media playback, and
this will prevent headsets from being "stolen" when that session is implicitly activated.
- platform/audio/ios/AudioSessionIOS.h:
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::setEligibleForSmartRouting):
(WebCore::AudioSessionIOS::AudioSessionIOS):
(WebCore::AudioSessionIOS::tryToSetActiveInternal):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
- 9:16 AM Changeset in webkit [279118] by
-
- 2 edits in trunk/Source/WebCore
Make rendererIsEverNeeded check less strict
https://bugs.webkit.org/show_bug.cgi?id=226791
Patch by Rob Buis <rbuis@igalia.com> on 2021-06-22
Reviewed by Antti Koivisto.
Make rendererIsEverNeeded check less strict
in TreeResolver::resolveElement.
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
- 8:31 AM Changeset in webkit [279117] by
-
- 2 edits in trunk/Source/WebCore
Shrink sizeof(RegisteredEventListener)
https://bugs.webkit.org/show_bug.cgi?id=227230
Reviewed by Geoffrey Garen.
This patch changes the ordering of members of RegisteredEventListener to make it small from 24 to 16.
- dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::RegisteredEventListener):
(): Deleted.
- 7:54 AM Changeset in webkit [279116] by
-
- 2 edits in trunk/LayoutTests
[AppleWin] Update test expectations
https://bugs.webkit.org/show_bug.cgi?id=226970
Unreviewed test gardening.
- platform/win/TestExpectations:
- 6:25 AM Changeset in webkit [279115] by
-
- 6 edits in trunk
Functions dispatched to WorkQueue are sometimes destroyed in the calling thread due to block refcounting
https://bugs.webkit.org/show_bug.cgi?id=227160
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-22
Reviewed by Antti Koivisto.
Source/WebKit:
As an example, remove one workaround mutability of dispatched function
and nullptr assignment that was needed for working around
WorkQueue::dispatch bug where the dispatched function was not always
destroyed in the queue.
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
(WebKit::MediaTrackReader::finalize):
Source/WTF:
WorkQueue::dispatch Function bodies always execute in the thread of target
queue. However, sometimes the Function destruction would happen in the
dispatched-from thread. This is not what the WorkQueue::dispatch callers
expect.
Implement some of the WorkQueue::dispatch* in terms of dispatch_..._f()
variants which take a function and context pointer instead of a block.
Blocks are reference counted objects without the ability to pass the
ownership of the reference. For dispatch case, it means that caller will
need to hold the reference while dispatch_...() returns. In thread
contention cases the called block might complete and reference be
dropped in the thread of the queue before the dispatched-from thread
would drop its reference to the block. This would cause the dispatched
Function to be destroyed in the dispatched-from thread.
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::dispatchWorkItem):
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
(WTF::WorkQueue::dispatchSync):
Tools:
Test that the Function passed to WorkQueue::dispatch
is always destroyed in the WorkQueue. Test by using the
knowledge that WorkQueues use threads.
Start up many WorkQueues to create more thread contention
to ensure that the dispatched-from thread is sometimes not
run while the thread of the queue finishes processing
the dispatch.
- TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
(TestWebKitAPI::TEST):
- 6:01 AM Changeset in webkit [279114] by
-
- 2 edits in trunk/JSTests
Unskip stress/elidable-new-object-roflcopter-then-exit.js on MIPS/ARM
https://bugs.webkit.org/show_bug.cgi?id=227251
Unreviewed gardening.
No failures on either platform after 100 iterations.
- stress/elidable-new-object-roflcopter-then-exit.js:
- 6:01 AM Changeset in webkit [279113] by
-
- 2 edits in trunk/JSTests
Unskip microbenchmarks/redefine-property-data-dictionary.js on MIPS/ARM
https://bugs.webkit.org/show_bug.cgi?id=227252
Unreviewed gardening.
No failures on either platform after 100 iterations.
- microbenchmarks/redefine-property-data-dictionary.js:
- 5:50 AM Changeset in webkit [279112] by
-
- 4 edits3 adds in trunk/Tools
Test runner parses the names of value parametrised GTEST tests wrong
https://bugs.webkit.org/show_bug.cgi?id=227207
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-22
Reviewed by Jonathan Bedard.
Fix the parsing of test names.
- Scripts/webkitpy/api_tests/manager_unittest.py:
Add a test for the parsing.
- Scripts/webkitpy/api_tests/manager.py:
(Manager._test_list_from_output):
Fix the test name parsing.
The name is printed as:
ValueParametrizedTestsSupported/DogGreen # GetParam() = (Dog, Green)
- TestWebKitAPI/Test.h:
(TestWebKitAPI::TestParametersToStringFormatter::operator() const):
Add a general-purpose formatter for all value-parametrized tests
to use.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/Misc/TestRunnerTests.cpp: Added.
(TestWebKitAPI::TEST_P):
Add a value-parametrized test testing the test runner.
- 3:58 AM Changeset in webkit [279111] by
-
- 2 edits in trunk/JSTests
Unskip stress/array-species-create-should-handle-masquerader.js on mips
https://bugs.webkit.org/show_bug.cgi?id=227249
Unreviewed gardening.
No failure after 60 iterations.
- stress/array-species-create-should-handle-masquerader.js:
- 2:06 AM Changeset in webkit [279110] by
-
- 3 edits2 adds in trunk
Nullptr crash in null ptr deref in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
https://bugs.webkit.org/show_bug.cgi?id=226799
Patch by Frédéric Wang <fwang@igalia.com> on 2021-06-22
Reviewed by Ryosuke Niwa.
Source/WebCore:
Various places in ReplaceSelectionCommand::doApply() may execute mutation events and lead
to nodes being removed. This patch adds one more early return after the call to
makeInsertedContentRoundTrippableWithHTMLTreeBuilder() to ensure that the function
removeRedundantStylesAndKeepStyleSpanInline() is properly executed.
Test: fast/editing/paste-and-indent-microtask-crash.html
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
LayoutTests:
Add regression test.
- fast/editing/paste-and-indent-microtask-crash-expected.txt: Added.
- fast/editing/paste-and-indent-microtask-crash.html: Added.
- 1:37 AM Changeset in webkit [279109] by
-
- 11 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Update baselines after r278931.
https://bugs.webkit.org/show_bug.cgi?id=227183
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-22
- platform/glib/tables/mozilla/bugs/bug106795-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug16252-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug82946-2-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug126742-expected.png:
- platform/wpe/tables/mozilla/bugs/bug126742-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug1318-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug16252-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug57828-2-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug82946-2-expected.txt:
- 1:19 AM WebKitGTK/2.32.x edited by
- (diff)
- 1:06 AM Changeset in webkit [279108] by
-
- 19 edits in trunk
Implement width and height attributes on source elements of <picture>
https://bugs.webkit.org/show_bug.cgi?id=222368
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/picture-aspect-ratio-expected.txt:
Source/WebCore:
According to [1], the source element supports dimension attributes. The img element can use the width
and height attributes of the source element to determine its rendered dimensions and aspect-ratio.
In order to implement this, add m_sourceElement to HTMLImageElement to indicate the source element that
is selected. Also add invalidateAttributeMapping() to synchronize with the changes of source's attributes
to the img element. Then add collectExtraStyleForPresentationalHints() to collect style from source attributes.
[1] https://html.spec.whatwg.org/#the-source-element
- dom/ElementData.h:
- dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationalHintStyle): collectExtraStyleForPresentationalHints() when rebuild.
- dom/StyledElement.h:
(WebCore::StyledElement::collectExtraStyleForPresentationalHints): Add an interface to collect extra style from other elements.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::applyAspectRatioFromWidthAndHeightAttributesToStyle): Add width and height attributes as input variables.
- html/HTMLElement.h:
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::collectPresentationalHintsForAttribute):
(WebCore::HTMLImageElement::collectExtraStyleForPresentationalHints): If source element has width or height attributes, apply them
to width, height and aspect-ratio of the style.
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Keep the source element.
(WebCore::HTMLImageElement::selectImageSource): Reset the source element to null if no candidate is found.
(WebCore::HTMLImageElement::sourceElement const):
(WebCore::HTMLImageElement::setSourceElement):
(WebCore::HTMLImageElement::invalidateAttributeMapping): Invalidate the presentationalHintStyle.
- html/HTMLImageElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::collectPresentationalHintsForAttribute):
- html/HTMLPictureElement.cpp:
(WebCore::HTMLPictureElement::sourceDimensionAttributesChanged): Call invalidateAttributeMapping if source element's attributes are changed.
- html/HTMLPictureElement.h:
- html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::attributeChanged): Call sourceDimensionAttributesChanged if width or height attributes are changed.
- html/HTMLSourceElement.h:
- html/HTMLSourceElement.idl:
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::collectPresentationalHintsForAttribute):
LayoutTests:
- 12:56 AM Changeset in webkit [279107] by
-
- 3 edits in trunk/Source/JavaScriptCore
Properly set numFPRs on ARM with NEON/VFP_V3_D32
https://bugs.webkit.org/show_bug.cgi?id=227212
Reviewed by Filip Pizlo.
Don't hardcode the number of FP regs on ARMv7 to 16; when targetting a
CPU with NEON or VFP_V3_d32, the number of FP regs is 32.
This also reverts the recent change to add an extra word to RegisterSet
which essentially covered up for this mismatch. The reason this bug only
manifested on certain compiler versions was that GCC 8.4/8.5 where built using
our buildroot infrastructure, whereas the other GCC versions we tested with
were debian system toolchains, targetting a lowest common denominator.
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::std::initializer_list<int>):
- jit/RegisterSet.h:
- 12:42 AM Changeset in webkit [279106] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Force a copy of font data when receiving it from the untrusted web process
https://bugs.webkit.org/show_bug.cgi?id=227247
<rdar://problem/70825675>
Reviewed by Maciej Stachowiak.
Sending a SharedBuffer across IPC is implemented by having the receiver map a shmem into its address space. On
the sender's side, the shmem still exists, and a compromised web process could scribble data into it after
sending it. So, when the GPU process receives the font data, we need to make a copy of it locally to make sure
the data can't change out from under us.
No new tests because there is no behavior change.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):