forked from qtwebkit/qtwebkit
-
Notifications
You must be signed in to change notification settings - Fork 11
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
Merge upstream 2024-12-08 #45
Merged
Merged
Conversation
This file contains 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
…hesizerSpiel https://bugs.webkit.org/show_bug.cgi?id=283971 Reviewed by Philippe Normand. * Source/WebCore/platform/spiel/PlatformSpeechSynthesizerSpiel.cpp: (WebCore::SpielSpeechWrapper::initializeVoiceList): Canonical link: https://commits.webkit.org/287279@main
https://bugs.webkit.org/show_bug.cgi?id=283910 Reviewed by Tim Nguyen. Upstream commit: web-platform-tests/wpt@2cb65c5 * LayoutTests/imported/w3c/resources/resource-files.json: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Document-write-appending-line-feed-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/Document-write-appending-line-feed.html: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-none.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.html: Removed. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-event-handler-content-attributes.tentative-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-event-handler-content-attributes.tentative.html: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Document-parseHTMLUnsafe.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-ShadowRoot-innerHTML-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-ShadowRoot-innerHTML.html: Copied from LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/default-policy-callback-arguments.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-default-policy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-default-policy-mutate-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-default-policy-mutate.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-default-policy.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-function-constructor-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-function-constructor-untrusted-arguments-and-applying-default-policy-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-function-constructor-untrusted-arguments-and-applying-default-policy.html: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-function-constructor.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-no-csp-no-tt-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/eval-no-csp-no-tt.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/legacy-trusted-script-urls-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/legacy-trusted-script-urls.html: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/modify-attributes-in-callback-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/modify-attributes-in-callback.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/support/namespaces.js: Added. * LayoutTests/imported/w3c/web-platform-tests/trusted-types/support/navigation-report-only-support.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/support/navigation-support.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/support/navigation-support.js: Added. (navigateToJavascriptURL): (getAndPreparareNavigationElement): (location.search.includes): * LayoutTests/imported/w3c/web-platform-tests/trusted-types/support/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-navigation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-navigation.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-reporting-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/trusted-types-reporting.html: * LayoutTests/imported/w3c/web-platform-tests/trusted-types/w3c-import.log: * LayoutTests/tests-options.json: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/trusted-types/trusted-types-reporting-expected.txt: * LayoutTests/platform/win/imported/w3c/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-event-handler-content-attributes.tentative-expected.txt: Added. Canonical link: https://commits.webkit.org/287280@main
rdar://140852669 Add explicit types for the parameters of this C++ lambda function. * Source/WebCore/editing/cocoa/DictionaryLookup.mm: (WebCore::DictionaryLookup::stringForPDFSelection): Canonical link: https://commits.webkit.org/287281@main
https://bugs.webkit.org/show_bug.cgi?id=283874 rdar://140796551 Reviewed by Devin Rousso. In 284749@main, I made WebInspectorUI::m_inspectedPageIdentifier a std::optional, as part of making ObjectIdentifier non-nullable. Whenever m_inspectedPageIdentifier was using to send IPC, I started dereferencing m_inspectedPageIdentifier, expecting the identifier to always be valid when sending IPC. However, this assumption turned out to be incorrect and it would cause us to dereference std::nullopt when opening WebInspector on an empty tab (no page loaded). To restore the pre-284749@main behavior, I now null-check m_inspectedPageIdentifier and use 0 as identifier for sending the IPC if m_inspectedPageIdentifier is std::nullopt. This behaves exactly like prior to 284749@main. I have verified locally that it makes the crash go away and Web Inspector correctly opens up on the empty page. * Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp: (WebKit::WebInspectorUI::updateConnection): (WebKit::WebInspectorUI::frontendLoaded): (WebKit::WebInspectorUI::startWindowDrag): (WebKit::WebInspectorUI::bringToFront): (WebKit::WebInspectorUI::closeWindow): (WebKit::WebInspectorUI::reopen): (WebKit::WebInspectorUI::resetState): (WebKit::WebInspectorUI::setForcedAppearance): (WebKit::WebInspectorUI::effectiveAppearanceDidChange): (WebKit::WebInspectorUI::requestSetDockSide): (WebKit::WebInspectorUI::changeAttachedWindowHeight): (WebKit::WebInspectorUI::changeAttachedWindowWidth): (WebKit::WebInspectorUI::changeSheetRect): (WebKit::WebInspectorUI::openURLExternally): (WebKit::WebInspectorUI::revealFileExternally): (WebKit::WebInspectorUI::save): (WebKit::WebInspectorUI::load): (WebKit::WebInspectorUI::pickColorFromScreen): (WebKit::WebInspectorUI::inspectedURLChanged): (WebKit::WebInspectorUI::showCertificate): (WebKit::WebInspectorUI::setInspectorPageDeveloperExtrasEnabled): (WebKit::WebInspectorUI::sendMessageToBackend): * Source/WebKit/WebProcess/Inspector/WebInspectorUI.h: Canonical link: https://commits.webkit.org/287282@main
https://bugs.webkit.org/show_bug.cgi?id=283975 Reviewed by Michael Catanzaro. * Source/WebCore/platform/graphics/texmap/TextureMapper.cpp: (WebCore::TextureMapper::beginPainting): (WebCore::TextureMapper::endPainting): Canonical link: https://commits.webkit.org/287283@main
…Event` https://bugs.webkit.org/show_bug.cgi?id=283958 rdar://140220599 Reviewed by Pascoe. This is a partial revert of the message check changes done for site isolation in 285922@main. Some UI -> WCP messages use a completion handler when an event has been handled, instead of explicitly sending DidReceiveEvent. If a completion handler returns because a WCP has terminated, we won’t have an IPC::Connection& to use for the message checks in didReceiveEvent, leading to a release assertion failure when attempting to access the connection for the mainframe process. We should revert these changes until we have a better way to get an IPC::Connection using sendWithAsyncReply with site isolated web processes. * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::processNextQueuedMouseEvent): (WebKit::WebPageProxy::sendPreventableTouchEvent): (WebKit::WebPageProxy::handlePreventableTouchEvent): (WebKit::WebPageProxy::handleTouchEvent): (WebKit::WebPageProxy::mouseEventHandlingCompleted): (WebKit::WebPageProxy::keyEventHandlingCompleted): (WebKit::WebPageProxy::didReceiveEvent): * Source/WebKit/UIProcess/WebPageProxy.h: Canonical link: https://commits.webkit.org/287284@main
https://bugs.webkit.org/show_bug.cgi?id=252208 rdar://105421820 Reviewed by Antti Koivisto. Parse block-step-round according to: https://drafts.csswg.org/css-rhythm/#block-step-round * LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-round-computed-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-round-computed.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-round-invalid-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-round-invalid.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-round-valid-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-round-valid.html: Added. * LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/property-list.js: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: * LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: * LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: * LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: * Source/WebCore/animation/CSSPropertyAnimation.cpp: (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): * Source/WebCore/css/CSSPrimitiveValueMappings.h: * Source/WebCore/css/CSSProperties.json: * Source/WebCore/css/ComputedStyleExtractor.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle const): * Source/WebCore/rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::conservativelyCollectChangedAnimatableProperties const): * Source/WebCore/rendering/style/RenderStyle.h: * Source/WebCore/rendering/style/RenderStyleConstants.cpp: (WebCore::operator<<): * Source/WebCore/rendering/style/RenderStyleConstants.h: * Source/WebCore/rendering/style/RenderStyleInlines.h: (WebCore::RenderStyle::blockStepRound const): (WebCore::RenderStyle::initialBlockStepRound): * Source/WebCore/rendering/style/RenderStyleSetters.h: (WebCore::RenderStyle::setBlockStepRound): * Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator== const): (WebCore::StyleRareNonInheritedData::dumpDifferences const): * Source/WebCore/rendering/style/StyleRareNonInheritedData.h: Canonical link: https://commits.webkit.org/287285@main
https://bugs.webkit.org/show_bug.cgi?id=274345 Update the test expectation as per recent bots results and local run confirmations. * Tools/TestWebKitAPI/glib/TestExpectations.json: Canonical link: https://commits.webkit.org/287286@main
…'[]' is ambiguous (with operand types 'ASCIILiteral' and 'int') https://bugs.webkit.org/show_bug.cgi?id=283768 Reviewed by Fujii Hironori. Specify the type of the integer literal to be size_t to disambiguate which operator[] to use. I'm not actually sure where the built-in operator[]s are coming from, but that probably doesn't matter since we surely want to use the one defined in ASCIILiteral. * Source/WebCore/svg/SVGToOTFFontConversion.cpp: (WebCore::SVGToOTFFontConverter::append32BitCode): (WebCore::SVGToOTFFontConverter::appendTable): Canonical link: https://commits.webkit.org/287287@main
…ailures rdar://136525714 https://bugs.webkit.org/show_bug.cgi?id=280202 Reviewed by Chris Dumez. We relax a bit the URL request class check to allow both mutable ans immutable NS url request classes. ResourceRequest can either wrap a NSURLRequest or recreate a NSMutableURLRequest, depending on how the request is sent through IPC or manipulated. If ResourceLoad delegates were API, it might be worth ensuring that the exposed request is NSURLRequest. But this is not needed for this API test. * Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm: (LoadInfo)): * Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm: (TEST(ResourceLoadStatistics, StorageAccessOnRedirectSitesWithQuirk)): (TEST(ResourceLoadStatistics, StorageAccessGrantMultipleSubFrameDomains)): Canonical link: https://commits.webkit.org/287288@main
https://bugs.webkit.org/show_bug.cgi?id=283977 rdar://problem/140857659 Reviewed by Tim Nguyen. Fix typo in WPT test exporter script. * Tools/Scripts/webkitpy/w3c/test_exporter.py: (parse_args): Canonical link: https://commits.webkit.org/287289@main
https://bugs.webkit.org/show_bug.cgi?id=283859# <rdar://problem/140734847> Reviewed by Antti Koivisto. We end up producing 2 'last' lines which confuses the 'clear' gap computation. e.g. some content<br><span></span> The first (and correct) 'last' line is "some content<br>" while we also mark the trailing (and completely collapsed) "<span></span>" content as last line (even though this content does not generate any display content). * LayoutTests/fast/block/float/clear-followed-by-empty-content-expected.html: Added. * LayoutTests/fast/block/float/clear-followed-by-empty-content.html: Added. * Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp: (WebCore::Layout::LineBuilder::isLastLineWithInlineContent const): Canonical link: https://commits.webkit.org/287290@main
https://bugs.webkit.org/show_bug.cgi?id=283979 HEVC tests are asserting in Debug Reverted changeset: "RTCVideoDecoderH264 should report its last available frame as not reordered" https://bugs.webkit.org/show_bug.cgi?id=283909 https://commits.webkit.org/287220@main Canonical link: https://commits.webkit.org/287291@main
Update test expectations of tests passing. * LayoutTests/http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.https-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt. * LayoutTests/platform/glib/TestExpectations: * LayoutTests/platform/gtk/TestExpectations: * LayoutTests/platform/wpe/TestExpectations: Canonical link: https://commits.webkit.org/287292@main
…o-finger pans to scroll https://bugs.webkit.org/show_bug.cgi?id=283931 rdar://139834901 Reviewed by Abrar Rahman Protyasha. On iPad, when scrolling via 2-finger swipe on a connected trackpad, `wheel` events are dispatched to the page via the `WebPage::dispatchWheelEventWithoutScrolling` IPC message. As the name suggests, this only dispatches `wheel` DOM events to the page, and returns a boolean result back to the UI process indicating whether or not scrolling should be allowed to commence. UIKit will then only drive the default scroll animation on the native scroll view under the pointer if the event was not `handled`. Whether the event is handled or not depends on the return value of `EventHandler::handleWheelEvent`. In the case of the Outlook native app's Channels tab, which is comprised of a large full-viewport subscrollable overflow container, it returns `true` only because the body and root elements have `overscroll-behavior: none;`, causing us to exit early in `handleWheelEventInternal` with `true`: ``` HandleUserInputEventResult EventHandler::handleWheelEventInternal(…) { … auto adjustedWheelEvent = event; auto filteredDelta = adjustedWheelEvent.delta(); filteredDelta = view->deltaForPropagation(filteredDelta); if (view->shouldBlockScrollPropagation(filteredDelta)) return true; // <--- ``` ...and subsequently causes us to block scrolling on the subscrollable container. In this same codepath on macOS, we also return `true` here, but the key difference is that treating the wheel event as `handled := true` here doesn't simply block scrolling — that only happens if we've blocked scrolling due to `preventDefault` being called. To fix this impedance mismatch between the return value of `handleWheelEvent()` and how it's interpreted within `WebPage::dispatchWheelEventWithoutScrolling`, we plumb the `EventHandling` result alongside `HandleUserInputEventResult` up from WebCore to WebKit as a `std::pair`, and consult the event handling result (i.e. whether or not `EventHandling::DefaultPrevented` is set) in addition to checking whether the event was handled. * Source/WebCore/page/EventHandler.cpp: (WebCore::EventHandler::handleWheelEvent): Make this return a `std::pair<HandleUserInputEventResult, OptionSet<EventHandling>>`, and plumb it through to the client layer (see `WebPage` changes below) so that we can check if the default was prevented (not just if the event was handled) in `dispatchWheelEventWithoutScrolling`. (WebCore::EventHandler::passWheelEventToWidget): * Source/WebCore/page/EventHandler.h: * Source/WebCore/page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::wheelEvent): * Source/WebCore/page/mac/EventHandlerMac.mm: (WebCore::EventHandler::wheelEvent): (WebCore::EventHandler::passWheelEventToWidget): * Source/WebCore/platform/ScrollableArea.cpp: (WebCore::ScrollableArea::shouldBlockScrollPropagation const): Drive-by fix: rewrite this method to be more readable: - Cache the results of calling `(horizontal|vertical)OverscrollBehaviorPreventsPropagation` in local variables instead of calling the respective methods multiple times. - Split the return value into several early returns that achieve the same result, but (more clearly) represent the scenarios in which this is true: either both axes stop propagation, or only one axis stops propagation but the biased delta amount for the opposite axis is 0. * Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView scrollView:handleScrollUpdate:completion:]): * Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::dispatchWheelEvent): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::handleWheelEvent): (WebKit::WebPage::wheelEvent): (WebKit::WebPage::dispatchWheelEventWithoutScrolling): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebPage/WebPage.messages.in: Rename this variable to reflect that this result flag represents whether or not scrolling should be prevented, not just whether the event was handled. * Tools/TestWebKitAPI/Tests/ios/WKScrollViewTests.mm: (-[WKWebView synchronouslyHandleScrollEventWithPhase:location:delta:]): (TEST(WKScrollViewTests, AsynchronousWheelEventHandling)): (TEST(WKScrollViewTests, OverscrollBehaviorShouldNotPreventScrolling)): Add a new API test to exercise this change, by verifying that scrolling is not prevented when dispatching wheel events over an overflow scrollable region inside of a root and body element with `overscroll-behavior: contain;`. Also verify that scrolling is (correctly) prevented if the page explicitly calls `preventDefault()` on the wheel event. Canonical link: https://commits.webkit.org/287293@main
…rollable when text outside of the container is selected https://bugs.webkit.org/show_bug.cgi?id=283804 rdar://140308383 Reviewed by Richard Robinson. On iOS, when `SelectionHonorsOverflowScrolling` is enabled, the text selection display interaction can be installed under arbitrary compositing views in the UI-side layer tree/compositing view hierarchy. However, this exposes a bug in which the text selection display interaction's managed selection views (i.e. native container views that encapsulate the selection highlight view, range adjustment handles, and other UI affordances managed by the interaction) will block hit-testing underneath the `WKScrollView`, if the compositing view that contains the selection contains child scroll views. This prevents UIKit from routing `UITouchEvent`s to the proper child scroll view under the gesture location (and therefore prevents scrolling), if the text selection display interaction is installed on anything that covers the child scroller. From manual testing, it seems generally safe to mark these selection display interaction containers with `userInteractionEnabled := NO`, since their child views (e.g. range adjustment handles) have user interaction enabled, and the only other gesture relevant to this interaction is tapping to toggle edit menu visibility, which isn't affected by whether or not these container views are interactive due to the fact that the text tap gesture is installed over the content view. To limit unnecessary bincompat risk (and because this probably uniquely affects WebKit's integration of the selection display interaction), we mitigate this by overriding `-[WKScrollView hitTest:withEvent:]` and forcing `userInteractionEnabled` to be `NO` for these managed container views over the scope of hit-testing. * LayoutTests/editing/selection/ios/scroll-overflow-container-with-selection-expected.txt: Added. * LayoutTests/editing/selection/ios/scroll-overflow-container-with-selection.html: Added. Add a layout test to exercise the bug, by selecting text in the mainframe and then attempting to scroll an overflow container below it via pan gesture. * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView makeTextSelectionViewsNonInteractiveForScope]): Add a helper method that returns a RAII object (`ScopeExit`), which callers can use to temporarily make selection container views non-interactive. See above for more details. * Source/WebKit/UIProcess/ios/WKScrollView.mm: (-[WKScrollView hitTest:withEvent:]): Call `-makeTextSelectionViewsNonInteractiveForScope` when hit-testing. * Source/WebKit/UIProcess/ios/WKTextInteractionWrapper.h: * Source/WebKit/UIProcess/ios/WKTextInteractionWrapper.mm: (-[WKTextInteractionWrapper managedTextSelectionViews]): (-[WKTextInteractionWrapper prepareToMoveSelectionContainer:]): Add logic to keep track of all the managed views of the text selection display interaction, by observing which views were introduced to the target container view as a result of invoking `-didMoveToView:`. Canonical link: https://commits.webkit.org/287294@main
…2 if appropriate for storage type https://bugs.webkit.org/show_bug.cgi?id=283941 rdar://140773922 Reviewed by Yusuke Suzuki and Keith Miller. Generates a Const32Value in OMG instead of a Const64Value when zero-initializing fields in struct.new_default when the field storage types are 32-bit or smaller. This satisfies the B3 validator which expects an Int32 input for Stores of 32 bits or smaller. * JSTests/wasm/stress/struct-new_default-small-members.js: Added. * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp: (JSC::Wasm::OMGIRGenerator::addStructNewDefault): * Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp: (JSC::Wasm::OMGIRGenerator::addStructNewDefault): Canonical link: https://commits.webkit.org/287295@main
https://bugs.webkit.org/show_bug.cgi?id=283146 Reviewed by Jonathan Bedard. By default, git-cherry-pick disallows cherry-picking an empty commit. However, it's not unreasonable to submit a PR with an empty commit where later commits gets squashed into it, especially when there's benefit in preserving history for review. Note that this _doesn't_ result in redundant commits (i.e., those which have become empty due to an earlier commit) being allowed, it only allows commits which were originally empty. * Tools/CISupport/ews-build/steps.py: (CheckOutPullRequest.run): * Tools/CISupport/ews-build/steps_unittest.py: (TestCheckOutPullRequest.test_success): (TestCheckOutPullRequest.test_success_apple): (TestCheckOutPullRequest.test_success_integration_remote): (TestCheckOutPullRequest.test_success_win): Canonical link: https://commits.webkit.org/287296@main
https://bugs.webkit.org/show_bug.cgi?id=283143 Reviewed by Jonathan Bedard. This has been unused since we moved to Python 3, and clearly has never been updated. We nowadays have checks for Python version in __init__.py files within our packages, thus always checking the version, rather than it needing to be opted into. * Tools/Scripts/webkitpy/common/version_check.py: Removed. Canonical link: https://commits.webkit.org/287297@main
https://bugs.webkit.org/show_bug.cgi?id=283253 Reviewed by Jonathan Bedard. This makes it much more possible to test how we rewrite the message in isolation. * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py: (main): (rewrite_message): Canonical link: https://commits.webkit.org/287298@main
https://bugs.webkit.org/show_bug.cgi?id=283250 Reviewed by Jonathan Bedard. Previously, we strictly required arguments to Terminal.assert_writeable_stream and Terminal.override_atty to be specific types of file-like objects (specifically: those inheriting from io.IOBase, as on Python 3 all three options are either io.IOBase or subclasses thereof). This unfortunately means that they then throw when passed another file-like object (e.g., something inheriting from the typing.IO ABC). The status of file-like objects in the Python system is a bit of a mess, and requiring them to be specific types is almost certainly unworkable, thus we should just rely on duck-typing and checking we have something that looks like a file-like object. * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py: (Terminal.assert_writeable_stream): (Terminal.override_atty): * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/terminal_unittest.py: (TerminalTests.test_interrupt_decorator): (TerminalTests): (TerminalTests.test_assert_writeable_stream): (TerminalTests.test_override_atty): Canonical link: https://commits.webkit.org/287299@main
https://bugs.webkit.org/show_bug.cgi?id=283978 rdar://140857707 This reverts commit d9758a8fd190860ac6c4a468dfdea906786530e5. Unreviewed revert of 286488@main Canonical link: https://commits.webkit.org/287300@main
https://bugs.webkit.org/show_bug.cgi?id=283948 rdar://140572152 Reviewed by Darin Adler and Brady Eidson. I recently made it so that RunLoop::Timer will protect the object it is calling the "timeout" function on, either via a RefPtr or a CheckedPtr. Given that ResponsivenessTimer subclassed CanMakeCheckedPtr, it would use a CheckedPtr. As a speculative fix for the crash, make ResponsivenessTimer RefCounted. As a result, RunLoop::Timer will now ref the ResponsivenessTimer before calling `timerFired()` on it, which should be safer than a CheckedPtr. One could imagine `timerFired()` causing the ResponsivenessTimer to get destroyed otherwise, since it calls some client functions. * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::stopResponsivenessTimer): (WebKit::AuxiliaryProcessProxy::startResponsivenessTimer): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: (WebKit::AuxiliaryProcessProxy::protectedResponsivenessTimer): (WebKit::AuxiliaryProcessProxy::protectedResponsivenessTimer const): (WebKit::AuxiliaryProcessProxy::checkedResponsivenessTimer): Deleted. (WebKit::AuxiliaryProcessProxy::checkedResponsivenessTimer const): Deleted. * Source/WebKit/UIProcess/ResponsivenessTimer.h: (WebKit::ResponsivenessTimer::ref const): (WebKit::ResponsivenessTimer::deref const): Canonical link: https://commits.webkit.org/287301@main
https://bugs.webkit.org/show_bug.cgi?id=283990 It caused wrong line height in SVG text when zooming in the page Reverted changeset: "font-relative units of svg elements don't take zoom factors into account" https://bugs.webkit.org/show_bug.cgi?id=199236 https://commits.webkit.org/284310@main Canonical link: https://commits.webkit.org/287302@main
…r-scroll-position-try-009.html is flakily failing. https://bugs.webkit.org/show_bug.cgi?id=283991 rdar://140867920 Unreviewed test gardening. Adding test expectation for flakily failing test. * LayoutTests/platform/ios/TestExpectations: Canonical link: https://commits.webkit.org/287303@main
…ility/content-visibility-070.html is flakily failing. https://bugs.webkit.org/show_bug.cgi?id=283993 rdar://140868718 Unreviewed test gardening. Adding test expectation for flakily failing test. * LayoutTests/platform/ios/TestExpectations: Canonical link: https://commits.webkit.org/287304@main
…e flakily failing (image). https://bugs.webkit.org/show_bug.cgi?id=283994 rdar://140869424 Unreviewed test gardening. Adding test expectations for 2 flakily image failing tests. * LayoutTests/platform/ios/TestExpectations: Canonical link: https://commits.webkit.org/287305@main
https://bugs.webkit.org/show_bug.cgi?id=283960 Reviewed by Alex Christensen. Use more f-strings to concatenate strings and variables. <https://docs.python.org/3.9/reference/lexical_analysis.html#formatted-string-literals> `{` and `}` have to be encoded as `{{` and `}}`. * Source/WebKit/Scripts/generate-serializers.py: (Template.forward_declaration): (Template.specialization): (SerializedType.namespace_and_name): (SerializedType.namespace_if_not_wtf_and_name): (SerializedType.namespace_and_name_for_construction): (SerializedType.cf_wrapper_type): (SerializedType.name_declaration_for_serialized_type_info): (SerializedType.subclass_enum_name): (SerializedType.cpp_struct_or_class_name): (SerializedEnum.namespace_and_name): (SerializedEnum.parameter): (MemberVariable.__init__): (MemberVariable.ns_type_pointer): (MemberVariable.type_check): (MemberVariable.dictionary_type): (one_argument_coder_declaration_cf): (one_argument_coder_declaration): (generate_forward_declarations): (generate_header): (check_type_members): (check_type_members.is): (encode_cf_type): (encode_type): (decode_cf_type): (decode_type): (construct_type): (generate_one_impl): (generate_impl): (generate_optional_tuple_type_info): (generate_one_serialized_type_info): (output_sorted_headers): (generate_serialized_type_info): (parse_serialized_types): (generate_webkit_secure_coding_impl): (generate_webkit_secure_coding_header): Canonical link: https://commits.webkit.org/287306@main
https://bugs.webkit.org/show_bug.cgi?id=252211 rdar://105422915 Reviewed by Antti Koivisto. Implement shorthand as specified by: https://drafts.csswg.org/css-rhythm/#block-step * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-computed-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-computed.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-invalid-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-invalid.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-valid-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-rhythm/parsing/block-step-valid.html: Added. * Source/WebCore/animation/CSSPropertyAnimation.cpp: (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): * Source/WebCore/css/CSSProperties.json: * Source/WebCore/css/ComputedStyleExtractor.cpp: (WebCore::blockStepShorthandValue): (WebCore::ComputedStyleExtractor::valueForPropertyInStyle const): * Source/WebCore/css/ShorthandSerializer.cpp: (WebCore::ShorthandSerializer::serialize): * Source/WebCore/css/parser/CSSPropertyParser.cpp: (WebCore::initialValueForLonghand): (WebCore::CSSPropertyParser::consumeBlockStepShorthand): (WebCore::CSSPropertyParser::parseShorthand): * Source/WebCore/css/parser/CSSPropertyParser.h: Canonical link: https://commits.webkit.org/287307@main
… are constantly failing (image). https://bugs.webkit.org/show_bug.cgi?id=283995 rdar://140870687 Unreviewed test gardening. Adding test expectations for 2 tests that are constantly image failing. * LayoutTests/platform/ios/TestExpectations: Canonical link: https://commits.webkit.org/287308@main
https://bugs.webkit.org/show_bug.cgi?id=284222 Unreviewed build fix. * Source/WebCore/dom/AbstractRange.h: Add missing include. Canonical link: https://commits.webkit.org/287500@main
https://bugs.webkit.org/show_bug.cgi?id=283880 Unreviewed non-unified build fix. Added missing #include. * Source/JavaScriptCore/bytecode/SuperSampler.cpp: * Source/JavaScriptCore/dfg/DFGBasicBlock.h: * Source/JavaScriptCore/dfg/DFGLoopUnrollingPhase.cpp: * Source/JavaScriptCore/heap/IsoMemoryAllocatorBase.cpp: * Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamSink.cpp: * Source/WebKit/NetworkProcess/cache/NetworkCacheCoders.cpp: * Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp: Canonical link: https://commits.webkit.org/287501@main
https://bugs.webkit.org/show_bug.cgi?id=284231 rdar://141095901 Unreviewed, fix the build by making WebFullScreenManager aware of FullScreenMediaDetails. * Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp: * Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h: Canonical link: https://commits.webkit.org/287502@main
…tion https://bugs.webkit.org/show_bug.cgi?id=284219 Reviewed by Pascoe. This fixes a case where our frame accounting got messed up and led to blank frames. We had WebProcessProxy receiving the message that a frame was destroyed and forwarding it to the WebPageProxy to broadcast to update all the other processes's state. However, if that message came from a process other than the main frame's process, m_pageMap wouldn't contain the page for a process that only had a RemotePageProxy associated with it. Two changes were needed to get this working. The first is that the DidDestroyFrame message receiver was moved from WebProcessProxy to WebPageProxy so the RemotePageProxy's message forwarding will make it just arrive at the correct WebPageProxy. The second is that if the UI process has just told the web content process to destroy the frame or page, then we need to not tell the UI process that the frame was destroyed. Otherwise the broadcast messages would effectively echo. * Source/WebKit/UIProcess/WebPageProxy.messages.in: * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didDestroyFrame): Deleted. * Source/WebKit/UIProcess/WebProcessProxy.h: * Source/WebKit/UIProcess/WebProcessProxy.messages.in: * Source/WebKit/WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidate): * Source/WebKit/WebProcess/WebPage/WebFrame.h: (WebKit::WebFrame::markAsRemovedInAnotherProcess): (WebKit::WebFrame::wasRemovedInAnotherProcess const): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::frameWasRemovedInAnotherProcess): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::removeWebFrame): * Source/WebKit/WebProcess/WebProcess.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm: (TestWebKitAPI::TEST(SiteIsolation, RemoveFrameFromRemoteFrame)): Canonical link: https://commits.webkit.org/287503@main
https://bugs.webkit.org/show_bug.cgi?id=282083 Reviewed by Chris Dumez. This change introduces the .inspect operator for Observables, using the InternalObserver, and a new SubscriberCallbackInspect. .inspect is meant to act as a pass-through operator, so there are no mutations on events. Spec: <https://wicg.github.io/observable/#dom-observable-inspect> There is also a new ObservableInspector IDL dictionary created, as well as a ObservableInspectorAbortCallback. We could not just have used some generic callback IDL, given we require a callback that accepts a JSC::Value, as we forward abort reasons to this callback. * LayoutTests/imported/w3c/web-platform-tests/dom/observable/tentative/observable-inspect.any-expected.txt: Rebaseline. * LayoutTests/imported/w3c/web-platform-tests/dom/observable/tentative/observable-inspect.any.worker-expected.txt: Rebaseline. * Source/WebCore/CMakeLists.txt: * Source/WebCore/DerivedSources-input.xcfilelist: * Source/WebCore/DerivedSources.make: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/dom/InternalObserverInspect.cpp: Added. (WebCore::createSubscriberCallbackInspect): * Source/WebCore/dom/InternalObserverInspect.h: Added. * Source/WebCore/dom/Observable.cpp: (WebCore::Observable::inspect): * Source/WebCore/dom/Observable.h: * Source/WebCore/dom/Observable.idl: Exposes a `Observable inspect(inspectorUnion)` operator. * Source/WebCore/dom/ObservableInspector.h: Added. * Source/WebCore/dom/ObservableInspector.idl: Added. * Source/WebCore/dom/ObservableInspectorAbortCallback.h: Added. * Source/WebCore/dom/ObservableInspectorAbortCallback.idl: Added. Canonical link: https://commits.webkit.org/287504@main
https://bugs.webkit.org/show_bug.cgi?id=284220 rdar://141085741 Reviewed by Geoffrey Garen. Also, drop some unnecessary WebCore:: in the class and rename a function to facilitate search (as there is a function has the same name and similar arguments). * Source/WebCore/platform/network/NetworkStorageSession.cpp: (WebCore::NetworkStorageSession::loginDomainMatchesRequestingDomain): * Source/WebCore/platform/network/NetworkStorageSession.h: * Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::cookiesForURLFromStorage): (WebCore::NetworkStorageSession::httpCookiesForURL const): (WebCore::cookiesForURL): Deleted. Canonical link: https://commits.webkit.org/287505@main
…verting an input WebCore::IDLRecord<WebCore::IDLUSVString, WebCore::IDLUnion<WebCore::IDLUndefined, WebCore::IDLUSVString>> https://bugs.webkit.org/show_bug.cgi?id=284132 rdar://141017497 Reviewed by Chris Dumez and Sihui Liu. According to spec https://webidl.spec.whatwg.org/#js-record, we should use <bool createDataProperty(JSGlobalObject*, PropertyName, JSValue, bool shouldThrow)> to convert a native object to a IDL Record, not putDirect which is what's currently implemented and incorrectly assumes that the input property name is not an index. * LayoutTests/js/dom/webidl-type-mapping-expected.txt: * LayoutTests/js/dom/webidl-type-mapping.html: * Source/WebCore/bindings/js/JSDOMConvertRecord.h: Canonical link: https://commits.webkit.org/287506@main
https://bugs.webkit.org/show_bug.cgi?id=284221 rdar://problem/141086034 Reviewed by Richard Robinson and Mike Wyrzykowski. * Source/WebKit/SaferCPPExpectations/UncountedCallArgsCheckerExpectations: * Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.cpp: (WebKit::WebGPU::RemoteComputePassEncoderProxy::setBindGroup): Canonical link: https://commits.webkit.org/287507@main
https://bugs.webkit.org/show_bug.cgi?id=284234 rdar://141095828 * Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp: Canonical link: https://commits.webkit.org/287508@main
https://bugs.webkit.org/show_bug.cgi?id=283921 Reviewed by NOBODY Converts the shadow and filter types to strongly typed CSS values. Formerly, CSS shadows for `box-shadow` and `text-shadow` use the same representation for CSS, a CSSValueList of CSSShadowValues. Now, they have been split, to make it clear that `text-shadow` supports a different set of functionality than `box-shadow`. Similarly, CSS filters for both `filter` and `-apple-color-filter` use the same representation, a CSSValueList of CSSFunctionValues. Now they too have been split to make it clear that the set of filter functions supported is different for the different properties. Unlike previous conversions, this one focuses primarily on the CSS side, as the representations used for shadows and filters in style system are a bit tangled. However, structure on the style side is put in place, and some modest wins are present, such as the shrinking of the ShadowData type due to use of the new Style::Length types. To maintain backwards compatibility, extra plumbing was required to construct DeprecatedCSSOMValues matching the shipping types. * Source/WTF/wtf/StdLibExtras.h: * Source/WebCore/CMakeLists.txt: * Source/WebCore/SaferCPPExpectations/RefCntblBaseVirtualDtorExpectations: * Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations: * Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/animation/CSSPropertyAnimation.cpp: * Source/WebCore/css/CSSAppleColorFilterPropertyValue.cpp: Added. * Source/WebCore/css/CSSAppleColorFilterPropertyValue.h: Added. * Source/WebCore/css/CSSBoxShadowPropertyValue.cpp: Added. * Source/WebCore/css/CSSBoxShadowPropertyValue.h: Added. * Source/WebCore/css/CSSFilterImageValue.cpp: * Source/WebCore/css/CSSFilterImageValue.h: * Source/WebCore/css/CSSFilterPropertyValue.cpp: Added. * Source/WebCore/css/CSSFilterPropertyValue.h: Added. * Source/WebCore/css/CSSGradientValue.cpp: * Source/WebCore/css/CSSProperties.json: * Source/WebCore/css/CSSShadowValue.cpp: Removed. * Source/WebCore/css/CSSShadowValue.h: Removed. * Source/WebCore/css/CSSTextShadowPropertyValue.cpp: Added. * Source/WebCore/css/CSSTextShadowPropertyValue.h: Added. * Source/WebCore/css/CSSValue.cpp: * Source/WebCore/css/CSSValue.h: * Source/WebCore/css/CSSValuePool.cpp: * Source/WebCore/css/CSSValuePool.h: * Source/WebCore/css/ComputedStyleExtractor.cpp: * Source/WebCore/css/ComputedStyleExtractor.h: * Source/WebCore/css/DeprecatedCSSOMBoxShadowValue.cpp: Added. * Source/WebCore/css/DeprecatedCSSOMBoxShadowValue.h: Added. * Source/WebCore/css/DeprecatedCSSOMFilterFunctionValue.cpp: Added. * Source/WebCore/css/DeprecatedCSSOMFilterFunctionValue.h: Added. * Source/WebCore/css/DeprecatedCSSOMTextShadowValue.cpp: Added. * Source/WebCore/css/DeprecatedCSSOMTextShadowValue.h: Added. * Source/WebCore/css/DeprecatedCSSOMValue.h: * Source/WebCore/css/DeprecatedCSSOMValueList.h: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Background.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Filter.h: * Source/WebCore/css/parser/CSSPropertyParserConsumer+Image.cpp: * Source/WebCore/css/parser/CSSPropertyParserConsumer+MetaConsumerDefinitions.h: * Source/WebCore/css/parser/CSSPropertyParserConsumer+TextDecoration.cpp: * Source/WebCore/css/typedom/CSSStyleValueFactory.cpp: * Source/WebCore/css/values/CSSValueAggregates.h: * Source/WebCore/css/values/CSSValueTypes.h: * Source/WebCore/css/values/backgrounds/CSSBoxShadow.h: Added. * Source/WebCore/css/values/backgrounds/CSSBoxShadowProperty.h: Added. * Source/WebCore/css/values/color/CSSColor.h: * Source/WebCore/css/values/filter-effects/CSSAppleColorFilterProperty.h: Added. * Source/WebCore/css/values/filter-effects/CSSAppleInvertLightnessFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSBlurFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSBrightnessFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSContrastFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSDropShadowFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSFilterFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSFilterFunctionDescriptor.h: Renamed from Source/WebCore/css/CSSFilterFunctionDescriptor.h. * Source/WebCore/css/values/filter-effects/CSSFilterProperty.h: Added. * Source/WebCore/css/values/filter-effects/CSSFilterReference.cpp: Added. * Source/WebCore/css/values/filter-effects/CSSFilterReference.h: Added. * Source/WebCore/css/values/filter-effects/CSSGrayscaleFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSHueRotateFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSInvertFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSOpacityFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSSaturateFunction.h: Added. * Source/WebCore/css/values/filter-effects/CSSSepiaFunction.h: Added. * Source/WebCore/css/values/primitives/CSSPrimitiveNumericRange.h: * Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+CSSValueVisitation.h: * Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+ComputedStyleDependencies.h: * Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes+Serialization.h: * Source/WebCore/css/values/primitives/CSSPrimitiveNumericTypes.h: * Source/WebCore/css/values/text-decoration/CSSTextShadow.h: Added. * Source/WebCore/css/values/text-decoration/CSSTextShadowProperty.h: Added. * Source/WebCore/editing/Editor.cpp: * Source/WebCore/editing/FontAttributeChanges.cpp: * Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp: * Source/WebCore/rendering/BackgroundPainter.cpp: * Source/WebCore/rendering/BackgroundPainter.h: * Source/WebCore/rendering/EllipsisBoxPainter.cpp: * Source/WebCore/rendering/TextDecorationPainter.cpp: * Source/WebCore/rendering/TextPainter.cpp: * Source/WebCore/rendering/style/RenderStyle.cpp: * Source/WebCore/rendering/style/ShadowData.cpp: * Source/WebCore/rendering/style/ShadowData.h: * Source/WebCore/rendering/style/StyleFilterImage.cpp: * Source/WebCore/style/FilterOperationsBuilder.cpp: Removed. * Source/WebCore/style/StyleBuilderConverter.h: * Source/WebCore/style/StyleBuilderCustom.h: * Source/WebCore/style/StyleBuilderState.cpp: * Source/WebCore/style/StyleBuilderState.h: * Source/WebCore/style/values/StyleValueTypes.h: * Source/WebCore/style/values/backgrounds/StyleBoxShadow.cpp: Added. * Source/WebCore/style/values/backgrounds/StyleBoxShadow.h: Added. * Source/WebCore/style/values/color/StyleColor.h: * Source/WebCore/style/values/filter-effects/StyleAppleColorFilterProperty.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleAppleColorFilterProperty.h: Added. * Source/WebCore/style/values/filter-effects/StyleAppleInvertLightnessFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleAppleInvertLightnessFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleBlurFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleBlurFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleBrightnessFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleBrightnessFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleContrastFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleContrastFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleDropShadowFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleDropShadowFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleFilterProperty.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleFilterProperty.h: Added. * Source/WebCore/style/values/filter-effects/StyleGrayscaleFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleGrayscaleFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleHueRotateFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleHueRotateFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleInvertFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleInvertFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleOpacityFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleOpacityFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleSaturateFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleSaturateFunction.h: Added. * Source/WebCore/style/values/filter-effects/StyleSepiaFunction.cpp: Added. * Source/WebCore/style/values/filter-effects/StyleSepiaFunction.h: Added. * Source/WebCore/style/values/primitives/StyleNone.cpp: Added. * Source/WebCore/style/values/primitives/StyleNone.h: * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Blending.h: * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Conversions.cpp: * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Conversions.h: * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Evaluation.h: * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Logging.cpp: Added * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes+Logging.h: Added. * Source/WebCore/style/values/primitives/StylePrimitiveNumericTypes.h: * Source/WebCore/style/values/text-decoration/StyleTextShadow.cpp: Added. * Source/WebCore/style/values/text-decoration/StyleTextShadow.h: Added Canonical link: https://commits.webkit.org/287509@main
https://bugs.webkit.org/show_bug.cgi?id=284207 Reviewed by Darin Adler. * Source/WebCore/html/track/TextTrackCueList.cpp: (WebCore::TextTrackCueList::activeCues): (WebCore::TextTrackCueList::add): (WebCore::TextTrackCueList::remove): (WebCore::TextTrackCueList::updateCueIndex): * Source/WebCore/html/track/VTTCue.cpp: (WebCore::VTTCue::settingName): * Source/WebCore/html/track/VTTRegion.cpp: (WebCore::VTTRegion::scanSettingName): * Source/WebCore/html/track/VTTScanner.h: (WebCore::VTTScanner::scan): Deleted. * Source/WebCore/html/track/WebVTTParser.cpp: (WebCore::WebVTTParser::collectTimingsAndSettings): Canonical link: https://commits.webkit.org/287510@main
https://bugs.webkit.org/show_bug.cgi?id=284236 rdar://141103701 * Source/WebCore/DerivedSources-output.xcfilelist: Canonical link: https://commits.webkit.org/287511@main
https://bugs.webkit.org/show_bug.cgi?id=284217 Reviewed by Darin Adler. This patch addresses review comments[1] after 287431@main. [1]: WebKit/WebKit#37419 (review) * Source/JavaScriptCore/runtime/ArrayPrototype.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): Canonical link: https://commits.webkit.org/287512@main
…1" iPad in portrait mode https://bugs.webkit.org/show_bug.cgi?id=284235 rdar://98749450 Reviewed by Richard Robinson. On 11-inch iPad in portrait mode, the left sidebar in the Stories creation form is hidden using `display: none;`, due to a media query targeting `@media (max-width: 899px)`, even though (1) there's enough space to fit the sidebar on screen, and (2) the sidebar is fully functional. To fix this, add a quirk to override the resolved `display: none;` CSS value with `display: flex;` instead (the expected value at `>= 900` viewport width). * Source/WebCore/page/Quirks.cpp: (WebCore::Quirks::isFacebook const): (WebCore::Quirks::requiresUserGestureToPauseInPictureInPicture const): Make this use the new `isFacebook()` helper method. (WebCore::accessibilityRole): (WebCore::Quirks::shouldIgnoreContentObservationForClick const): (WebCore::Quirks::needsFacebookStoriesCreationFormQuirk const): Add a new quirk (see above). The container can be identified using several criteria: 1. The document domain is `facebook.com`, and the path starts with `/stories/create`. 2. The element has `role=navigation`. 3. The element subtree contains a `textarea`. I'm also caching `m_facebookStoriesCreationFormContainer` here to avoid unnecessary DOM traversal during style adjustment, once the container has been identified. * Source/WebCore/page/Quirks.h: * Source/WebCore/page/QuirksData.h: Add cached state to represent whether or not the top domain is `facebook.com`. * Source/WebCore/style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const): Canonical link: https://commits.webkit.org/287513@main
https://bugs.webkit.org/show_bug.cgi?id=284115 Reviewed by Said Abou-Hallawa. Serialize font-weight in the CanvasRenderingContext2D.font method output but suppress the default value of 400. * LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/text/2d.text.font.weight-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.font.weight-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.font.weight.worker-expected.txt: * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::State::fontString const): Canonical link: https://commits.webkit.org/287514@main
…line-clamp/webkit-line-clamp-018.html https://bugs.webkit.org/show_bug.cgi?id=284243 Unreviewed gardening. * LayoutTests/TestExpectations: Canonical link: https://commits.webkit.org/287515@main
…ss-text/text-transform/text-transform-capitalize-028.html https://bugs.webkit.org/show_bug.cgi?id=284241 Unreviewed gardening. * LayoutTests/TestExpectations: Canonical link: https://commits.webkit.org/287516@main
https://webkit.org/b/284215 Reviewed by Timothy Hatcher. Create a CMake option to enable WK_WEB_EXTENSIONS on Linux, and fixes issues regarding compile WebKitGtk with WK_WEB_EXTENSIONS enabled. * Source/WTF/wtf/PlatformEnableGlib.h: * Source/WebCore/platform/text/LocaleICU.cpp: (WebCore::LocaleICU::defaultWritingDirection const): * Source/WebCore/platform/text/LocaleICU.h: * Source/WebCore/platform/text/PlatformLocale.h: * Source/WebKit/CMakeLists.txt: * Source/WebKit/Shared/Extensions/WebExtensionControllerParameters.h: * Source/WebKit/Shared/Extensions/WebExtensionControllerParameters.serialization.in: * Source/WebKit/Shared/Extensions/WebExtensionTab.serialization.in: * Source/WebKit/Shared/Extensions/WebExtensionTabParameters.h: * Source/WebKit/Shared/Extensions/WebExtensionWindow.serialization.in: * Source/WebKit/Shared/Extensions/WebExtensionWindowParameters.h: * Source/WebKit/UIProcess/API/APIPageConfiguration.cpp: (API::PageConfiguration::maskedURLSchemes const): * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h: * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: * Source/WebKit/UIProcess/Extensions/WebExtensionController.cpp: (WebKit::WebExtensionController::WebExtensionController): * Source/WebKit/UIProcess/Extensions/WebExtensionController.h: * Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.cpp: * Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.h: * Source/WebKit/UIProcess/Extensions/WebExtensionDataRecord.h: * Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h: * Source/WebKit/UIProcess/Extensions/WebExtensionMatchPattern.cpp: * Source/WebKit/UIProcess/Extensions/WebExtensionMessagePort.h: * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: * Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::m_pageForTesting): (WebKit::WebPageProxy::close): (WebKit::WebPageProxy::resourceLoadDidSendRequest): (WebKit::WebPageProxy::resourceLoadDidPerformHTTPRedirection): (WebKit::WebPageProxy::resourceLoadDidReceiveChallenge): (WebKit::WebPageProxy::resourceLoadDidReceiveResponse): (WebKit::WebPageProxy::resourceLoadDidCompleteWithError): (WebKit::WebPageProxy::creationParameters): * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIEvent.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPILocalization.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebNavigationEvent.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequestEvent.h: * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindowsEvent.h: * Source/WebKit/WebProcess/Extensions/Bindings/JSWebExtensionWrapper.h: * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h: * Source/WebKit/WebProcess/Extensions/WebExtensionControllerProxy.h: * Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::addParametersShared): * Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp: (WebKit::WebLocalFrameLoaderClient::dispatchDidStartProvisionalLoad): (WebKit::WebLocalFrameLoaderClient::dispatchDidCommitLoad): (WebKit::WebLocalFrameLoaderClient::dispatchDidFailProvisionalLoad): (WebKit::WebLocalFrameLoaderClient::dispatchDidFailLoad): (WebKit::WebLocalFrameLoaderClient::dispatchDidFinishLoad): (WebKit::WebLocalFrameLoaderClient::dispatchGlobalObjectAvailable): (WebKit::WebLocalFrameLoaderClient::dispatchServiceWorkerGlobalObjectAvailable): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::m_textAnimationController): * Source/WebKit/WebProcess/WebPage/WebPage.h: Canonical link: https://commits.webkit.org/287517@main
https://bugs.webkit.org/show_bug.cgi?id=283569 rdar://problem/140418270 Reviewed by Jean-Yves Avenard. We update mock camera rotation testing to pass the camera ID. This allows to use the rotationAngleForHorizonLevelDisplayChanged code path when the camera ID is given. We update MockRealtimeVideoSource to support this, like done for AVVideoCaptureSource. This allows to write a test for the clone camera track bug https://bugs.webkit.org/show_bug.cgi?id=283480. * LayoutTests/fast/mediastream/video-rotation-clone-expected.txt: Added. * LayoutTests/fast/mediastream/video-rotation-clone.html: Added. * LayoutTests/platform/glib/TestExpectations: * LayoutTests/webrtc/routines.js: * Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::rotationAngleForHorizonLevelDisplayChanged): (WebCore::MockRealtimeVideoSource::orientationChanged): * Source/WebCore/platform/mock/MockRealtimeVideoSource.h: * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::mediaStreamTrackPersistentId): * Source/WebCore/testing/Internals.h: * Source/WebCore/testing/Internals.idl: * Source/WebKit/UIProcess/API/C/WKPage.cpp: (WKPageSetMockCameraOrientationForTesting): (WKPageSetMockCameraOrientation): Deleted. * Source/WebKit/UIProcess/API/C/WKPagePrivate.h: * Source/WebKit/UIProcess/Cocoa/UserMediaPermissionRequestManagerProxy.mm: (-[WKRotationCoordinatorObserver isMonitoringCaptureDeviceRotation:]): (WebKit::UserMediaPermissionRequestManagerProxy::isMonitoringCaptureDeviceRotation): * Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setMediaCaptureRotationForTesting): * Source/WebKit/UIProcess/WebPageProxy.h: * Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setMockCameraOrientation): * Tools/WebKitTestRunner/InjectedBundle/TestRunner.h: * Tools/WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): (WTR::TestController::setMockCameraOrientation): * Tools/WebKitTestRunner/TestController.h: * Tools/WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): Canonical link: https://commits.webkit.org/287518@main
https://bugs.webkit.org/show_bug.cgi?id=284027 Reviewed by Fujii Hironori. Rendering complex preserve-3D scenes might involve a lot of layer splitting. These splits are handled using polygon clipping, but the current implementation is inefficient. Each clip operation clears the full stencil buffer and masks the clipped part using separate vertex buffer objects that are allocated on demand. This places significant stress on the GPU and on hardware like rpi3 it completely chokes the rendering pipeline. To address this issue, polygon clip vertices for preserve-3d scenes should be loaded to the GPU only once, leveraging cached VBOs. Additionally, stencil buffer clearing should be optimized using scissors to restrict stencil clears to relevant areas, avoiding full-buffer operations. * Source/WebCore/platform/TextureMapper.cmake: * Source/WebCore/platform/graphics/texmap/ClipPath.cpp: Added. (WebCore::ClipPath::ClipPath): (WebCore::ClipPath::data const): * Source/WebCore/platform/graphics/texmap/ClipPath.h: Added. * Source/WebCore/platform/graphics/texmap/TextureMapper.cpp: (WebCore::nextPowerOf2): (WebCore::TextureMapperGLData::initializeStencil): (WebCore::TextureMapperGLData::getBufferFromPool): (WebCore::TextureMapper::beginClip): (WebCore::TextureMapper::updateProjectionMatrix): (WebCore::TextureMapper::acquireBufferFromPool): * Source/WebCore/platform/graphics/texmap/TextureMapper.h: * Source/WebCore/platform/graphics/texmap/TextureMapperGPUBuffer.cpp: Added. (WebCore::TextureMapperGPUBuffer::TextureMapperGPUBuffer): (WebCore::TextureMapperGPUBuffer::~TextureMapperGPUBuffer): (WebCore::TextureMapperGPUBuffer::updateData): * Source/WebCore/platform/graphics/texmap/TextureMapperGPUBuffer.h: Added. * Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp: (WebCore::TextureMapperLayer::paintWith3DRenderingContext): * Source/WebCore/platform/graphics/texmap/TextureMapperLayer3DRenderingContext.cpp: (WebCore::TextureMapperLayer3DRenderingContext::paint): (WebCore::TextureMapperLayer3DRenderingContext::traverseTree): (WebCore::TextureMapperLayer3DRenderingContext::traverseTreeAndPaint): Deleted. * Source/WebCore/platform/graphics/texmap/TextureMapperLayer3DRenderingContext.h: Canonical link: https://commits.webkit.org/287519@main
…fication-allowed.html is a constant failure (flaky in EWS) rdar://140875944 https://bugs.webkit.org/show_bug.cgi?id=283999 Reviewed by Chris Dumez. http/tests/workers/service/shownotification-allowed.html was failing as we were: - stopping the service worker due to network process crash - recreating the service worker, but in a different process from the web page - sending a message to the web page via self.clients - But the web page is not reregistering it as a service worker client since it does not create a new connection to the network process. To fix this, we make sure the web page recreates a connection to the network process and we make sure the service worker loops until it can send the message to at least one client. * LayoutTests/http/tests/workers/service/resources/shownotification-worker.js: (let.messageClients): * LayoutTests/http/tests/workers/service/shownotification-allowed.html: * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/287520@main
…ified https://bugs.webkit.org/show_bug.cgi?id=283308 rdar://140142957 Reviewed by Tim Nguyen. If the origin is not specified, but clip is given as border-area, set origin to border-box. See w3c/csswg-drafts#11167 * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-shorthand-serialization-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-shorthand-serialization.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-valid-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-valid.html: * Source/WebCore/css/ShorthandSerializer.cpp: (WebCore::ShorthandSerializer::serializeLayered const): * Source/WebCore/css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::consumeBackgroundShorthand): Canonical link: https://commits.webkit.org/287521@main
https://bugs.webkit.org/show_bug.cgi?id=283494 Reviewed by Tim Nguyen. This patch matches the new spec behaviour for when a popover is inside its invoker. See whatwg/html#10770 * LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-nested-in-button-expected.txt: * Source/WebCore/html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler): * Source/WebCore/html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::handlePopoverTargetAction const): * Source/WebCore/html/HTMLFormControlElement.h: * Source/WebCore/html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Canonical link: https://commits.webkit.org/287522@main
I think this is due to an unhandled edge case where VIDEO is enabled but GSTREAMER is not used. Can leave this in place until we either re-enable gstreamer or disable video entirely
The current dependency tree means that WebKitLegacy depends on WebCoreTestSupport and we're running into duplicated symbols in different autogenerated code that are unresolvable.
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.
Notes