Conversation
…e-record/MediaRecorder-disabled-tracks.https.html is a flaky failure. https://bugs.webkit.org/show_bug.cgi?id=289183 rdar://146316848 Unreviewed test gardening. Added a test expectation for a flakily failing test. * LayoutTests/platform/mac-wk2/TestExpectations: * LayoutTests/platform/mac/http/tests/media/fairplay/legacy-fairplay-mse-v2-expected.png: Added. Canonical link: https://commits.webkit.org/291647@main
https://bugs.webkit.org/show_bug.cgi?id=288691 rdar://problem/145717488 Reviewed by Alexey Proskuryakov. Swift can and does import C/C++ headers from WTF, however, it imports macro definitions as constant values. Unlike C, swift's #if expressions are parsed separately from module imports, and cannot be influenced by imported code. The way to influence compilation conditions is with -D arguments, controlled by the SWIFT_ACTIVE_COMPILATION_CONDITIONS build setting in Xcode. The result of this is that we've accumulated a handful of redeclarations of out PlatformEnable.h flags in xcconfigs, which have to be carefully maintained so that swift compilation matches clang. This change attempts to fix this duplication and reestablish Platform.h as the source of truth for WebKit's compile-time feature toggles. Add a script to WTF that runs clang's preprocessor to generate an arguments list of enabled features from <wtf/Platform.h>. This is similar to what WebCore does in DerivedSources.make, however, it extends WebCore's implementation by being able to solve simple indirection (e.g. `#define ENABLE_FOO ENABLE_BAR` will look up the value of ENABLE_BAR). Change the default OTHER_SWIFT_FLAGS xcconfig variable to include this arguments list as a response file. Swift and Xcode record this as an input dependency, so incremental changes to Platform.h and the arguments list will invalidate swift code as well. Replace some use of SWIFT_ACTIVE_COMPILATION_CONDITIONS with the corresponding platform flags. I've left WK_ENABLE_SWIFTUI in place, because that build setting influences other build settings regarding SwiftUI project bringup. Swift's compilation conditions have the same semantics as our ENABLE() / HAVE() macros, where an undeclared macro is implicitly undefined, so there is no need to come up with a way to make a record of deliberately-not-defined features. * Configurations/CommonBase.xcconfig: * Configurations/Sanitizers.xcconfig: As a drive-by fix, remove the "=1" to silence "Conditional compilation flags do not have values" warning. * Source/WTF/Scripts/generate-platform-args: Added. * Source/WTF/WTF.xcodeproj/project.pbxproj: We need to generate one response file per compiler target. To do this while still declaring output dependencies, implement `generate-platform-args` as a build rule which is run once per architecture during the "Compile Sources" phase. * Source/WebKit/Configurations/Base.xcconfig: * Source/WebKit/UIProcess/API/Cocoa/WebKitSwiftOverlay.swift: WebKit_Private doesn't import successfully on macOS Sonoma, so use a compiler guard to only perform the import on newer releases. As a drive-by fix, remove a compiler guard that is no longer needed. Canonical link: https://commits.webkit.org/291648@main
https://bugs.webkit.org/show_bug.cgi?id=289131 rdar://146170668 Reviewed by Ryosuke Niwa. This patch unifies JSC's MicrotaskQueue and WebCore's MicrotaskQueue. Integrating WebCore only concepts into JSC's MicrotaskQueue so that WebCore can directly use JSC's MicrotaskQueue. * Source/JavaScriptCore/runtime/GlobalObjectMethodTable.h: * Source/JavaScriptCore/runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::queueMicrotask): * Source/JavaScriptCore/runtime/JSGlobalObject.h: * Source/JavaScriptCore/runtime/JSMicrotask.cpp: (JSC::runJSMicrotask): (): Deleted. (JSC::createJSMicrotask): Deleted. (JSC::JSMicrotask::run): Deleted. * Source/JavaScriptCore/runtime/JSMicrotask.h: * Source/JavaScriptCore/runtime/Microtask.h: (JSC::Microtask::Microtask): Deleted. (JSC::Microtask::~Microtask): Deleted. (JSC::Microtask::identifier const): Deleted. * Source/JavaScriptCore/runtime/MicrotaskQueue.cpp: (JSC::QueuedTask::tryRun): (JSC::QueuedTask::isRunnable const): (JSC::MicrotaskQueue::~MicrotaskQueue): (JSC::MicrotaskQueue::visitAggregateImpl): (JSC::MicrotaskQueue::enqueue): (JSC::MicrotaskQueue::performMicrotaskCheckpoint): (JSC::MarkedMicrotaskDeque::hasMicrotasksForFullyActiveDocument const): (JSC::MarkedMicrotaskDeque::visitAggregateImpl): (JSC::QueuedTask::run): Deleted. * Source/JavaScriptCore/runtime/MicrotaskQueue.h: (JSC::QueuedTask::QueuedTask): (JSC::QueuedTask::setDispatcher): (JSC::QueuedTask::globalObject const): (JSC::QueuedTask::job const): (JSC::QueuedTask::arguments const): (JSC::MarkedMicrotaskDeque::swap): * Source/JavaScriptCore/runtime/VM.cpp: (JSC::VM::~VM): (JSC::VM::drainMicrotasks): (JSC::VM::beginMarking): (JSC::VM::visitAggregateImpl): * Source/JavaScriptCore/runtime/VM.h: (JSC::VM::callOnEachMicrotaskTick): * Source/WebCore/Headers.cmake: * Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/bindings/js/JSDOMMicrotask.cpp: Removed. * Source/WebCore/bindings/js/JSDOMMicrotask.h: Removed. * Source/WebCore/bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop): * Source/WebCore/bindings/js/JSDOMWindowBase.h: * Source/WebCore/bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::queueMicrotask): * Source/WebCore/bindings/js/JSExecState.h: (WebCore::JSExecState::runTask): * Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp: (WebCore::JSShadowRealmGlobalScopeBase::queueMicrotaskToEventLoop): * Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.h: * Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp: (WebCore::JSWorkerGlobalScopeBase::queueMicrotaskToEventLoop): * Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h: * Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp: (WebCore::JSWorkerGlobalScope::queueMicrotask): * Source/WebCore/bindings/js/JSWorkletGlobalScopeBase.h: * Source/WebCore/dom/EventLoop.cpp: (WebCore::EventLoop::queueMicrotask): (WebCore::EventLoop::run): (WebCore::EventLoopTaskGroup::EventLoopTaskGroup): (WebCore::EventLoopTaskGroup::~EventLoopTaskGroup): (WebCore::EventLoopTaskGroup::jsMicrotaskDispatcher const): (WebCore::EventLoopTaskGroup::queueMicrotask): * Source/WebCore/dom/EventLoop.h: * Source/WebCore/dom/Microtasks.cpp: (WebCore::WebCoreMicrotaskDispatcher::currentRunnability const): (WebCore::MicrotaskQueue::MicrotaskQueue): (WebCore::MicrotaskQueue::append): (WebCore::MicrotaskQueue::performMicrotaskCheckpoint): (WebCore::MicrotaskQueue::hasMicrotasksForFullyActiveDocument const): * Source/WebCore/dom/Microtasks.h: (WebCore::WebCoreMicrotaskDispatcher::WebCoreMicrotaskDispatcher): * Source/WebCore/workers/service/ExtendableEvent.cpp: (WebCore::ExtendableEvent::addExtendLifetimePromise): (): Deleted. Canonical link: https://commits.webkit.org/291649@main
https://bugs.webkit.org/show_bug.cgi?id=283039 Reviewed by Geoffrey Garen. Restrict dynamic_objc_cast<T>(U) to downcast only to match the semantics of downcast<T>(U). * Source/WTF/wtf/cocoa/TypeCastsCocoa.h: (WTF::checked_objc_cast): (WTF::dynamic_objc_cast): * Source/WebKit/Shared/API/APIObject.h: (API::Object::wrapper const): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm: (WebKit::WebExtensionDynamicScripts::executeScript): * Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm: (TestWebKitAPI::TEST(TypeCastsCocoa, checked_objc_cast)): (TestWebKitAPI::TEST(TypeCastsCocoa, dynamic_objc_cast_RetainPtr)): Canonical link: https://commits.webkit.org/291650@main
https://bugs.webkit.org/show_bug.cgi?id=289188 rdar://problem/146320785 Reviewed by Charlie Wolfe. This change may be useful for diagnosis purposes. * Source/WebCore/contentextensions/ContentExtension.cpp: (WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet): * Source/WebCore/contentextensions/ContentExtensionRule.cpp: (WebCore::ContentExtensions::DeserializedAction::deserialize): (WebCore::ContentExtensions::DeserializedAction::serializedLength): Canonical link: https://commits.webkit.org/291651@main
…ve regions and all non-root web areas on macOS https://bugs.webkit.org/show_bug.cgi?id=289137 rdar://146185640 Reviewed by Chris Fleizach. VoiceOver commonly sends remote search requests for all the live regions, and all the non-woot web areas on the page. Prior to this commit, this always required a full tree traversal. With this commit, we eagerly maintain a pre-sorted list of these objects, allowing us to answer these queries immediately. There are generally very few of these objects on a page, so it's cheap to keep this list up-to-date. To avoid confusion, the existing AXObjectCache::m_liveRegionObjects list is renamed to AXObjectCache::m_changedLiveRegions, as that is what it actually holds (live regions that have changed and are waiting for notifications to be sent for them). * LayoutTests/accessibility/mac/live-region-search-expected.txt: Added. * LayoutTests/accessibility/mac/live-region-search.html: Added. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::remove): (WebCore::AXObjectCache::handleLiveRegionCreated): (WebCore::AXObjectCache::postLiveRegionChangeNotification): (WebCore::AXObjectCache::liveRegionChangedNotificationPostTimerFired): (WebCore::AXObjectCache::handleRoleChanged): (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::performDeferredCacheUpdate): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AXSearchManager.cpp: (WebCore::AXSearchManager::findMatchingObjectsInternal): (WebCore::AXSearchManager::findMatchingRange): (WebCore::AXSearchManager::findNextStartingFrom): (WebCore::AXSearchManager::findAllMatchingObjectsIgnoringCache): * Source/WebCore/accessibility/AXSearchManager.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::updateRole): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation): * Source/WebCore/accessibility/cocoa/AXCoreObjectCocoa.mm: (WebCore::AXCoreObject::sortedDescendants const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::sortedLiveRegions): (WebCore::AXIsolatedTree::sortedNonRootWebAreas): (WebCore::AXIsolatedTree::applyPendingChanges): (WebCore::AXIsolatedTree::sortedLiveRegionsDidChange): (WebCore::AXIsolatedTree::sortedNonRootWebAreasDidChange): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: * Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::allSortedLiveRegions const): (WebCore::AXIsolatedObject::allSortedNonRootWebAreas const): * Source/WebCore/accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::onDocumentRenderTreeCreation): (WebCore::AXObjectCache::platformPerformDeferredCacheUpdate): (WebCore::AXObjectCache::sortedLiveRegions const): (WebCore::AXObjectCache::sortedNonRootWebAreas const): (WebCore::AXObjectCache::addSortedObject): (WebCore::AXObjectCache::removeLiveRegion): (WebCore::AXObjectCache::initializeSortedIDLists): * Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::allSortedLiveRegions const): (WebCore::AccessibilityObject::allSortedNonRootWebAreas const): * Source/WebCore/dom/Document.cpp: (WebCore::Document::createRenderTree): Canonical link: https://commits.webkit.org/291652@main
https://bugs.webkit.org/show_bug.cgi?id=289123 rdar://146160787 Reviewed by Eric Carlson. Static analysis told me to. * Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::createElementRenderer): (WebCore::YouTubePluginReplacement::installReplacement): (WebCore::YouTubePluginReplacement::youTubeURL): Canonical link: https://commits.webkit.org/291653@main
https://bugs.webkit.org/show_bug.cgi?id=289178 rdar://146312865 Reviewed by Brandon Stewart. This function just marks the "needs item placement," bit on the associated RenderGrid (and potentially ancestor RenderGrids if it is a subgrid). Let's rename the function to setNeedsItemPlacement to make it more clear that this is what this function does. * Source/WebCore/rendering/RenderBox.cpp: (WebCore::RenderBox::updateGridPositionAfterStyleChange): * Source/WebCore/rendering/RenderGrid.cpp: (WebCore::RenderGrid::styleDidChange): (WebCore::RenderGrid::setNeedsItemPlacement): (WebCore::RenderGrid::dirtyGrid): Deleted. * Source/WebCore/rendering/RenderGrid.h: * Source/WebCore/rendering/updating/RenderTreeBuilder.cpp: (WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock): (WebCore::RenderTreeBuilder::detachFromRenderGrid): (WebCore::RenderTreeBuilder::attachToRenderGrid): Canonical link: https://commits.webkit.org/291654@main
…() calls from FrameLoader::commitProvisionalLoad() https://bugs.webkit.org/show_bug.cgi?id=289182 rdar://145386222 Reviewed by Wenson Hsieh. Sometimes the WP crashes under WebCore::Page::viewportArguments() with a backtrace like this: ``` WTF::RawPtrTraits<WebCore::Frame>::unwrap(WebCore::Frame* const&) (WebCore) WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, WTF::DefaultRefDerefTraits<WebCore::Frame>>::get() const (WebCore) WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, WTF::DefaultRefDerefTraits<WebCore::Frame>>::Ref(WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, WTF::DefaultRefDerefTraits<WebCore::Frame>> const&) (WebCore) WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, WTF::DefaultRefDerefTraits<WebCore::Frame>>::Ref(WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, WTF::DefaultRefDerefTraits<WebCore::Frame>> const&) (WebCore) WebCore::Page::protectedMainFrame() const (WebCore) WebCore::Page::viewportArguments() const (WebCore) WebCore::FrameLoader::commitProvisionalLoad() (WebCore) ``` While the root cause is yet to be determined, we can make the process less crashy by null checking frame->page() before querying for viewport arguments in FrameLoader::commitProvisionalLoad. Note that this is better than null checking m_mainFrame on the Page object, because Page holds a strong reference to m_mainFrame, and so if we're crashing while dereferencing that object, it indicates all of Page is null. * Source/WebCore/loader/FrameLoader.cpp: (WebCore::FrameLoader::commitProvisionalLoad): Canonical link: https://commits.webkit.org/291655@main
…nedState https://bugs.webkit.org/show_bug.cgi?id=289163 rdar://problem/146313542 Reviewed by Sam Weinig. Currently we do too many style updates for anchor positioned elements because transient state is not properly managed. This is inefficient and also hides bugs (which this patch fixes). The patch makes the stage enum an optional paramater that is only initialized if we are actually resolving anchors. This is a step toward moving the transient state to a TreeResolver scoped struct. * LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-transition-eval-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-order-position-area-expected.txt: These were spurious PASSes as try-order evaluation is not implemented. * Source/WebCore/dom/Document.cpp: (WebCore::Document::resolveStyle): Scope Style::Resolver lifetime so it gets deleted before compositing layer update. * Source/WebCore/rendering/RenderLayer.cpp: (WebCore::RenderLayer::setSnapshottedScrollOffsetForAnchorPositioning): (WebCore::RenderLayer::clearSnapshottedScrollOffsetForAnchorPositioning): Ensure we do compositing layer update if offset change. * Source/WebCore/style/AnchorPositionEvaluator.cpp: (WebCore::Style::AnchorPositionEvaluator::findAnchorForAnchorFunctionAndAttemptResolution): (WebCore::Style::AnchorPositionEvaluator::updateAnchorPositionedStateForLayoutTimePositioned): Update if it might be layout time positioned (has position-anchor); * Source/WebCore/style/AnchorPositionEvaluator.h: * Source/WebCore/style/StyleScope.cpp: (WebCore::Style::Scope::invalidateForAnchorDependencies): Only save the anchor rect if anchored elements have been found. (WebCore::Style::Scope::resetAnchorPositioningStateBeforeStyleResolution): Clear the stage. (WebCore::Style::Scope::updateAnchorPositioningStateAfterStyleResolution): * Source/WebCore/style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolve): Don't trigger further style resolution passes if the stage has not progressed. (WebCore::Style::TreeResolver::updateAnchorPositioningState): If an anchor changes style we need to do an interleaving round since its position may change. (WebCore::Style::TreeResolver::generatePositionOptionsIfNeeded): (WebCore::Style::TreeResolver::tryChoosePositionOption): Don't pick an option before it has been positioned. Canonical link: https://commits.webkit.org/291656@main
https://bugs.webkit.org/show_bug.cgi?id=289177 rdar://146310661 Reviewed by Eric Carlson. Use log identifier in HTML Media Element logging to make it easier to inspect logs. * Source/WebCore/html/HTMLMediaElement.cpp: Canonical link: https://commits.webkit.org/291657@main
https://bugs.webkit.org/show_bug.cgi?id=289193 rdar://145803097 Reviewed by Pascoe and Wenson Hsieh. Add a new LOOA for the blob file access enforcement network process security check. The existing one should still control both the network process roundtrip and the security check. * Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h: * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::networkProcessWillCheckBlobFileAccess): Canonical link: https://commits.webkit.org/291658@main
…oded-transform/sframe-transform-in-worker.https.html` progressed on macOS and iPadOS platforms. https://bugs.webkit.org/show_bug.cgi?id=231611 rdar://problem/84165122 Unreviewed test gardening. Removing test expectations. * LayoutTests/platform/ipad/TestExpectations: * LayoutTests/platform/mac-wk2/TestExpectations: * LayoutTests/platform/mac/TestExpectations: Canonical link: https://commits.webkit.org/291659@main
…capture-record/MediaRecorder-peerconnection.https.html is a flaky failure/crash. https://bugs.webkit.org/show_bug.cgi?id=289199 rdar://146335739 Unreviewed test gardening. Added a test expectation for a flakily failing/crashing test. * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/291660@main
…conditions" https://bugs.webkit.org/show_bug.cgi?id=288691 rdar://146335497 Unreviewed. In production builds, the Scripts/* rules for copying headers apply to the .resp file generated by the build rule we added. This fails since there is no HEADER_OUTPUT_DIR to copy to. Fix by making the former rules finer-grained. * Source/WTF/WTF.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/291661@main
… across soft line breaks in bidi text https://bugs.webkit.org/show_bug.cgi?id=289184 rdar://142811818 Reviewed by Abrar Rahman Protyasha. Make some adjustments to the visual bidi selection mode on iOS. See below for more details. * LayoutTests/editing/selection/ios/bidi-visually-contiguous-selection-8-expected.txt: Added. * LayoutTests/editing/selection/ios/bidi-visually-contiguous-selection-8.html: Added. Add a layout test to exercise this change, by extending a selection handle across a soft line break containing bidi LTR text in an RTL paragraph, and verify that the selection snaps to select the entire LTR text run after text interaction ends. * LayoutTests/resources/ui-helper.js: (window.UIHelper.async selectionHitTestOffset): (window.UIHelper.async zoomByDoubleTappingAt): Deleted. * Source/WebCore/editing/Editing.cpp: (WebCore::advanceInDirection): (WebCore::makeVisuallyContiguousIfNeeded): Consider the case where, in an RTL paragraph with selected text, the selection end position is in the second line of an LTR text run that spans two lines with a soft line break in between. Right now, we treat this scenario as being visually contiguous and don't attempt to adjust the selection endpoints because there's no break in visual continuity in the selection, within the last line. However, this can lead to unintuitive behaviors, as the selection will visually flip when extended across the bidi text boundary, to the rest of the RTL text on the second line. To mitigate this, we detect the following case: - The selection spans multiple lines. - The visually selected text on the first or last line only spans text which is a different direction from the rest of the paragraph (in this case, only LTR text is selected when the rest of the paragraph is RTL). ...and automatically expand the selection start or end, so that we select all of the text that's of a different direction than the paragraph direction after the soft line break. * Source/WebCore/rendering/RenderObject.cpp: (WebCore::makeBidiSelectionVisuallyContiguousIfNeeded): (WebCore::adjustTextDirectionForCoalescedGeometries): Adjust code that makes iOS selection rects visually contiguous, so that it will start the selection rect from the right visual extent in the scenario detailed above. To achieve this, we compute the visible extent of the first or last line of the selection, on the opposite end of the caret, and unify the visual selection bounds with this caret rect in order to compute the final coalesced quad for the start and end selection geometries. (WebCore::directionForFirstLine): Deleted. (WebCore::directionForLastLine): Deleted. Canonical link: https://commits.webkit.org/291662@main
…on-handler.html is a flaky crash https://bugs.webkit.org/show_bug.cgi?id=289186 rdar://146319214 Reviewed by Eric Carlson. Follow the same pattern as full-screen-enter-while-exiting-mid-completion-handler.html of waiting for a presentation update. Also remove unused changePromise variable from the other test. * LayoutTests/fullscreen/full-screen-enter-while-exiting-fully-mid-completion-handler.html: * LayoutTests/fullscreen/full-screen-enter-while-exiting-mid-completion-handler-expected.txt: * LayoutTests/fullscreen/full-screen-enter-while-exiting-mid-completion-handler.html: Canonical link: https://commits.webkit.org/291663@main
…interactive-elements/the-dialog-element/focus-after-close.html is a flaky failure. https://bugs.webkit.org/show_bug.cgi?id=289204 rdar://146338224 Unreviewed test gardening. Added a test expectation for a flakily failing test. * LayoutTests/platform/mac/TestExpectations: Canonical link: https://commits.webkit.org/291664@main
…irectory.https.any.sharedworker.html is flaky crash(flaky in EWS) https://bugs.webkit.org/show_bug.cgi?id=287889 rdar://145086986 Reviewed by Alexey Proskuryakov. In existing implementation, FileSystemStorageManager::connectionClosed() takes handle from m_handles and invokes FileSystemStorageHandle::close() on the handle, which then invokes FileSystemStorageManager::closeHandle() with the handle. FileSystemStorageManager tries to assert handle still exists in m_handles, and will remove the hanlde from m_handles again. To fix this problem, make FileSystemStorageManager::connectionClosed() not take handle and remove it from registry and let FileSystemStorageManager::closeHandle() handle it instead. Credits to Alexey who found the issue. * LayoutTests/platform/mac-wk2/TestExpectations: * Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp: (WebKit::FileSystemStorageManager::connectionClosed): Canonical link: https://commits.webkit.org/291665@main
https://bugs.webkit.org/show_bug.cgi?id=289192 rdar://146327392 Reviewed by Alan Baradlay. Implement `supports_text_stream_insertion<>` for `std::unique_ptr<>`, as we do for other smart pointers. * Source/WTF/wtf/text/TextStream.h: Canonical link: https://commits.webkit.org/291666@main
…re enabled https://bugs.webkit.org/show_bug.cgi?id=289139 rdar://146145732 Reviewed by Aditya Keerthi and Wenson Hsieh. For platforms besides Mac & iOS, all of the checks in `isControlStyled(...)` are for border and background styling which would cause the RenderStyle's `nativeAppearanceDisabled` flag to be set anyways. Thus, it is not necessary to check `isControlStyled` on non-Mac & non-iOS platforms when the devolvable widgets feature is enabled. On Mac, `isControlStyled` contains an additional check for zoom styling and writing mode styling for menu lists due to an issue which prevents the control from being scaled. This issue does not occur when vector-based controls are enabled. Thus, it is not necessary to check `isControlStyled` on Mac when both vector-based controls and devolvable widgets are enabled. On iOS, `isControlStyled` contains an additional check for list buttons, disabling native appearance if the style has content set or content:none in order to hide the button. These change move this logic to the control's paint method, which simply draws nothing if these styles are set. With this logic moved, it is no longer necessary to check `isControlStyled` on iOS when the devolvable widgets feature is enabled. * Source/WebCore/rendering/RenderTheme.cpp: (WebCore::shouldCheckLegacyStylesForNativeAppearance): (WebCore::RenderTheme::adjustStyle): * Source/WebCore/rendering/ios/RenderThemeIOS.mm: (WebCore::RenderThemeIOS::isControlStyled const): (WebCore::RenderThemeIOS::paintListButton): Canonical link: https://commits.webkit.org/291667@main
https://bugs.webkit.org/show_bug.cgi?id=288959 rdar://146003367 Reviewed by Pascoe. This makes testRunner.findString() behave correctly with site isolation. * LayoutTests/editing/text-iterator/findString.html: * Source/WebKit/UIProcess/API/C/WKPage.cpp: (WKPageFindStringForTesting): * Source/WebKit/UIProcess/API/C/WKPagePrivate.h: * Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageFindString): Deleted. * Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::findStringFromInjectedBundle): Deleted. * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/mac/WebKit2.order: * Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::postMessageWithAsyncReply): * Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::findString): * Tools/WebKitTestRunner/InjectedBundle/TestRunner.h: * Tools/WebKitTestRunner/TestController.cpp: (WTR::TestController::didReceiveAsyncMessageFromInjectedBundle): Canonical link: https://commits.webkit.org/291668@main
…ring/backdrop-object.html WPT is a flaky image failure https://bugs.webkit.org/show_bug.cgi?id=289200 rdar://146335766 Unreviewed test gardening. Add test expectation. * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/291669@main
…emaccess/writable-file-stream-abort.html is a flaky crash https://bugs.webkit.org/show_bug.cgi?id=289207 rdar://146342345 Unreviewed test gardening. Add test expectation. * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/291670@main
https://bugs.webkit.org/show_bug.cgi?id=289198 rdar://146334563 Reviewed by Keith Miller and Ryosuke Niwa. JSC::MicrotaskQueue::performMicrotaskCheckpoint will take a lambda which customizes default dispatching mechanism for microtasks. And then WebCore offers a lambda and avoid doing virtual function call for JS microtasks which is by-far most frequently called type of microtasks. * Source/JavaScriptCore/CMakeLists.txt: * Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: * Source/JavaScriptCore/runtime/JSMicrotask.cpp: (JSC::runJSMicrotask): * Source/JavaScriptCore/runtime/JSMicrotask.h: * Source/JavaScriptCore/runtime/MicrotaskQueue.cpp: (JSC::QueuedTask::tryRun): Deleted. (JSC::MicrotaskQueue::performMicrotaskCheckpoint): Deleted. * Source/JavaScriptCore/runtime/MicrotaskQueue.h: (JSC::QueuedTask::dispatcher const): * Source/JavaScriptCore/runtime/MicrotaskQueueInlines.h: Copied from Source/JavaScriptCore/runtime/JSMicrotask.h. (JSC::MicrotaskQueue::performMicrotaskCheckpoint): * Source/JavaScriptCore/runtime/VM.cpp: (JSC::VM::drainMicrotasks): * Source/WebCore/bindings/js/JSDOMWindowBase.cpp: * Source/WebCore/dom/EventLoop.cpp: * Source/WebCore/dom/Microtasks.cpp: (WebCore::MicrotaskQueue::performMicrotaskCheckpoint): * Source/WebCore/dom/Microtasks.h: (WebCore::WebCoreMicrotaskDispatcher::WebCoreMicrotaskDispatcher): (WebCore::WebCoreMicrotaskDispatcher::type const): Canonical link: https://commits.webkit.org/291671@main
https://bugs.webkit.org/show_bug.cgi?id=289209 rdar://145717488 Revert "[Swift] Use Platform.h feature defines as compilation conditions" Broke the internal build. Reverted changes: [Swift] Use Platform.h feature defines as compilation conditions https://bugs.webkit.org/show_bug.cgi?id=288691 rdar://145717488 291648@main (168c0ae) Build fix for "[Swift] Use Platform.h feature defines as compilation conditions" https://bugs.webkit.org/show_bug.cgi?id=288691 rdar://146335497 291661@main (8e711eb) Canonical link: https://commits.webkit.org/291672@main
…b-platform-tests/fullscreen/api/element tests are flaky failure https://bugs.webkit.org/show_bug.cgi?id=287922 rdar://145104423 Unreviewed test gardening. Remove test expectations. Fixed by commit 291200@main. * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/291673@main
….html is no longer a text failure rdar://105993721 Unreviewed test gardening. * LayoutTests/platform/ios/TestExpectations: Canonical link: https://commits.webkit.org/291674@main
…-object.html WPT is a flaky image failure https://bugs.webkit.org/show_bug.cgi?id=289200 rdar://146335766 Reviewed by Simon Fraser. Unflake the test by stop assuming a sequence of sequential events. * LayoutTests/imported/w3c/web-platform-tests/fullscreen/rendering/backdrop-object.html: Canonical link: https://commits.webkit.org/291675@main
…_64 ] imported/w3c/web-platform-tests/mediacapture-insertable-streams/VideoTrackGenerator-with-window-tracks.https.html is a constant failure. https://bugs.webkit.org/show_bug.cgi?id=289211 rdar://146345583 Unreviewed test gardening. Added a test expectation for a constantly failing test. * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/291676@main
|
Do you know if this fixes support with Qt 6.9.1? |
No it does not. Fails at final link stage: |
|
I initially made fixes to get it working on MacOS with qt 6.9.x, but will turn my attention to Linux in the next few days. |
|
@Tatsh are you using any build flags or anything? I got it to successfully build on 6.9.1 using this: https://gist.github.com/mnutt/2bef67e6bdc5ea511af504840e11ba6a |
|
Flags are here: https://github.com/Tatsh/tatsh-overlay/blob/master/dev-qt/qtwebkit/qtwebkit-6.212_p20241223.ebuild#L45 and was building with build type Release. LTO should be off unless it is somehow getting turned on in a different way by qtwebkit itself. I do build with |
|
Retrying now with SHA |
|
Actually could you try against #48 ? It is 3 months newer and has a number of qt-6.9-related fixes. |
|
Could you share a build log in any case? What I found is that the build system is enabling |
|
Here's the link command expanded: Outputs: When I add |
|
But the above does require removing |
No description provided.