upgrade webkit again - #48
Merged
Merged
Conversation
https://bugs.webkit.org/show_bug.cgi?id=271836 Reviewed by Carlos Garcia Campos. Remove the ArgumentCoders for SelectionData, adapt the class a bit to make it work well with the generated serializers, and add a new ArgumentCodersGtk.serialization.in for the GTK-specific serializers. * Source/WebCore/platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::typesSafeForBindings): (WebCore::Pasteboard::readOrigin): (WebCore::Pasteboard::readStringInCustomData): * Source/WebCore/platform/gtk/SelectionData.cpp: (WebCore::SelectionData::SelectionData): * Source/WebCore/platform/gtk/SelectionData.h: (WebCore::SelectionData::setImage): (WebCore::SelectionData::image const): (WebCore::SelectionData::customData const): * Source/WebKit/PlatformGTK.cmake: * Source/WebKit/Shared/gtk/ArgumentCodersGtk.cpp: (IPC::encodeImage): Deleted. (IPC::decodeImage): Deleted. (IPC::ArgumentCoder<SelectionData>::encode): Deleted. (IPC::ArgumentCoder<SelectionData>::decode): Deleted. * Source/WebKit/Shared/gtk/ArgumentCodersGtk.h: * Source/WebKit/Shared/gtk/ArgumentCodersGtk.serialization.in: Added. * Source/WebKit/UIProcess/API/gtk/DragSourceGtk3.cpp: (WebKit::DragSource::DragSource): * Source/WebKit/UIProcess/gtk/ClipboardGtk3.cpp: (WebKit::Clipboard::write): Canonical link: https://commits.webkit.org/276991@main
…constantly failing. https://bugs.webkit.org/show_bug.cgi?id=271784 rdar://125504723 Reviewed by Tim Horton. This patch addresses the following failed tests: - fast/viewport/viewport-legacy-xhtmlmp.html - fast/viewport/viewport-legacy-xhtmlmp-remove-and-add.html Both tests use the XHTML Mobile Profile (XHTML-MP) doctype, but this is not reflected in the document's resolved viewport configuration. The test output shows that the viewport's width is equivalent to the default desktop width (980) and the minimum scale is equivalent to the ratio between the XHTML mobile paramaters width (320) and the default desktop width. This patch updates the viewport configuration to XHTML-MP parameters and provides the right viewport origin type (CSSDeviceAdaption) if the web page's viewport configuration is being reset and the page has a mobile doctype, like for the failing tests. This way, We make sure the document throws away the stale viewport arguments with desktop values and instead respects the mobile profile, but only if the exisitng viewport arguments were not configured through a meta tag, since that takes priority over XHTML-MP. Lastly, we improve conformance to current smart pointer usage guidelines with drive-by refactors in WebPage::resetViewportDefaultConfiguration and in Document::updateViewportArguments. * LayoutTests/fast/viewport/viewport-legacy-xhtmlmp-remove-and-add.html: * LayoutTests/fast/viewport/viewport-legacy-xhtmlmp.html: Update viewport spec link in the test comments. * LayoutTests/platform/ios/TestExpectations: Fix test expectations. * Source/WebCore/dom/Document.cpp: (WebCore::Document::isViewportDocument const): Make the lambda function from Document::updateViewportArguments a member function so we can call it in WebPage::resetViewportDefaultConfiguration as well. Also, slight smart pointer hygiene improvements. (WebCore::Document::updateViewportArguments): * Source/WebCore/dom/Document.h: * Source/WebCore/dom/ViewportArguments.h: Rearrange the ViewportArguments::Type cases to reflect that viewport arguments obtained from a meta tag are prioritized over XHTML-MP. * Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::resetViewportDefaultConfiguration): If we have received a mobile doctype, and we have a viewport document, update the viewport configuration to reflect that of the XHTML-MP. Call WebPage::viewportPropertiesDidChange to propagate these changes. Also, slight smart pointer hygiene improvements. Canonical link: https://commits.webkit.org/276992@main
https://bugs.webkit.org/show_bug.cgi?id=272076 rdar://125837628 Reviewed by Antoine Quint. We may compute wrong starting style for elements that require style adjustments. This may have observable effects. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-adjustment-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-adjustment.html: Added. <legend> is always blockified per HTML spec. Test we don't trigger a transition based on before-adjustment value. * Source/WebCore/style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveStartingStyle const): The pseudo-element logic was reversed. Canonical link: https://commits.webkit.org/276993@main
…ts is provided https://bugs.webkit.org/show_bug.cgi?id=271760 Reviewed by Carlos Garcia Campos. The spec states that if an odd number of elements is provided within dash array, the array should be repeated to yield an even number of elements. Therefore e.g. 1,2,3 should become 1,2,3,1,2,3. * Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContextSkia::setLineDash): Canonical link: https://commits.webkit.org/276994@main
https://bugs.webkit.org/show_bug.cgi?id=271455 Reviewed by Carlos Garcia Campos. GraphicsContextSkia::drawPattern is being invoked only when the pattern repetition is expected. Hence this change removes spurious conditional repetition. * Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContextSkia::drawPattern): Canonical link: https://commits.webkit.org/276995@main
https://bugs.webkit.org/show_bug.cgi?id=271936 <rdar://125661316> Unreviewed build fix. * Source/WebKit/Configurations/WebKit.xcconfig: (OTHER_LDFLAGS_DELAY_INIT): * Tools/TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: (OTHER_LDFLAGS_DELAY_INIT): - Define empty OTHER_LDFLAGS_DELAY_INIT for tvOS, visionOS and watchOS. CoreTelephony.framework only needs to be linked on iOS/iPadOS. Canonical link: https://commits.webkit.org/276996@main
…can hold https://bugs.webkit.org/show_bug.cgi?id=271765 Reviewed by Carlos Garcia Campos. Add a soft limit to the amount of memory that BitmapTexturePool can hold. When the limit is reached, be more aggressive trying to release the stored textures. * Source/WebCore/PlatformWPE.cmake: * Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp: (WebCore::BitmapTexturePool::BitmapTexturePool): (WebCore::BitmapTexturePool::acquireTexture): (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures): (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired): (WebCore::BitmapTexturePool::enterLimitExceededModeIfNeeded): (WebCore::BitmapTexturePool::exitLimitExceededModeIfNeeded): * Source/WebCore/platform/graphics/texmap/BitmapTexturePool.h: Canonical link: https://commits.webkit.org/276997@main
https://bugs.webkit.org/show_bug.cgi?id=270912 Reviewed by Carlos Garcia Campos. * Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp: Canonical link: https://commits.webkit.org/276998@main
https://bugs.webkit.org/show_bug.cgi?id=272011 <rdar://125726764> Reviewed by Antti Koivisto. When negative letter-spacing produces negative hyphen width, we think there's some actual available space for content (subtracting a negative value) which confuses TextUtil::breakWord logic. This patch ensures we never inflate horizontal available space. * LayoutTests/fast/text/negative-hyphen-width-with-break-word-expected.txt: Added. * LayoutTests/fast/text/negative-hyphen-width-with-break-word.html: Added. * Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryHyphenationAcrossOverflowingInlineTextItems const): * Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp: (WebCore::Layout::TextUtil::breakWord): Canonical link: https://commits.webkit.org/276999@main
…ility() when inline media controls are presented https://bugs.webkit.org/show_bug.cgi?id=271972 <rdar://125502350> Reviewed by Antti Koivisto. ContentChangeObserver::isConsideredActionableContent is called when we finished updating the element (see RenderTreeUpdater::updateElementRenderer) meaning computed style (including descendants) should be all up-to-date. * Source/WebCore/dom/Node.cpp: (WebCore::Node::willRespondToMouseClickEvents const): * Source/WebCore/dom/Node.h: * Source/WebCore/page/ios/ContentChangeObserver.cpp: (WebCore::ContentChangeObserver::isConsideredActionableContent const): Canonical link: https://commits.webkit.org/277000@main
…tionEnabled) by default https://bugs.webkit.org/show_bug.cgi?id=271886 Reviewed by Rob Buis. With the implementation added in 275438@main it seems there are no remaining issues with this feature. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: Canonical link: https://commits.webkit.org/277001@main
…::updateLayoutIfDimensionsOutOfDate https://bugs.webkit.org/show_bug.cgi?id=271983 Reviewed by Antti Koivisto. 1. Fix FIXME in Document::DimensionsCheck. All is indeed Width | Height. Let's use that in the incoming OptionSet instead. 2. When parent document is dirty, let's just run updateLayout and return right away instead of going through the "can we optimize case" codepath (it saves calling updateRelevancyOfContentVisibilityElements/updateStyleIfNeeded twice) 3. Move isVertical/hasSpecifiedLogicalHeight/checkingLogicalWidth/checkingLogicalHeight inside [if (!requireFullLayout) { }] where they are actually used. 4. requireFullLayout should just read "element.renderer()->needsLayout() || is<HTMLInputElement>(element)" at this point (accessing const needsLayout() should not require a CheckedPtr) * Source/WebCore/dom/Document.cpp: (WebCore::Document::updateLayoutIfDimensionsOutOfDate): * Source/WebCore/dom/Document.h: (WebCore::Document::updateLayoutIgnorePendingStylesheets): (WebCore::Document::updateLayoutIfDimensionsOutOfDate): Canonical link: https://commits.webkit.org/277002@main
https://bugs.webkit.org/show_bug.cgi?id=272086 Reviewed by Chris Dumez. * Source/WebCore/dom/FragmentDirectiveGenerator.h: The m_isValid private field is unused (introduced in 274919@main). Canonical link: https://commits.webkit.org/277003@main
…within a visibility:hidden container https://bugs.webkit.org/show_bug.cgi?id=271995 rdar://problem/125738704 Reviewed by Andres Gonzalez. When `visibility:visible` is placed within a `visibility:hidden` container, the elements within are rendered. But currently, `AccessibilityNodeObject::textUnderElement` stops immediately when encountering `visibility:hidden`, meaning we can miss this nested `visibility:visible` text. With this patch, when encountering a hidden style, we still search the subtree for text that isn't hidden. This patch also fixes a bug where we never updated the cached accessibility text of controls associated with a label via the for attribute when the for attribute of that label changes. * LayoutTests/accessibility/button-hidden-and-unhidden-text-expected.txt: Added. * LayoutTests/accessibility/button-hidden-and-unhidden-text.html: Added. * LayoutTests/accessibility/hidden-label-expected.txt: Added. * LayoutTests/accessibility/hidden-label.html: Added. * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_hidden_not_referenced-expected.txt: * LayoutTests/platform/glib/accessibility/button-hidden-and-unhidden-text-expected.txt: Added. * LayoutTests/platform/glib/accessibility/hidden-label-expected.txt: Added. * LayoutTests/platform/ios/TestExpectations: * LayoutTests/platform/ios/accessibility/hidden-label-expected.txt: Added. * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::TextUnderElementMode::isHidden): * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange): (WebCore::isDOMHidden): (WebCore::AXObjectCache::addLabelForRelation): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityMathMLElement.cpp: (WebCore::AccessibilityMathMLElement::textUnderElement const): * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::textUnderElement const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isDOMHidden const): * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::textUnderElement const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::removeNode): Canonical link: https://commits.webkit.org/277004@main
https://bugs.webkit.org/show_bug.cgi?id=272035 rdar://125618287 Reviewed by Mike Wyrzykowski. The pointer rewriter needs to delete phony assignments when the right-hand side is a pointer, but it fails to visit the assignment when it's not a pointer. I also fixed a compilation error in wgslc due to some recent refactoring to use std::span. * Source/WebGPU/WGSL/PointerRewriter.cpp: (WGSL::PointerRewriter::visit): * Source/WebGPU/WGSL/tests/valid/array-length.wgsl: * Source/WebGPU/WGSL/wgslc.cpp: (runWGSL): Canonical link: https://commits.webkit.org/277005@main
…curityPolicy/block-all-mixed-content/insecure-script-in-iframe.html is a consistent failure https://bugs.webkit.org/show_bug.cgi?id=271892 rdar://125615616 Reviewed by Chris Dumez. The HTML script tag triggers first a preload then an actual load. Both are checked for CSP and in WK1, both will expose a console message, contrary to WK2 where only one console message appears. Add a WK1 specific test expectation to handle this case. * LayoutTests/platform/mac-wk1/TestExpectations: * LayoutTests/platform/mac-wk1/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt: Added. Canonical link: https://commits.webkit.org/277006@main
…edFormListedElement::updateValidity https://bugs.webkit.org/show_bug.cgi?id=272044 rdar://117727866 Reviewed by Ryosuke Niwa. It speculatively fixes a bug that RadioButtonGroup::m_members may contain a nullptr WeakRef. * Source/WebCore/dom/RadioButtonGroups.cpp: (WebCore::RadioButtonGroup::isEmpty const): (WebCore::RadioButtonGroup::remove): (WebCore::RadioButtonGroup::setNeedsStyleRecalcForAllButtons): (WebCore::RadioButtonGroup::updateValidityForAllButtons): Canonical link: https://commits.webkit.org/277007@main
https://bugs.webkit.org/show_bug.cgi?id=272054 rdar://125792901 (Github api should not assume the current user as the fork owner) Reviewed by Jonathan Bedard. Canonical link: https://commits.webkit.org/277008@main
…:rendererForLayoutBox https://bugs.webkit.org/show_bug.cgi?id=271908 <rdar://125580307> Reviewed by Antti Koivisto. 1. IFC produces display boxes. BoxTree contains all the layout boxes as well as a map to find associated renders. 2. Content mutation destroys a renderer - IFC invalidates the relevant lines and detaches the layout box However we keep the layout box around until after the next layout when the associated display boxes get invalidated as well. 3. While display box should be self contained, we consult the renderer for selection state (not on the display box). -> RELEASE_ASSERT. This is a temporary fix until after we either keep the associated renderer alive (like we do with the layout box) or transfer all states to display box so that we don't need to talk to the renderer anymore). * LayoutTests/TestExpectations: * LayoutTests/fast/text/remove-renderer-and-select-crash-expected.txt: Added. * LayoutTests/fast/text/remove-renderer-and-select-crash.html: Added. * Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp: (WebCore::LayoutIntegration::BoxTree::hasRendererForLayoutBox const): * Source/WebCore/layout/integration/LayoutIntegrationBoxTree.h: * Source/WebCore/layout/integration/inline/InlineIteratorBox.cpp: (WebCore::InlineIterator::Box::selectionState const): * Source/WebCore/layout/integration/inline/InlineIteratorBox.h: (WebCore::InlineIterator::Box::hasRenderer const): * Source/WebCore/layout/integration/inline/InlineIteratorBoxLegacyPath.h: (WebCore::InlineIterator::BoxLegacyPath::hasRenderer const): * Source/WebCore/layout/integration/inline/InlineIteratorBoxModernPath.h: (WebCore::InlineIterator::BoxModernPath::hasRenderer const): * Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContent.cpp: (WebCore::LayoutIntegration::InlineContent::hasRendererForLayoutBox const): * Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContent.h: * Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::hasRendererForLayoutBox const): * Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h: Canonical link: https://commits.webkit.org/277009@main
https://bugs.webkit.org/show_bug.cgi?id=251420 rdar://104853422 Reviewed by Yusuke Suzuki. Added code to check the type of filesystem object the JSC shell is trying to load via stat() and fstat(). We return an error message when thrying to open some non-file object. * Source/JavaScriptCore/jsc.cpp: (fillBufferWithContentsOfFile): Canonical link: https://commits.webkit.org/277010@main
https://bugs.webkit.org/show_bug.cgi?id=272034 rdar://125787240 Unreviewed follow-up fix. We were removing the "simulator" flag in our configurations, because configurations which are not simulator leave this flag undefined instead of 'false'. * Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/configuration.js: (Configuration.prototype.toParams): Strip architecture if it matches the default. * Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/dashboard.js: (Dashboard.prototype.reload): Canonical link: https://commits.webkit.org/277011@main
…or if an issue occurred. https://bugs.webkit.org/show_bug.cgi?id=271998 rdar://124625910 Reviewed by Timothy Hatcher. We should notify apps if there was an issue in deleting or calculating extension storage. If an error occurs, apps can decide to show an alert to their users. We add a test for this unfortunately because I tested manually by forcing an error (e.g. result = makeUnexpected("error")) and I verified _WKWebExtensionDataRecord.errors was populated in Safari. * Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm: (-[_WKWebExtensionSQLiteStore _deleteDatabase]): * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.h: (NS_ERROR_ENUM): * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.mm: (WebKit::createDataRecordError): * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecordInternal.h: * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm: (WebKit::WebExtensionController::getDataRecords): (WebKit::WebExtensionController::getDataRecord): (WebKit::WebExtensionController::removeData): (WebKit::WebExtensionController::calculateStorageSize): (WebKit::WebExtensionController::removeStorage): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDataRecordCocoa.mm: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecordInternal.h. (WebKit::WebExtensionDataRecord::setError): Sets an error on the corresponding _WKWebExtensionDataRecord. * Source/WebKit/UIProcess/Extensions/Cocoa/_WKWebExtensionStorageSQLiteStore.mm: (-[_WKWebExtensionStorageSQLiteStore getValuesForKeys:completionHandler:]): (-[_WKWebExtensionStorageSQLiteStore getStorageSizeForKeys:completionHandler:]): (-[_WKWebExtensionStorageSQLiteStore getStorageSizeForAllKeysIncludingKeyedData:withCompletionHandler:]): Add additional logging when an error occurs. * Source/WebKit/UIProcess/Extensions/WebExtensionController.h: * Source/WebKit/UIProcess/Extensions/WebExtensionDataRecord.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/277012@main
rdar://125828604 https://bugs.webkit.org/show_bug.cgi?id=272073 Reviewed by Chris Dumez. Enable Web codecs, media recorder and speech recognition compilation flags on tvOS. Update MediaRecorder code to use more softlinking. * Source/WTF/wtf/PlatformEnableCocoa.h: * Source/WTF/wtf/PlatformHave.h: * Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h: * Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm: (WebCore::AudioSampleBufferCompressor::AudioSampleBufferCompressor): * Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm: * Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderProvider.cpp: (WebKit::MediaRecorderProvider::createMediaRecorderPrivate): Canonical link: https://commits.webkit.org/277013@main
https://bugs.webkit.org/show_bug.cgi?id=272075 rdar://125791668 Reviewed by Chris Dumez. Test: WKApplicationManifest.EmptyJSONData WKApplicationManifest.JSONDataEncoding * Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.h: * Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm: (-[_WKApplicationManifest initWithJSONData:manifestURL:documentURL:]): * Tools/TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm: (TestWebKitAPI::TEST(WKApplicationManifest, EmptyJSONData)): (TestWebKitAPI::TEST(WKApplicationManifest, JSONDataEncoding)): Canonical link: https://commits.webkit.org/277014@main
…ject fails to render scrollbars https://bugs.webkit.org/show_bug.cgi?id=261227 rdar://115075206 Reviewed by Simon Fraser. Keep NSScrollerImps in the web process for scrollers inside svg foreignObject as they don't follow the normal code path for creating scrollbars in the UI process. * Source/WebCore/page/LocalFrameView.cpp: (WebCore::LocalFrameView::usesOverlayScrollbars const): * Source/WebCore/page/LocalFrameView.h: * Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState): * Source/WebCore/platform/mac/NSScrollerImpDetails.h: * Source/WebCore/platform/mac/NSScrollerImpDetails.mm: (WebCore::ScrollerStyle::usesOverlayScrollbars): * Source/WebCore/rendering/RenderLayer.cpp: (WebCore::RenderLayer::registerScrollbarsForScrollableAreaInSVGForeignObject): (WebCore::RenderLayer::updateAncestorDependentState): * Source/WebCore/rendering/RenderLayer.h: (WebCore::RenderLayer::isInsideSVGForeignObject const): * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollbarsController.mm: (WebKit::RemoteScrollbarsController::shouldRegisterScrollbars const): Canonical link: https://commits.webkit.org/277015@main
…html under gtk since it is a glib-only test. https://bugs.webkit.org/show_bug.cgi?id=271980 <rdar://problem/125730582> Unreviewed test gardening. Followup to https://bugs.webkit.org/show_bug.cgi?id=271844. * LayoutTests/accessibility/combobox/combobox-collapsed-selection-changed-expected.txt: Removed. * LayoutTests/accessibility/combobox/gtk/combobox-collapsed-selection-changed-expected.txt: Renamed from LayoutTests/platform/glib/accessibility/combobox/combobox-collapsed-selection-changed-expected.txt. * LayoutTests/accessibility/combobox/gtk/combobox-collapsed-selection-changed.html: Renamed from LayoutTests/accessibility/combobox/combobox-collapsed-selection-changed.html. * LayoutTests/platform/mac/TestExpectations: Canonical link: https://commits.webkit.org/277016@main
https://bugs.webkit.org/show_bug.cgi?id=272071 Reviewed by Brady Eidson. * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPU.serialization.in: * Source/WebCore/platform/PlatformMediaError.h: * Source/WebCore/svg/SVGPreserveAspectRatioValue.h: * Source/WebKit/GPUProcess/graphics/PathSegment.serialization.in: * Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in: * Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.messages.in: * Source/WebKit/Scripts/webkit/messages.py: (headers_for_type): * Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in: * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: * Source/WebKit/Shared/cf/CoreIPCCGColorSpace.serialization.in: * Source/WebKit/UIProcess/WebProcessProxy.messages.in: * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in: * Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemoteMessageReceiver.messages.in: * Source/WebKit/WebProcess/WebPage/WebPage.messages.in: * Source/WebKit/WebProcess/WebProcess.messages.in: * Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: (SerializedTypeInfo)): Canonical link: https://commits.webkit.org/277017@main
…delegate.html with --site-isolation https://bugs.webkit.org/show_bug.cgi?id=272092 Reviewed by Per Arne Vollan. This fixes two issues. The first is that the test calls window.open with _top as the second parameter, and when running with --site-isolation the top frame is a RemoteFrame, so I moved a few dynamicDowncast<LocalFrame> calls from LocalDOMWindow::open to only be where we really need a LocalFrame. The second issue is that we were calling WebProcessProxy::fontdMachExtensionHandles multiple times for the same process, which caused an assertion and is unnecessary. Fix that by only calling it once per process, since it is a process-global thing. This makes the test pass except for another change needed to printNavigationErrorMessage which I'll do in a separate PR because that will need to remove the frame URL of the frame we attempted to navigate, which is unavailable and should not be available if it is a RemoteFrame. I'll do that in a separate PR because it'll require updating 64 test expectations files. * Source/WebCore/page/LocalDOMWindow.cpp: (WebCore::LocalDOMWindow::open): * Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry): * Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::fontdMachExtensionHandles): (WebKit::WebProcessProxy::fontdMachExtensionHandles const): Deleted. * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): * Source/WebKit/UIProcess/WebProcessProxy.h: Canonical link: https://commits.webkit.org/277018@main
…g imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-video.html to constantly crash https://bugs.webkit.org/show_bug.cgi?id=262157 Reviewed by Darin Adler. Normally, when we do `RenderElement::layout()`, we first lay out its children and then clear the `needsLayout` flag. When assertions are enabled, in `RenderObject::clearNeedsLayout()` we check that block-positioned children don't need layout. But if the element is skipped for layout, we call `RenderElement::clearNeedsLayoutForSkippedContent()` instead. As the first step, this method calls `RenderObject::clearNeedsLayout()` on every descendent. Note that it won't lay out the descendant's children but will still check that the block-positioned children of the descendent don't need layout, which might be false and cause the assertion to fail. This patch implements `descendantsOfTypePostOrder<T>()` function which is then used to guarantee that `RenderElement`'s needs-layout flag is always cleared after its children. * LayoutTests/platform/gtk/TestExpectations: * LayoutTests/platform/wk2/TestExpectations: * Source/WebCore/rendering/RenderDescendantIterator.h: (WebCore::RenderDescendantPostOrderIterator<T>::RenderDescendantPostOrderIterator): (WebCore::RenderDescendantPostOrderIterator<T>::operator): (WebCore::RenderDescendantPostOrderConstIterator<T>::RenderDescendantPostOrderConstIterator): (WebCore::RenderDescendantPostOrderConstIterator<T>::operator): (WebCore::RenderDescendantPostOrderIteratorAdapter<T>::RenderDescendantPostOrderIteratorAdapter): (WebCore::RenderDescendantPostOrderIteratorAdapter<T>::begin): (WebCore::RenderDescendantPostOrderIteratorAdapter<T>::end): (WebCore::RenderDescendantPostOrderIteratorAdapter<T>::at): (WebCore::RenderDescendantPostOrderConstIteratorAdapter<T>::RenderDescendantPostOrderConstIteratorAdapter): (WebCore::RenderDescendantPostOrderConstIteratorAdapter<T>::begin const): (WebCore::RenderDescendantPostOrderConstIteratorAdapter<T>::end const): (WebCore::RenderDescendantPostOrderConstIteratorAdapter<T>::at const): (WebCore::descendantsOfTypePostOrder): * Source/WebCore/rendering/RenderElement.cpp: (WebCore::RenderElement::clearNeedsLayoutForSkippedContent): * Source/WebCore/rendering/RenderIterator.h: (WebCore::RenderPostOrderIterator::operator bool const): (WebCore::RenderPostOrderConstIterator::operator bool const): (WebCore::RenderObjectPostOrderTraversal::next): (WebCore::RenderPostOrderTraversal::firstWithin): (WebCore::RenderPostOrderTraversal::next): (WebCore::RenderPostOrderIterator<T>::RenderPostOrderIterator): (WebCore::RenderPostOrderIterator<T>::traverseNext): (WebCore::RenderPostOrderIterator<T>::operator): (WebCore::= const): (WebCore::RenderPostOrderConstIterator<T>::RenderPostOrderConstIterator): (WebCore::RenderPostOrderConstIterator<T>::traverseNext): (WebCore::RenderPostOrderConstIterator<T>::operator const): (WebCore:: const): Canonical link: https://commits.webkit.org/277019@main
https://bugs.webkit.org/show_bug.cgi?id=271993 rdar://125737157 Reviewed by Ryosuke Niwa. This will enable zombie-mode CheckedPtr. It's also just good performance hygiene. The two major changes in this patch are: (1) Declare your type when you inherit from CanMakeCheckedPtr, like we do for RefCounted and CanMakeWeakPtr. We use this to do our FastMalloc static_assert. (In future, I also plan to use this type to share our implementation with other lifetime schemes.) Fixed any classes that violated the FastMalloc static_assert. (2) Moved CanMakeCheckedPtr down from abstract base classes into concrete subclasses. It's not possible for abstract base classes to require or demonstrate that a class uses FastMalloc, or has any other concrete allocation or destruction behavior. Abstract base classes that require a CheckedPtr interface now make that part of their abstract API. (In future we need to do this for CanMakeWeakPtr too. We've already done it for RefCounted.) It's a bit more obvious now which classes have overlapping / wasteful lifetime implementations. We can clean that up soon. * Source/WTF/wtf/CheckedRef.h: (WTF::CanMakeCheckedPtrBase::~CanMakeCheckedPtrBase): Moved the FastMalloc assertion here because CheckedPtr needs to support abstract base classes that don't know how they're allocated. This is logically clearer: CheckedPtr just invokes your checking API and doesn't care how you check; only CanMakeCheckedPtr will depend on FastMalloc. * Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h: (2) * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/animation/DocumentTimelinesController.h: * Source/WebCore/bindings/js/ScriptController.h: * Source/WebCore/dom/CustomElementDefaultARIA.h: * Source/WebCore/dom/CustomElementReactionQueue.h: * Source/WebCore/dom/DocumentMarkerController.h: * Source/WebCore/dom/EventLoop.h: * Source/WebCore/dom/ExtensionStyleSheets.h: * Source/WebCore/dom/FullscreenManager.h: * Source/WebCore/dom/IdTargetObserver.h: * Source/WebCore/dom/IdTargetObserverRegistry.h: (1) * Source/WebCore/dom/PendingScriptClient.h: (2) * Source/WebCore/dom/RejectedPromiseTracker.h: (1) * Source/WebCore/dom/ScriptRunner.h: (2) * Source/WebCore/dom/VisitedLinkState.h: * Source/WebCore/dom/messageports/MessagePortChannelRegistry.h: * Source/WebCore/dom/messageports/WorkerMessagePortChannelProvider.h: * Source/WebCore/editing/Editor.h: * Source/WebCore/editing/FrameSelection.h: * Source/WebCore/editing/TextManipulationController.h: * Source/WebCore/history/BackForwardController.h: * Source/WebCore/history/CachedPage.h: (1) * Source/WebCore/html/parser/HTMLDocumentParser.h: (2) * Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.h: * Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h: * Source/WebCore/layout/layouttree/LayoutBox.h: (WebCore::Layout::Box::incrementPtrCount const): Deleted. (WebCore::Layout::Box::decrementPtrCount const): Deleted. * Source/WebCore/loader/FrameLoader.cpp: * Source/WebCore/loader/FrameLoader.h: * Source/WebCore/loader/HistoryController.h: * Source/WebCore/loader/NavigationScheduler.h: * Source/WebCore/loader/ProgressTracker.h: * Source/WebCore/loader/ThreadableLoaderClient.h: * Source/WebCore/page/AlternativeTextClient.h: * Source/WebCore/page/DeviceController.h: * Source/WebCore/page/DiagnosticLoggingClient.h: * Source/WebCore/page/EditorClient.h: * Source/WebCore/page/ElementTargetingController.h: * Source/WebCore/page/EventHandler.h: * Source/WebCore/page/FocusController.h: * Source/WebCore/page/LocalFrameViewLayoutContext.h: * Source/WebCore/page/PageConsoleClient.h: * Source/WebCore/page/csp/ContentSecurityPolicy.h: * Source/WebCore/page/scrolling/ScrollingStateTree.h: * Source/WebCore/platform/KeyboardScrollingAnimator.h: * Source/WebCore/platform/OrientationNotifier.h: * Source/WebCore/platform/ScrollView.h: * Source/WebCore/platform/ScrollableArea.cpp: * Source/WebCore/platform/ScrollableArea.h: (1) * Source/WebCore/platform/cocoa/PlaybackSessionModel.h: * Source/WebCore/platform/cocoa/VideoPresentationModel.h: * Source/WebCore/platform/cocoa/WebAVPlayerLayer.mm: (2) * Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.h: (1) * Source/WebCore/platform/graphics/FontCascade.cpp: (WebCore::FontCascade::FontCascade): (WebCore::GlyphToPathTranslator::containsMorePaths): (WebCore::GlyphToPathTranslator::path): (WebCore::GlyphToPathTranslator::extents): (WebCore::GlyphToPathTranslator::advance): * Source/WebCore/platform/graphics/FontCascade.h: * Source/WebCore/platform/graphics/GlyphBuffer.h: Removed the recently added ability to use CheckedPtr<GlyphBuffer>. GlyphBuffer is stack-allocated so it can't participate in a zombie-mode lifetime scheme. We'll have to solve GlyphBuffer another way later. (Chris said he's OK with this.) * Source/WebCore/platform/graphics/TextRun.cpp: * Source/WebCore/platform/graphics/TextRun.h: * Source/WebCore/platform/graphics/TiledBacking.h: (1) * Source/WebCore/platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::commitCurrentFontRange): See GlyphBuffer.h * Source/WebCore/platform/graphics/ca/LayerPool.h: (1) * Source/WebCore/platform/graphics/cocoa/NullPlaybackSessionInterface.h: * Source/WebCore/platform/graphics/cocoa/NullVideoPresentationInterface.h: * Source/WebCore/platform/ios/PlaybackSessionInterfaceIOS.h: * Source/WebCore/platform/ios/VideoPresentationInterfaceIOS.h: * Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h: * Source/WebCore/platform/mac/VideoPresentationInterfaceMac.h: * Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h: * Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.h: * Source/WebCore/platform/mediarecorder/MediaRecorderPrivateMock.h: * Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.h: * Source/WebCore/platform/mediastream/RealtimeMediaSource.h: * Source/WebCore/platform/mediastream/mac/MediaStreamTrackAudioSourceProviderCocoa.h: * Source/WebCore/platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.h: (2) * Source/WebCore/platform/network/curl/CurlMultipartHandleClient.h: * Source/WebCore/platform/sql/SQLiteDatabase.h: * Source/WebCore/rendering/LegacyRootInlineBox.cpp: * Source/WebCore/rendering/LegacyRootInlineBox.h: * Source/WebCore/rendering/MarkedText.h: * Source/WebCore/rendering/RegionContext.h: * Source/WebCore/rendering/RenderImageResource.h: * Source/WebCore/rendering/RenderLayer.h: * Source/WebCore/rendering/RenderObject.cpp: * Source/WebCore/rendering/RenderObject.h: * Source/WebCore/style/StyleScope.h: * Source/WebCore/style/StyleUpdate.h: * Source/WebCore/svg/SVGDocumentExtensions.h: (1) * Source/WebCore/testing/Internals.h: (2) * Source/WebCore/workers/WorkerOrWorkletScriptController.h: * Source/WebCore/workers/service/server/SWServer.h: * Source/WebCore/workers/service/server/SWServerJobQueue.h: * Source/WebCore/workers/service/server/SWServerToContextConnection.h: (1) * Source/WebCore/xml/parser/XMLDocumentParser.h: * Source/WebKit/NetworkProcess/Downloads/DownloadManager.h: * Source/WebKit/NetworkProcess/NetworkProcess.h: (2) * Source/WebKit/NetworkProcess/NetworkSession.h: * Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h: * Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h: * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h: * Source/WebKit/Shared/WTFArgumentCoders.serialization.in: * Source/WebKit/Shared/WebPreferencesStore.h: (WebKit::WebPreferencesStore::isolatedCopy const): (WebKit::WebPreferencesStore::isolatedCopy): * Source/WebKit/Shared/WebPreferencesStore.serialization.in: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Cocoa/ExtensionCapabilityGranter.h: (1) * Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: (2) * Source/WebKit/UIProcess/DisplayLink.h: * Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.h: * Source/WebKit/UIProcess/ProcessThrottler.cpp: * Source/WebKit/UIProcess/SuspendedPageProxy.h: * Source/WebKit/UIProcess/WebBackForwardCache.h: * Source/WebKit/UIProcess/WebProcessCache.h: (1) * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess): WebPreferencesStore& can't use zombie-mode CheckedPtr because it's an interior object pointer. For now, we can accuratrely represent lifetime by explicitly ref'ing its owner. Later, we should just change it to be refcounted. * Source/WebKit/UIProcess/mac/WebViewImpl.h: * Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: * Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h: * Source/WebKit/WebProcess/cocoa/VideoPresentationManager.h: (2) * Source/WebKitLegacy/Storage/StorageThread.h: * Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.h: * Tools/TestWebKitAPI/Tests/WTF/CheckedPtr.cpp: * Tools/TestWebKitAPI/Tests/WTF/CheckedRef.cpp: * Tools/TestWebKitAPI/Tests/WTF/Hasher.cpp: (TestWebKitAPI::TEST(WTF, Hasher_CheckedPtr)): (1) Canonical link: https://commits.webkit.org/277020@main
…anaged domains https://bugs.webkit.org/show_bug.cgi?id=265390 <rdar://118906173> Reviewed by John Wilander. This patch checks MDM to see if the current application is one of a small set of apps specified by the organization administrator. If so, the app will be treated the same way as Safari with respect to managed domains (see Bug 246290). * Source/WebCore/PAL/pal/spi/ios/ManagedConfigurationSPI.h: Add missing forward declaration. * Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::initializeManagedDomains): Ask MCProfileConnection for the list of allowed bundleIDs to include in the relaxed handling. Canonical link: https://commits.webkit.org/277090@main
https://bugs.webkit.org/show_bug.cgi?id=272122 rdar://125878087 Reviewed by Yusuke Suzuki. CallWebAssemblyFunction should mark GC'd arguments in case they don't get kept alive until they make it to the stack or a register. * Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): Canonical link: https://commits.webkit.org/277091@main
rdar://125934399 https://bugs.webkit.org/show_bug.cgi?id=272191 Reviewed by Tim Horton. Add amarchenko to contributors.json. * metadata/contributors.json: Canonical link: https://commits.webkit.org/277092@main
https://bugs.webkit.org/show_bug.cgi?id=272171 rdar://125919093 Reviewed by Mark Lam. This patch uses sentinel page approach for primitive Gigacage and donate the rest of the memory to primitive Gigacage. * Source/bmalloc/bmalloc/Gigacage.cpp: (Gigacage::ensureGigacage): (Gigacage::bmalloc::runwaySize): Deleted. * Source/bmalloc/bmalloc/Gigacage.h: Canonical link: https://commits.webkit.org/277093@main
…3@main https://bugs.webkit.org/show_bug.cgi?id=272210 rdar://125949078 Unreviewed. * Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: (SerializedTypeInfo)): Canonical link: https://commits.webkit.org/277094@main
…olicy in WorkerOrWorkletThread::destroyWorkerGlobalScope https://bugs.webkit.org/show_bug.cgi?id=272193 <rdar://122857425> Reviewed by Chris Dumez. Fix the bug that WorkerGlobalScope::prepareForDestruction doesn't remove WorkerGlobalScopeTrustedTypes because it uses a different ASCIILiteral than the one used in the actual supplement. * Source/WebCore/dom/WindowOrWorkerGlobalScopeTrustedTypes.cpp: (WebCore::WorkerGlobalScopeTrustedTypes::supplementName): (WebCore::WindowOrWorkerGlobalScopeTrustedTypes::workerGlobalSupplementName): * Source/WebCore/dom/WindowOrWorkerGlobalScopeTrustedTypes.h: * Source/WebCore/workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::prepareForDestruction): Canonical link: https://commits.webkit.org/277095@main
… arguments by reference rather than pointer https://bugs.webkit.org/show_bug.cgi?id=272063 rdar://problem/125813277 Reviewed by Andres Gonzalez. Doing this saves null checks on hot codepaths and makes intent more clear, as these functions or ones downstream from them would either ASSERT non-null, or directly dereference the pointer without null checking. * Source/WebCore/accessibility/AXImage.cpp: (WebCore::AXImage::AXImage): (WebCore::AXImage::create): * Source/WebCore/accessibility/AXImage.h: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::toSimpleImage): (WebCore::isAccessibilityList): (WebCore::isAccessibilityTree): (WebCore::isAccessibilityTreeItem): (WebCore::isAccessibilityARIATable): (WebCore::isAccessibilityARIAGridRow): (WebCore::isAccessibilityARIAGridCell): (WebCore::AXObjectCache::createObjectFromRenderer): (WebCore::createFromNode): (WebCore::AXObjectCache::getOrCreate): (WebCore::isSimpleImage): Deleted. * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp: (WebCore::AccessibilityARIAGridCell::AccessibilityARIAGridCell): (WebCore::AccessibilityARIAGridCell::create): * Source/WebCore/accessibility/AccessibilityARIAGridCell.h: * Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp: (WebCore::AccessibilityARIAGridRow::AccessibilityARIAGridRow): (WebCore::AccessibilityARIAGridRow::create): * Source/WebCore/accessibility/AccessibilityARIAGridRow.h: * Source/WebCore/accessibility/AccessibilityARIATable.cpp: (WebCore::AccessibilityARIATable::AccessibilityARIATable): (WebCore::AccessibilityARIATable::create): * Source/WebCore/accessibility/AccessibilityARIATable.h: * Source/WebCore/accessibility/AccessibilityAttachment.cpp: (WebCore::AccessibilityAttachment::AccessibilityAttachment): (WebCore::AccessibilityAttachment::create): * Source/WebCore/accessibility/AccessibilityAttachment.h: * Source/WebCore/accessibility/AccessibilityLabel.cpp: (WebCore::AccessibilityLabel::AccessibilityLabel): (WebCore::AccessibilityLabel::create): * Source/WebCore/accessibility/AccessibilityLabel.h: * Source/WebCore/accessibility/AccessibilityList.cpp: (WebCore::AccessibilityList::AccessibilityList): (WebCore::AccessibilityList::create): * Source/WebCore/accessibility/AccessibilityList.h: * Source/WebCore/accessibility/AccessibilityListBox.cpp: (WebCore::AccessibilityListBox::AccessibilityListBox): (WebCore::AccessibilityListBox::create): * Source/WebCore/accessibility/AccessibilityListBox.h: * Source/WebCore/accessibility/AccessibilityMathMLElement.cpp: (WebCore::AccessibilityMathMLElement::AccessibilityMathMLElement): (WebCore::AccessibilityMathMLElement::create): * Source/WebCore/accessibility/AccessibilityMathMLElement.h: * Source/WebCore/accessibility/AccessibilityMediaObject.cpp: (WebCore::AccessibilityMediaObject::AccessibilityMediaObject): (WebCore::AccessibilityMediaObject::create): (WebCore::AccessibilityMediaObject::mediaSeek): (WebCore::AccessibilityMediaObject::increment): (WebCore::AccessibilityMediaObject::decrement): * Source/WebCore/accessibility/AccessibilityMediaObject.h: * Source/WebCore/accessibility/AccessibilityMenuList.cpp: (WebCore::AccessibilityMenuList::AccessibilityMenuList): (WebCore::AccessibilityMenuList::create): * Source/WebCore/accessibility/AccessibilityMenuList.h: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::textAsLabelFor const): (WebCore::AccessibilityNodeObject::textForLabelElements const): (WebCore::AccessibilityNodeObject::alternativeText const): (WebCore::AccessibilityNodeObject::textUnderElement const): (WebCore::accessibleNameForNode): (WebCore::AccessibilityNodeObject::accessibilityDescriptionForChildren const): (WebCore::AccessibilityNodeObject::descriptionForElements const): * Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp: (WebCore::AccessibilityProgressIndicator::AccessibilityProgressIndicator): (WebCore::AccessibilityProgressIndicator::create): * Source/WebCore/accessibility/AccessibilityProgressIndicator.h: * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::AccessibilityRenderObject): (WebCore::AccessibilityRenderObject::create): * Source/WebCore/accessibility/AccessibilityRenderObject.h: * Source/WebCore/accessibility/AccessibilitySVGElement.cpp: (WebCore::AccessibilitySVGElement::AccessibilitySVGElement): (WebCore::AccessibilitySVGElement::create): * Source/WebCore/accessibility/AccessibilitySVGElement.h: * Source/WebCore/accessibility/AccessibilitySVGRoot.cpp: (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): * Source/WebCore/accessibility/AccessibilitySVGRoot.h: * Source/WebCore/accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::AccessibilitySlider): (WebCore::AccessibilitySlider::create): * Source/WebCore/accessibility/AccessibilitySlider.h: * Source/WebCore/accessibility/AccessibilityTable.cpp: (WebCore::AccessibilityTable::AccessibilityTable): (WebCore::AccessibilityTable::create): * Source/WebCore/accessibility/AccessibilityTable.h: * Source/WebCore/accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::AccessibilityTableCell): (WebCore::AccessibilityTableCell::create): * Source/WebCore/accessibility/AccessibilityTableCell.h: * Source/WebCore/accessibility/AccessibilityTableRow.cpp: (WebCore::AccessibilityTableRow::AccessibilityTableRow): (WebCore::AccessibilityTableRow::create): * Source/WebCore/accessibility/AccessibilityTableRow.h: * Source/WebCore/accessibility/AccessibilityTree.cpp: (WebCore::AccessibilityTree::AccessibilityTree): (WebCore::AccessibilityTree::create): * Source/WebCore/accessibility/AccessibilityTree.h: * Source/WebCore/accessibility/AccessibilityTreeItem.cpp: (WebCore::AccessibilityTreeItem::AccessibilityTreeItem): (WebCore::AccessibilityTreeItem::create): * Source/WebCore/accessibility/AccessibilityTreeItem.h: Canonical link: https://commits.webkit.org/277096@main
https://bugs.webkit.org/show_bug.cgi?id=272131 rdar://125883824 Reviewed by Alexey Shvayka. For the pattern like, `{ ...object }` we can use super fast object cloning since there are no properties. After checking object is very specifc conditioned FinalObject, we can just grab a structure, copy butterfly, and create a new object with them. ToT Patched clone-objects-via-spread 96.1927+-0.3467 ^ 15.9928+-0.1021 ^ definitely 6.0147x faster * JSTests/microbenchmarks/clone-objects-via-spread.js: Added. (test): * JSTests/stress/clone-objects-via-spread.js: Added. (test): * Source/JavaScriptCore/builtins/BuiltinNames.h: * Source/JavaScriptCore/bytecode/LinkTimeConstant.h: * Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp: (JSC::ObjectLiteralNode::emitBytecode): * Source/JavaScriptCore/parser/Nodes.h: * Source/JavaScriptCore/runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): * Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): * Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.h: * Source/JavaScriptCore/runtime/ObjectConstructorInlines.h: (JSC::checkStrucureForClone): (JSC::objectCloneFast): (JSC::tryCreateObjectViaCloning): Canonical link: https://commits.webkit.org/277097@main
…ot valid JSON https://bugs.webkit.org/show_bug.cgi?id=272161 rdar://125913241 Reviewed by Chris Dumez. API Test: WKApplicationManifest.InvalidJSONData * Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.cpp: (WebCore::ApplicationManifestParser::parse): (WebCore::ApplicationManifestParser::parseWithValidation): (WebCore::ApplicationManifestParser::createJSONObject): (WebCore::ApplicationManifestParser::parseManifest): * Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.h: * Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm: (-[_WKApplicationManifest initWithJSONData:manifestURL:documentURL:]): * Tools/TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm: (TestWebKitAPI::TEST(WKApplicationManifest, InvalidJSONData)): Canonical link: https://commits.webkit.org/277098@main
https://bugs.webkit.org/show_bug.cgi?id=272207 Reviewed by Chris Dumez and Simon Fraser. Added StringView::show which calls toString().show() for debugging purposes. * Source/WTF/wtf/text/StringView.cpp: (WTF::StringView::show const): * Source/WTF/wtf/text/StringView.h: Canonical link: https://commits.webkit.org/277099@main
…henticator.cpp https://bugs.webkit.org/show_bug.cgi?id=272198 Reviewed by David Kilzer, Chris Dumez and Sihui Liu. Use enumToUnderlyingType on enum classes. * Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: (WebKit::U2fAuthenticator::responseReceived): (WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived): (WebKit::U2fAuthenticator::continueCheckOnlyCommandAfterResponseReceived): (WebKit::U2fAuthenticator::continueBogusCommandExcludeCredentialsMatchAfterResponseReceived): (WebKit::U2fAuthenticator::continueBogusCommandNoCredentialsAfterResponseReceived): (WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived): Canonical link: https://commits.webkit.org/277100@main
https://bugs.webkit.org/show_bug.cgi?id=272215 32GB alignment fails Reverted changeset: "[libpas] Use sentinel page for primitive Gigacage" https://bugs.webkit.org/show_bug.cgi?id=272171 https://commits.webkit.org/277093@main Canonical link: https://commits.webkit.org/277101@main
https://bugs.webkit.org/show_bug.cgi?id=272157 rdar://125907604 Reviewed by Anne van Kesteren. This import was performed against the WPT repository at 4019765ef5. * LayoutTests/imported/w3c/resources/resource-files.json: * LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/compositing/isolation/animation/isolation-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/align-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/column-gap-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/justify-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-align/animation/row-gap-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/display-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/transition-properties-not-animatable-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-source-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/discrete-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-break/animation/break-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/animation/color-scheme-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/animation/forced-color-adjust-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-content/content-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-display/animations/display-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/animation/discrete-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/animation/flex-basis-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-size-adjust-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/discrete-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-grid/animation/grid-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-grid/animation/grid-template-columns-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-grid/animation/grid-template-rows-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-inline/animation/alignment-baseline-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-inline/animation/dominant-baseline-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-inline/animation/initial-letter-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-inline/baseline-source/baseline-source-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-lists/animations/list-style-image-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-lists/css-lists-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-logical/animations/float-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-001-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-002-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-shape-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-xywh-rect-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/mask-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-rule/clip-rule-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/overflow-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/bottom-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/left-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/position-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/right-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-position/animations/top-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-size-adjust/animations/text-size-adjust-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/animation/aspect-ratio-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/animation/height-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/animation/max-height-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/animation/max-width-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/animation/min-height-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/animation/min-width-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/animation/width-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/animation/contain-intrinsic-size-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/animations/discrete-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/hyphen-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/line-break-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/tab-size-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/text-indent-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/perspective-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/vertical-align-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/z-index-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/properties-value-003-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/animation/accent-color-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-ui/animation/caret-color-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-001-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-002-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-003-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/color-interpolation-filters-no-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/filter-interpolation-002-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/filter-interpolation-003-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-anchor-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-001-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-006-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-position-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/support/color-testcommon.js: * LayoutTests/imported/w3c/web-platform-tests/css/support/interpolation-testcommon.js: (cssTransitionsInterpolationAllowDiscrete.isSupported): (cssTransitionsInterpolationAllowDiscrete.supportsProperty): (cssTransitionsInterpolationAllowDiscrete.supportsValue): (cssTransitionsInterpolationAllowDiscrete.setup): (cssTransitionsInterpolationAllowDiscrete.nonInterpolationExpectations): (cssTransitionsInterpolationAllowDiscrete.notAnimatableExpectations): (cssTransitionsInterpolationAllowDiscrete.interpolate): (cssTransitionAllInterpolationAllowDiscrete.isSupported): (cssTransitionAllInterpolationAllowDiscrete.supportsProperty): (cssTransitionAllInterpolationAllowDiscrete.supportsValue): (cssTransitionAllInterpolationAllowDiscrete.setup): (cssTransitionAllInterpolationAllowDiscrete.nonInterpolationExpectations): (cssTransitionAllInterpolationAllowDiscrete.notAnimatableExpectations): (cssTransitionAllInterpolationAllowDiscrete.interpolate): (create_tests): (test_interpolation): * LayoutTests/imported/w3c/web-platform-tests/css/support/numeric-testcommon.js: (test_math_used): * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-source-interpolation-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-lists/animations/list-style-image-interpolation-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-001-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt: Added. Canonical link: https://commits.webkit.org/277102@main
https://bugs.webkit.org/show_bug.cgi?id=272145 rdar://125897282 Reviewed by Anne van Kesteren. This import was performed against the WPT repository at 4019765ef5. * LayoutTests/imported/w3c/resources/resource-files.json: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/all-with-discrete.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/all-with-discrete.tentative.html: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/animate-with-color-mix-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/animate-with-color-mix.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/transition-timing-function-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/transition-timing-function.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/crashtests/delete-image-set.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/crashtests/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-computed.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-valid.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-cascade.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/starting-style-rule-none.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/support/helper.js: (root.supportsStartingStyle): * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transition-behavior-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/transition-behavior.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/w3c-import.log: Canonical link: https://commits.webkit.org/277103@main
…nt-acceleration-capabilities-7.html` is a constant timeout https://bugs.webkit.org/show_bug.cgi?id=272149 Reviewed by Carlos Garcia Campos. This patch implements `CoordinatedGraphicsLayer::acceleratedAnimationsForTesting()` similarly to already existing `GraphicsLayerCA::acceleratedAnimationsForTesting()`. * Source/WebCore/platform/graphics/GraphicsLayer.cpp: (WebCore::acceleratedEffectPropertyIDAsString): (WebCore::animatedPropertyIDAsString): * Source/WebCore/platform/graphics/GraphicsLayer.h: * Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::animatedPropertyIDAsString): Deleted. (WebCore::acceleratedEffectPropertyIDAsString): Deleted. * Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::acceleratedAnimationsForTesting const): * Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Canonical link: https://commits.webkit.org/277104@main
https://bugs.webkit.org/show_bug.cgi?id=272144 rdar://125897021 Reviewed by Anne van Kesteren. This import was performed against the WPT repository at 4019765ef5. * LayoutTests/imported/w3c/resources/import-expectations.json: * LayoutTests/imported/w3c/resources/resource-files.json: * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animate-with-color-mix.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/animation-offscreen-to-onscreen.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/add-pseudo-while-animating-001.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/cancel-update.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/pseudo-element-animation-with-marker.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-range-end-valid.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-range-start-valid.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer_animationiteration-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/animation-event-destroy-renderer_animationstart-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/stability/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/crashtests/w3c-import.log. * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/support/color-testcommon.js: * LayoutTests/imported/w3c/web-platform-tests/css/support/interpolation-testcommon.js: * LayoutTests/imported/w3c/web-platform-tests/css/support/numeric-testcommon.js: Canonical link: https://commits.webkit.org/277105@main
…ith a pattern https://bugs.webkit.org/show_bug.cgi?id=272151 Reviewed by Alejandro G. Castro. Set the global alpha when drawing images and filling with a pattern. Also don't apply the alpha when setting the color of shadows, since it's already taken from SkPaint global alpha or source color. * Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContextSkia::drawNativeImageInternal): (WebCore::GraphicsContextSkia::createDropShadowFilterIfNeeded const): (WebCore::GraphicsContextSkia::setupFillSource const): Canonical link: https://commits.webkit.org/277106@main
https://bugs.webkit.org/show_bug.cgi?id=272085 Reviewed by Michael Catanzaro. Move the serialization of the SoupNetworkProxySettingsMode to WebKit/Shared to a single file for soup-related argument coders. Also add a serializer for GUniquePtr<char*>, as it's needed for the ignored hosts list. With this in place, add a generator for SoupNetworkProxySettings and remove the handmade coder. * Source/WebCore/CMakeLists.txt: * Source/WebCore/platform/network/soup/SoupNetworkProxySettings.h: (WebCore::SoupNetworkProxySettings::SoupNetworkProxySettings): * Source/WebKit/Platform/IPC/ArgumentCoders.h: * Source/WebKit/Platform/IPC/glib/ArgumentCodersGlib.h: Added. * Source/WebKit/PlatformGTK.cmake: * Source/WebKit/PlatformWPE.cmake: * Source/WebKit/Shared/WebCoreArgumentCoders.h: * Source/WebKit/Shared/soup/WebCoreArgumentCodersSoup.cpp: Removed. * Source/WebKit/Shared/soup/WebCoreArgumentCodersSoup.serialization.in: Renamed from Source/WebCore/platform/network/soup/SoupNetworkProxySettings.serialization.in. * Source/WebKit/SourcesGTK.txt: * Source/WebKit/SourcesWPE.txt: Canonical link: https://commits.webkit.org/277107@main
https://bugs.webkit.org/show_bug.cgi?id=266774 rdar://120004379 Reviewed by Mike Wyrzykowski and Yusuke Suzuki. For the most part, we already supported unicode, but the implementation for isIdentifierStart and isIdentifierContinue needed to be updated. After this patch all the identifier tests in the CTS (under shader,validation,parse,identifiers:*) are passing. * Source/WebGPU/WGSL/Lexer.cpp: (WGSL::isIdentifierStart): (WGSL::isIdentifierContinue): (WGSL::Lexer<T>::nextToken): * Source/WebGPU/WGSL/Lexer.h: (WGSL::Lexer::isIdentifierStart): Deleted. (WGSL::Lexer::isIdentifierContinue): Deleted. * Source/WebGPU/WGSL/TypeCheck.cpp: (WGSL::TypeChecker::check): * Source/WebGPU/WebGPU.xcodeproj/project.pbxproj: * Source/WebGPU/WebGPU/ShaderModule.mm: (WebGPU::Device::createShaderModule): Canonical link: https://commits.webkit.org/277108@main
…container https://bugs.webkit.org/show_bug.cgi?id=272180 <rdar://problem/125930179> Reviewed by Antti Koivisto. Checking whether we managed to put content on the line or we are stuck should include 1. regular inline content 2. intrusive floats at the position of the current line 3. freshly placed floats while processing the inline content This patch add #3 to the set of conditions at formattingContexts::leadingInlineItemPositionForNextLine. * LayoutTests/fast/inline/float-prevents-adjacent-content-on-zero-width-line-expected.html: Added. * LayoutTests/fast/inline/float-prevents-adjacent-content-on-zero-width-line.html: Added. * Source/WebCore/layout/formattingContexts/inline/InlineContentBalancer.cpp: (WebCore::Layout::InlineContentBalancer::initialize): * Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp: (WebCore::Layout::InlineFormattingContext::lineLayout): * Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp: (WebCore::Layout::InlineFormattingUtils::leadingInlineItemPositionForNextLine): * Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.h: * Source/WebCore/layout/formattingContexts/inline/IntrinsicWidthHandler.cpp: (WebCore::Layout::IntrinsicWidthHandler::computedIntrinsicWidthForConstraint): Canonical link: https://commits.webkit.org/277109@main
…roxy https://bugs.webkit.org/show_bug.cgi?id=272112 Reviewed by Carlos Garcia Campos. Add a property to TextureMapperPlatformLayerProxy to indicate the type of frames that are passing through it. The type can be WebGL, Video, OffscreenCanvas or HolePuch. We don't want to have proxies without a defined content type, so this patch removes the method to create a Nicosia::ContentLayer that doesn't receive a proxy and creates one whose content type is not known. This way, the code that creates the Nicosia::ContentLayer has to specifically create a proxy with a defined content type for it. This change removes the need of the of the disableBufferInvalidation parameter in the TextureMapperPlatformLayerProxyGL constructor, as this is only used for the HolePunch case. Now that the proxy knows when it's handling HolePunch buffers, the previous condition can be reworked. * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): * Source/WebCore/platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp: (WebCore::MediaPlayerPrivateHolePunch::MediaPlayerPrivateHolePunch): * Source/WebCore/platform/graphics/nicosia/NicosiaContentLayer.cpp: * Source/WebCore/platform/graphics/nicosia/NicosiaContentLayer.h: * Source/WebCore/platform/graphics/nicosia/NicosiaGCGLANGLELayer.cpp: (Nicosia::GCGLANGLELayer::GCGLANGLELayer): * Source/WebCore/platform/graphics/nicosia/NicosiaImageBufferPipe.cpp: (Nicosia::NicosiaImageBufferPipeSource::NicosiaImageBufferPipeSource): * Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: (WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy): * Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: (WebCore::TextureMapperPlatformLayerProxy::contentType const): * Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: (WebCore::TextureMapperPlatformLayerProxyDMABuf::TextureMapperPlatformLayerProxyDMABuf): * Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h: * Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp: (WebCore::TextureMapperPlatformLayerProxyGL::TextureMapperPlatformLayerProxyGL): (WebCore::TextureMapperPlatformLayerProxyGL::invalidate): * Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.h: * Source/WebKit/WebProcess/GPU/graphics/gbm/RemoteGraphicsContextGLProxyGBM.cpp: (WebKit::NicosiaDisplayDelegate::NicosiaDisplayDelegate): Canonical link: https://commits.webkit.org/277110@main
https://bugs.webkit.org/show_bug.cgi?id=272088 Reviewed by Michael Catanzaro. * Source/WebCore/editing/WebContentReader.h: The m_allowPlainText private field is only used in Cocoa and GTK platforms. Canonical link: https://commits.webkit.org/277111@main
Jarred-Sumner
pushed a commit
that referenced
this pull request
Aug 27, 2024
https://bugs.webkit.org/show_bug.cgi?id=278617 rdar://134636872 Reviewed by Yijia Huang. When the next op is also one character PatternCharacterClass, backtracking should not load index register since the next op will override it anyway. Before: 57:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a2,0x1f0b2,0x1f0c2,0x1f0d2)] <4472> 0x10f3a2078: ldur x1, [sp, #64] 56:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a3,0x1f0b3,0x1f0c3,0x1f0d3)] <4476> 0x10f3a207c: ldur x1, [sp, #48] 55:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a4,0x1f0b4,0x1f0c4,0x1f0d4)] <4480> 0x10f3a2080: ldur x1, [sp, #32] 54:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a5,0x1f0b5,0x1f0c5,0x1f0d5)] <4484> 0x10f3a2084: ldur x1, [sp, #16] 53:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a6,0x1f0b6,0x1f0c6,0x1f0d6)] <4488> 0x10f3a2088: ldur x1, [sp] 52:BodyAlternativeNext minimum-size:(10),checked-offset:(10) <4492> 0x10f3a208c: b 0x10f3a1e78 -> <3960> After: 57:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a2,0x1f0b2,0x1f0c2,0x1f0d2)] 56:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a3,0x1f0b3,0x1f0c3,0x1f0d3)] 55:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a4,0x1f0b4,0x1f0c4,0x1f0d4)] 54:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a5,0x1f0b5,0x1f0c5,0x1f0d5)] 53:Term PatternCharacterClass checked-offset:(10) [Unicode:(0x1f0a6,0x1f0b6,0x1f0c6,0x1f0d6)] <3656> 0x11e840e48: ldur x1, [sp] 52:BodyAlternativeNext minimum-size:(10),checked-offset:(10) <3660> 0x11e840e4c: b 0x11e840ca8 -> <3240> * Source/JavaScriptCore/yarr/YarrJIT.cpp: Canonical link: https://commits.webkit.org/282746@main
Jarred-Sumner
pushed a commit
that referenced
this pull request
Feb 21, 2025
https://bugs.webkit.org/show_bug.cgi?id=288102 rdar://145222010 Reviewed by Yusuke Suzuki. Added the notion of a string list to a parsed RegExp that is in the form of /^(?:break|case|which|do|for)/ with an optional trailing $. Such a RegExp will not backtrack and therefore we can streamline the code we emit for such a pattern. This change involves recognizing beginning of string anchored alternations of strings while parsing and then treating the generation of JIT code differently for these patterns. This includes changing how conditional branching works, specifically that instead of the "fall through on match" for each term, to a "jump on match" for the whole alternation. The current code generated for the "case" elternative is: 8:Term PatternCharacter checked-offset:(3) 'c' <156> 0x11381430c: add w1, w1, #2 <160> 0x113814310: cmp w1, w2 <164> 0x113814314: b.hi 0x113814444 -> <468> 10:Term PatternCharacter checked-offset:(4) 'c' <168> 0x113814318: sub x17, x0, #4 <172> 0x11381431c: ldr w17, [x17, x1] <176> 0x113814320: movz w16, #0x6163 <180> 0x113814324: movk w16, #0x6573, lsl #16 -> 0x65736163 <184> 0x113814328: cmp w17, w16 <188> 0x11381432c: b.ne 0x113814444 -> <468> 11:Term PatternCharacter checked-offset:(4) 'a' already handled 12:Term PatternCharacter checked-offset:(4) 's' already handled 13:Term PatternCharacter checked-offset:(4) 'e' already handled 14:NestedAlternativeNext minimum-size:(5),checked-offset:(5) <192> 0x113814330: movz x16, #0x4444 <196> 0x113814334: movk x16, #0x1381, lsl #16 <200> 0x113814338: movk x16, #0x8001, lsl #32 <204> 0x11381433c: movk x16, #0xc973, lsl #48 -> 0x113814444 JIT PC <208> 0x113814340: stur x16, [sp, #8] <212> 0x113814344: b 0x113814404 -> <404> With some additional backtracking code: 9:NestedAlternativeNext minimum-size:(4),checked-offset:(4) <468> 0x113814444: sub w1, w1, #2 <472> 0x113814448: b 0x113814348 -> <216> With this change, the processing of "case" becomes: 9:StringListAlternativeNext minimum-size:(4),checked-offset:(4) <132> 0x12a8285c4: sub w1, w1, #1 <136> 0x12a8285c8: cmp w1, w2 <140> 0x12a8285cc: b.hi 0x12a8285e8 -> <168> 10:Term PatternCharacter checked-offset:(4) 'c' <144> 0x12a8285d0: sub x17, x0, #4 <148> 0x12a8285d4: ldr w17, [x17, x1] <152> 0x12a8285d8: movz w16, #0x6163 <156> 0x12a8285dc: movk w16, #0x6573, lsl #16 -> 0x65736163 <160> 0x12a8285e0: cmp w17, w16 <164> 0x12a8285e4: b.eq 0x12a82866c -> <300> 11:Term PatternCharacter checked-offset:(4) 'a' already handled 12:Term PatternCharacter checked-offset:(4) 's' already handled 13:Term PatternCharacter checked-offset:(4) 'e' already handled 14:StringListAlternativeNext minimum-size:(5),checked-offset:(5) With no backtracking code. We are able to eliminate one branch and the saving of the continuation PC for backtracking. The code size to process these string list RegExp is reduces. For the example RegExp above, the prior version created 1940 bytes (485 instructions) of code while the code created with this 1392 bytes (345 instructions) of code, a nearly 30% reduction in code. This change is a ~18% progression on the new regexp-keyword-parsing microbenchmark: Baseline YarrStringList regexp-keyword-parsing 136.7065+-0.9807 ^ 116.0161+-1.1791 ^ definitely 1.1783x faster <geometric> 136.7065+-0.9807 ^ 116.0161+-1.1791 ^ definitely 1.1783x faster * JSTests/microbenchmarks/regexp-keyword-parsing.js: Added. (arrayToString): (objectToString): (dumpValue): (compareArray): (compareGroups): (testRegExp): (testRegExpSyntaxError): (let.re.break.case.catch.continue.debugger.default.else.finally.if): (let.re1.break.case.catch.continue.debugger.default.else.finally.if): * JSTests/stress/regexp-parsing-tokens.js: Added. (arrayToString): (objectToString): (dumpValue): (compareArray): (compareGroups): (testRegExp): (testRegExpSyntaxError): * Source/JavaScriptCore/yarr/YarrJIT.cpp: * Source/JavaScriptCore/yarr/YarrPattern.cpp: (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd): (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses): (JSC::Yarr::PatternAlternative::dump): (JSC::Yarr::PatternTerm::dump): * Source/JavaScriptCore/yarr/YarrPattern.h: (JSC::Yarr::PatternTerm::PatternTerm): (JSC::Yarr::PatternAlternative::PatternAlternative): Canonical link: https://commits.webkit.org/290791@main
190n
pushed a commit
that referenced
this pull request
Feb 25, 2025
https://bugs.webkit.org/show_bug.cgi?id=288102 rdar://145222010 Reviewed by Yusuke Suzuki. Added the notion of a string list to a parsed RegExp that is in the form of /^(?:break|case|which|do|for)/ with an optional trailing $. Such a RegExp will not backtrack and therefore we can streamline the code we emit for such a pattern. This change involves recognizing beginning of string anchored alternations of strings while parsing and then treating the generation of JIT code differently for these patterns. This includes changing how conditional branching works, specifically that instead of the "fall through on match" for each term, to a "jump on match" for the whole alternation. Fixed a bug in the original version where we weren't properly checking the nested alternatives to see if they only contain fixed single count PatternCharacter terms. The current code generated for the "case" elternative is: 8:Term PatternCharacter checked-offset:(3) 'c' <156> 0x11381430c: add w1, w1, #2 <160> 0x113814310: cmp w1, w2 <164> 0x113814314: b.hi 0x113814444 -> <468> 10:Term PatternCharacter checked-offset:(4) 'c' <168> 0x113814318: sub x17, x0, #4 <172> 0x11381431c: ldr w17, [x17, x1] <176> 0x113814320: movz w16, #0x6163 <180> 0x113814324: movk w16, #0x6573, lsl #16 -> 0x65736163 <184> 0x113814328: cmp w17, w16 <188> 0x11381432c: b.ne 0x113814444 -> <468> 11:Term PatternCharacter checked-offset:(4) 'a' already handled 12:Term PatternCharacter checked-offset:(4) 's' already handled 13:Term PatternCharacter checked-offset:(4) 'e' already handled 14:NestedAlternativeNext minimum-size:(5),checked-offset:(5) <192> 0x113814330: movz x16, #0x4444 <196> 0x113814334: movk x16, #0x1381, lsl #16 <200> 0x113814338: movk x16, #0x8001, lsl #32 <204> 0x11381433c: movk x16, #0xc973, lsl #48 -> 0x113814444 JIT PC <208> 0x113814340: stur x16, [sp, #8] <212> 0x113814344: b 0x113814404 -> <404> With some additional backtracking code: 9:NestedAlternativeNext minimum-size:(4),checked-offset:(4) <468> 0x113814444: sub w1, w1, #2 <472> 0x113814448: b 0x113814348 -> <216> With this change, the processing of "case" becomes: 9:StringListAlternativeNext minimum-size:(4),checked-offset:(4) <132> 0x12a8285c4: sub w1, w1, #1 <136> 0x12a8285c8: cmp w1, w2 <140> 0x12a8285cc: b.hi 0x12a8285e8 -> <168> 10:Term PatternCharacter checked-offset:(4) 'c' <144> 0x12a8285d0: sub x17, x0, #4 <148> 0x12a8285d4: ldr w17, [x17, x1] <152> 0x12a8285d8: movz w16, #0x6163 <156> 0x12a8285dc: movk w16, #0x6573, lsl #16 -> 0x65736163 <160> 0x12a8285e0: cmp w17, w16 <164> 0x12a8285e4: b.eq 0x12a82866c -> <300> 11:Term PatternCharacter checked-offset:(4) 'a' already handled 12:Term PatternCharacter checked-offset:(4) 's' already handled 13:Term PatternCharacter checked-offset:(4) 'e' already handled 14:StringListAlternativeNext minimum-size:(5),checked-offset:(5) With no backtracking code. We are able to eliminate one branch and the saving of the continuation PC for backtracking. The code size to process these string list RegExp is reduces. For the example RegExp above, the prior version created 1940 bytes (485 instructions) of code while the code created with this 1392 bytes (345 instructions) of code, a nearly 30% reduction in code. This change is a ~18% progression on the new regexp-keyword-parsing microbenchmark: Baseline YarrStringList regexp-keyword-parsing 136.7065+-0.9807 ^ 116.0161+-1.1791 ^ definitely 1.1783x faster <geometric> 136.7065+-0.9807 ^ 116.0161+-1.1791 ^ definitely 1.1783x faster * JSTests/microbenchmarks/regexp-keyword-parsing.js: Added. (arrayToString): (objectToString): (dumpValue): (compareArray): (compareGroups): (testRegExp): (testRegExpSyntaxError): (let.re.break.case.catch.continue.debugger.default.else.finally.if): (let.re1.break.case.catch.continue.debugger.default.else.finally.if): * JSTests/stress/regexp-parsing-tokens.js: Added. (arrayToString): (objectToString): (dumpValue): (compareArray): (compareGroups): (testRegExp): (testRegExpSyntaxError): * Source/JavaScriptCore/yarr/YarrJIT.cpp: * Source/JavaScriptCore/yarr/YarrPattern.cpp: (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd): (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses): (JSC::Yarr::PatternAlternative::dump): (JSC::Yarr::PatternTerm::dump): * Source/JavaScriptCore/yarr/YarrPattern.h: (JSC::Yarr::PatternTerm::PatternTerm): (JSC::Yarr::PatternAlternative::PatternAlternative): Canonical link: https://commits.webkit.org/290982@main
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
upgrade webkit again