Timeline
Feb 26, 2022:
- 11:27 PM Changeset in webkit [290555] by
-
- 8 edits in trunk/Source/WebKit
RemoteCaptureSampleManager, UserMediaSampleCaptureManagerProxy create the RemoteVideoFrame in incorrectly
https://bugs.webkit.org/show_bug.cgi?id=237134
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-26
Reviewed by Youenn Fablet.
UserMediaSampleCaptureManagerProxy should not call RemoteVideoFrameObjectHeap::createVideoFrame,
the function should be removed. Instead, UserMediaSampleCaptureManagerProxy should construct a
write reference to insert the media sample -> remote proxy mapping. Then
the result of the insert, a new reference, should be sent as part of the
RemoteVideoFrameProxy::Properties to the WP. This way the sent reference is
constructed as expected. Previously the reference was correct but matched just
by selecting the constants currently used (0).
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::videoSampleAvailable):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailableCV):
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
- 11:06 PM Changeset in webkit [290554] by
-
- 11 edits2 adds in trunk
Remove Node::deprecatedIsInert
https://bugs.webkit.org/show_bug.cgi?id=230845
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.
However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:
- web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt:
- web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt:
Source/WebCore:
This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.
However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.
- dom/Element.cpp:
(WebCore::Element::isFocusable const):
(WebCore::Element::isFocusableWithoutResolvingFullStyle const):
(WebCore::Element::isVisibleWithoutResolvingFullStyle const): Deleted.
- dom/Element.h:
- dom/Node.cpp:
(WebCore::Node::deprecatedIsInert const): Deleted.
- dom/Node.h:
- html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::isFocusable const):
LayoutTests:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-inert-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt: Added.
- 4:46 PM Changeset in webkit [290553] by
-
- 3 edits in trunk/Source/WebCore
AX: Remove unnecessary AccessibilityRenderObject::init() override
https://bugs.webkit.org/show_bug.cgi?id=237239
Reviewed by Chris Fleizach.
The implementation of AccessibilityRenderObject::init() just calls
AccessibilityNodeObject::init(), so we don't need it as an override.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::init): Deleted.
- accessibility/AccessibilityRenderObject.h:
- 3:36 PM Changeset in webkit [290552] by
-
- 12 edits in trunk
Drop Ref<>'s operator==() as it is a bit ambiguous / confusing
https://bugs.webkit.org/show_bug.cgi?id=237231
Reviewed by Darin Adler.
Drop Ref<>'s operator==() as it is a bit ambiguous / confusing. Some people expect it to compare
pointers while other expect it to compare the values we hold references to.
It seems best to omit this operator and be explicit at call sites.
Source/WebCore:
- Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
(WebCore::LibWebRTCRtpSenderBackend::startSource):
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::removeElementToRebuild):
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::buildEffectExpression const):
Source/WebKit:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::cacheMediaMIMETypes):
- UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::removeAll):
(WebKit::VisitedLinkStore::sendStoreHandleToProcess):
(WebKit::VisitedLinkStore::didUpdateSharedStringHashes):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::shouldTerminate):
Source/WTF:
- wtf/Ref.h:
(WTF::operator==): Deleted.
(WTF::operator!=): Deleted.
- wtf/Vector.h:
(WTF::Vector::containsIf const):
- 2:12 PM Changeset in webkit [290551] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove UNUSED warnings for non-Cocoa platform after r290449
https://bugs.webkit.org/show_bug.cgi?id=237233
Reviewed by Darin Adler.
- runtime/JSDateMath.cpp:
- 1:04 PM Changeset in webkit [290550] by
-
- 15 edits in trunk
Update CSP handling of javascript URLs
https://bugs.webkit.org/show_bug.cgi?id=236351
<rdar://problem/88675827>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow-expected.txt:
- web-platform-tests/content-security-policy/navigation/to-javascript-url-script-src-expected.txt:
Source/WebCore:
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeJavaScriptURL):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::createWindow):
- loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::requestFrame):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
- page/csp/ContentSecurityPolicy.h:
LayoutTests:
- TestExpectations:
- http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
- 10:44 AM Changeset in webkit [290549] by
-
- 3 edits2 adds in trunk
[RenderTreeBuilder] Clean up descendant floats when a block container becomes float
https://bugs.webkit.org/show_bug.cgi?id=237238
<rdar://79960422>
Reviewed by Antti Koivisto.
Source/WebCore:
When a block box becomes float, it forms a "lockdown" container for the descendant floats by establishing a BFC.
What it means is that such descendant floats can't intrude to sibling block containers anymore.
This patch ensures that we remove such floats from sibling (and their descendant) renderers.
Test: fast/block/float/float-merge-anon-parent-crash.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
LayoutTests:
- fast/block/float/float-merge-anon-parent-crash-expected.txt: Added.
- fast/block/float/float-merge-anon-parent-crash.html: Added.
- 10:43 AM Changeset in webkit [290548] by
-
- 7 edits in trunk
No animation when scroll snap scroller is navigated with the keyboard
https://bugs.webkit.org/show_bug.cgi?id=236244
Reviewed by Tim Horton.
Source/WebCore:
Keyboard-driven scrolls in overflow didn't animate, simply because scrollAnimatorEnabled()
wasn't implemented for RenderLayerScrollableArea.
I could not figure out a reliable way to test that we animated the scroll.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollAnimatorEnabled const):
- rendering/RenderLayerScrollableArea.h:
LayoutTests:
Turn off the scroll animator for these tests that assume that scrolling is instantaneous.
- css3/scroll-snap/scroll-padding-overflow-paging.html:
- fast/events/wheelevent-in-scrolling-div.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:
- 4:07 AM Changeset in webkit [290547] by
-
- 5 edits in trunk/Source/WebKit
Multiple concurrency violations in LibWebRTCCodecsProxy
https://bugs.webkit.org/show_bug.cgi?id=236767
<rdar://88904160>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-26
Reviewed by Antti Koivisto.
- ThreadMessageReceivers should not add IPC listeners in constructors,
as the delivery starts right away and uses the unconstructed virtual pointer.
- The work queue functions should not use GPUConnectionToWebProcess, as that is
main thread object.
- Locked m_encoders, m_decoders are sometimes accessed without lock.
Instead:
- Add the IPC listeners in initialize function.
- Remove the IPC listeners when GPUConnectionToWebProcess disconnects.
- Store the thread-safe conection, video frame object heap, process identity
objects as member variables.
- Do not lock m_encoders, m_decoders. If they are work queue instances,
just access them in the work queue functions. Add thread requirements
to the variables so that the compiler checks the access.
- Use IPC testing assertions when skipping incorrect messages.
- Use separate atomic counter (bool) to check if allowsExitUnderMemoryPressure.
No new tests, tested with existing tests and ASAN.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didClose):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::create):
(WebKit::LibWebRTCCodecsProxy::LibWebRTCCodecsProxy):
(WebKit::LibWebRTCCodecsProxy::stopListeningForIPC):
(WebKit::LibWebRTCCodecsProxy::initialize):
(WebKit::LibWebRTCCodecsProxy::dispatchToThread):
(WebKit::LibWebRTCCodecsProxy::createDecoderCallback):
(WebKit::LibWebRTCCodecsProxy::createH264Decoder):
(WebKit::LibWebRTCCodecsProxy::createH265Decoder):
(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::releaseDecoder):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::initializeEncoder):
(WebKit::LibWebRTCCodecsProxy::findEncoder):
(WebKit::LibWebRTCCodecsProxy::encodeFrame):
(WebKit::LibWebRTCCodecsProxy::setEncodeRates):
(WebKit::LibWebRTCCodecsProxy::setSharedVideoFrameSemaphore):
(WebKit::LibWebRTCCodecsProxy::setSharedVideoFrameMemory):
(WebKit::LibWebRTCCodecsProxy::allowsExitUnderMemoryPressure const):
- 2:04 AM Changeset in webkit [290546] by
-
- 3 edits in trunk/LayoutTests
REGRESSION(r290358): [ Debug EWS ] ASSERTION FAILED: sample && sample->pixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=237164
<rdar://problem/89442999>
Unreviewed.
ASSERTS are fixed through https://bugs.webkit.org/show_bug.cgi?id=237027.
Removing crash expectations.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
Feb 25, 2022:
- 11:58 PM Changeset in webkit [290545] by
-
- 7 edits2 adds in trunk
Scrollbars disappear when very long or wide
https://bugs.webkit.org/show_bug.cgi?id=237232
Source/WebCore:
<rdar://17540446>
Reviewed by Tim Horton.
Our tiling logic does not play nicely with AppKit's NSScrollerImps, probably because we
inadvertently unparent its layers.
Fix by disallowing GraphicsLayers for scrollbars from going into tiled mode, for
both root and overflow scrollbars.
Test: fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setAllowsTiling):
(WebCore::GraphicsLayer::allowsTiling const):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::requiresTiledLayer const):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
LayoutTests:
Reviewed by Tim Horton.
- fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar-expected-mismatch.html: Added.
- fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html: Added.
- 9:42 PM Changeset in webkit [290544] by
-
- 5 edits in trunk
[macOS] TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=237065
<rdar://problem/89324250>
Reviewed by Alexey Proskuryakov.
Source/WebKit:
Commit transactions of SQLiteStorageArea at exit of network process.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
- NetworkProcess/storage/SQLiteStorageArea.cpp:
(WebKit::commitTransactionsAtExit):
(WebKit::SQLiteStorageArea::SQLiteStorageArea):
(WebKit::SQLiteStorageArea::startTransactionIfNecessary):
(WebKit::SQLiteStorageArea::commitTransactionIfNecessary):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- 9:38 PM Changeset in webkit [290543] by
-
- 5 edits in trunk
Adjust -[WKContentView _requiresKeyboardWhenFirstResponder] to account for editable web views
https://bugs.webkit.org/show_bug.cgi?id=237226
rdar://89447095
Reviewed by Aditya Keerthi.
Source/WebKit:
Adjust the implementation of
-[WKContentView _requiresKeyboardWhenFirstResponder], such that it returns YES
for editable web views, except for the scenario where an input field that does *not* require the automatic
keyboard is currently focused in the page inside the editable web view (e.g. areadonlytext field).
UIKit consults this method to know whether or not a given responder would require the keyboard (either software
keyboard or the minimized UCB for hardware keyboard) if it were to become the first responder. For web views
that are made editable in the SPI sense, we know a-priori that this should return YES, unless a readonly element
underneath the web view has focus (in which case,_disableAutomaticKeyboardUIwould be true).
Test: KeyboardInputTests.EditableWebViewRequiresKeyboardWhenFirstResponder
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
Tools:
Add an API test to exercise the change. This new API test is comprised of 3 parts:
- Verify that
-_requiresKeyboardWhenFirstResponderis NO after loading the page. - Verify that
-_requiresKeyboardWhenFirstResponderbecomes YES after making the web view editable. - Verify that
-_requiresKeyboardWhenFirstResponderis NO again after focusing a readonly input inside the now-editable web view.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
- 9:05 PM Changeset in webkit [290542] by
-
- 4 edits in trunk/Source
[GPU Process] Implement RemoteImageBufferProxy::drawConsuming()
https://bugs.webkit.org/show_bug.cgi?id=236685
rdar://89007426
Reviewed by Simon Fraser.
Source/WebCore:
Assert ImageBuffer::drawConsuming() does not draw into its backend before
it is destroyed.
- platform/graphics/ConcreteImageBuffer.h:
Source/WebKit:
RemoteImageBufferProxy::drawConsuming() should call drawImageBuffer() of
the destination GraphicsContext. No recursion will happen and the expected
behavior will be achieved by this change.
This is the sequence of calls when the Destination GraphicsContext is
local and when it is remote:
-- Destination GraphicsContext is local:
In this case, the backend of the RemoteImageBufferProxy can be mapped
in WebProcess; i.e. we do have access to its memory.
ConcreteImageBuffer::draw() will be called eventually. This function
will call its backend->draw() which will get a NativeImage by calling
backend->copyNativeImage(). There is no difference between draw() and
drawConsuming() in this case because the backend is still owned by
GPUProcess. So it will not be released immediately. We do not copy the
pixels since we have to pass DontCopyBackingStore to copyNativeImage().
-- Destination GraphicsContext is remote:
In this case, Recorder::drawImageBuffer() will be called which will
call RemoteDisplayListRecorderProxy::recordDrawImageBuffer(). This
will send a message to GPUProcess and hence all the drawing will
happen in GPUProcess. Similar to the case of the local GraphicsContext,
no pixels will be copied from the RemoteImageBuffer backend to the
NativeImage in all cases. The assumption is the backend will be destroyed
automatically after calling drawConsuming().
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- 7:59 PM Changeset in webkit [290541] by
-
- 3 edits in trunk/Source/bmalloc
[libpas] Suppress cast-align warnings
https://bugs.webkit.org/show_bug.cgi?id=237179
<rdar://problem/89479570>
Reviewed by Yusuke Suzuki.
Ignore cast-align warnings for libpas target.
- CMakeLists.txt:
- libpas/src/libpas/bmalloc_heap_inlines.h:
- 6:03 PM Changeset in webkit [290540] by
-
- 12 edits1 copy2 deletes in trunk/Source/WebCore
[GTK][WPE][WC] Move ANGLE context initialisation to GraphicsContextGLTextureMapper::initialize
https://bugs.webkit.org/show_bug.cgi?id=236769
Reviewed by Chris Lord.
This is the first step for the long-term plan to share more code
in GraphicsContextGLANGLE between Cocoa and non-Cocoa, and
minimise the ifdefs in GraphicsContextGLANGLE.
We are moving the context initialisation and holding to
GraphicsContextGLTextureMapper, away from
GCGLANGLELayer::ANGLEContext and the layer classes in case of
COORDINATED_GRAPHICS. Later on, Cocoa and non-Cocoa can merge
their ::initialize.
No new tests, this is a refactoring patch.
- platform/TextureMapper.cmake:
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):
(Nicosia::GCGLANGLELayer::ANGLEContext::errorString): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::lastErrorString): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::createContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::ANGLEContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::~ANGLEContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::makeContextCurrent): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformContext const): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformDisplay const): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformConfig const): Deleted.
(Nicosia::GCGLANGLELayer::makeContextCurrent): Deleted.
(Nicosia::GCGLANGLELayer::platformContext const): Deleted.
(Nicosia::GCGLANGLELayer::platformDisplay const): Deleted.
(Nicosia::GCGLANGLELayer::platformConfig const): Deleted.
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::initialize):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/ANGLEContext.cpp: Removed.
- platform/graphics/texmap/ANGLEContext.h: Removed.
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLTextureMapper::create):
(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):
(WebCore::GraphicsContextGLTextureMapper::layerContentsDisplayDelegate):
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(): Deleted.
- platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLTextureMapper::platformInitializeContext):
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
- platform/graphics/texmap/PlatformLayerDisplayDelegate.h: Copied from Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.h.
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:
(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::~TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):
(WebCore::TextureMapperGCGLPlatformLayer::makeContextCurrent): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformContext const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformDisplay const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformConfig const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::proxy const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded): Deleted.
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:
- 5:47 PM Changeset in webkit [290539] by
-
- 4 edits in trunk
[WebAuthn] Fallback to attestation=none whenever attestation fails
https://bugs.webkit.org/show_bug.cgi?id=237223
rdar://88767812
Reviewed by Brent Fulgham.
Source/WebKit:
Whenever attestation is requested by a RP and it fails to complete,
we previously errored out of the registration. The more correct platform
behavior in this case is to provide attestation=none.
Created API test for this behavior.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
Tools:
Add test for local authenticator attestation fallback behavior.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 5:19 PM Changeset in webkit [290538] by
-
- 5 edits in trunk/Source/WebCore
Use the modern Hasher more in Content Extensions code
https://bugs.webkit.org/show_bug.cgi?id=237228
Reviewed by Darin Adler.
- contentextensions/CombinedFiltersAlphabet.cpp:
(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::TermCreatorTranslator::hash):
- contentextensions/CombinedFiltersAlphabet.h:
(WebCore::ContentExtensions::CombinedFiltersAlphabet::TermPointerHash::hash):
- contentextensions/ContentExtensionRule.h:
(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::TriggerHash::hash):
- contentextensions/Term.h:
(WebCore::ContentExtensions::Term::Group::operator== const):
(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::Term::CharacterSet::hash const): Deleted.
(WebCore::ContentExtensions::Term::Group::hash const): Deleted.
(WebCore::ContentExtensions::Term::hash const): Deleted.
- 4:27 PM Changeset in webkit [290537] by
-
- 2 edits in trunk/Source/WebCore
Do not trigger didFail during FileReaderLoader Destruction
https://bugs.webkit.org/show_bug.cgi?id=237060
Patch by Brandon Stewart <Brandon> on 2022-02-25
Reviewed by Darin Adler.
Setting cancel() instead of terminate() will prevent the didFail() method from being triggered.
This method has the unfortunate side effect of trying to allocate memory, which is not allowed when
under going a sweep event.
- fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::~FileReaderLoader):
- 4:17 PM Changeset in webkit [290536] by
-
- 1 copy in tags/Safari-613.1.17.1.9
Tag Safari-613.1.17.1.9.
- 4:04 PM Changeset in webkit [290535] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add access to required mach service in the Network process
https://bugs.webkit.org/show_bug.cgi?id=237216
<rdar://89176897>
Reviewed by Brent Fulgham.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- 4:02 PM Changeset in webkit [290534] by
-
- 8 edits2 adds in trunk
WebKit continues to render PDF images in Captive Portal mode
https://bugs.webkit.org/show_bug.cgi?id=237120
<rdar://problem/89384234>
Reviewed by Chris Dumez.
Source/WebCore:
WebKit should handle all PDF processing in PDF.JS when in Captive Portal mode. However, testing
revealed that PDF images are still rendered natively. As a first step we should bypass the
native PDF code path. A subsequent patch will handle in PDF.JS.
We need to thread the state of the Captive Portal setting through the image loading code so that
WebKit knows to bail out before consuming the PDF data in the native decoder.
Tested by TestWebKitAPI.
- page/RuntimeEnabledFeatures.h: Add new flag for PDF image decoding state.
- platform/graphics/Image.cpp:
(WebCore::Image::create): Check whether PDF image decoding should be permitted.
Source/WebKit:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess): Turn PDF image decoding off when in CaptivePortal mode.
Tools:
WebKit should handle all PDF processing in PDF.JS when in Captive Portal mode. However, testing
revealed that PDF images are still rendered natively. As a first step we should bypass the
native PDF code path. A subsequent patch will handle in PDF.JS.
We need to thread the state of the Captive Portal setting through the image loading code so that
WebKit knows to bail out before consuming the PDF data in the native decoder.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/CaptivePortalPDF.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[CaptivePortalMessageHandler userContentController:didReceiveScriptMessage:]): Add new test case.
- TestWebKitAPI/Tests/WebKitCocoa/webkit-logo.pdf: Added.
- 3:49 PM Changeset in webkit [290533] by
-
- 1 copy in tags/Safari-614.1.5.5
Tag Safari-614.1.5.5.
- 3:45 PM Changeset in webkit [290532] by
-
- 8 edits in trunk
Regression(r242729): m_origin in IDBDatabaseIdentifier is incorrect
https://bugs.webkit.org/show_bug.cgi?id=237044
Reviewed by Youenn Fablet.
Source/WebCore:
In r242729, we swapped top origin and opening origin in m_origin (it is a ClientOrigin) of IDBDatabaseIdentifier.
This can cause trouble since IndexedDB operation will be processed by wrong OriginStorageManager
(OriginStorageManager is identified by ClientOrigin). To fix this issue, we need to swap it back.
New test: IndexedDB.IndexedDBThirdPartyStorageLayout
- Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot const):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::diskUsage):
Source/WebKit:
- NetworkProcess/storage/IDBStorageManager.cpp:
(WebKit::migrateOriginData):
(WebKit::IDBStorageManager::idbStorageOriginDirectory):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
(-[IndexedDBMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):
- 3:29 PM Changeset in webkit [290531] by
-
- 3 edits4 adds in trunk
SharedArrayBuffer posted to AudioWorkletProcessor is not actually shared with the main thread
https://bugs.webkit.org/show_bug.cgi?id=237144
<rdar://problem/89479641>
Reviewed by Darin Adler.
Source/WebCore:
SerializedScriptValue only maintains SharedArrayBuffers when constructed with SerializationContext::WorkerPostMessage.
With other SerializationContext values, such as the default one that AudioWorkletNode was using, SharedArrayBuffers
are serialized as simple arrays and are no longer shared.
This patch passes SerializationContext::WorkerPostMessage when constructing the SerializedScriptValue since we want
SharedArrayBuffer sharing and since a worklet is essentially a worker.
Note that this patch allows passing a SharedArrayBuffer to an AudioWorklet upon construction via processorOptions.
However, SharedArrayBuffer still won't be shared if sent later on via a MessagePort.postMessage() call. This is
because MessagePort.postMessage() routes all messages via the network process, even if the destination ends up
being within the same process as the sender (See Bug 220038).
Test: http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html
- Modules/webaudio/AudioWorkletNode.cpp:
(WebCore::AudioWorkletNode::create):
LayoutTests:
Add layout test coverage.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/shared-array-buffer-processor.js: Added.
(SharedArrayBufferTestProcessor):
(SharedArrayBufferTestProcessor.prototype.process):
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https-expected.txt: Added.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html: Added.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html.headers: Added.
- 3:19 PM Changeset in webkit [290530] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove incorrect ASSERT.
https://bugs.webkit.org/show_bug.cgi?id=237185
<rdar://problem/83902782>
Reviewed by Yusuke Suzuki.
These debug ASSERTs were added in http://trac.webkit.org/r283632 back when we
weren't sure that the StringImpl pointer can be null or not. We're now certain
that the StringImpl pointer can be null because:
The site of the ASSERT looks like this:
`
auto* impl = string->tryGetValueImpl();
ASSERT(impl); FIXME: rdar://83902782
if (impl && impl->isAtom() &&
...
`
... where string is a JSString, which can also be a JSRopeString.
JSString::tryGetValueImpl() is:
`
inline const StringImpl* JSString::tryGetValueImpl() const
{
uintptr_t pointer = fiberConcurrently();
if (pointer & isRopeInPointer)
return nullptr;
return bitwise_cast<StringImpl*>(pointer);
}
`
If string is a JSRopeString, the returned impl will be null. Hence, the ASSERT is
invalid and should be removed.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
- 2:24 PM Changeset in webkit [290529] by
-
- 1 copy in releases/WPE WebKit/webkit-2.35.90
WPE WebKit 2.35.90
- 2:20 PM Changeset in webkit [290528] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.35.90 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.35.90.
- 2:20 PM Changeset in webkit [290527] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Unreviewed non-unified build fix.
- WebProcess/glib/WebProcessGLib.cpp: Add missing WebPage.h inclusion.
- 2:18 PM Changeset in webkit [290526] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] HLS + Modern EME key rotation causes playback to stall indefinitely
https://bugs.webkit.org/show_bug.cgi?id=237214
<rdar://89372801>
Reviewed by Eric Carlson.
In r275916, Ref was changed to perform pointer equality in its operator==. This caused
takeUnexpectedKeyRequestForInitializationData() to fail to find key requests matching
the initData passed in through MediaKeySession.
Fix the equality test by calling .get() on the Ref, which causes the
==to resolve to
FragmentedSharedBuffer::operator==().
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):
- 1:01 PM Changeset in webkit [290525] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r290516.
https://bugs.webkit.org/show_bug.cgi?id=237222
broke debug tests
Reverted changeset:
"[JSC] Use DeferTerminationForAWhile in Interpreter::unwind"
https://bugs.webkit.org/show_bug.cgi?id=237176
https://commits.webkit.org/r290516
- 12:54 PM Changeset in webkit [290524] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] 7X imported/w3c/web-platform-tests/pointerevents/pointerevent (layout-tests) are flaky text failures
https://bugs.webkit.org/show_bug.cgi?id=236128
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 12:44 PM Changeset in webkit [290523] by
-
- 4 edits1 copy in trunk/Source/WTF
[XCBuild] Add missing header build rule for Scripts/Preferences/*
https://bugs.webkit.org/show_bug.cgi?id=237129
Reviewed by Alexey Proskuryakov.
Relands "[XCBuild] WTF's SPI dependencies are copied via a folder reference and do not emit
task outputs".
r290452 missed adding a build rule which would copy $SRCROOT/Scripts/Preferences/* to
/usr/local/include/wtf/Scripts/Preferences, and caused clean builds to start failing. Fix by
adding the needed build rule.
- Configurations/Base.xcconfig:
- Configurations/WTF.xcconfig:
- Configurations/icu.xcconfig:
- WTF.xcodeproj/project.pbxproj:
- 12:19 PM Changeset in webkit [290522] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/svg/coordinate-systems/abspos.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237220
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-02-25
- platform/ios/TestExpectations:
- 12:08 PM Changeset in webkit [290521] by
-
- 4 edits in trunk/Source/WebKit
Make sure there is a default Networking process to provide the Launch Services database
https://bugs.webkit.org/show_bug.cgi?id=236629
Reviewed by Brent Fulgham.
The WebContent processes relies on getting the Launch Services database from the Networking process.
It is possible to enter a state where there is no default Network process, but a Network process is
running because a Website data store is holding a reference to it. This patch addresses this issue
by removing Network process references in all remaining Website data stores when the last process
pool is being deleted.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeNetworkProcessReference):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 11:42 AM Changeset in webkit [290520] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r289787?) [ iOS EWS ]fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237218
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-02-25
- platform/ios/TestExpectations:
- 11:26 AM Changeset in webkit [290519] by
-
- 18 edits15 adds in trunk
Re-add YouTubePluginReplacement, removed in r285252
https://bugs.webkit.org/show_bug.cgi?id=237182
Source/WebCore:
<rdar://89148022>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
Tests: security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html
Its removal broke webpages that work in Chrome and Firefox, so back it comes.
- Headers.cmake:
- Modules/plugins: Copied from Source/WebCore/Modules/plugins.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginScriptObject):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterface::visitChildrenImpl):
- html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::createElementRenderer):
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
(WebCore::registrar):
(WebCore::pluginReplacementForType):
(WebCore::HTMLPlugInElement::requestObject):
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement):
- html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::pluginReplacementScriptObject):
- html/shadow/ShadowPseudoIds.cpp:
(WebCore::ShadowPseudoIds::webkitPluginReplacement):
- html/shadow/ShadowPseudoIds.h:
- html/shadow/YouTubeEmbedShadowElement.cpp:
- html/shadow/YouTubeEmbedShadowElement.h:
- page/Settings.yaml:
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:
LayoutTests:
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/win/TestExpectations:
- security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html.
- security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html.
- 11:13 AM Changeset in webkit [290518] by
-
- 8 edits2 adds in branches/safari-613.1.17.1-branch
Cherry-pick r290512. rdar://problem/86582214
[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>
Reviewed by Antti Koivisto.
Source/WebCore:
Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)
Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html
- rendering/RenderTable.cpp: (WebCore::RenderTable::firstColumn const):
- rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::nextColumn const):
LayoutTests:
- fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
- fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
- platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
- platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:03 AM Changeset in webkit [290517] by
-
- 4 edits1 add in trunk
operationMaterializeObjectInOSR should DeferTerminationForAWhile instead of just DeferTermination.
https://bugs.webkit.org/show_bug.cgi?id=237173
rdar://problem/89450245
Reviewed by Yusuke Suzuki.
JSTests:
- stress/termination-exception-in-operationMaterializeObjectInOSR2.js: Added.
Source/JavaScriptCore:
DeferTermination can throw the TerminationException on destruction of the scope
object. operationMaterializeObjectInOSR() was using DeferTermination, resulting
in the TerminationException being thrown on exit. This trips up
validateDFGExceptionHandling testing (which is enabled on Debug builds) because the
TerminationException is unexpected. The solution is simply to use
DeferTerminationForAWhile instead, and let a more natural trap checkpoint throw
the TerminationException later.
Also refactored notifyDebuggerOfUnwinding() to return early if a debugger is not
present. This avoids unnecessarily entering and exiting a DeferTermination scope
in notifyDebuggerOfUnwinding(). This was observed while testing this change on
the attached test case.
- ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
- interpreter/Interpreter.cpp:
(JSC::notifyDebuggerOfUnwinding):
- 10:53 AM Changeset in webkit [290516] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Use DeferTerminationForAWhile in Interpreter::unwind
https://bugs.webkit.org/show_bug.cgi?id=237176
Reviewed by Mark Lam.
Interpreter::unwind calls sanitizeRemoteFunctionException, which would like to create scope (but it
does not have user observable behavior). Problem is that, since it is creating a scope, it can throw
a termination exception. We were using DeferTermination, but destructor of this scope can still set
termination exception, which results in throwing a termination exception for the error handler.
We use DeferTerminationForAWhile in the prologue of the Interpreter::unwind to ensure that this function
will not accept termination exception coming concurrently.
- interpreter/Interpreter.cpp:
(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::unwind):
- 10:44 AM Changeset in webkit [290515] by
-
- 9 edits in trunk
[WebAuthn] Use default pubKeyCredParams if empty in makeCredential
https://bugs.webkit.org/show_bug.cgi?id=237109
rdar://problem/89376484
Reviewed by Brent Fulgham.
Source/WebCore:
The Web Authentication level 2 spec was updated to clarify that
a set of default pubKeyCredParams should be used if the list
supplied by the RP is empty. This patch starts using
the default and updates associated tests.
- Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinator::create const):
- Modules/webauthn/PublicKeyCredentialCreationOptions.h:
- Modules/webauthn/WebAuthenticationConstants.h:
LayoutTests:
Update tests to take in account using default pubKeyCredParams.
- http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure.https.html:
- http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
- 9:23 AM Changeset in webkit [290514] by
-
- 2 edits in trunk/Source/WebCore
Use modern Hasher in ContentExtensionsActions
https://bugs.webkit.org/show_bug.cgi?id=237157
Reviewed by Darin Adler.
- contentextensions/ContentExtensionActions.h:
(WebCore::ContentExtensions::add):
(WTF::DefaultHash<WebCore::ContentExtensions::RedirectAction>::hash):
(WTF::DefaultHash<WebCore::ContentExtensions::ModifyHeadersAction>::hash):
(WebCore::ContentExtensions::VariantHasher::hash): Deleted.
(WebCore::ContentExtensions::VectorHasher::hash): Deleted.
- 8:56 AM Changeset in webkit [290513] by
-
- 11 edits in trunk/Source/WebKit
Better isolate RemoteVideoFrameObjectHeap clients from ThreadSafeObjectHeap implementation details
https://bugs.webkit.org/show_bug.cgi?id=237191
Reviewed by Kimmo Kinnunen.
Refactoring to make RemoteVideoFrameObjectHeap API independent of ThreadSafeObjectHeap.
This makes code more readable and simplifies client side usage as well,
for instance by not having to care about timers, or using more known names like add/get instead of retire.
No change of behavior.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
- GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
- GPUProcess/media/RemoteVideoFrameObjectHeap.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- Shared/ThreadSafeObjectHeap.h:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- 8:44 AM Changeset in webkit [290512] by
-
- 8 edits2 adds in trunk
[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>
Reviewed by Antti Koivisto.
Source/WebCore:
Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)
Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html
- rendering/RenderTable.cpp:
(WebCore::RenderTable::firstColumn const):
- rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::nextColumn const):
LayoutTests:
- fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
- fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
- platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
- platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.
- 8:43 AM Changeset in webkit [290511] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.5
- 8:32 AM Changeset in webkit [290510] by
-
- 4 edits in trunk/Source/JavaScriptCore
Web Inspector: [Cocoa] Split remote inspector message data into smaller chunks for large messages
https://bugs.webkit.org/show_bug.cgi?id=237110
<rdar://89364487>
Reviewed by Devin Rousso.
Messages over 2 MiB will now be split into multiple chunks, which allows us to not exceed any receiving daemon
process' memory limit under otherwise normal conditions. 2 MiB was chosen as a balance between not having to
split most messages at all and making sure that the messages (and any copies made during the relaying of the
messages) do not exceed the memory limits of the receiving daemon process.
In order to prevent us from sending chunked messages to a process that doesn't support them we check for a flag
to enable this functionality during connection setup.
- inspector/remote/RemoteInspector.h:
- inspector/remote/RemoteInspectorConstants.h:
- inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::receivedSetupMessage):
- 8:23 AM Changeset in webkit [290509] by
-
- 2 edits in trunk/Source/WebKit
Remove unused soft linking declarations
https://bugs.webkit.org/show_bug.cgi?id=237209
Reviewed by Brent Fulgham.
- WebProcess/cocoa/WebProcessCocoa.mm:
- 8:04 AM Changeset in webkit [290508] by
-
- 3 edits in trunk/Tools
[Python 3] Invoke validate-committer-lists with Python 3
https://bugs.webkit.org/show_bug.cgi?id=237171
<rdar://problem/89449485>
Reviewed by Alexey Proskuryakov.
- Tools/Scripts/validate-committer-lists:
(CommitterListFromMailingList): Use https urls.
(CommitterListFromMailingList._fetch_authors_and_last_commit_time_from_git_log):
Handle commits in the canonical repository.
(CommitterListFromGit.possibly_expired_committers): Use Python 3 sorting idioms.
(CommitterListFromGit.possibly_inactive_reviewers): Declare process encoding.
(CommitterListFromGit.print_possibly_expired_committers): Committers which are not in
contributors.json or are only contributors cannot have expired committer status.
(CommitterListFromGit.print_possibly_inactive_reviewers): String already utf-8.
(CommitterListFromGit.print_committers_missing_from_committer_list): Check contributors,
not committers.
- Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(BugzillaQueries.fetch_bugs_matching_quicksearch): Make urllib.quote invocations Python 3 compatible.
(BugzillaQueries.fetch_bugs_matching_search): Ditto.
(BugzillaQueries.fetch_bugs_from_review_queue): Ditto.
(BugzillaQueries.fetch_login_userid_pairs_matching_substring): Ditto.
(BugzillaQueries.is_invalid_bugzilla_email): Ditto.
Canonical link: https://commits.webkit.org/247793@main
- 7:49 AM Changeset in webkit [290507] by
-
- 5 edits1 add in trunk
Non-simple CORS preflight fails due to cache-control header
https://bugs.webkit.org/show_bug.cgi?id=236837
<rdar://problem/89382796>
Reviewed by Chris Dumez.
Source/WebCore:
We fixed cache-control in https://bugs.webkit.org/show_bug.cgi?id=233916.
The fix to make the website work is to ensure that Content-Type is not cleared when going to service worker.
Covered by updated tests.
- Modules/beacon/NavigatorBeacon.cpp:
LayoutTests:
- http/wpt/service-workers/cache-control-request-expected.txt:
- http/wpt/service-workers/cache-control-request.html:
- http/wpt/service-workers/resources/cross-origin-allow-for-beacon.py: Added.
- 5:28 AM Changeset in webkit [290506] by
-
- 8 edits in trunk
[GTK][WPE] Uncouple libgbm, libdrm dependencies from ANGLE functionality
https://bugs.webkit.org/show_bug.cgi?id=237199
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-02-25
Reviewed by Chris Lord.
.:
For both GTK and WPE, unconditionally search for the libgbm and libdrm
dependencies as they will also be needed outside of ANGLE functionality.
USE_ANGLE is defined along with USE_NICOSIA, but still only if the
relevant option was enabled.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Unconditionally build with libgbm and libdrm cflags and linker flags
since these will be used outside of ANGLE functionality.
Remove USE(ANGLE) && USE(NICOSIA) guards from GBMDevice files.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- platform/graphics/gbm/GBMDevice.cpp:
- platform/graphics/gbm/GBMDevice.h:
- 5:26 AM Changeset in webkit [290505] by
-
- 16 edits4 copies3 adds in trunk
REGRESSION(r289580): [ iOS macOS ] TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=236744
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-25
Reviewed by Antti Koivisto.
Source/WebKit:
Add new tester interface for testing IPC stream features.
Before, TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory would test the feature of
"can reply stream sync message with shared memory" by using a RemoteRenderingBackend
message that did so. However, when the RemoteRenderingBackend was changed to use a
different stategy, this test stopped working without compile failure. The IPC testing
is currently done at JS level.
After, the new dedicated testing interface IPCStreamTester has dedicated message for
testing this feature. The test is moved to LayoutTests/ipc and made so that
it tests the feature in all currently testable processes WP uses (GPU, Networking, UI).
IPCTestingAPI is amended to return the all possible testable process names, so
the .html test can work even when ENABLE(GPU_PROCESS) is toggled.
The .html test also passes when !ENABLE(IPC_TESTING_API). Currently
ENABLE_IPC_TESTING_API == (ASAN_ENABLED !defined(NDEBUG)) && PLATFORM(COCOA) E.g. test tests something on Release+ASAN or Debug.
Having the test in .html also makes it possible to run the test on iOS devices.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- Shared/IPCStreamTester.cpp: Added.
(WebKit::IPCStreamTester::create):
(WebKit::IPCStreamTester::IPCStreamTester):
(WebKit::IPCStreamTester::initialize):
(WebKit::IPCStreamTester::stopListeningForIPC):
(WebKit::IPCStreamTester::syncMessageReturningSharedMemory1):
- Shared/IPCStreamTester.h: Copied from Source/WebKit/Shared/IPCTester.h.
- Shared/IPCStreamTester.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
- Shared/IPCStreamTesterIdentifier.h: Copied from Source/WebKit/Shared/IPCTester.h.
- Shared/IPCStreamTesterProxy.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
- Shared/IPCTester.cpp:
(WebKit::IPCTester::createStreamTester):
(WebKit::IPCTester::releaseStreamTester):
- Shared/IPCTester.h:
- Shared/IPCTester.messages.in:
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPC::staticValues):
(WebKit::IPCTestingAPI::processTargetFromArgument):
(WebKit::IPCTestingAPI::JSIPC::processTargets):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
LayoutTests:
- ipc/stream-sync-reply-shared-memory-expected.txt: Added.
- ipc/stream-sync-reply-shared-memory.html: Added.
- 1:50 AM Changeset in webkit [290504] by
-
- 1 copy in releases/WebKitGTK/webkit-2.35.90
WebKitGTK 2.35.90
- 1:50 AM Changeset in webkit [290503] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.35.90 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.35.90.
- 1:17 AM Changeset in webkit [290502] by
-
- 11 edits in trunk
AX: List item marker not exposed when not a direct child of a list item
https://bugs.webkit.org/show_bug.cgi?id=236777
<rdar://problem/89082485>
Reviewed by Adrian Perez de Castro.
Source/WebCore:
It can happen that the marker is not a direct child of a list item, in which case the marker is ignored and not
exposed to ATs.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::parentObjectUnignored const): In case of list marker find the marker list item.
(WebCore::AccessibilityRenderObject::markerRenderer const): Helper to return the list item marker renderer.
(WebCore::AccessibilityRenderObject::addListItemMarker): Add always the list item marker as the first child of
list items.
(WebCore::AccessibilityRenderObject::addChildren): Do not add list item marker children, they will be added to
the right parent in addListItemMarker().
- accessibility/AccessibilityRenderObject.h:
Tools:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::roleValueToString): Return AXStatic for Text role too.
LayoutTests:
Update test results.
- accessibility/gtk/list-items-always-exposed-expected.txt:
- accessibility/gtk/list-items-always-exposed.html:
- accessibility/gtk/spans-expected.txt:
- accessibility/gtk/spans.html:
- platform/gtk/TestExpectations:
- 12:51 AM Changeset in webkit [290501] by
-
- 14 edits in trunk/Source
Optimize black frame sending in MediaRecorderPrivate
https://bugs.webkit.org/show_bug.cgi?id=237027
Reviewed by Kimmo Kinnunen.
Source/WebCore:
Allow generating black frames as IOSurfaces.
Covered by existing tests.
- platform/graphics/cv/CVUtilities.h:
- platform/graphics/cv/CVUtilities.mm:
Source/WebKit:
Add support for sending black frames through SharedVideoFrame.
In that case, we only send width and height and we reconstruct a black frame on receiver side.
Make use of SharedVideoFrame in RemoteMediaRecorder.
Set ownership in SharedVideoFrame to the corresponding WebProcess.
Covered by existing tests, in particular http/wpt/mediarecorder/mute-tracks.html.
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteMediaRecorder.h:
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.h:
- 12:28 AM WebKitGTK/2.36.x edited by
- (diff)
- 12:26 AM Changeset in webkit [290500] by
-
- 2 edits in trunk
Unreviewed. [GTK] Bump version numbers
- Source/cmake/OptionsGTK.cmake:
- 12:21 AM Changeset in webkit [290499] by
-
- 5 edits in releases/WebKitGTK/webkit-2.36
Merge r290375 - [GStreamer] De-initialize GStreamer before terminating WebProcess
https://bugs.webkit.org/show_bug.cgi?id=237084
Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-23
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Allowing the leak tracer to report/log leaks. There is an issue though, if the UIProcess
exits too early, the leak tracer reporting will be interrupted potentially too early. The
workaround is to have 2 tabs open in the GTK MiniBrowser, closing the one where media
handling and leak tracing was done and keeping the second tab open.
- WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::stopRunLoop):
Tools:
- flatpak/flatpakutils.py:
(WebkitFlatpak.setup_gstbuild): Do not add extra quotes to GST_TRACERS, this is not supposed
to store paths.
- 12:19 AM Changeset in webkit [290498] by
-
- 3 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore
Merge r290341 - CachedResourceLoader::allCachedSVGImages() reparses resource URLs unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=237002
Reviewed by Darin Adler.
Store URLs in the HashMaps instead of Strings since we have URLs initially and we
need URLs eventually. This avoids having to re-parse the URL unnecessarily, which
is fairly expensive.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::notifyFinished):
- loader/cache/CachedResourceLoader.h:
- 12:16 AM Changeset in webkit [290497] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Merge r290338 - PingLoader is failing to call completion handler in error case
https://bugs.webkit.org/show_bug.cgi?id=237062
<rdar://50157253>
Reviewed by Chris Dumez.
The completion handler was not being called in the case of a PingLoad being redirected to
a non-HTTP(S) scheme.
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::willPerformHTTPRedirection):
- 12:12 AM Changeset in webkit [290496] by
-
- 2 edits in trunk/Source/WebKit
Remove dead code in GPUProcessConnection::dispatchMessage
https://bugs.webkit.org/show_bug.cgi?id=237135
Reviewed by Kimmo Kinnunen.
No change of behavior.
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::dispatchMessage):
- 12:08 AM Changeset in webkit [290495] by
-
- 43 edits3 adds4 deletes in trunk/LayoutTests
[GLIB] Update test baselines after various LFC improvements.
https://bugs.webkit.org/show_bug.cgi?id=237184
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-02-25
- platform/glib/fast/backgrounds/background-leakage-transforms-expected.txt:
- platform/glib/fast/backgrounds/border-radius-split-background-expected.txt:
- platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/001-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/002-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/003-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/004-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/006-expected.txt:
- platform/glib/fast/block/positioning/vertical-lr/002-expected.txt:
- platform/glib/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
- platform/glib/fast/replaced/vertical-lr/absolute-position-percentage-width-expected.txt:
- platform/glib/fast/replaced/vertical-lr/absolute-position-with-auto-height-and-top-and-bottom-expected.txt:
- platform/glib/fast/replaced/vertical-lr/absolute-position-with-auto-width-and-left-and-right-expected.txt:
- platform/glib/fast/table/border-collapsing/002-vertical-expected.txt:
- platform/glib/fast/writing-mode/basic-vertical-line-expected.txt:
- platform/glib/fast/writing-mode/border-image-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/border-radius-clipping-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-rl-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt:
- platform/glib/fast/writing-mode/border-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/box-shadow-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/japanese-lr-text-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Added.
- platform/gtk/fast/block/lineboxcontain/inline-box-vertical-expected.txt:
- platform/gtk/fast/html/details-writing-mode-expected.txt:
- platform/gtk/fast/html/details-writing-mode-mixed-expected.txt:
- platform/gtk/fast/lists/003-vertical-expected.txt:
- platform/gtk/fast/overflow/overflow-rtl-vertical-expected.txt:
- platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
- platform/gtk/fast/writing-mode/english-lr-text-expected.txt:
- platform/gtk/fast/writing-mode/text-orientation-basic-expected.txt:
- platform/gtk/fast/writing-mode/vertical-lr-replaced-selection-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Removed.
- platform/wpe/fast/block/lineboxcontain/inline-box-vertical-expected.txt:
- platform/wpe/fast/html/details-writing-mode-expected.txt:
- platform/wpe/fast/html/details-writing-mode-mixed-expected.txt:
- platform/wpe/fast/lists/003-vertical-expected.txt:
- platform/wpe/fast/overflow/overflow-rtl-vertical-expected.txt:
- platform/wpe/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
- platform/wpe/fast/writing-mode/english-lr-text-expected.txt:
- platform/wpe/fast/writing-mode/text-orientation-basic-expected.txt:
- platform/wpe/fast/writing-mode/vertical-lr-replaced-selection-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Removed.
- 12:05 AM WebKitGTK/2.36.x edited by
- (diff)
- 12:03 AM Changeset in webkit [290494] by
-
- 2 edits in trunk/Source/WebKit
Make RemoteVideoFrameIdentifier a regular ObjectIdentifier
https://bugs.webkit.org/show_bug.cgi?id=237136
Reviewed by Kimmo Kinnunen.
Given all RemoteVideoFrames are created in GPUProcess, we no longer need to use a ProcessQualified identifier.
Covered by existing tests.
- WebProcess/GPU/media/RemoteVideoFrameIdentifier.h: