Skip to content
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 in upstream 2023-07-14 #12

Merged
merged 723 commits into from
Jul 31, 2023
Merged

Merge in upstream 2023-07-14 #12

merged 723 commits into from
Jul 31, 2023

Conversation

mnutt
Copy link
Member

@mnutt mnutt commented Jul 18, 2023

Pull in upstream commits from 2023-06-21 to 2023-07-14.

csnardi and others added 30 commits July 14, 2023 21:08
https://bugs.webkit.org/show_bug.cgi?id=185876

Reviewed by Jonathan Bedard.

Since the csswg-tests repo was merged into WPT, there is only one test repository now in
imported/w3c/resources/TestRepositories, which does not specify the option to convert
testharness paths from relative paths to explicit paths. Additionally, wptserve has been
used for some time, so run-webkit-tests should have no problem with relative paths to
the testharness paths. Thus, there is no reason to continue converting testharness paths,
so this patch removes all code related to that conversion.

* Scripts/webkitpy/w3c/test_converter.py:
(convert_for_webkit):
(_W3CTestConverter.__init__):
(_W3CTestConverter.convert_attributes_if_needed):
* Scripts/webkitpy/w3c/test_converter_unittest.py:
(verify_test_harness_paths):
* Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.find_importable_tests):
(TestImporter.import_tests):

Canonical link: https://commits.webkit.org/265842@main
…ing due to resolve promises out of an event queue task

https://bugs.webkit.org/show_bug.cgi?id=258814
rdar://111692360

Reviewed by Eric Carlson.

The WPT test change is coming from upstream and checks that the flush promise callbacks are executed before the error event handlers.
The implementation is correctly resolving the promises before scheduling a task to fire the error event.
But the promises are resolved outside of the event loop and are thus delayed to a loater task, and the error event fires before.
To prevent this, we are changing the way the internal decoder is calling back into WebCodecsVideoDecoder code.

Instead of just hoping to the right thread, we are now hoping to the right thread and then enqueueing a task.
We add a weakThis check there so that it is no longer necessary on each callback.

Covered by updated tests.

* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any.js:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp:
(WebCore::WebCodecsVideoDecoder::configure):
(WebCore::WebCodecsVideoDecoder::decode):
(WebCore::WebCodecsVideoDecoder::flush):
(WebCore::WebCodecsVideoDecoder::resetDecoder):

Canonical link: https://commits.webkit.org/265843@main
…ct is present

https://bugs.webkit.org/show_bug.cgi?id=256848
rdar://109724698

Reviewed by Eric Carlson.

Use codedWidth and codedHeight instead of parsedRect.
This is coherent with the rest of the algorithm like checking the array size and is consistent with what Chrome does.
I filed w3c/webcodecs#702 to update the spec.

* LayoutTests/http/wpt/webcodecs/videoFrame-with-stride-expected.txt: Added.
* LayoutTests/http/wpt/webcodecs/videoFrame-with-stride.html: Added.
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp:
(WebCore::WebCodecsVideoFrame::create):

Canonical link: https://commits.webkit.org/265844@main
https://bugs.webkit.org/show_bug.cgi?id=258195
rdar://111208014

Reviewed by Chris Dumez.

Make sure to implement the fragment identifier handling defined in https://fetch.spec.whatwg.org/#concept-response-location-url:
- If the response has a fragment identifier and the URL computed from the location header does not, add the fragment identifier back.

* LayoutTests/http/wpt/service-workers/navigation-redirect-with-hash-worker.js: Added.
* LayoutTests/http/wpt/service-workers/navigation-redirect-with-hash.https-expected.txt: Added.
* LayoutTests/http/wpt/service-workers/navigation-redirect-with-hash.https.html: Added.
* LayoutTests/http/wpt/service-workers/resources/redirect-with-hash.py: Added.
(main):
* Source/WebCore/platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::redirectedRequest const):
* Source/WebCore/platform/network/ResourceRequestBase.h:
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::processRedirectResponse):

Canonical link: https://commits.webkit.org/265845@main
https://bugs.webkit.org/show_bug.cgi?id=258974

Reviewed by Tim Nguyen.

Rename shouldSkipContent to isSkippedContentRoot to be consistent with isInertSubtreeRoot.

* Source/WebCore/dom/Document.cpp:
(WebCore::CallbackForContainIntrinsicSize):
(WebCore::Document::caretPositionFromPoint):
* Source/WebCore/editing/TextIterator.cpp:
(WebCore::TextIterator::advance):
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintContents):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::foregroundIsKnownToBeOpaqueInRect const):
(WebCore::RenderBox::explicitIntrinsicInnerWidth const):
(WebCore::RenderBox::explicitIntrinsicInnerHeight const):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintList):
* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::RenderObject::isSkippedContentRoot const):
(WebCore::RenderObject::shouldSkipContent const): Deleted.
* Source/WebCore/rendering/RenderObject.h:
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint):
* Source/WebCore/rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):

Canonical link: https://commits.webkit.org/265846@main
https://bugs.webkit.org/show_bug.cgi?id=258970
rdar://111902537

Reviewed by Tim Nguyen.

It is more efficient than invalidateStyle() which has been made obsolete by fine-grained
pseudo-element invalidation.

* Source/WebCore/dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
(WebCore::StyledElement::styleAttributeChanged):
(WebCore::StyledElement::invalidateStyleAttribute):

Canonical link: https://commits.webkit.org/265847@main
https://bugs.webkit.org/show_bug.cgi?id=258951
rdar://111798349

Reviewed by Youenn Fablet.

In getSizeForNext(), we call seek() and then dispatchDidReceiveResponse().
After 261968@main, seek() could call fail internally and call didFail().
However, we could still call dispatchDidReceiveResponse() right after in
case of failure.

We now propagate the error state out of seek() and have the caller call
didFail() and then early return instead of calling dispatchDidReceiveResponse().

* Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::getSizeForNext):
(WebKit::NetworkDataTaskBlob::seek):
* Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h:

Canonical link: https://commits.webkit.org/265848@main
https://bugs.webkit.org/show_bug.cgi?id=258823
rdar://111704754

Reviewed by Carlos Alberto Lopez Perez.

* Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py: Ditto.
* Tools/Scripts/libraries/webkitbugspy/run-tests: Added.

Canonical link: https://commits.webkit.org/265849@main
…t server access

https://bugs.webkit.org/show_bug.cgi?id=258953
<rdar://108687466>

Reviewed by Per Arne Vollan.

The Sandbox extensions needed for dynamic fonts needs to enable the webkit mach
bootstrap extension, otherwise message filtering will block calls needed for
the feature to work properly.

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):

Canonical link: https://commits.webkit.org/265850@main
https://bugs.webkit.org/show_bug.cgi?id=258960
<radar://111867549>

Reviewed by Kimmo Kinnunen.

We should never set the clip rectangle to something larger than the
initial graphics context bounds, since we won't render to an area
larger than that and the contents will be left stale.

Correct this by clipping to the initial clip rectangle whenever the clip
rectangle is reset.

* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::resetClip):
We were already setting the clip bounds to this value a few lines above.

* Tools/TestWebKitAPI/Tests/WebCore/DisplayListRecorderTests.cpp:
Update test expectation.

Canonical link: https://commits.webkit.org/265851@main
https://bugs.webkit.org/show_bug.cgi?id=258825
rdar://111705506

Reviewed by Carlos Alberto Lopez Perez.

* Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Tools/Scripts/libraries/webkitscmpy/run-tests: Added.

Canonical link: https://commits.webkit.org/265853@main
https://bugs.webkit.org/show_bug.cgi?id=258954
rdar://111764235

Reviewed by Wenson Hsieh.

When upstreaming the autocorrection enhancements implementation, the code to dismiss the markers
was accidentally put inside a compile time guard which was only true for `PLATFORM(MAC)` and not iOS.

Fix by moving the code outside of the compile time guard.

Also refactors some methods in `Internals.cpp` to reduce duplication.

* Source/WebCore/editing/AlternativeTextController.cpp:
(WebCore::removeAutocorrectionIndictorMarkers):
(WebCore::AlternativeTextController::respondToAppliedEditing):
(WebCore::removeCorrectionIndicatorMarkers): Deleted.
* Source/WebCore/editing/AlternativeTextController.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::hasMarkerFor):
(WebCore::Internals::hasSpellingMarker):
(WebCore::Internals::hasGrammarMarker):
(WebCore::Internals::hasAutocorrectedMarker):
(WebCore::Internals::hasDictationAlternativesMarker):
(WebCore::Internals::hasCorrectionIndicatorMarker):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView applyAutocorrection:toString:isCandidate:withCompletionHandler:]):
* Tools/TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
(TEST):

Canonical link: https://commits.webkit.org/265854@main
…ctations

https://bugs.webkit.org/show_bug.cgi?id=258973

Unreviewed test gardening.

* LayoutTests/platform/glib/fast/mediastream/getDisplayMedia-size-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.basic-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/popovers/popover-not-keyboard-focusable-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_av1-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_av1-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/send-authentication-cors-basic-setrequestheader-expected.txt: Removed.
* LayoutTests/platform/glib/svg/custom/massive-coordinates-expected.txt: Removed.
* LayoutTests/platform/gtk/fast/overflow/line-clamp-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-style-001.tentative-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cloneNode-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/direction/direction-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mpadded/legacy-orthogonal-pseudo-units-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-003-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-legacy-length-values-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/merror-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/mrow-preferred-width-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/embellished-operator-003-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/embellished-operator-dynamic-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/largeop-hit-testing-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-axis-height-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-lspace-rspace-legacy-length-values-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-legacy-length-values-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-3-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-4-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-5-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-6-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-and-embellished-operator-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-and-embellished-operator-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-legacy-length-values-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-width-height-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/space-like-004-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/dynamic-table-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-axis-height-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-cell-mrow-layout-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/default-font-family-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/default-properties-on-semantics-and-maction-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/default-properties-on-the-math-root-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-contents-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/displaystyle-1-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/displaystyle-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/displaystyle-3-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/multi-column-layout-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/overflow/computed-value-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/scriptlevel-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/writing-mode/force-horizontal-tb-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/writing-mode/writing-mode-001-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/writing-mode/writing-mode-002-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/class-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/content-editable-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface.tentative-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-4-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-5-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/unique-identifier-2-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/text-and-math/basic-mathematical-alphanumeric-symbols-with-default-font-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/text/visualtests/text-inline-size-003-visual-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/xhr/send-network-error-sync-events.sub-expected.txt: Removed.
* LayoutTests/platform/ios-simulator-16-wk2/imported/w3c/web-platform-tests/css/css-tables/visibility-collapse-row-003-dynamic-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/forms/textarea-align-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/replaced/border-radius-clip-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/client-props-root-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/websockets/cookies/007-expected.txt: Removed.
* LayoutTests/platform/ios/fast/text-indicator/text-indicator-estimated-color-with-implicit-newline-expected.txt: Removed.
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt: Removed.
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Removed.
* LayoutTests/platform/mac-ventura-wk2/imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/accessibility/mac/focus-setting-selection-syncronizing-not-clearing-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/fast/repaint/leftover-after-shrinking-content-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-expected.txt: Removed.
* LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout-expected.txt: Removed.
* LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Removed.
* LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003-expected.txt: Removed.
* LayoutTests/platform/wpe/accessibility/aria-description-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-tables/border-writing-mode-dynamic-001-expected.txt: Removed.

Canonical link: https://commits.webkit.org/265855@main
https://bugs.webkit.org/show_bug.cgi?id=258881
<rdar://110730883>

Reviewed by Tim Horton.

Add the host layer's ID to the Interaction Region layer `groupName`.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeInteractionRegionLayers.mm:
(WebKit::updateLayersForInteractionRegions):
Update the method's signature to take a `RemoteLayerTreeNode` ref, we
don't use the RemoteLayerTreeHost.
(WebKit::interactionRegionGroupNameForRegion):
Use the `layerID` when generating the group name.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
Update the call site.

Canonical link: https://commits.webkit.org/265856@main
https://bugs.webkit.org/show_bug.cgi?id=258946
<rdar://111807064>

Reviewed by Simon Fraser.

Protect image inside MemoryCache::destroyDecodedDataForAllImages() before
calling destroyDecodedData() on it, to make sure the Image stays alive for the
duration of the function execution.

Also do more protecting in MemoryCache::forEachResource() for good measure.

This may explain the crashes at <rdar://111807064>.

* Source/WebCore/loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::destroyDecodedDataForAllImages):

Canonical link: https://commits.webkit.org/265857@main
…Content

https://bugs.webkit.org/show_bug.cgi?id=258983

Reviewed by Tim Nguyen.

Rename effectiveSkipsContent to effectiveSkippedContent since effectiveSkipsContent
is correct for the root but in fact the flag is inherited down and so is misleading for
true skipped content.

* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::RenderObject::isSkippedContent const):
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/style/RenderStyleInlines.h:
(WebCore::RenderStyle::effectiveSkippedContent const):
(WebCore::RenderStyle::effectiveSkipsContent const): Deleted.
* Source/WebCore/rendering/style/RenderStyleSetters.h:
(WebCore::RenderStyle::setEffectiveSkippedContent):
(WebCore::RenderStyle::setEffectiveSkipsContent): Deleted.
* Source/WebCore/rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
* Source/WebCore/rendering/style/StyleRareInheritedData.h:
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::updateElementRenderer):
* Source/WebCore/style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):

Canonical link: https://commits.webkit.org/265858@main
… from the AttributedStrings returned by WebKit accessibility.

https://bugs.webkit.org/show_bug.cgi?id=256370
<rdar://problem/108949862>

Reviewed by Tyler Wilcock.

Removed the font NSAccessibilityVisibleNameKey attribute from the AttributedStrings returned by accessibility because it is redundant since AX clients can compute the VisibleName from the other conveyed font attributes.

* Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm:
(WebCore::attributedStringSetFont):

* LayoutTests/accessibility/mac/attributed-string/attributed-string-for-range-with-options.html:
* LayoutTests/accessibility/mac/attributed-string/attributed-string-for-range.html:
* LayoutTests/accessibility/mac/attributed-string/attributed-string-text-styling.html:
* LayoutTests/accessibility/mac/lazy-spellchecking-expected.txt:
* LayoutTests/accessibility/native-text-control-attributed-string-expected.txt:
* LayoutTests/platform/mac/accessibility/content-editable-as-textarea-expected.txt:
* LayoutTests/platform/mac/accessibility/element-line-rects-and-text-expected.txt:

* LayoutTests/accessibility/mac/lazy-spellchecking-expected.txt:

Canonical link: https://commits.webkit.org/265859@main
https://bugs.webkit.org/show_bug.cgi?id=258980
rdar://111909315

Reviewed by Eric Carlson.

Use the calculated value of `writing-mode` in applyCSSProperties() rather
than the default provided in the UA style sheet.

* LayoutTests/media/track/track-cue-vertical-style-expected.txt: Added.
* LayoutTests/media/track/track-cue-vertical-style.html: Added.
* Source/WebCore/html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):

Canonical link: https://commits.webkit.org/265860@main
https://bugs.webkit.org/show_bug.cgi?id=258468
rdar://111222723

Reviewed by Chris Dumez.

The top origin member was added in 260266@main, but that addition was incorrect
because a blob does not have a top security origin and it is transferrable
across top origin contexts. In this patch, we delete that property.

* Source/WebCore/fileapi/Blob.cpp:
(WebCore::Blob::Blob):
* Source/WebCore/fileapi/Blob.h:

Canonical link: https://commits.webkit.org/265861@main
…ngAreaProxyMac::displayLink

https://bugs.webkit.org/show_bug.cgi?id=258976
rdar://111348720

Reviewed by Simon Fraser.

At WebPageProxy::resetState() we are setting the drawing area
to nullptr with WebPageProxyArea::setDrawingArea(nullptr).

setDrawingArea(...) will delete m_scrollingCordinatorProxy, which destructor
is ~RemoteScrollingCoordinatorProxyMac(). This function will then try to
invalidate the wheel event dispatcher (m_wheelEventDispatcher->invalidate()). This is actually RemoteLayerTreeEventDispatcher::invalidate().

invalidate() calls stopDisplayLinkObserver() which needs to get a handle
of the the associated displayLink for doing that.

RemoteLayerTreeEventDispatcher::displayLink() returns early
if there is no m_scrollingCordinator, but we are exactly in the process
of deleting it. It then continues and tries to get the displayLink from the drawingArea (RemoteLayerTreeDrawingAreaProxyMac::displayLink()),
which will crash if there is no m_displayID set to the area.

I'm not sure why, at this point, we don't have a m_displayID set to the
drawing area (it is set by windowScreenDidChange(id)). But, in any case,
I believe stopDisplayLinkObserver() should use existingDisplayLink()
instead of displayLink() because we shouldn`t need to stop observers
for a non existent displayLink.

Even better, in invalidate() we can replace stopDisplayLinkObserver() by
removeDisplayLinkClient(): Since we want to delete the displayLinkClient
at the end of invalidate() we can remove this client from the displayLink
map (removing all its observers in the process), which should happen
because the displayLinkClient is being deleted.

* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp:
(WebKit::RemoteLayerTreeEventDispatcher::invalidate):
(WebKit::RemoteLayerTreeEventDispatcher::stopDisplayLinkObserver):

Canonical link: https://commits.webkit.org/265862@main
…TP requests with Secure;HttpOnly; cookies

https://bugs.webkit.org/show_bug.cgi?id=258595
rdar://106956529

Reviewed by J Pascoe.

* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):

Canonical link: https://commits.webkit.org/265863@main
https://bugs.webkit.org/show_bug.cgi?id=258991
rdar://111176298

Reviewed by Wenson Hsieh.

visionOS is at a constant scale factor, and scales coming from WebCore need to be compared with
WebKit::scalesAreEssentiallyEqual, not traditional comparison operators because
WebCore stores the page scale factor as float instead of double. When we get a scale from WebCore,
we need to ignore differences that are within a small rounding error, with enough leeway
to handle rounding differences that may result from round-tripping through UIScrollView.

* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _updateScrollViewForTransaction:]):

Canonical link: https://commits.webkit.org/265864@main
https://bugs.webkit.org/show_bug.cgi?id=258151

Reviewed by Chris Dumez and Alex Christensen.

Split the generated serialization into two files, now platform specific
serializers are added to `WebKitPlatformGeneratedSerializers`.

Define serialization of `SharedMemoryHandle` in a `.serialization.in`
file. Mark serialization as `RValue` to ensure move semantics are used,
and `WebKitPlatform` so it ends up in the platform serializers.

* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Platform/SharedMemory.cpp:
(IPC::ArgumentCoder<WebKit::SharedMemoryHandle>::encode): Deleted.
(IPC::ArgumentCoder<WebKit::SharedMemoryHandle>::decode): Deleted.
* Source/WebKit/Platform/SharedMemory.h:
* Source/WebKit/Platform/SharedMemory.serialization.in: Added.
* Source/WebKit/Scripts/generate-serializers.py:
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp:
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h:
* Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp:
(WebKit::allSerializedTypes):
* Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in:
* Source/WebKit/Scripts/webkit/tests/WebKitPlatformGeneratedSerializers.cpp: Added.
(IPC::ArgumentCoder<WebKit::PlatformClass>::encode):
(IPC::ArgumentCoder<WebKit::PlatformClass>::decode):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

Co-authored-by: Alex Christensen <achristensen@apple.com>
Canonical link: https://commits.webkit.org/265865@main
https://bugs.webkit.org/show_bug.cgi?id=256872
rdar://109752832

Reviewed by Keith Miller.

Fixes a bug where the DFG PutStack sinking phase would put the wrong
value to the stack. This is due to the PutStack sinking phase doing its
own SSA calculation to determine the correct locations to insert
PutStacks, which is not necessarily the same as correctly tracking the
values that should belong in each PutStack (which is just SSA conversion).

This patch adds an additional PutStack node after each Phi inserted in
SSA conversion. As a result, when PutStack sinking interprets each block
to map each variable to its current value, it correctly associates
existing Phis with their variables, even if the PutStack sinking phase's
SSA calculation would not insert a Phi there.

One concern with this patch is performance - specifically, adding
additional PutStacks might pessimize arguments elimination. To address
this, this patch runs PutStack sinking both before and after arguments
elimination, so we reduce spurious PutStacking before eliminating
arguments, and re-run it after to exploit any opportunities created by
the existing phase ordering. Testing on both Speedometer 2 and JetStream
2, there is no significant change in score with this patch.

* JSTests/stress/PutStack-sinking-through-DeadFlush-unification.js: Added.
(test):
(main):
* Source/JavaScriptCore/dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* Source/JavaScriptCore/dfg/DFGPutStackSinkingPhase.cpp:
* Source/JavaScriptCore/dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):

Canonical link: https://commits.webkit.org/265866@main
https://bugs.webkit.org/show_bug.cgi?id=258988
rdar://105024815

Reviewed by Devin Rousso.

The tests in question call abort() on the PaymentRequest from unexpected places,
and our code was missing checks in several places to make sure there is still
an active payment session, causing crashes.

To address the issue, we now check if we still have an active payment session in
more places, in particular after calling functions that may run JavaScript, since
JS may abort the request at any point.

This change is covered by those 3 internal tests, which I'll unskip.

* Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::merchantValidationCompleted):
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated):
(WebCore::ApplePayPaymentHandler::retry):
* Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::abortWithException):
* Source/WebCore/testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::dispatchIfShowing):

Canonical link: https://commits.webkit.org/265867@main
https://bugs.webkit.org/show_bug.cgi?id=258982
rdar://111909822

Rubber-stamped by Aakash Jain.

* Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:
(GitHub.__init__): Allow caller to specify that the repository is private.
(GitHub._api_response): Include secret scanning and visibility data.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.block_secrets): Enable secret scanning and block the pushing of secrets.
(Setup.github): When validating an existing fork or creating a new one, enable
secret scanning and blocking if caller requests it.
(Setup.git): Consult configuration data to see if secret scanning should be enabled
in forks.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
* metadata/git_config_extension: Enable secret scanning for WebKit forks, but disable
it for private forks.

Canonical link: https://commits.webkit.org/265868@main
…unner

https://bugs.webkit.org/show_bug.cgi?id=258990
rdar://111404885

Reviewed by Tim Horton.

Add some test infrastructure that I'll be adopting as a part of a new layout test in a subsequent
patch. This refactors `UIScriptController::setSpellCheckerResults` (which is currently only
implemented on macOS) such that it is usable on iOS as well. See below for more details.

* Source/WebKit/Platform/spi/ios/UIKitSPI.h:
* Tools/DumpRenderTree/ios/UIScriptControllerIOS.h:
* Tools/TestRunnerShared/cocoa/LayoutTestSpellChecker.h:
* Tools/TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:

Compile this on iOS as well, by subclassing `UITextChecker` instead of `NSSpellChecker`. Most of
the logic remains the same, but with a handful of minor differences.

(ensureGlobalLayoutTestSpellChecker):
(nsTextCheckingType):
(+[LayoutTestSpellChecker checker]):
(+[LayoutTestSpellChecker uninstallAndReset]):
(-[LayoutTestSpellChecker setResultsFromJSValue:inContext:]):
(stringForCorrectionResponse):
(swizzledGrammarDetailsForString):
(-[LayoutTestSpellChecker grammarAlternativesForString:]):

Implement this and intercept calls into `TextComposer` to grab grammar checking details over the
scope of this function call; this allows us to ensure that tapping on grammar checking ranges (blue
underlines on iOS) shows an edit menu with the appropriate text replacements.

(-[LayoutTestSpellChecker checkString:range:types:languages:options:]):
(-[LayoutTestSpellChecker _doneLoading]):
* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::cocoaResetStateToConsistentValues):

Move the call to `+[LayoutTestSpellChecker reset]` out of `TestControllerMac`, and into
`TestControllerCocoa` where it runs on both macOS and iOS.

* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
(WTR::UIScriptControllerCocoa::setSpellCheckerResults):

Move this logic out of `UIScriptControllerMac`, and into `UIScriptControllerCocoa` instead where it
can service both macOS and iOS testing.

* Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h:
* Tools/WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformResetStateToConsistentValues):
* Tools/WebKitTestRunner/mac/UIScriptControllerMac.h:
* Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::setSpellCheckerResults): Deleted.

Canonical link: https://commits.webkit.org/265869@main
https://bugs.webkit.org/show_bug.cgi?id=258888
rdar://111698557

Reviewed by Alexey Proskuryakov.

Use SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL to avoid crashing when ASC isn't present
on base system.

* Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalService.mm:
(WebKit::LocalService::isAvailable):
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

Canonical link: https://commits.webkit.org/265870@main
…should hold the JSLock when calling the sweeper.

https://bugs.webkit.org/show_bug.cgi?id=259007
rdar://111505837

Reviewed by Justin Michaud.

This makes it consistent with the incremental sweeper that currently fires off a timer, which also
hold the JSLock while sweeping.

Not holding the JSLock while sweeping has resulted in the RELEASE_ASSERT in the JSLock::DropAllLocks
constructor failing.  Here's how it happens:

1. For a normal timer triggered sweep, we go through JSRunLoopTimer::timerDidFire() which acquires
   the JSLock, and holds it while sweeping.
2. For an idle triggered VM::performOpportunisticallyScheduledTasks(), it does NOT hold the JSLock
   while sweeping.
3. While sweeping, we may call back into some ObjC code that wraps a JSValue.
4. Releasing that JSValue for the sweep, requires acquiring the JSLock.
5. On releasing that JSLock, if it’s the outermost lock (i.e. not a re-entrant lock), then the
   JSLock unlocking code will call Heap::releaseDelayedReleasedObjects().
6. Heap::releaseDelayedReleasedObjects() uses DropAllLocks, which fails the RELEASE_ASSERT because
   we’re currently holding the JSLock and doing sweeping.
7. In contrast, for the normal timer triggered sweep, the outer most lock of the JSLock is
   JSRunLoopTimer::timerDidFire().  Hence, Heap::releaseDelayedReleasedObjects() won’t be called,
   and we won’t encounter this issue.

The fix is simply to acquire and hold the JSLock while sweeping in VM::performOpportunisticallyScheduledTasks().

* Source/JavaScriptCore/runtime/JSLock.cpp:
(JSC::JSLock::DropAllLocks::DropAllLocks):
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::performOpportunisticallyScheduledTasks):

Canonical link: https://commits.webkit.org/265871@main
anttijk and others added 27 commits July 14, 2023 21:09
https://bugs.webkit.org/show_bug.cgi?id=259211
rdar://112266773

Reviewed by Chris Dumez.

* Source/WebCore/loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::add):
(WebCore::MemoryCache::revalidationSucceeded):

If the resource was there already we might end up with a resource with inCache flag still incorrectly set.

Canonical link: https://commits.webkit.org/266065@main
https://bugs.webkit.org/show_bug.cgi?id=259218
rdar://111926152

Reviewed by Chris Dumez and David Kilzer.

There is an app that is doing some tricky things with the ObjC runtime,
and the containsObject: calls with different classes that exist in the
shouldEnableStrictMode function are causing it to later crash deep inside
the application's own code.  Luckily, we don't actually need to do these
checks on newer OSes where there are only code paths that return true
if strictSecureDecodingForAllObjCEnabled is true.

Manually verified this fixes the app, and it also should marginally
increase performance by removing unnecessary checks.

* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::shouldEnableStrictMode):

Canonical link: https://commits.webkit.org/266066@main
…h/height

https://bugs.webkit.org/show_bug.cgi?id=259217

Reviewed by Antti Koivisto.

* Source/WebCore/layout/layouttree/LayoutBoxGeometry.h:
(WebCore::Layout::BoxGeometry::setHasValidContentBoxHeight):
(WebCore::Layout::BoxGeometry::setHasValidContentBoxWidth):
(WebCore::Layout::BoxGeometry::setContentBoxHeight):
(WebCore::Layout::BoxGeometry::setContentBoxWidth):
(WebCore::Layout::BoxGeometry::setContentBoxSize):
(WebCore::Layout::BoxGeometry::contentBoxHeight const):
(WebCore::Layout::BoxGeometry::contentBoxWidth const):
(WebCore::Layout::BoxGeometry::geometryForWritingModeAndDirection const):
(WebCore::Layout::BoxGeometry::setHasValidContentHeight): Deleted.
(WebCore::Layout::BoxGeometry::setHasValidContentWidth): Deleted.

Canonical link: https://commits.webkit.org/266067@main
https://bugs.webkit.org/show_bug.cgi?id=195818
rdar://48937114

Reviewed by Aditya Keerthi.

These are non-standard and barely used. They are put behind a flag and
will be kept around for a while in case they are still being used
somewhere.

* LayoutTests/TestExpectations:
* LayoutTests/fast/dom/Window/get-set-properties-expected.txt:
* LayoutTests/fast/dom/Window/get-set-properties.html:
* LayoutTests/fast/dom/Window/resources/window-properties.js:
* LayoutTests/fast/dom/Window/window-lookup-precedence-expected.txt:
* LayoutTests/fast/dom/event-attribute-availability-expected.txt:
* LayoutTests/fast/dom/event-attribute-availability.html:
* LayoutTests/fast/dom/event-handler-attributes-expected.txt:
* LayoutTests/fast/dom/event-handler-attributes.html:
* LayoutTests/fast/dom/resources/wrapper-identity-base.js:
* LayoutTests/fast/dom/wrapper-identity-expected.txt:
* LayoutTests/fast/events/onsearch-enter-expected.txt: Removed.
* LayoutTests/fast/events/onsearch-enter.html: Removed.
* LayoutTests/fast/forms/incremental-dom-property-expected.txt: Removed.
* LayoutTests/fast/forms/incremental-dom-property.html: Removed.
* LayoutTests/fast/forms/input-search-press-escape-key-expected.txt: Removed.
* LayoutTests/fast/forms/input-search-press-escape-key.html: Removed.
* LayoutTests/fast/forms/search-event-delay-expected.txt: Removed.
* LayoutTests/fast/forms/search-event-delay.html: Removed.
* LayoutTests/http/tests/security/cross-frame-access-get-expected.txt:
* LayoutTests/http/tests/security/cross-frame-access-get.html:
* LayoutTests/http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt:
* LayoutTests/http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html:
* LayoutTests/http/tests/security/cross-frame-access-put-expected.txt:
* LayoutTests/http/tests/security/cross-frame-access-put.html:
* LayoutTests/http/tests/security/resources/cross-frame-iframe-for-put-test.html:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/historical-expected.txt:
* LayoutTests/platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/fast/dom/Window/window-lookup-precedence-expected.txt:
* LayoutTests/platform/mac/fast/dom/objc-wrapper-identity-expected.txt:
* LayoutTests/platform/wincairo/TestExpectations:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:
* Source/WebCore/bindings/js/WebCoreBuiltinNames.h:
* Source/WebCore/dom/GlobalEventHandlers.idl:
* Source/WebCore/html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler):
* Source/WebCore/html/HTMLInputElement.idl:
* Source/WebCore/html/SearchInputType.cpp:
(WebCore::SearchInputType::handleKeydownEvent):
(WebCore::SearchInputType::searchEventsShouldBeDispatched const):
* Source/WebCore/html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
* Source/WebCore/rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::valueChanged):
* Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultSearchInputIncrementalAttributeAndSearchEventEnabled):
* Source/WebKit/Shared/WebPreferencesDefaultValues.h:
* Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.h:
* Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm:
(WebKit::defaultSearchInputIncrementalAttributeAndSearchEventEnabled):

Canonical link: https://commits.webkit.org/266068@main
… ends

https://bugs.webkit.org/show_bug.cgi?id=259219
rdar://112003621

Reviewed by Jer Noble and Eric Carlson.

Don't drop the GPUProcess media assertion too promptly after playback ends,
instead, drop it on a timer.

There is a race where both the GPUProcess and the UIProcess get notified of a
WebProcess exiting in parallel. When notified, the UIProcess would drop the
media assertion on the GPUProcess, which could get it to suspend while the
GPUProcess is STILL shutting down the media stack.

Dropping the media assertion on a timer makes it so that the GPUProcess is now
extremely unlikely to lose the race and will have properly shut down the media
stack by the time it gets suspended.

* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::clearAudibleActivity):
(WebKit::WebProcessPool::updateAudibleMediaAssertions):
* Source/WebKit/UIProcess/WebProcessPool.h:

Canonical link: https://commits.webkit.org/266069@main
https://bugs.webkit.org/show_bug.cgi?id=259166
rdar://112056259

Reviewed by Aditya Keerthi.

The color of the caret should respect both the `caret-color` and the `color` properties.
Because every element implicitly has a `color`, the color of the caret should only reflect
this property if set by the author.

* LayoutTests/fast/css/caret-color-with-color-property-expected.html: Added.
* LayoutTests/fast/css/caret-color-with-color-property.html: Added.
* LayoutTests/fast/css/caret-color-with-inherited-color-property-expected.html: Added.
* LayoutTests/fast/css/caret-color-with-inherited-color-property.html: Added.
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/editing/FrameSelection.cpp:
(WebCore::CaretBase::computeCaretColor):
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/style/RenderStyleInlines.h:
(WebCore::RenderStyle::hasExplicitlySetColor const):
(WebCore::RenderStyle::InheritedFlags::operator== const):
* Source/WebCore/rendering/style/RenderStyleSetters.h:
(WebCore::RenderStyle::setHasExplicitlySetColor):
* Source/WebCore/style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueColor):
(WebCore::Style::BuilderCustom::applyInitialColor):
* Source/WebCore/style/StyleBuilderState.h:
(WebCore::Style::BuilderState::isAuthorOrigin const):

Canonical link: https://commits.webkit.org/266070@main
https://bugs.webkit.org/show_bug.cgi?id=259222
rdar://110986563

Reviewed by Mike Wyrzykowski.

There are two issues causing the overlapping and weird position:

1. When the page scale is < 1, our media controls counter-scaling increases the size of the media
controls outside their layout size; they should be restricted to their layout size. 262952@main
tried to fix it, however it was not a complete fix because `updatePageScaleFactorJSProperty()` is
called in two places and the check for `m_mediaControlsDependOnPageScaleFactor` was only added in
one of these call sites.

2. All media controls have a `bottom` CSS property applied to them, which causes an offset to be
applied to the element. However, this was only ever intended to be applied in non-audio controls.

Fix (1) by simply adding the check in the other call site, and fix (2) by removing this property
from the audio controls.

* Source/WebCore/Modules/modern-media-controls/controls/vision-media-controls.css:
(.media-controls.vision.fullscreen > .bottom.controls-bar):
(.media-controls.vision > .bottom.controls-bar): Deleted.
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControls):

Canonical link: https://commits.webkit.org/266071@main
https://bugs.webkit.org/show_bug.cgi?id=259224
rdar://112122350

Reviewed by Chris Dumez.

Old code walked the frame tree of each impacted document, which was unecessary.
Let's just directly set the transient activation timestamp for any remaining impacted documents.

* Source/WebCore/bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeScriptInWorld):

* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::consumeTransientActivation):
(WebCore::LocalDOMWindow::consumeLastActivationIfNecessary):
* Source/WebCore/page/LocalDOMWindow.h:

Canonical link: https://commits.webkit.org/266072@main
…ocument-leak.html is a flaky text failure

rdar://112288975
https://bugs.webkit.org/show_bug.cgi?id=259228

Unreviewed test gardening.

* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/266073@main
https://bugs.webkit.org/show_bug.cgi?id=259040
rdar://107270673

Reviewed by Alex Christensen.

Currently, our `allowsFirstPartyForCookies` message checks will always pass if the given
URL can’t be parsed into a RegistrableDomain. This patch removes each of the FIXMEs in the
`allowsFirstPartyForCookies` functions which allow this.

260966@main previously removed most of these FIXMEs, but was reverted due to cached resources
causing the web process to crash when loaded. This is fixed by setting the first party for
cookies to the request in `CachedResourceLoader::requestResource`.

* Source/WebCore/loader/PingLoader.cpp:
(WebCore::PingLoader::sendViolationReport):
* Source/WebCore/loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOMAsync):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::domCookiesForHost):
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::allowsFirstPartyForCookies):
* Source/WebKit/Shared/AuxiliaryProcess.h:
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
* Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::getResourceBytesAtPosition):
* Source/WebKit/WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::start):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::allowsFirstPartyForCookies):

Canonical link: https://commits.webkit.org/266074@main
…ningBoard assertion inside the NetworkProcess

https://bugs.webkit.org/show_bug.cgi?id=259229
rdar://112292565

Reviewed by Per Arne Vollan.

WebSQLiteDatabaseTracker and CFNetwork are unable to take RunningBoard assertion
inside the NetworkProcess on macOS due to tighter sandboxing than on iOS. This
is causing the NetworkProcess to often get killed on suspension because it is
holding locked database files.

* Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

Canonical link: https://commits.webkit.org/266075@main
https://bugs.webkit.org/show_bug.cgi?id=259223

Reviewed by Aditya Keerthi.

Remove two uses of SPI and IPI, which are trivially implementable using API instead. See below for
more details.

* Source/WebKit/Platform/spi/ios/UIKitSPI.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):

Instead of relying on `-_effectiveContentInset`, just use the equivalent `-adjustedContentInset`.

* Source/WebKit/UIProcess/ios/WKScrollView.mm:
(-[WKScrollView initWithFrame:]):

Instead of calling `-_setIndicatorInsetAdjustmentBehavior:` with `.always`, simply set
`automaticallyAdjustsScrollIndicatorInsets` to `YES`.

Canonical link: https://commits.webkit.org/266076@main
@mnutt mnutt merged commit 194b8bc into master Jul 31, 2023
1 check passed
@mnutt mnutt deleted the merge-upstream-2023-07-14 branch July 31, 2023 18:33
@mnutt mnutt restored the merge-upstream-2023-07-14 branch August 1, 2023 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet