forked from qtwebkit/qtwebkit
-
Notifications
You must be signed in to change notification settings - Fork 16
Merge upstream 2025-06 -10 #48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
…rchitectures https://bugs.webkit.org/show_bug.cgi?id=294005 rdar://152554233 Reviewed by Tadeu Zagallo. The workaround from 295250@main when shader validation was enabled was initially only reproducible on Apple9 devices, but we found a repro for Apple8, so remove the architecture gating. * Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp: (WGSL::Metal::FunctionDefinitionWriter::emitNecessaryHelpers): Canonical link: https://commits.webkit.org/295816@main
Update tests expectations. Remove tests passing. * LayoutTests/platform/glib/TestExpectations: * LayoutTests/platform/gtk/TestExpectations: * LayoutTests/platform/wpe/TestExpectations: Canonical link: https://commits.webkit.org/295817@main
https://bugs.webkit.org/show_bug.cgi?id=294000 rdar://problem/152549205 Reviewed by Charlie Wolfe. Address safe cpp warnings in Quad.h. This also fixes css/DeprecatedCSSOMRect.h and css/Rect.h. * Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations: * Source/WebCore/css/CSSPropertyInitialValues.cpp: (WebCore::isNumber): * Source/WebCore/css/RectBase.h: (WebCore::RectBase::left const): (WebCore::RectBase::protectedTop const): Deleted. (WebCore::RectBase::protectedRight const): Deleted. (WebCore::RectBase::protectedBottom const): Deleted. (WebCore::RectBase::protectedLeft const): Deleted. Canonical link: https://commits.webkit.org/295818@main
https://bugs.webkit.org/show_bug.cgi?id=293179 <rdar://problem/151655455> Reviewed by Antti Koivisto. Do not dismiss empty block containers as list marker parent candidates. In findParentOfEmptyOrFirstLineBox, we travers the list item's subtree to find an insertion position for the list marker. While the first block container with inline content is the preferred insertion point, skipping empty block containers results in constructing anonymous block parent. (inline level list marker next to (empty) block level container) We should also consider block containers with inline boxes even when they do not generate visible content (e.g. <div><span></span></div>). This patch introduces the concept of 'fallback parent' which is used when no candidate with inline content is found. * LayoutTests/fast/inline/list-item-marker-with-empty-list-expected.html: Added. * LayoutTests/fast/inline/list-item-marker-with-empty-list.html: Added. * Source/WebCore/rendering/updating/RenderTreeBuilderList.cpp: (WebCore::parentCandidateForMarker): (WebCore::RenderTreeBuilder::List::updateItemMarker): (WebCore::getParentOfFirstLineBox): Deleted. Canonical link: https://commits.webkit.org/295819@main
rdar://152190645 https://bugs.webkit.org/show_bug.cgi?id=293710 Reviewed by Tim Nguyen and Antti Koivisto. At-rules like @Keyframes or @position-try restrict what CSS properties can be declared in the rule. This logic is present in the "slow"-path parser (CSSPropertyParser) but not in the fast path parser. Since it's rare to parse at-rules with declarations inside anyway, this patch forces declarations inside at-rules to use the slow path instead of the fast path. * LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-cssom-expected.txt: * Source/WebCore/css/parser/CSSParserFastPaths.cpp: (WebCore::parseKeywordValue): (WebCore::CSSParserFastPaths::maybeParseValue): Canonical link: https://commits.webkit.org/295820@main
…ts code is slightly incorrect (follow-up) https://bugs.webkit.org/show_bug.cgi?id=294001 rdar://152550042 Reviewed by Aditya Keerthi. In 295726@main, I forgot to clean up WKIntelligenceSmartReplyTextEffectCoordinator in a few place as I did with WKIntelligenceReplacementTextEffectCoordinator.swift. * Source/WebKit/WebKitSwift/WritingTools/WKIntelligenceSmartReplyTextEffectCoordinator.swift: (startAnimation(for:)): (startAnimation(for:completion:)): Deleted. (startAnimationAsync(for:)): Deleted. Canonical link: https://commits.webkit.org/295821@main
https://bugs.webkit.org/show_bug.cgi?id=293928 rdar://problem/152461354 Reviewed by Tim Nguyen. Fix Safe CPP warnings in RenderSlider. * Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations: * Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations: * Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations: * Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations: * Source/WebCore/rendering/RenderSlider.cpp: (WebCore::RenderSlider::element const): (WebCore::RenderSlider::inDragMode const): (WebCore::RenderSlider::valueRatio const): * Source/WebCore/rendering/RenderSlider.h: Canonical link: https://commits.webkit.org/295822@main
https://bugs.webkit.org/show_bug.cgi?id=294018 Reviewed by Sam Weinig. web-platform-tests/wpt#52924 removes the Signature-based SRI tests from the rest of the Integrity-Policy tests. This PR imports that. Upstream commit: web-platform-tests/wpt@6ba4f8f * LayoutTests/imported/w3c/web-platform-tests/subresource-integrity/integrity-policy/script.https.html: Remove signature test. Canonical link: https://commits.webkit.org/295823@main
…tructureStubClearingWatchpoint should hold an owner PolymorphicAccessJITStub and check if their owner is destroyed https://bugs.webkit.org/show_bug.cgi?id=288985 rdar://144722637 Reviewed by Yusuke Suzuki. StructureTransitionStructureStubClearingWatchpoint and AdaptiveValueStructureStubClearingWatchpoint keep a JSObject within their ObjectPropertyCondition. However, during program execution, we could no longer have a live PolymorphicAccessJITStub associated with the watchpoint. Since these watchpoints don't check if the owner JITStub is live, they may still attempt to fire. This means that they could attempt to access a dead object, which was cleaned up during a GC pass. This patch ensures that these watchpoints don't fire and do nothing if their owner JITStub is no longer alive, meaning that they can no longer UAF their key's object. Additionally, we modify the PolymorphicAccessJITStub to separate isCodeImmutable and isGCAware. These properties are not related, but the old code set them together since we would only care about immutability if we were a GC-aware JIT stub. However, we can set immutability at the beginning, allowing us to only set isGCAware when we add a watchpoint that requires GC awareness. This is required since the two StubClearing watchpoints hold references to objects, meaning they need to be GC aware. With these fixes, we are able to ensure that watchpoints are invalidated or silenced when objects they refer to are dead. * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp: (JSC::addWatchpoint): (JSC::ensureReferenceAndInstallWatchpoint): (JSC::ensureReferenceAndAddWatchpoint): (JSC::InlineCacheCompiler::compile): (JSC::InlineCacheCompiler::compileOneAccessCaseHandler): * Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp: (JSC::StructureTransitionStructureStubClearingWatchpoint::fireInternal): (JSC::AdaptiveValueStructureStubClearingWatchpoint::handleFire): * Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h: * Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp: (JSC::GCAwareJITStubRoutine::GCAwareJITStubRoutine): (JSC::GCAwareJITStubRoutine::makeGCAware): (JSC::PolymorphicAccessJITStubRoutine::PolymorphicAccessJITStubRoutine): (JSC::PolymorphicAccessJITStubRoutine::addGCAwareWatchpoint): (JSC::MarkingGCAwareJITStubRoutine::MarkingGCAwareJITStubRoutine): (JSC::GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler): (JSC::createICJITStubRoutine): (JSC::createPreCompiledICJITStubRoutine): * Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h: (JSC::GCAwareJITStubRoutine::create): (JSC::PolymorphicAccessJITStubRoutine::ownerIsDead const): * Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp: (JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine): Originally-landed-as: 289651.245@safari-7621-branch (be9f31f7acec). rdar://151707889 Canonical link: https://commits.webkit.org/295824@main
https://bugs.webkit.org/show_bug.cgi?id=293908 rdar://152439605 Reviewed by Brent Fulgham. This patch adds a setting, which can be used to conditionalize sandbox rules related to debugging. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebKit/Shared/Sandbox/common.sb: Canonical link: https://commits.webkit.org/295825@main
… nested grid and subgrid content. https://bugs.webkit.org/show_bug.cgi?id=291827 rdar://149704403 Reviewed by Alan Baradlay. In 287890@main, we introduced a new cache for grid layout to use by storing the intrinsic logical height of its grid items. That commit message gives the explanation for the cause of the performance regression, but the TLDR is: We can experience some thrashing when we have deeply nested grid content that is also stretching. This is because the track sizing algorithm will query its item for its intrinsic logical height, and on relayout, we will setNeedsLayout on those items to get that information. This behavior can become pathological if those items are grid themselves. The cache in 287890@main stores those sizes for grid to use without needing to perform layout on those items. However, we restricted the availability of this cache to limit the scope and risk of the initial implementation. One of these restrictions was to not create that cache in the presence of subgrids. As a result, any pages with subgrids and a similar content structure of nested grids/subgrids can experience the same performance problem that 287890@main attempted to address. It seems like at one point, lobste.rs experienced this issue when the website changed. This content structure no longer appears on the site at this point, although that state is still accessible via the Wayback Machine (see the link in the bugzilla). The content seems to have been of the form: <grid> <subgrid column/> <subgrid columns/> <grid> ... </grid> </grid> which was used in the comments section. In this patch, we expand the availability of this cache to include when the RenderGrid is subgridded in the columns or has a grid item which is a subgrid columns. This should be okay for the following reason: 1.) A grid with subgridded columns and *not* rows will create its own rows that are independent from the root grid. As a result, it will perform track sizing on those rows and will need the cache for the exact same reason. 2.) The shared columns should not impose a restriction on the cache since the only time it should be used is for the first pass of row sizing. However, we impose an additional restriction to limit the cache if there are any orthogonal subgrids. This is mostly just as a simplification to not have to worry about dealing with the writing mode flips. This mostly resolves the issue on lobste.rs as we can now load the page, but there are still some visual glitches when resizing the viewport quickly. This is because there are some row subgrids on the page, although not as many, in which we still experience some slowness. I plan to address this in a follow-up patch as this will require some additional logic to handle it. The performance test that was added went from ~3 runs/s -> 55k runs/s on my M1 Ultra Studio. Canonical link: https://commits.webkit.org/295826@main
https://bugs.webkit.org/show_bug.cgi?id=293929 rdar://152461747 Reviewed by Sam Weinig. This patch builds on Bug 293059, and switches from deprecated AppKit methods to the modern equivalents. There is no change in behavior. * Source/WebKitLegacy/mac/WebInspector/WebNodeHighlight.mm: * Source/WebKitLegacy/mac/WebView/WebFrame.mm: (-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]): * Source/WebKitLegacy/mac/WebView/WebFullScreenController.mm: (-[WebFullScreenController enterFullScreen:willEnterFullscreen:didEnterFullscreen:]): (-[WebFullScreenController _startEnterFullScreenAnimationWithDuration:]): (-[WebFullScreenController _startExitFullScreenAnimationWithDuration:]): * Source/WebKitLegacy/mac/WebView/WebHTMLView.mm: (-[WebHTMLView _updateMouseoverWithFakeEvent]): (-[WebHTMLView _autoscroll]): (-[WebHTMLView accessibilityHitTest:]): (-[WebHTMLView _colorAsString:]): * Source/WebKitLegacy/mac/WebView/WebTextCompletionController.mm: (-[WebTextCompletionController _buildUI]): (-[WebTextCompletionController _placePopupWindow:]): Canonical link: https://commits.webkit.org/295827@main
…mark from the favorites bar https://bugs.webkit.org/show_bug.cgi?id=294031 rdar://152196672 Reviewed by Abrar Rahman Protyasha, Aditya Keerthi, and Megan Gardner. Add a new method declaration; see the corresponding paired change for more details. * Source/WebKit/UIProcess/API/mac/WKWebViewMac.mm: (-[WKWebView _setUsesAutomaticContentInsetBackgroundFill:]): * Source/WebKit/UIProcess/mac/WebViewImpl.h: Canonical link: https://commits.webkit.org/295828@main
https://bugs.webkit.org/show_bug.cgi?id=293992 rdar://152536037 Reviewed by Sam Sneddon. Add mock repository to test_exporter unittests. Find the WebKit repository using WebKitFinder and use webkitscmpy mocks in upload unittests. * Tools/Scripts/webkitpy/tool/commands/upload_unittest.py: (UploadCommandsTest): * Tools/Scripts/webkitpy/w3c/test_exporter.py: (WebPlatformTestExporter.__init__): * Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py: (TestExporterTest.test_export_invalid_token): (TestExporterTest.test_export_wrong_token): (TestExporterTest.test_has_wpt_changes): (TestExporterTest.test_has_no_wpt_changes_for_no_diff): Canonical link: https://commits.webkit.org/295829@main
https://bugs.webkit.org/show_bug.cgi?id=294045 Broke WebAudio rendering Reverted changeset: "Underruns in WebContent Process audio thread lead to extra latency" https://bugs.webkit.org/show_bug.cgi?id=293296 https://commits.webkit.org/295323@main Canonical link: https://commits.webkit.org/295830@main
…ne outside of layout https://bugs.webkit.org/show_bug.cgi?id=294026 Reviewed by Antti Koivisto. Replace generatesLineBoxesForInlineChild with isEmptyInline (calling generatesLineBoxesForInlineChild outside of layout may produce unexpected result do to the lack of first-line info) * Source/WebCore/rendering/updating/RenderTreeBuilderList.cpp: (WebCore::parentCandidateForMarker): (WebCore::generatesLineBoxesForInlineChild): Deleted. Canonical link: https://commits.webkit.org/295831@main
https://bugs.webkit.org/show_bug.cgi?id=288814 rdar://145826169 Reviewed by Keith Miller. DFG AI should continuously reduce the abstract value's possibility, otherwise the constant folding will remove some nodes based on the previous decision. NewArrayWithSpread says that it returns CoW array with one argument (Spread for example), but later, when it gets converted to PhantomSpread and PhantomNewArrayBuffer with non contiguous CoW immutable butterfly, then it starts saying that it returns non-CoW array. It is possible that we already removed some of DFG nodes based on the previous assumption, and changing this causes a bug that we may miss the necessary checks. This patch makes this node return CoW contiguous array for PhantomSpread(PhantomNewArrayBuffer) case regardless so that we can avoid this problem. * JSTests/stress/dfg-ai-should-reduce-new-array-with-spread-structures.js: Added. (i.f11): (i.C13): * Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread): (JSC::FTL::DFG::LowerDFGToB3::createContiguousImmutableButterflyFromPhantomNewArrayBuffer): (JSC::FTL::DFG::LowerDFGToB3::createContiguousImmutableButterflyFromPhantomCreateRest): (JSC::FTL::DFG::LowerDFGToB3::compileSpread): Originally-landed-as: 289651.293@safari-7621-branch (4c7737fa3c68). rdar://151710409 Canonical link: https://commits.webkit.org/295832@main
https://bugs.webkit.org/show_bug.cgi?id=293975 rdar://152519277 Reviewed by Sosuke Suzuki. This patch implements TypedArray#map / filter in C++. We are moving most of TypedArray functions to C++ since C++ can do much faster operation in particular for these typed code. * Source/JavaScriptCore/builtins/TypedArrayPrototype.js: (map): Deleted. * Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h: (JSC::genericTypedArrayViewProtoFuncMap): * Source/JavaScriptCore/runtime/JSTypedArrayViewPrototype.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): (JSC::JSTypedArrayViewPrototype::finishCreation): Canonical link: https://commits.webkit.org/295833@main
https://bugs.webkit.org/show_bug.cgi?id=293993 Reviewed by Tim Nguyen. Upstream commit: web-platform-tests/wpt@3de4cc4 * LayoutTests/TestExpectations: * LayoutTests/imported/w3c/resources/resource-files.json: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/WEB_FEATURES.yml: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/WEB_FEATURES.yml: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/filter-interpolation-sign-function-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/filter-interpolation-sign-function.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/animation/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-backdrop-filter-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-backdrop-filter.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-clip-path-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-clip-path-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-clip-path.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-filter-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-filter-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-filter.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-mix-blend-mode-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-mix-blend-mode.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-opacity-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-opacity-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-opacity.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-backdrop-root-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-basic-background-color-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-basic-blur-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-basic-blur.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-boundary-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-boundary.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-radius-zoom-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-radius-zoom-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-radius-zoom.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-zoom-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-zoom-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-zoom.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping-2-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping-2.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-edge-mirror-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-edge-mirror.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels-2-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels-2.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-important-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-important.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-isolation-expected.html: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-isolation-ref.html: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-isolation.html: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter.html: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-plus-mask-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-plus-mask-large-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-plus-mask-large-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-plus-mask-large.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-plus-mask-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-plus-mask.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-reference-filter-mutated-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-reference-filter-mutated.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-scale-transform-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-scale-transform-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-scale-transform.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-svg-blur-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-svg-blur.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-transform-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-transform-popover-crash.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-transform-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-transform.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/crashtests/external-reference-in-interleaved-oof-crash.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/crashtests/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/css-backdrop-filter-transform-clip-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/css-backdrop-filter-transform-clip-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/css-backdrop-filter-transform-clip.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/css-filters-animation-brightness.html: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/css-filters-opacity-hit-testing-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/css-filters-opacity-hit-testing.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/drop-shadow-currentcolor-dynamic-003-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/drop-shadow-currentcolor-dynamic-003.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/empty-element-with-filter-002-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/empty-element-with-filter-002.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/empty-element-with-filter-003-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/empty-element-with-filter-003.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/empty-element-with-filter-004-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/empty-element-with-filter-004.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/feComposite-intersection-feTile-input-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/feComposite-intersection-feTile-input-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/feComposite-intersection-feTile-input-svg-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/feComposite-intersection-feTile-input-svg.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/feComposite-intersection-feTile-input.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/fecolormatrix-negative-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/fecolormatrix-negative-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/fecolormatrix-negative.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/feimage-svg-image-with-nested-data-url-crash.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-region-html-content-viewport.tentative-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-region-html-content-viewport.tentative.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-sign-function-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-sign-function.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-subregion-01-expected.html: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-subregion-01-ref.html: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-subregion-01.html: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filters-ref-brightness-001.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filters-ref-brightness-002.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filters-ref-brightness-003.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/hidpi-invert-filter-background-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/hidpi-invert-filter-background-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/hidpi-invert-filter-background.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/parsing/WEB_FEATURES.yml: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/parsing/flood-opacity-computed-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/parsing/flood-opacity-computed.svg: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/parsing/flood-opacity-valid-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/parsing/flood-opacity-valid.svg: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/parsing/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-clip-rect-2-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-plus-will-change-opacity-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filter-svg-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/background-image-blur-repaint-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/clip-under-filter-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/clip-under-filter-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/clip-under-filter-003-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/drop-shadow-clipped-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-add-hw-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-delete-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-displacement-negative-scale-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-feimage-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-feimage-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-feimage-003-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-feimage-004-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-lighting-no-light.tentative-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-local-url-with-base-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-merge-no-inputs.tentative-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-obb-dimensions-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-on-span-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-on-transparent-element-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-rename-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-rename-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-source-alpha-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/effect-reference-source-alpha-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/empty-element-with-filter-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/fecomposite-non-zero-inoffset-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-effect-remove-unattached-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-region-negative-positioned-child-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-region-transformed-child-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-region-transformed-composited-child-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-turbulence-invalid-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-003-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filters-opacity-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filters-opacity-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/green-100x100.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/green-98-100x100.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/green-blue-stripe-100x100.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/reference-filter-update-on-attribute-change-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/remove-filter-repaint-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/repaint-added-backdrop-filter-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/root-element-with-opacity-filter-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/svg-feflood-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/svg-feimage-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/svg-feoffset-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/svg-relative-urls-001-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/svg-relative-urls-002-ref.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/w3c-import.log: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/resources/backdrop-filter-backdrop-root.css: Added. (.container): (.testcase): (.testcase div): (.testcase>div): (.testcase>div>div): (*): * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/resources/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/filtersubregion00.png: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/hueRotate.svg: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/simulate-backdrop-blur.js: Added. (const.isAncestor): (const.commonAncestor): (const.computeOffset): (const.cloneExcept): (simulateBackdropBlur): * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/support/README: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/support/swatch-green.png: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/support/swatch-red.png: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/support/w3c-import.log: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/support/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/svg-feimage-003-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/svg-feimage-003.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/svg-feimage-004-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/svg-feimage-004.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/svg-feimage-005-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/svg-feimage-005.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/w3c-import.log: * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/295834@main
https://bugs.webkit.org/show_bug.cgi?id=293907 Reviewed by Darin Adler. Adds types to represent inset, margins and padding: Style::InsetEdge (wraps WebCore::Length) Style::InsetBox (minimally serializing group of Style::InsetEdges) Style::MarginEdge (wraps WebCore::Length) Style::MarginBox (minimally serializing group of Style::MarginEdges) Style::PaddingEdge (wraps WebCore::Length) Style::PaddingBox (minimally serializing group of Style::PaddingEdges) The edge types are purely zero-cost wrappers of `WebCore::Length`, meaning there should be no runtime overhead here. The goal of the types is to enforce what keywords (e.g. 'auto') and value ranges (all or nonnegative) are allowed. Additionally, instead of allowing direct access to the underlying `WebCore::Length` or to `WebCore::Length::value()`, the numeric value can be accessed via functions like `tryFixed()` which return `std::optional<Style::Length<R>>`. This means the old idiomatic way for getting the value: ``` if (edge.isFixed()) useValue(edge.value()); ``` is now replaced with: ``` if (auto fixedValue = edge.tryFixed()) useValue(fixedValue->value); ``` This ensures that the numeric value is not used without checking the type. To make these new types possible, a few infrastructure changes were needed: - `Style::Blending` was enhanced to add a new `requiresInterpolationForAccumulativeIteration` function to allow delegating `Style::Interpolation::WrapperBase::requiresInterpolationForAccumulativeIteration`. - `Style::Blending` was enhanced so that `canBlend` and the new `requiresInterpolationForAccumulativeIteration` are optional and have default values if not provided. - `Style::Blending` was enhanced so that the dispatch functions now check which versions of the functions are implemented on the specializations allowing types to only implement the most advanced version they actually need. - `Theme::controlPadding` was moved to `RenderTheme` to allow use of `Style::PaddingBox`. It is only called from `RenderTheme`. There is quite a bit of duplication between the `*Edge` types that can and should be reduced in follow on changes. * Source/WebCore/CMakeLists.txt: * Source/WebCore/Headers.cmake: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/animation/ViewTimeline.cpp: * Source/WebCore/css/CSSProperties.json: * Source/WebCore/css/values/CSSValueAggregates.h: * Source/WebCore/dom/Document.cpp: * Source/WebCore/layout/Verification.cpp: * Source/WebCore/layout/formattingContexts/FormattingGeometry.cpp: * Source/WebCore/layout/formattingContexts/FormattingGeometry.h: * Source/WebCore/layout/formattingContexts/block/BlockMarginCollapse.cpp: * Source/WebCore/layout/integration/LayoutIntegrationBoxGeometryUpdater.cpp: * Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp: * Source/WebCore/page/PrintContext.cpp: * Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp: * Source/WebCore/platform/Length.h: * Source/WebCore/platform/LengthFunctions.cpp: * Source/WebCore/platform/LengthFunctions.h: * Source/WebCore/platform/RectEdges.h: * Source/WebCore/platform/Theme.cpp: * Source/WebCore/platform/Theme.h: * Source/WebCore/platform/mac/ThemeMac.h: * Source/WebCore/platform/mac/ThemeMac.mm: * Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp: * Source/WebCore/rendering/PositionedLayoutConstraints.cpp: * Source/WebCore/rendering/PositionedLayoutConstraints.h: * Source/WebCore/rendering/RenderBlock.cpp: * Source/WebCore/rendering/RenderBlockFlow.cpp: * Source/WebCore/rendering/RenderBox.cpp: * Source/WebCore/rendering/RenderBoxModelObject.cpp: * Source/WebCore/rendering/RenderBoxModelObject.h: * Source/WebCore/rendering/RenderBoxModelObjectInlines.h: * Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp: * Source/WebCore/rendering/RenderElement.cpp: * Source/WebCore/rendering/RenderFlexibleBox.cpp: * Source/WebCore/rendering/RenderFlexibleBox.h: * Source/WebCore/rendering/RenderGrid.cpp: * Source/WebCore/rendering/RenderInline.cpp: * Source/WebCore/rendering/RenderListMarker.cpp: * Source/WebCore/rendering/RenderMenuList.cpp: * Source/WebCore/rendering/RenderReplaced.cpp: * Source/WebCore/rendering/RenderScrollbarPart.cpp: * Source/WebCore/rendering/RenderTable.cpp: * Source/WebCore/rendering/RenderTextInlines.h: * Source/WebCore/rendering/RenderTheme.cpp: * Source/WebCore/rendering/RenderTheme.h: * Source/WebCore/rendering/adwaita/RenderThemeAdwaita.cpp: * Source/WebCore/rendering/adwaita/RenderThemeAdwaita.h: * Source/WebCore/rendering/ios/RenderThemeIOS.h: * Source/WebCore/rendering/ios/RenderThemeIOS.mm: * Source/WebCore/rendering/mac/RenderThemeMac.h: * Source/WebCore/rendering/mac/RenderThemeMac.mm: * Source/WebCore/rendering/style/RenderStyle.cpp: * Source/WebCore/rendering/style/RenderStyle.h: * Source/WebCore/rendering/style/RenderStyleInlines.h: * Source/WebCore/rendering/style/RenderStyleSetters.h: * Source/WebCore/rendering/style/StyleRareNonInheritedData.h: * Source/WebCore/rendering/style/StyleSurroundData.cpp: * Source/WebCore/rendering/style/StyleSurroundData.h: * Source/WebCore/style/StyleAdjuster.cpp: * Source/WebCore/style/StyleBuilderConverter.h: * Source/WebCore/style/StyleBuilderCustom.h: * Source/WebCore/style/StyleExtractorConverter.h: * Source/WebCore/style/StyleExtractorCustom.h: * Source/WebCore/style/StyleExtractorSerializer.h: * Source/WebCore/style/StyleInterpolationFunctions.h: * Source/WebCore/style/StyleInterpolationWrappers.h: * Source/WebCore/style/values/StyleValueTypes.h: * Source/WebCore/style/values/borders/StyleBoxShadow.cpp: * Source/WebCore/style/values/borders/StyleBoxShadow.h: * Source/WebCore/style/values/borders/StyleCornerShapeValue.h: * Source/WebCore/style/values/box/StyleMargin.cpp: Added. * Source/WebCore/style/values/box/StyleMargin.h: Added. * Source/WebCore/style/values/box/StylePadding.cpp: Added. * Source/WebCore/style/values/box/StylePadding.h: Added. * Source/WebCore/style/values/color/StyleColor.cpp: * Source/WebCore/style/values/color/StyleDynamicRangeLimit.h: * Source/WebCore/style/values/position/StyleInset.cpp: Added. * Source/WebCore/style/values/position/StyleInset.h: Added. * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Blending.h: * Source/WebCore/style/values/scroll-snap/StyleScrollMargin.cpp: * Source/WebCore/style/values/scroll-snap/StyleScrollMargin.h: * Source/WebCore/style/values/scroll-snap/StyleScrollPadding.cpp: * Source/WebCore/style/values/scroll-snap/StyleScrollPadding.h: * Source/WebCore/style/values/text-decoration/StyleTextShadow.cpp: * Source/WebCore/style/values/text-decoration/StyleTextShadow.h: Canonical link: https://commits.webkit.org/295835@main
…itorRulesForStore:` https://bugs.webkit.org/show_bug.cgi?id=293802 Reviewed by Abrar Rahman Protyasha. Fix the spelling for this staged declaration, from `ResouceMonitor` to `ResourceMonitor`. Note that the new (fixed) name was introduced in rdar://152277854, so this change can't land until that change is available in all relevant configurations. * Source/WebCore/PAL/pal/spi/cocoa/WebPrivacySPI.h: * Source/WebKit/Platform/cocoa/WebPrivacyHelpers.mm: (WebKit::ResourceMonitorURLsController::prepare): (WebKit::ResourceMonitorURLsController::getSource): Canonical link: https://commits.webkit.org/295836@main
https://bugs.webkit.org/show_bug.cgi?id=293958 Reviewed by Chris Dumez. * Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::setIsRunningTest): (WebKit::WebResourceLoadStatisticsStore::setShouldClassifyResourcesBeforeDataRecordsRemoval): (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): (WebKit::WebResourceLoadStatisticsStore::postTask): (WebKit::WebResourceLoadStatisticsStore::destroyResourceLoadStatisticsStore): (WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk): (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): (WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode): (WebKit::WebResourceLoadStatisticsStore::scheduleStatisticsAndDataRecordsProcessing): (WebKit::WebResourceLoadStatisticsStore::statisticsDatabaseHasAllTables): (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): (WebKit::WebResourceLoadStatisticsStore::grantStorageAccess): (WebKit::WebResourceLoadStatisticsStore::setThirdPartyCookieBlockingMode): (WebKit::WebResourceLoadStatisticsStore::setSameSiteStrictEnforcementEnabled): (WebKit::WebResourceLoadStatisticsStore::setFirstPartyWebsiteDataRemovalMode): (WebKit::WebResourceLoadStatisticsStore::setPersistedDomains): (WebKit::WebResourceLoadStatisticsStore::setStandaloneApplicationDomain): (WebKit::WebResourceLoadStatisticsStore::setAppBoundDomains): (WebKit::WebResourceLoadStatisticsStore::setManagedDomains): (WebKit::WebResourceLoadStatisticsStore::didCreateNetworkProcess): (WebKit::WebResourceLoadStatisticsStore::performDailyTasks): (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): (WebKit::WebResourceLoadStatisticsStore::logCrossSiteLoadWithLinkDecoration): (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction): (WebKit::WebResourceLoadStatisticsStore::setTimeAdvanceForTesting): (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction): (WebKit::WebResourceLoadStatisticsStore::setLastSeen): (WebKit::WebResourceLoadStatisticsStore::mergeStatisticForTesting): (WebKit::WebResourceLoadStatisticsStore::isRelationshipOnlyInDatabaseOnce): (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource): (WebKit::WebResourceLoadStatisticsStore::setMostRecentWebPushInteractionTime): (WebKit::WebResourceLoadStatisticsStore::dumpResourceLoadStatistics): (WebKit::WebResourceLoadStatisticsStore::isPrevalentResource): (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource): (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubresourceUnder): (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder): (WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo): (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource): (WebKit::WebResourceLoadStatisticsStore::setGrandfathered): (WebKit::WebResourceLoadStatisticsStore::isGrandfathered): (WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameDomain): (WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameDomain): (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo): (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom): (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo): (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom): (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdate): (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): (WebKit::WebResourceLoadStatisticsStore::domainIDExistsInDatabase): (WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction): (WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval): (WebKit::WebResourceLoadStatisticsStore::setGrandfatheringTime): (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler): (WebKit::WebResourceLoadStatisticsStore::setMaxStatisticsEntries): (WebKit::WebResourceLoadStatisticsStore::setPruneEntriesDownTo): (WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues): (WebKit::WebResourceLoadStatisticsStore::removeDataForDomain): (WebKit::WebResourceLoadStatisticsStore::registrableDomains): (WebKit::WebResourceLoadStatisticsStore::registrableDomainsWithLastAccessedTime): (WebKit::WebResourceLoadStatisticsStore::registrableDomainsExemptFromWebsiteDataDeletion): (WebKit::WebResourceLoadStatisticsStore::aggregatedThirdPartyData): (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting): * Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h: * Source/WebKit/SaferCPPExpectations/UncountedLambdaCapturesCheckerExpectations: Canonical link: https://commits.webkit.org/295837@main
…sing connection, leading to use after free https://bugs.webkit.org/show_bug.cgi?id=289571 rdar://146475370 Reviewed by Sihui Liu. This fixes the bug by printing an error and returning empty data if an error happens with the database * LayoutTests/ipc/coreipc.js: (splitClassAndFunction): (CoreIPCClass.prototype.initializeMessageByName): (CoreIPCClass.prototype.initializeMessages): (CoreIPCClass.prototype.generateSendingFunction): (export.StreamConnectionInterface): (export.StreamConnectionInterface.prototype.getIdentifier): (export.StreamConnectionInterface.prototype.initializeMessages): (export.StreamConnectionInterface.prototype.generateStreamSendingFunction): (export.ArgumentSerializer.parseTemplate): (export.ArgumentSerializer): * LayoutTests/ipc/storage-area-cache-use-after-free-expected.txt: Added. * LayoutTests/ipc/storage-area-cache-use-after-free.html: Added. * Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp: (WebKit::SQLiteStorageArea::allItems): Originally-landed-as: 289651.283@safari-7621-branch (7719e167beea). rdar://151707003 Canonical link: https://commits.webkit.org/295838@main
https://bugs.webkit.org/show_bug.cgi?id=294021 rdar://152574325 Reviewed by Ryosuke Niwa. Apply https://github.com/WebKit/WebKit/wiki/Safer-CPP-Guidelines more strictly to existing code so bad patterns have less of a chance of getting copied. Canonical link: https://commits.webkit.org/295839@main
…WorkerClientInternal with the older id https://bugs.webkit.org/show_bug.cgi?id=294013 rdar://152339634 Reviewed by Chris Dumez. For maps, we only use the UUID but within m_clientIdentifiersPerOrigin, we use a Vector, where the process identifier matters for equality. We thus need to use the previously registered ID (with the previous process) instead of the ID with the new process ID. * Source/WebCore/workers/service/server/SWServer.cpp: (WebCore::SWServer::registerServiceWorkerClient): Canonical link: https://commits.webkit.org/295840@main
https://bugs.webkit.org/show_bug.cgi?id=294014 rdar://152567851 Reviewed by Ryosuke Niwa. Apply https://github.com/WebKit/WebKit/wiki/Safer-CPP-Guidelines more strictly to existing code so bad patterns have less of a chance of getting copied. This is the final patch in this series. The remainder are an exercise for the reader. Canonical link: https://commits.webkit.org/295841@main
…dFoo() https://bugs.webkit.org/show_bug.cgi?id=294024 Reviewed by Tim Nguyen. Also covers checkedFoo(). Canonical link: https://commits.webkit.org/295842@main
…igin rdar://152269409 https://bugs.webkit.org/show_bug.cgi?id=293763 Reviewed by Per Arne Vollan. To match the behavior in other browsers. * LayoutTests/imported/w3c/web-platform-tests/file-system-access/opaque-origin.https.window-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/fs/opaque-origin.https.window-expected.txt: * Source/WebCore/Modules/storage/StorageManager.cpp: (WebCore::connectionInfo): (WebCore::StorageManager::persisted): (WebCore::StorageManager::persist): (WebCore::StorageManager::estimate): (WebCore::StorageManager::fileSystemAccessGetDirectory): Canonical link: https://commits.webkit.org/295843@main
https://bugs.webkit.org/show_bug.cgi?id=289572 rdar://144699810 Reviewed by Alex Christensen. Make content extension rules apply to DNS prefetch and preconnect, just as they already do for prefetch and normal loads. * LayoutTests/http/tests/contentextensions/dns-prefetch-blocked-expected.txt: Added. * LayoutTests/http/tests/contentextensions/dns-prefetch-blocked.html: Added. * LayoutTests/http/tests/contentextensions/dns-prefetch-blocked.html.json: Added. * LayoutTests/http/tests/contentextensions/preconnect-blocked-expected.txt: Added. * LayoutTests/http/tests/contentextensions/preconnect-blocked.html: Added. * LayoutTests/http/tests/contentextensions/preconnect-blocked.html.json: Added. * Source/WebCore/loader/FrameLoader.cpp: (WebCore::FrameLoader::prefetchDNSIfNeeded): * Source/WebCore/loader/FrameLoader.h: * Source/WebCore/loader/LinkLoader.cpp: (WebCore::LinkLoader::preconnectIfNeeded): (WebCore::LinkLoader::loadLink): * Source/WebCore/loader/LoaderStrategy.h: * Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::preconnectTo): * Source/WebKit/WebProcess/Network/WebLoaderStrategy.h: * Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::sendTapHighlightForNodeIfNecessary): * Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.cpp: (WebResourceLoadScheduler::preconnectTo): * Source/WebKitLegacy/WebCoreSupport/WebResourceLoadScheduler.h: Originally-landed-as: 289651.274@safari-7621-branch (3af4bf0136a9). rdar://151707262 Canonical link: https://commits.webkit.org/295844@main
https://bugs.webkit.org/show_bug.cgi?id=294050 rdar://problem/152609927 Reviewed by Chris Dumez. This should be enough to remove ComplexTextController.cpp from UncheckedCallArgsCheckerExpectations once [1] on the static analyzer gets resolved. We have 2 remaining failures here due to [1] regarding members of TextLayout. * Source/WebCore/platform/graphics/ComplexTextController.h: [1] llvm/llvm-project#142485 Canonical link: https://commits.webkit.org/295845@main
This reverts commit f5e4733. Not available in qt 6.6.
The Qt port's FrameLoaderClientQt::createHistoryItemTree() was returning nullptr, preventing history items from being created and added to the BackForwardList. This broke back/forward navigation functionality. Fix by implementing createHistoryItemTree() to match the Mac version, which calls the HistoryController to create proper history item trees.
Remove ASSERT(glyphList.size() <= 1) in rawFontForCharacters() as Qt's QTextLayout can legitimately produce multiple glyph runs for complex text like combining characters, ligatures, or mixed scripts. This assertion was inconsistent with how other Qt code in WebKit handles multiple glyph runs (see FontCascadeQt.cpp) and other platform implementations which handle font fallback gracefully without assertions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
The URL bar was showing the previous URL instead of updating immediately during back/forward navigation. This was caused by coreFrameUrl() returning the current document URL instead of the target navigation URL. Fix by checking if there's an active document loader with a different URL and returning that target URL instead. This ensures the URL bar updates synchronously with back/forward navigation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
It makes it difficult to read CI logs because they get truncated.
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.
This should bring us current with WebKit/WebKit@f2a8160.