Timeline
Dec 14, 2020:
- 11:06 PM Changeset in webkit [270824] by
-
- 4 edits2 adds in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Gardened several flaky failures.
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-network-error.sub-expected.txt: Added.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 10:28 PM Changeset in webkit [270823] by
-
- 26 edits15 adds in trunk
AX: implement prefers-contrast: more
https://bugs.webkit.org/show_bug.cgi?id=215507
<rdar://problem/67077492>
Reviewed by Dean Jackson.
Source/WebCore:
Implement prefers-contrast as defined in
https://drafts.csswg.org/mediaqueries-5/#prefers-contrast
Tests: fast/media/mq-prefers-contrast-forced-value.html
fast/media/mq-prefers-contrast-live-update-for-listener.html
fast/media/mq-prefers-contrast-live-update.html
fast/media/mq-prefers-contrast-matchMedia.html
fast/media/mq-prefers-contrast.html
- css/CSSValueKeywords.in:
- css/MediaFeatureNames.h:
- css/MediaQueryEvaluator.cpp:
(WebCore::isAccessibilitySettingsDependent):
(WebCore::prefersContrastEvaluate):
- css/MediaQueryExpression.cpp:
(WebCore::featureWithValidIdent):
(WebCore::isFeatureValidWithoutValue):
- page/Settings.yaml:
- platform/Theme.cpp:
(WebCore::Theme::userPrefersContrast const):
- platform/Theme.h:
- platform/ios/ThemeIOS.h:
- platform/ios/ThemeIOS.mm:
(WebCore::ThemeIOS::userPrefersContrast const):
- platform/mac/ThemeMac.h:
- platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::userPrefersContrast const):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::forcedPrefersContrastAccessibilityValue const):
(WebCore::InternalSettings::setForcedPrefersContrastAccessibilityValue):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
- testing/Internals.cpp:
(WebCore::Internals::userPrefersContrast const):
- testing/Internals.h:
- testing/Internals.idl:
- testing/Internals.mm:
(WebCore::Internals::userPrefersContrast const):
Source/WebCore/PAL:
- pal/ios/UIKitSoftLink.h:
LayoutTests:
- TestExpectations:
- fast/media/mq-prefers-contrast-forced-value.html: Added.
- fast/media/mq-prefers-contrast-live-update-for-listener-expected.txt: Added.
- fast/media/mq-prefers-contrast-live-update-for-listener.html: Added.
- fast/media/mq-prefers-contrast-live-update.html: Added.
- fast/media/mq-prefers-contrast-matchMedia-expected.html: Added.
- fast/media/mq-prefers-contrast-matchMedia.html: Added.
- fast/media/mq-prefers-contrast.html: Added.
- platform/ios-simulator/fast/media/mq-prefers-contrast-expected.html: Added.
- platform/ios-simulator/fast/media/mq-prefers-contrast-forced-value-expected.html: Added.
- platform/ios-simulator/fast/media/mq-prefers-contrast-live-update-expected.html: Added.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/fast/media/mq-prefers-contrast-expected.html: Added.
- platform/mac/fast/media/mq-prefers-contrast-forced-value-expected.html: Added.
- platform/mac/fast/media/mq-prefers-contrast-live-update-expected.html: Added.
- 10:16 PM Changeset in webkit [270822] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Update baseline after r270801.
- platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
- 8:36 PM Changeset in webkit [270821] by
-
- 1 copy in tags/Safari-611.1.8.1
Tag Safari-611.1.8.1.
- 8:17 PM Changeset in webkit [270820] by
-
- 8 edits in branches/safari-611.1.8-branch/Source
Versioning.
WebKit-7611.1.8.1
- 7:08 PM Changeset in webkit [270819] by
-
- 8 edits in trunk/Source
[Media in GPU Process][MSE] VP9 stream playback is not smooth
https://bugs.webkit.org/show_bug.cgi?id=219861
Reviewed by Eric Carlson.
Source/WebCore:
Change two methods of
MediaSourcePrivateto virtual so that we can implement them
inMediaSourcePrivateRemotewith IPC messages.
- platform/graphics/MediaSourcePrivate.h:
(WebCore::MediaSourcePrivate::setIsSeeking):
(WebCore::MediaSourcePrivate::setTimeFudgeFactor):
(WebCore::MediaSourcePrivate::timeFudgeFactor const):
Source/WebKit:
Add two new IPC messages in
RemoteMediaSourceProxyto setm_isSeekingand
m_timeFudgeFactorof theMediaSourcePrivaterunning in the GPU process.
- GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::setIsSeeking):
(WebKit::RemoteMediaSourceProxy::setTimeFudgeFactor):
- GPUProcess/media/RemoteMediaSourceProxy.h:
- GPUProcess/media/RemoteMediaSourceProxy.messages.in:
- WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:
(WebKit::MediaSourcePrivateRemote::setIsSeeking):
(WebKit::MediaSourcePrivateRemote::setTimeFudgeFactor):
- WebProcess/GPU/media/MediaSourcePrivateRemote.h:
- 6:58 PM Changeset in webkit [270818] by
-
- 2 edits in trunk/Source/WTF
Get more informatiton from assertion when uidna_openUTS46 fails
https://bugs.webkit.org/show_bug.cgi?id=219881
Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-14
Reviewed by Alexey Proskuryakov.
<rdar://problem/66988046> shows that this fails sometimes.
Updating the assertion should let me know more information.
- wtf/URLParser.cpp:
(WTF::URLParser::internationalDomainNameTranscoder):
- 5:29 PM Changeset in webkit [270817] by
-
- 4 edits in branches/safari-610-branch/Source
Cherry-pick r270449. rdar://problem/72298505
Add safety checks to xsltParamArrayFromParameterMap()
<https://webkit.org/b/219407>
<rdar://problem/71853069>
Reviewed by Darin Adler.
Source/WebCore:
- xml/XSLTProcessorLibxslt.cpp: (WebCore::xsltParamArrayFromParameterMap):
Source/WTF:
- wtf/PlatformHave.h: (HAVE_LIBXSLT_FIX_FOR_RADAR_71864140): Add.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270449 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:28 PM Changeset in webkit [270816] by
-
- 5 edits3 adds in branches/safari-610-branch
Cherry-pick r270373. rdar://problem/72298666
iframe with
sandbox=allow-top-navigation-by-user-activationcan navigate top frame when the user interacts with an iframe from another origin
https://bugs.webkit.org/show_bug.cgi?id=219413
<rdar://problem/64887657>
Reviewed by Geoffrey Garen.
Source/WebCore:
An iframe with
sandbox=allow-top-navigation-by-user-activationcan navigate the top frame when the user
interacts with an frame from another origin. This is not strict enough and does not match the behavior of
Chrome.
In Chrome, the user activation is only valid for the purpose of navigation if the user interacted with either:
- The iframe triggering the navigation
- A descendant iframe of the iframe triggering the navigation
- A frame from the same origin as the iframe triggering the navigation
This patch aligns our behavior with Chrome's.
Test: http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html
- dom/Document.cpp: (WebCore::Document::canNavigateInternal):
- dom/UserGestureIndicator.cpp: (WebCore::UserGestureToken::UserGestureToken): (WebCore::UserGestureToken::isValidForDocument const): (WebCore::UserGestureIndicator::processingUserGesture):
- dom/UserGestureIndicator.h: (WebCore::UserGestureToken::create):
LayoutTests:
Add layout test coverage.
- http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture-expected.txt: Added.
- http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html: Added.
- http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-message-handler.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:28 PM Changeset in webkit [270815] by
-
- 3 edits3 adds in branches/safari-610-branch
Cherry-pick r270367. rdar://problem/72298753
Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified
https://bugs.webkit.org/show_bug.cgi?id=219408
<rdar://problem/71049726>
Reviewed by Geoffrey Garen.
Source/WebCore:
Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified,
when the parent of the sandboxed iframe is not first-party.
Test: http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html
- dom/Document.cpp: (WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):
LayoutTests:
Add layout test coverage.
- http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe-expected.txt: Added.
- http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html: Added.
- http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-sandboxed-iframe.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:28 PM Changeset in webkit [270814] by
-
- 4 edits1 add in branches/safari-610-branch/Source/WebCore
Cherry-pick r269893. rdar://problem/72298580
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
https://bugs.webkit.org/show_bug.cgi?id=218637
<rdar://problem/71102126>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-16
Reviewed by Eric Carlson.
Patch by Jer Noble.
Treat internal compressed YUV pixel formats
kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange and
kCVPixelFormatType_AGX_420YpCbCr8BiPlanarFullRange as
kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange and
kCVPixelFormatType_420YpCbCr8BiPlanarFullRange when
using the OpenGL shader to convert video IOSurface to a WebGL
texture.
Fixes cases where the decoder outputs the compressed formats.
No new tests, adding more comprehensive test content suite is tracked
in another bug.
Source/WebCore:
- platform/graphics/cv/GraphicsContextGLCVANGLE.cpp: (WebCore::pixelRangeFromPixelFormat): (WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cf/CoreVideoSPI.h: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269893 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:27 PM Changeset in webkit [270813] by
-
- 3 edits in branches/safari-610-branch/Source/WebCore
Cherry-pick r269535. rdar://problem/72298703
Empty text runs can't be split any further.
https://bugs.webkit.org/show_bug.cgi?id=218506
Reviewed by David Kilzer and Ryosuke Niwa.
This patch ensures that when we can't fit an empty text run on the line (available space is negative) we don't
try to split it even when the style says so.
- layout/inlineformatting/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::processOverflowingContent const): (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
- layout/inlineformatting/text/TextUtil.cpp: (WebCore::Layout::TextUtil::fixedPitchWidth): (WebCore::Layout::TextUtil::split):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269535 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:16 PM Changeset in webkit [270812] by
-
- 2 edits in trunk/Tools
[Mac] MediaFormatReader.bundle fails to load in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=219879
Reviewed by Eric Carlson.
- WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::InjectedBundle::platformInitialize): Tell CoreMedia to allow unsigned format reader
plug-ins when running in WebKitTestRunner. This resolves test timeouts under
LayoutTests/webgl/2.0.0/.
- 5:01 PM Changeset in webkit [270811] by
-
- 3 edits in trunk/Source/WebKit
REGRESSION (r270677-r270693): Catalina Perf tests failing
https://bugs.webkit.org/show_bug.cgi?id=219802
<rdar://problem/72236108>
Reviewed by Brent Fulgham.
Create extension for RootDomainUserClient also for Intel Macs, and move logging rules outside of
HAVE(SANDBOX_MESSAGE_FILTERING) section in sandbox.
- UIProcess/WebPageProxy.cpp:
(WebKit::mediaRelatedIOKitClasses):
- WebProcess/com.apple.WebProcess.sb.in:
- 5:00 PM Changeset in webkit [270810] by
-
- 2 edits in trunk/Source/WebKit
Fix null dereference in WKURLCopyCFURL
https://bugs.webkit.org/show_bug.cgi?id=219877
<rdar://problem/48921304>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-14
Reviewed by Geoffrey Garen.
We had an optimistic assertion and crash reports indicating that it is not always true.
When it's not, return null instead of crashing.
- Shared/API/c/cf/WKURLCF.mm:
(WKURLCopyCFURL):
- 4:19 PM Changeset in webkit [270809] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r268604): fast/layoutformattingcontext/table-basic-row-vertical-align-baseline.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=219369
<rdar://problem/69985187>
Reviewed by Zalan Bujtas.
During TestController::resetStateToConsistentValues() there are lots of calls to
WebPage::preferencesDidChange() via the async IPC, and for some of those calls both
layoutFormattingContextIntegrationEnabled and layoutFormattingContextEnabled are true. If
Display::view() does a paint at that time, then we hit assertions because these
two settings are incompatible with eachother.
Fix by bailing from display if layoutFormattingContextIntegrationEnabled() is set.
- display/DisplayView.cpp:
(WebCore::Display::View::prepareForDisplay):
- 4:14 PM Changeset in webkit [270808] by
-
- 25 edits in trunk/Source
Unreviewed, reverting r270768.
Still crashes in debug in a different location
Reverted changeset:
"[GPUProcess] Crash under
AudioDestinationCocoa::setIsPlaying(bool)"
https://bugs.webkit.org/show_bug.cgi?id=219809
https://trac.webkit.org/changeset/270768
- 4:12 PM Changeset in webkit [270807] by
-
- 6 edits in trunk/Source
[Media in GPU Process][MSE] Fix crashes in a debug build
https://bugs.webkit.org/show_bug.cgi?id=219874
Reviewed by Eric Carlson.
Source/WebCore:
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::readyStateChanged):
(WebCore::SourceBuffer::audioTracks):
(WebCore::SourceBuffer::textTracks):
(WebCore::SourceBuffer::appendError):
(WebCore::SourceBuffer::trySignalAllSamplesEnqueued):
(WebCore::SourceBuffer::sourceBufferPrivateDurationChanged):
(WebCore::SourceBuffer::sourceBufferPrivateStreamEndedWithDecodeError):
Only use m_source when the pointer is valid.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::abort):
SourceBufferParser::invalidate() may crash if the parser is parsing data.
Source/WebKit:
We need to call the completion handler in error cases.
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveInitializationSegment):
- 3:44 PM Changeset in webkit [270806] by
-
- 14 edits in trunk/Source
[GPUProcess] Bump QoS to UserInteractive for real-time audio rendering thread
https://bugs.webkit.org/show_bug.cgi?id=219873
Reviewed by Eric Carlson.
Source/WebCore:
Use Default QoS for offline audio rendering and UserInteractive for real-time audio
rendering. Previously, we were using always UserInitiated QoS for all audio threads,
which is lower than UserInteractive [1].
[1] https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/PrioritizeWorkAtTheTaskLevel.html#//apple_ref/doc/uid/TP40013929-CH35-SW1
- Modules/webaudio/AudioWorkletMessagingProxy.cpp:
(WebCore::generateWorkletParameters):
- Modules/webaudio/AudioWorkletThread.cpp:
(WebCore::AudioWorkletThread::createThread):
- Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::startRendering):
- worklets/WorkletParameters.h:
(WebCore::WorkletParameters::isolatedCopy const):
Source/WebKit:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
Source/WTF:
Add QOS parameter to the Thread construct (similarly to WorkQueue) so that the caller can
specify which QoS to use for the thread. Previously, the code was using UserInteractive
QoS unconditionally, which may be too high is some cases and too low in others.
- wtf/Threading.cpp:
(WTF::Thread::create):
- wtf/Threading.h:
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::platformInitialize):
(WTF::dispatchQOSClass): Deleted.
- wtf/posix/ThreadingPOSIX.cpp:
(WTF::Thread::dispatchQOSClass):
(WTF::Thread::establishHandle):
- wtf/win/ThreadingWin.cpp:
(WTF::Thread::establishHandle):
- 2:55 PM Changeset in webkit [270805] by
-
- 23 edits in trunk/Source
[Media in GPU Process][MSE] WebM source buffer parser is not enabled
https://bugs.webkit.org/show_bug.cgi?id=219857
Reviewed by Eric Carlson.
Source/WebCore:
Function
isWebmParserAvailable()always return false whenSourceBufferParserWebM
runs in the GPU process becauseRuntimeEnabledFeatures::sharedFeatures().webMParserEnabled()
always returns false in the GPU process. Therefore,MediaSourcePrivateAVFObjCwill not
enable the VP9 support when media in GPU process is enabled.
This patch moves the call of
RuntimeEnabledFeatures::sharedFeatures().webMParserEnabled()
toMediaSource, which always runs in the web process and will get the correct value.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::createSourceBufferPrivate):
- platform/graphics/MediaSourcePrivate.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
- platform/graphics/cocoa/SourceBufferParser.cpp:
(WebCore::SourceBufferParser::create):
- platform/graphics/cocoa/SourceBufferParser.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::isWebmParserAvailable):
(WebCore::SourceBufferParserWebM::create):
Delete this function because it is not used.
- platform/graphics/cocoa/SourceBufferParserWebM.h:
- platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
- platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
- platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::addSourceBuffer):
- platform/mock/mediasource/MockMediaSourcePrivate.h:
Source/WebKit:
Share the value of
RuntimeEnabledFeatures::sharedFeatures().webMParserEnabled()
with the GPU process (RemoteMediaSourceProxy) whenMediaPlayerPrivateRemote
tries to load a media source.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::loadMediaSource):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::addSourceBuffer):
- GPUProcess/media/RemoteMediaSourceProxy.h:
- Shared/mac/MediaFormatReader/FormatReader.cpp:
(WebKit::FormatReader::parseByteSource):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::load):
- WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:
(WebKit::MediaSourcePrivateRemote::addSourceBuffer):
- WebProcess/GPU/media/MediaSourcePrivateRemote.h:
- 2:09 PM Changeset in webkit [270804] by
-
- 19 edits in trunk/Source/WebKit
[GPUProcess] Crash in SharedRingBufferStorage::setStorage() under GuardMalloc
https://bugs.webkit.org/show_bug.cgi?id=219867
Reviewed by Darin Adler.
SharedRingBufferStorage was holding a raw pointer to its client and we would sometimes
crash when dereferencing this client in SharedRingBufferStorage::setStorage() because
the client is not guaranteed to be alive.
To address the issue, I replace the SharedRingBufferStorage::Client with a lambda so
that the client can protect itself in the lambda if needed. In particular,
RemoteAudioSourceProviderProxy now protects itself in the lambda since the lifetime
of the CARingBuffer is not tied to the lifetime of RemoteAudioSourceProviderProxy.
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
(WebKit::RemoteAudioDestination::RemoteAudioDestination):
- GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:
(WebKit::RemoteAudioSourceProviderProxy::createRingBuffer):
- GPUProcess/media/RemoteAudioSourceProviderProxy.h:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
(WebKit::RemoteAudioMediaStreamTrackRenderer::RemoteAudioMediaStreamTrackRenderer):
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
(WebKit::RemoteMediaRecorder::RemoteMediaRecorder):
- Shared/Cocoa/SharedRingBufferStorage.cpp:
(WebKit::SharedRingBufferStorage::setStorage):
- Shared/Cocoa/SharedRingBufferStorage.h:
(WebKit::SharedRingBufferStorage::SharedRingBufferStorage):
(WebKit::SharedRingBufferStorage::invalidate):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::storageChanged):
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
(WebKit::m_ringBuffer):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
- WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::RemoteAudio):
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
(WebKit::AudioMediaStreamTrackRenderer::AudioMediaStreamTrackRenderer):
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
(WebKit::MediaRecorderPrivate::startRecording):
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
(WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::Source):
(WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::RemoteAudio::RemoteAudio):
- 1:33 PM Changeset in webkit [270803] by
-
- 10 edits in trunk/Source/WebCore
Make CachePolicy an enum class
https://bugs.webkit.org/show_bug.cgi?id=219856
Patch by Rob Buis <rbuis@igalia.com> on 2020-12-14
Reviewed by Alex Christensen.
Make CachePolicy an enum class.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::subresourceCachePolicy const):
- loader/FrameLoader.h:
- loader/cache/CachePolicy.h:
(): Deleted.
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
(WebCore::CachedResource::makeRevalidationDecision const):
- loader/cache/CachedResource.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::cachePolicy const):
- loader/cache/CachedResourceLoader.h:
- 12:58 PM Changeset in webkit [270802] by
-
- 2 edits in trunk/Source/WebKit
CrashTracer: com.apple.WebKit.Networking at WebKit: WTF::Detail::CallableWrapper<WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests()
https://bugs.webkit.org/show_bug.cgi?id=219860
<rdar://problem/72254207>
Reviewed by Alex Christensen.
No new tests, this should fix a crash.
m_networkSession is a weakPtr. We should check that the object it
references exists before trying to use it.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::clearSentAttributions):
(WebKit::PrivateClickMeasurementManager::updateTimerLastFired):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toString const):
(WebKit::PrivateClickMeasurementManager::markAllUnattributedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
- 12:55 PM Changeset in webkit [270801] by
-
- 11 edits in trunk
Simplify transform blending for simple cases
https://bugs.webkit.org/show_bug.cgi?id=219863
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Rebaseline some WPT test outputs, resulting in round numbers for animated transform output, including a few new PASS results.
- web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-matrix-composition-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
Source/WebCore:
Optimize two simple cases for transform blending. First, use matrices as-is for the cases when we blend with
progress equal to 0 or 1. Then, when rotating around an angle that's an increment of 360º, simply return the
existing matrix.
- platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::rotate):
(WebCore::TransformationMatrix::blend):
LayoutTests:
Rebaselining test output where -0 values are now +0.
- compositing/backing/animate-into-view-expected.txt:
- compositing/backing/animate-into-view-with-descendant-expected.txt:
- 12:43 PM Changeset in webkit [270800] by
-
- 1 edit in branches/safari-611.1.9-branch/Source/WebKit/Shared/ios/WebIOSEventFactory.mm
Cherry-pick r270759. rdar://problem/54616853
Unreviewed build fix after r270712.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:35 PM Changeset in webkit [270799] by
-
- 2 edits in trunk/LayoutTests
LayoutTests/webrtc/video-sframe.html is flaky on bots
https://bugs.webkit.org/show_bug.cgi?id=219849
Reviewed by Alex Christensen.
- webrtc/video-sframe.html:
Receiver counter might increment very quickly in background thread before the sender counter is also incremented.
Add a wait loop for sender counter as well.
- 12:24 PM Changeset in webkit [270798] by
-
- 4 edits in trunk/Source
Adopt symbol image API instead of SPI in WKPDFHUDView
https://bugs.webkit.org/show_bug.cgi?id=219866
Reviewed by Wenson Hsieh.
Source/WebCore/PAL:
- pal/spi/mac/NSImageSPI.h:
Source/WebKit:
- UIProcess/PDF/WKPDFHUDView.mm:
(-[WKPDFHUDView _getImageForControlName:]):
- 12:18 PM Changeset in webkit [270797] by
-
- 2 edits in trunk/Source/WebKit
[GLIB] Missing header for std::once_flag in WebKitInitialize.cpp
https://bugs.webkit.org/show_bug.cgi?id=219865
Reviewed by Alex Christensen.
- UIProcess/API/glib/WebKitInitialize.cpp:
- 11:55 AM Changeset in webkit [270796] by
-
- 10 edits in trunk/Source
GPU process sometimes hangs during MotionMark Focus when enabling GPU Process for DOM
https://bugs.webkit.org/show_bug.cgi?id=219839
<rdar://problem/71562635>
Reviewed by Tim Horton.
Source/WebCore:
See Source/WebKit/ChangeLog for more details.
- platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::prepareToAppendDisplayListItems):
(WebCore::ImageBuffer::clearDisplayList): Deleted.
Replace this method with
prepareToAppendDisplayListItems.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::prepareToAppend):
- platform/graphics/displaylists/DisplayList.h:
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemBuffer::prepareToAppend):
Plumb
prepareToAppendDisplayListItemsthroughDisplayListand into theDisplayList::ItemBuffer, as
prepareToAppend. This method swaps the current writable buffer out for the newItemBufferHandleprovided by
the caller, and resets the written bytes counter.
- platform/graphics/displaylists/DisplayListItemBuffer.h:
Source/WebKit:
Fixes an indefinite hang in the GPU process that may occur as a result of this very specific corner case in
concurrent display list processing:
[1] Let p and q represent two item buffers, and let A and B represent two remote image buffers whose drawing
contexts will be destinations for display list playback in the GPU process. Suppose p has k remaining bytes
where k >= 32, and A's writable buffer is mapped to a region closest to the end of p. In practice, when this
hang reproduces, k is a relatively small number (typically 32-40 bytes).
[2] Additionally, suppose that the GPU process is not reading from q (i.e. q's
unreadBytes()count is 0), and
that the GPU process has created a corresponding RemoteImageBuffer for A, but *not* a corresponding
RemoteImageBuffer for B.
[3] We now append a MetaCommandChangeDestinationImageBuffer item to change destinations from A to B, such that
p now has (k - 16) remaining bytes. In preparation for appending new items for B's display list, the logic
inRemoteRenderingBackendProxy::willAppendItemclears B's writable buffer, with the intention that B will
turn around and call out to the client layer for a new writable buffer again once it notices that it has no
writable buffer.
[4] If we then immediately try to append an item to B that is larger than (k - 32) bytes,
RemoteRenderingBackendProxy::findReusableDisplayListHandlewill see that the most recently used item
buffer p has insufficient space, and will instead return item buffer q. We end up appending the new item to
item buffer q.
[5] In the GPU process, we finish processing all available item data in p. When we encounter the destination
buffer change item, we set
m_pendingWakeupInfobefore going to sleep, due to the fact that the GPU process
has not learned about image buffer B yet (see the last part of step [2]).
[6] Later, in the GPU process, when we create a RemoteImageBuffer for B, we see that we have a
m_pendingWakeupInfowith destination image buffer B, so we resume display list processing. However, we're
unable to resume where we stopped, since B's display list (in the web process) immediately appended to q
instead of p, skipping MetaCommandChangeItemBuffer in the process. This manifests as an indefinite hang
insideRemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists, since we expect p to
have a nonzerounreadBytes()count.
[7] Now that the GPU process is in a broken state, the web process follows shortly -- in the Focus subtest of
MotionMark, this manifests as a web process crash soon after the GPU process begins to hang, because
RemoteImageBufferProxy::ensureBackendCreated()times out and returns null, and we subsequently dereference
null inRemoteLayerBackingStore::encode()after failing to ensure the image buffer backend.
To fix this, we target step [3]. Rather than clear B's writable buffer and expect it to append its new items to
p, we simply hand it p's item handle -- in this case, a handle with (k - 16) available bytes -- and set its
writable buffer before we try to append. In this scenario, doing this ensures that if we are about to append an
item that is larger than (k - 32) bytes, we will first leave a 16-byte MetaCommandChangeItemBuffer item inside p
before moving on to q. This eventually ensures that when the GPU process resumes display list processing after
creating a RemoteImageBuffer for B, it will see 16 unread bytes in p and then immediately continue reading data
from item buffer q.
Finally, note that in this scenario, p is always guaranteed to contain at least 16 available bytes after step
[3] (in other words, k >= 32). This is because all calls to append an item of size n bytes to an item buffer
check that there is a minimum (n + 16) bytes remaining (via logic inItemBuffer::swapWritableBufferIfNeeded),
such that it is, by design, always possible to append aMetaCommandChangeItemBufferitem if necessary. As
such, it is safe to return the most recently used item buffer's handle in step [4].
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::clearDisplayList):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::willAppendItem):
Call into
prepareToAppendDisplayListItemsinstead ofclearDisplayListwhen switching destination image
buffers. See problem diagnosis above for more detail.
(WebKit::RemoteRenderingBackendProxy::mostRecentlyUsedDisplayListHandle):
Pull logic to retrieve the most recently used display list handle out into a separate helper method.
(WebKit::RemoteRenderingBackendProxy::findReusableDisplayListHandle):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- 11:48 AM Changeset in webkit [270795] by
-
- 3 edits in trunk/Tools/buildstream
[Flatpak SDK] Update GTK4 to 3.99.5
https://bugs.webkit.org/show_bug.cgi?id=219781
Reviewed by Philippe Normand.
Looks like there was a mishap tagging the GTK RC, as the tag present
in their repo is 3.99.5.1 instead of 3.99.5.
- elements/sdk/glib.bst: Bump to 2.66 to reflect the bumped
requirement by GTK.
- elements/sdk/gtk.bst: Bump to 3.99.5.1
- 11:47 AM Changeset in webkit [270794] by
-
- 7 edits in trunk/Source
Move some of the work from JSLock to VMEntryScope
https://bugs.webkit.org/show_bug.cgi?id=219830
Reviewed by Mark Lam.
Source/JavaScriptCore:
We move several things from JSLock to VMEntryScope that could only be observed after we entered the VM:
- WasmThreads: only used when tiering up wasm, so VMEntryScope would have executed
- registerThreadForMachExceptionHandling: The mach exception handlers are used for:
- sigill crash analyzer: only relevant after we enter the vm
- wasm fault signal handler: same, we must be executing wasm and therefore VMEntryScope will have executed.
- VMTraps: only handles faults in JIT code
- firePrimitiveGigacageEnabledIfNecessary: Only watched by the JITs
This gives is a ~10% improvement on APIBench (score change from ~36.3 to ~39.9), but as it turns out the most expensive
call is adding the current thread to the heap as this requires acquiring two locks. We can't move this to VMEntryScope
since it's possible to use the API and GC without ever entering the VM, which would result in the current thread's stack
not being scanned. Instead, we just remember the last thread that acquired the lock and skip the call if we're seeing the
same thread again. This greatly amortizes the cost and gives us another ~10%:
CURRENT_API: Baseline Change
RichardsMostlyC: 62ms 32ms
RichardsMostlyObjC: 303ms 264ms
RichardsMostlySwift: 296ms 261ms
RichardsSomeC: 76ms 49ms
RichardsSomeObjC: 156ms 150ms
RichardsSomeSwift: 200ms 197ms
UPCOMING_API: Baseline Change
RichardsMostlyC: 19ms 19ms
RichardsMostlyObjC: 282ms 260ms
RichardsMostlySwift: 282ms 264ms
RichardsSomeC: 79ms 46ms
RichardsSomeObjC: 156ms 149ms
RichardsSomeSwift: 195ms 195ms
Score: 36.2211 43.3368
- runtime/JSLock.cpp:
(JSC::JSLock::didAcquireLock):
(JSC::JSLock::willReleaseLock):
- runtime/JSLock.h:
- runtime/VMEntryScope.cpp:
(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::~VMEntryScope):
Source/WTF:
Add a unique ID to threads. This uid is used in JSLock to avoid unnecessary work when the
same thread that last acquired the lock is reacquiring it.
- wtf/Threading.cpp:
- wtf/Threading.h:
(WTF::Thread::uid const):
(WTF::Thread::Thread):
- 11:39 AM Changeset in webkit [270793] by
-
- 2 edits in trunk/Source/WebKit
WebProcessProxy::destroySpeechRecognitionServer should check if identifier exists before removing MessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=219815
<rdar://problem/71369164>
Reviewed by Youenn Fablet.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::destroySpeechRecognitionServer):
- 11:36 AM Changeset in webkit [270792] by
-
- 2 edits in trunk/Source/WebKit
Drop duplicate call to makeUniqueRef() in RemoteAudioSourceProviderProxy::createRingBuffer()
https://bugs.webkit.org/show_bug.cgi?id=219859
Reviewed by Youenn Fablet.
- GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:
(WebKit::RemoteAudioSourceProviderProxy::createRingBuffer):
- 11:34 AM Changeset in webkit [270791] by
-
- 2 edits in trunk/Source/WebKit
Make sure WebProcessPool::setUseSeparateServiceWorkerProcess handles correctly destroyed process pools
https://bugs.webkit.org/show_bug.cgi?id=219773
<rdar://problem/71938320>
Reviewed by Alex Christensen.
Terminating a service worker process may destroy the web process pool.
Copy the vector of process pools before iterating over it to terminate service worker processes.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setUseSeparateServiceWorkerProcess):
- 11:27 AM Changeset in webkit [270790] by
-
- 7 edits in trunk
Remove WKDownloadDelegate.didWriteData
https://bugs.webkit.org/show_bug.cgi?id=219820
Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-14
Reviewed by Sam Weinig.
Source/WebKit:
API review revealed it was redundant with WKDownload.progress, which has KVO-compliant totalUnitCount and completedUnitCount.
- UIProcess/API/Cocoa/WKDownload.mm:
(-[WKDownload progress]):
- UIProcess/API/Cocoa/WKDownloadDelegate.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(-[DownloadObserver observeValueForKeyPath:ofObject:change:context:]):
(TestWebKitAPI::mutateFile):
- TestWebKitAPI/cocoa/TestDownloadDelegate.h:
- TestWebKitAPI/cocoa/TestDownloadDelegate.mm:
(-[TestDownloadDelegate download:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): Deleted.
- 11:20 AM Changeset in webkit [270789] by
-
- 2 edits in trunk/Source/WebCore
Fix rare crashes in Page::lockAllOverlayScrollbarsToHidden()
https://bugs.webkit.org/show_bug.cgi?id=219862
<rdar://problem/28205511>
Reviewed by Wenson Hsieh.
Crash data suggest that lockAllOverlayScrollbarsToHidden() can be called on a null
Page*, so check it.
- dom/Document.cpp:
(WebCore::Document::suspend):
(WebCore::Document::resume):
- 11:11 AM Changeset in webkit [270788] by
-
- 2 edits in branches/safari-611.1.9-branch/Source/ThirdParty/ANGLE
Cherry-pick r270779. rdar://problem/72304155
Fix build.
- src/gpu_info_util/SystemInfo_apple.mm: (angle::GetSystemInfo): ##if should be #if
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:59 AM Changeset in webkit [270787] by
-
- 9 edits in trunk/Source/WebCore
Fix for accessibility layout tests related to VisiblePositions in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=219807
Reviewed by Chris Fleizach.
Tests:
accessibility/mac/line-range-for-text-marker.html
accessibility/mac/visible-position-crash-for-text-node.html
- Moved remaining unimplemented AXIsolatedObject methods from the header
to the cpp file and added ASSERT_NOT_REACHED where pertinent. This will
allow to identify any method that needs implementation.
- Implemented the necessary VisiblePosition methods.
- Cleaned up and simplified platform code by calling directly into
AXCoreObject methods instead of unnecessary wrappers.
- accessibility/AccessibilityObjectInterface.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::init):
(WebCore::AXIsolatedObject::updateChildrenIfNecessary):
(WebCore::AXIsolatedObject::accessibilityHitTest):
(WebCore::AXIsolatedObject::boundsForVisiblePositionRange const):
(WebCore::AXIsolatedObject::lengthForVisiblePositionRange const):
(WebCore::AXIsolatedObject::visiblePositionForBounds const):
(WebCore::AXIsolatedObject::visiblePositionForPoint const):
(WebCore::AXIsolatedObject::nextVisiblePosition const):
(WebCore::AXIsolatedObject::previousVisiblePosition const):
(WebCore::AXIsolatedObject::nextWordEnd const):
(WebCore::AXIsolatedObject::previousWordStart const):
(WebCore::AXIsolatedObject::nextLineEndPosition const):
(WebCore::AXIsolatedObject::previousLineStartPosition const):
(WebCore::AXIsolatedObject::nextSentenceEndPosition const):
(WebCore::AXIsolatedObject::previousSentenceStartPosition const):
(WebCore::AXIsolatedObject::nextParagraphEndPosition const):
(WebCore::AXIsolatedObject::previousParagraphStartPosition const):
(WebCore::AXIsolatedObject::visiblePositionForIndex const):
(WebCore::AXIsolatedObject::indexForVisiblePosition const):
(WebCore::AXIsolatedObject::accessibilityObjectForPosition const):
(WebCore::AXIsolatedObject::plainTextRangeForVisiblePositionRange const):
(WebCore::AXIsolatedObject::index const):
(WebCore::AXIsolatedObject::lineBreaks const):
(WebCore::AXIsolatedObject::textUnderElement const):
(WebCore::AXIsolatedObject::accessibilityHitTest const): Deleted.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/mac/AccessibilityObjectBase.mm:
(WebCore::AccessibilityObject::titleAttributeValue const):
- accessibility/mac/WebAccessibilityObjectWrapperBase.h:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase baseAccessibilityTitle]): Deleted.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
- 10:51 AM Changeset in webkit [270786] by
-
- 1 edit4 adds in trunk/LayoutTests
Unreviewed test gardening after r270758.
- platform/mac-catalina/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback-expected.txt: Added.
- 10:43 AM Changeset in webkit [270785] by
-
- 2 edits in branches/safari-611.1.9-branch/Source/ThirdParty/ANGLE
Cherry-pick r270777. rdar://problem/72304155
Build fix for Mac Catalyst. Remove code that was accidentally
included in the previous commit.
- src/gpu_info_util/SystemInfo_apple.mm: (angle::GetSystemInfo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:43 AM Changeset in webkit [270784] by
-
- 11 edits in trunk
Implement ::file-selector-button pseudo-element.
https://bugs.webkit.org/show_bug.cgi?id=219836
Reviewed by Simon Fraser.
Source/WebCore:
Treat it like ::placeholder.
Tests: fast/css/css-selector-text.html (plus see the comment in
changelog).
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText const):
- css/SelectorPseudoElementTypeMap.in:
- css/formControlsIOS.css:
(input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::file-selector-button, button):
(input:matches([type="button"], [type="reset"]), input[type="file"]::file-selector-button, button):
- css/html.css:
(input[type="file"]::file-selector-button):
(input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::file-selector-button, button):
(input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::file-selector-button:active, button:active):
(input:matches([type="button"], [type="submit"], [type="reset"]):active:disabled,):
- css/parser/CSSParserSelector.cpp:
(WebCore::CSSParserSelector::parsePseudoElementSelector):
- css/themeWin.css:
(input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::file-selector-button, button):
- html/FileInputType.cpp:
(WebCore::UploadButtonElement::createInternal):
LayoutTests:
There are WPTs for this, but WebKit's importer doesn't handle
<link rel="mismatch"> which is used by these. Instead, I adapted UA
sheets to use the standard selector so we should get coverage, and
extended the existing tests for -webkit-file-upload-button.
- fast/css/css-selector-text-expected.txt:
- fast/css/css-selector-text.html: Tweak test to cover new pseudo.
- 10:36 AM Changeset in webkit [270783] by
-
- 2 edits in branches/safari-611.1.9-branch/Source/WebKit
Cherry-pick r270776. rdar://problem/72303521
[Mac] Enable
webm_format_readerfeature flag by default
https://bugs.webkit.org/show_bug.cgi?id=219858
Reviewed by Eric Carlson.
- FeatureFlags/WebKit.plist:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:36 AM Changeset in webkit [270782] by
-
- 1 edit in branches/safari-611.1.9-branch/Source/WebKit/Shared/mac/MediaFormatReader/SampleCursor.h
Cherry-pick r270761. rdar://problem/72303521
Try again to fix the build after r270758.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270761 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:36 AM Changeset in webkit [270781] by
-
- 2 edits in branches/safari-611.1.9-branch/Source/WebKit/Shared/mac/MediaFormatReader
Cherry-pick r270760. rdar://problem/72303521
Unreviewed build fix after r270758.
- Shared/mac/MediaFormatReader/CoreMediaWrapped.h: Unrelated renaming.
- Shared/mac/MediaFormatReader/SampleCursor.h: Removed an "#undef" meant for testing.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:35 AM Changeset in webkit [270780] by
-
- 38 edits3 copies21 adds in branches/safari-611.1.9-branch
Cherry-pick r270758. rdar://problem/72303521
Source/ThirdParty/libwebrtc:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- Source/webrtc/sdk/WebKit/CMBaseObjectSPI.h:
Source/WebCore:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
Updated expected results for existing tests.
For contiguous samples, teach MediaSample to remember their position and size in the
underlying byte stream. Added a runtime feature flag. Registered the format reader plug-in
at runtime.
- page/RuntimeEnabledFeatures.h:
- platform/MediaSample.h:
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/cocoa/SourceBufferParser.cpp:
- platform/graphics/cocoa/SourceBufferParser.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
- platform/graphics/cocoa/SourceBufferParserWebM.h:
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
- platform/mock/mediasource/MockSourceBufferPrivate.cpp:
- platform/network/mac/WebCoreURLResponse.mm:
Source/WebCore/PAL:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h:
- pal/spi/cf/CoreMediaSPI.h:
- pal/spi/cocoa/MediaToolboxSPI.h:
Source/WebKit:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
Implemented a MTPluginFormatReader for WebM containers. The format reader is responsible
for parsing a WebM byte stream (using SourceBufferParserWebM) into audio, video, and text
tracks. MediaToolbox can then create cursors to step through the tracks' samples in decode
or presentation order and access each sample's metadata (e.g., format description,
duration, key-frame status) and location in the byte stream.
- FeatureFlags/WebKit.plist:
- MediaFormatReaderPlugIn/Info.plist:
- MediaFormatReaderPlugIn/MediaFormatReaderPlugIn.cpp:
- Shared/API/c/mac/WKFormatReader.cpp: Added.
- Shared/API/c/mac/WKFormatReader.h: Added.
- Shared/WebPreferencesDefaultValues.cpp:
- Shared/WebPreferencesDefaultValues.h:
- Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp: Added.
- Shared/mac/MediaFormatReader/CoreMediaWrapped.h: Added.
- Shared/mac/MediaFormatReader/FormatReader.cpp: Added.
- Shared/mac/MediaFormatReader/FormatReader.h: Added.
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp: Added.
- Shared/mac/MediaFormatReader/MediaFormatReader.h: Added.
- Shared/mac/MediaFormatReader/SampleCursor.cpp: Added.
- Shared/mac/MediaFormatReader/SampleCursor.h: Added.
- Shared/mac/MediaFormatReader/TrackReader.cpp: Added.
- Shared/mac/MediaFormatReader/TrackReader.h: Added.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
[Mac] Register the format reader plug-in for WebM content types
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- Scripts/Preferences/WebPreferencesExperimental.yaml: Added an experimental web preference.
Tools:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- TestWebKitAPI/Tests/WebCore/SampleMap.cpp:
LayoutTests:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- platform/mac-catalina/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt:
- platform/mac-catalina/media/media-can-play-webm-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt:
- platform/mac-wk2/media/media-can-play-webm-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:23 AM Changeset in webkit [270779] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Fix build.
- src/gpu_info_util/SystemInfo_apple.mm:
(angle::GetSystemInfo):
##if should be #if
- 10:23 AM Changeset in webkit [270778] by
-
- 3 edits in branches/safari-611.1.9-branch/Source/WebKit
Cherry-pick r270754. rdar://problem/72301723
Fix the watchOS build after r270712
<rdar://problem/72265227>
- Shared/ios/WebIOSEventFactory.h:
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270754 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:11 AM Changeset in webkit [270777] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Build fix for Mac Catalyst. Remove code that was accidentally
included in the previous commit.
- src/gpu_info_util/SystemInfo_apple.mm:
(angle::GetSystemInfo):
- 10:04 AM Changeset in webkit [270776] by
-
- 2 edits in trunk/Source/WebKit
[Mac] Enable
webm_format_readerfeature flag by default
https://bugs.webkit.org/show_bug.cgi?id=219858
Reviewed by Eric Carlson.
- FeatureFlags/WebKit.plist:
- 10:03 AM Changeset in webkit [270775] by
-
- 4 edits in trunk/Source/WebKit
Web process crashes during MotionMark Images when GPU Process for DOM is enabled
https://bugs.webkit.org/show_bug.cgi?id=219838
Reviewed by Simon Fraser.
It's possible to return prematurely with a null backend when waiting for image buffer backend creation under
RemoteImageBufferProxy::ensureBackendCreated(). Consider the following scenario (where WEB and GPU denote
events that occur in the web and GPU processes, respectively):
- (WEB) RemoteImageBufferProxy A is created in the web process.
- (GPU) RemoteImageBuffer A is created in the GPU process, along with an image buffer backend for A.
- (WEB) RemoteImageBufferProxy B is created in the web process.
- (GPU) RemoteImageBuffer B is created in the GPU process, along with an image buffer backend for B.
- (WEB) Something calls
RemoteImageBufferProxy::ensureBackendCreated()on B. - (WEB) We receive the
RemoteRenderingBackendProxy::DidCreateImageBufferBackendmessage for A.
B subsequently finishes waiting for backend creation because it incorrectly believes that its backend has been
initialized, and we end up crashing downstream inRemoteLayerBackingStore::encode()because
ensureBackendCreated()for B returned null.
To fix this, we adopt a similar strategy to what we use in
waitForDidFlushWithTimeout(), and repeatedly call
waitForDidCreateImageBufferBackend()until the backend has been created (allowing for an arbitrary number of
IPC timeouts or failures). Since this counter is only incremented upon timeout (or any other kind of IPC
communication failure), we'll simply receiveRemoteRenderingBackendProxy::DidCreateImageBufferBackendmessages
until we confirm (in the web process) that the current image buffer's backend has been initialized.
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
Drive-by fix: clarify this code by returning an enum to indicate whether or not we successfully received a
backend creation IPC response from the GPU process, instead of just returning a bool.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- 9:49 AM Changeset in webkit [270774] by
-
- 1 copy in branches/safari-611.1.9-branch
New branch.
- 9:48 AM Changeset in webkit [270773] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7611.1.10
- 9:45 AM Changeset in webkit [270772] by
-
- 12 edits5 copies8 adds in trunk
Implement recognizer for SpeechRecognition
https://bugs.webkit.org/show_bug.cgi?id=219459
<rdar://problem/71914465>
Reviewed by Youenn Fablet.
Source/WebCore:
Add WebSpeechRecognizerTask, which connects to speech recognition service using Speech framework APIs.
Tests: fast/speechrecognition/ios/restart-recognition-after-stop.html
fast/speechrecognition/ios/start-recognition-then-stop.html
- Modules/speech/SpeechRecognizer.cpp:
(WebCore::SpeechRecognizer::reset):
(WebCore::SpeechRecognizer::abort):
(WebCore::SpeechRecognizer::stop):
(WebCore::SpeechRecognizer::start):
(WebCore::SpeechRecognizer::startCapture):
(WebCore::SpeechRecognizer::stopCapture):
(WebCore::SpeechRecognizer::dataCaptured):
(WebCore::SpeechRecognizer::startRecognition):
(WebCore::SpeechRecognizer::abortRecognition):
(WebCore::SpeechRecognizer::stopRecognition):
(WebCore::SpeechRecognizer::resetRecognition):
(WebCore::SpeechRecognizer::setSource): Deleted.
(WebCore::SpeechRecognizer::stopInternal): Deleted.
- Modules/speech/SpeechRecognizer.h:
- Modules/speech/cocoa/SpeechRecognizerCocoa.mm: Added.
(WebCore::SpeechRecognizer::dataCaptured):
(WebCore::SpeechRecognizer::startRecognition):
(WebCore::SpeechRecognizer::stopRecognition):
(WebCore::SpeechRecognizer::abortRecognition):
(WebCore::SpeechRecognizer::resetRecognition):
- Modules/speech/cocoa/WebSpeechRecognizerTask.h: Added.
- Modules/speech/cocoa/WebSpeechRecognizerTask.mm: Added.
(-[WebSpeechRecognizerTaskImpl initWithIdentifier:locale:doMultipleRecognitions:reportInterimResults:maxAlternatives:delegateCallback:]):
(-[WebSpeechRecognizerTaskImpl callbackWithResult:isFinal:]):
(-[WebSpeechRecognizerTaskImpl audioSamplesAvailable:]):
(-[WebSpeechRecognizerTaskImpl abort]):
(-[WebSpeechRecognizerTaskImpl stop]):
(-[WebSpeechRecognizerTaskImpl sendSpeechStartIfNeeded]):
(-[WebSpeechRecognizerTaskImpl sendSpeechEndIfNeeded]):
(-[WebSpeechRecognizerTaskImpl sendEndIfNeeded]):
(-[WebSpeechRecognizerTaskImpl speechRecognizer:availabilityDidChange:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didHypothesizeTranscription:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didFinishRecognition:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTaskWasCancelled:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didFinishSuccessfully:]):
(-[WebSpeechRecognizerTask initWithIdentifier:locale:doMultipleRecognitions:reportInterimResults:maxAlternatives:delegateCallback:]):
(-[WebSpeechRecognizerTask audioSamplesAvailable:]):
(-[WebSpeechRecognizerTask abort]):
(-[WebSpeechRecognizerTask stop]):
- Modules/speech/cocoa/WebSpeechRecognizerTaskMock.h: Added.
- Modules/speech/cocoa/WebSpeechRecognizerTaskMock.mm: Added.
(-[WebSpeechRecognizerTaskMock initWithIdentifier:locale:doMultipleRecognitions:reportInterimResults:maxAlternatives:delegateCallback:]):
(-[WebSpeechRecognizerTaskMock audioSamplesAvailable:]):
(-[WebSpeechRecognizerTaskMock abort]):
(-[WebSpeechRecognizerTaskMock stop]):
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
Source/WebCore/PAL:
Add soft linking to Speech framework and SPI.
- PAL.xcodeproj/project.pbxproj:
- pal/cocoa/SpeechSoftLink.h: Added.
- pal/cocoa/SpeechSoftLink.mm: Added.
- pal/spi/cocoa/SpeechSPI.h: Added.
Source/WebKit:
- UIProcess/SpeechRecognitionServer.cpp:
(WebKit::SpeechRecognitionServer::SpeechRecognitionServer):
(WebKit::SpeechRecognitionServer::requestPermissionForRequest):
(WebKit::SpeechRecognitionServer::handleRequest):
(WebKit::SpeechRecognitionServer::abort):
(WebKit::SpeechRecognitionServer::invalidate):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createSpeechRecognitionServer):
LayoutTests:
- fast/speechrecognition/ios/restart-recognition-after-stop-expected.txt: Added.
- fast/speechrecognition/ios/restart-recognition-after-stop.html: Added.
- fast/speechrecognition/ios/start-recognition-then-stop-expected.txt: Added.
- fast/speechrecognition/ios/start-recognition-then-stop.html: Added.
- 8:54 AM Changeset in webkit [270771] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
- platform/mac-wk2/media/media-can-play-webm-expected.txt:
- 8:40 AM Changeset in webkit [270770] by
-
- 1 edit1 add in trunk/PerformanceTests
Add inline-block line layout microbench
https://bugs.webkit.org/show_bug.cgi?id=219854
Reviewed by Zalan Bujtas.
- Layout/line-layout-inline-block.html: Added.
- 8:34 AM Changeset in webkit [270769] by
-
- 8 edits2 adds in trunk/Tools
[webkitscmpy] Load mock repository data from json file
https://bugs.webkit.org/show_bug.cgi?id=219803
<rdar://problem/72236132>
Reviewed by Stephanie Lewis.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Added.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git.init): Move mock data into git-repo.json.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
(Svn.init): Move mock data into git-repo.json.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:
(Svn.init): Move mock data into git-repo.json.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/svn-repo.json: Added.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit.test_tags): Specify tags.
(TestGit.test_tag): Ditto.
(TestGit.test_checkout): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestLocalSvn.test_branches): Remove branch specification.
- 8:26 AM Changeset in webkit [270768] by
-
- 25 edits in trunk/Source
[GPUProcess] Crash under AudioDestinationCocoa::setIsPlaying(bool)
https://bugs.webkit.org/show_bug.cgi?id=219809
Reviewed by Eric Carlson.
Source/WebCore:
The issue is that when using the GPU process, AudioDestination::stop() & start()
are asynchronous due to IPC. Those functions take completion handlers and
the AudioDestination object makes sure to ref itself to keep itself alive during
async operations. However, AudioDestination::m_callback is a raw pointer to
the AudioDestinationNode, which may itself become dead if AudioDestination
extends its lifetime by ref'ing itself.
To address the issue, AudioDestination is not fully owned by AudioDestinationNode.
If the AudioDestination needs to keep itself alive, it now ref's its owner
(AudioDestinationNode). This ensure that AudioDestination::m_callback never goes
stale, even if AudioDestination extends its lifetime by ref'ing itself during
async operations.
No new tests, covered by existing WebAudio tests currently crashing on
the GPU bots.
- Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::~AudioDestinationNode):
- Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::isPlaying):
- Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::deref):
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::clear):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::~DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::uninitialize):
(WebCore::DefaultAudioDestinationNode::createDestination):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
- platform/MediaStrategy.h:
- platform/audio/AudioDestination.h:
(WebCore::AudioDestination::ref):
(WebCore::AudioDestination::deref):
(WebCore::AudioDestination::AudioDestination):
- platform/audio/AudioIOCallback.h:
- platform/audio/cocoa/AudioDestinationCocoa.cpp:
(WebCore::AudioDestination::create):
(WebCore::AudioDestinationCocoa::AudioDestinationCocoa):
- platform/audio/cocoa/AudioDestinationCocoa.h:
- platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestination::create):
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
- platform/mock/MockAudioDestinationCocoa.h:
Source/WebKit:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::create):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
- WebProcess/GPU/media/WebMediaStrategy.cpp:
(WebKit::WebMediaStrategy::createAudioDestination):
- WebProcess/GPU/media/WebMediaStrategy.h:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebPlatformStrategies.mm:
Source/WebKitLegacy/win:
- WebCoreSupport/WebPlatformStrategies.cpp:
- 4:27 AM Changeset in webkit [270767] by
-
- 2 edits in trunk/Source/WebKit
[WPE][GTK] Should enable WebProcessCache
https://bugs.webkit.org/show_bug.cgi?id=219689
Reviewed by Adrian Perez de Castro.
- UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextConstructed):
- 3:46 AM Changeset in webkit [270766] by
-
- 2 edits in trunk/Source/JavaScriptCore
Minor cleanup of BigInts
https://bugs.webkit.org/show_bug.cgi?id=219253
Reviewed by Yusuke Suzuki.
- runtime/JSBigInt.cpp:
(JSC::rightShiftByAbsolute):
- 2:35 AM Changeset in webkit [270765] by
-
- 7 edits in trunk
REGRESSSION(270435) [GStreamer] Many media source tests failing and timing out
https://bugs.webkit.org/show_bug.cgi?id=219565
Reviewed by Philippe Normand.
Source/WebCore:
Fix the recursing calls due to the refactoring of
SourceBufferPrivate.
(As Philippe Normand pointed out and Peng Liu added in the first
version of the patch).
Also fix the didReceiveInitializationSegment signature after r270612.
Covered by existing tests.
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::didReceiveInitializationSegment):
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
LayoutTests:
Revert the gardened expectations and garden remaining failures.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 2:32 AM Changeset in webkit [270764] by
-
- 34 edits in trunk/Source
[JSC] Introduce vmEntryCustomAccessor and vmEntryHostFunction for JITCage
https://bugs.webkit.org/show_bug.cgi?id=219847
Reviewed by Mark Lam.
Source/JavaScriptCore:
Instead of registering all host-functions and custom accessors with OperationPtrTag or HostFunctionPtrTag,
this patch introduces a trampoline which invokes them with special ptr-tag to reduce memory usage of JITOperationList.
When invoking custom accessor, we pass that pointer as a forth argument, and call vmEntryCustomAccessor.
And vmEntryCustomAccessor jumps to the passed argument with special ptr tag. And we register vmEntryCustomAccessor as an operation.
For host-functions, we pass that pointer as a third argument.
- assembler/JITOperationList.cpp:
(JSC::addPointers):
(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):
(JSC::JITOperationList::populatePointersInEmbedder):
- assembler/JITOperationList.h:
(JSC::JITOperationList::assertIsHostFunction): Deleted.
- b3/testb3_1.cpp:
(main):
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- bytecode/GetByIdVariant.cpp:
(JSC::GetByIdVariant::GetByIdVariant):
- bytecode/GetByIdVariant.h:
(JSC::GetByIdVariant::customAccessorGetter const):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::create):
- bytecode/GetterSetterAccessCase.h:
- dfg/DFGNode.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
- jit/JITOperations.h:
- jit/Repatch.cpp:
(JSC::tryCacheGetBy):
(JSC::tryCachePutByID):
- jit/ThunkGenerators.cpp:
(JSC::nativeForGenerator):
- jsc.cpp:
(jscmain):
- llint/LLIntData.cpp:
(JSC::LLInt::initialize):
- llint/LLIntThunks.cpp:
- llint/LLIntThunks.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/Gate.h:
- runtime/JSCPtrTag.h:
(JSC::tagJSCCodePtrImpl):
(JSC::untagJSCCodePtrImpl):
- runtime/NativeFunction.h:
- runtime/PropertySlot.h:
- runtime/PutPropertySlot.h:
(JSC::PutPropertySlot::customSetter const):
- runtime/VM.cpp:
(JSC::VM::getHostFunction):
Source/WebCore:
- bindings/js/WebCoreJITOperations.cpp:
(WebCore::populateJITOperations):
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::populateJITOperations):
Source/WebKit:
- Shared/WebKitJITOperations.cpp:
(WebKit::populateJITOperations):
Source/WTF:
- wtf/PlatformCallingConventions.h:
- 2:17 AM Changeset in webkit [270763] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][EME][Thunder] Opus should be supported by the decryptor
https://bugs.webkit.org/show_bug.cgi?id=219742
Reviewed by Philippe Normand.
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
Added Opus to the sink and src caps.
- 1:43 AM Changeset in webkit [270762] by
-
- 23 edits in trunk/Source
Pass an isolated copy of Settings to workers and worklets.
https://bugs.webkit.org/show_bug.cgi?id=219688
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- runtime/RuntimeFlags.h:
(JSC::RuntimeFlags::isolatedCopy const):
Source/WebCore:
Generate a Settings::Values struct containing all setting values.
Workers and worklets get that structure from their document and do a thread safe copy to use it in the background thread.
Covered by existing tests in workers.
- Modules/webaudio/AudioWorkletMessagingProxy.cpp:
(WebCore::generateWorkletParameters):
- Scripts/SettingsTemplates/Settings.cpp.erb:
- Scripts/SettingsTemplates/Settings.h.erb:
- dom/Document.h:
- dom/EmptyScriptExecutionContext.h:
- dom/ScriptExecutionContext.h:
- page/Settings.yaml:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
- workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::requestAnimationFrameEnabled const):
(WebCore::WorkerGlobalScope::acceleratedCompositingEnabled const):
(WebCore::WorkerGlobalScope::webGLEnabled const):
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerThread.cpp:
(WebCore::WorkerParameters::isolatedCopy const):
- workers/WorkerThread.h:
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::WorkletGlobalScope):
- worklets/WorkletGlobalScope.h:
- worklets/WorkletParameters.h:
(WebCore::WorkletParameters::isolatedCopy const):
Source/WTF:
Add missing default values.
- Scripts/Preferences/WebPreferences.yaml:
Dec 13, 2020:
- 9:19 PM Changeset in webkit [270761] by
-
- 1 edit in trunk/Source/WebKit/Shared/mac/MediaFormatReader/SampleCursor.h
Try again to fix the build after r270758.
- 8:39 PM Changeset in webkit [270760] by
-
- 2 edits in trunk/Source/WebKit/Shared/mac/MediaFormatReader
Unreviewed build fix after r270758.
- Shared/mac/MediaFormatReader/CoreMediaWrapped.h: Unrelated renaming.
- Shared/mac/MediaFormatReader/SampleCursor.h: Removed an "#undef" meant for testing.
- 8:31 PM Changeset in webkit [270759] by
-
- 1 edit in trunk/Source/WebKit/Shared/ios/WebIOSEventFactory.mm
Unreviewed build fix after r270712.
- 7:38 PM Changeset in webkit [270758] by
-
- 38 edits3 copies21 adds in trunk
Source/ThirdParty/libwebrtc:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- Source/webrtc/sdk/WebKit/CMBaseObjectSPI.h:
Source/WebCore:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
Updated expected results for existing tests.
For contiguous samples, teach MediaSample to remember their position and size in the
underlying byte stream. Added a runtime feature flag. Registered the format reader plug-in
at runtime.
- page/RuntimeEnabledFeatures.h:
- platform/MediaSample.h:
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/cocoa/SourceBufferParser.cpp:
- platform/graphics/cocoa/SourceBufferParser.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
- platform/graphics/cocoa/SourceBufferParserWebM.h:
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
- platform/mock/mediasource/MockSourceBufferPrivate.cpp:
- platform/network/mac/WebCoreURLResponse.mm:
Source/WebCore/PAL:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h:
- pal/spi/cf/CoreMediaSPI.h:
- pal/spi/cocoa/MediaToolboxSPI.h:
Source/WebKit:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
Implemented a MTPluginFormatReader for WebM containers. The format reader is responsible
for parsing a WebM byte stream (using SourceBufferParserWebM) into audio, video, and text
tracks. MediaToolbox can then create cursors to step through the tracks' samples in decode
or presentation order and access each sample's metadata (e.g., format description,
duration, key-frame status) and location in the byte stream.
- FeatureFlags/WebKit.plist:
- MediaFormatReaderPlugIn/Info.plist:
- MediaFormatReaderPlugIn/MediaFormatReaderPlugIn.cpp:
- Shared/API/c/mac/WKFormatReader.cpp: Added.
- Shared/API/c/mac/WKFormatReader.h: Added.
- Shared/WebPreferencesDefaultValues.cpp:
- Shared/WebPreferencesDefaultValues.h:
- Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp: Added.
- Shared/mac/MediaFormatReader/CoreMediaWrapped.h: Added.
- Shared/mac/MediaFormatReader/FormatReader.cpp: Added.
- Shared/mac/MediaFormatReader/FormatReader.h: Added.
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp: Added.
- Shared/mac/MediaFormatReader/MediaFormatReader.h: Added.
- Shared/mac/MediaFormatReader/SampleCursor.cpp: Added.
- Shared/mac/MediaFormatReader/SampleCursor.h: Added.
- Shared/mac/MediaFormatReader/TrackReader.cpp: Added.
- Shared/mac/MediaFormatReader/TrackReader.h: Added.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
[Mac] Register the format reader plug-in for WebM content types
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- Scripts/Preferences/WebPreferencesExperimental.yaml: Added an experimental web
preference.
Tools:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- TestWebKitAPI/Tests/WebCore/SampleMap.cpp:
LayoutTests:
[Mac] Create a MediaToolbox format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
- platform/mac-catalina/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt:
- platform/mac-catalina/media/media-can-play-webm-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt:
- platform/mac-wk2/media/media-can-play-webm-expected.txt:
- 6:47 PM Changeset in webkit [270757] by
-
- 4 edits in trunk/LayoutTests
[WPE] Unreviewed test gardening. Gardened several flaky failures happening in WPE Release Test bot.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 6:30 PM Changeset in webkit [270756] by
-
- 9 edits8 adds in trunk/LayoutTests
[WPE] Unreviewed test gardening. Update baselines after r270749.
- platform/wpe/css1/text_properties/word_spacing-expected.png: Added.
- platform/wpe/css1/text_properties/word_spacing-expected.txt:
- platform/wpe/fast/css/word-space-extra-expected.png: Added.
- platform/wpe/fast/css/word-space-extra-expected.txt:
- platform/wpe/fast/text/atsui-negative-spacing-features-expected.png: Added.
- platform/wpe/fast/text/atsui-negative-spacing-features-expected.txt:
- platform/wpe/fast/text/atsui-spacing-features-expected.png: Added.
- platform/wpe/fast/text/atsui-spacing-features-expected.txt:
- platform/wpe/fast/text/basic/004-expected.png: Added.
- platform/wpe/fast/text/basic/004-expected.txt:
- platform/wpe/fast/text/basic/005-expected.png: Added.
- platform/wpe/fast/text/basic/005-expected.txt:
- platform/wpe/fast/text/word-space-expected.png: Added.
- platform/wpe/fast/text/word-space-expected.txt:
- platform/wpe/svg/custom/svg-fonts-word-spacing-expected.png: Added.
- platform/wpe/svg/custom/svg-fonts-word-spacing-expected.txt:
- 6:20 PM Changeset in webkit [270755] by
-
- 10 edits2 adds in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- platform/wincairo/css1/text_properties/word_spacing-expected.txt:
- platform/wincairo/css3/filters/backdrop/blur-input-bounds-expected.txt: Added.
- platform/wincairo/fast/css/word-space-extra-expected.txt:
- platform/wincairo/fast/text/atsui-negative-spacing-features-expected.txt:
- platform/wincairo/fast/text/atsui-spacing-features-expected.txt:
- platform/wincairo/fast/text/basic/004-expected.txt:
- platform/wincairo/fast/text/basic/005-expected.txt:
- platform/wincairo/fast/text/word-space-expected.txt:
- 4:58 PM Changeset in webkit [270754] by
-
- 3 edits in trunk/Source/WebKit
Fix the watchOS build after r270712
<rdar://problem/72265227>
- Shared/ios/WebIOSEventFactory.h:
- Shared/ios/WebIOSEventFactory.mm:
(WebIOSEventFactory::createWebWheelEvent):
- 3:59 PM Changeset in webkit [270753] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Set s_maxPathLength fallback when OS does not have a PATH_MAX limitation
https://bugs.webkit.org/show_bug.cgi?id=219571
Patch by Samuel Thibault <samuel.thibault@ens-lyon.org> on 2020-12-13
Reviewed by Yusuke Suzuki.
- runtime/ConfigFile.h:
(ConfigFile::s_maxPathLength): Fallback to 4095 when PATH_MAX is not defined.
- 3:42 PM Changeset in webkit [270752] by
-
- 5 edits in trunk/Source/WebCore
[LFC Display] The display tree should be owned by the display view
https://bugs.webkit.org/show_bug.cgi?id=219840
Reviewed by Sam Weinig.
Move ownership of the Display::Tree from Display::LayerController to Display::View,
because this ownership model makes more sense.
- display/DisplayView.cpp:
(WebCore::Display::View::prepareForDisplay):
- display/DisplayView.h:
(WebCore::Display::View::tree const):
- display/compositing/DisplayLayerController.cpp:
(WebCore::Display::LayerController::RootLayerClient::paintContents):
(WebCore::Display::LayerController::prepareForDisplay):
- display/compositing/DisplayLayerController.h:
- 1:49 PM Changeset in webkit [270751] by
-
- 2 edits in trunk
[CMake] Version of LibPSL not reported
https://bugs.webkit.org/show_bug.cgi?id=219837
Reviewed by Adrian Perez de Castro.
When determining the version of LibPSL from the header file LIBPSL_VERSION was set
but the VERSION_VAR reported was LibPSL_VERSION. Consistently use LibPSL_VERSION
within the file to prevent this.
Additionally LibPSL_LIBRARY not LibPSL_LIBRARIES should be marked_as_advanced.
- Source/cmake/FindLibPSL.cmake:
- 9:55 AM Changeset in webkit [270750] by
-
- 4 edits in trunk/Source/WebCore
Move createAppHighlightRangeData into AppHighlightStorage source file
https://bugs.webkit.org/show_bug.cgi?id=219834
Reviewed by Devin Rousso.
The createAppHighlightRangeData function was defined statically in AppHighlightListData.cpp
but was only used in AppHighlightStorage.cpp. Moved the static functions from the former
into the later.
Additionally added forward declarations in the AppHighlightStorage header.
This allows the highlight module to compile with non-unified sources.
- Modules/highlight/AppHighlightListData.cpp:
(WebCore::computePathIndex): Deleted.
(WebCore::createNodePathComponent): Deleted.
(WebCore::makeNodePath): Deleted.
(WebCore::createAppHiglightRangeData): Deleted.
- Modules/highlight/AppHighlightStorage.cpp:
(WebCore::computePathIndex):
(WebCore::createNodePathComponent):
(WebCore::makeNodePath):
(WebCore::createAppHighlightRangeData):
(WebCore::AppHighlightStorage::createAppHighlightListData):
- Modules/highlight/AppHighlightStorage.h:
- 9:29 AM Changeset in webkit [270749] by
-
- 17 edits in trunk
[LFC][IFC] Offset the content logical left by the word-spacing value
https://bugs.webkit.org/show_bug.cgi?id=219706
Reviewed by Antti Koivisto.
Source/WebCore:
Let's decouple the whitespace width and the word-spacing value.
Instead of constructing a 9px long run for whitespace "width: 4px", "word-spacing: 5px",
we create a 4px long run at 5px.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::appendTextContent):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
LayoutTests:
Now we've got dedicated runs for these content.
-and the word-space-extra-expected.txt change is an actual (though not visual) progression.
- platform/mac/css1/text_properties/word_spacing-expected.txt:
- platform/mac/fast/css/word-space-extra-expected.txt:
- platform/mac/fast/text/atsui-negative-spacing-features-expected.txt:
- platform/mac/fast/text/atsui-spacing-features-expected.txt:
- platform/mac/fast/text/basic/004-expected.txt:
- platform/mac/fast/text/word-space-expected.txt:
- platform/mac/svg/custom/svg-fonts-word-spacing-expected.txt:
- 7:20 AM Changeset in webkit [270748] by
-
- 2 edits in trunk/Source/WebCore
Add some missing Grid files to the project
https://bugs.webkit.org/show_bug.cgi?id=219831
Reviewed by Anders Carlsson.
A few Grid files were compiled, but had not been added to the project file.
- WebCore.xcodeproj/project.pbxproj:
Dec 12, 2020:
- 11:03 PM Changeset in webkit [270747] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] tabCharacter and newlineCharacter are also word separators when not preserved
https://bugs.webkit.org/show_bug.cgi?id=219784
Reviewed by Antti Koivisto.
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::isWhitespaceCharacter):
(WebCore::Layout::shouldPreserveSpacesAndTabs):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::shouldPreserveSpacesAndTabs):
- 9:43 PM Changeset in webkit [270746] by
-
- 5 edits in trunk
Unreviewed, reverting r270661.
Caused layout test failures and timeouts
Reverted changeset:
"Unreviewed, re-landing r270132."
https://bugs.webkit.org/show_bug.cgi?id=202874
https://trac.webkit.org/changeset/270661
- 9:41 PM Changeset in webkit [270745] by
-
- 2 edits in trunk/LayoutTests
[WPE] Unreviewed test gardening. Remove test entries referencing bug209859.
The bug was keeping tracking of several WebXR tests. The bug is
closed and all the tests referencing that bug are marked as passing.
WebXR feature is only enabled in WPE, all other ports skipping WebXR
tests. In conclusion, these entries in test expectations are no longer
necessary.
- platform/wpe/TestExpectations:
- 8:32 PM Changeset in webkit [270744] by
-
- 1 edit1 add in trunk/LayoutTests
[WPE] Unreviewed test gardening. Add WPE baseline after r270582.
- platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers-expected.txt: Added.
- 5:58 PM Changeset in webkit [270743] by
-
- 7 edits in trunk
[WebAuthn][iOS] Turn on modern WebAuthn for default browsers
https://bugs.webkit.org/show_bug.cgi?id=219823
<rdar://problem/72250436>
Reviewed by Brent Fulgham.
Source/WebKit:
Covered by manual tests.
This patch turns on modern WebAuthn on iOS by default. In addition to that,
it turns on WebAuthn for all default browsers.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebCore::isWebBrowser):
(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):
(WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable):
For apps that turn on WebAuthn by overriding the experimental feature settings, return silently.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences)
Does the meat.
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Does the meat.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::WebCore::webAuthenticationModernExperimentalFeature):
(TestWebKitAPI::TEST):
Turn modern WebAuthn off for old tests.
- 4:14 PM Changeset in webkit [270742] by
-
- 2 edits in trunk/LayoutTests
[WPE] Unreviewed test gardening. Remove tests passing after r270741.
- platform/wpe/TestExpectations:
- 2:34 PM Changeset in webkit [270741] by
-
- 2 edits in trunk/Source/WebKit
[GTK4] Web view is incorrectly scaled on hidpi
https://bugs.webkit.org/show_bug.cgi?id=218353
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-12-12
Reviewed by Adrian Perez de Castro.
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::snapshot): Account for the scale factor.
- 1:06 PM Changeset in webkit [270740] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r270692.
https://bugs.webkit.org/show_bug.cgi?id=219828
Introduced crash
Reverted changeset:
"[macOS] Remove access to com.apple.MTLCompilerService in the
WebContent process"
https://bugs.webkit.org/show_bug.cgi?id=219774
https://trac.webkit.org/changeset/270692
- 12:49 PM Changeset in webkit [270739] by
-
- 4 edits in trunk/Source/WebKit
Unreviewed, reverting r270674.
Broke web content rendering on iOS
Reverted changeset:
"[iOS] Remove access to the IOKIt class AGXDeviceUserClient in
the WebContent process"
https://bugs.webkit.org/show_bug.cgi?id=219733
https://trac.webkit.org/changeset/270674
- 11:39 AM Changeset in webkit [270738] by
-
- 28 edits in trunk
Implement WebVTT VTTCue region attribute
https://bugs.webkit.org/show_bug.cgi?id=168716
LayoutTests/imported/w3c:
Patch by Frank Olivier <frankolivier@apple.com> on 2020-12-12
Reviewed by Eric Carlson.
- web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-align-text-line-position-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-line-position-expected.txt:
Source/WebCore:
Patch by Frank Olivier <frankolivier@apple.com> on 2020-12-12
Reviewed by Eric Carlson.
Updated existing region tests.
- WebCore.xcodeproj/project.pbxproj:
- html/shadow/MediaControlTextTrackContainerElement.cpp:
(WebCore::MediaControlTextTrackContainerElement::processActiveVTTCue):
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
(WebCore::TextTrackCueGeneric::setLine):
- html/track/TextTrackCueGeneric.h:
- html/track/VTTCue.cpp:
(WebCore::horizontalKeyword):
(WebCore::lineLeftKeyword):
(WebCore::lineRightKeyword):
(WebCore::autoKeyword):
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::setVertical):
(WebCore::VTTCue::line const):
(WebCore::VTTCue::setLine):
(WebCore::VTTCue::lineAlign const):
(WebCore::VTTCue::setLineAlign):
(WebCore::VTTCue::positionAlign const):
(WebCore::VTTCue::setPositionAlign):
(WebCore::VTTCue::setAlign):
(WebCore::VTTCue::setTrack):
(WebCore::VTTCue::setRegion):
(WebCore::VTTCue::region):
(WebCore::VTTCue::regionId):
(WebCore::VTTCue::calculateComputedLinePosition):
(WebCore::VTTCue::getDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
(WebCore::VTTCue::settingName):
(WebCore::VTTCue::setCueSettings):
(WebCore::VTTCue::toJSON const):
(WebCore::VTTCue::setRegionId): Deleted.
- html/track/VTTCue.h:
(WebCore::VTTCue::line const): Deleted.
(WebCore::VTTCue::regionId const): Deleted.
- html/track/VTTCue.idl:
- rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::layout):
LayoutTests:
Updated VTTCue to current IDL
Patch by Frank Olivier <frankolivier@apple.com> on 2020-12-12
Reviewed by Eric Carlson.
- media/track/captions-webvtt/header-regions.vtt:
- media/track/regions-webvtt/text-track-cue-region-attribute-expected.txt:
- media/track/regions-webvtt/text-track-cue-region-attribute.html:
- media/track/regions-webvtt/vtt-region-parser-expected.txt:
- media/track/regions-webvtt/vtt-region-parser.html:
- media/track/track-add-remove-cue-expected.txt:
- media/track/track-add-remove-cue.html:
- media/track/track-cue-container-rendering-position.html:
- media/track/track-cue-mutable-expected.txt:
- media/track/track-cue-mutable.html:
- media/track/track-vttcue-expected.txt:
- media/track/track-vttcue.html:
- media/track/track-webvtt-tc013-settings-expected.txt:
- media/track/track-webvtt-tc013-settings.html:
- media/track/track-webvtt-tc017-line-position-expected.txt:
- media/track/track-webvtt-tc017-line-position.html:
- media/track/track-webvtt-tc018-align-text-line-position-expected.txt:
- media/track/track-webvtt-tc018-align-text-line-position.html:
- 11:29 AM Changeset in webkit [270737] by
-
- 2 edits in trunk/Source/WebCore
Scroll performance logging: rubberbanding should not trigger "Exposed tileless area" logging
https://bugs.webkit.org/show_bug.cgi?id=219827
<rdar://problem/72209189>
Reviewed by Zalan Bujtas.
Clamp the scroll position before computing exposed tile-less area so that rubberbanding
doesn't trigger logging that we revealed areas not covered by tiles.
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea const):
- 10:40 AM Changeset in webkit [270736] by
-
- 6 edits in trunk/Source/WebCore
REGRESSION(r270715) [LFC][IFC] Whitespace as expansion opportunity should not change as we expand the runs
https://bugs.webkit.org/show_bug.cgi?id=219826
Reviewed by Antti Koivisto.
This is the property of the entire run and should be set based on the box and whether the initial part of the run
is whitespace or not.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):
- layout/inlineformatting/InlineLine.h:
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::shouldPreserveSpacesAndTabs):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::shouldPreserveSpacesAndTabs):
- layout/inlineformatting/text/TextUtil.h:
- 9:54 AM WebKitGTK/2.30.x edited by
- (diff)
- 5:36 AM Changeset in webkit [270735] by
-
- 3 edits in trunk/LayoutTests
[GLIB][GTK] Unreviewed test gardening. Remove tests passing after r270734.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 4:07 AM Changeset in webkit [270734] by
-
- 3 edits in trunk/LayoutTests
[GLIB][GTK] Unreviewed test gardening. Update test expectations.
Added two failures related with font-size visualization in
WebInspector and another one related with WebRTC.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 3:44 AM Changeset in webkit [270733] by
-
- 115 edits1 copy78 adds in trunk/Source/ThirdParty/ANGLE
Improved Metal backend for ANGLE, with direct GLSL to Metal compiler translation
https://bugs.webkit.org/show_bug.cgi?id=219759
<rdar://problem/72200222>
Patch by Kyle Piddington <Kyle Piddington> on 2020-12-12
Reviewed by Dean Jackson.
Reviewer's note: While this patch is landing in WebKit now, it will
be submitted to the main ANGLE project for official review, then re-merged
back into WebKit. The feature provided here is not enabled by default.
Provide a WebGL1 compliant transpiler for GLSL content. With this
change, we can leverage the already present open source work in the
ANGLE project to enable webgl to run on top of Metal. In addition,
this patch contains a number of fixes to the existing ANGLE Metal backend.
Test: Tests were validated with the dEQP test suite with ANGLE, in
addition to running standard layout tests.
- 2:11 AM Changeset in webkit [270732] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Unreviewed test gardening. Update baseline after r270613.
Test results now include overscroll-behavior-x and overscroll-behavior-y properties.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
Dec 11, 2020:
- 10:56 PM Changeset in webkit [270731] by
-
- 12 edits in trunk/Source
[Media in GPU Process][MSE] Implement SourceBuffer::reportExtraMemoryAllocated()
https://bugs.webkit.org/show_bug.cgi?id=219812
Reviewed by Eric Carlson.
Source/WebCore:
Refactor the implementation of
SourceBuffer::reportExtraMemoryAllocated()to let
SourceBufferPrivatecalculate the extra memory cost and report the value to
SourceBufferwhen necessary. This approach is better than the current one when
SourceBufferPrivateruns in the GPU process because track buffer management
has been moved toSourceBufferPrivatein r270435.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferInternal):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::sourceBufferPrivateReportExtraMemoryCost):
(WebCore::SourceBuffer::reportExtraMemoryAllocated):
(WebCore::SourceBuffer::extraMemoryCost const): Deleted.
- Modules/mediasource/SourceBuffer.h:
- platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::appendCompleted):
(WebCore::SourceBufferPrivate::evictCodedFrames):
- platform/graphics/SourceBufferPrivateClient.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::append):
Source/WebKit:
Add a new IPC message
SourceBufferPrivateReportExtraMemoryCostto forward the callback
to the web process.
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReportExtraMemoryCost):
- GPUProcess/media/RemoteSourceBufferProxy.h:
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateReportExtraMemoryCost):
- WebProcess/GPU/media/SourceBufferPrivateRemote.h:
- WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
- 9:19 PM Changeset in webkit [270730] by
-
- 7 edits in trunk/Source
[WebAuthn] Adopt new UI for the Platform Authenticator getAssertion flow
https://bugs.webkit.org/show_bug.cgi?id=219710
<rdar://problem/72154800>
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by manual tests.
- Modules/webauthn/AuthenticatorAssertionResponse.h:
(WebCore::AuthenticatorAssertionResponse::laContext const):
(WebCore::AuthenticatorAssertionResponse::setLAContext):
Source/WebKit:
This patch adopts the new UI for the platform authenticator getAssertion flow. It's more or less
the same as the security key one except an LAContext will be passed in from the UI. Now LocalAuthenticator
will just utilize the LAContext from the UI.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::~AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse):
(WebKit::AuthenticatorPresenterCoordinator::didSelectAssertionResponse):
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):
- UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:
(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):
- 7:19 PM Changeset in webkit [270729] by
-
- 7 edits4 adds in trunk/Source/WebCore
Infrastructure to store and restore AppHighlights
https://bugs.webkit.org/show_bug.cgi?id=219769
<rdar://problem/70297699>
Reviewed by Tim Horton.
AppHighlights can be pulled out of their HighlightRegister and encoded for storage by the app.
Also, an encoded buffer can be unpacked in ranges added back into the HighlightRegister.
Fallbacks for ranges that are not found are not designed yet, so currently they will just be stored
with the intention to communicate back to the app that they were not found in the current version of
the document. The API to interact with the client is not designed yet, so currently this encoded data does not get
shuttle anywhere but that plumbing will be added in a later patch.
- Modules/highlight/AppHighlightListData.cpp: Added.
(WebCore::computePathIndex):
(WebCore::createNodePathComponent):
(WebCore::makeNodePath):
(WebCore::createAppHiglightRangeData):
(WebCore::AppHighlightListData::create):
(WebCore::AppHighlightListData::toData const):
- Modules/highlight/AppHighlightListData.h: Added.
(WebCore::AppHighlightRangeData::NodePathComponent::NodePathComponent):
(WebCore::AppHighlightRangeData::NodePathComponent::operator== const):
(WebCore::AppHighlightRangeData::NodePathComponent::operator!= const):
(WebCore::AppHighlightRangeData::AppHighlightRangeData):
(WebCore::AppHighlightRangeData::text const):
(WebCore::AppHighlightRangeData::startContainer const):
(WebCore::AppHighlightRangeData::startOffset const):
(WebCore::AppHighlightRangeData::endContainer const):
(WebCore::AppHighlightRangeData::endOffset const):
(WebCore::AppHighlightListData::AppHighlightListData):
(WebCore::AppHighlightListData::ranges const):
(WebCore::AppHighlightListData::setRanges):
(WebCore::AppHighlightListData::addRanges):
(WebCore::AppHighlightListData::size const):
(WebCore::AppHighlightListData::isEmpty const):
(WebCore::AppHighlightRangeData::NodePathComponent::encode const):
(WebCore::AppHighlightRangeData::NodePathComponent::decode):
(WebCore::AppHighlightRangeData::encode const):
(WebCore::AppHighlightRangeData::decode):
(WebCore::AppHighlightListData::encode const):
(WebCore::AppHighlightListData::decode):
- Modules/highlight/AppHighlightStorageController.cpp: Added.
(WebCore::findNodeByPathIndex):
(WebCore::findNodeStartingAtPathComponentIndex):
(WebCore::findNode):
(WebCore::findRangeByIdentifyingStartAndEndPositions):
(WebCore::findRangeBySearchingText):
(WebCore::findRange):
(WebCore::AppHighlightStorageController::AppHighlightStorageController):
(WebCore::AppHighlightStorageController::createAppHighlightListData):
(WebCore::AppHighlightStorageController::restoreAppHighlights):
- Modules/highlight/AppHighlightStorageController.h: Added.
- Modules/mediastream/RTCRtpScriptTransform.cpp:
- Modules/mediastream/RTCRtpScriptTransform.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::appHighlightStorageController):
(WebCore::Document::updateHighlightPositions):
- dom/Document.h:
(WebCore::Document::appHighlightStorageControllerIfExists const):
- 7:01 PM Changeset in webkit [270728] by
-
- 2 edits in trunk/Source/WebCore
[WebM] Mark Opus and Vorbis as supported track types.
https://bugs.webkit.org/show_bug.cgi?id=219819
Rubber-stamped by Eric Carlson.
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::supportedAudioCodecs):
- 6:36 PM Changeset in webkit [270727] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] Add Experimental VP8 support
https://bugs.webkit.org/show_bug.cgi?id=219732
<rdar://problem/72171055>
Reviewed by Eric Carlson.
Merge error after r270720; Use the local value isKey, rather than querying the VP9 header parser
to tell whether the incoming frame is a keyframe.
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
- 6:31 PM Changeset in webkit [270726] by
-
- 2 edits in trunk/Source/WebKit
PCM: Change debugModeSecondsUntilSend from 60 seconds to 10 seconds
https://bugs.webkit.org/show_bug.cgi?id=219816
<rdar://problem/70779862>
Unreviewed change to a constant, only used for debugging.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
debugModeSecondsUntilSend changed to 10 seconds.
(WebKit::PrivateClickMeasurementManager::attribute):
Fixed bad indentation.
- 6:12 PM Changeset in webkit [270725] by
-
- 33 edits1 copy in trunk/Source
[GPU Process] Cache Font objects
https://bugs.webkit.org/show_bug.cgi?id=219672
Reviewed by Wenson Hsieh.
Source/WebCore:
Partially based on the patch made by Said Abou-Hallawa.
This patch introduces a mechanism to cache Font objects in the GPU process much the same way
NativeImage objects are cached in the GPU process.
- platform/graphics/Font.cpp:
(WebCore::Font::Font): Restore the same rendering resource identifier when Font object
is decoded in the GPU process.
(WebCore::Font::renderingResourceIdentifier const): Added. Lazily creates an identifier.
This never happens in the GPU process as we set it in the constructor above.
- platform/graphics/Font.h:
(WebCore::Font::create): Ditto as Font::Font.
- platform/graphics/displaylists/DisplayList.h:
(WebCore::DisplayList::DisplayList::fonts const): Added.
(WebCore::DisplayList::DisplayList::cacheFont): Added.
- platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawGlyphs): Call the newly introduced
appendDrawGraphsItemWithCachedFont instead of appending DrawGlyphs directly.
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):
- platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp: Ditto.
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):
- platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp: Ditto.
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply): Replaced call to DrawGlyphs::apply with
ASSERT_NOT_REACHED since Replayer::applyItem should handle it now.
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawGlyphs::DrawGlyphs): The one used in decode function in GPU
process now takes RenderingResourceIdentifier instead of Font and the glyph bounds instead
of computing it again here. The one used in WebContent will continue to take Font
to copmute the bounds but encodes RenderingResourceIdentifier instead.
(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const): Takes Font.
(WebCore::DisplayList::DrawGlyphs::apply const): Takes Font.
(WebCore::DisplayList::DrawGlyphs::computeBounds): Takes Font.
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawGlyphs::fontIdentifier): Added.
(WebCore::DisplayList::DrawGlyphs): No longer retains Font object.
(WebCore::DisplayList::DrawGlyphs::encode const): Encodes the bounding rect.
(WebCore::DisplayList::DrawGlyphs::decode): Ditto for decoding.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::appendDrawGraphsItemWithCachedFont): Added.
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::Delegate::cacheFont): Added.
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::Replayer): Now takes FontRenderingResourceMap.
(WebCore::DisplayList::applyFontItem): Added.
(WebCore::DisplayList::Replayer::applyItem): Applies DrawGlyphs with Font in m_fonts.
- platform/graphics/displaylists/DisplayListReplayer.h:
Source/WebKit:
Partially based on the patch made by Said Abou-Hallawa.
This patch introduces a mechanism to cache Font objects in the GPU process much the same way
NativeImage objects are cached in the GPU process, and re-enables Web Fonts.
Fonts are removed from the GPU process when either they hadn't been used for 4 rendering updates
or a memory warning has been issued.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::submit): Added the font cache.
(WebKit::RemoteRenderingBackend::cacheFont): Added.
(WebKit::RemoteRenderingBackend::deleteAllFonts): Added.
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in: Added CacheFont and DeleteAllFonts
as new IPC messages.
- GPUProcess/graphics/RemoteResourceCache.cpp:
(WebKit::RemoteResourceCache::cacheFont): Added.
(WebKit::RemoteResourceCache::deleteAllFonts): Added. Used when a memory warning is issued.
- GPUProcess/graphics/RemoteResourceCache.h:
(WebKit::RemoteResourceCache::fonts const): Added.
- Platform/IPC/FontReference.h: Added.
(IPC::FontReference): Added.
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared): Added FontReference.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Ref<Font>>::encode): Encode the rendering resource identifier of Font.
(IPC::ArgumentCoder<Ref<Font>>::decode): Ditto for decoding.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::cacheFont): Added.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::cacheFont): Added.
(WebKit::RemoteRenderingBackendProxy::deleteAllFonts): Added.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::cacheFont): Added. It updates the total number of fonts
being used since the last rendering update and records the self assigned identifier for
the next rendering update.
(WebKit::RemoteResourceCacheProxy::didFinalizeRenderingUpdate): Added. Called at the end of
each rendering update. It removes all fonts unused in the lsat 4 rendering updates if at least
1/4 of the fonts in the GPU process were not used in this rendering update.
(WebKit::RemoteResourceCacheProxy::releaseMemory): Added. Removes all the fonts to free up
memory when a memory warning is issued.
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
(WebKit::RemoteResourceCacheProxy): Added m_fontLastRenderingUpdateMap which keeps track of
the rendering resource identifiers of the fonts cached in the GPU process.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Re-enables the Web Fonts.
(WebKit::WebPage::finalizeRenderingUpdate): Added the call to RemoteRenderingBackendProxy's
didFinalizeRenderingUpdate.
(WebKit::WebPage::releaseMemory): Added. Calls RemoteRenderingBackendProxy's function.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess): Added the call to WebPage::releaseMemory in
the memory pressure handler.
(WebKit::WebProcess::prepareToSuspend): Ditto for the process suspension.
Source/WTF:
Specify the width of enum classes so that they can be forward declared.
- wtf/MemoryPressureHandler.h:
- 6:03 PM Changeset in webkit [270724] by
-
- 5 edits in trunk/Source/WebKit
[WebAuthn] Adopt new UI for the Security Key getAssertion flow
https://bugs.webkit.org/show_bug.cgi?id=219711
<rdar://problem/72154840>
Reviewed by Brent Fulgham.
This patch adopts the new UI for the security key getAssertion flow which contains two part:
- showing a informative UI to ask the user to connect their security keys,
- showing an account picker for users to select a credential to use.
Covered by manual tests.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
Paperwork.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse):
(WebKit::AuthenticatorPresenterCoordinator::didSelectAssertionResponse):
- UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:
(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):
Implements the two flows.
- 5:34 PM Changeset in webkit [270723] by
-
- 8 edits in trunk/Source/WebKit
PCM: Add feature flag support in the network process
https://bugs.webkit.org/show_bug.cgi?id=219811
<rdar://problem/72242633>
Reviewed by Alex Christensen.
No new tests. This just forwards a preference to the network process.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
Stores the incoming enablePrivateClickMeasurement from
WebKit::NetworkProcessCreationParameters.
(WebKit::NetworkProcess::setPrivateClickMeasurementEnabled):
(WebKit::NetworkProcess::privateClickMeasurementEnabled const):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcessCreationParameters.cpp:
New field enablePrivateClickMeasurement.
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Early return if the feature is not enabled.
(WebKit::PrivateClickMeasurementManager::handleAttribution):
Early return if the feature is not enabled.
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
Early return if the feature is not enabled.
(WebKit::PrivateClickMeasurementManager::featureEnabled const):
New convenience function.
- NetworkProcess/PrivateClickMeasurementManager.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
Sets the new enablePrivateClickMeasurement in
WebKit::NetworkProcessCreationParameters.
- 5:18 PM Changeset in webkit [270722] by
-
- 7 edits in trunk/Source
[Cocoa] Add Experimental Vorbis support
https://bugs.webkit.org/show_bug.cgi?id=219810
<rdar://problem/72242614>
Patch by Eric Carlson <eric.carlson@apple.com> on 2020-12-11
Reviewed by Jer Noble.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setVorbisDecoderEnabled):
(WebCore::RuntimeEnabledFeatures::vorbisDecoderEnabled const):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData): Support being
called with more than one sample.
- platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:
(WebCore::isVorbisDecoderAvailable): Check the runtime settings.
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml: Added an experimental web
preference.
- wtf/PlatformEnableCocoa.h: Define ENABLE_VORBIS.
- 4:58 PM Changeset in webkit [270721] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, build fix after r270694
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
Adds a instance method guard for new SPI.
- 4:57 PM Changeset in webkit [270720] by
-
- 35 edits2 copies9 adds in trunk
[Cocoa] Add Experimental VP8 support
https://bugs.webkit.org/show_bug.cgi?id=219732
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
Add a new decoder for VP8 video using the decoder exposed by libwebrtc. Refactor
WebKitDecoderReceiver into its own file, to be used by both the VP8 and VP9 decoders.
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
- Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp: Added.
(webrtc::WebKitDecoderReceiver::WebKitDecoderReceiver):
(webrtc::WebKitDecoderReceiver::~WebKitDecoderReceiver):
(webrtc::WebKitDecoderReceiver::initializeFromFormatDescription):
(webrtc::WebKitDecoderReceiver::pixelBufferPool):
(webrtc::WebKitDecoderReceiver::decoderFailed):
(webrtc::WebKitDecoderReceiver::Decoded):
- Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.h: Added
- Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: Added.
(webrtc::registerWebKitVP8Decoder):
(webrtc::createWebKitVP8Decoder):
(webrtc::invalidateVP8Decoder):
(webrtc::finalizeVP8Decoder):
(webrtc::copyVP8DecoderDebugDescription):
(webrtc::webKitVP8DecoderFromVTDecoder):
(webrtc::startVP8DecoderSession):
(webrtc::decodeVP8DecoderFrameFromContiguousBlock):
(webrtc::decodeVP8DecoderFrame):
- Source/webrtc/sdk/WebKit/WebKitVP8Decoder.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
- Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
(webrtc::createWebKitVP9Decoder):
(webrtc::startVP9DecoderSession):
(webrtc::WebKitVP9DecoderReceiver::WebKitVP9DecoderReceiver): Deleted.
(webrtc::WebKitVP9DecoderReceiver::~WebKitVP9DecoderReceiver): Deleted.
(webrtc::WebKitVP9DecoderReceiver::initializeFromFormatDescription): Deleted.
(webrtc::WebKitVP9DecoderReceiver::pixelBufferPool): Deleted.
(webrtc::WebKitVP9DecoderReceiver::decoderFailed): Deleted.
(webrtc::WebKitVP9DecoderReceiver::Decoded): Deleted.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Newly passing tests:
imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer.html
imported/w3c/web-platform-tests/media-source/mediasource-seek-during-pending-seek.html
imported/w3c/web-platform-tests/media-source/mediasource-seekable.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-bitrate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framerate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html
imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec.html
Parse VP8 video tracks out of WebM files. Add a simple VP8 frame header parser to extract width
height and color information out of keyframe headers, and create a CMFormatDescription from that
header.
Throw an error during parsing if an Audio or Video track is encountered with an unsupported codec.
- platform/graphics/VP9Utilities.cpp:
(WebCore::parseVPCodecParameters):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::isContentTypeSupported):
(WebCore::createFormatDescriptionFromVPCodecConfigurationRecord):
(WebCore::createFormatDescriptionFromVP9HeaderParser):
(WebCore::parseVP8FrameHeader):
(WebCore::createFormatDescriptionFromVP8Header):
(WebCore::SourceBufferParserWebM::OnFrame):
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::registerWebKitVP8Decoder):
(WebCore::isVP8DecoderAvailable):
(WebCore::isVP9CodecConfigurationRecordSupported):
(WebCore::isVP8CodecConfigurationRecordSupported):
(WebCore::isVPCodecConfigurationRecordSupported):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
(WebCore::LibWebRTCProvider::registerWebKitVP8Decoder):
Source/WebKit:
Add new WebPageCreationParameter flags to enable VP8 decoders in the WebContent and GPU
processes when the experimental feature is enabled.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::enableVP9Decoders):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::enableVP9Decoders):
- GPUProcess/GPUProcess.h:
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultVP8DecoderEnabled):
- Shared/WebPreferencesDefaultValues.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::updateParameters):
- WebProcess/GPU/GPUProcessConnection.h:
(WebKit::GPUProcessConnection::isVP8DecoderEnabled const):
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::enableVP8SWDecoder):
- WebProcess/WebProcess.h:
Source/WTF:
Add a new VP8 experimental feature flag.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
- platform/mac/TestExpectations:
- platform/mac-bigsur/imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-expected.txt:
- platform/mac-bigsur/imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec-expected.txt:
- 4:43 PM Changeset in webkit [270719] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r270665): testapi failing on JSC bots
https://bugs.webkit.org/show_bug.cgi?id=219787
Reviewed by Saam Barati.
- API/JSValueRef.cpp:
(JSValueIsString):
(JSValueIsObject):
(JSValueIsSymbol):
- 4:32 PM Changeset in webkit [270718] by
-
- 6 edits in trunk/Source
Potential null dereference of m_frame under DocumentLoader::stopLoading()
https://bugs.webkit.org/show_bug.cgi?id=219786
<rdar://71945402>
Reviewed by Geoffrey Garen.
Source/WebCore:
The crash indicates that FrameLoader::stopAllLoaders() is calling m_documentLoader->stopLoading()
and that DocumentLoader::m_frame is null, causing DocumentLoader::stopLoading() to do a null
dereference of m_frame.
I believe 3 things could have happened:
- DocumentLoader::detachFromFrame() was called on a DocumentLoader but that DocumentLoader somehow stayed attached to the FrameLoader. DocumentLoader::detachFromFrame() is what clears DocumentLoader::m_frame.
- FrameLoader::setDocumentLoader() was called with a DocumentLoader which already did not have a frame.
- The Frame was destroyed. DocumentLoader is a FrameDestructionObserver so m_frame would actually get nulled out in case of Frame destruction.
Now, I do not believe that 3 is actually possible. We know the FrameLoader is alive here since
FrameLoader::stopAllLoaders() is what's calling DocumentLoader::stopLoading(). The Frame owns
the FrameLoader so the Frame is alive. Also note that FrameLoader::stopAllLoaders() protects
the frame AND dereferences m_frame without crashing *BEFORE* calling DocumentLoader::stopLoading().
Looking at case 1, I believe this is actually possible currently because
FrameLoader::setProvisionalDocumentLoader() does not early return when the new DocumentLoader
being set is the same one as m_provisionalDocumentLoader. This means that
FrameLoader::setProvisionalDocumentLoader() would in such case call DocumentLoader::detachFromFrame()
on the DocumentLoader even though it will remain attached to this FrameLoader. Note that
FrameLoader::setPolicyDocumentLoader() & FrameLoader::setDocumentLoader() already return early
properly in such cases. This patch fixes FrameLoader::setProvisionalDocumentLoader() to early
return, thus making issue 1 impossible I believe.
Case 2 is a bit harder to fix. We had this debug assertion in FrameLoader::setDocumentLoader():
ASSERT(!loader || loader->frameLoader() == this);
So in debug builds at least, we are protected against issue 2 because loader->frameLoader()
would return null when the loader's frame is null. I turned this debug assertion into a release
assertion to help us figure out if this is what's causing this crash.
I also made the following changes:
- Added release logging to the related code to help debug this in the future if the issue remains.
- Do an early return in DocumentLoader::stopLoading() if m_frame is already null to avoid the crash. I added a debug assertion to ensure that m_frame is not null though to see if this is still happening.
No new tests, we do not know how this happens at this time.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::attachToFrame):
(WebCore::DocumentLoader::detachFromFrame):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::setDocumentLoader):
(WebCore::FrameLoader::setPolicyDocumentLoader):
(WebCore::FrameLoader::setProvisionalDocumentLoader):
Return early when the new loader is identical to the existing one, to avoid incorrectly calling
detachFromFrame() on it.
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
Add some release logging.
- 4:07 PM Changeset in webkit [270717] by
-
- 7 edits in trunk/Source/WebCore
[Mac] Abstract SourceBufferParser segments
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
Rather than directly using a Vector, teach SourceBufferParser to use a Segment class.
This will allow the underlying segment representation to vary in a follow-on patch.
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
(WebCore::SourceBufferParserAVFObjC::appendData):
- platform/graphics/cocoa/SourceBufferParser.cpp:
(WebCore::SourceBufferParser::Segment::Segment):
(WebCore::SourceBufferParser::Segment::size const):
(WebCore::SourceBufferParser::Segment::read const):
(WebCore::SourceBufferParser::Segment::takeVector):
- platform/graphics/cocoa/SourceBufferParser.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::appendData):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
- 4:07 PM Changeset in webkit [270716] by
-
- 2 edits in trunk/Source/WebKit
Fix the iOS !UISCROLLVIEW_ASYNCHRONOUS_SCROLL_EVENT_HANDLING build.
- Shared/ios/WebIOSEventFactory.mm:
(WebIOSEventFactory::createWebWheelEvent):
- 3:38 PM Changeset in webkit [270715] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] Use InlineTextItem::shouldPreserveSpacesAndTabs throughout the inline line layout code
https://bugs.webkit.org/show_bug.cgi?id=219799
Reviewed by Antti Koivisto.
Remove redundant local functions.
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::shouldKeepBeginningOfLineWhitespace): Deleted.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::isWhitespacePreserved): Deleted.
- layout/inlineformatting/InlineLine.h:
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
- layout/inlineformatting/text/TextUtil.h:
(WebCore::Layout::TextUtil::shouldPreserveTrailingWhitespace): Deleted.
- 3:34 PM Changeset in webkit [270714] by
-
- 2 edits in trunk/Websites/perf.webkit.org
'AnalysisTask._commitSetsInSamePlatformGroup' should not fetch an invalid platform and metric config for a MeasurementSet.
https://bugs.webkit.org/show_bug.cgi?id=219721
Reviewed by Ryosuke Niwa.
Selected test group on analysis task page may not highlight when 'AnalysisTask._commitSetsInSamePlatformGroup' fetches
an invalid platform and metric config for a MeasurementSet.
- public/v3/models/analysis-task.js: Added a logic to avoid fetching MeasurementSet with an invalid config.
(AnalysisTask.prototype._commitSetsInSamePlatformGroup):
- 3:27 PM Changeset in webkit [270713] by
-
- 12 edits15 adds in trunk
[iOS][FCR] Add new look for select elements
https://bugs.webkit.org/show_bug.cgi?id=219507
<rdar://problem/71951874>
Reviewed by Wenson Hsieh.
Source/WebCore:
Implement the new in-page appearance for <select> and <select multiple>.
The new appearance/behavior of the select popup will be added separately.
Tests: fast/forms/ios/form-control-refresh/select/background-color.html
fast/forms/ios/form-control-refresh/select/border-radius.html
fast/forms/ios/form-control-refresh/select/border.html
fast/forms/ios/form-control-refresh/select/multiple-appearance.html
fast/forms/ios/form-control-refresh/select/rtl-appearance.html
fast/forms/ios/form-control-refresh/select/text-color.html
fast/forms/ios/form-control-refresh/select/width-height.html
- css/formControlsIOS.css:
(select):
- rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle):
(RenderMenuList::layout):
Override the layout method so that the border radius can be adjusted to
enforce the pill-shaped appearance. Ideally, we should not be adjusting
styles during layout. However, for a pill-shaped appearance, the
horizontal border radius is dependent on the computed height of the box.
This means that the border radius cannot be declared prior to layout,
since CSS only allows the horizontal border radius to be dependent on the
computed width of the box.
Ignoring the style's border radius and forcing a pill-shaped appearance at
paint time is not an option, since focus rings and tap highlights will not
use the correct border radius. Consequently, we need to adjust the border
radius after layout.
Note that similar adjustments to style after layout are made in RenderSliderThumb,
RenderButton, and RenderTextControlSingleLine.
- rendering/RenderMenuList.h:
- rendering/RenderTheme.h:
(WebCore::RenderTheme::popupInternalPaddingBox const):
Added a new parameter, so that the padding can be controlled at runtime.
- rendering/RenderThemeAdwaita.cpp:
(WebCore::RenderThemeAdwaita::popupInternalPaddingBox const):
- rendering/RenderThemeAdwaita.h:
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::popupInternalPaddingBox const):
Use a 1em padding, so that the button scales with the font size.
(WebCore::canAdjustBorderRadiusForAppearance):
Enforce a pill-like shape, only if the author has not specified a
custom border radius.
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):
Paint the appropriate glyph for <select> (a two-headed arrow) and
<select multiple> (ellipses). Both glyphs were obtained from
SF Symbols. The glyph is painted on the right by default, and on
the left if the element's direction is RTL.
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::popupInternalPaddingBox const):
LayoutTests:
Added tests to verify the stylability of select elements with the new appearance.
- fast/forms/ios/form-control-refresh/select/background-color-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/select/background-color.html: Added.
- fast/forms/ios/form-control-refresh/select/border-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/select/border-radius-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/select/border-radius.html: Added.
- fast/forms/ios/form-control-refresh/select/border.html: Added.
- fast/forms/ios/form-control-refresh/select/multiple-appearance-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/select/multiple-appearance.html: Added.
- fast/forms/ios/form-control-refresh/select/rtl-appearance-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/select/rtl-appearance.html: Added.
- fast/forms/ios/form-control-refresh/select/text-color-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/select/text-color.html: Added.
- fast/forms/ios/form-control-refresh/select/width-height-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/select/width-height.html: Added.
- 2:59 PM Changeset in webkit [270712] by
-
- 28 edits in trunk
Trackpad and Mouse scroll events on iPad only fire "pointermove" -- not "wheel"
https://bugs.webkit.org/show_bug.cgi?id=210071
<rdar://problem/54616853>
Reviewed by Simon Fraser.
Source/WebCore:
- page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEventInternal):
Fix a minor logic error when WHEEL_EVENT_LATCHING is off; allowScrolling
would always be true, even if the set of processing steps does not include any scrolling steps.
- rendering/EventRegion.h:
(WebCore::EventRegion::encode const):
(WebCore::EventRegion::decode):
Encode/decode the wheel and passive wheel event regions.
Source/WebKit:
- Platform/spi/ios/UIKitSPI.h:
Add some SPI.
- Shared/ios/WebIOSEventFactory.h:
- Shared/ios/WebIOSEventFactory.mm:
(toWebPhase):
(WebIOSEventFactory::createWebWheelEvent):
Add a UIScrollEvent->WebWheelEvent conversion helper.
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/ios/WKWebViewIOS.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setupScrollAndContentViews]):
Enable async UIScrollEvent handling for WKScrollView.
(-[WKWebView _scrollView:asynchronouslyHandleScrollEvent:completion:]):
Adopt new UIKit SPI to asynchronously defer UIScrollEvents.
We pass them to the Web Content process, where they are processed
*only* for event handling, not for scrolling.
If the event is not cancelable, we will synchronously reply that it was
not handled; if it is cancelable, or we don't yet know if it will be,
we'll wait to hear back from the Web Content process before replying.
UIKit will wait until our reply to apply the UIScrollEvent to the UIScrollView.
- UIProcess/PageClient.h:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(WebKit::eventListenerTypesAtPoint):
Expose a mechanism for retrieving the event listener types at a given point,
similar to the existing mechanism for touch event listeners.
(-[WKChildScrollView initWithFrame:]):
Enable async UIScrollEvent handling for WKChildScrollView.
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(-[WKScrollingNodeScrollViewDelegate _scrollView:asynchronouslyHandleScrollEvent:completion:]):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::handleAsynchronousCancelableScrollEvent):
Plumb async scroll events for sub-scrollable regions through PageClient
to WKWebView; we don't actually care which UIScrollView they're handed to,
since we re-hit-test ourselves.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchWheelEventWithoutScrolling):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::handleAsynchronousCancelableScrollEvent):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::dispatchWheelEventWithoutScrolling):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WTF:
- wtf/PlatformEnableCocoa.h:
Enable wheel event regions on iOS + macCatalyst.
Tools:
- TestWebKitAPI/Tests/ios/WKScrollViewTests.mm:
(-[WKUIScrollEvent initWithPhase:location:delta:]):
(-[WKUIScrollEvent phase]):
(-[WKUIScrollEvent locationInView:]):
(-[WKUIScrollEvent _adjustedAcceleratedDeltaInView:]):
(TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
Add a very simple test that directly calls the new UIScrollViewDelegate SPI
and verifies that only the first event is cancelable (unless the first event
is canceled, in which case all subsequent events are cancelable).
- 2:57 PM Changeset in webkit [270711] by
-
- 10 edits in trunk/Source/JavaScriptCore
[JIT] Require value registers explicitly on emitValueProfilingSite
https://bugs.webkit.org/show_bug.cgi?id=219550
Reviewed by Yusuke Suzuki.
This patch is removing the default value for
emitValueProfilingSite
to avoid bugs like r270423 and r270431.
- jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
- jit/JIT.h:
- jit/JITCall.cpp:
(JSC::JIT::emitPutCallResult):
(JSC::JIT::emit_op_iterator_open):
- jit/JITCall32_64.cpp:
(JSC::JIT::emitPutCallResult):
(JSC::JIT::emit_op_iterator_open):
- jit/JITInlines.h:
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):
(JSC::JIT::emitValueProfilingSiteIfProfiledOpcode):
(JSC::JIT::emitValueProfilingSite):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_get_direct_pname):
(JSC::JIT::emit_op_get_argument):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_get_direct_pname):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_get_from_arguments):
(JSC::JIT::emit_op_get_internal_field):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_get_from_arguments):
(JSC::JIT::emit_op_get_internal_field):
- 2:34 PM Changeset in webkit [270710] by
-
- 7 edits in trunk/Source
Expose API for enabling/disabling Private Click Measurement
https://bugs.webkit.org/show_bug.cgi?id=219791
<rdar://problem/70502198>
Reviewed by Alex Christensen.
Source/WebKit:
Tested by existing PCM test cases.
This patch moves the flag for enabling and disabling PCM support from the Experimental
features settings to standard settings in preparation for exposing the option in more
permanent UI. This patch does not make any changes in behavior.
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _privateClickMeasurementEnabled]):
(-[WKPreferences _setPrivateClickMeasurementEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Source/WTF:
This patch moves the flag for enabling and disabling PCM support from the Experimental
features settings to standard settings in preparation for exposing the option in more
permanent UI. This patch does not make any changes in behavior.
- Scripts/Preferences/WebPreferences.yaml: Add PCM flag here.
- Scripts/Preferences/WebPreferencesExperimental.yaml: Remove PCM flag from here.
- 2:28 PM Changeset in webkit [270709] by
-
- 11 edits35 copies41 adds1 delete in trunk/LayoutTests
Remove LayoutTests/platform/big-sur
https://bugs.webkit.org/show_bug.cgi?id=218359
Unreviewed test gardening.
- platform/mac-bigsur/http/tests/navigation/javascriptlink-frames-expected.txt: Removed.
- platform/mac-bigsur/media/controls-after-reload-expected.txt: Removed.
- platform/mac-bigsur/media/video-no-audio-expected.txt: Removed.
- platform/mac-bigsur/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Removed.
- platform/mac-bigsur/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Removed.
- platform/mac-bigsur/svg/text/bidi-tspans-expected.txt: Removed.
- platform/mac-bigsur/tables/mozilla/bugs/bug18359-expected.txt: Removed.
- platform/mac-bigsur/tables/mozilla/bugs/bug60749-expected.txt: Removed.
- platform/mac-bigsur/tables/mozilla/bugs/bug7342-expected.txt: Removed.
- platform/mac-bigsur/transforms/2d/zoom-menulist-expected.txt: Removed.
- platform/mac-catalina/http/tests/navigation/javascriptlink-frames-expected.txt: Copied from LayoutTests/platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt.
- platform/mac-catalina/http/tests/xmlhttprequest/methods-async-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-async-expected.txt.
- platform/mac-catalina/http/tests/xmlhttprequest/methods-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-expected.txt.
- platform/mac-catalina/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-async-expected.txt.
- platform/mac-catalina/http/tests/xmlhttprequest/workers/methods-expected.txt: Copied from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-expected.txt.
- platform/mac-catalina/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Added.
- platform/mac-catalina/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Added.
- platform/mac-catalina/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt.
- platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt.
- platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt.
- platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt.
- platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Copied from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt.
- platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Added.
- platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Added.
- platform/mac-catalina/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Added.
- platform/mac-catalina/media/controls-after-reload-expected.txt: Copied from LayoutTests/platform/mac/media/controls-after-reload-expected.txt.
- platform/mac-catalina/media/video-no-audio-expected.txt: Copied from LayoutTests/platform/mac/media/video-no-audio-expected.txt.
- platform/mac-catalina/platform/mac/fast/text/bidi-fallback-font-weight-expected.txt: Copied from LayoutTests/platform/mac-bigsur/platform/mac/fast/text/international/bidi-fallback-font-weight-expected.txt.
- platform/mac-catalina/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-I18N/tspan-direction-rtl-expected.txt.
- platform/mac-catalina/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt.
- platform/mac-catalina/svg/text/bidi-tspans-expected.txt: Copied from LayoutTests/platform/mac/svg/text/bidi-tspans-expected.txt.
- platform/mac-catalina/tables/mozilla/bugs/bug18359-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug18359-expected.txt.
- platform/mac-catalina/tables/mozilla/bugs/bug60749-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug60749-expected.txt.
- platform/mac-catalina/tables/mozilla/bugs/bug7342-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug7342-expected.txt.
- platform/mac-catalina/transforms/2d/zoom-menulist-expected.txt: Copied from LayoutTests/platform/mac/transforms/2d/zoom-menulist-expected.txt.
- platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
- platform/mac/http/tests/xmlhttprequest/methods-async-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-async-expected.txt.
- platform/mac/http/tests/xmlhttprequest/methods-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/methods-expected.txt.
- platform/mac/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-async-expected.txt.
- platform/mac/http/tests/xmlhttprequest/workers/methods-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt.
- platform/mac/media/controls-after-reload-expected.txt:
- platform/mac/media/video-no-audio-expected.txt:
- platform/mac/platform/mac/fast/loader/international/bidi-fallback-font-weight-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/platform/mac/fast/text/international/bidi-fallback-font-weight-expected.txt.
- platform/mac/svg/W3C-I18N/tspan-direction-rtl-expected.txt:
- platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
- platform/mac/svg/text/bidi-tspans-expected.txt:
- platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
- platform/mac/tables/mozilla/bugs/bug60749-expected.txt:
- platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
- platform/mac/transforms/2d/zoom-menulist-expected.txt:
- 1:47 PM Changeset in webkit [270708] by
-
- 10 edits in trunk/Source
[Media in GPU Process][MSE] Implement some required functions with new IPC messages and remove some unneeded functions
https://bugs.webkit.org/show_bug.cgi?id=219788
Reviewed by Eric Carlson.
Source/WebCore:
Change the argument type of sourceBufferPrivateDidReceiveRenderingError() from int to int64_t
so that we can pass it in an IPC message.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError):
- Modules/mediasource/SourceBuffer.h:
- platform/graphics/SourceBufferPrivateClient.h:
Source/WebKit:
Implement unimplemented functions and remove unneeded ones.
This patch also cleans upRemoteSourceBufferProxy.
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateStreamEndedWithDecodeError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidDropSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveRenderingError):
- GPUProcess/media/RemoteSourceBufferProxy.h:
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateStreamEndedWithDecodeError):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendError):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidDropSample):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveRenderingError):
(WebKit::SourceBufferPrivateRemote::flush): Deleted.
(WebKit::SourceBufferPrivateRemote::isReadyForMoreSamples): Deleted.
(WebKit::SourceBufferPrivateRemote::notifyClientWhenReadyForMoreSamples): Deleted.
(WebKit::SourceBufferPrivateRemote::canSetMinimumUpcomingPresentationTime const): Deleted.
(WebKit::SourceBufferPrivateRemote::setMinimumUpcomingPresentationTime): Deleted.
(WebKit::SourceBufferPrivateRemote::clearMinimumUpcomingPresentationTime): Deleted.
- WebProcess/GPU/media/SourceBufferPrivateRemote.h:
- WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
- 1:36 PM Changeset in webkit [270707] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] InlineTextItem::isCollapsible might be misleading
https://bugs.webkit.org/show_bug.cgi?id=219796
Reviewed by Antti Koivisto.
This change makes the code more aligned with the spec language.
::isCollapsed (which maps to RenderStyle::collapseWhiteSpace) is not always about collapsing subsequent
whitespace content but also about preserving tab stops.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::appendTextContent):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::trailingWhitespaceType const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::inlineItemWidth const):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::shouldPreserveSpacesAndTabs):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::isWhitespace const):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::isCollapsible const): Deleted.
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
- 1:05 PM Changeset in webkit [270706] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening for Windows.
- platform/win/fast/url/data-url-mediatype-expected.txt: Correct the baseline.
- 1:04 PM Changeset in webkit [270705] by
-
- 2 edits in trunk/Source/WebKit
[GPUProcess] WebAudio rendering quantum is 15 instead of 128 when the GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=219797
Reviewed by Eric Carlson.
WebAudio rendering quantum is 15 instead of 128 when the GPU Process is enabled. This generates a lot more
IPC unnecessarily, not to mention how WebAudio code expects a rendering quantum of 128 and could potentially
do bad things with a lower value.
The issue was that RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess() was iterating over
all RemoteAudioSessionProxy objects to find out the lowest rendering quantum. If there is a proxy with
a preferred buffer size that is not set, the value ends up being 0. When then ask core audio for a rendering
quantum of 0, and they end up using 15 (likely the minimum).
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):
- 12:53 PM Changeset in webkit [270704] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Address post-review comments after r270678.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintColorWellDecorations):
Use std::size to determine the size of the color stops array.
- 12:41 PM Changeset in webkit [270703] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Line should report the correct value for "content logical right"
https://bugs.webkit.org/show_bug.cgi?id=219779
Reviewed by Antti Koivisto.
Adjust the run's horizontal geometry when negative margin-start is present.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendReplacedInlineBox):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::contentLogicalRight const):
- 12:39 PM Changeset in webkit [270702] by
-
- 9 edits4 adds in trunk
Reflect.preventExtensions should not throw if called on WindowProxy or Location
https://bugs.webkit.org/show_bug.cgi?id=219270
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/html/browsers/history/the-location-interface/location-prevent-extensions-expected.txt: Added.
- web-platform-tests/html/browsers/history/the-location-interface/location-prevent-extensions.html: Added.
- web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
- web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
- web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prevent-extensions-expected.txt: Added.
- web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prevent-extensions.html: Added.
Source/WebCore:
Since r254626 fixed Object.preventExtensions to throw a TypeError on
falseresult, this patch makes PreventExtensions overrides pure,
aligning Reflect.preventExtensions behavior with the spec [1], Gecko,
and (only for WindowProxy [2]) Blink.
[1]: https://html.spec.whatwg.org/multipage/history.html#location-preventextensions
[2]: https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-preventextensions
Tests: imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prevent-extensions.html
imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prevent-extensions.html
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::preventExtensions):
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::preventExtensions):
- bindings/js/JSRemoteDOMWindowCustom.cpp:
(WebCore::JSRemoteDOMWindow::preventExtensions):
LayoutTests:
- http/tests/security/preventExtensions-window-location-expected.txt:
- 12:21 PM Changeset in webkit [270701] by
-
- 2 edits in trunk/Source/WebKit
[PlayStation] Link additional libraries into processes after r270690
https://bugs.webkit.org/show_bug.cgi?id=219795
Unreviewed build fix after r270690.
Some libraries were being propagated from WebKit before the change so just add
them to the Process_PRIVATE_LIBRARIES.
- PlatformPlayStation.cmake:
- 12:10 PM Changeset in webkit [270700] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r270665): testapi failing on CLoop bot
https://bugs.webkit.org/show_bug.cgi?id=219787
Reviewed by Mark Lam.
The API has to special case the empty JSValue as null.
- API/JSValueRef.cpp:
(JSValueGetType):
(JSValueIsNull):
- 12:09 PM Changeset in webkit [270699] by
-
- 6 edits in trunk
[WinCairo] Enable accelerated WebGL canvas
https://bugs.webkit.org/show_bug.cgi?id=219768
Reviewed by Don Olmstead.
Source/WebCore:
TextureMapper has TextureMapperGCGLPlatformLayer that is a
PlatformLayer for WebGL.
- html/canvas/GPUBasedCanvasRenderingContext.h (isAccelerated):
Return true for WinCairo port.
Source/WebKit:
prepareForRendering should be called before calling
flushPendingLayerChanges to make the GL context current because it
uses OpenGL API.
- WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:
(WebKit::LayerTreeHost::compositeLayersToContext):
(WebKit::LayerTreeHost::flushAndRenderLayers):
LayoutTests:
- platform/wincairo/TestExpectations: Skip some WebGL tests
because WinCairo DRT and WTR don't support pixel dump yet.
- 12:06 PM Changeset in webkit [270698] by
-
- 4 edits2 adds in trunk
[TextureMapper] REGRESION(r269570): mask layer doesn't clip descendent layers
https://bugs.webkit.org/show_bug.cgi?id=219136
<rdar://problem/71742605>
Reviewed by Carlos Garcia Campos.
Source/WebCore:
computeOverlapRegions shouldn't include the descendent layer
region for layers with a mask layer. Add a new mode Mask to
ComputeOverlapRegionMode which is like Union mode but doesn't
include descendent layers.
Test: compositing/masks/clip-path-composited-descendent-2.html
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions): Skip
children for the Mask mode.
(WebCore::TextureMapperLayer::paintUsingOverlapRegions): Use
ComputeOverlapRegionMode::Mask for a layer with mask layer.
- platform/graphics/texmap/TextureMapperLayer.h (ComputeOverlapRegionMode): Added Mask.
LayoutTests:
- compositing/masks/clip-path-composited-descendent-2-expected.html: Added.
- compositing/masks/clip-path-composited-descendent-2.html: Added.
- 12:00 PM Changeset in webkit [270697] by
-
- 7 edits in trunk/Tools
[webkitscmpy] Do not use actual URLs in testing
https://bugs.webkit.org/show_bug.cgi?id=219790
<rdar://problem/72228983>
Reviewed by Stephanie Lewis.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git): Use example.org instead of webkit.org.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:
(Svn.init): Use example.org instead of webkit.org.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
(TestFind.test_basic_svn_remote): Use example.org instead of webkit.org.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit.test_info): Use example.org instead of webkit.org.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestRemoteSvn): Use example.org instead of webkit.org.
(TestRemoteSvn.test_detection):
- 11:54 AM Changeset in webkit [270696] by
-
- 2 edits in trunk/LayoutTests
[GPU process] Update TestExpectations to skip Layout tests crashes
https://bugs.webkit.org/show_bug.cgi?id=219792
Patch by Rini Patel <rini_patel@apple.com> on 2020-12-11
Reviewed by Simon Fraser.
- gpu-process/TestExpectations:
- 11:50 AM Changeset in webkit [270695] by
-
- 76 edits32 adds in trunk/JSTests
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=219794
Reviewed by Mark Lam.
- test262/expectations.yaml:
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Array/prototype/reverse/array-has-one-entry.js: Added.
- test262/test/built-ins/Array/prototype/sort/bug_596_1.js:
- test262/test/built-ins/Math/max/Math.max_each-element-coerced.js: Added.
(const.n.valueOf):
- test262/test/built-ins/Math/min/Math.min_each-element-coerced.js: Added.
(const.n.valueOf):
- test262/test/built-ins/String/prototype/at/prop-desc.js:
- test262/test/built-ins/TypedArray/prototype/at/prop-desc.js:
- test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric-throw.js:
- test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric.js:
- test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-symbol-throws.js:
- test262/test/built-ins/TypedArray/prototype/fill/BigInt/return-abrupt-from-set-value.js:
- test262/test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js:
- test262/test/built-ins/TypedArray/prototype/fill/fill-values-symbol-throws.js:
- test262/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js:
- test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js:
(testWithTypedArrayConstructors.valueOf):
(testWithTypedArrayConstructors):
(testWithTypedArrayConstructors.detachAndReturnIndex): Deleted.
- test262/test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation-consistent-nan.js:
- test262/test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobigint64.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobiguint64.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/boolean-tobigint.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/null-tobigint.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/number-tobigint.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-nan-tobigint.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-tobigint.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/symbol-tobigint.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive-typeerror.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-tostring.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof-typeerror.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof.js:
- test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/undefined-tobigint.js:
- test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation-consistent-nan.js:
- test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation.js:
- test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive-typeerror.js:
- test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive.js:
- test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-tostring.js:
- test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof-typeerror.js:
- test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof.js:
- test262/test/built-ins/TypedArrayConstructors/from/BigInt/source-value-is-symbol-throws.js:
- test262/test/built-ins/TypedArrayConstructors/from/nan-conversion.js:
- test262/test/built-ins/TypedArrayConstructors/from/source-value-is-symbol-throws.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/desc-value-throws.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/set-value.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/conversion-operation.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/desc-value-throws.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/set-value.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/indexed-value.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero.js:
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer.js:
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds.js:
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js:
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-throws.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation-consistent-nan.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/indexed-value.js:
- test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js:
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js:
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js:
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js:
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-throws.js:
- test262/test/built-ins/TypedArrayConstructors/of/BigInt/argument-is-symbol-throws.js:
- test262/test/built-ins/TypedArrayConstructors/of/BigInt/new-instance.js:
- test262/test/built-ins/TypedArrayConstructors/of/argument-is-symbol-throws.js:
- test262/test/built-ins/TypedArrayConstructors/of/nan-conversion.js:
- test262/test/built-ins/TypedArrayConstructors/of/new-instance.js:
- test262/test/built-ins/parseInt/S15.1.2.2_A2_T2.js:
- test262/test/intl402/DateTimeFormat/prototype/formatRange/date-x-greater-than-y-throws.js:
- test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-x-greater-than-y-throws.js:
- test262/test/language/arguments-object/mapped/enumerable-configurable-accessor-descriptor.js: Added.
(set _v):
- test262/test/language/arguments-object/mapped/nonconfigurable-descriptors-define-failure.js: Added.
(get 3):
- test262/test/language/arguments-object/mapped/writable-enumerable-configurable-descriptor.js: Added.
- test262/test/language/destructuring/binding/syntax/destructuring-array-parameters-function-arguments-length.js: Added.
(assert.sameValue):
(assert.sameValue.async a):
- test262/test/language/destructuring/binding/syntax/destructuring-object-parameters-function-arguments-length.js: Added.
(assert.sameValue):
- test262/test/language/expressions/async-function/named-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-function/named-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-function/named-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
- test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
- test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
- test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body.js: Added.
(let.ref):
- test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
- test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
- test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref):
- test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
- test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
- test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body.js: Added.
(let.ref):
- test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
- test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
- test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref):
- test262/test262-Revision.txt:
- 11:46 AM Changeset in webkit [270694] by
-
- 16 edits in trunk/Source/WebKit
[WebAuthn] Adopt new UI for the Platform Authenticator makeCredential flow
https://bugs.webkit.org/show_bug.cgi?id=219709
<rdar://problem/72154774>
Reviewed by Brent Fulgham.
This patch adopts the new UI for the platform authenticator makeCredential flow. In this new design,
the UI will be responsible for creating the LAContext and get it verified by the user. Therefore, WebKit
just needs to reverify the LAContext in non-UI mode against the SecAccessControlRef without handling any
LA UI anymore.
Covered by manual tests.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
Adds a new class which represents a successful operation.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
Adds rule to allow the WebAuthn process to access Keychain and SEP.
- UIProcess/WebAuthentication/Authenticator.h:
(WebKit::Authenticator::setWebAuthenticationModernEnabled):
(WebKit::Authenticator::webAuthenticationModernEnabled const):
Adds a flag to know which UI to call.
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::handleRequest):
(WebKit::AuthenticatorManager::enableModernWebAuthentication):
(WebKit::AuthenticatorManager::authenticatorAdded):
(WebKit::AuthenticatorManager::requestLAContextForUserVerification):
(WebKit::AuthenticatorManager::invokePendingCompletionHandler):
- UIProcess/WebAuthentication/AuthenticatorManager.h:
Adds plumbing to the new UI method.
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
Paperwork.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
(WebKit::AuthenticatorPresenterCoordinator::setCredentialRequestHandler):
This handler is from the UI delegate which is supposed to call if the operation succeeds.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::requestLAContextForUserVerification):
(WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):
(WebKit::AuthenticatorPresenterCoordinator::setLAContext):
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterReceivingLAContext):
- UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::verifyUser):
- UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:
(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):
(-[WKASCAuthorizationPresenterDelegate dispatchCoordinatorCallback:]):
Implements the new UI logic.
- 11:37 AM Changeset in webkit [270693] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
[Cocoa] REGRESSION (r270315): WebKitLegacy builds fail with "unifdef" error message
https://bugs.webkit.org/show_bug.cgi?id=219756
Reviewed by Sam Weinig.
Was seeing this error: Unifdef: can't open Debug/WebKitLegacy.framework/Versions/A/Headers/*.h.tmp: No such file or directory.
Keith figured out it was because there are no public headers in the WebKitLegacy framework.
- postprocess-headers.sh: Remove the line that post-processes public headers.
- 11:29 AM Changeset in webkit [270692] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Remove access to com.apple.MTLCompilerService in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219774
<rdar://problem/70497100>
Reviewed by Brent Fulgham.
Remove access to com.apple.MTLCompilerService in the WebContent process on macOS, since there are no reports of this being used.
No new tests, since the result will depend on macOS version.
- WebProcess/com.apple.WebProcess.sb.in:
- 11:26 AM Changeset in webkit [270691] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Remove Mobile Asset access from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219738
<rdar://problem/60650074>
Reviewed by Brent Fulgham.
Remove Mobile Asset access from the WebContent process on macOS, since there are no reports of this being used.
No new tests, since the result will depend on macOS version.
- WebProcess/com.apple.WebProcess.sb.in:
- 11:15 AM Changeset in webkit [270690] by
-
- 30 edits in trunk
[CMake] Determine correct visibility for linked frameworks
https://bugs.webkit.org/show_bug.cgi?id=210366
Reviewed by Michael Catanzaro.
.:
WebKit has some frameworks that are compiled statically into a larger shared library. For
example Apple compiles bmalloc and WTF into JavaScriptCore. This means the JavaScriptCore
framework also exposes the symbols for those two libraries and that targets depending
on WTF or bmalloc should link to JavaScriptCore and never to WTF or bmalloc directly.
The CMake code allows each port to decide the type of library for a WEBKIT_FRAMEWORK.
This means there are many different combinations that it needs to support. To ensure that
everything links properly some bookkeeping is required.
WEBKIT_FRAMEWORK now uses ${target}_FRAMEWORKS to determine how to link the frameworks
it depends on. First the macro determines if the framework is a SHARED library or is linked
into a shared library, and if so it is linked as PUBLIC. If the framework itself is not a
SHARED library, then it links other STATIC/OBJECT framework as PUBLIC. If the framework
itself is SHARED then any framework that is a STATIC/OBJECT library is linked as PRIVATE
to stop propagation. The linked framework's header directories are added to the
WebKit::${framework} target to allow the framework to present as that framework. A global
property is set to inform consumers that they should link to this different framework
to get the requested framework.
This ensures that all ports can ship with hidden visibility turned on which is a precursor
to a port turning on link time optimization (LTO).
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
Set JavaScriptCore_FRAMEWORKS to determine correct linkage for the library. Remove
explicit setting of STATICALLY_LINKED_WITH_${framework} and $<TARGET_OBJECTS:${framework}>
by ports.
Move the add_subdirectory of shell to the end of the CMakeLists.txt so its after the
WEBKIT_FRAMEWORK call. This ensures that the frameworks linked into JavaScriptCore are
known when creating the executables in that directory.
- CMakeLists.txt:
- PlatformGTK.cmake:
- PlatformJSCOnly.cmake:
- PlatformMac.cmake:
- PlatformPlayStation.cmake:
- shell/CMakeLists.txt:
Source/WebCore:
Set WebCore_FRAMEWORKS and WebCoreTestSupport_FRAMEWORKS to determine correct linkage
for the libraries. Remove explicit setting of STATICALLY_LINKED_WITH_PAL.
For the GTK port JavaScriptCore is compiled as a SHARED library with WTF and bmalloc
compiled into it. WEBKIT_FRAMEWORK now correctly prevents WTF and bmalloc being linked
into targets that also link JavaScriptCore. However GTK port can't be compiled with
hidden visibility turned on currently to properly export symbols so the libraries are
added back to the list for WebCore to keep the old, albiet wrong, behavior.
- CMakeLists.txt:
- PlatformGTK.cmake:
Source/WebCore/PAL:
Set PAL_FRAMEWORKS to determine correct linkage for the library.
- pal/CMakeLists.txt:
Source/WebDriver:
Conditionally add bmalloc to the list of WebDriver_FRAMEWORKS.
- CMakeLists.txt:
Source/WebKit:
Set WebKit_FRAMEWORKS to determine correct linkage for the library. Remove
explicit setting of STATICALLY_LINKED_WITH_${framework} and $<TARGET_OBJECTS:${framework}>
by ports.
- CMakeLists.txt:
- PlatformFTW.cmake:
- PlatformPlayStation.cmake:
- PlatformWPE.cmake:
- PlatformWin.cmake:
Source/WebKitLegacy:
Remove explicit setting of STATICALLY_LINKED_WITH_${framework}.
- PlatformFTW.cmake:
- PlatformWin.cmake:
Source/WTF:
Set WTF_FRAMEWORKS to determine correct linkage for the library. Remove
explicit setting of STATICALLY_LINKED_WITH_${framework} by ports.
- wtf/CMakeLists.txt:
- wtf/PlatformPlayStation.cmake:
Tools:
Remove explicit setting of STATICALLY_LINKED_WITH_${framework}.
- TestWebKitAPI/PlatformWin.cmake:
- 11:04 AM Changeset in webkit [270689] by
-
- 25 edits1 move5 adds2 deletes in trunk
[WASM-References] Add table.init
https://bugs.webkit.org/show_bug.cgi?id=219297
Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-12-11
Reviewed by Yusuke Suzuki.
JSTests:
Added reference types spec tests for element section, table.init
and elem.drop:
https://github.com/WebAssembly/reference-types/blob/master/test/core/elem.wast,
https://github.com/WebAssembly/reference-types/blob/master/test/core/table_init.wast.
Added tests for checking table instructions immediates when they are unreachable.
- wasm.yaml:
- wasm/references-spec-tests/elem.wast.js: Added.
- wasm/references-spec-tests/ref_is_null.js: Removed.
- wasm/references-spec-tests/ref_is_null.wast.js: Added.
- wasm/references-spec-tests/ref_null.js: Removed.
- wasm/references-spec-tests/ref_null.wast.js: Added.
- wasm/references-spec-tests/table_copy.wast.js: Renamed from JSTests/wasm/references-spec-tests/table_copy.js.
- wasm/references-spec-tests/table_init.wast.js: Added.
- wasm/spec-harness/wasm-constants.js:
(hostref):
- wasm/wasm.json:
Source/JavaScriptCore:
Add support for table.init, elem.drop and new element section
from reference-type proposal:
https://webassembly.github.io/reference-types/core/syntax/instructions.html#table-instructions,
https://webassembly.github.io/reference-types/core/syntax/modules.html#element-segments.
All in one patch because all this stuff are very coupled and ref-types
spec tests require each other to run the its tests, so not to write
hand-crafted tests this is in one PR.
- bytecode/BytecodeList.rb:
- llint/WebAssembly.asm:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::addTableInit):
(JSC::Wasm::AirIRGenerator::addElemDrop):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addTableInit):
(JSC::Wasm::B3IRGenerator::addElemDrop):
- wasm/WasmFormat.h:
(JSC::Wasm::Element::Element):
(JSC::Wasm::Element::length const):
(JSC::Wasm::Element::isPassive const):
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
- wasm/WasmInstance.cpp:
(JSC::Wasm::Instance::Instance):
(JSC::Wasm::Instance::elemDrop):
(JSC::Wasm::Instance::elem const):
(JSC::Wasm::Instance::initElementSegment):
(JSC::Wasm::Instance::tableInit):
- wasm/WasmInstance.h:
(JSC::Wasm::Instance::isImportFunction const):
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::addTableInit):
(JSC::Wasm::LLIntGenerator::addElemDrop):
- wasm/WasmModuleInformation.h:
(JSC::Wasm::ModuleInformation::elementCount const):
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- wasm/WasmOperations.h:
- wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfExpressions):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfIndexes):
(JSC::Wasm::SectionParser::parseFuncIndexFromRefExpForElementSection): Deleted.
(JSC::Wasm::SectionParser::parseFuncIndexForElementSection): Deleted.
- wasm/WasmSectionParser.h:
- wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
- wasm/WasmSlowPaths.h:
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::evaluate):
- wasm/wasm.json:
Tools:
Support ref-types spec tests.
- Scripts/run-jsc-stress-tests:
- 11:00 AM Changeset in webkit [270688] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r270654.
https://bugs.webkit.org/show_bug.cgi?id=219793
Introduced crash
Reverted changeset:
"[macOS] The development WebContent XPC service is missing a
required entitlement"
https://bugs.webkit.org/show_bug.cgi?id=219730
https://trac.webkit.org/changeset/270654
- 10:50 AM Changeset in webkit [270687] by
-
- 2 edits in trunk/Websites/webkit.org
Add Big Sur to WebKit Build Archives page
https://bugs.webkit.org/show_bug.cgi?id=219789
Reviewed by Alexey Proskuryakov.
- wp-content/themes/webkit/build-archives.php:
Add Big Sur, remove High Sierra since we aren't producing new archives for it.
- 10:49 AM Changeset in webkit [270686] by
-
- 10 edits in trunk/Source/JavaScriptCore
Add extra validation after untagging code pointers.
https://bugs.webkit.org/show_bug.cgi?id=219765
rdar://72069920
Reviewed by Robin Morisset.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::untagReturnAddress):
(JSC::AbstractMacroAssembler::validateUntaggedPtr):
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagReturnAddress):
(JSC::MacroAssemblerARM64E::validateUntaggedPtr):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::reifyInlinedCallFrames):
- ftl/FTLThunks.cpp:
(JSC::FTL::genericGenerationThunkGenerator):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::prepareForTailCallSlow):
- jit/CallFrameShuffler.cpp:
(JSC::CallFrameShuffler::prepareForTailCall):
- jit/ThunkGenerators.cpp:
(JSC::emitPointerValidation):
(JSC::arityFixupGenerator):
- llint/LLIntThunks.cpp:
(JSC::LLInt::createTailCallGate):
(JSC::LLInt::untagGateThunk):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
- 10:31 AM Changeset in webkit [270685] by
-
- 2 edits in trunk/Source/WebKit
Protect the WebProcessPool earlier in WebProcessCache::addProcessIfPossible
https://bugs.webkit.org/show_bug.cgi?id=219777
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-12-11
Reviewed by Adrian Perez de Castro.
We are taking a reference of the WebProcessPool in the isResponsive() completion handler lambda, but the
WebProcessPool can be destroyed earlier when CachedProcess is created if the WebProcessProxy contains the last
strong reference.
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::addProcessIfPossible):
- 10:23 AM Changeset in webkit [270684] by
-
- 2 edits in trunk/PerformanceTests
Eliminate 'async time' in StyleBench
https://bugs.webkit.org/show_bug.cgi?id=219785
Reviewed by Antti Koivisto.
r270132 (a RunLoop change) measured as a 13% regression on the
StyleBench bot. But I don't think the measured regression was user-real.
Instead, I think the baseline score was artificially high because 'async
time' sometimes did not measure painting.
I decided just to eliminate 'async time' (and force style resolution +
layout during 'sync time') because this benchmark intends to measure
style resolution + layout, and not painting or frame rate.
With this change, there is no measured regression anymore.
Explanation of 'did not measure painting':
StyleBench synchronously modifies DOM + style, and then sets a
zero-delay timer to measure 'async time'. If layout has not
happened by the time the timer fires, StyleBench forces layout
and then computes 'async time'. The flaw here is painting.
StyleBench accepts both of these orders of operations as valid:
(A) { modify DOM + style }, { measure 'sync time' }, { style resolution + layout }, { paint }, { measure 'async time' }
(B) { modify DOM + style }, { measure 'sync time' }, { style resolution + layout }, { measure 'async time' }, { paint }
(B) includes more stuff than (A). Not cool!
Evidence for the theory that the baseline was sometimes doing (B):
- Forcing style resolution + layout during sync time reduces the baseline score and eliminates the difference in async time between baseline and patch.
- Starting the benchmark from a requestAnimationFrame() instead of a timer reduces the baseline score and eliminates the difference in async time between baseline and patch.
- The regression only reproduced on machines with fewer cores.
- The new benchmark method reduces sttdev by ~3X - ~5X.
- StyleBench/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._runTest): Call getBoundingClientRect()
during sync time to force style resolution + layout consistently.
Always report async time as 1, since this benchmark doesn't have an
async time component anymore. (The harness doesn't like zeroes.)
Just store height in a global because that is sufficient to prevent
dead code elimination (which was probably impossible anyway, since
getBoundingClientRect() has side effects).
- 9:50 AM Changeset in webkit [270683] by
-
- 6 edits in trunk/Source
[GTK][WPE] Async overflow scrolling is disabled by default due to brokenness
https://bugs.webkit.org/show_bug.cgi?id=219776
Reviewed by Žan Doberšek.
Source/WebCore:
Make sure to respect GraphicsLayer::boundsOrigin when calculating
transforms, coverage and clipping in CoordinatedGraphicsLayer. Also,
when scrolling overflow areas, change the boundsOrigin on the
container layer and not the contents area, to match behaviour on Mac.
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::repositionScrollingLayers):
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelfAndChildren):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
Source/WTF:
Enable async overflow scrolling with Nicosia.
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 9:32 AM Changeset in webkit [270682] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Only extend access to the RootDomainUserClient IOKit class if the GPU Process is not used
https://bugs.webkit.org/show_bug.cgi?id=219758
<rdar://problem/70464431>
Reviewed by Per Arne Vollan.
The RootDomainUserClient IOKit class appears to only be used by media on Apple Silicon. Dynamically extend access to this
class for Apple Silicon builds if the GPU process is not being used.
This patch also includes telemetry to confirm that it is not needed on Intel, or for any other purposes. It does not
block access to the IOKit class yet.
- UIProcess/WebPageProxy.cpp:
(WebKit::mediaRelatedIOKitClasses):
- WebProcess/com.apple.WebProcess.sb.in:
- 9:28 AM Changeset in webkit [270681] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Adopt AVSystemController_SubscribeToNotificationsAttribute
https://bugs.webkit.org/show_bug.cgi?id=219754
<rdar://problem/71352731>
Reviewed by Eric Carlson.
Ask AVSystemController to send us the notifications we are interested in,
making sure to ask again if the server dies.
- platform/audio/ios/MediaSessionHelperIOS.mm:
(MediaSessionHelperiOS::mediaServerConnectionDied):
(-[WebMediaSessionHelper initWithCallback:]):
- 9:05 AM Changeset in webkit [270680] by
-
- 2 edits in trunk/Source/WTF
Enable WebRTCPlatformSocketsEnabled by default
https://bugs.webkit.org/show_bug.cgi?id=219778
Reviewed by Eric Carlson.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 8:46 AM Changeset in webkit [270679] by
-
- 3 edits in trunk/Source/WebCore
Introduce a way to update additional settings than the one handled by policies
https://bugs.webkit.org/show_bug.cgi?id=219681
Reviewed by Eric Carlson.
Add a way for WebKit additions to update page settings at the time settings are changed by policies.
Manually tested.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::applyPoliciesToSettings):
- loader/DocumentLoader.h:
- 8:42 AM Changeset in webkit [270678] by
-
- 8 edits9 adds in trunk
[iOS][FCR] Add new look for color inputs
https://bugs.webkit.org/show_bug.cgi?id=219654
<rdar://problem/72107493>
Reviewed by Wenson Hsieh.
Source/WebCore:
The new appearance matches the appearance of UIKit's UIColorWell.
Tests: fast/forms/ios/form-control-refresh/color/background-color.html
fast/forms/ios/form-control-refresh/color/border-radius.html
fast/forms/ios/form-control-refresh/color/border.html
fast/forms/ios/form-control-refresh/color/width-height.html
- css/formControlsIOS.css:
(input[type="color"]::-webkit-color-swatch-wrapper, input[type="color"]::-webkit-color-swatch):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::adjustColorWellStyle const):
Call adjustButtonStyle to preserve existing behavior in cases where
the form control refresh does not apply (setting disabled,
non-iOS ports).
(WebCore::RenderTheme::paintColorWell):
Call paintButton to preserve existing behavior in cases where
the form control refresh does not apply (setting disabled,
non-iOS ports).
(WebCore::RenderTheme::paintColorWellDecorations):
Call paintButtonDecorations to preserve existing behavior in
cases where the form control refresh does not apply (setting
disabled, non-iOS ports).
(WebCore::RenderTheme::colorInputStyleSheet const):
- rendering/RenderTheme.h:
Previously, color inputs always had the same appearance as buttons.
However, with the new appearance on iOS this is no longer always
the case. Consequently, it is necessary to introduce adjustColorWellStyle,
paintColorWell and paintColorWellDecorations.
Updated colorInputStyleSheet to take an additional parameter, so that
the style can change depending on whether or not the form control refresh
setting is enabled. It is not possible to simply add the new style to
formControlsiOS.css, since <input type=color> is another runtime
enabled feature.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::colorInputStyleSheet const):
(WebCore::RenderThemeIOS::adjustColorWellStyle const):
(WebCore::RenderThemeIOS::paintColorWell):
(WebCore::RenderThemeIOS::paintColorWellDecorations):
Use a conic gradient to achieve the new appearance.
- style/UserAgentStyle.cpp:
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):
LayoutTests:
Added tests to verify the stylability of color inputs with the new appearance.
- fast/forms/ios/form-control-refresh/color/background-color-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/color/background-color.html: Added.
- fast/forms/ios/form-control-refresh/color/border-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/color/border-radius-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/color/border-radius.html: Added.
- fast/forms/ios/form-control-refresh/color/border.html: Added.
- fast/forms/ios/form-control-refresh/color/width-height-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/color/width-height.html: Added.
- 8:38 AM Changeset in webkit [270677] by
-
- 6 edits in trunk/Source/WebKit
[GLib] Move GCrypt initialization to platformInitialize
https://bugs.webkit.org/show_bug.cgi?id=219749
Reviewed by Adrian Perez de Castro.
It makes more sense for initialization of GCrypt to occur in platformInitialize
than in the main method of the process. This means that the process does not have
to link gcrypt libraries and can just link WebKit only.
- NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
(main):
- NetworkProcess/soup/NetworkProcessMainSoup.cpp:
- WebProcess/EntryPoint/unix/WebProcessMain.cpp:
(main):
- WebProcess/gtk/WebProcessMainGtk.cpp:
(WebKit::WebProcessMain):
- WebProcess/wpe/WebProcessMainWPE.cpp:
- 8:06 AM Changeset in webkit [270676] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r270458): Canvas painting is broken when enabling GPU process for DOM
https://bugs.webkit.org/show_bug.cgi?id=219760
Reviewed by Tim Horton.
Use
ImageBuffer::logicalSizeinstead ofImageBuffer::backendSizewhen overriding the CanvasBase's size, upon
changing image buffers. When enabling GPU process for DOM,ImageBufferShareableIOSurfaceBackend::backendSize
is empty because the actual IOSurface backend exists in the GPU process; using the backendSize instead of the
logical size here would otherwise cause us to always set CanvasBase's size to(0, 0).
- html/CanvasBase.cpp:
(WebCore::CanvasBase::setImageBuffer const):
- 4:46 AM Changeset in webkit [270675] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r268923): [WPE] Nothing renders on the rpi3 using the proprietary video driver
https://bugs.webkit.org/show_bug.cgi?id=219739
Reviewed by Carlos Garcia Campos.
Rewrite the GLSL code to perform rounded rectangle clipping so it works with the limitations
of the raspberrypi3 proprietary video driver.
- platform/graphics/texmap/TextureMapperShaderProgram.cpp:
- 3:39 AM Changeset in webkit [270674] by
-
- 4 edits in trunk/Source/WebKit
[iOS] Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219733
<rdar://problem/70628137>
Reviewed by Brent Fulgham.
Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process on iOS, since this is not needed when allowing access to IOGPU.
The IOGPU class is the superclass of AGXDeviceUserClient, and is the preferred IOKit reference to use according to the Sandbox team.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- UIProcess/WebPageProxy.cpp:
(WebKit::gpuIOKitClasses):
- 2:50 AM Changeset in webkit [270673] by
-
- 2 edits in trunk/Tools
REGRESSION(r270186): [GTK] MiniBrowser: do not exit after load when no arguments given
https://bugs.webkit.org/show_bug.cgi?id=219737
Reviewed by Adrian Perez de Castro.
Only exit after load when --exit-after-load is passed.
- MiniBrowser/gtk/main.c:
(activate):
- 2:45 AM Changeset in webkit [270672] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Remove temporary workaround added to fix the build with GCC 10
Revert r269948. The bug has already been fixed in GCC.
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):
- 2:11 AM Changeset in webkit [270671] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add telemetry for notification message filtering in sandbox
https://bugs.webkit.org/show_bug.cgi?id=219684
<rdar://problem/69819260>
Reviewed by Brent Fulgham.
Add telemetry for notification message filtering in sandbox in the WebContent process on macOS.
No new tests, since this just adds telemetry.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 1:29 AM Changeset in webkit [270670] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r270655.
https://bugs.webkit.org/show_bug.cgi?id=219772
Introduced sandbox compile error
Reverted changeset:
"[iOS] Add missing endpoint in sandbox message filter"
https://bugs.webkit.org/show_bug.cgi?id=219731
https://trac.webkit.org/changeset/270655
Dec 10, 2020:
- 11:41 PM Changeset in webkit [270669] by
-
- 17 edits3 adds in trunk
Accept click measurement data from hosting application
https://bugs.webkit.org/show_bug.cgi?id=219763
<rdar://problem/72121094>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-10
Reviewed by John Wilander.
Source/WebCore:
Covered by an API test.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::sourceID const):
(WebCore::PrivateClickMeasurement::sourceDescription const):
(WebCore::PrivateClickMeasurement::purchaser const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::sourceID): Deleted.
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
- Platform/ios/UIKitSoftLink.h: Added.
- Platform/ios/UIKitSoftLink.mm: Added.
- Platform/spi/ios/UIKitSPI.h:
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _setPrivateClickMeasurementOverrideTimerForTesting:completionHandler:]):
(-[WKWebView _setPrivateClickMeasurementConversionURLForTesting:completionHandler:]):
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setEventAttribution:]):
(-[WKWebView _eventAttribution]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::createNewPage):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::setPrivateClickMeasurement):
(WebKit::WebPageProxy::privateClickMeasurement const):
- WebKit.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(testCertificate):
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm: Added.
(-[MockEventAttribution initWithReportEndpoint:attributeOn:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/HTTPServer.h:
- 11:11 PM Changeset in webkit [270668] by
-
- 8 edits in trunk/Source
[Media in GPU Process][MSE] Implement several methods in SourceBufferPrivateRemote to make seeking more reliable
https://bugs.webkit.org/show_bug.cgi?id=219757
Reviewed by Eric Carlson.
Source/WebCore:
Clean up the code regarding flush audio and video.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::flush):
Source/WebKit:
Add the required IPC messages and implement three functions of
SourceBufferPrivateRemote.
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::abort):
(WebKit::RemoteSourceBufferProxy::resetParserState):
(WebKit::RemoteSourceBufferProxy::removedFromMediaSource):
- GPUProcess/media/RemoteSourceBufferProxy.h:
- GPUProcess/media/RemoteSourceBufferProxy.messages.in:
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::abort):
(WebKit::SourceBufferPrivateRemote::resetParserState):
(WebKit::SourceBufferPrivateRemote::removedFromMediaSource):
- 9:32 PM Changeset in webkit [270667] by
-
- 8 edits in trunk
PCM: Turn feature on by default
https://bugs.webkit.org/show_bug.cgi?id=219762
<rdar://problem/56118178>
Reviewed by Brent Fulgham.
This patch turns on Private Click Measurement (PCM) by default.
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
Test cases no longer need to enable it.
- http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
- http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
- 9:21 PM Changeset in webkit [270666] by
-
- 7 edits1 copy3 adds in trunk/Source
[Mac] Create a format reader plug-in for WebM
https://bugs.webkit.org/show_bug.cgi?id=218908
<rdar://problem/71373264>
Reviewed by Eric Carlson.
Source/WebCore/PAL:
- pal/spi/cocoa/MediaToolboxSPI.h: Defined SPI for MTPluginFormatReader.
Source/WebKit:
Added a new bundle target that builds a MediaToolbox format reader
plug-in and installs it in the WebContent and GPU XPC service bundles.
The plug-in does nothing for now, but in follow-up patches will learn
how to read WebM containers.
- Configurations/MediaFormatReader.xcconfig: Added.
- MediaFormatReaderPlugIn/Info.plist: Added. Defines a CMClassImplementations array
specifying the plug-in factory function and the supported media types / extensions.
- MediaFormatReaderPlugIn/MediaFormatReaderPlugIn.cpp: Added.
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/PlatformHave.h: Defined HAVE_MT_PLUGIN_FORMAT_READER.
- 8:20 PM Changeset in webkit [270665] by
-
- 6 edits in trunk
Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723
Reviewed by Filip Pizlo.
PerformanceTests:
Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.
- APIBench/api-bench:
Source/JavaScriptCore:
Remove the unnecessary locking from the JSValueIs* and JSValueMake* API functions
that only work on primitives. Also remove the unnecessary method dispatching and
call from the -[JSValue is*] methods.
This improves the APIBench score by another ~8% since these are such common operations.
Here are the results: (Baseline includes https://bugs.webkit.org/show_bug.cgi?id=219663)
CURRENT_API: Baseline Change
RichardsMostlyC: 74ms 60ms
RichardsMostlyObjC: 304ms 300ms
RichardsMostlySwift: 305ms 293ms
RichardsSomeC: 97ms 77ms
RichardsSomeObjC: 158ms 159ms
RichardsSomeSwift: 202ms 198ms
UPCOMING_API: Baseline Change
RichardsMostlyC: 23ms 19ms
RichardsMostlyObjC: 282ms 282ms
RichardsMostlySwift: 280ms 282ms
RichardsSomeC: 95ms 76ms
RichardsSomeObjC: 157ms 156ms
RichardsSomeSwift: 202ms 197ms
Score: 33.6404 36.4006
- API/APICast.h:
(toRef):
- API/JSValue.mm:
(-[JSValue isUndefined]):
(-[JSValue isNull]):
(-[JSValue isBoolean]):
(-[JSValue isNumber]):
(-[JSValue isString]):
(-[JSValue isObject]):
(-[JSValue isSymbol]):
- API/JSValueRef.cpp:
(JSValueGetType):
(JSValueIsUndefined):
(JSValueIsNull):
(JSValueIsBoolean):
(JSValueIsNumber):
(JSValueIsString):
(JSValueIsObject):
(JSValueIsSymbol):
(JSValueMakeUndefined):
(JSValueMakeNull):
(JSValueMakeBoolean):
(JSValueMakeNumber):
- 8:14 PM Changeset in webkit [270664] by
-
- 4 edits in trunk
Align DefineOwnProperty method of mapped arguments object with the spec
https://bugs.webkit.org/show_bug.cgi?id=219750
Reviewed by Yusuke Suzuki.
JSTests:
- test262/expectations.yaml: Mark 5 test cases as passing.
Source/JavaScriptCore:
This patch reimplements DefineOwnProperty method to resemble the spec [1] as
closely as possible, aligning JSC with V8 and SpiderMonkey on remaining test262 cases.
Unlike the spec [2], JSC doesn't materialize mapped indices with initial values,
so putDirectIndex() is performed on the first call to handle incomplete descriptors.
Even though there is a possibility to avoid JSObject storage puts for a handful of
super rare descriptors, it's not worth the increased complexity.
[1]: https://tc39.es/ecma262/#sec-arguments-exotic-objects-defineownproperty-p-desc
[2]: https://tc39.es/ecma262/#sec-createmappedargumentsobject (step 15.b)
- runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::defineOwnProperty):
- 6:14 PM Changeset in webkit [270663] by
-
- 33 edits in trunk
[GPUProcess] Cut in half amount of IPC needed to do WebAudio
https://bugs.webkit.org/show_bug.cgi?id=219715
Reviewed by Geoff Garen.
Source/WebCore:
Cut in half amount of IPC needed to do WebAudio. Previously, we would send 2
IPCs per rendering quantum:
- RemoteAudioDestinationProxy::RequestBuffer from GPUProcess to WebProcess
- The response to RemoteAudioDestinationProxy::RequestBuffer which contained the frame bounds for the RingBuffer.
This patch gets rid of IPC 2 by having the CARingBuffer class store its bounds
in its memory backing. As a result, when the CARingBuffer is using a shared
memory backing, the bounds get shared between processes, without any need for
IPC to sync them.
This is still too much IPC but this is a step in the right direction. We
can hopefully get rid of (or greatly reduce) IPC 1 in a follow-up patch.
- platform/audio/cocoa/AudioSampleBufferList.cpp:
(WebCore::AudioSampleBufferList::copyFrom):
- platform/audio/cocoa/AudioSampleDataSource.mm:
(WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):
- platform/audio/cocoa/CARingBuffer.cpp:
(WebCore::CARingBufferStorageVector::CARingBufferStorageVector):
(WebCore::CARingBuffer::CARingBuffer):
(WebCore::CARingBuffer::flush):
(WebCore::CARingBufferStorageVector::flush):
(WebCore::CARingBuffer::setCurrentFrameBounds):
(WebCore::CARingBufferStorageVector::setCurrentFrameBounds):
(WebCore::CARingBuffer::getCurrentFrameBounds):
(WebCore::CARingBuffer::getCurrentFrameBoundsWithoutUpdate):
(WebCore::CARingBufferStorageVector::getCurrentFrameBounds):
(WebCore::CARingBuffer::clipTimeBounds):
(WebCore::CARingBuffer::currentStartFrame const):
(WebCore::CARingBufferStorageVector::currentStartFrame const):
(WebCore::CARingBuffer::currentEndFrame const):
(WebCore::CARingBufferStorageVector::currentEndFrame const):
(WebCore::CARingBuffer::updateFrameBounds):
(WebCore::CARingBuffer::fetchIfHasEnoughData):
(WebCore::CARingBuffer::fetch):
(WebCore::CARingBuffer::fetchInternal):
- platform/audio/cocoa/CARingBuffer.h:
(WebCore::CARingBufferStorage::updateFrameBounds):
Source/WebKit:
Cut in half amount of IPC needed to do WebAudio. Previously, we would send 2
IPCs per rendering quantum:
- RemoteAudioDestinationProxy::RequestBuffer from GPUProcess to WebProcess
- The response to RemoteAudioDestinationProxy::RequestBuffer which contained the frame bounds for the RingBuffer.
This patch gets rid of IPC 2 by having the CARingBuffer class store its bounds
in its memory backing. As a result, when the CARingBuffer is using a shared
memory backing, the bounds get shared between processes, without any need for
IPC to sync them.
This is still too much IPC but this is a step in the right direction. We
can hopefully get rid of (or greatly reduce) IPC 1 in a follow-up patch.
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
(WebKit::RemoteAudioDestination::audioSamplesStorageChanged):
(WebKit::RemoteAudioDestination::render):
- GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:
(WebKit::RemoteAudioSourceProviderProxy::storageChanged):
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):
(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesAvailable):
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
(WebKit::RemoteMediaRecorder::audioSamplesAvailable):
- GPUProcess/webrtc/RemoteMediaRecorder.h:
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
- Shared/Cocoa/SharedRingBufferStorage.cpp:
(WebKit::SharedRingBufferStorage::allocate):
(WebKit::SharedRingBufferStorage::sharedFrameBounds):
(WebKit::SharedRingBufferStorage::data):
(WebKit::SharedRingBufferStorage::getCurrentFrameBounds):
(WebKit::SharedRingBufferStorage::setCurrentFrameBounds):
(WebKit::SharedRingBufferStorage::updateFrameBounds):
(WebKit::SharedRingBufferStorage::flush):
- Shared/Cocoa/SharedRingBufferStorage.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::remoteAudioSamplesAvailable):
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::remoteAudioSamplesAvailable):
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.messages.in:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::requestBuffer):
(WebKit::RemoteAudioDestinationProxy::storageChanged):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in:
- WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::setStorage):
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::audioSamplesAvailable):
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
(WebKit::AudioMediaStreamTrackRenderer::pushSamples):
(WebKit::AudioMediaStreamTrackRenderer::storageChanged):
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
(WebKit::MediaRecorderPrivate::audioSamplesAvailable):
(WebKit::MediaRecorderPrivate::storageChanged):
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::audioSamplesAvailable):
(WebKit::RemoteCaptureSampleManager::RemoteAudio::audioSamplesAvailable):
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
Tools:
Minor API test changes due to CARingBuffer API change. fetch() always returned Ok
so I dropped the return value.
- TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp:
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::MixingTest::run):
- 4:45 PM Changeset in webkit [270662] by
-
- 9 edits1 copy1 add in trunk/Source/WebCore
[MSE] Refactor SourceBufferParserWebM in preparation for supporting audio
https://bugs.webkit.org/show_bug.cgi?id=219755
<rdar://problem/72192625>
Reviewed by Jer Noble.
Refactor the WebM parser in preparation for supporting audio: move VP9-specific code
into VP9UtilitiesCocoa, convert TrackData from a struct to a class and made derived
classes for audio and video, add stub function to create format descriptions for
Vorbis and Opus audio.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/cocoa/MediaUtilities.cpp:
(WebCore::createAudioFormatDescription): Add optional parameters for magic cookie.
- platform/cocoa/MediaUtilities.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::isContentTypeSupported):
(WebCore::SourceBufferParserWebM::create):
(WebCore::SourceBufferParserWebM::resetParserState):
(WebCore::SourceBufferParserWebM::trackDataForTrackNumber):
(WebCore::SourceBufferParserWebM::OnTrackEntry):
(WebCore::SourceBufferParserWebM::OnFrame):
(WebCore::SourceBufferParserWebM::provideMediaData):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::flushPendingAudioBuffers):
(WebCore::SourceBufferParserWebM::setMinimumAudioSampleDuration):
(WebCore::convertToColorPrimaries): Deleted.
(WebCore::convertToCMColorPrimaries): Deleted.
(WebCore::convertToTransferCharacteristics): Deleted.
(WebCore::convertToCMTransferFunction): Deleted.
(WebCore::convertToMatrixCoefficients): Deleted.
(WebCore::convertToCMYCbCRMatrix): Deleted.
(WebCore::convertSubsamplingXYToChromaSubsampling): Deleted.
(WebCore::createFormatDescriptionFromVP9HeaderParser): Deleted.
- platform/graphics/cocoa/SourceBufferParserWebM.h:
(isType):
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::convertToColorPrimaries):
(WebCore::convertToCMColorPrimaries):
(WebCore::convertToTransferCharacteristics):
(WebCore::convertToCMTransferFunction):
(WebCore::convertToMatrixCoefficients):
(WebCore::convertToCMYCbCRMatrix):
(WebCore::convertSubsamplingXYToChromaSubsampling):
(WebCore::createFormatDescriptionFromVP9HeaderParser):
- platform/graphics/cocoa/WebMAudioUtilitiesCocoa.h: Added.
- platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm: Added.
(WebCore::registerDecoderFactory):
(WebCore::createAudioFormatDescriptionForFormat):
(WebCore::cookieFromOpusCodecPrivate):
(WebCore::isOpusDecoderAvailable):
(WebCore::createOpusAudioFormatDescription):
(WebCore::cookieFromVorbisCodecPrivate):
(WebCore::isVorbisDecoderAvailable):
(WebCore::createVorbisAudioFormatDescription):
- 4:17 PM Changeset in webkit [270661] by
-
- 5 edits in trunk
Unreviewed, re-landing r270132.
Regression test failures have been resolved.
Re-landed changeset:
"Use a Version 1 CFRunLoopSource for faster task dispatch"
https://bugs.webkit.org/show_bug.cgi?id=202874
https://trac.webkit.org/changeset/270132
- 3:26 PM Changeset in webkit [270660] by
-
- 1 copy in tags/Safari-611.1.8
Tag Safari-611.1.8.
- 3:10 PM Changeset in webkit [270659] by
-
- 16 edits2 copies1 move2 adds in trunk
Add a JSC API to allow acquiring the JSLock
https://bugs.webkit.org/show_bug.cgi?id=219663
Reviewed by Filip Pizlo.
PerformanceTests:
This patch does 3 things:
- Change how the geomean is calculated in api-bench to avoid overflowing
- Allow linking against the local build we're benchmarking
- Adopt the new JSLock API in the UpcomingAPI subtests
Using the new API the score improves by ~13.5%. Here are the results for each
of the "UpcomingAPI" subtests plus the total score:
Before After
RichardsMostlyC: 77ms 23ms
RichardsMostlyObjC: 309ms 282ms
RichardsMostlySwift 305ms 280ms
RichardsSomeC: 101ms 95ms
RichardsSomeObjC: 160ms 157ms
RichardsSomeSwift: 201ms 202ms
Score: 29.5974 33.6404
- APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c:
(workfn):
- APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlyObjC.xcscheme: Renamed from PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme.
- APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m:
(+[WorkerTask context]):
- APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj:
- APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/BridgingHeader.h: Copied from PerformanceTests/APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.
- APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift:
- APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC/main.m:
(main):
- APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC/main.m:
(main):
- APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/project.pbxproj:
- APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/BridgingHeader.h: Copied from PerformanceTests/APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.
- APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/main.swift:
- APIBench/api-bench:
Source/JavaScriptCore:
Introduce two new functions to the C API: JSLock and JSUnlock. These
functions allow users to take control of the JSContext's lock, which
can greatly reduce the overhead of bridging between JS and native.
- API/JSLockRef.cpp: Added.
(JSLock):
(JSUnlock):
- API/JSLockRefPrivate.h: Added.
- API/JSValueRef.cpp:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- 2:56 PM Changeset in webkit [270658] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Deny mach-lookup to the service 'com.apple.SystemConfiguration.configd' in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219680
<rdar://problem/69019138>
Reviewed by Brent Fulgham.
Deny mach-lookup to the service 'com.apple.SystemConfiguration.configd' in the WebContent process on macOS,
since there are no reports of this being used.
No new tests, since the result will depend on macOS version.
- WebProcess/com.apple.WebProcess.sb.in:
- 2:31 PM Changeset in webkit [270657] by
-
- 7 edits in trunk/Source/WebKit
[macOS] Create sandbox extension for AppleAVDUserClient when Media in GPU process is not enabled
https://bugs.webkit.org/show_bug.cgi?id=219740
<rdar://problem/70496905>
Reviewed by Brent Fulgham.
Create sandbox extension for AppleAVDUserClient for WebContent process when Media in GPU process is not enabled on macOS,
since this IOKit class is only used for Media purposes.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::mediaRelatedIOKitClasses):
(WebKit::WebPageProxy::creationParameters):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
- WebProcess/com.apple.WebProcess.sb.in:
- 2:29 PM Changeset in webkit [270656] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add telemetry for notification message filtering in sandbox
https://bugs.webkit.org/show_bug.cgi?id=219684
<rdar://problem/69819260>
Reviewed by Brent Fulgham.
Add telemetry for notification message filtering in sandbox in the WebContent process on macOS.
No new tests, since this just adds telemetry.
- WebProcess/com.apple.WebProcess.sb.in:
- 2:13 PM Changeset in webkit [270655] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Add missing endpoint in sandbox message filter
https://bugs.webkit.org/show_bug.cgi?id=219731
<rdar://problem/71566760>
Reviewed by Brent Fulgham.
Add missing endpoint in the WebContent process' sandbox message filter on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 2:01 PM Changeset in webkit [270654] by
-
- 2 edits in trunk/Source/WebKit
[macOS] The development WebContent XPC service is missing a required entitlement
https://bugs.webkit.org/show_bug.cgi?id=219730
<rdar://problem/72145560>
Reviewed by Brent Fulgham.
The message filtering entitlement is missing in com.apple.WebKit.WebContent.Development.xpc on macOS.
- Scripts/process-entitlements.sh:
- 2:01 PM Changeset in webkit [270653] by
-
- 2 edits in trunk/Source/WebCore
[GPU Process] Crash when loading drinktrade.com
https://bugs.webkit.org/show_bug.cgi?id=219752
Reviewed by Tim Horton.
Fix an overrelease when rendering color emoji fonts by removing an extraneous
adoptCFaround aCGImageRef.
ThisCGImageRefis not a retained (+1) object, so we need to make sure that it is retained when tracking it in
the display list's native image cache.
Layout test: fast/text/emoji.html
- platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:
(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawImage):
- 1:28 PM Changeset in webkit [270652] by
-
- 14 edits in trunk
[CMake] Determine when to use $<TARGET_OBJECTS> for executables
https://bugs.webkit.org/show_bug.cgi?id=219648
Reviewed by Michael Catanzaro.
.:
When a WebKit framework is declared as an OBJECT library the WebKit::${framework} ALIAS
does not propagate the objects to the executable being built. As a workaround ports will
explicitly add $<TARGET_OBJECTS> to the list of libraries being linked. There is already
enough information to determine when $<TARGET_OBJECTS> is needed so this decision is moved
into the WEBKIT_EXECUTABLE macros.
An additional ${taget_name}_FRAMEWORKS variable is added which specifies the WebKit
frameworks being used. This will link the WebKit::${framework} alias and if necessary the
associated $<TARGET_OBJECTS>.
This functionality will be expanded upon when support for ${target_name}_FRAMEWORKS is
added to WebKit frameworks to support hidden visibility across ports.
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables.
- CMakeLists.txt:
- shell/CMakeLists.txt:
Source/WebDriver:
Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables.
Remove use of $<TARGET_OBJECTS>.
- CMakeLists.txt:
- PlatformPlayStation.cmake:
- PlatformWin.cmake:
Tools:
Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables.
Remove use of $<TARGET_OBJECTS>.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/PlatformPlayStation.cmake:
- TestWebKitAPI/PlatformWin.cmake:
- WebKitTestRunner/CMakeLists.txt:
- 1:16 PM Changeset in webkit [270651] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
macOS Production WebKitLegacy build is broken on Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=219753
Patch by Adam Roben <Adam Roben> on 2020-12-10
Reviewed by Tim Horton.
- Configurations/WebKitLegacy.xcconfig: Replaced :default= syntax that
is only supported in Xcode 11.4 and newer with the equivalent
WK_DEFAULT_PLATFORM_NAME variable.
- 1:00 PM Changeset in webkit [270650] by
-
- 1 copy in tags/Safari-611.1.7.10
Tag Safari-611.1.7.10.
- 12:56 PM Changeset in webkit [270649] by
-
- 2 edits in branches/safari-611.1.7-branch/Source/WebKit
Cherry-pick r270536. rdar://problem/72192895
Add target to create /usr/local to work around XBS Bug <rdar://problem/20388650>
https://bugs.webkit.org/show_bug.cgi?id=219618
rdar://72064576
Patch by Ryan Hostetler <rhost@apple.com> on 2020-12-08
Reviewed by Jonathan Bedard.
- WebKit.xcodeproj/project.pbxproj: Add a build target EmptyDSTROOT with script to create an empty folder "/usr/local". This allows WebKit to retain a unified XBS project name across different train configurations.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270536 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:54 PM Changeset in webkit [270648] by
-
- 8 edits in branches/safari-611.1.7-branch/Source
Versioning.
WebKit-7611.1.7.10
- 12:53 PM Changeset in webkit [270647] by
-
- 8 edits in trunk/Source
Rework of AXObjectCache::isIsolatedTreeEnabled.
https://bugs.webkit.org/show_bug.cgi?id=219722
Reviewed by Chris Fleizach.
Source/WebCore:
Covered by existing tests.
- AXObjectCache::isIsolatedTreeEnabled now returns true if it is called
off the main thread, no matter the rest of the conditions. This is
necessary since any call off of the main thread must be handled by the
isolated tree.
- It caches a true value to optimize the case where a client that
supports isolated tree mode makes a request. All subsequent request by
any client will be served by the isolated tree.
- Moved the check for the WebKit test client to clientSupportsIsolatedTree
where it belongs.
- Renamed canUseSecondaryAXThread to UsedOnAXThread, which is a more
accurate name.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::clientSupportsIsolatedTree):
(WebCore::AXObjectCache::isIsolatedTreeEnabled):
(WebCore::AXObjectCache::isolatedTreeRootObject):
(WebCore::AXObjectCache::usedOnAXThread):
(WebCore::AXObjectCache::canUseSecondaryAXThread): Renamed usedOnAXThread.
- accessibility/AXObjectCache.h:
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::AXIsolatedTree):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
Source/WebKit:
- Renamed AXObjecCache::canUseSecondaryAXThread as usedOnAXThread.
- No need for the additional thread check since isIsolatedTreeEnabled
will return true for any call off of the main thread.
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityCanUseSecondaryAXThread):
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
- 12:46 PM Changeset in webkit [270646] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r270574): [iOS] ASSERTION FAILED: !m_messageReceiverMapCount under WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::~SpeechRecognitionRemoteRealtimeMediaSourceManager
https://bugs.webkit.org/show_bug.cgi?id=219745
<rdar://problem/72184764>
Reviewed by Youenn Fablet.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy): Remove SpeechRecognitionRemoteRealtimeMediaSourceManager from
MessageReceiverMap before destroying it.
- 12:20 PM Changeset in webkit [270645] by
-
- 2 edits in trunk/Source/WebCore
DisplayList::Recorder::drawImageBuffer should flush the given image buffer before recording
https://bugs.webkit.org/show_bug.cgi?id=219748
Reviewed by Darin Adler.
Make sure that the source image buffer has been flushed, so that the platform context in the GPU process is
flushed along with any outstanding display list items. This codepath is exercised when painting GPU-process-
backed canvases into other GPU-process-backed canvases.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawImageBuffer):
- 12:17 PM Changeset in webkit [270644] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] Cleanup TextUtil::width/split functions
https://bugs.webkit.org/show_bug.cgi?id=219697
Reviewed by Antti Koivisto.
General cleanup and tightening.
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::createEmptyItem):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::split):
- layout/inlineformatting/text/TextUtil.h:
- 12:10 PM Changeset in webkit [270643] by
-
- 3 edits in trunk/Source/WebKit
Add willInjectUserScriptForFrame to WKWebProcessPlugInLoadDelegate.
https://bugs.webkit.org/show_bug.cgi?id=219727
rdar://71987073
Reviewed by Brady Eidson.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(willInjectUserScriptForFrame): Added.
(setUpPageLoaderClient): Set client.willInjectUserScriptForFrame.
- 11:54 AM Changeset in webkit [270642] by
-
- 2 edits in trunk/Source/JavaScriptCore
[CMake] Use WEBKIT_EXECUTABLE macro for LLInt executables
https://bugs.webkit.org/show_bug.cgi?id=219746
Reviewed by Michael Catanzaro.
The LLInt executables were the only ones within Source that were being created
without the WEBKIT_EXECUTABLE macros.
- CMakeLists.txt:
- 11:48 AM Changeset in webkit [270641] by
-
- 10 edits2 moves in trunk
Add a SFrame VP8 experimental compatibility mode
https://bugs.webkit.org/show_bug.cgi?id=219674
Reviewed by Eric Carlson.
Source/WebCore:
Similarly to H264, prefix the SFrame content with some data to ensure key frames or resolution can be detected
without revealing the actual content.
Covered by updated test.
- Modules/mediastream/RTCRtpSFrameTransform.idl:
- Modules/mediastream/RTCRtpSFrameTransformer.cpp:
(WebCore::RTCRtpSFrameTransformer::decryptFrame):
(WebCore::RTCRtpSFrameTransformer::encryptFrame):
- Modules/mediastream/RTCRtpSFrameTransformer.h:
- Modules/mediastream/SFrameUtils.cpp: Renamed from Source/WebCore/Modules/mediastream/H264Utils.cpp.
(WebCore::computeH264PrefixOffset):
(WebCore::computeH264PrefixBuffer):
(WebCore::isVP8KeyFrame):
(WebCore::computeVP8PrefixOffset):
(WebCore::computeVP8PrefixBuffer):
- Modules/mediastream/SFrameUtils.h: Renamed from Source/WebCore/Modules/mediastream/H264Utils.h.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
- webrtc/video-sframe-expected.txt:
- webrtc/video-sframe.html:
- 11:38 AM Changeset in webkit [270640] by
-
- 7 edits in trunk/Source
[GTK] Add even more exports to support hidden visibility
https://bugs.webkit.org/show_bug.cgi?id=219747
Reviewed by Michael Catanzaro.
Source/WebCore:
Add WEBCORE_EXPORT to additional declarations.
- platform/graphics/SourceBufferPrivate.h:
- platform/graphics/gstreamer/GRefPtrGStreamer.h:
Source/WebKit:
Add WK_EXPORT to additional declarations.
- UIProcess/API/glib/WebKitSettingsPrivate.h:
- UIProcess/API/glib/WebKitWebViewInternal.h:
- UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
- 11:31 AM Changeset in webkit [270639] by
-
- 19 edits1 copy in trunk/Source
[Media in GPU Process][MSE] Implement seeking support
https://bugs.webkit.org/show_bug.cgi?id=219658
Reviewed by Jer Noble.
Source/WebCore:
Covered by existing tests.
- platform/graphics/SourceBufferPrivate.h:
Change function
seekToTime()to virtual becauseSourceBufferPrivateRemote
needs to override it.
Source/WebKit:
Implement the required functions with IPC to support seeking.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::seekToTime):
(WebKit::RemoteMediaSourceProxy::waitForSeekCompleted):
(WebKit::RemoteMediaSourceProxy::seekCompleted):
- GPUProcess/media/RemoteMediaSourceProxy.h:
- GPUProcess/media/RemoteMediaSourceProxy.messages.in:
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::seekToTime):
- GPUProcess/media/RemoteSourceBufferProxy.h:
- GPUProcess/media/RemoteSourceBufferProxy.messages.in:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:
(WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::~MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::waitForSeekCompleted):
(WebKit::MediaSourcePrivateRemote::seekCompleted):
(WebKit::MediaSourcePrivateRemote::seekToTime):
- WebProcess/GPU/media/MediaSourcePrivateRemote.h:
- WebProcess/GPU/media/MediaSourcePrivateRemote.messages.in: Added.
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::seekToTime):
- WebProcess/GPU/media/SourceBufferPrivateRemote.h:
- 11:27 AM Changeset in webkit [270638] by
-
- 73 edits4 copies1 move4 adds1 delete in trunk
Source/WebKit:
Introduce new download API
https://bugs.webkit.org/show_bug.cgi?id=217747
Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-10
Reviewed by Brady Eidson.
Safari currently uses _WKDownload, which has evolved strangely over the last decade.
In order to make a nicer interface, we need to learn from those lessons and take a step back.
I did that, and here's what I came up with: WKDownload and WKDownloadDelegate!
Notable changes include:
- The delegate now lives on the download object instead of the process pool.
- WKDownload does not conform to NSCopying because we have NSMapTable instead of NSDictionary.
- publishProgressAtURL is gone. That will be reimplemented in the UI process of the client that used it.
- cancel has a completion handler to get the resume data instead of waiting for didCancel then getting it from the download object.
- didFailWithError also gives you the resume data, so there is no way to get it from the download object. That's more about a fail/cancel
event than a property of the download.
- wasUserInitiated is gone. Instead, WKNavigationDelegate has a callback that links a navigation action (where _isUserInitiated is exposed) to the download.
- redirectChain is also gone. That can also be gotten from the link to the navigation and the download delegate's redirect callback.
- _downloadDidStart is gone. Instead, we have completion handlers that expose a WKDownload once it's started. There's no need to
reference the download object before then anyways. Note: that's when the download "starts" which is before it receives the response,
so there will be no server delay in the difference between download object availabilities.
- didReceiveServerRedirectToURL now gives you the option of continuing or cancelling. This reflects the amount of control the
WKNavigationDelegate has.
- decideDestinationWithSuggestedFilename and didReceiveResponse have been merged, since they actually happen at the same time and
NSURLResponse has suggestedFilename API. allowOverwrite is also gone. It wasn't used, and not really needed.
- didCreateDestination is gone. That callback time wasn't really necessary. If you need to know when it's created, wait until the first
didWriteData callback. The destination has definitely been created by then.
- shouldDecodeSourceDataOfMIMEType is gone. It's actually not called since we adopted NSURLSession, and we should remove the related dead code.
- originatingFrame is gone. On _WKDownload it was actually a non-null WKFrameInfo that often contained no information. When information was there,
the information access has been replaced by didBecomeDownload which links the WKNavigationResponse which has frame info on it.
I wrote API tests for everything I could think of.
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::resumeDownload):
- NetworkProcess/Downloads/DownloadManager.h:
- NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::resume):
(WebKit::Download::platformCancelNetworkLoad):
- NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::suggestedFilename const):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::resumeDownload):
(WebKit::NetworkProcess::findPendingDownloadLocation):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
- Scripts/webkit/messages.py:
- Shared/API/Cocoa/WebKit.h:
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/API/APIDownloadClient.h:
(API::DownloadClient::legacyDidStart):
(API::DownloadClient::didFail):
(API::DownloadClient::didStart): Deleted.
- UIProcess/API/APINavigationAction.h:
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::navigationResponseDidBecomeDownload):
(API::NavigationClient::navigationActionDidBecomeDownload):
(API::NavigationClient::contextMenuDidCreateDownload):
- UIProcess/API/APIPolicyClient.h:
(API::PolicyClient::decidePolicyForNavigationAction):
(API::PolicyClient::decidePolicyForNewWindowAction):
- UIProcess/API/C/WKContext.cpp:
(WKContextSetDownloadClient): Deleted.
- UIProcess/API/C/WKContext.h:
- UIProcess/API/C/WKContextDownloadClient.h: Removed.
- UIProcess/API/C/WKDownload.cpp: Removed.
- UIProcess/API/C/WKDownloadClient.h: Added.
- UIProcess/API/C/WKDownloadRef.cpp: Added.
(WKDownloadGetTypeID):
(WKDownloadCopyRequest):
(WKDownloadCancel):
(WKDownloadGetOriginatingPage):
(WKDownloadGetWasUserInitiated):
(WKDownloadSetClient):
- UIProcess/API/C/WKDownloadRef.h: Renamed from Source/WebKit/UIProcess/API/C/WKDownload.h.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPagePolicyClient):
(WKPageSetPageNavigationClient):
- UIProcess/API/C/WKPageNavigationClient.h:
- UIProcess/API/Cocoa/WKDownload.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownload.h.
- UIProcess/API/Cocoa/WKDownload.mm: Added.
(-[WKDownload cancel:]):
(-[WKDownload originalRequest]):
(-[WKDownload delegate]):
(-[WKDownload setDelegate:]):
(-[WKDownload dealloc]):
(-[WKDownload _apiObject]):
- UIProcess/API/Cocoa/WKDownloadDelegate.h: Added.
- UIProcess/API/Cocoa/WKDownloadInternal.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.
- UIProcess/API/Cocoa/WKNavigationAction.h:
- UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction downloadAttribute]):
(-[WKNavigationAction _shouldPerformDownload]):
- UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
- UIProcess/API/Cocoa/WKNavigationDelegate.h:
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _downloadURLRequest:websiteDataStore:originatingWebView:]):
(-[WKProcessPool _resumeDownloadFromData:websiteDataStore:path:originatingWebView:]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView downloadRequest:completionHandler:]):
(-[WKWebView resumeDownloadWithData:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/_WKDownload.h:
- UIProcess/API/Cocoa/_WKDownload.mm:
(-[_WKDownload initWithDownload2:]):
(+[_WKDownload downloadWithDownload:]):
(-[_WKDownload cancel]):
(-[_WKDownload publishProgressAtURL:]):
(-[_WKDownload request]):
(-[_WKDownload originatingWebView]):
(-[_WKDownload redirectChain]):
(-[_WKDownload wasUserInitiated]):
(-[_WKDownload resumeData]):
(-[_WKDownload originatingFrame]):
(-[_WKDownload _apiObject]):
(-[_WKDownload dealloc]): Deleted.
- UIProcess/API/Cocoa/_WKDownloadDelegate.h:
- UIProcess/API/Cocoa/_WKDownloadInternal.h:
- UIProcess/API/glib/WebKitDownloadClient.cpp:
- UIProcess/Cocoa/LegacyDownloadClient.h:
- UIProcess/Cocoa/LegacyDownloadClient.mm:
(WebKit::LegacyDownloadClient::legacyDidStart):
(WebKit::LegacyDownloadClient::didReceiveResponse):
(WebKit::LegacyDownloadClient::didReceiveData):
(WebKit::LegacyDownloadClient::didReceiveAuthenticationChallenge):
(WebKit::LegacyDownloadClient::didCreateDestination):
(WebKit::LegacyDownloadClient::processDidCrash):
(WebKit::LegacyDownloadClient::decideDestinationWithSuggestedFilename):
(WebKit::LegacyDownloadClient::didFinish):
(WebKit::LegacyDownloadClient::didFail):
(WebKit::LegacyDownloadClient::legacyDidCancel):
(WebKit::LegacyDownloadClient::willSendRequest):
(WebKit::LegacyDownloadClient::didStart): Deleted.
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):
(WebKit::NavigationState::NavigationClient::navigationActionDidBecomeDownload):
(WebKit::NavigationState::NavigationClient::navigationResponseDidBecomeDownload):
(WebKit::NavigationState::NavigationClient::contextMenuDidCreateDownload):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::~DownloadProxy):
(WebKit::DownloadProxy::didStart):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::setClient):
- UIProcess/Downloads/DownloadProxy.h:
(WebKit::DownloadProxy::setDidStartCallback):
(WebKit::DownloadProxy::setSuggestedFilename):
- UIProcess/Network/NetworkProcessProxy.cpp:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::resumeDownload):
(WebKit::WebPageProxy::downloadRequest):
(WebKit::WebPageProxy::contextMenuItemSelected):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::receivedPolicyDecision):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::resumeDownload):
- UIProcess/WebProcessPool.h:
- WebKit.xcodeproj/project.pbxproj:
Tools:
Introduce new download SPI
https://bugs.webkit.org/show_bug.cgi?id=217747
Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-10
Reviewed by Brady Eidson.
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/DownloadDecideDestinationCrash.cpp:
(TestWebKitAPI::decidePolicyForNavigationResponse):
(TestWebKitAPI::decideDestinationWithSuggestedFilename):
(TestWebKitAPI::navigationResponseDidBecomeDownload):
(TestWebKitAPI::setPagePolicyClient):
(TestWebKitAPI::TEST):
(TestWebKitAPI::decidePolicyForNavigationAction): Deleted.
(TestWebKitAPI::setContextDownloadClient): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
(TestWebKitAPI::decideDestinationWithSuggestedFilename):
(TestWebKitAPI::contextMenuDidCreateDownload):
(TestWebKitAPI::TEST):
(TestWebKitAPI::decideDestinationWithSuggestedFilenameContainingSlashes):
(TestWebKitAPI::contextMenuDidCreateDownloadWithSuggestedFilenameContainingSlashes):
- TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:
(-[BecomeDownloadDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(-[ConvertResponseToDownloadNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[TestDownloadNavigationResponseFromMemoryCacheDelegate webView:didFailProvisionalNavigation:withError:]):
(-[TestDownloadNavigationResponseFromMemoryCacheDelegate webView:didFinishNavigation:]):
(TEST):
(downloadTestServer):
(checkResumedDownloadContents):
(simpleDownloadTestServer):
(checkFileContents):
(tempFileThatDoesNotExist):
(-[DownloadTestSchemeDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(TestWebKitAPI::mutateFile):
- TestWebKitAPI/Tests/WebKitCocoa/DownloadProgress.mm:
(-[DownloadProgressTestRunner webView:decidePolicyForNavigationResponse:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[PSONNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:
(TEST):
- TestWebKitAPI/cocoa/TestDownloadDelegate.h:
- TestWebKitAPI/cocoa/TestDownloadDelegate.mm:
(-[TestDownloadDelegate download:willPerformHTTPRedirection:newRequest:decisionHandler:]):
(-[TestDownloadDelegate download:decideDestinationWithResponse:suggestedFilename:completionHandler:]):
(-[TestDownloadDelegate download:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[TestDownloadDelegate download:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestDownloadDelegate downloadDidFinish:]):
(-[TestDownloadDelegate download:didFailWithError:resumeData:]):
(-[TestDownloadDelegate webView:navigationResponse:didBecomeDownload:]):
(-[TestDownloadDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[TestDownloadDelegate waitForDownloadDidFinish]):
(-[TestDownloadDelegate takeCallbackRecord]):
(-[TestDownloadDelegate _downloadDidStart:]): Deleted.
(-[TestDownloadDelegate _download:didReceiveServerRedirectToURL:]): Deleted.
(-[TestDownloadDelegate _download:didReceiveResponse:]): Deleted.
(-[TestDownloadDelegate _download:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): Deleted.
(-[TestDownloadDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]): Deleted.
(-[TestDownloadDelegate _downloadDidFinish:]): Deleted.
(-[TestDownloadDelegate _download:didFailWithError:]): Deleted.
(-[TestDownloadDelegate _downloadDidCancel:]): Deleted.
(-[TestDownloadDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]): Deleted.
(-[TestDownloadDelegate _download:didCreateDestination:]): Deleted.
- TestWebKitAPI/cocoa/TestLegacyDownloadDelegate.h: Copied from Tools/TestWebKitAPI/cocoa/TestDownloadDelegate.h.
- TestWebKitAPI/cocoa/TestLegacyDownloadDelegate.mm: Copied from Tools/TestWebKitAPI/cocoa/TestDownloadDelegate.mm.
(-[TestLegacyDownloadDelegate _downloadDidStart:]):
(-[TestLegacyDownloadDelegate _download:didReceiveServerRedirectToURL:]):
(-[TestLegacyDownloadDelegate _download:didReceiveResponse:]):
(-[TestLegacyDownloadDelegate _download:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[TestLegacyDownloadDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]):
(-[TestLegacyDownloadDelegate _downloadDidFinish:]):
(-[TestLegacyDownloadDelegate _download:didFailWithError:]):
(-[TestLegacyDownloadDelegate _downloadDidCancel:]):
(-[TestLegacyDownloadDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestLegacyDownloadDelegate _download:didCreateDestination:]):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::navigationDidBecomeDownloadShared):
(WTR::TestController::navigationActionDidBecomeDownload):
(WTR::TestController::navigationResponseDidBecomeDownload):
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::decideDestinationWithSuggestedFilename):
(WTR::TestController::downloadDidFinish):
(WTR::TestController::downloadDidFail):
(WTR::TestController::downloadDidReceiveServerRedirectToURL):
(WTR::TestController::downloadDidStart):
(WTR::TestController::decidePolicyForNavigationAction):
(WTR::TestController::downloadDidCancel): Deleted.
- WebKitTestRunner/TestController.h:
LayoutTests:
Introduce new download API
https://bugs.webkit.org/show_bug.cgi?id=217747
Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-10
Reviewed by Brady Eidson.
- fast/dom/HTMLAnchorElement/anchor-download-expected.txt:
- fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click-expected.txt:
- fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt:
- fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-expected.txt:
- fast/dom/HTMLAnchorElement/anchor-nodownload-set-expected.txt:
Now that NetworkDataTaskBlob::suggestedFilename doesn't suggest "unknown"
the capitalization has changed to "Unknown" from NSURLResponse's suggestedFilename.
- 11:09 AM Changeset in webkit [270637] by
-
- 23 edits8 adds in trunk
Web Inspector: Show current properties for font in new Elements sidebar Font panel
https://bugs.webkit.org/show_bug.cgi?id=218964
Reviewed by Devin Rousso.
Source/JavaScriptCore:
Adds objects and method for getting font data for a node to the
CSSdomain. ACSS.Fontis meant to represent
aWebCore::Fontand contain information about the underlying font as the system sees it. The source for this
information can be a system font or a web font. EachCSS.Fontin turn can have some number of
CSS.FontVariationAxisfor its available open-type variation axes. Fonts that don't support these features will
have an empty set of axes.
- inspector/protocol/CSS.json:
- Added objects and method for getting font data for a node.
Source/WebCore:
Test: inspector/css/getComputedPrimaryFontForNode.html
Adds support for retrieving the primary font computed for a node including the available variation axes of the
underlying Font.
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::buildObjectForFont):
(WebCore::InspectorCSSAgent::getFontDataForNode):
(WebCore::InspectorCSSAgent::nodeForId):
- inspector/agents/InspectorCSSAgent.h:
- Added method for retrieving font data for a node.
- platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::variationAxes const):
- Empty implementation for non-Cocoa platforms.
- platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::FontVariationAxis::FontVariationAxis):
(WebCore::FontPlatformData::FontVariationAxis::name const):
(WebCore::FontPlatformData::FontVariationAxis::tag const):
(WebCore::FontPlatformData::FontVariationAxis::defaultValue const):
(WebCore::FontPlatformData::FontVariationAxis::minimumValue const):
(WebCore::FontPlatformData::FontVariationAxis::maximumValue const):
- Added struct type for font variation axis information.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::defaultVariationValues):
- platform/graphics/cocoa/FontCacheCoreText.h:
- Support getting the name of variation axes.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::variationAxes const):
- Retrieve font variation axes from the underlying font.
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Setting.js:
- Added experimental setting for Font panel.
- UserInterface/Main.html:
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles):
(WI.DOMNodeStyles.prototype.get computedPrimaryFont):
(WI.DOMNodeStyles.prototype.refresh.fetchedComputedStyle):
(WI.DOMNodeStyles.prototype.refresh.fetchedFontData):
(WI.DOMNodeStyles.prototype.refresh):
- Support getting the computed primary font.
- UserInterface/Models/Font.js: Added.
(WI.Font):
(WI.Font.fromPayload):
(WI.Font.prototype.get name):
(WI.Font.prototype.get variationAxes):
(WI.Font.prototype.variationAxis):
- Model object for
CSS.Font.
(WI.Font.prototype.calculateFontProperties):
- Build maps of font properties from the
DOMNodeStyleand this Font.
(WI.Font.prototype._calculateProperties):
(WI.Font.prototype._calculateFontFeatureAxes):
(WI.Font.prototype._calculateFontVariationAxes):
(WI.Font.prototype._parseFontFeatureOrVariationSettings):
- UserInterface/Models/FontVariationAxis.js: Added.
(WI.FontVariationAxis):
(WI.FontVariationAxis.fromPayload):
(WI.FontVariationAxis.prototype.get name):
(WI.FontVariationAxis.prototype.get tag):
(WI.FontVariationAxis.prototype.get minimumValue):
(WI.FontVariationAxis.prototype.get maximumValue):
(WI.FontVariationAxis.prototype.get defaultValue):
- Model object for
CSS.FontVariationAxis. - UserInterface/Test.html:
- UserInterface/Views/ComputedStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content > .computed .property:not(:hover) .go-to-arrow):
(.multi-sidebar.showing-multiple > .sidebar > .panel.details.style-computed > .content > .pseudo-classes,): Deleted.
- Move multi-sidebar support to GeneralStyleDetailsSidebarPanel.css
- UserInterface/Views/ElementsTabContentView.js:
(WI.ElementsTabContentView):
- Add Font panel to detail panel set if enabled and supported.
- UserInterface/Views/FontDetailsPanel.js: Added.
(WI.FontDetailsPanel):
(WI.FontDetailsPanel.prototype.get supportsToggleCSSClass):
(WI.FontDetailsPanel.prototype.refresh):
(WI.FontDetailsPanel.prototype.initialLayout):
(WI.FontDetailsPanel.prototype._formatSizeValue):
(WI.FontDetailsPanel.prototype._formatStyleValue):
(WI.FontDetailsPanel.prototype._formatSimpleSingleValue):
- Format basic font properties.
(WI.FontDetailsPanel.prototype._formatVariationValue):
- Format non-standard variation axes.
(WI.FontDetailsPanel.prototype._formatSimpleFeatureValues):
- Common formatting for
font-variant-xxxproperties that map to font feature values.
(WI.FontDetailsPanel.prototype._formatLigatureValue):
(WI.FontDetailsPanel.prototype._formatPositionValue):
(WI.FontDetailsPanel.prototype._formatCapitalsValue):
(WI.FontDetailsPanel.prototype._formatNumericValue):
(WI.FontDetailsPanel.prototype._formatAlternatesValue):
(WI.FontDetailsPanel.prototype._formatEastAsianValue):
(WI.FontDetailsPanel.prototype._featureIsEnabled):
(WI.FontDetailsPanel.prototype._hasVariationValue):
- UserInterface/Views/FontDetailsSidebarPanel.js: Added.
(WI.FontDetailsSidebarPanel):
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content:not(.supports-new-rule) ~ .options-container > .new-rule,):
(.multi-sidebar.showing-multiple > .sidebar > .panel.details:not(.style-rules) > .content > .pseudo-classes,):
- When showing the Styles panel alongside another style-based panel, hide the pseudo-class and filter options.
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
(WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusFilterBar):
(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
(WI.GeneralStyleDetailsSidebarPanel.prototype._showPanel):
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleNodeChanged):
(WI.GeneralStyleDetailsSidebarPanel.prototype._filterDidChange):
- Support not showing the filter bar for style panels where filtering is not applicable.
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
- UserInterface/Views/StyleDetailsPanel.js:
(WI.StyleDetailsPanel.prototype.get supportsToggleCSSClass):
(WI.StyleDetailsPanel.prototype.filterDidChange): Deleted.
- Remove empty implementation of
filterDidChangeasWI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout
checks for an implmentation of this function to determine if a filter bar should be shown.
LayoutTests:
- inspector/css/getComputedPrimaryFontForNode-expected.txt: Added.
- inspector/css/getComputedPrimaryFontForNode.html: Added.
- inspector/model/font-calculate-properties-expected.txt: Added.
- inspector/model/font-calculate-properties.html: Added.
- 10:58 AM Changeset in webkit [270636] by
-
- 7 edits in trunk/Source
Add runtime flag for ANGLE on Metal
https://bugs.webkit.org/show_bug.cgi?id=219661
Source/WebCore:
<rdar://problem/69061894>
Reviewed by Sam Weinig.
Add a new RuntimeEnabledFeature for "WebGL on Metal". Check that
value when creating the GraphicsContextGL inside WebGL and
then pass a new attribute into EGL_GetPlatformDisplay.
The value used isn't yet in the tree, but this allows for local testing.
No change of behaviour at the moment.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebGLUsingMetal):
(WebCore::RuntimeEnabledFeatures::webGLUsingMetal const):
- platform/graphics/GraphicsContextGLAttributes.h: New useMetal attribute.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::InitializeEGLDisplay):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
Source/WTF:
Reviewed by Sam Weinig.
New internal feature flag "WebGL on Metal".
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 10:53 AM Changeset in webkit [270635] by
-
- 1 edit2 adds in trunk/LayoutTests
[Win] fast/url/data-url-mediatype.html is failing
https://bugs.webkit.org/show_bug.cgi?id=219720
Unreviewed test gardening.
- platform/win/fast/url/data-url-mediatype-expected.txt: Added.
- 10:08 AM Changeset in webkit [270634] by
-
- 5 edits in trunk/Source
[CMake] Use TARGET_PROPERTY to set includes for executables
https://bugs.webkit.org/show_bug.cgi?id=219743
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
Use $<TARGET_PROPERTY:JavaScriptCore,INCLUDE_DIRECTORIES> for all executables being
built alongside JavaScriptCore. This simplifies the includes for those targets.
Additionally relocate the setting of include directories for LLInt executables
so they're next to the rest of their definitions.
- CMakeLists.txt:
- shell/CMakeLists.txt:
Source/WebKit:
Use $<TARGET_PROPERTY:WebKit,INCLUDE_DIRECTORIES> for all executables being
built alongside WebKit. This simplifies the includes for those targets.
- CMakeLists.txt:
- 10:07 AM Changeset in webkit [270633] by
-
- 2 edits in trunk/Tools
[Flapak SDK] Add envvar to enable verbose mode
https://bugs.webkit.org/show_bug.cgi?id=219744
Reviewed by Adrian Perez de Castro.
While webkit-flatpak has the --verbose option, some scripts like
run-minibrowser, run-gtk-tests etc might not expose it to the user.
This change checks for WEBKIT_SDK_VERBOSE in order to be able to
control it regardless of command line options.
- flatpak/flatpakutils.py:
(WebkitFlatpak.load_from_args):
- 10:06 AM Changeset in webkit [270632] by
-
- 9 edits in trunk/Source
Unreviewed, reverting r270542.
Seems to have regressed perf benchmarks
Reverted changeset:
"[iOS] Stop leaking an XPC boost message to XPC services"
https://bugs.webkit.org/show_bug.cgi?id=219453
https://trac.webkit.org/changeset/270542
- 10:05 AM Changeset in webkit [270631] by
-
- 4 edits in trunk/Tools
prepare-ChangeLog won't parse rdar://nnnnnnnn URLs in fetchRadarURLFromBugXMLData()
<https://webkit.org/b/219645>
<rdar://problem/72182806>
Reviewed by Darin Adler.
Relax the format for rdar:// URLs not to require angle brackets
(<>) or the "problem/" pseudo-path.
Include drive-by fixes for global variables in prepare-ChangeLog
that cause warnings when running tests:
Variable "$var" is not available
- Scripts/prepare-ChangeLog:
(main):
- Move %attributeCache from global scope into this subroutine, then pass to generateFileList() to fix a variable warning.
(fetchRadarURLFromBugXMLData):
- Update regex that parses rdar:// URLs. This fixes the bug.
(attributeCommand):
- Add argument for $attributeCache hash ref since it is no longer a global variable.
- Move definition of $devNull here to fix a variable warning.
(generateFileList):
- Add argument for $attributeCache hash ref to pass through to attributeCommand().
- Scripts/webkitperl/prepare-ChangeLog_unittest/fetchRadarURLFromBugXMLData.pl:
- Add tests for newly supported rdar:// URL formats.
- Scripts/webkitperl/prepare-ChangeLog_unittest/filenameWithParentheses.pl:
- Update to pass $attributeCache to attributeCommand().
- 9:57 AM Changeset in webkit [270630] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Introduce InlineTextItem::isWordSeparator
https://bugs.webkit.org/show_bug.cgi?id=219695
Reviewed by Antti Koivisto.
This is in preparation for using it to make space for word-spacing.
- layout/inlineformatting/InlineItem.cpp:
- layout/inlineformatting/InlineItem.h:
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::isWordSeparator const):
(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):
- 9:44 AM Changeset in webkit [270629] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Line available width computation should be based on the content logical right.
https://bugs.webkit.org/show_bug.cgi?id=219693
Reviewed by Antti Koivisto.
This is in preparation for adding proper support for negative word spacing values where the negative value
pulls the content on the line to the logical left direction making more space for subsequent content.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::appendWordBreakOpportunity):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::contentLogicalRight const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLine):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):
- 9:16 AM Changeset in webkit [270628] by
-
- 2 edits in trunk/Tools
[iOS] TestWebKitAPI.GPUProcess.WebProcessTerminationAfterTooManyGPUProcessCrashes is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219719
<rdar://problem/72158303>
Reviewed by Darin Adler.
We currently have an issue where the audio track gets removed after the GPUProcess
crashes. This is what is causing GPUProcess.WebProcessTerminationAfterTooManyGPUProcessCrashes
to be flaky on iOS. For the same reason, GPUProcess.CrashWhilePlayingVideo was flaky on
iOS until we temporarily disabled the checks in r270328. For now, do the same thing as in r270328
for WebProcessTerminationAfterTooManyGPUProcessCrashes since I have not found the reason why
we lose audio on iOS after a GPU process crash yet and we don't want to keep a flaky test on
the bots.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- 8:10 AM Changeset in webkit [270627] by
-
- 11 edits2 adds in trunk
Gate VP9 exposure in MediaCapabilities on VP9DecoderEnabled preference
https://bugs.webkit.org/show_bug.cgi?id=219640
Reviewed by Eric Carlson.
Source/WebCore:
Add a boolean to enable/disable VP9 exposure.
Set it according to page settings.
Update scripts to correctly generate setVPXX setters.
Expose VP9DecoderEnabled value through internals API.
Test: media/mediacapabilities/vp9.html
- Modules/mediacapabilities/MediaCapabilities.cpp:
(WebCore::MediaCapabilities::decodingInfo):
- Scripts/GenerateSettings.rb:
- platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
(WebCore::createMediaPlayerDecodingConfigurationCocoa):
- platform/mediacapabilities/MediaDecodingConfiguration.h:
(WebCore::MediaDecodingConfiguration::encode const):
(WebCore::MediaDecodingConfiguration::decode):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::vp9DecoderEnabled const):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
- media/mediacapabilities/vp9-expected.txt: Added.
- media/mediacapabilities/vp9.html: Added.
- 7:37 AM Changeset in webkit [270626] by
-
- 15 edits2 adds in trunk/Source
ICE does not resolve for
turnsrelay candidates rooted in LetsEncrypt CA
https://bugs.webkit.org/show_bug.cgi?id=219274
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
Source/WebCore:
Introduce a new runtime flag that is used to control whether using the new webrtc socket code path or not.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webRTCPlatformSocketsEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformSocketsEnabled):
Source/WebKit:
Use NWConnection for client TCP sockets.
This allows piggy-backing on this API for things such as proxies or certificate validation.
Implementation does opening a TCP socket with TLS using NWConnection:
- If the socket is created for STUN/TURN, it is sending packets as is. For receiving data, the socket
will make sure to split received data in meaningful messages that WebProcess will process.
- If the socket is TCP for data, sent data is prefixed with the size of the data. For received data,
the length of the message is read and we wait to receive the whole message data to send it to WebProcess.
We enable that new code path based on an experimental feature.
Tested manually with TURNS servers and TCP-only connections.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createClientTCPSocket):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
(WebKit::NetworkRTCProvider::setPlatformSocketsEnabled):
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- NetworkProcess/webrtc/NetworkRTCSocketSocketCocoa.h: Added.
- NetworkProcess/webrtc/NetworkRTCSocketSocketCocoa.mm: Added.
(WebKit::socketQueue):
(WebKit::NetworkRTCSocketSocketCocoa::createClientTCPSocket):
(WebKit::isStunMessage):
(WebKit::getSTUNOrTURNMessageLength):
(WebKit::extractSTUNOrTURNMessages):
(WebKit::extractMessages):
(WebKit::processMessage):
(WebKit::NetworkRTCSocketSocketCocoa::NetworkRTCSocketSocketCocoa):
(WebKit::NetworkRTCSocketSocketCocoa::close):
(WebKit::NetworkRTCSocketSocketCocoa::setOption):
(WebKit::dataFromVector):
(WebKit::NetworkRTCSocketSocketCocoa::sendTo):
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::setConnection):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 7:12 AM Changeset in webkit [270625] by
-
- 9 edits13 adds in trunk
[iOS][FCR] Add new look for input type=range
https://bugs.webkit.org/show_bug.cgi?id=219698
<rdar://problem/72144727>
Reviewed by Wenson Hsieh.
Source/WebCore:
The new appearance matches the appearance of UIKit's UISlider.
Tests: fast/forms/ios/form-control-refresh/range/background-color.html
fast/forms/ios/form-control-refresh/range/border.html
fast/forms/ios/form-control-refresh/range/datalist.html
fast/forms/ios/form-control-refresh/range/style-height.html
fast/forms/ios/form-control-refresh/range/style-width.html
fast/forms/ios/form-control-refresh/range/value.html
- css/formControlsIOS.css:
(input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-slider-thumb:active):
The pressed appearance of slider thumbs on iOS is the same as the
unpressed appearance.
- rendering/RenderSlider.cpp:
(WebCore::RenderSlider::valueRatio const):
- rendering/RenderSlider.h:
Added the valueRatio() method so that the appropriate portion of the
slider can be filled when the value is non-zero.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
Consult supportsBoxShadow() rather than unconditionally dropping the
box shadow for native controls.
- rendering/RenderTheme.h:
(WebCore::RenderTheme::supportsBoxShadow const):
Preserve the default behavior of dropping box shadows for native controls.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintSliderTrack):
(WebCore::RenderThemeIOS::paintSliderThumbDecorations):
(WebCore::RenderThemeIOS::paintProgressBar):
(WebCore::RenderThemeIOS::supportsBoxShadow const):
Slider thumbs rely on box shadows for their appearance. Other controls
may also be able to support box shadows; more investigation is
needed, which is outside the scope of this patch.
(WebCore::RenderThemeIOS::paintProgressBarWithFormControlRefresh):
Removed acronym to follow style guidelines.
(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):
LayoutTests:
Added tests to verify the stylability of inputs with the new appearance.
- fast/forms/ios/form-control-refresh/range/background-color-expected.html: Added.
- fast/forms/ios/form-control-refresh/range/background-color.html: Added.
- fast/forms/ios/form-control-refresh/range/border-expected.html: Added.
- fast/forms/ios/form-control-refresh/range/border.html: Added.
- fast/forms/ios/form-control-refresh/range/datalist-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/range/datalist.html: Added.
- fast/forms/ios/form-control-refresh/range/style-height-expected.html: Added.
- fast/forms/ios/form-control-refresh/range/style-height.html: Added.
- fast/forms/ios/form-control-refresh/range/style-width-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/range/style-width.html: Added.
- fast/forms/ios/form-control-refresh/range/value-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/range/value.html: Added.
- 7:02 AM Changeset in webkit [270624] by
-
- 2 edits in trunk/Tools
[GTK] Fix EventSender wheel phase names
https://bugs.webkit.org/show_bug.cgi?id=219726
Reviewed by Carlos Garcia Campos.
It was causing the events to be sent with 0 phase as the momentum
phase switch overwrote it.
- WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
- 6:52 AM Changeset in webkit [270623] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Remove redundant Line::lineLogicalLeft
https://bugs.webkit.org/show_bug.cgi?id=219704
Reviewed by Antti Koivisto.
Now that the line builder tracks the left offset, the line does not need to have this bit anymore.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::moveLogicalLeft): Deleted.
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::contentLogicalRight const): Deleted.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleFloatContent):
- 6:27 AM Changeset in webkit [270622] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Remove old SLL logic of not letting the measured width to be < 0
https://bugs.webkit.org/show_bug.cgi?id=219724
Reviewed by Antti Koivisto.
This is in preparation for adding proper negative letter spacing support (similar to negative word spacing).
While negative widths seem a bit odd, the line builder will use this information to position
the runs properly (offset the run using the negative value and size it to 0.)
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth):
- 5:28 AM Changeset in webkit [270621] by
-
- 4 edits in trunk/Source/WebKit
Unified WebKit build fails
https://bugs.webkit.org/show_bug.cgi?id=219734
Reviewed by Tim Horton.
- UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:
- 4:49 AM Changeset in webkit [270620] by
-
- 9 edits in trunk
Expose RTCRtpSFrameTransform as SFrameTransform
https://bugs.webkit.org/show_bug.cgi?id=219675
Reviewed by Eric Carlson.
Source/WebCore:
Covered by updated tests.
- Modules/mediastream/RTCRtpSFrameTransform.idl:
- bindings/js/WebCoreBuiltinNames.h:
LayoutTests:
- http/wpt/webrtc/sframe-transform-expected.txt:
- http/wpt/webrtc/sframe-transform.html:
- webrtc/audio-sframe.html:
- webrtc/sframe-keys.html:
- webrtc/video-sframe.html:
- 3:26 AM Changeset in webkit [270619] by
-
- 11 edits in trunk
Unreviewed, build fix after r270616
Source/WebKit:
Adds a platform have flag.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
- UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.h:
- UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm:
Source/WTF:
Adds a platform have flag.
- wtf/PlatformHave.h:
LayoutTests:
Turns the modern WebAuthn feature off for this test.
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
- 2:09 AM Changeset in webkit [270618] by
-
- 5 edits in trunk
Support aspect-ratio on replaced elements
https://bugs.webkit.org/show_bug.cgi?id=219200
Patch by Rob Buis <rbuis@igalia.com> on 2020-12-10
Reviewed by Darin Adler.
Source/WebCore:
Take CSS aspect-ratio into account when calculating replaced element dimensions.
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox const): override
the context renderer aspect ratio with the replaced element aspect ratio.
(WebCore::RenderReplaced::computeIntrinsicRatioInformation const): compute
intrinsicRatio using CSS aspect-ratio information if it is provided.
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeIntrinsicRatioInformation const): compute
intrinsicRatio using CSS aspect-ratio for SVG root elements.
LayoutTests:
Enable some tests that pass now.
- 1:21 AM Changeset in webkit [270617] by
-
- 6 edits in trunk
[css-flex] RenderFlexibleBox::computeMainSizeFromAspectRatioUsing() must obbey box-sizing
https://bugs.webkit.org/show_bug.cgi?id=219690
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-005-expected.txt: Replaced one FAIL by PASS expectation.
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt: Ditto.
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt: Ditto.
Source/WebCore:
The method was not handling the cases in which box-sizing was border-box and thus it was incorrectly using
border and padding to compute sizes based on aspect ratios (the aspect ratio must be applied to content box).
This fixes 3 subtests from the WPT test suite.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Use a lambda to substract border and
padding extent when box-sizing is border-box.
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not substract border and padding because
computeMainSizeFromAspectRatioUsing now always returns the content box size.
- 12:41 AM Changeset in webkit [270616] by
-
- 10 edits7 adds in trunk
[WebAuthn] Adopt new UI for the Security Key makeCredential flow
https://bugs.webkit.org/show_bug.cgi?id=219708
<rdar://problem/72154735>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch adopts the new AuthenticationServices' UI. The idea is to use AuthenticatorPresenterCoordinator
as the middle layer to connect to the new UI while keeping the existing interfaces the same in the AuthenticatorManager
to handle the interactions between UI and authenticators.
Covered by manual tests.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h: Added.
SPI for the new UI.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- Scripts/process-entitlements.sh:
Added new sandbox rules for Remote SpringBoard services which are used by the new UI.
- SourcesCocoa.txt:
Paperwork.
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::handleRequest):
(WebKit::AuthenticatorManager::cancel):
(WebKit::AuthenticatorManager::enableModernWebAuthentication):
(WebKit::AuthenticatorManager::clearState):
(WebKit::AuthenticatorManager::serviceStatusUpdated):
(WebKit::AuthenticatorManager::authenticatorStatusUpdated):
(WebKit::AuthenticatorManager::requestPin):
(WebKit::AuthenticatorManager::selectAssertionResponse):
(WebKit::AuthenticatorManager::startDiscovery):
(WebKit::AuthenticatorManager::runPanel):
(WebKit::AuthenticatorManager::runPresenter):
(WebKit::AuthenticatorManager::invokePendingCompletionHandler):
- UIProcess/WebAuthentication/AuthenticatorManager.h:
Teached AuthenticatorManager to use the new UI's presenter when it is available. Otherwise, it falls back to the old UI.
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h: Added.
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm: Added.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h: Added.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm: Added.
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
(WebKit::AuthenticatorPresenterCoordinator::updatePresenter):
(WebKit::AuthenticatorPresenterCoordinator::requestPin):
(WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse):
(WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):
- UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.h: Added.
- UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm: Added.
(-[WKASCAuthorizationPresenterDelegate initWithCoordinator:]):
(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):
(-[WKASCAuthorizationPresenterDelegate authorizationPresenter:validateUserEnteredPIN:completionHandler:]):
Introduced the AuthenticatorPresenterCoordinator to handle the new UI.
- WebAuthnProcess/WebAuthnProcess.cpp:
(WebKit::WebAuthnProcess::WebAuthnProcess):
(WebKit::WebAuthnProcess::setMockWebAuthenticationConfiguration):
Teached WebAuthnProcess to inform AuthenticatorManager about its existence.
- WebKit.xcodeproj/project.pbxproj:
Paperwork.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
Adjusted to the new behavior.