Commit Graph

73443 Commits

Author SHA1 Message Date
Adrien Destugues 0195b40b77 Merge commit 'e4390067fab9a407b0c303e04f03c77381cb2ddb' into Haiku 2021-08-30 17:59:07 +02:00
Eric Hutchison 3224302342 Updated test expectations for fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html and fast/events/touch/ios/long-press-then-drag-to-select-text.html.
<rdar://80386523>, <rdar://80386061>.

Unreviewed test gardening.

* platform/ios-14/TestExpectations:
* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240837@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 18:27:24 +00:00
Eric Hutchison 5d06c5eaef Update test expectations for fast/events/touch/page-scaled-touch-gesture-click.html.
https://bugs.webkit.org/show_bug.cgi?id=168961.

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240835@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 17:16:44 +00:00
Eric Hutchison be117f9b38 Update test expectations for fast/events/wheelevent-in-frame.html.
https://bugs.webkit.org/show_bug.cgi?id=168961.

Unreviewed test gardening.

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

Canonical link: https://commits.webkit.org/240834@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 17:02:55 +00:00
Eric Hutchison 15d66b15a4 Update test expectations for fast/forms/ios/ipad/open-picker-using-keyboard.html and fast/forms/ios/accessory-bar-navigation.html.
<rdar://80391927>, <rdar://80390931>.

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240833@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281451 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 16:45:05 +00:00
Wenson Hsieh cbf95252da REGRESSION (r271146): editing/selection/ios/scrolling-to-focused-element-inside-iframe.html is failing
https://bugs.webkit.org/show_bug.cgi?id=229376
rdar://80384683

Reviewed by Megan Gardner.

Source/WebKit:

This iOS-specific test verifies that tapping on an element that makes itself contenteditable inside of a click
event handler both (1) brings up the software keyboard, and (2) scrolls to reveal the focused, newly editable
element such that it is not obscured by the software keyboard. This test began failing after the changes in
r271146 -- specifically, the fact that the call to `Element::setFocus()` moved to before the focus event is
dispatched, rather than afterwards.

The following timeline of events (annotated with web and UI processes) illustrates why this happens:

(WEB)   1.  The click event on the element inside the subframe is handled; the element is made contentEditable,
            and we make it focused, by first calling `Element::setFocus` and then `Element::dispatchFocusEvent`.
            Right before dispatching the "focus" event, we call out to the client layer, via
            `WebPage::elementDidFocus`, and compute a FocusedElementInformation struct to encode and send to the
            UI process in the WebPageProxy::ElementDidFocus IPC message.

        2.  In the process of populating this struct in `WebPage::focusedElementInformation`, we observe that
            layout is dirty, and immediately compute and send an EditorState underneath
            `WebPage::sendEditorStateUpdate()`.

        3.  We then proceed to construct and send FocusedElementInformation to the UI process via
            `Messages::WebPageProxy::ElementDidFocus`.

(UI)    4.  We receive the EditorState that was computed and sent in step (2), which contains the up-to-date
            state corresponding to the newly focused contentEditable `div`.

        5.  We then receive the FocusedElementInformation computed and sent in step (3), which makes us begin
            waiting for the next post-layout EditorState update before zooming to reveal the focused element, by
            setting WebPageProxy's `m_waitingForPostLayoutEditorStateUpdateAfterFocusingElement` flag. However,
            this post-layout EditorState after focusing the `div` never arrives, since we've already computed it
            and sent it in step (2).

        6.  The software keyboard finishes animating in, causing us to resolve the UIScriptController promise
            that we began to await after calling `UIHelper.activateAndWaitForInputSessionAt` in the test.

(WEB)   7.  The test finishes, calls `testRunner.notifyDone()`, and we destroy the focused subframe and clear
            the editable selection as well. This selection change causes us to compute another post-layout
            editor state and send it to the UI process.

(UI)    8.  The UI process *finally* receives the post-layout EditorState computed in (7). However, it's too
            late, since (a) the test has already finished, and (b) the post-layout EditorState is computed after
            the editable selection has already been cleared, so it's missing selection rect information anyways.

Prior to r271146, the call to `Element::setFocus` came *after* step (3), and caused us to compute and send
another EditorState to the UI process, which ensured that an up-to-date post layout EditorState would arrive in
the UI process shortly after step (5).

To fix this, we should avoid immediately computing and sending an EditorState to the UI process in the middle of
`WebPage::focusedElementInformation`, and instead simply schedule an EditorState during the next rendering
update. This ensures that the editor state triggered during element focus will always arrive after
`WebPageProxy::ElementDidFocus` in the UI process, rather than before, which allows us to scroll to the correct
selection rect in the UI process when focusing an editable element.

This also has the additional benefit of avoiding redundant EditorState computation and updates in the case where
focus is programmatically thrashed between elements during the same rendering update, since all of the editor
state updates are effectively batched together and dispatched at the end of the current rendering update.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::focusedElementInformation):

LayoutTests:

Adjust test expectations for the layout test, which should now pass.

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


Canonical link: https://commits.webkit.org/240832@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 16:41:50 +00:00
Sihui Liu 9124f8ac23 Import permissions tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229349

Reviewed by Chris Dumez.

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/permissions/META.yml: Added.
* web-platform-tests/permissions/feature-policy-permissions-query.html: Added.
* web-platform-tests/permissions/idlharness.any-expected.txt: Added.
* web-platform-tests/permissions/idlharness.any.html: Added.
* web-platform-tests/permissions/idlharness.any.js: Added.
(async idl_array):
* web-platform-tests/permissions/idlharness.any.worker-expected.txt: Added.
* web-platform-tests/permissions/idlharness.any.worker.html: Added.
* web-platform-tests/permissions/nfc-permission-expected.txt: Added.
* web-platform-tests/permissions/nfc-permission.html: Added.
* web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub-expected.txt: Added.
* web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub.html: Added.
* web-platform-tests/permissions/permissionsstatus-name-expected.txt: Added.
* web-platform-tests/permissions/permissionsstatus-name.html: Added.
* web-platform-tests/permissions/screen-wake-lock-permission-expected.txt: Added.
* web-platform-tests/permissions/screen-wake-lock-permission.html: Added.
* web-platform-tests/permissions/test-background-fetch-permission-expected.txt: Added.
* web-platform-tests/permissions/test-background-fetch-permission.html: Added.
* web-platform-tests/permissions/test-periodic-background-sync-permission-expected.txt: Added.
* web-platform-tests/permissions/test-periodic-background-sync-permission.html: Added.
* web-platform-tests/permissions/w3c-import.log: Added.


Canonical link: https://commits.webkit.org/240830@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 16:01:29 +00:00
Martin Robinson a70f9a1472 Sticky position should not use transformed position to compute sticky offset.
https://bugs.webkit.org/show_bug.cgi?id=164292
<rdar://problem/29054773>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate-expected.txt: Update results
of test to show pass.

Source/WebCore:

No new tests. This change is tested by the following WPT test:
  web-platform-tests/css/css-position/sticky/position-sticky-transforms-translate.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const): When calling localToContainerQuad,
pass 0 for the mode which means that the transformation between coordinate systems does not include
transforms.


Canonical link: https://commits.webkit.org/240829@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281446 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 15:11:36 +00:00
Chris Dumez ff71e5a6e9 WebKit2 can only have one active navigation policy check for a given frame
https://bugs.webkit.org/show_bug.cgi?id=229012

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline test that is now passing one more check.

* web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt:

Source/WebKit:

WebKit2 could only have one active navigation policy check for a given frame
and there was a FIXME comment about this in the code. This was causing some
WPT tests to timeout in WebKit2 only because those tests would trigger
several navigations (e.g. in new windows) and only the last one would proceed
(earlier ones would get cancelled).

This patch updates the policy checking logic in WebFrame so that we can support
several concurrent policy checks.

No new tests, unskipped / rebaselined existing tests.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::cancelPolicyCheck):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::~WebFrame):
(WebKit::WebFrame::setUpPolicyListener):
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::continueWillSubmitForm):
(WebKit::WebFrame::invalidatePolicyListeners):
(WebKit::WebFrame::didReceivePolicyDecision):
* WebProcess/WebPage/WebFrame.h:

LayoutTests:

Unskip a couple of tests that are no longer timing out in WebKit2.

* platform/ios-wk1/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt: Removed.
* platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt: Removed.
* platform/wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240828@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281445 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 15:02:30 +00:00
Carlos Garcia Campos 0e86f37ae4 Create a RenderLineBreak when BR element has unsupported content data style
https://bugs.webkit.org/show_bug.cgi?id=224849

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-08-23
Reviewed by Antti Koivisto.

Source/WebCore:

Instead of falling back to RenderElement::createFor(), create a RenderLineBreak just ignoring the unsupported
content data.

* html/HTMLBRElement.cpp:
(WebCore::HTMLBRElement::createElementRenderer):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::isContentDataSupported):
(WebCore::RenderElement::createFor):
* rendering/RenderElement.h:

LayoutTests:

* editing/execCommand/insert-image-in-composed-list-expected.txt: Rebaseline.

Canonical link: https://commits.webkit.org/240827@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281444 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 14:53:04 +00:00
Chris Dumez 6f1d674811 HTMLStyleElement should be able to fire the load event more than once
https://bugs.webkit.org/show_bug.cgi?id=228975

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing. This test was already passing in both Firefox and Chrome.

* web-platform-tests/html/semantics/document-metadata/the-style-element/style_load_event-expected.txt:

Source/WebCore:

HTMLStyleElement should be able to fire the load event more than once. WebKit has a flag
preventing the load event to fire more than once but this behavior is not present in the
HTML specification and doesn't match other browsers.

No new tests, rebaselined existing test.

* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):
* html/HTMLStyleElement.h:

LayoutTests:

Unskip test that is no longer timing out.

* TestExpectations:


Canonical link: https://commits.webkit.org/240826@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281443 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 14:50:46 +00:00
Xan Lopez d027ba26ec Skip failing test on 32bit (ARMv7/MIPS)
https://bugs.webkit.org/show_bug.cgi?id=229407

Unreviewed test gardening.

Patch by Xan Lopez <xan@igalia.com> on 2021-08-23

* js/script-tests/reserved-words.js:

Canonical link: https://commits.webkit.org/240825@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281442 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 14:32:41 +00:00
Alicia Boya Garcia 569fdc337c [MSE][GStreamer] Implement multi-track support
https://bugs.webkit.org/show_bug.cgi?id=229072

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch adds support for SourceBuffer having more than one track in
the GStreamer port.

This fixes the following LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-activesourcebuffers.html
media/media-source/media-source-has-audio-video.html
media/media-source/only-bcp47-language-tags-accepted-as-valid.html

* platform/graphics/gstreamer/GStreamerCommon.h:
(GstIteratorAdaptor::GstIteratorAdaptor):
(GstIteratorAdaptor::iterator::iterator):
(GstIteratorAdaptor::iterator::operator*):
(GstIteratorAdaptor::iterator::operator++):
(GstIteratorAdaptor::iterator::operator==):
(GstIteratorAdaptor::iterator::operator!=):
(GstIteratorAdaptor::begin):
(GstIteratorAdaptor::end):
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::consumeAppsinksAvailableSamples):
(WebCore::AppendPipeline::resetParserState):
(WebCore::AppendPipeline::handleAppsinkNewSampleFromStreamingThread):
(WebCore::createOptionalParserForFormat):
(WebCore::AppendPipeline::generateTrackId):
(WebCore::AppendPipeline::tryCreateTrackFromPad):
(WebCore::AppendPipeline::tryMatchPadToExistingTrack):
(WebCore::AppendPipeline::linkPadWithTrack):
(WebCore::AppendPipeline::makeWebKitTrack):
(WebCore::AppendPipeline::Track::initializeElements):
(WebCore::AppendPipeline::hookTrackEvents):
(WebCore::AppendPipeline::streamTypeToString):
(WebCore::AppendPipeline::id): Deleted.
(WebCore::AppendPipeline::trackId): Deleted.
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromStreamingThread): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink): Deleted.
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread): Deleted.
* platform/graphics/gstreamer/mse/AppendPipeline.h:
(WebCore::AppendPipeline::sourceBufferPrivate):
(WebCore::AppendPipeline::Track::Track):
(WebCore::AppendPipeline::appsrc):
(WebCore::AppendPipeline::appsinkCaps): Deleted.
(WebCore::AppendPipeline::track): Deleted.
(WebCore::AppendPipeline::appsink): Deleted.
(WebCore::AppendPipeline::demuxerSrcPadCaps): Deleted.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::setInitialVideoSize):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected): Deleted.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

LayoutTests:

Update expectations and rebaseline one test is which the buffered
ranges have changed slightly due to the audio track previously
discarded now being parsed.

* platform/glib/TestExpectations:
* platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:


Canonical link: https://commits.webkit.org/240823@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 13:22:29 +00:00
Yusuke Suzuki 907efddb43 [JSC] Remove already-shipped wasm option flags
https://bugs.webkit.org/show_bug.cgi?id=229386

Reviewed by Ross Kirsling.

JSTests:

* wasm/references/element_active_mod.js:
* wasm/references/element_parsing.js:
* wasm/references/externref_globals.js:
* wasm/references/externref_modules.js:
* wasm/references/externref_table.js:
* wasm/references/externref_table_import.js:
* wasm/references/func_ref.js:
* wasm/references/globals.js:
* wasm/references/is_null.js:
* wasm/references/memory_copy.js:
* wasm/references/memory_copy_shared.js:
* wasm/references/memory_fill_shared.js:
* wasm/references/multitable.js:
* wasm/references/parse_unreachable.js:
* wasm/references/table_js_api.js:
* wasm/references/table_misc.js:
* wasm/references/validation.js:
* wasm/stress/immutable-globals.js:
* wasm/stress/local-ref.js:
* wasm/stress/mutable-globals.js:
* wasm/stress/table-grow-table-size.js:

Source/JavaScriptCore:

This patch removes some wasm option flags which are already shipped.

* runtime/OptionsList.h:
* wasm/WasmFormat.h:
(JSC::Wasm::isValueType):
* wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
* wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
* wasm/WasmParser.h:
(JSC::Wasm::Parser<SuccessType>::parseBlockSignature):
* wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseElement):
(JSC::Wasm::SectionParser::parseData):
(JSC::Wasm::SectionParser::parseDataCount):
* wasm/js/JSWebAssembly.cpp:
(JSC::JSWebAssembly::finishCreation):
* wasm/js/WebAssemblyGlobalConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* wasm/js/WebAssemblyTablePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):

Tools:

* Scripts/run-jsc-stress-tests:

LayoutTests:

* workers/wasm-references.html:

Canonical link: https://commits.webkit.org/240821@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281438 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 06:28:16 +00:00
Alan Bujtas 2ccd0d1c03 [iOS] Unreviewed test gardening.
* platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:


Canonical link: https://commits.webkit.org/240820@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 04:25:31 +00:00
Alan Bujtas 28f93b1a6c [LFC][IFC] Add support for vertical-align: super
https://bugs.webkit.org/show_bug.cgi?id=228235

Reviewed by Antti Koivisto.

Source/WebCore:

* layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):

LayoutTests:

* platform/mac/css1/text_properties/vertical_align-expected.txt:


Canonical link: https://commits.webkit.org/240819@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 03:55:38 +00:00
Kate Cheney 4b0a22b5f3 Report correct blocked URI in CSP violation report
https://bugs.webkit.org/show_bug.cgi?id=226316
<rdar://problem/78552912>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html
       http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
* loader/DocumentThreadableLoader.h:
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::reportViolation const):
* page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Currently for a blocked redirection we report the blocked URI as the
target URL. This is not up to spec and we should actually report the
requested URL.

* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
* NetworkProcess/NetworkLoadChecker.h:

LayoutTests:

* http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect.html: Added.
* http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects.html: Added.
* platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
* platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
* platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-blocked-redirect-expected.txt: Added.
* platform/win/http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt: Added.
WebKitLegacy and Win have different console logging.


Canonical link: https://commits.webkit.org/240818@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 02:24:23 +00:00
Yusuke Suzuki bb751b0464 [JSC] Remove already-shipped JS feature flags
https://bugs.webkit.org/show_bug.cgi?id=229387

Reviewed by Ross Kirsling.

JSTests:

* microbenchmarks/class-fields-private/get-private-name.js:
* microbenchmarks/class-fields-private/monomorphic-get-private-field.js:
* microbenchmarks/class-fields-private/polymorphic-get-private-field.js:
* microbenchmarks/class-fields-private/polymorphic-put-private-field.js:
* microbenchmarks/class-fields-private/put-private-field.js:
* stress/class-fields-private-as-function.js:
* stress/class-fields-private-cached-bytecode.js:
* stress/class-fields-private-freeze-out-of-line.js:
* stress/class-fields-private-freeze.js:
* stress/class-fields-private-harmony.js:
* stress/class-fields-private-on-proxy.js:
* stress/class-fields-private-out-of-line.js:
* stress/class-fields-private-prevent-extensions-out-of-line.js:
* stress/class-fields-private-prevent-extensions.js:
* stress/class-fields-private-seal-out-of-line.js:
* stress/class-fields-private-seal.js:
* stress/class-fields-private-use-eval.js:
* stress/class-fields-static-harmony.js:
* stress/class-fields-static-private-harmony.js:
* stress/class-fields-stress-instance.js:
* stress/class-private-method-access.js:
* stress/dfg-get-private-name-by-id-generic.js:
* stress/dfg-get-private-name-by-id-osr-bad-identifier.js:
* stress/dfg-get-private-name-by-id.js:
* stress/dfg-get-private-name-by-offset-osr-bad-identifier.js:
* stress/dfg-get-private-name-by-offset-osr-bad-structure.js:
* stress/dfg-get-private-name-by-offset.js:
* stress/dfg-get-private-name-by-val-generic.js:
* stress/dfg-put-private-name-check-barrier-insertion.js:
* stress/dfg-put-private-name-compiled-as-put-by-id-direct.js:
* stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js:
* stress/ftl-get-private-name-by-id.js:
* stress/ftl-get-private-name-by-offset-multi.js:
* stress/get-private-name-cache-failure.js:
* stress/get-private-name-with-constant-ident.js:
* stress/get-private-name-with-constant-symbol.js:
* stress/get-private-name-with-different-symbol.js:
* stress/get-private-name-with-primitive.js:
* stress/get-private-name.js:
* stress/optional-chaining-and-private-fields.js:
* stress/private-accesor-duplicate-name-early-errors.js:
* stress/private-accessor-static-non-static.js:
* stress/private-brand-installed-after-super-call-from-arrow-function.js:
* stress/private-brand-installed-after-super-call-from-eval.js:
* stress/private-getter-brand-check.js:
* stress/private-getter-inner-class.js:
* stress/private-in-error.js:
* stress/private-in.js:
* stress/private-members-get-and-set.js:
* stress/private-method-and-field-named-constructor.js:
* stress/private-method-brand-check.js:
* stress/private-method-change-attribute-from-branded-structure.js:
* stress/private-method-change-prototype-from-branded-structure.js:
* stress/private-method-check-private-brand-ic.js:
* stress/private-method-check-structure-miss.js:
* stress/private-method-comparison.js:
* stress/private-method-delete-property-from-branded-structure.js:
* stress/private-method-extends-brand-check.js:
* stress/private-method-get-and-call.js:
* stress/private-method-invalid-multiple-brand-installation.js:
* stress/private-method-invalidate-compiled-with-constant-symbol.js:
* stress/private-method-nested-class.js:
* stress/private-method-on-sealed-objects.js:
* stress/private-method-on-uncacheable-dictionary.js:
* stress/private-method-polymorphic-with-constant-symbol.js:
* stress/private-method-set-brand-should-have-write-barrier.js:
* stress/private-method-untyped-use.js:
* stress/private-method-with-uncacheable-dictionary-transition.js:
* stress/private-methods-and-accessors-postfix-node.js:
* stress/private-methods-and-accessors-prefix-node.js:
* stress/private-methods-inline-cache.js:
* stress/private-methods-megamorphic-ic.js:
* stress/private-methods-on-proxy.js:
* stress/private-methods-poly-ic-multiple-classes.js:
* stress/private-methods-poly-ic-single-class.js:
* stress/private-name-access-in-computed-property.js:
* stress/private-names-available-on-direct-eval.js:
* stress/private-names-available-on-eval-during-field-initialization.js:
* stress/private-setter-brand-check.js:
* stress/private-setter-inner-class.js:
* stress/put-by-val-direct-addprivate.js:
* stress/put-by-val-direct-putprivate.js:
* stress/put-private-name-by-id-set-do-not-add-structure-trasition.js:
* stress/put-private-name-check-structure-miss.js:
* stress/put-private-name-constant-folding-to-mult-put-by-offset.js:
* stress/put-private-name-constant-folding-to-put-by-offset.js:
* stress/put-private-name-generic.js:
* stress/put-private-name-invalid-define.js:
* stress/put-private-name-invalid-store.js:
* stress/put-private-name-invalidate-compiled-with-constant-symbol.js:
* stress/put-private-name-polymorphic-with-constant-symbol.js:
* stress/put-private-name-untyped-use.js:
* stress/put-private-name-with-constant-symbol.js:
* stress/put-private-name-with-different-identifier.js:
* stress/put-private-name-with-primitive.js:
* stress/static-private-methods-and-accessor-inner-class.js:
* stress/static-private-methods-and-accessor-multiple-evaluation.js:
* stress/static-private-methods-and-accessors-postfix-node.js:
* stress/static-private-methods-and-accessors-prefix-node.js:
* stress/v8-cleanup-from-different-realm.js:
* stress/v8-cleanup-proxy-from-different-realm.js:
* stress/v8-finalization-registry-basics.js:
* stress/v8-finalizationregistry-and-weakref.js:
* stress/v8-finalizationregistry-keeps-holdings-alive.js:
* stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js:
* stress/v8-multiple-dirty-finalization-registries.js:
* stress/v8-reentrant-gc-from-cleanup.js:
* stress/v8-stress-finalizationregistry-dirty-enqueue.js:
* stress/v8-undefined-holdings.js:
* stress/v8-unregister-after-cleanup.js:
* stress/v8-unregister-before-cleanup.js:
* stress/v8-unregister-called-twice.js:
* stress/v8-unregister-inside-cleanup2.js:
* stress/v8-unregister-inside-cleanup3.js:
* stress/v8-unregister-many.js:
* stress/v8-weak-unregistertoken.js:
* test262/config.yaml:

Source/JavaScriptCore:

These features are already shipped. So removing these runtime flags to clean up source code and
remove untested path.

* API/JSObjectRef.cpp:
(JSObjectMakeError):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* bytecompiler/NodesCodegen.cpp:
(JSC::FunctionCallValueNode::emitBytecode):
* parser/Lexer.cpp:
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseBinaryExpression):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
* runtime/AggregateErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* runtime/ErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* runtime/JSGlobalObject.h:
* runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor<errorType>::constructImpl):
(JSC::NativeErrorConstructor<errorType>::callImpl):
* runtime/Options.cpp:
(JSC::Options::recomputeDependentOptions):
* runtime/OptionsList.h:
* wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* wasm/js/WebAssemblyLinkErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):

Tools:

* Scripts/run-jsc-benchmarks:

LayoutTests:

* js/script-tests/weakref-async-is-collected.js:
* js/script-tests/weakref-eventually-collects-values.js:
* js/script-tests/weakref-finalizationregistry.js:
* js/script-tests/weakref-microtasks-dont-collect.js:
* js/script-tests/weakref-weakset-consistency.js:
* js/weakref-async-is-collected.html:
* js/weakref-eventually-collects-values.html:
* js/weakref-finalizationregistry.html:
* js/weakref-microtasks-dont-collect.html:
* js/weakref-weakset-consistency.html:
* webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html:


Canonical link: https://commits.webkit.org/240816@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 01:06:11 +00:00
Alan Bujtas cf7785414a [LFC][IFC] Add support for out-of-flow box static positioning
https://bugs.webkit.org/show_bug.cgi?id=229103

Reviewed by Antti Koivisto.

Source/WebCore:

This patch is in preparation for enabling positioned content for IFC handling.

In this patch we compute the static position for out-of-flow content inside the inline formatting context.
As per spec, the static position of an out-of-flow box is computed as if the position was set to static.
However it does not mean that the out-of-flow box should be involved in the inline layout process.
Instead we figure out this static position after the inline layout by looking at
the previous sibling (or parent) box's geometry and place the out-of-flow box at the logical right position.

* layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration):
(WebCore::Layout::InlineFormattingContext::computeStaticPositionForOutOfFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::collectContentIfNeeded):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded): Deleted.
* layout/formattingContexts/inline/InlineFormattingContext.h:

LayoutTests:

* fast/inline/out-of-flow-with-static-position-in-ifc-expected.html: Added.
* fast/inline/out-of-flow-with-static-position-in-ifc.html: Added.


Canonical link: https://commits.webkit.org/240814@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-23 00:03:10 +00:00
Alan Bujtas 50a5b12c10 [LFC][IFC] Add support for vertical-align: sub
https://bugs.webkit.org/show_bug.cgi?id=228217

Reviewed by Antti Koivisto.

Source/WebCore:

Adjust legacy's integral alignment too.

* layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):

LayoutTests:

* platform/mac/css1/text_properties/vertical_align-expected.txt:
* platform/mac/fast/selectors/018b-expected.txt:
* platform/mac/fast/text/whitespace/020-expected.txt:


Canonical link: https://commits.webkit.org/240812@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281422 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 22:18:46 +00:00
Wenson Hsieh 110ceb0490 [iOS] Fix and reenable several layout tests to account for the changes in rdar://80384564
https://bugs.webkit.org/show_bug.cgi?id=229316

Reviewed by Tim Horton.

Source/WebKit:

After rdar://80384564, UIKit's non-editable text tap recognizer will no longer cause us to clear the active text
selection range when tapping outside of currently selected text in the page. Instead, WebKit's synthetic click
gesture recognizer should now manages clearing the selection (unless the page has prevented the "mousedown"
event).

With just the UIKit-side change, this already mostly works as expected since `commitPotentialTapFailed()` clears
out non-editable selections. However, there is one scenario in which we do want to clear out the selection when
tapping that isn't covered by the synthetic click gesture: when tapping on an element that does not handle or
prevent "mousedown"; this behavior is exercised by the existing layout test
`editing/selection/ios/hide-selection-after-tap-on-prevent-default-element.html`. To preserve this behavior, we
add a call to `clearSelectionAfterTapIfNeeded()` when completing a synthetic click, in the case where the
"mousedown" event was not swallowed.

These 3 tests should pass after the changes in rdar://80384564:
- editing/selection/ios/change-selection-by-tapping-with-existing-selection.html
- editing/selection/preserve-selection-when-clicking-button.html
- editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html

And these WebKit-side changes are needed to keep these 2 tests passing:
- editing/selection/ios/hide-selection-after-tap-on-prevent-default-element.html
- fast/images/text-recognition/ios/reselect-word-in-image-overlay.html

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::completeSyntheticClick):

LayoutTests:

See WebKit/ChangeLog for more details.

* fast/images/text-recognition/ios/reselect-word-in-image-overlay.html:

Add a short delay to avoid timing out, due to the second long press gesture to select text not triggering.

* platform/ios-14/TestExpectations:

Remove iOS 14-specific PASS expectations, and remove the more generic FAIL expectation in the ios directory.
Instead, just mark these three layout tests as FAIL on iOS 15, and PASS elsewhere.

* platform/ios-15/TestExpectations: Added.
* platform/ios/TestExpectations:


Canonical link: https://commits.webkit.org/240810@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281420 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 21:26:45 +00:00
Myles C. Maxfield f1c80ff75f Control characters (Unicode category Cc) should be rendered visibly
https://bugs.webkit.org/show_bug.cgi?id=149128
<rdar://problem/79224941>

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

These tests were erroneously marked as reference tests, when they should be reference-mismatch tests.

* web-platform-tests/css/css-text/white-space/control-chars-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-001-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-002-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-003-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-003-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-004-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-004-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-005-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-005-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-006-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-006-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-007-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-007-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-008-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-008-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-00B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00B-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-00C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00C-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-00E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00E-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-00F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-00F-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-010-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-010-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-011-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-011-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-012-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-012-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-013-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-013-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-014-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-014-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-015-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-015-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-016-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-016-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-017-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-017-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-018-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-018-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-019-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-019-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-01A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01A-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-01B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01B-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-01C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01C-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-01D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01D-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-01E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01E-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-01F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-01F-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-07F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-07F-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-080-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-080-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-081-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-081-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-082-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-082-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-083-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-083-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-084-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-084-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-085-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-085-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-086-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-086-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-087-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-087-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-088-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-088-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-089-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-089-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-08A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08A-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-08B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08B-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-08C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08C-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-08D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08D-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-08E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08E-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-08F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-08F-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-090-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-090-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-091-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-091-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-092-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-092-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-093-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-093-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-094-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-094-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-095-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-095-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-096-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-096-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-097-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-097-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-098-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-098-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-099-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-099-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-09A-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09A-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-09B-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09B-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-09C-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09C-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-09D-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09D-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-09E-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09E-expected.html.
* web-platform-tests/css/css-text/white-space/control-chars-09F-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/control-chars-09F-expected.html.

Source/WebCore:

We can map these glyphs to the .notdef glyph, which is (supposed to be) visible.

Tests: fast/dom/52776.html
       fast/text/fixed-pitch-control-characters.html
       fast/text/wide-zero-width-space.html
       fast/text/zero-width-characters.html
       imported/w3c/web-platform-tests/css/css-text/white-space*

* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyCSSVisibilityRules):

LayoutTests:

Update existing tests.

* fast/text/fixed-pitch-control-characters-expected.txt:
* fast/text/wide-zero-width-space.html:
* fast/text/zero-width-characters.html:
* platform/ios/fast/dom/52776-expected.txt:
* platform/mac/fast/dom/52776-expected.txt:
* platform/mac/fast/text/wide-zero-width-space-expected.txt: This actually shows
  that there's a difference between the fast text codepath and the complex text
  codepath, but that's okay for now because the complex text codepath is going
  away. Also, it's not practical to fix this in the complex text codepath,
  because that would require a CoreText change. So, for now, we can just encode
  the behavior difference in our test, and when the complex codepath finally
  goes away, this test will be updated to be working correctly again.

Canonical link: https://commits.webkit.org/240809@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281419 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 21:04:49 +00:00
Myles C. Maxfield 8c589fafa5 overwriteCodePoint() in createAndFillGlyphPage() is wrong
https://bugs.webkit.org/show_bug.cgi?id=215643
<rdar://problem/67430461>

Reviewed by Alan Bujtas.

Source/WebCore:

The CSS spec says that certain characters have to be invisible. Previously, we were doing this
by just treating these characters as if they were the zero width space character. However, this
is wrong for 2 reasons:

1. If the primary font supports the desired character but doesn't support the zero width space
       character, we'll fallback past it and trigger a download for secondary fonts until
       we find one that supports the ZWS character (which the page didn't even ask for!)
2. Shaping is Turing-complete, and expects that the correct glyphIDs are fed into the shaper.
       We can't just arbitrarily swap out glyphIDs before shaping just because we feel like it.

Instead, the solution is to handle these invisible characters after font fallback, and after
shaping. This patch does it just like we handle adding letter-spacing, word-spacing, and
justification after shaping - by iterating over the glyphs output by the shaper and seeing if
any need to be adjusted.

This patch also includes a fix for the situation where the glyph buffer might be left in an
inconsistent state, where the array of glyphs is shorter than the array of characters -
this new codepath added in this patch revealed this existing problem, and fixes it here too.

Test: fast/text/zwj-ligature.html

* platform/graphics/Font.cpp:
(WebCore::createAndFillGlyphPage):
(WebCore::overrideControlCharacters): Deleted.
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::glyphAt const):
(WebCore::GlyphBuffer::deleteGlyphWithoutAffectingSize):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyCSSVisibilityRules):
(WebCore::WidthIterator::advance):
* platform/graphics/WidthIterator.h:

Source/WTF:

* wtf/unicode/CharacterNames.h:

LayoutTests:

* fast/text/resources/Ahem-GSUB-ligatures.ttf: Added.
* fast/text/zwj-ligature-expected.html: Added.
* fast/text/zwj-ligature.html: Added.
* platform/mac/fast/text/format-control-expected.txt: Progression! A new ligature is formed that wasn't formed before.
      Also, this ligature is formed in both Chrome and Firefox, so we match them now.
* platform/win/TestExpectations:

Canonical link: https://commits.webkit.org/240804@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 05:41:27 +00:00
Alan Bujtas 363356392f [LFC][IFC] Add support for -webkit-text-security: disc
https://bugs.webkit.org/show_bug.cgi?id=229047

Reviewed by Antti Koivisto.
Source/WebCore:

The disc glyph affects layout, so let's replace the text before we start measuring the inline content.

* layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
* layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

Let's dump the actual disc characters.

* platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
* platform/ios/fast/css/text-overflow-input-expected.txt:
* platform/ios/fast/forms/basic-inputs-expected.txt:
* platform/ios/fast/forms/input-value-expected.txt:
* platform/mac/fast/css/text-overflow-input-expected.txt:
* platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
* platform/mac/fast/forms/basic-inputs-expected.txt:
* platform/mac/fast/forms/input-value-expected.txt:


Canonical link: https://commits.webkit.org/240802@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 04:24:30 +00:00
Alan Bujtas 87a03b6f4f [IFC][Integration] Enable modern line layout for placeholder elements
https://bugs.webkit.org/show_bug.cgi?id=228887

Reviewed by Antti Koivisto.

Source/WebCore:

Apparently placeholders don't do strange things anymore (this check is originated in SLL).

* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

LayoutTests:

* platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:


Canonical link: https://commits.webkit.org/240801@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 03:31:33 +00:00
Per Arne Vollan 1295243bbd [Win] The layout test fast/visual-viewport/resize-event-fired-window-resized.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229379

Unreviewed test gardening.


* platform/win/TestExpectations:


Canonical link: https://commits.webkit.org/240800@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 03:26:31 +00:00
Per Arne Vollan ee5de918b1 [Win] The layout test http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=229372

Unreviewed test gardening.


* platform/win/TestExpectations:


Canonical link: https://commits.webkit.org/240796@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 22:34:46 +00:00
Myles C. Maxfield 03cbc4b111 [Cocoa] Single characters don't get shaped in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=186804

Reviewed by Alan Bujtas.

Source/WebCore:

Previously, single characters weren't shaped in the fast text codepath,
because shaping in the fast text codepath was just for kerning and
ligatures. Kerning didn't need to shape individual characters because
kerning only applies to pairs of characters, and ligatures didn't need
to shape individual characters because two characters are required to
form a ligature. However, now that we want to replace the complex text
codepath with a new-and-improved fast text codepath, we have to perform
all shaping in the fast text codepath, regardless of how many characters
are present.

Test: fast/text/single-character-shaping.html

* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::shouldApplyFontTransforms const): Deleted.
* platform/graphics/WidthIterator.h:
* platform/graphics/coretext/FontCoreText.cpp:
(WebCore::Font::applyTransforms): Keep kerning disabled for single glyphs,
because of performance. This will be able to be removed when rdar://82195405
is fixed.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):

Tools:

Huge thanks to Laurence Penney to contributing this test font!!!

* Scripts/webkitpy/common/config/contributors.json:

LayoutTests:

Huge thanks to Laurence Penney to contributing this test font!!!

* fast/text/resources/UniversTofu-GSUB-rvrn.ttf: Added. The license is Apache 2.0.
* fast/text/single-character-shaping-expected.html: Added.
* fast/text/single-character-shaping.html: Added.


Canonical link: https://commits.webkit.org/240793@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 19:18:51 +00:00
Yusuke Suzuki a83e8bf7dc [JSC] Enable Array#findLast method
https://bugs.webkit.org/show_bug.cgi?id=229355

Reviewed by Saam Barati.

JSTests:

* stress/unscopables.js:

Source/JavaScriptCore:

This patch enables Array#findLast and Array#findLastIndex methods.

* runtime/ArrayPrototype.cpp: Order of unscopables is alphabet ordering (https://tc39.es/ecma262/#sec-array.prototype-@@unscopables)
(JSC::ArrayPrototype::finishCreation):
* runtime/OptionsList.h:

LayoutTests:

* inspector/model/remote-object-get-properties-expected.txt:
* js/Object-getOwnPropertyNames-expected.txt:
* js/array-unscopables-properties-expected.txt:
* js/script-tests/Object-getOwnPropertyNames.js:
* js/script-tests/array-unscopables-properties.js:

Canonical link: https://commits.webkit.org/240784@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 12:10:09 +00:00
Youenn Fablet de3b46e2aa Prevent AudioSession category from moving out of PlayAndRecord too quickly
https://bugs.webkit.org/show_bug.cgi?id=229327
<rdar://81997024>

Reviewed by Eric Carlson.

Source/WebCore:

If category is PlayAndRecord, we stick to PlayAndRecord until audio is no longer playing at which point we
transition to whatever category is most appropriate.
Introduce PlatformMediaSession::isPlaying in addition to canProduceAudio to compute whether audio is being played.

Test: http/tests/media/media-stream/audio-capture-and-category.https.html

* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::isPlaying const):
* Modules/webaudio/AudioContext.h:
* html/HTMLMediaElement.h:
* platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::isPlaying const):
* platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSessionClient::isPlaying const):
* platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::updateSessionState):

LayoutTests:

* http/tests/media/media-stream/audio-capture-and-category.https-expected.txt: Added.
* http/tests/media/media-stream/audio-capture-and-category.https.html: Added.


Canonical link: https://commits.webkit.org/240782@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 07:01:21 +00:00
Commit Queue 00ece9c77b Unreviewed, reverting r281343.
https://bugs.webkit.org/show_bug.cgi?id=229362

caused iOS test failure

Reverted changeset:

"Update baseline for http/tests/websocket/tests/hybi/close-
code-and-reason.html."
https://commits.webkit.org/r281343

Canonical link: https://commits.webkit.org/240781@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 06:10:53 +00:00
Alan Bujtas 5c695cf449 [IFC][Integration] Enable inline level boxes with relative (min/max)width and (min/max)height values
https://bugs.webkit.org/show_bug.cgi?id=229065

Reviewed by Antti Koivisto.

Source/WebCore:

When a block level box's style changes, while we mark the box itself for layout we normally don't
walk the subtree for damaged inline content. Instead during layout, we dirty these individual descendant renderers as needed.
Inline level boxes with relative width/height values are part of this group.
It's also similar to what we do in LegacyLineLayout::layoutLineBoxes.

* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):

LayoutTests:

* platform/ios/fast/frames/onlyCommentInIFrame-expected.txt:
* platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:


Canonical link: https://commits.webkit.org/240772@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 01:45:09 +00:00
Alan Bujtas 348ceeefaa [IFC][Integration] Enable non-auto line-break values
https://bugs.webkit.org/show_bug.cgi?id=228842

Reviewed by Antti Koivisto.

Source/WebCore:

IFC already supports line-break (except after-white-space).

* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

* TestExpectations: progressions
* platform/mac/fast/text/trailing-white-space-expected.txt: collapsed trailing whitespace cleanup.


Canonical link: https://commits.webkit.org/240771@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 01:13:06 +00:00
Patrick Angle 8e9b7a21d6 Web Inspector: Style rules declared after a rule whose selector has over 8192 components are not shown correctly
https://bugs.webkit.org/show_bug.cgi?id=229218

Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/css/getMatchedStylesForNodeLargeSelectors.html

CSS rules are limited to 8192 selector components in WebCore, and when more components are present the rule is
split into multiple `StyleRule` instances. This meant Web Inspector could not reliably resolve a `StyleRule`
back to its source data, which we do to enable things like editing, as well as to make sure we show the un-split
selector in the Styles sidebar of the Elements tab. Previously, the presences of multiple `StyleRule`s for a
single source data declaration was not accounted for, which meant that rules after the split rules would show a
mix of style information from the actual rule as well as a rule some number of declarations later in the same
style sheet. This is resolved by marking `StyleRule`s that have been split and marking the last of the split
rules. This allows us to then forgo incrementing the index for looking up raw declarations until we encounter
the last rule from a split `StyleRule`.

 * css/StyleRule.cpp:
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount const):

* css/StyleRule.h:
- Added two members to track rules that are split into multiple rules due to exceeding the 8192 component limit
for selectors in order to determine later which rules are effectively duplicates of each other. We use two
members here, one to track that the rule was split from a larger authored rule (`m_isSplitRule`), and one to
mark the last rule split from a given rule (`m_isLastRuleInSplitRule`). The second member prevents situations
where we might otherwise accidentally continue iterating into a list of `StyleRule` where two large authored
rules that had to be split are present next to each other in an ordered collection of `StyleRule`.

* inspector/InspectorStyleSheet.cpp:
(WebCore::selectorsFromSource):
- Use a vector of `CSSSelector`s for specificity information since we now collect selectors from potentially
multiple `CSSStyleRule`s.

(WebCore::InspectorStyleSheet::cssStyleRulesSplitFromSameRule):
- Find any neighboring CSSStyleRules that were split from the same original rule based on the order of rules as
well as the new flags in `StyleRule`

(WebCore::InspectorStyleSheet::selectorsForCSSStyleRule):
- Find all selectors for a given CSSStyleRule, including other `CSSStyleRule`s split from the same rule in a
style sheet.

(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
- Use all CSSSelectors from for the CSSStyleRule and other rules that were split from the same rule in a style
sheet.

(WebCore::InspectorStyleSheet::ruleSourceDataFor const):
(WebCore::InspectorStyleSheet::ruleIndexByStyle const):
- When looking up an index to get rule source data, make sure we don't overcount split rules.

* inspector/InspectorStyleSheet.h:

LayoutTests:

Test very large (8192 individual component) selectors to ensure surrounding styles are correctly resolved.

* inspector/css/getMatchedStylesForNodeLargeSelectors-expected.txt: Added.
* inspector/css/getMatchedStylesForNodeLargeSelectors.html: Added.


Canonical link: https://commits.webkit.org/240769@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:35:46 +00:00
Eric Hutchison f8296898e7 Update test expectations for fast/scrolling/ios/overflow-div-scrolling.html.
<rdar://80392444>.

Unreviewed test gardening.

* platform/ios-wk1/TestExpectations:

Canonical link: https://commits.webkit.org/240768@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:19:21 +00:00
Ayumi Kojima ff5347a30b [ Sky ] editing/input/cocoa/autocorrect-on.html is timing out.
<rdar://82191308>

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240766@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:00:57 +00:00
Eric Hutchison 5d16b20b30 Update test expectations for http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html.
<rdar://80393995>.

Unreviewed test gardening.

* platform/ios-14/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/ios/TestExpectations:

Canonical link: https://commits.webkit.org/240765@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 23:22:40 +00:00
Ayumi Kojima dbbb95a87a [ iOS & BigSur Debug wk2 ] compositing/video/video-update-rendering.html is a flakey text failure.
https://bugs.webkit.org/show_bug.cgi?id=223900

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240761@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:24:01 +00:00
Eric Hutchison 5f661f0376 Update baseline for http/tests/websocket/tests/hybi/close-code-and-reason.html.
<rdar://82186597>.

Unreviewed rebaseline.

* http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:

Canonical link: https://commits.webkit.org/240760@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:19:29 +00:00
Mikhail R. Gadelha e42bbd1b61 Unreviewed. Skip failing tests in 32 bits archs
https://bugs.webkit.org/show_bug.cgi?id=229345

Patch by Mikhail R. Gadelha <mikhail@igalia.com> on 2021-08-20
Reviewed by Yusuke Suzuki.

* platform/glib/TestExpectations:
* platform/wpe/TestExpectations:

Canonical link: https://commits.webkit.org/240759@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281342 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:01:12 +00:00
Alan Bujtas f8738c93d7 [LFC][IFC] Add support for justified non-breaking space
https://bugs.webkit.org/show_bug.cgi?id=228727

Reviewed by Antti Koivisto.

Let's use FontCascade::expansionOpportunityCount to figure out the number of expansion counts in a run.
It helps with finding non-breakable space in an otherwise non-whitespace content (foo&nbsp;bar where the contet forms one run but the because
of the non-breakable _space_ in the middle, it also produces an expansion opportunity).
This patch moves all the expansion handling over to Line::applyRunExpansion as we anyway need to walk the content to find such spaces (i.e. not worth trying to pre-compute them).

* layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::Line::Run::setExpansionBehavior): Deleted.
(WebCore::Layout::Line::Run::expansionBehavior const): Deleted.
(WebCore::Layout::Line::Run::setHorizontalExpansion): Deleted.
* layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::Run::expansion const):
(WebCore::Layout::Line::Run::setExpansion):
(WebCore::Layout::Line::Run::hasExpansionOpportunity const): Deleted.
(WebCore::Layout::Line::Run::expansionOpportunityCount const): Deleted.
* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForCharacter):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForStyle):


Canonical link: https://commits.webkit.org/240754@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 21:24:44 +00:00
Ayumi Kojima 162aa45fbc [ iOS 15 ]editing/selection/ios/hide-selection-in-tiny-contenteditable.html is a flaky failure.
<rdar://82183980>

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240753@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 20:56:03 +00:00
Dean Jackson a97bc462cd [WebXR] A session with only one view should cover the full screen
https://bugs.webkit.org/show_bug.cgi?id=229110
<rdar://problem/81940621>

Reviewed by Tim Horton.

Source/WebCore:

If we get into the state with an immersive session and only one view,
we should treat that view as the full width. This situation should never
happen with a real headset, but can be found in testing scenarios.

Test: http/wpt/webxr/xrViewport_singleView_valid.https.html

* Modules/webxr/WebXRWebGLLayer.cpp:
(WebCore::WebXRWebGLLayer::computeViewports): Add test for only one
view and assume it is the left eye.

LayoutTests:

Add a test that provides an immersive session with only one view.
This required copying a few more things over from the WPT directory.

* http/wpt/webxr/resources/test-only-api.js: Added.
(loadScript):
* http/wpt/webxr/resources/webxr_test_constants_single_view.js: Added.
* http/wpt/webxr/resources/webxr_util.js: Added.
* http/wpt/webxr/xrViewport_singleView_valid.https-expected.txt: Added.
* http/wpt/webxr/xrViewport_singleView_valid.https.html: Added.

Canonical link: https://commits.webkit.org/240748@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281331 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 19:41:33 +00:00
Carlos Alberto Lopez Perez 70c45be7a7 [GTK][WPE] Gardening of expected failures
Unreviewed gardening.

* platform/glib/TestExpectations:
* platform/gtk/TestExpectations:

Canonical link: https://commits.webkit.org/240746@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 19:28:02 +00:00
Eric Hutchison 88ecce7d36 [iOS wk2, Mac wk2] http/wpt/mediarecorder/video-rotation.html is a flaky failure.
<rdar://76434263>.

Unreviewed test gardening.

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

Canonical link: https://commits.webkit.org/240745@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281328 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 18:43:35 +00:00
Patrick Angle 1b71292aa8 Release assert in ScriptController::canExecuteScripts via WebCore::WebSocket::didReceiveMessage
https://bugs.webkit.org/show_bug.cgi?id=229301

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html

`WebCore::WebSocket::didReceiveMessage` and other functions that fire JS events may be called while the
`WebSocketChannel` is being resumed, but it is not yet safe to evaluate JavaScript during resuming. This was
already accounted for with some events like errors and closing, but it holds true for all events. We should
delay firing these events as well.

* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveBinaryData):

LayoutTests:

* http/tests/websocket/tests/hybi/inspector/echo-delayed_wsh.py: Added.
(web_socket_do_extra_handshake):
(web_socket_transfer_data):
- Similar to `echo_wsh.py`, respond with the provided message when received, but delay the response by 100ms.
* http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger-expected.txt: Added.
* http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html: Added.


Canonical link: https://commits.webkit.org/240740@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281323 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 17:31:33 +00:00
Ayumi Kojima 1b88fb7bce [ iOS Debug ] animations/unprefixed-events.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229338

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240737@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281320 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 16:22:25 +00:00
Commit Queue 87b0d8daae Unreviewed, reverting r281307.
https://bugs.webkit.org/show_bug.cgi?id=229336

broke layout tests

Reverted changeset:

"[IFC][Integration] Enable non-auto line-break values"
https://bugs.webkit.org/show_bug.cgi?id=228842
https://commits.webkit.org/r281307

Canonical link: https://commits.webkit.org/240733@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 15:24:44 +00:00
Antti Koivisto 652a72614d [LFC][Integration] Enable full underline support
https://bugs.webkit.org/show_bug.cgi?id=229322

Reviewed by Alan Bujtas.

Source/WebCore:

We can now paint all underlines.

* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
* layout/integration/LayoutIntegrationCoverage.h:
* layout/integration/LayoutIntegrationInlineContent.cpp:
(WebCore::LayoutIntegration::InlineContent::iteratorForRun const):
(WebCore::LayoutIntegration::InlineContent::iteratorForTextRun const):
* layout/integration/LayoutIntegrationInlineContent.h:
* layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):

LayoutTests:

Remove a test that just checks we are forcing legacy for underline-position:under.

* fast/text/simple-line-layout-with-text-underline-position-expected.html: Removed.
* fast/text/simple-line-layout-with-text-underline-position.html: Removed.


Canonical link: https://commits.webkit.org/240731@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281311 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 13:21:06 +00:00
Tim Nguyen 92f81cb80d Initial implementation of inert subtrees
https://bugs.webkit.org/show_bug.cgi?id=110952

Reviewed by Antti Koivisto.

Currently covers:
- Blocking focus & selecting
- aria-hidden like behaviour

Hit testing/event retargeting will be covered by https://bugs.webkit.org/show_bug.cgi?id=229330 pending a spec issue

Relevant WPT enabled. More testing coverage will be provided with the inert attribute.

LayoutTests/imported/w3c:

* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-unfocusable-expected.txt:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:

Source/WebCore:

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAXHidden const):
* dom/Element.cpp:
(WebCore::Element::isFocusable const):
* dom/Node.cpp:
(WebCore::Node::canStartSelection const):
(WebCore::Node::isInert const):
* dom/Node.h:


Canonical link: https://commits.webkit.org/240729@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 12:56:14 +00:00