2019-08-24  Simon Fraser  <simon.fraser@apple.com>

        Page crashes under CGPathAddUnevenCornersRoundedRect
        https://bugs.webkit.org/show_bug.cgi?id=201117

        Reviewed by Dean Jackson.

        * fast/borders/renderable-uneven-rounded-rects-expected.txt: Added.
        * fast/borders/renderable-uneven-rounded-rects.html: Added.

2019-08-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: "Copy Rule" menu item does not propagate comments properly
        https://bugs.webkit.org/show_bug.cgi?id=201095

        Reviewed by Joseph Pecoraro.

        * inspector/css/generateCSSRuleString.html:
        * inspector/css/generateCSSRuleString-expected.txt:

2019-08-23  Devin Rousso  <drousso@apple.com>

        Web Inspector: create additional command line api functions for other console methods
        https://bugs.webkit.org/show_bug.cgi?id=200971

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
        * inspector/console/command-line-api-expected.txt:

2019-08-23  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] [WebKit2] Tapping on the “I’m” text suggestion after typing “i’” does nothing
        https://bugs.webkit.org/show_bug.cgi?id=201085
        <rdar://problem/53056118>

        Reviewed by Tim Horton.

        Add a new layout test to verify that "I’" can be autocorrected to "I’m".

        * fast/events/ios/autocorrect-with-apostrophe-expected.txt: Added.
        * fast/events/ios/autocorrect-with-apostrophe.html: Added.

2019-08-23  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r248974): fast/events/ios/key-command-delete-to-end-of-paragraph.html is timing out on iOS
        https://bugs.webkit.org/show_bug.cgi?id=201091
        <rdar://problem/54647731>

        Reviewed by Megan Gardner.

        * fast/events/ios/key-command-delete-to-end-of-paragraph.html:
        The test as-written doesn't actually wait for the tap to complete before
        continuing on with the test - it starts immediately when the focus event
        fires. This results in the selection being changed by the single click
        handler *after* focusing the field.

        Rewrite the test to await completion of the tap before moving forward
        instead of waiting for focus.

2019-08-23  Chris Dumez  <cdumez@apple.com>

        [geolocation] Rename interfaces and remove [NoInterfaceObject]
        https://bugs.webkit.org/show_bug.cgi?id=200885

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/dom/Geolocation/exposed-geolocation-interfaces-expected.txt: Added.
        * fast/dom/Geolocation/exposed-geolocation-interfaces.html: Added.
        * fast/dom/Geolocation/position-string-expected.txt:
        * fast/dom/Geolocation/position-string.html:

2019-08-23  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r249001.

        Caused one layout test to fail on all configurations and
        another to time out on Catalina / iOS 13.

        Reverted changeset:

        "Add a WebsiteDataStore delegate to handle
        AuthenticationChallenge that do not come from pages"
        https://bugs.webkit.org/show_bug.cgi?id=196870
        https://trac.webkit.org/changeset/249001

2019-08-23  Antoine Quint  <graouts@apple.com>

        REGRESSION: fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=201075
        <rdar://problem/54491246>

        Reviewed by Daniel Bates.

        This test was written very early on in the process of implementing Pointer Events and assumed events would keep
        firing when scrolling occured. We need to add "touch-action: none" to ensure we get pointermove and pointerup
        events. We also need to ensure that the interaction occurs over content otherwise events won't fire. Finally, we
        pretty up the test a bit.

        * fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup-expected.txt:
        * fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup.html:

2019-08-20  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Support NFC authenticators for iOS
        https://bugs.webkit.org/show_bug.cgi?id=188624
        <rdar://problem/43354214>

        Reviewed by Chris Dumez.

        * http/wpt/webauthn/ctap-nfc-failure.https-expected.txt: Added.
        * http/wpt/webauthn/ctap-nfc-failure.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
        This patch replaces the "local" keyword with "hid".
        * http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-success-nfc.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-nfc.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-nfc.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-success-nfc.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-success-nfc.https.html: Added.
        * http/wpt/webauthn/resources/util.js:
        * platform/ios-simulator-wk2/TestExpectations:
        Skip NFC tests for simulators.

2019-08-23  Russell Epstein  <repstein@apple.com>

        Unreviewed, rolling out r249031.

        Causes multiple test failures on iOS simulator

        Reverted changeset:

        "[iOS] Should show input view when became first responder if
        keyboard was showing when the view was resigned"
        https://bugs.webkit.org/show_bug.cgi?id=200902
        https://trac.webkit.org/changeset/249031

2019-08-23  Megan Gardner  <megan_gardner@apple.com>

        Revert delete-in-input-in-iframe.html and typing-in-input-in-iframe.html to original behaviour after r248977 and make associated test autoscroll-input-when-very-zoomed.html more stable
        https://bugs.webkit.org/show_bug.cgi?id=201058

        Reviewed by Simon Fraser.

        delete-in-input-in-iframe and typing-in-input-in-iframe were changed when scrolling was made to work differently in r244141.
        They actually did find a bug, and that bug was fixed in r248977, so we put the tests back to test that scolls do not happen.
        Also update autoscroll-input-when-very-zoomed which was added to test r248977 to be more robust.

        * fast/forms/ios/delete-in-input-in-iframe-expected.txt:
        * fast/forms/ios/delete-in-input-in-iframe.html:
        * fast/forms/ios/typing-in-input-in-iframe-expected.txt:
        * fast/forms/ios/typing-in-input-in-iframe.html:
        * fast/scrolling/ios/autoscroll-input-when-very-zoomed.html:

2019-08-22  Fujii Hironori  <Hironori.Fujii@sony.com>

        [SVG] -webkit-clip-path treats url(abc#xyz) as url(#xyz) because it checks only URL fragment part
        https://bugs.webkit.org/show_bug.cgi?id=201030

        Reviewed by Ryosuke Niwa.

        * svg/clip-path/clip-path-invalid-reference-001-expected.svg: Added.
        * svg/clip-path/clip-path-invalid-reference-001.svg: Added.
        * svg/clip-path/clip-path-invalid-reference-002-expected.svg: Added.
        * svg/clip-path/clip-path-invalid-reference-002.svg: Added.

2019-08-22  Daniel Bates  <dabates@apple.com>

        [iOS] Should show input view when became first responder if keyboard was showing when the view was resigned
        https://bugs.webkit.org/show_bug.cgi?id=200902
        <rdar://problem/54231756>

        Reviewed by Wenson Hsieh.

        Add tests to ensure that we show the keyboard when becoming first responder if the view resigned with the
        keyboard on screen. Also add a test to ensure that we keep our current behavior and do NOT show the keyboard
        for an autofocused text field when the view becomes first responder.

        * fast/events/ios/resources/check-keyboard-on-screen.js: Added.
        (async.checkKeyboardOnScreen):
        (async.checkKeyboardNotOnScreen):
        * fast/events/ios/should-not-show-keyboard-for-autofocused-field-when-becoming-first-responder-after-navigation-expected.txt: Added.
        * fast/events/ios/should-not-show-keyboard-for-autofocused-field-when-becoming-first-responder-after-navigation.html: Added.
        * fast/events/ios/show-keyboard-when-becoming-first-responder-despite-inputmode-none-expected.txt: Added.
        * fast/events/ios/show-keyboard-when-becoming-first-responder-despite-inputmode-none.html: Added.
        * fast/events/ios/show-keyboard-when-becoming-first-responder-expected.txt: Added.
        * fast/events/ios/show-keyboard-when-becoming-first-responder.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.waitForKeyboardToShow.return.new.Promise): Added.
        (window.UIHelper.waitForKeyboardToShow): Added.
        (window.UIHelper.becomeFirstResponder): Added.

2019-08-22  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r248974): fast/events/ios/select-all-with-existing-selection.html fails
        https://bugs.webkit.org/show_bug.cgi?id=201050

        Reviewed by Wenson Hsieh.

        * fast/events/ios/select-all-with-existing-selection.html:
        The test as-written doesn't actually wait for the tap to complete before
        continuing on with the test - it starts immediately when the focus event
        fires. This results in the selection being changed by the single click
        handler *after* focusing the field.

        Rewrite the test to await completion of the tap before moving forward
        instead of waiting for focus.

2019-08-22  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Crash may happen when an SVG <feImage> element references the root <svg> element
        https://bugs.webkit.org/show_bug.cgi?id=201014

        Reviewed by Ryosuke Niwa.

        Ensure the cyclic reference between the <feImage> renderer and its
        ancestor <svg> root renderer is broken.

        * svg/filters/filter-image-ref-root-expected.txt: Added.
        * svg/filters/filter-image-ref-root.html: Added.

2019-08-22  Tim Horton  <timothy_horton@apple.com>

        Rebaseline some editing tests after r248974
        https://bugs.webkit.org/show_bug.cgi?id=200999
        <rdar://problem/54564878>

        * platform/ios/editing/deleting/smart-delete-003-expected.txt:
        * platform/ios/editing/deleting/smart-delete-004-expected.txt:
        * platform/ios/editing/pasteboard/smart-paste-008-expected.txt:

2019-08-22  Wenson Hsieh  <wenson_hsieh@apple.com>

        Typing Korean in title field after typing in the body inserts extraneous characters on blog.naver.com
        https://bugs.webkit.org/show_bug.cgi?id=201023
        <rdar://problem/54294794>

        Reviewed by Ryosuke Niwa.

        Add a new layout test to verify that we suppress text interactions when focusing an editable element inside an
        empty, borderless subframe.

        * editing/selection/ios/do-not-show-selection-in-empty-borderless-subframe-expected.txt: Added.
        * editing/selection/ios/do-not-show-selection-in-empty-borderless-subframe.html: Added.

2019-08-22  Youenn Fablet  <youenn@apple.com>

        Add a WebsiteDataStore delegate to handle AuthenticationChallenge that do not come from pages
        https://bugs.webkit.org/show_bug.cgi?id=196870

        Reviewed by Alex Christensen.

        Add tests to validate that the delegate decision is respected for beacons and service worker loads.

        * http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight-expected.txt:
        * http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html:
        * http/wpt/beacon/resources/beacon-preflight.py:
        (main):
        * http/wpt/service-workers/resources/lengthy-pass.py:
        (main):
        * http/wpt/service-workers/server-trust-evaluation.https-expected.txt: Added.
        * http/wpt/service-workers/server-trust-evaluation.https.html: Added.
        * http/wpt/service-workers/server-trust-worker.js: Added.

2019-08-21  Ryosuke Niwa  <rniwa@webkit.org>

        Layout Test perf/clone-with-focus.html is a Flaky Failure
        https://bugs.webkit.org/show_bug.cgi?id=201012

        Reviewed by Antti Koivisto.

        The flakiness was observed when the time to clone elements without focus is 0ms
        but the time to clone elements with focus is 1ms or greater.

        The test tries to make sure the time to clone elements with foucs is less than 2x
        of the time to clone elements without focus. When the time to clone without focus
        is 0ms, any difference is always more than 2x larger.

        Fixed the test by increasing the number of elements until the time to clone without
        focus takes at least 5ms.

        * perf/clone-with-focus.html:

2019-08-21  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Vertex shader and fragment shader need to be able to come from two different programs
        https://bugs.webkit.org/show_bug.cgi?id=195446

        Reviewed by Saam Barati.

        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-10-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-11-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-12-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-13-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-14-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-15-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-16-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-17-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-18-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-19-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-2-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-20-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-21-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-22-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-23-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-24-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-25-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-26-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-27-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-3-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-4-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-5-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-6-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-7-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-8-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-9-expected.txt: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-expected.html: Added.
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules.html: Added.

2019-08-21  Ryosuke Niwa  <rniwa@webkit.org>

        SVG element should become focusable when focus and key event listeners are added
        https://bugs.webkit.org/show_bug.cgi?id=200997

        Reviewed by Said Abou-Hallawa.

        Updated existing tests to set tabIndex where appropriate, and added SVG elements
        without tabindex content attribute to tabindex-order.html so that the test would
        skip those elements when sequentially focus navigating across them.

        * svg/custom/add-event-listener-shadow-tree-element.html:
        * svg/custom/resources/focus-event-handling-keyboard.js:
        * svg/custom/resources/focus-event-handling.js:
        * svg/custom/tabindex-order-expected.txt:
        * svg/custom/tabindex-order.html: Added test cases without tabindex.

2019-08-21  Megan Gardner  <megan_gardner@apple.com>

        Do not adjust viewport if editing selection is already visible
        https://bugs.webkit.org/show_bug.cgi?id=200907
        <rdar://problem/53903417>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/autoscroll-input-when-very-zoomed-expected.txt: Added.
        * fast/scrolling/ios/autoscroll-input-when-very-zoomed.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.immediateZoomToScale):

2019-08-21  Tim Horton  <timothy_horton@apple.com>

        [Mail] Tapping top of message scrolls back to copied text instead of top of the message
        https://bugs.webkit.org/show_bug.cgi?id=200999
        <rdar://problem/54564878>

        Reviewed by Wenson Hsieh.

        * editing/selection/ios/change-selection-by-tapping-with-existing-selection-expected.txt: Added.
        * editing/selection/ios/change-selection-by-tapping-with-existing-selection.html: Added.

2019-08-21  Alex Christensen  <achristensen@webkit.org>

        Disabling text autosizing should prevent text autosizing
        https://bugs.webkit.org/show_bug.cgi?id=200955
        <rdar://problem/48095374>

        Reviewed by Simon Fraser.

        * fast/text-autosizing/ios/text-size-adjust-inline-style.html:
        The comment was incorrect because we call WKPreferencesSetTextAutosizingEnabled(preferences, false) in TestController::platformResetPreferencesToConsistentValues.
        In order to test the effect of text autosizing in this test, we need to explicitly turn it on.  The disabling of text autosizing didn't do anything before this
        patch, so it wasn't needed before now.

2019-08-21  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, land test expectations for rdar://54561673.

        * platform/ios/TestExpectations:
        * platform/ios-12/TestExpectations:

2019-08-21  Rob Buis  <rbuis@igalia.com>

        Verify Prefetch and credential behavior
        https://bugs.webkit.org/show_bug.cgi?id=200000

        Reviewed by Youenn Fablet.

        Add a test to verify that navigating to a prefetched main resource
        that sets Vary: Cookie does send cookies.

        * http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie-expected.txt: Added.
        * http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html: Added.
        * http/wpt/prefetch/resources/main-resource-cross-origin-set-cookie.py: Added.
        (main):
        * http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py: Added.
        (main):
        * http/wpt/prefetch/resources/navigate-cross-origin-vary-cookie.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-08-21  Ryosuke Niwa  <rniwa@webkit.org>

        Put keygen element behind a runtime flag and disable it by default
        https://bugs.webkit.org/show_bug.cgi?id=200850

        Reviewed by Antti Koivisto.

        Deployed enableKeygenElement test runner option to keep the layout tests running.

        * accessibility/content-changed-notification-causes-crash.html:
        * accessibility/contenteditable-table-check-causes-crash.html:
        * accessibility/duplicate-axrenderobject-crash.html:
        * fast/block/float/float-not-removed-from-first-letter.html:
        * fast/block/float/split-inline-sibling-of-float-crash.html:
        * fast/css/pseudo-required-optional-unapplied.html:
        * fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html:
        * fast/dom/HTMLKeygenElement/keygen-keytype.html:
        * fast/dom/HTMLKeygenElement/keygen.html:
        * fast/dom/adopt-node-crash-2.html:
        * fast/dom/attribute-set-before-element-in-tree.html:
        * fast/dom/domstring-attribute-reflection.html:
        * fast/dom/set-custom-validity-with-too-few-arguments.html:
        * fast/dom/tabindex-defaults.html:
        * fast/dom/wrapper-classes.html:
        * fast/dynamic/insertAdjacentHTML-allowed-parents.html:
        * fast/flexbox/crash-button-keygen.html:
        * fast/forms/ValidityState-001.html:
        * fast/forms/autofocus-keygen.html:
        * fast/forms/checkValidity-001.html:
        * fast/forms/fieldset/fieldset-elements-htmlcollection.html:
        * fast/forms/fieldset/fieldset-elements.html:
        * fast/forms/form-associated-element-crash3.html:
        * fast/forms/form-attribute.html:
        * fast/forms/form-collection-elements-order.html:
        * fast/forms/form-collection-elements.html:
        * fast/forms/form-collection-radio-node-list.html:
        * fast/forms/label/labelable-elements.html:
        * fast/forms/label/labels-add-htmlFor-label.html:
        * fast/forms/label/labels-add-parent-label.html:
        * fast/forms/label/labels-change-htmlFor-attribute.html:
        * fast/forms/label/labels-multiple-sibling-labels.html:
        * fast/forms/label/labels-parent-and-sibling-labels.html:
        * fast/forms/label/labels-remove-htmlFor-attribute.html:
        * fast/forms/label/labels-remove-htmlFor-label.html:
        * fast/forms/label/labels-remove-parent-label.html:
        * fast/forms/label/labels-set-htmlFor-attribute.html:
        * fast/forms/large-parts.html:
        * fast/forms/scrollheight-with-mutation-crash.html:
        * fast/forms/setCustomValidity-arguments.html:
        * fast/forms/setCustomValidity-existence.html:
        * fast/forms/setCustomValidity-null-parameter.html:
        * fast/forms/state-restore-skip-stateless.html:
        * fast/forms/update-form-owner-in-moved-subtree-assertion-failure.html:
        * fast/forms/validationMessage.html:
        * fast/forms/willvalidate.html:
        * fast/html/clone-keygen.html:
        * fast/html/keygen.html:
        * fast/html/marquee-reparent-check.html:
        * fast/invalid/residual-style-expected.html:
        * fast/invalid/residual-style.html:
        * fast/multicol/span/positioned-child-not-removed-crash.html:
        * fast/ruby/float-object-doesnt-crash.html:
        * fast/shadow-dom/keygen-shadow-manipulation.html:
        * fast/table/crash-splitColumn-2.html:
        * fast/table/multiple-captions-crash3-expected.html:
        * fast/table/multiple-captions-crash3.html:
        * http/tests/misc/resources/check-keygen-post.php:
        * http/tests/misc/submit-post-keygen.html:
        * imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow-expected.html:
        * imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow.html:
        * imported/blink/fast/text/international-iteration-simple-text.html:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Rebaselined
        now that the test case for keygen is passing.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Ditto.
        * svg/dom/css-animate-input-foucs-crash.html:

2019-08-21  Russell Epstein  <repstein@apple.com>

        Unreviewed, rolling out r248942.

        Causes multiple layout test crashes on MacOS Bots

        Reverted changeset:

        "Verify Prefetch and credential behavior"
        https://bugs.webkit.org/show_bug.cgi?id=200000
        https://trac.webkit.org/changeset/248942

2019-08-21  Devin Rousso  <drousso@apple.com>

        Web Inspector: Page: re-add enable/disable after r248454
        https://bugs.webkit.org/show_bug.cgi?id=200947

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/page/loading-iframe-document-node.html:
        * inspector/css/getMatchedStylesForNode.html:
        * inspector/css/getMatchedStylesForNode-expected.txt:
        * inspector/page/archive.html:
        * inspector/page/frameScheduledNavigation.html:
        * inspector/page/frameScheduledNavigation-async-delegates.html:
        * inspector/page/frameStartedLoading.html:
        * inspector/page/media-query-list-listener-exception.html:
        * inspector/timeline/line-column.html:

2019-08-21  Rob Buis  <rbuis@igalia.com>

        Verify Prefetch and credential behavior
        https://bugs.webkit.org/show_bug.cgi?id=200000

        Reviewed by Youenn Fablet.

        Add a test to verify that navigating to a prefetched main resource
        that sets Vary: Cookie does send cookies.

        * http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie-expected.txt: Added.
        * http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html: Added.
        * http/wpt/prefetch/resources/main-resource-cross-origin-set-cookie.py: Added.
        (main):
        * http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py: Added.
        (main):
        * http/wpt/prefetch/resources/navigate-cross-origin-vary-cookie.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-08-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Implement `queryHolders` Command Line API
        https://bugs.webkit.org/show_bug.cgi?id=200458

        Reviewed by Joseph Pecoraro.

        * inspector/console/queryHolders.html: Added.
        * inspector/console/queryHolders-expected.txt: Added.
        * http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
        * TestExpectations:
        * platform/mac-wk1/TestExpectations:

2019-08-20  Saam Barati  <sbarati@apple.com>

        [WHLSL] We need to null check when emitting native code for operator&.<field-name>
        https://bugs.webkit.org/show_bug.cgi?id=200846

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl/structure-field-access-on-null-expected.txt: Added.
        * webgpu/whlsl/structure-field-access-on-null.html: Added.

2019-08-20  Russell Epstein  <repstein@apple.com>

        Updating Expectations for Multiple Newly Passing Tests.

        Unreviewed Test Gardening.

        * platform/ios-12/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:

2019-08-16  Ryosuke Niwa  <rniwa@webkit.org>

        The default tab index of output and fieldset should be -1
        https://bugs.webkit.org/show_bug.cgi?id=200834

        Reviewed by Alex Christensen.

        Added test cases for output, fieldset, and keygen.

        * fast/dom/tabindex-defaults-expected.txt:
        * fast/dom/tabindex-defaults.html:

2019-08-20  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] isConsideredClickable should be able to process elements with no renderers
        https://bugs.webkit.org/show_bug.cgi?id=200926
        <rdar://problem/54519579>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden-crash-expected.txt: Added.
        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden-crash.html: Added.

2019-08-20  Wenson Hsieh  <wenson_hsieh@apple.com>

        Clicking the search icon on ae.com hangs the web content process
        https://bugs.webkit.org/show_bug.cgi?id=200889
        <rdar://problem/54359330>

        Reviewed by Ryosuke Niwa.

        * editing/selection/modify-backward-inline-block-containers-expected.txt: Added.
        * editing/selection/modify-backward-inline-block-containers.html: Added.

        Add a layout test to ensure that the selection may be moved through empty inline-block containers that span the
        width of the page.

        * fast/events/focus-anchor-with-tabindex-hang-expected.txt: Added.
        * fast/events/focus-anchor-with-tabindex-hang.html: Added.

        Add a layout test to ensure that clicking an empty span under a focusable anchor element moves focus to the
        anchor element instead of hanging the web content process or hitting a debug assertion.

2019-08-20  Ryan Haddad  <ryanhaddad@apple.com>

        Web Inspector: Support for JavaScript BigInt
        https://bugs.webkit.org/show_bug.cgi?id=180731

        Unreviewed test gardening.

        * inspector/timeline/line-column-expected.txt: Rebaseline test.

2019-08-20  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Support for JavaScript BigInt
        https://bugs.webkit.org/show_bug.cgi?id=180731
        <rdar://problem/36298748>

        Reviewed by Devin Rousso.

        * inspector/model/remote-object-expected.txt:
        * inspector/model/remote-object.html:
        * inspector/model/resources/remote-object-utilities.js:
        Include simple tests for a BigInt value and preview.

2019-08-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Use URL constructor to better handle all kinds of URLs
        https://bugs.webkit.org/show_bug.cgi?id=165155

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/url-utilities.html:
        * inspector/unit-tests/url-utilities-expected.txt:

2019-08-19  Devin Rousso  <drousso@apple.com>

        Web Inspector: Debugger: add a global breakpoint for pausing in the next microtask
        https://bugs.webkit.org/show_bug.cgi?id=200652

        Reviewed by Joseph Pecoraro.

        * inspector/debugger/setPauseOnMicrotasks.html: Added.
        * inspector/debugger/setPauseOnMicrotasks-expected.txt: Added.

2019-08-19  Devin Rousso  <drousso@apple.com>

        Web Inspector: have more aggressive checks for dataURLs provided to `console.screenshot`
        https://bugs.webkit.org/show_bug.cgi?id=200747

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:

2019-08-19  Alexey Shvayka  <shvaikalesh@gmail.com>

        Date.prototype.toJSON throws if toISOString returns an object
        https://bugs.webkit.org/show_bug.cgi?id=198495

        Reviewed by Ross Kirsling.

        TypeError shouldn't be thrown if result of toISOString call is an object.
        (step 4 of https://tc39.es/ecma262/#sec-date.prototype.tojson)

        * js/dom/JSON-stringify-expected.txt:
        * js/resources/JSON-stringify.js:

2019-08-19  Russell Epstein  <repstein@apple.com>

        rdar://52961406 (scrollingcoordinator/ios/scroll-position-after-reattach.html is a flaky image failure on iOS)

        Unreviewed Test Gardening.

        * platform/ios/TestExpectations: Updated test expectations to [ Pass Failure ]

2019-08-19  Russell Epstein  <repstein@apple.com>

        rdar://54481698 (Layout Test platform/ios/ios/fast/text/opticalFont.html is Failing)

        Unreviewed Test Gardening.

        * platform/ios-12/platform/ios/ios/fast/text/opticalFont-expected.txt: Copied from LayoutTests/platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt.
        * platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt: Rebaseline.

2019-08-19  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Removing the capture element prevents future pointer events from being dispatched on macOS
        https://bugs.webkit.org/show_bug.cgi?id=200887
        <rdar://problem/54104147>

        Reviewed by Dean Jackson.

        * pointerevents/mouse/pointer-capture-element-removal-expected.txt: Added.
        * pointerevents/mouse/pointer-capture-element-removal.html: Added.

2019-08-19  Youenn Fablet  <youenn@apple.com>

        enumerateDevices should return the same JS objects if called twice
        https://bugs.webkit.org/show_bug.cgi?id=200767

        Reviewed by Eric Carlson.

        * fast/mediastream/device-change-event-2.html:

2019-08-18  Cathie Chen  <cathiechen@igalia.com>

        Crash in Document::deliverResizeObservations
        https://bugs.webkit.org/show_bug.cgi?id=200635

        Reviewed by Simon Fraser.

        Test deleting the next/previous sibling of observer list in callbacks, and the order of notifications.

        * resize-observer/delete-observers-in-callbacks-expected.txt: Added.
        * resize-observer/delete-observers-in-callbacks.html: Added.

2019-08-17  Antti Koivisto  <antti@apple.com>

        Content in <iframe> should override "touch-action" set in embedding document
        https://bugs.webkit.org/show_bug.cgi?id=200204
        <rdar://problem/54355249>

        Reviewed by Antoine Quint.

        * pointerevents/ios/touch-action-none-with-frame-inside-expected.txt: Added.
        * pointerevents/ios/touch-action-none-with-frame-inside.html: Added.

2019-08-16  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r248772.
        https://bugs.webkit.org/show_bug.cgi?id=200853

        Causes timeouts in some WebGL tests (Requested by anttik on
        #webkit).

        Reverted changeset:

        "Content in <iframe> should override "touch-action" set in
        embedding document"
        https://bugs.webkit.org/show_bug.cgi?id=200204
        https://trac.webkit.org/changeset/248772

2019-08-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [macOS] Emoji with variation selectors are rendered in text style, not emoji style
        https://bugs.webkit.org/show_bug.cgi?id=200830
        <rdar://problem/53076002>

        Reviewed by Simon Fraser.

        * fast/text/emoji-variation-selector-expected-mismatch.html: Added.
        * fast/text/emoji-variation-selector.html: Added.
        * platform/win/TestExpectations: Mark as failing on Windows, because it doesn't support variation selectors.

2019-08-16  Saam Barati  <sbarati@apple.com>

        [WHLSL] Make "operator cast" constructors native
        https://bugs.webkit.org/show_bug.cgi?id=200748

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl/matrix-constructors-expected.txt: Added.
        * webgpu/whlsl/matrix-constructors.html: Added.
        * webgpu/whlsl/vector-constructors-expected.txt: Added.
        * webgpu/whlsl/vector-constructors.html: Added.

2019-08-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Enums should be shadowed by local variables
        https://bugs.webkit.org/show_bug.cgi?id=200847

        Reviewed by Saam Barati.

        * webgpu/whlsl/structure-field-enumeration-element-clash-expected.txt: Added.
        * webgpu/whlsl/structure-field-enumeration-element-clash.html: Added.

2019-08-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Add test for the interaction between setters and increments
        https://bugs.webkit.org/show_bug.cgi?id=200848

        Reviewed by Saam Barati.

        As discovered by Robin in https://github.com/gpuweb/WHLSL/issues/308

        * webgpu/whlsl/increment-setter-expected.txt: Added.
        * webgpu/whlsl/increment-setter.html: Added.

2019-08-16  Ryan Haddad  <ryanhaddad@apple.com>

        [ContentChangeObserver] Keep track of all the visibility candidates.
        https://bugs.webkit.org/show_bug.cgi?id=200777

        Unreviewed test gardening.

        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2-expected.txt: Update baseline.

2019-08-16  Saam Barati  <sbarati@apple.com>

        [WHLSL] Add comparison operators for vectors and matrices
        https://bugs.webkit.org/show_bug.cgi?id=200823

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl/matrix-compare-expected.txt: Added.
        * webgpu/whlsl/matrix-compare.html: Added.
        * webgpu/whlsl/vector-compare-expected.txt: Added.
        * webgpu/whlsl/vector-compare.html: Added.

2019-08-16  Saam Barati  <sbarati@apple.com>

        [WHLSL] Make operator== native and add bool matrices
        https://bugs.webkit.org/show_bug.cgi?id=200749

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl/bool-matrix-expected.txt: Added.
        * webgpu/whlsl/bool-matrix.html: Added.
        * webgpu/whlsl/builtin-vectors.html:
        * webgpu/whlsl/matrices-spec-tests.html:
        * webgpu/whlsl/operator-equal-equal-expected.txt: Added.
        * webgpu/whlsl/operator-equal-equal.html: Added.

2019-08-16  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Add ContentChangeObserver::elementDidBecomeHidden
        https://bugs.webkit.org/show_bug.cgi?id=200819
        <rdar://problem/54400223>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3-expected.txt: Added.
        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3.html: Added.

2019-08-16  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: JavaScript formatting of single statement arrow function can be poor
        https://bugs.webkit.org/show_bug.cgi?id=200800

        Reviewed by Ross Kirsling.

        * inspector/formatting/resources/javascript-tests/arrow-functions-expected.js:
        * inspector/formatting/resources/javascript-tests/arrow-functions.js:
        Add a few additional complex single statement arrow function test cases.

2019-08-16  Russell Epstein  <repstein@apple.com>

        Typo correction for han-quotes expectation entry.
        rdar://52594556

        Unreviewed Test Gardening.

        * platform/mac/TestExpectations: Test is an ImageOnlyFailure, not a
	text Failure. Corrected mistake.

2019-08-16  Russell Epstein  <repstein@apple.com>

        rdar://52557916 (REGRESSION: fast/css/paint-order.html and fast/css/paint-order-shadow.html are failing)

        Unreviewed Test Gardening.

        * platform/mac/TestExpectations: Corrected typo in previous entry and
	added test expectations for fast/css/paint-order.html and fast/css/paint-order-shadow.html

2019-08-16  Russell Epstein  <repstein@apple.com>

        rdar://52594556 (Layout test fast/text/international/system-language/han-quotes.html is failing)

        Unreviewed Test Gardening.

        * platform/mac/TestExpectations: Added expectation for fast/text/international/system-language/han-quotes.html

2019-08-16  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failure and add additional tests after r248753

        * inspector/unit-tests/url-utilities.html:
        * inspector/unit-tests/url-utilities-expected.txt:
        Add additional tests of `WI.displayNameForURL` with paths, query strings, and fragments.

        * inspector/css/add-rule.html:
        * inspector/css/add-rule-expected.txt:
        The `doNotCreateIfMissing` parameter was removed from `preferredInspectorStyleSheetForFrame`.
        All the test is trying to do is check that there's not an existing Inspector Style Sheet, so
        instead just check that the list of Inspector Style Sheets is empty.

2019-08-16  Antti Koivisto  <antti@apple.com>

        Content in <iframe> should override "touch-action" set in embedding document
        https://bugs.webkit.org/show_bug.cgi?id=200204
        <rdar://problem/54355249>

        Reviewed by Antoine Quint.

        * pointerevents/ios/touch-action-region-frame-expected.txt: Added.
        * pointerevents/ios/touch-action-region-frame.html: Added.

2019-08-16  Chris Lord  <clord@igalia.com>

        Update WebGL test expectations for WebKit WPE
        https://bugs.webkit.org/show_bug.cgi?id=200765

        Reviewed by Carlos Alberto Lopez Perez.

        Establish a new baseline for WPE backend WebGL test results.

        * platform/wpe/TestExpectations:
        * platform/wpe/webgl/2.0.0/conformance/extensions/get-extension-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data-expected.txt: Removed.
        * platform/wpe/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Removed.
        * platform/wpe/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt:

2019-08-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Update Esprima to support modern JavaScript language features
        https://bugs.webkit.org/show_bug.cgi?id=200796

        Reviewed by Ross Kirsling.

        * inspector/formatting/resources/javascript-tests/classes-expected.js:
        * inspector/formatting/resources/javascript-tests/classes.js:
        * inspector/formatting/resources/javascript-tests/for-statements-expected.js:
        * inspector/formatting/resources/javascript-tests/for-statements.js:
        * inspector/formatting/resources/javascript-tests/generators-expected.js:
        * inspector/formatting/resources/javascript-tests/generators.js:
        * inspector/formatting/resources/javascript-tests/numbers-expected.js: Added.
        * inspector/formatting/resources/javascript-tests/numbers.js: Added.
        * inspector/formatting/resources/javascript-tests/try-catch-finally-statements-expected.js:
        * inspector/formatting/resources/javascript-tests/try-catch-finally-statements.js:
        * inspector/formatting/resources/javascript-tests/unary-binary-expressions-expected.js:
        * inspector/formatting/resources/javascript-tests/unary-binary-expressions.js:
        Test formatting of new JavaScript language features.

        * inspector/formatting/formatting-css-expected.txt:
        * inspector/formatting/formatting-javascript-expected.txt:
        * inspector/formatting/formatting-javascript.html:
        * inspector/formatting/resources/utilities.js:
        (TestPage.registerInitializer.async.runFormattingTest):
        (TestPage.registerInitializer.window.addFormattingTests):
        (TestPage.registerInitializer):
        Cleaner output and better handling for debugging failures.

        * inspector/model/parse-script-syntax-tree.html:
        Test new AST permutations.

2019-08-15  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Keep track of all the visibility candidates.
        https://bugs.webkit.org/show_bug.cgi?id=200777
        <rdar://problem/54356331>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2-expected.txt: Added.
        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2.html: Added.

2019-08-15  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Add unary plus
        https://bugs.webkit.org/show_bug.cgi?id=200753

        Reviewed by Saam Barati.

        * webgpu/whlsl/vector-matrix-addition-subtraction-expected.txt: Added.
        * webgpu/whlsl/vector-matrix-addition-subtraction.html: Added.

2019-08-15  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Matrices should have constructors that take a flattened list of scalars
        https://bugs.webkit.org/show_bug.cgi?id=200804

        Reviewed by Saam Barati.

        * webgpu/whlsl/matrix-constructors-list-of-scalars-expected.txt: Added.
        * webgpu/whlsl/matrix-constructors-list-of-scalars.html: Added.

2019-08-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: Sources: provide a way to create an arbitrary Inspector Style Sheet
        https://bugs.webkit.org/show_bug.cgi?id=200425

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/url-utilities.html:
        * inspector/unit-tests/url-utilities-expected.txt:

2019-08-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Tidy up some event stream helpers in basic-gestures.js
        https://bugs.webkit.org/show_bug.cgi?id=200783

        Reviewed by Tim Horton.

        * resources/basic-gestures.js:

        Make a few small adjustments:
        (1) Invoke uiScriptComplete within the completion callback of sendEventStream. This actually doesn't result in
            any behavior differences, since UIScriptController will, by default, wait for non-persistent asynchronous
            tasks to finish before allowing the UI-side script invocation to finish.
        (2) Fix some minor indentation issues in longPressAndHoldAtPoint, touchAndDragFromPointToPoint, holdAtPoint,
            and continueTouchAndDragFromPointToPoint.

2019-08-15  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Dispatch synthetic click when the visibility candidate element becomes hidden again.
        https://bugs.webkit.org/show_bug.cgi?id=200773
        <rdar://problem/54351728>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden-expected.html: Added.
        * fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden.html: Added.

2019-08-15  Robin Morisset  <rmorisset@apple.com>

        [WHLSL] Don't accept operator&& or operator|| in the Lexer
        https://bugs.webkit.org/show_bug.cgi?id=200785

        Reviewed by Saam Barati.

        * webgpu/whlsl/lexing.html:

2019-08-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: support `console.screenshot` with detached <canvas>
        https://bugs.webkit.org/show_bug.cgi?id=200723

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:

2019-08-15  Sihui Liu  <sihui_liu@apple.com>

        Some improvements on web storage
        https://bugs.webkit.org/show_bug.cgi?id=200373

        Reviewed by Geoffrey Garen.
 
        Modify tests for a behavior change: sessionStorage will be lost when network process crashes.

        For tests which use sessionStorage to store items, crash network process, then read from sessionStorage and 
        expect items to be in sessionStorage, replace sessionStorage with localStorage. Also, to make sure localStorage
        is stored persistently before network process gets terminated, adopt a newly introduced SPI to 
        synchronously flush localStorage content to disk before terminating network process.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * storage/domstorage/localstorage/private-browsing-affects-storage-expected.txt:
        * storage/indexeddb/IDBObject-leak.html:
        * storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt:
        * storage/indexeddb/modern/opendatabase-after-storage-crash.html:

2019-08-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Occasional hang under -[UIKeyboardTaskQueue lockWhenReadyForMainThread] when long-pressing non-editable text
        https://bugs.webkit.org/show_bug.cgi?id=200731
        <rdar://problem/54315371>

        Reviewed by Tim Horton.

        Add a layout test to verify that tapping the page while handling a text loupe gesture doesn't cause the UI
        process to hang indefinitely.

        * editing/selection/ios/tap-during-loupe-gesture-expected.txt: Added.
        * editing/selection/ios/tap-during-loupe-gesture.html: Added.

2019-08-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Update Esprima to trunk (minor fixes)
        https://bugs.webkit.org/show_bug.cgi?id=200691
        <rdar://problem/54276170>

        Rubber-stamped by Devin Rousso.

        * inspector/model/parse-script-syntax-tree-expected.txt:
        * inspector/model/parse-script-syntax-tree.html:
        - SpreadProperty => SpreadElement.
        - RestProperty => RestElement.

2019-08-15  Saam Barati  <sbarati@apple.com>

        [WHLSL] Make length, clamp, operator+, operator-, operator*, operator/, operator[], operator[]=, operator.xy, operator.xy=, native
        https://bugs.webkit.org/show_bug.cgi?id=200700

        Reviewed by Robin Morisset.

        * webgpu/whlsl/clamp-stdlib-expected.txt: Added.
        * webgpu/whlsl/clamp-stdlib.html: Added.
        * webgpu/whlsl/length-stdlib-expected.txt: Added.
        * webgpu/whlsl/length-stdlib.html: Added.
        * webgpu/whlsl/operator-div-expected.txt: Added.
        * webgpu/whlsl/operator-div.html: Added.
        * webgpu/whlsl/operator-minus-expected.txt: Added.
        * webgpu/whlsl/operator-minus.html: Added.
        * webgpu/whlsl/operator-plus-expected.txt: Added.
        * webgpu/whlsl/operator-plus.html: Added.
        * webgpu/whlsl/operator-times-expected.txt: Added.
        * webgpu/whlsl/operator-times.html: Added.
        * webgpu/whlsl/operator-vector-assign-expected.txt: Added.
        * webgpu/whlsl/operator-vector-assign.html: Added.
        * webgpu/whlsl/operator-vector-load-expected.txt: Added.
        * webgpu/whlsl/operator-vector-load.html: Added.
        * webgpu/whlsl/operator-xy-expected.txt: Added.
        * webgpu/whlsl/operator-xy.html: Added.

2019-08-15  Antti Koivisto  <antti@apple.com>

        Negative size box with border radius causes hang under WebCore::approximateAsRegion
        https://bugs.webkit.org/show_bug.cgi?id=200769
        <rdar://problem/53380674>

        Reviewed by Alex Christensen.

        * fast/css/border-radius-negative-size-expected.txt: Added.
        * fast/css/border-radius-negative-size.html: Added.

2019-08-15  Youenn Fablet  <youenn@apple.com>

        Make mock libwebrtc tests run with unified plan
        https://bugs.webkit.org/show_bug.cgi?id=200713

        Reviewed by Alex Christensen.

        Enable unified plan.

        * fast/mediastream/RTCPeerConnection-icecandidate-event.html:
        * fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html:
        * fast/mediastream/RTCPeerConnection-inspect-answer.html:
        * fast/mediastream/RTCPeerConnection-inspect-offer.html:
        * fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
        * fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
        * fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
        * fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
        * webrtc/libwebrtc/release-while-creating-offer.html:
        * webrtc/libwebrtc/release-while-getting-stats.html:
        * webrtc/libwebrtc/release-while-setting-local-description.html:

2019-08-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Variables shouldn't be able to have void type
        https://bugs.webkit.org/show_bug.cgi?id=200751

        Reviewed by Robin Morisset.

        * webgpu/whlsl/void-variable-parameter-expected.txt: Added.
        * webgpu/whlsl/void-variable-parameter.html: Added.

2019-08-14  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Any previously destroyed renderer should not be considered a candidate for content observation.
        https://bugs.webkit.org/show_bug.cgi?id=200732
        <rdar://problem/54319654>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visible-content-gains-new-renderer2-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visible-content-gains-new-renderer2.html: Added.

2019-08-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r248638.

        These test expectations aren't necessary

        Reverted changeset:

        "Unreviewed test gardening, land test expectations for
        rdar://49790831."
        https://trac.webkit.org/changeset/248638

2019-08-14  Devin Rousso  <drousso@apple.com>

        Web Inspector: support `console.screenshot` with dataURL strings
        https://bugs.webkit.org/show_bug.cgi?id=199307

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:

2019-08-14  Ryan Haddad  <ryanhaddad@apple.com>

        [WebAuthN] Enable LocalAuthenticator for macOS
        https://bugs.webkit.org/show_bug.cgi?id=182772

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Skip two more tests that are only expected to run on internal bots.

2019-08-13  Antoine Quint  <graouts@apple.com>

        [iPadOS] slides.google.com: Cannot dismiss the context menu by tapping on the canvas
        https://bugs.webkit.org/show_bug.cgi?id=200219
        <rdar://problem/53650423>

        Reviewed by Zalan Bujtas.

        While the code change for this bug is all in code private to Safari, we add tests that check that removing implicit pointer capture
        or removing the original target element while the pointer is active correctly fires the "pointerup" event at the element that hit tests
        at the touch release point.

        * pointerevents/ios/pointer-events-implicit-capture-element-removed-while-pointer-active-expected.txt: Added.
        * pointerevents/ios/pointer-events-implicit-capture-element-removed-while-pointer-active.html: Added.
        * pointerevents/ios/pointer-events-implicit-capture-released-while-pointer-active-expected.txt: Added.
        * pointerevents/ios/pointer-events-implicit-capture-released-while-pointer-active.html: Added.

2019-08-13  Saam Barati  <sbarati@apple.com>

        [WHLSL] Make lexing faster
        https://bugs.webkit.org/show_bug.cgi?id=200596

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl/lexing-expected.txt: Added.
        * webgpu/whlsl/lexing.html: Added.
        * webgpu/whlsl/literals-expected.txt: Added.
        * webgpu/whlsl/literals.html: Added.

2019-08-13  Alexey Shvayka  <shvaikalesh@gmail.com>

        Re-sync web-platform-tests/dom/events from upstream
        https://bugs.webkit.org/show_bug.cgi?id=200592

        Reviewed by Ryosuke Niwa.

        Re-sync web-platform-tests/dom/events from upstream 1e6fef09eae3.

        * TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
        * tests-options.json:

2019-08-13  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Switch NSURLSession on top navigation to prevalent resource with user interaction
        https://bugs.webkit.org/show_bug.cgi?id=200642
        <rdar://problem/53962073>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html: Added.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-expected.txt: Added.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.html: Added.

2019-08-13  Ryan Haddad  <ryanhaddad@apple.com>

        [WebAuthN] Enable LocalAuthenticator for macOS
        https://bugs.webkit.org/show_bug.cgi?id=182772

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Skip tests that are only expected to run on internal bots.

2019-08-09  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, land test expectations for rdar://49790831.

        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:

2019-08-13  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Improve GPUBindGroup performance using one device-shared argument MTLBuffer
        https://bugs.webkit.org/show_bug.cgi?id=200606

        Reviewed by Myles C. Maxfield.

        Update bind-groups.html to better stress GPUBindGroup implementation.

        * webgpu/bind-groups-expected.txt:
        * webgpu/bind-groups.html:

2019-08-13  Antti Koivisto  <antti@apple.com>

        Event regions collection should take clipping into account
        https://bugs.webkit.org/show_bug.cgi?id=200668
        <rdar://problem/53826561>

        Reviewed by Simon Fraser.

        * pointerevents/ios/touch-action-region-clip-and-transform-expected.txt: Added.
        * pointerevents/ios/touch-action-region-clip-and-transform.html: Added.

2019-08-13  Devin Rousso  <drousso@apple.com>

        Web Inspector: Styles: show @supports CSS groupings
        https://bugs.webkit.org/show_bug.cgi?id=200419
        <rdar://problem/53971948>

        Reviewed by Joseph Pecoraro.

        * inspector/css/getMatchedStylesForNode.html:
        * inspector/css/getMatchedStylesForNode-expected.txt:

2019-08-13  Russell Epstein  <repstein@apple.com>

        Reverting change in r248379
        rdar://53779679

        Unreviewed Test Gardening.
        Removed previously set TestExpectations.

        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:

2019-08-13  Chris Lord  <clord@igalia.com>

        Incorrect head in fast/canvas/webgl/gl-get-calls.html causes test failure
        https://bugs.webkit.org/show_bug.cgi?id=200673

        Reviewed by Alexey Proskuryakov.

        * fast/canvas/webgl/gl-get-calls.html:

2019-08-12  Ryosuke Niwa  <rniwa@webkit.org>

        FrameLoader::open can execute scritps via style recalc in Frame::setDocument
        https://bugs.webkit.org/show_bug.cgi?id=200377

        Reviewed by Antti Koivisto.

        Added a regression test.

        * fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update-expected.txt: Added.
        * fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update.html: Added.
        * platform/win/TestExpectations: Skip the newly added test.

2019-08-12  Daniel Bates  <dabates@apple.com>

        Add a test to ensure that we dispatch keydown and keyup events when multiple keys are pressed at the same time
        https://bugs.webkit.org/show_bug.cgi?id=200548

        Reviewed by Darin Adler.

        Add a test. Skip the test for now until we have the fixes for <rdar://problem/53613454> and <rdar://problem/54001139>.

        * fast/events/ios/multiple-key-press-and-release-ordering-expected.txt: Added.
        * fast/events/ios/multiple-key-press-and-release-ordering.html: Added.
        * platform/ios/TestExpectations:

2019-08-11  Alicia Boya García  <aboya@igalia.com>

        [MSE][GStreamer] Don't use vorbisparse
        https://bugs.webkit.org/show_bug.cgi?id=200622

        Reviewed by Philippe Normand.

        * platform/gtk/TestExpectations:

2019-08-10  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r245974): Missing content on habitburger.com, amazon.com
        https://bugs.webkit.org/show_bug.cgi?id=200618
        rdar://problem/53920224

        Reviewed by Zalan Bujtas.

        * compositing/backing/layer-outside-tiled-parent-expected.txt: Added.
        * compositing/backing/layer-outside-tiled-parent.html: Added.
        * platform/ios-wk2/compositing/backing/layer-outside-tiled-parent-expected.txt: Added.
        * tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt:
        * tiled-drawing/tiled-backing-in-window-expected.txt:

2019-08-10  Andres Gonzalez  <andresg_22@apple.com>

        Accessibility client cannot navigate to internal links targets on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=200559
        <rdar://problem/45242534>

        Reviewed by Zalan Bujtas.

        Extneded this test to not only check that internal links expose their
        target, but also that the target is an accessible element. Added a
        second test case where the target is contained in a grouping element.
        * accessibility/ios-simulator/internal-link-expected.txt:
        * accessibility/ios-simulator/internal-link.html:

2019-08-09  Yusuke Suzuki  <ysuzuki@apple.com>

        Universal XSS in JSObject::putInlineSlow and JSValue::putToPrimitive
        https://bugs.webkit.org/show_bug.cgi?id=199864

        Reviewed by Saam Barati.

        * http/tests/security/cross-frame-access-object-put-optimization-expected.txt: Added.
        * http/tests/security/cross-frame-access-object-put-optimization.html: Added.
        * http/tests/security/resources/cross-frame-iframe-for-object-put-optimization-test.html: Added.

2019-08-09  Ali Juma  <ajuma@chromium.org>

        Don't allow cross-origin iframes to autofocus
        https://bugs.webkit.org/show_bug.cgi?id=200515
        <rdar://problem/54092988>

        Reviewed by Ryosuke Niwa.

        Add test coverage, and simulate user interaction in existing tests
        that require focusing a cross-origin frame.

        * http/tests/security/clipboard/resources/copy-html.html:
        * http/tests/security/clipboard/resources/copy-mso-list.html:
        * http/tests/security/clipboard/resources/copy-url.html:
        * http/wpt/html/interaction/focus/no-cross-origin-element-focus-expected.txt: Added.
        * http/wpt/html/interaction/focus/no-cross-origin-element-focus.html: Added.
        * http/wpt/html/interaction/focus/no-cross-origin-window-focus-expected.txt: Added.
        * http/wpt/html/interaction/focus/no-cross-origin-window-focus.html: Added.
        * http/wpt/html/interaction/focus/resources/child-focus-element.html: Added.
        * http/wpt/html/interaction/focus/resources/child-focus-window.html: Added.
        * http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub-expected.txt: Added.
        * http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub.html: Added.
        * http/wpt/html/semantics/forms/autofocus/resources/child-autofocus.html: Added.
        * http/wpt/webauthn/resources/last-layer-frame.https.html:

2019-08-09  Thibault Saunier  <tsaunier@igalia.com>

        [GTK] fast/mediastream/RTCPeerConnection-add-removeTrack.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=199018

        This is fixed by the patch provided in https://bugs.webkit.org/show_bug.cgi?id=194326

        Unreviewed gardening patch

        * platform/gtk/TestExpectations:

2019-08-09  Russell Epstein  <repstein@apple.com>

        Correcting Expectation Typo from r248388.
        rdar://54049321

        Unreviewed Test Gardening.

        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:

2019-08-08  Devin Rousso  <drousso@apple.com>

        Web Inspector: Page: don't allow the domain to be disabled
        https://bugs.webkit.org/show_bug.cgi?id=200109

        Reviewed by Brian Burg.

        * http/tests/inspector/page/loading-iframe-document-node.html:
        * inspector/page/archive.html:
        * inspector/page/frameScheduledNavigation.html:
        * inspector/page/frameScheduledNavigation-async-delegates.html:
        * inspector/page/frameStartedLoading.html:
        * inspector/page/media-query-list-listener-exception.html:
        * inspector/timeline/line-column.html:

2019-08-08  Chris Lord  <chrislord.net@gmail.com>

        Short-cut WebGLRenderingContext::getParameter() for ALPHA_BITS when alpha channel is disabled
        https://bugs.webkit.org/show_bug.cgi?id=200499

        Reviewed by Darin Adler.

        * platform/ios-simulator/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt:
        1 more passing test.

2019-08-08  Devin Rousso  <drousso@apple.com>

        Web Inspector: rename `queryObjects` to `queryInstances` for clarity
        https://bugs.webkit.org/show_bug.cgi?id=200520

        Reviewed by Brian Burg.

        * inspector/console/queryInstances.html: Renamed from LayoutTests/inspector/console/queryObjects.html.
        * inspector/console/queryInstances-expected.txt: Renamed from LayoutTests/inspector/console/queryObjects-expected.txt.

        * http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt:

2019-08-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS 13] Taps that interrupt momentum scrolling are recognized as clicks
        https://bugs.webkit.org/show_bug.cgi?id=200516
        <rdar://problem/53889373>

        Reviewed by Tim Horton.

        Add new layout tests. See below for details.

        * fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame-expected.txt: Added.
        * fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html: Added.

        Add a test to verify that interrupting scrolling in the main frame using a tap doesn't fire a click event.

        * fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body-expected.txt: Added.
        * fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html: Added.

        Add a test to verify that after triggering momentum scrolling in a fast subscrollable region, tapping outside of
        the scroller will still fire a click event.

        * fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-expected.txt: Added.
        * fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow.html: Added.

        Add a test to verify that interrupting scrolling in a fast subscrollable region using a tap doesn't fire a
        click event.

        * resources/ui-helper.js:
        (window.UIHelper.dragFromPointToPoint):
        (window.UIHelper):

2019-08-08  Russell Epstein  <repstein@apple.com>

        Add Catalina Baselines for Font-related Tests.
        rdar://53836015

        Unreviewed Test Gardening.

        * platform/mac-mojave/css1/basic/inheritance-expected.txt: Copied from LayoutTests/platform/mac/css1/basic/inheritance-expected.txt.
        * platform/mac-mojave/css2.1/t0602-c13-inh-underlin-00-e-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t0602-c13-inh-underlin-00-e-expected.txt.
        * platform/mac-mojave/css2.1/t0805-c5522-brdr-02-e-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t0805-c5522-brdr-02-e-expected.txt.
        * platform/mac-mojave/css3/selectors3/html/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-18-expected.txt.
        * platform/mac-mojave/css3/selectors3/xhtml/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-18-expected.txt.
        * platform/mac-mojave/css3/selectors3/xml/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-18-expected.txt.
        * platform/mac-mojave/fast/block/basic/001-expected.txt: Copied from LayoutTests/platform/mac/fast/block/basic/001-expected.txt.
        * platform/mac-mojave/fast/css/css3-nth-child-expected.txt: Copied from LayoutTests/platform/mac/fast/css/css3-nth-child-expected.txt.
        * platform/mac-mojave/fast/dom/34176-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/34176-expected.txt.
        * platform/mac-mojave/fast/dom/clone-node-dynamic-style-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/clone-node-dynamic-style-expected.txt.
        * platform/mac-mojave/fast/forms/plaintext-mode-2-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/plaintext-mode-2-expected.txt.
        * platform/mac-mojave/fast/invalid/003-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/003-expected.txt.
        * platform/mac-mojave/fast/invalid/004-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/004-expected.txt.
        * platform/mac-mojave/fast/invalid/nestedh3s-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/nestedh3s-expected.txt.
        * platform/mac-mojave/fast/selectors/018-expected.txt: Copied from LayoutTests/platform/mac/fast/selectors/018-expected.txt.
        * platform/mac-mojave/fast/table/frame-and-rules-expected.txt: Copied from LayoutTests/platform/mac/fast/table/frame-and-rules-expected.txt.
        * platform/mac-mojave/fast/text/atsui-multiple-renderers-expected.txt: Copied from LayoutTests/platform/mac/fast/text/atsui-multiple-renderers-expected.txt.
        * platform/mac-mojave/fast/text/bidi-embedding-pop-and-push-same-expected.txt: Copied from LayoutTests/platform/mac/fast/text/bidi-embedding-pop-and-push-same-expected.txt.
        * platform/mac-mojave/fast/text/font-weights-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.txt.
        * platform/mac-mojave/fast/text/font-weights-zh-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt.
        * platform/mac-mojave/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt.
        * platform/mac-mojave/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt.
        * platform/mac-mojave/svg/batik/text/textStyles-expected.txt: Copied from LayoutTests/platform/mac/svg/batik/text/textStyles-expected.txt.
        * platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt.
        * platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt.
        * platform/mac/css1/basic/inheritance-expected.txt:
        * platform/mac/css2.1/t0602-c13-inh-underlin-00-e-expected.txt:
        * platform/mac/css2.1/t0805-c5522-brdr-02-e-expected.txt:
        * platform/mac/css3/selectors3/html/css3-modsel-18-expected.txt:
        * platform/mac/css3/selectors3/xhtml/css3-modsel-18-expected.txt:
        * platform/mac/css3/selectors3/xml/css3-modsel-18-expected.txt:
        * platform/mac/fast/block/basic/001-expected.txt:
        * platform/mac/fast/css/css3-nth-child-expected.txt:
        * platform/mac/fast/dom/34176-expected.txt:
        * platform/mac/fast/dom/clone-node-dynamic-style-expected.txt:
        * platform/mac/fast/forms/plaintext-mode-2-expected.txt:
        * platform/mac/fast/invalid/003-expected.txt:
        * platform/mac/fast/invalid/004-expected.txt:
        * platform/mac/fast/invalid/nestedh3s-expected.txt:
        * platform/mac/fast/selectors/018-expected.txt:
        * platform/mac/fast/table/frame-and-rules-expected.txt:
        * platform/mac/fast/text/atsui-multiple-renderers-expected.txt:
        * platform/mac/fast/text/bidi-embedding-pop-and-push-same-expected.txt:
        * platform/mac/fast/text/font-weights-expected.txt:
        * platform/mac/fast/text/font-weights-zh-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt:
        * platform/mac/svg/batik/text/textStyles-expected.txt:
        * platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
        * platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:

2019-08-08  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening. Update expectations after r248403.

        * platform/gtk/TestExpectations:

2019-08-08  Rob Buis  <rbuis@igalia.com>

        Import lazy loading WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=199795

        Reviewed by Darin Adler.

        Skip the lazy tests for now.

        * TestExpectations:
        * http/wpt/loading/redirect-headers-expected.txt:

2019-08-07  Yury Semikhatsky  <yurys@chromium.org>

        LayoutTest inspector/worker/debugger-scripts.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=165582

        Reviewed by Joseph Pecoraro.

        Unflake the test. Main resource in the worker target is populated asychronously
        when the script is parsed and sent to the debugger, so we need to wait for it
        before performing further checks.

        * inspector/worker/debugger-scripts.html:
        * platform/mac/TestExpectations:

2019-08-07  Russell Epstein  <repstein@apple.com>

        Updating TestExpectations for editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html.
        rdar://54049321

        Unreviewed Test Gardening.

        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:

2019-08-07  Jer Noble  <jer.noble@apple.com>

        Muted <video> elements can block display from sleeping.
        https://bugs.webkit.org/show_bug.cgi?id=200511

        Reviewed by Eric Carlson.

        * media/video-muted-holds-sleep-assertion-expected.txt: Added.
        * media/video-muted-holds-sleep-assertion.html: Added.

2019-08-07  Russell Epstein  <repstein@apple.com>

        Updating TestExpectations for Two Failing Layout Tests.
        rdar://53779679

        Unreviewed Test Gardening.

        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:

2019-08-07  Priyanka Agarwal  <pagarwal999@apple.com>

        Allow clients to toggle a text input field between being viewable and having characters hidden while maintaining 
        a yellow auto-filled appearance
        https://bugs.webkit.org/show_bug.cgi?id=200037
        rdar://problem/51900961

        Reviewed by Daniel Bates.

        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset.html: Added.
        Test for when the form is reset to no longer be autofilled.

        * fast/forms/auto-fill-button/input-strong-password-viewable.html: Added.
        Test for when the form is set to being autofilled and viewable.

        * fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js:
        (window.onload): Javascript used by test to set the element to be autofilled and viewable added

        * platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt: Added.
        * platform/mac/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:

2019-08-07  Wenson Hsieh  <wenson_hsieh@apple.com>

        Extra space inserted at start of line when inserting a newline in Mail compose
        https://bugs.webkit.org/show_bug.cgi?id=200490
        <rdar://problem/53501354>

        Reviewed by Antti Koivisto.

        Add a new test to verify that inserting a newline in the middle of text in a document with designMode "on"
        doesn't insert an extra space at the beginning of the newly inserted line.

        * editing/inserting/insert-paragraph-in-designmode-document-expected.txt: Added.
        * editing/inserting/insert-paragraph-in-designmode-document.html: Added.

2019-08-06  Ryosuke Niwa  <rniwa@webkit.org>

        [iPadOS] slides.google.com: tapping near cursor in a slide title focuses the speaker notes
        https://bugs.webkit.org/show_bug.cgi?id=200216

        Reviewed by Wenson Hsieh.

        Added a new regression test and removed the one added for r243044.

        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart-expected.txt: Removed.
        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart.html: Removed.
        * fast/forms/ios/inputmode-change-update-keyboard-after-pointerup-expected.txt: Added.
        * fast/forms/ios/inputmode-change-update-keyboard-after-pointerup.html: Added.
        * fast/forms/ios/inputmode-change-update-keyboard.html: Fixed the test for manual testing.

2019-08-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r248289.
        https://bugs.webkit.org/show_bug.cgi?id=200488

        Broke internal builds (Requested by drousso on #webkit).

        Reverted changeset:

        "Web Inspector: Styles: show @supports CSS groupings"
        https://bugs.webkit.org/show_bug.cgi?id=200419
        https://trac.webkit.org/changeset/248289

2019-08-06  Russell Epstein  <repstein@apple.com>

        Updating Test Expectations for <rdar://53957264>, <rdar://53946482>, <rdar://53866783>

        Unreviewed Test Gardening.

        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:

2019-08-06  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Enable LocalAuthenticator for macOS
        https://bugs.webkit.org/show_bug.cgi?id=182772
        <rdar://problem/43347920>

        Reviewed by Brent Fulgham.

        Enable existing local authenticator tests for macOS. Since OpenSource bots
        don't have the internal setting to include restricted entitlements, tests
        will fail on OpenSource bots.

        * platform/mac-wk2/TestExpectations:

2019-08-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, drop change to TestExpectations that landed accidentally with r248276.

        * platform/wk2/TestExpectations:

2019-08-06  Jer Noble  <jer.noble@apple.com>

        Adopt -expectMinimumUpcomingSampleBufferPresentationTime:
        https://bugs.webkit.org/show_bug.cgi?id=200457
        <rdar://problem/53961130>

        Reviewed by Eric Carlson.

        * media/media-source/media-source-minimumupcomingpresentationtime-expected.txt: Added.
        * media/media-source/media-source-minimumupcomingpresentationtime.html: Added.

2019-08-06  Russell Epstein  <repstein@apple.com>

        [iPad] editing/selection/character-granularity-rect.html is now passing.
        <rdar://53468934>

        Unreviewed Test Gardening.

        * platform/ipad/TestExpectations: Removed expectation for passing test, editing/selection/character-granularity-rect.html

2019-08-06  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iPadOS] Unable to increase zoom level on Google using the Aa menu
        https://bugs.webkit.org/show_bug.cgi?id=200453
        <rdar://problem/52278579>

        Reviewed by Tim Horton.

        Adds a couple of layout tests (with device-specific expectations) to verify that the two scenarios targeted by
        this change are fixed.

        * fast/viewport/ios/non-responsive-viewport-after-changing-view-scale-expected.txt: Added.
        * fast/viewport/ios/non-responsive-viewport-after-changing-view-scale.html: Added.

        Verifies that, for a page with no viewport meta tag (where we fall back to a fixed 980px viewport on iPhone),
        changing view scale still changes page scale and window size.

        * fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale-expected.txt: Added.
        * fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale.html: Added.

        Verifies that, for a page with a responsive meta viewport tag containing a fixed-width element that forces a
        minimum width for the page, setting the view scale such that the page scrolls horizontally (2.5) doesn't result
        in the initial scale being adjusted back to the maximum scale that would accomodate the full contents of the
        page (2).

        * platform/ipad/fast/viewport/ios/non-responsive-viewport-after-changing-view-scale-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale-expected.txt: Added.

2019-08-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: Styles: show @supports CSS groupings
        https://bugs.webkit.org/show_bug.cgi?id=200419

        Reviewed by Joseph Pecoraro.

        * inspector/css/getMatchedStylesForNode.html:
        * inspector/css/getMatchedStylesForNode-expected.txt:

2019-08-05  Devin Rousso  <drousso@apple.com>

        Can't use $0, $1 etc when inspecting Google Docs pages because the content uses these for function names
        https://bugs.webkit.org/show_bug.cgi?id=195834

        Reviewed by Joseph Pecoraro.

        Allow the user to alias saved results by providing a different prefix (e.g. "$") from within
        Web Inspector. When changing the alias, all existing saved results will update to be
        reference-able from the new alias.

        * inspector/runtime/setSavedResultAlias.html: Added.
        * inspector/runtime/setSavedResultAlias-expected.txt: Added.
        * http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
        * inspector/console/command-line-api-expected.txt:
        * inspector/console/command-line-api-exception.html:
        * inspector/console/command-line-api-exception-expected.txt:
        * inspector/console/command-line-api-exception-nested-catch.html:
        * inspector/console/command-line-api-exception-nested-catch-expected.txt:

2019-08-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: Timelines: disable related agents when the tab is closed
        https://bugs.webkit.org/show_bug.cgi?id=200118

        Reviewed by Joseph Pecoraro.

        * inspector/timeline/line-column.html:
        * inspector/timeline/setInstruments-errors.html:
        * inspector/timeline/setInstruments-programmatic-capture.html:

2019-08-05  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win] Specifying huge font-size causes crashing
        https://bugs.webkit.org/show_bug.cgi?id=200340

        Reviewed by Don Olmstead.

        * platform/win/TestExpectations:

2019-08-05  Youenn Fablet  <youenn@apple.com>

        Support RTCRtpSender.dtmf
        https://bugs.webkit.org/show_bug.cgi?id=200431
        <rdar://problem/53924833>

        Reviewed by Alex Christensen.

        Removed cache storage test which is no longer valid.
        Removed WK1 expectation that is no longer needed.

        * http/wpt/cache-storage/cache-put-stream.https.any.html: Removed.
        * http/wpt/cache-storage/cache-put-stream.https.any.js: Removed.
        * http/wpt/cache-storage/cache-put-stream.https.any.worker.html: Removed.
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-init-stream.any-expected.txt: Removed.
        * platform/mac-wk2/TestExpectations:

2019-08-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: Styles: variable swatch not shown for var() with a fallback
        https://bugs.webkit.org/show_bug.cgi?id=200237

        Reviewed by Joseph Pecoraro.

        * inspector/css/resolve-variable-value.html: Added.
        * inspector/css/resolve-variable-value-expected.txt: Added.

2019-08-05  Chris Dumez  <cdumez@apple.com>

        navigator.geolocation wrapper should not become GC-collectable once its frame is detached
        https://bugs.webkit.org/show_bug.cgi?id=200436

        Reviewed by Darin Adler.

        Add layout test coverage.

        * fast/dom/navigator-property-gc-after-frame-detach-expected.txt: Added.
        * fast/dom/navigator-property-gc-after-frame-detach.html: Added.

2019-08-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: rename "Stylesheet" to "Style Sheet" to match spec text
        https://bugs.webkit.org/show_bug.cgi?id=200422

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/resource-collection.html:
        * http/tests/inspector/network/resource-mime-type.html:
        * http/tests/inspector/network/resource-mime-type-expected.txt:

2019-08-05  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Re-introduce latch mode for subresource cookie blocking
        https://bugs.webkit.org/show_bug.cgi?id=200395
        <rdar://problem/53869611>

        Reviewed by Darin Adler.

        Back when we had a relaxation of cookie blocking 24 hours after first-party user
        interaction, we made sure cookie blocking could be turned on and off in subresource
        redirect chains. The 24 hour window is now long gone. This patch simplifies the
        cookie blocking so that once a subresource request is denied cookies, any
        subsequent redirect of that request will also be denied cookies, regardless of the
        classification status of the domains involved. I call it latch mode.

        * http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt.
        * http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html.
            Changed to expect no removal of blocking in the redirect and renamed accordingly.
        * platform/ios/TestExpectations:
            Renamed.
        * platform/mac-wk2/TestExpectations:
            Renamed.
        * platform/wk2/TestExpectations:
            Renamed.

2019-08-05  Youenn Fablet  <youenn@apple.com>

        Disable speculative loading if cache is not to be used for the load
        https://bugs.webkit.org/show_bug.cgi?id=199644

        Reviewed by Alex Christensen.

        * http/wpt/fetch/disable-speculative-for-reload-expected.txt: Added.
        * http/wpt/fetch/disable-speculative-for-reload.html: Added.
        * http/wpt/fetch/resources/iframe-with-image.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load-count.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load.py: Added.
        (main):

2019-08-05  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] implement CertificateInfo::summaryInfo
        https://bugs.webkit.org/show_bug.cgi?id=191498

        Reviewed by Alex Christensen.

        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-08-04  Youenn Fablet  <youenn@apple.com>

        WebRTC: got incorrect `this` in negotiationneeded event
        https://bugs.webkit.org/show_bug.cgi?id=200427

        Reviewed by Darin Adler.

        * webrtc/onnegotiationneeded-expected.txt: Added.
        * webrtc/onnegotiationneeded.html: Added.

2019-08-04  Chris Dumez  <cdumez@apple.com>

        Ping loads should not prevent page caching
        https://bugs.webkit.org/show_bug.cgi?id=200418
        <rdar://problem/53901632>

        Reviewed by Darin Adler.

        Add layout test coverage.

        * http/tests/navigation/page-cache-pending-ping-load-cross-origin-expected.txt: Added.
        * http/tests/navigation/page-cache-pending-ping-load-cross-origin.html: Added.
        * http/tests/navigation/page-cache-pending-ping-load-same-origin-expected.txt: Added.
        * http/tests/navigation/page-cache-pending-ping-load-same-origin.html: Added.

2019-08-03  Devin Rousso  <drousso@apple.com>

        Web Inspector: Elements: Styles: add icons for various CSS rule types
        https://bugs.webkit.org/show_bug.cgi?id=199946

        Reviewed by Joseph Pecoraro.

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

2019-08-03  Devin Rousso  <drousso@apple.com>

        Web Inspector: DOM: add a special breakpoint for "All Events"
        https://bugs.webkit.org/show_bug.cgi?id=200285

        Reviewed by Joseph Pecoraro.

        * inspector/dom/breakpoint-for-event-listener.html:
        * inspector/dom/breakpoint-for-event-listener-expected.txt:

        * inspector/dom-debugger/event-animation-frame-breakpoints.html:
        * inspector/dom-debugger/event-animation-frame-breakpoints-expected.txt:
        * inspector/dom-debugger/event-breakpoint-with-navigation.html:
        * inspector/dom-debugger/event-breakpoint-with-navigation-expected.txt:
        * inspector/dom-debugger/event-interval-breakpoints.html: Added.
        * inspector/dom-debugger/event-interval-breakpoints-expected.txt: Added.
        * inspector/dom-debugger/event-listener-breakpoints.html:
        * inspector/dom-debugger/event-listener-breakpoints-expected.txt:
        * inspector/dom-debugger/event-timeout-breakpoints.html: Added.
        * inspector/dom-debugger/event-timeout-breakpoints-expected.txt: Added.

        * inspector/dom-debugger/resources/event-breakpoint-utilities.js:
        (TestPage.registerInitializer.InspectorTest.EventBreakpoint.teardown):
        (TestPage.registerInitializer.InspectorTest.EventBreakpoint.failOnPause):
        (TestPage.registerInitializer.InspectorTest.EventBreakpoint.createBreakpoint): Added.
        (TestPage.registerInitializer.InspectorTest.EventBreakpoint.addBreakpoint):
        (TestPage.registerInitializer.InspectorTest.EventBreakpoint.removeBreakpoint):
        (TestPage.registerInitializer.InspectorTest.EventBreakpoint.disableBreakpoint):

        * inspector/dom-debugger/event-timer-breakpoints.html: Removed.
        * inspector/dom-debugger/event-timer-breakpoints-expected.txt: Removed.

2019-08-03  Devin Rousso  <drousso@apple.com>

        Web Inspector: CSS Formatter: comments with an escape character aren't formatted
        https://bugs.webkit.org/show_bug.cgi?id=200168

        Reviewed by Joseph Pecoraro.

        * inspector/formatting/formatting-css.html:
        * inspector/formatting/formatting-css-expected.txt:
        * inspector/formatting/resources/css-tests/comment.css: Added.
        * inspector/formatting/resources/css-tests/comment-expected.css: Added.

2019-08-02  Andres Gonzalez  <andresg_22@apple.com>

        [ Mac ] Layout Test accessibility/mac/press-not-work-for-disabled-menu-list.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196505
        <rdar://problem/49532620>

        Reviewed by Chris Fleizach.

        Re-wrote test in a timing independent way. This should fix the intermittent failures.
        * accessibility/mac/press-not-work-for-disabled-menu-list.html:

2019-08-02  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: Crash when interacting with Template Content in Console
        https://bugs.webkit.org/show_bug.cgi?id=196280

        Reviewed by Joseph Pecoraro.

        * inspector/dom/inspect-template-node-expected.txt: Added.
        * inspector/dom/inspect-template-node.html: Added.

2019-08-02  Ryosuke Niwa  <rniwa@webkit.org>

        Document::resume should delay resetting of form control elements.
        https://bugs.webkit.org/show_bug.cgi?id=200376

        Reviewed by Geoffrey Garen.

        Added a regression test.

        * fast/frames/restoring-page-cache-should-not-run-scripts-expected.txt: Added.
        * fast/frames/restoring-page-cache-should-not-run-scripts.html: Added.
        * platform/win/TestExpectations: Skip this test on Windows since navigating to blob fails on Windows.

2019-08-02  Andres Gonzalez  <andresg_22@apple.com>

        Add accessibility object method to determine whether an element is inside a table cell. Needed for iOS accessibility client.
        https://bugs.webkit.org/show_bug.cgi?id=200394
        <rdar://problem/52914964>

        Reviewed by Chris Fleizach.

        New test that exercises [WebAccessibilityObjectWrapper _accessibilityIsInTableCell].

        * accessibility/ios-simulator/element-in-table-cell-expected.txt: Added.
        * accessibility/ios-simulator/element-in-table-cell.html: Added.

2019-08-02  Chris Dumez  <cdumez@apple.com>

        DOMWindow properties may get GC'd before their Window object
        https://bugs.webkit.org/show_bug.cgi?id=200359

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/dom/dom-window-property-gc-after-frame-detach-expected.txt: Added.
        * fast/dom/dom-window-property-gc-after-frame-detach.html: Added.

2019-08-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] WebSockets: use SOUP_WEBSOCKET_CLOSE_NO_STATUS when closing with no status
        https://bugs.webkit.org/show_bug.cgi?id=200338

        Reviewed by Alex Christensen.

        Remove failure expectation for http/tests/websocket/tests/hybi/client-close.html

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

2019-08-01  Chris Dumez  <cdumez@apple.com>

        Pages using MessagePorts should be PageCacheable
        https://bugs.webkit.org/show_bug.cgi?id=200366
        <rdar://problem/53837882>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * fast/history/page-cache-MessagePort-pending-message-expected.txt: Added.
        * fast/history/page-cache-MessagePort-pending-message.html: Added.

2019-08-01  Chris Dumez  <cdumez@apple.com>

        fast/forms/ios/file-upload-panel.html is flaky on iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=200357
        <rdar://problem/53028551>

        Reviewed by Zalan Bujtas.

        Use UIHelper.activateElementAtHumanSpeed() instead of UIHelper.activateElement()
        to address flakiness. If the button taps are issued to quickly, some of them
        get swallowed.

        * fast/forms/ios/file-upload-panel.html:

2019-08-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Text autosizing] [iPadOS] Add targeted hacks to address some remaining text autosizing issues
        https://bugs.webkit.org/show_bug.cgi?id=200271
        <rdar://problem/51734741>

        Reviewed by Zalan Bujtas.

        Add tests to cover some changes to line height boosting and the idempotent text autosizing candidate heuristic.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidate-special-cases-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidate-special-cases.html: Added.
        * fast/text-autosizing/ios/idempotentmode/line-height-boosting-expected.txt:
        * fast/text-autosizing/ios/idempotentmode/line-height-boosting.html:

2019-08-01  Truitt Savell  <tsavell@apple.com>

        Removing expectations for tests that are now consistently passing

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:

2019-08-01  Youenn Fablet  <youenn@apple.com>

        UserMediaPermissionRequestManagerProxy should not use audio+video denied requests to deny audio-only or video-only requests
        https://bugs.webkit.org/show_bug.cgi?id=200317

        Reviewed by Eric Carlson.

        Update existing test with new behavior.
        Added new test for the case where video is blocked but not audio.

        * fast/mediastream/getUserMedia-deny-persistency3-expected.txt:
        * fast/mediastream/getUserMedia-deny-persistency3.html:
        * fast/mediastream/getUserMedia-deny-persistency4-expected.txt: Added.
        * fast/mediastream/getUserMedia-deny-persistency4.html: Added.

2019-08-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] WebSockets: add support for extensions when using web sockets libsoup API
        https://bugs.webkit.org/show_bug.cgi?id=199943

        Reviewed by Alex Christensen.

        Add new tests for permessage-deflate imported from blink and rebaseline existing tests.

        * TestExpectations: Skip permessage-deflate tests by default.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-comp-bit-onoff.html: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter.html: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter_wsh.py: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-manual_wsh.py: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-parameter.html: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-set-bfinal.html: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-split-frames.html: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-split-frames_wsh.py: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-unsolicited-negotiation-response.html: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-unsolicited-negotiation-response_wsh.py: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-window-bits.html: Added.
        * http/tests/websocket/tests/hybi/imported/blink/permessage-deflate_wsh.py: Added.
        * platform/gtk/TestExpectations: Enable permessage-deflate tests.
        * platform/gtk/http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/deflate-frame-parameter-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/extensions-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-comp-bit-onoff-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-parameter-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-set-bfinal-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-split-frames-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-unsolicited-negotiation-response-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-window-bits-expected.txt: Added.
        * platform/wpe/TestExpectations: Enable permessage-deflate tests.
        * platform/wpe/http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/deflate-frame-parameter-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/extensions-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-comp-bit-onoff-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-parameter-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-set-bfinal-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-split-frames-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-unsolicited-negotiation-response-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-window-bits-expected.txt: Added.

2019-08-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] Switch to use libsoup WebSockets API
        https://bugs.webkit.org/show_bug.cgi?id=200162

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/websocket/tests/hybi/broken-utf8-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/close-before-open-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/close-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/closed-when-entering-page-cache-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/compressed-control-frame-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/fragmented-control-frame-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-error-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-extensions-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-maxlength-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-more-extensions-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-no-connection-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-no-upgrade-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-prepended-null-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-wrong-accept-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/interleaved-fragments-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/invalid-continuation-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/invalid-masked-frames-from-server-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/long-control-frame-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/long-invalid-header-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/network-process-crash-error-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/reserved-bits-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/reserved-opcodes-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/secure-cookie-secure-connection-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/send-object-tostring-check-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/simple-wss-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/too-long-payload-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/websocket-event-target-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/workers/close-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-illegal-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/Send-65K-data.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/Send-data.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/basic-auth.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/security/001-expected.txt: Added.
        * platform/gtk/js/intl-datetimeformat-expected.txt: Removed.
        * platform/wpe/TestExpectations:
        * platform/wpe/http/tests/websocket/tests/hybi/broken-utf8-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/close-before-open-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/close-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/closed-when-entering-page-cache-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/compressed-control-frame-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/fragmented-control-frame-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-error-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-extensions-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-maxlength-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-more-extensions-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-no-connection-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-no-upgrade-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-prepended-null-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-wrong-accept-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/interleaved-fragments-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/invalid-continuation-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/invalid-masked-frames-from-server-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/long-control-frame-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/long-invalid-header-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/network-process-crash-error-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/reserved-bits-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/reserved-opcodes-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/secure-cookie-secure-connection-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/send-object-tostring-check-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/simple-wss-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/too-long-payload-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/websocket-event-target-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt: Added.
        * platform/wpe/http/tests/websocket/tests/hybi/workers/close-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/Send-65K-data.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/Send-data.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/basic-auth.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/001-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/security/001-expected.txt: Added.

2019-07-31  Devin Rousso  <drousso@apple.com>

        Web Inspector: Debugger: support emulateUserGesture parameter in Debugger.evaluateOnCallFrame
        https://bugs.webkit.org/show_bug.cgi?id=200272

        Reviewed by Joseph Pecoraro.

        * inspector/debugger/evaluateOnCallFrame-emulateUserGesture.html: Added.
        * inspector/debugger/evaluateOnCallFrame-emulateUserGesture-expected.txt: Added.
        * inspector/debugger/evaluateOnCallFrame-emulateUserGesture-userIsInteracting.html: Added.
        * inspector/debugger/evaluateOnCallFrame-emulateUserGesture-userIsInteracting-expected.txt: Added.
        * TestExpectations:
        * platform/wk2/TestExpectations:

        * inspector/runtime/evaluate-emulateUserGesture.html: Added.
        * inspector/runtime/evaluate-emulateUserGesture-expected.txt: Added.
        * inspector/runtime/evaluate-emulateUserGesture-userIsInteracting.html: Added.
        * inspector/runtime/evaluate-emulateUserGesture-userIsInteracting-expected.txt: Added.
        * inspector/runtime/evaluate-userGestureEmulation.html: Deleted.
        * inspector/runtime/evaluate-userGestureEmulation-expected.txt: Deleted.
        * inspector/runtime/evaluate-userGestureEmulation-userIsInteracting.html: Deleted.
        * inspector/runtime/evaluate-userGestureEmulation-userIsInteracting-expected.txt: Deleted.
        Rename tests from "userGestureEmulation" to "emulateUserGesture" to match the parameter.

2019-07-31  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] twitch.tv video controls do not always respond to taps in fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=200309
        <rdar://problem/52964977>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/non-visible-content-change-in-fullscreen-mode-expected.txt: Added.
        * fast/events/touch/ios/content-observation/non-visible-content-change-in-fullscreen-mode.html: Added.
        * platform/ios/TestExpectations: Fullscreen API is not yet enabled on iOS.

2019-07-31  Saam Barati  <sbarati@apple.com>

        [WHLSL Remove char/short/half types
        https://bugs.webkit.org/show_bug.cgi?id=200312

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl/bools.html:
        * webgpu/whlsl/smaller-than-32-bit-types-expected.txt: Added.
        * webgpu/whlsl/smaller-than-32-bit-types.html: Added.
        * webgpu/whlsl/test-harness-test.html:

2019-07-31  Truitt Savell  <tsavell@apple.com>

        Update test expectations for imported/blink/storage/indexeddb/blob-basics-metadata.html
        https://bugs.webkit.org/show_bug.cgi?id=199117

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-07-31  Youenn Fablet  <youenn@apple.com>

        Use CTFontCreateForCharactersWithLanguageAndOption if available instead of CTFontCreateForCharactersWithLanguage
        https://bugs.webkit.org/show_bug.cgi?id=200241

        We update the tests to flush font caches as otherwise some debug asserts would be hit.
        This is due to changing the user installed font runtime flag while browsing which is not a typical situation.

        Reviewed by Myles C. Maxfield.

        * fast/text/user-installed-fonts/extended-character-with-user-font.html:
        * fast/text/user-installed-fonts/extended-character.html:

2019-07-31  Youenn Fablet  <youenn@apple.com>

        Owners of MultiChannelResampler should make sure that the output bus given to it has the same number of channels
        https://bugs.webkit.org/show_bug.cgi?id=200248
        <rdar://problem/53411051>

        Reviewed by Eric Carlson.

        * fast/mediastream/getUserMedia-webaudio-expected.txt:
        * fast/mediastream/getUserMedia-webaudio.html:

2019-07-31  Chris Dumez  <cdumez@apple.com>

        Element.outerHTML is missing attribute prefixes in some cases in HTML documents
        https://bugs.webkit.org/show_bug.cgi?id=200283

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/dom/Element/outerHTML-prefixed-attribute-expected.txt: Added.
        * fast/dom/Element/outerHTML-prefixed-attribute.html: Added.

2019-07-31  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE and GTK gardening. Adding some failure expectations as
        well as updating baselines for WPT tests where the behavior improved or
        has just changed in the type of error(s) reported.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/resource-timing/resource-timing-level1.sub-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/ready.https-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/websockets: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt: Added.

2019-07-31  Andres Gonzalez  <andresg_22@apple.com>

        AX: Re-enable accessibility/set-selected-text-range-after-newline.html test.
        https://bugs.webkit.org/show_bug.cgi?id=199431
        <rdar://problem/52563340>

        Reviewed by Chris Fleizach.

        * TestExpectations:
        * accessibility/ios-simulator/set-selected-text-range-after-newline.html: Removed because it was the same as the one in the parent accessibility directory, so enabling it for iOS in ios-wk2/TestExpectations.
        * platform/ios-wk2/TestExpectations:

2019-07-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK gardening. Update expectations after r248033.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/forms/datalist/datalist-searchinput-appearance-expected.png: Added.
        * platform/gtk/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
        * platform/gtk/fast/forms/datalist/datalist-textinput-appearance-expected.png: Added.
        * platform/gtk/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.

2019-07-31  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Rebaselining the straightforward cases.

        * platform/wpe/css3/flexbox/flexbox-baseline-margins-expected.txt:
        * platform/wpe/fast/dom/Window/window-properties-geolocation-expected.txt:
        * platform/wpe/fast/xsl/sort-locale-expected.txt:
        * platform/wpe/http/tests/dom/same-origin-detached-window-properties-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any.worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt:
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:

2019-07-31  Devin Rousso  <drousso@apple.com>

        Web Inspector: Second call to setAttributeNS creates non-prefixed attribute
        https://bugs.webkit.org/show_bug.cgi?id=200230
        <rdar://problem/53712672>

        Reviewed by Joseph Pecoraro.

        * inspector/dom/attributeModified.html: Added.
        * inspector/dom/attributeModified-expected.txt: Added.

2019-07-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Datalist element support for TextFieldInputType
        https://bugs.webkit.org/show_bug.cgi?id=98934

        Reviewed by Michael Catanzaro.

        Unskip datalist tests for GTK port.

        * platform/gtk/TestExpectations:

2019-07-31  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening.

        * platform/wpe/TestExpectations:
        Skip tests invoking the UIScriptController interface for which WPE
        doesn't yet provide an implementation, resulting in crashes.

2019-07-30  Saam Barati  <sbarati@apple.com>

        [WHLSL] Checker sets wrong type for property access instruction with an ander
        https://bugs.webkit.org/show_bug.cgi?id=200282

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl/device-proper-type-checker-expected.txt: Added.
        * webgpu/whlsl/device-proper-type-checker.html: Added.

2019-07-30  Ryan Haddad  <ryanhaddad@apple.com>

        Add test expectations and baselines for iPad
        https://bugs.webkit.org/show_bug.cgi?id=199711

        Unreviewed test gardening.

        * platform/ipad-12/TestExpectations: Added.
        * platform/ipad-12/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Copied from LayoutTests/platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt.
        * platform/ipad-12/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Copied from LayoutTests/platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt.
        * platform/ipad-12/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: Copied from LayoutTests/platform/ipad/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt.
        * platform/ipad-12/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt: Copied from LayoutTests/platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt.
        * platform/ipad-12/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Copied from LayoutTests/platform/ipad/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt.
        * platform/ipad-12/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Copied from LayoutTests/platform/ipad/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt.
        * platform/ipad/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt: Added.
        * platform/ipad/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: Added.
        * platform/ipad/editing/caret/ios/fixed-caret-position-after-scroll-expected.txt: Added.
        * platform/ipad/editing/selection/ios/do-not-hide-selection-in-visible-container-expected.txt: Added.
        * platform/ipad/fast/dom/navigator-iOS-userAgent-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
        * platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
        * platform/ipad/fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
        * platform/ipad/fast/viewport/ios/shrink-to-fit-for-page-without-viewport-meta-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt:
        * platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height-expected.txt: Added.
        * platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight-expected.txt: Added.
        * platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth-expected.txt: Added.
        * platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width-expected.txt: Added.
        * platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-innerheight-innerwidth-expected.txt: Added.
        * platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-width-height-expected.txt: Added.
        * platform/ipad/imported/w3c/web-platform-tests/workers/WorkerNavigator_platform-expected.txt: Added.
        * platform/ipad/imported/w3c/web-platform-tests/workers/interfaces/WorkerUtils/navigator/004-expected.txt: Added.
        * platform/ipad/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt:
        * platform/ipad/scrollingcoordinator/ios/fixed-in-frame-layer-reconcile-layer-position-expected.txt: Added.
        * platform/ipad/scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree-expected.txt: Added.
        * platform/ipad/scrollingcoordinator/ios/fixed-scrolling-with-keyboard-expected.txt: Copied from LayoutTests/platform/ipad/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt.
        * platform/ipad/scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt: Added.
        * platform/ipad/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt:

2019-07-30  Daniel Bates  <dabates@apple.com>

        picture-in-picture.html fails because webkitpresentationmodechanged sometimes dispatched multiple times
        using Apple Internal build
        <rdar://problem/36455352>

        Workaround by only listening for the first webkitpresentationmodechanged event dispatched. This test
        is the canary in the coal mine that revealed that multiple webkitpresentationmodechanged events are
        dispatched when one is expected. However this was not the primary purpose of the test and in absence
        of a timeframe for a fix for <rdar://problem/36455352> work around this bug to avoid losing test coverage
        when using an Apple Internal build.

        * platform/ipad/media/controls/resources/picture-in-picture.html:

2019-07-30  Truitt Savell  <tsavell@apple.com>

        (r247440) imported/w3c/web-platform-tests/wasm/jsapi/interface.any.worker.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=200258

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-07-29  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add layout test coverage for <https://webkit.org/b/200215>
        https://bugs.webkit.org/show_bug.cgi?id=200245
        <rdar://problem/52976965>

        Reviewed by Tim Horton.

        Add a new layout test to exercise a scenario where the web view is removed from the view hierarchy, added back
        into the view hierarchy, and then made first responder all under the scope of a synchronous autocorrection
        context request. See <https://trac.webkit.org/changeset/247914> for more details.

        The test here involves two parts: first, we attempt to interact with an input field which, when focused, will
        try to open a new window, which then triggers code in the UI process that reinserts the web view in the view
        hierarchy. Before r247345, this would result in a crash.

        The second part involves tapping an input field on the page. Without the fix in r247914, this would result in a
        permanent hang in the UI process, due to the keyboard task queue being unable to dequeue and handle any further
        tasks.

        * fast/forms/ios/remove-and-add-view-during-focus-expected.txt: Added.
        * fast/forms/ios/remove-and-add-view-during-focus.html: Added.

2019-07-29  Wenson Hsieh  <wenson_hsieh@apple.com>

        YouTube search field shows RTL text outside its border on iPadOS
        https://bugs.webkit.org/show_bug.cgi?id=200253
        <rdar://problem/53680603>

        Reviewed by Beth Dakin.

        * editing/input/ios/rtl-keyboard-input-on-focus-in-editable-page-expected.txt: Renamed from LayoutTests/editing/input/ios/rtl-keyboard-input-on-focus-expected.txt.
        * editing/input/ios/rtl-keyboard-input-on-focus-in-editable-page.html: Renamed from LayoutTests/editing/input/ios/rtl-keyboard-input-on-focus.html.

        Rename an existing test, rtl-keyboard-input-on-focus.html, to rtl-keyboard-input-on-focus-in-editable-page.html
        to emphasize the fact that it requires an editable web view.

        * editing/input/ios/rtl-keyboard-input-on-focus-in-non-editable-page-expected.txt: Added.
        * editing/input/ios/rtl-keyboard-input-on-focus-in-non-editable-page.html: Added.

        Add a new layout test to ensure that we don't automatically apply an RTL attribute when focusing fields in a
        non-editable web view.

2019-07-29  Sergei Glazunov  <glazunov@google.com>

        The maximum subframe count check should not be skipped for empty URLs.
        https://bugs.webkit.org/show_bug.cgi?id=200032

        Reviewed by Ryosuke Niwa.

        * fast/dom/connected-subframe-counter-overflow-expected.txt: Added.
        * fast/dom/connected-subframe-counter-overflow.html: Added.
        * fast/frames/lots-of-iframes-expected.txt:

2019-07-29  Youenn Fablet  <youenn@apple.com>

        REGRESSION: WebSockets no longer work in Service Workers
        https://bugs.webkit.org/show_bug.cgi?id=199906
        <rdar://problem/53516732>

        Reviewed by Geoffrey Garen.

        Fix test and make sure messages are exchanged for the test to succeed.

        * http/tests/workers/service/resources/serviceworker-websocket-worker.js:
        (async.doTest):

2019-07-29  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, update expectations for rdar://problem/48616298.

        * platform/ios-wk2/TestExpectations:
        The fast/viewport/ios directory is marked as passing in this file, which was overriding the entries in the 'ios' file.
        * platform/ios/TestExpectations:

2019-07-29  Andres Gonzalez  <andresg_22@apple.com>

        REGRESSION (r247891): Layout Test accessibility/ios-simulator/video-elements-ios.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=200231
        <rdar://problem/53666599>

        Reviewed by Chris Fleizach.

        We now expose <video> elements when they have controls.
        * accessibility/ios-simulator/video-elements-ios-expected.txt:
        * accessibility/ios-simulator/video-elements-ios.html:

2019-07-29  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r246899): Subtitles show twice when controls show/hide on hulu.com
        https://bugs.webkit.org/show_bug.cgi?id=200187
        rdar://problem/53511121

        Reviewed by Zalan Bujtas.

        * compositing/shared-backing/backing-sharing-repaint-expected.html: Added.
        * compositing/shared-backing/backing-sharing-repaint.html: Added.

2019-07-29  Simon Fraser  <simon.fraser@apple.com>

        Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
        https://bugs.webkit.org/show_bug.cgi?id=200263
        rdar://problem/53679408

        Reviewed by Antti Koivisto.

        * fast/scrolling/ios/non-invertible-transformed-over-scroller-expected.txt: Added.
        * fast/scrolling/ios/non-invertible-transformed-over-scroller.html: Added.

2019-07-29  Simon Fraser  <simon.fraser@apple.com>

        The touch-action property was ignored on replaced elements (canvas, img etc)
        https://bugs.webkit.org/show_bug.cgi?id=200205
        rdar://problem/53331224

        Reviewed by Antti Koivisto.

        * pointerevents/ios/touch-action-region-replaced-elements-expected.txt: Added.
        * pointerevents/ios/touch-action-region-replaced-elements.html: Added.

2019-07-29  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r247898): Multiple Layout Tests in http/tests/contentdispositionattachmentsandbox/* are timing out on iOS
        <rdar://problem/53664817>

        * http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped.js:
        (onload):
        iOS has eventSender, so this reorganizing didn't work (well, it worked for macOS...).
        Instead, check which platform we're on and use touch vs. mouse events by
        platform instead of by available API.

2019-07-28  Tim Horton  <timothy_horton@apple.com>

        Reorganize UIScriptController into platform-specific subclasses
        https://bugs.webkit.org/show_bug.cgi?id=200027

        Reviewed by Simon Fraser.

        * http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped.js:
        (onload):
        This test both uses event sender to click, and UIScriptController to "tap".
        Since singleTapAtPoint is unimplemented on macOS, it really just ended
        up doing nothing, but now it asserts. Only click or tap, but not both.

        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        Skip some tests for unimplemented or unsupported features.

        * platform/mac/fast/events/autoscroll-when-input-is-offscreen-expected.txt: Removed.
        * platform/mac/fast/events/autoscroll-with-software-keyboard-expected.txt: Removed.
        Remove unneeded test results.

        * swipe/resources/swipe-test.js:
        (playEventStream):
        playBackEventStream is unimplemented on iOS. Also, it's not necessary
        for simulated swipe to send events at all on iOS, so just bail, which
        is equivalent to what used to happen.

2019-07-27  Andres Gonzalez  <andresg_22@apple.com>

        Expose the aria-label attribute for <video> elements.
        https://bugs.webkit.org/show_bug.cgi?id=200169
        <rdar://problem/51754558>

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/media-with-aria-label-expected.txt: Added.
        * accessibility/ios-simulator/media-with-aria-label.html: Added.
        * accessibility/media-with-aria-label-expected.txt: Added.
        * accessibility/media-with-aria-label.html: Added.
        * platform/win/TestExpectations:

2019-07-26  Ryosuke Niwa  <rniwa@webkit.org>

        Moving right by word boundary right before an object element followed by a br element hangs
        https://bugs.webkit.org/show_bug.cgi?id=200144

        Reviewed by Simon Fraser.

        Added regression tests. The second test case involes non-word characters "%)" which are skipped like whitespaces
        for the purposes of moving right or left by word granularity. The third test case involves RTL text.

        * editing/selection/move-by-word-visually-across-object-element-1-expected.txt: Added.
        * editing/selection/move-by-word-visually-across-object-element-1.html: Added.
        * editing/selection/move-by-word-visually-across-object-element-2-expected.txt: Added.
        * editing/selection/move-by-word-visually-across-object-element-2.html: Added.
        * editing/selection/move-by-word-visually-across-object-element-3-expected.txt: Added.
        * editing/selection/move-by-word-visually-across-object-element-3.html: Added.

2019-07-26  Brady Eidson  <beidson@apple.com>

        Do not fire readystatechange events at documents about to get replaced by javascript URLs.
        <rdar://problem/51665406> and https://bugs.webkit.org/show_bug.cgi?id=198786

        Reviewed by Ryosuke Niwa.

        * http/tests/dom/ready-state-on-javascript-replace-expected.txt: Added.
        * http/tests/dom/ready-state-on-javascript-replace.html: Added.

2019-07-26  Chris Dumez  <cdumez@apple.com>

        [iOS] WebPage::TouchEventSync() & WebPage::GetPositionInformation() sync IPC causes UIProcess hangs
        https://bugs.webkit.org/show_bug.cgi?id=200138
        <rdar://problem/52698157>

        Reviewed by Geoffrey Garen.

        Update existing layout test accordingly.

        * fast/misc/{testProcessIncomingSyncMessagesWhenWaitingForUnboundedReply-expected.txt: Renamed from LayoutTests/fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply-expected.txt.
        * fast/misc/{testProcessIncomingSyncMessagesWhenWaitingForUnboundedReply.html: Renamed from LayoutTests/fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html.

2019-07-26  Zalan Bujtas  <zalan@apple.com>

        Unable to tap/double tap to open files/folders in Google Drive in Safari
        https://bugs.webkit.org/show_bug.cgi?id=200096
        <rdar://problem/52748552>

        Reviewed by Wenson Hsieh.

        1. Rebaseline (progression).
        2. Payment request tests activate elements by tapping on them at a high speed, triggering double clicks instead. Let's slow them down a bit.

        * fast/events/touch/ios/double-tap-for-double-click3-expected.txt:
        * http/tests/adClickAttribution/anchor-tag-attributes-validation.html:
        * http/tests/resources/payment-request.js:
        (activateThen):
        * resources/ui-helper.js:
        (window.UIHelper.activateElementAtHumanSpeed.return.new.Promise):
        (window.UIHelper.activateElementAtHumanSpeed):
        * tests-options.json:

2019-07-26  Rob Buis  <rbuis@igalia.com>

        Make storing cross-origin top-level prefetches in HTTP cache optional
        https://bugs.webkit.org/show_bug.cgi?id=199499

        Reviewed by Youenn Fablet.

        Remove unneeded Cache-Control headers and verify that Cache-Control
        effects whether the navigation gets stored in the disk cache or not.

        * http/tests/cache/resources/prefetched-main-resource-iframe.php:
        * http/tests/cache/resources/prefetched-main-resource.php:
        * http/wpt/prefetch/link-prefetch-skip-disk-cache-expected.txt: Added.
        * http/wpt/prefetch/link-prefetch-skip-disk-cache.html: Added.
        * http/wpt/prefetch/resources/main-resource-skip-disk-cache.py: Added.
        (main):
        * http/wpt/prefetch/resources/navigate-skip-disk-cache.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-07-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r247806.
        https://bugs.webkit.org/show_bug.cgi?id=200141

        It is regressing PLT (Requested by youenn on #webkit).

        Reverted changeset:

        "Disable speculative loading if cache is not to be used for
        the load"
        https://bugs.webkit.org/show_bug.cgi?id=199644
        https://trac.webkit.org/changeset/247806

2019-07-25  Russell Epstein  <repstein@apple.com>

        rdar://53551736 (Layout Test editing/pasteboard/paste-and-sanitize.html is a Flaky Failure on iOS 13).

        Unreviewed Test Gardening.

        * platform/ios-12/TestExpectations: Test is passing on iOS 12
        * platform/ios/TestExpectations: Marking test as flaky on iOS 13

2019-07-25  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION (r244995): Assertion failure when addEventListener to an SVGElement which has an. instance in shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=200083

        Reviewed by Ryosuke Niwa.

        * svg/custom/add-event-listener-shadow-tree-element-expected.txt: Added.
        * svg/custom/add-event-listener-shadow-tree-element.html: Added.

2019-07-25  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r247821.

        Caused two crashing Layout Tests

        Reverted changeset:

        "Make storing cross-origin top-level prefetches in HTTP cache
        optional"
        https://bugs.webkit.org/show_bug.cgi?id=199499
        https://trac.webkit.org/changeset/247821

2019-07-25  Russell Epstein  <repstein@apple.com>

        Adding iOS-specific expectations for fast/text-indicator/text-indicator-with-low-contrast-text.html.
        https://bugs.webkit.org/show_bug.cgi?id=200064

        Unreviewed Test Gardening.

        * platform/ios/fast/text-indicator/text-indicator-with-low-contrast-text-expected.txt: Added.

2019-07-25  Chris Dumez  <cdumez@apple.com>

        Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts
        https://bugs.webkit.org/show_bug.cgi?id=200107
        <rdar://problem/53034592>

        Reviewed by Geoffrey Garen.

        Add layout test coverage for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply.
        Without the flag on the sendSync from the WebContent process of the
        NetworkConnectionToWebProcess::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply IPC, the
        test would hang. This is because the WebContent process sends a sync IPC to the network process,
        which in turns sends one to the UIProcess, which itself sends one back to the WebContent process.
        This would attempt to re-enter the WebContent process which is currently sending a sync IPC, which
        is not allowed by default.

        * fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply-expected.txt: Added.
        * fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html: Added.

2019-07-25  Rob Buis  <rbuis@igalia.com>

        Make storing cross-origin top-level prefetches in HTTP cache optional
        https://bugs.webkit.org/show_bug.cgi?id=199499

        Reviewed by Youenn Fablet.

        Remove unneeded Cache-Control headers and verify that Cache-Control
        effects whether the navigation gets stored in the disk cache or not.

        * http/tests/cache/resources/prefetched-main-resource-iframe.php:
        * http/tests/cache/resources/prefetched-main-resource.php:
        * http/wpt/prefetch/link-prefetch-skip-disk-cache-expected.txt: Added.
        * http/wpt/prefetch/link-prefetch-skip-disk-cache.html: Added.
        * http/wpt/prefetch/resources/main-resource-skip-disk-cache.py: Added.
        (main):
        * http/wpt/prefetch/resources/navigate-skip-disk-cache.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-07-25  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r247817.

        Broke 14 http/tests/paymentrequest/ tests. on iOS

        Reverted changeset:

        "Unable to tap/double tap to open files/folders in Google
        Drive in Safari"
        https://bugs.webkit.org/show_bug.cgi?id=200096
        https://trac.webkit.org/changeset/247817

2019-07-24  Zalan Bujtas  <zalan@apple.com>

        Unable to tap/double tap to open files/folders in Google Drive in Safari
        https://bugs.webkit.org/show_bug.cgi?id=200096
        <rdar://problem/52748552>

        Reviewed by Wenson Hsieh.

        Rebaseline.

        * fast/events/touch/ios/double-tap-for-double-click3-expected.txt:

2019-07-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: support `console.screenshot` with detached Nodes that are graphical
        https://bugs.webkit.org/show_bug.cgi?id=199309

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:

2019-07-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: support `console.screenshot` with ImageData and ImageBitmap
        https://bugs.webkit.org/show_bug.cgi?id=199304

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:

2019-07-24  Youenn Fablet  <youenn@apple.com>

        Disable speculative loading if cache is not to be used for the load
        https://bugs.webkit.org/show_bug.cgi?id=199644

        Reviewed by Alex Christensen.

        * http/wpt/fetch/disable-speculative-for-reload-expected.txt: Added.
        * http/wpt/fetch/disable-speculative-for-reload.html: Added.
        * http/wpt/fetch/resources/iframe-with-image.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load-count.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load.py: Added.
        (main):

2019-07-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: support `console.screenshot` with subclasses of CanvasRenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=199305

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:

2019-07-24  Tim Horton  <timothy_horton@apple.com>

        Daring Fireball long press highlights are unnecessarily inflated due to false illegibility
        https://bugs.webkit.org/show_bug.cgi?id=200064

        Reviewed by Geoff Garen.

        * fast/text-indicator/text-indicator-with-low-contrast-text-expected.txt: Added.
        * fast/text-indicator/text-indicator-with-low-contrast-text.html: Added.

2019-07-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: print the target of `console.screenshot` last so the target is the closest item to the image
        https://bugs.webkit.org/show_bug.cgi?id=199308

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-expected.txt:
        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:

2019-07-24  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, land expectations for rdar://53324867.

        * platform/ios-12/fast/events/touch/ios/pointer-events-with-modifiers-expected.txt: Copied from LayoutTests/platform/ios/fast/events/touch/ios/pointer-events-with-modifiers-expected.txt.
        * platform/ios/fast/events/touch/ios/pointer-events-with-modifiers-expected.txt:

2019-07-24  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, update test expectations for Catalina.

        * platform/mac/TestExpectations:

2019-07-24  Alicia Boya García  <aboya@igalia.com>

        [MSE] Reenqueue after removeCodedFrames()
        https://bugs.webkit.org/show_bug.cgi?id=199749

        Reviewed by Xabier Rodriguez-Calvar.

        Added a test that checks that when an .erase() is performed after the
        last append the erased frames are indeed not played.

        * media/media-source/media-source-erase-after-last-append-expected.txt: Added.
        * media/media-source/media-source-erase-after-last-append.html: Added.

2019-07-24  Russell Epstein  <repstein@apple.com>

        Remove test expectation for fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard.html
        <rdar://problem/52608620>

        Unreviewed Test Gardening.

        * platform/ios/TestExpectations:

2019-07-23  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement errors for GPURenderPipeline creation
        https://bugs.webkit.org/show_bug.cgi?id=200046

        Reviewed by Myles C. Maxfield.

        Add test to cover reproducible render pipeline creation errors.

        * webgpu/js/webgpu-functions.js:
        (runTestsWithDevice):
        * webgpu/render-pipeline-errors-expected.txt: Added.
        * webgpu/render-pipeline-errors.html: Added.

2019-07-23  Said Abou-Hallawa  <sabouhallawa@apple.com>

        CanvasRenderingContext2D.setTransfrom() reads only the aliases attributes of DOMMatrix2DInit
        https://bugs.webkit.org/show_bug.cgi?id=199850

        Reviewed by Simon Fraser.

        * fast/canvas/setTransfrom-aliases-transform-expected.html: Added.
        * fast/canvas/setTransfrom-aliases-transform.html: Added.

2019-07-24  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] A top fixed bar can flicker when scrolling with the keyboard up
        https://bugs.webkit.org/show_bug.cgi?id=200105
        rdar://problem/52871975

        Reviewed by Wenson Hsieh.

        * resources/ui-helper.js:
        (window.UIHelper.ensureStablePresentationUpdate.return.new.Promise):
        (window.UIHelper.ensureStablePresentationUpdate):
        * scrollingcoordinator/ios/fixed-scrolling-with-keyboard-expected.txt: Added.
        * scrollingcoordinator/ios/fixed-scrolling-with-keyboard.html: Added.

2019-07-23  Tim Horton  <timothy_horton@apple.com>

        Long press hint of AirPods buy buttons are tall and narrow during animation
        https://bugs.webkit.org/show_bug.cgi?id=200036
        <rdar://problem/53145697>

        Reviewed by Wenson Hsieh.

        * fast/text-indicator/text-indicator-with-tiny-child-expected.txt: Added.
        * fast/text-indicator/text-indicator-with-tiny-child.html: Added.

2019-07-23  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS 10.15] Web process crashes when attempting to show the font panel via Font > Show Fonts
        https://bugs.webkit.org/show_bug.cgi?id=200021
        <rdar://problem/53301325>

        Reviewed by Ryosuke Niwa.

        Add a new layout test to verify that attempting to show the font panel doesn't crash the web process in WebKit2.
        This test is skipped in WebKit1, since EventSender::contextClick() in WebKit1 only returns an array of strings
        corresponding to the titles of each menu item.

        * editing/mac/style/do-not-crash-when-showing-font-panel-expected.txt: Added.
        * editing/mac/style/do-not-crash-when-showing-font-panel.html: Added.
        * platform/mac-wk1/TestExpectations:

2019-07-23  Ryosuke Niwa  <rniwa@webkit.org>

        WebKit should strip away system font names from the pasted content
        https://bugs.webkit.org/show_bug.cgi?id=199975
        <rdar://problem/53336353>

        Reviewed by Darin Adler.

        Added a test for ClipboardData.getData returning the original markup and execCommand('insertHTML', ~)
        not stripping away system font names.

        * editing/pasteboard/paste-cocoa-writer-markup-with-system-fonts-expected.txt: Added.
        * editing/pasteboard/paste-cocoa-writer-markup-with-system-fonts.html: Added.

2019-07-22  Simon Fraser  <simon.fraser@apple.com>

        Fix WebView iframe rendering in macOS Catalina
        https://bugs.webkit.org/show_bug.cgi?id=200022
        rdar://problem/49102040

        Reviewed by Darin Adler.
        
        New test for rendering of overlapping iframes, defects when we fail to setAsideSubviews
        in WebView. 

        * fast/frames/frames-not-double-painted-expected.html: Added.
        * fast/frames/frames-not-double-painted.html: Added.

2019-07-22  Youenn Fablet  <youenn@apple.com>

        Make sure the player underlying volume is correctly set after creating a new player
        https://bugs.webkit.org/show_bug.cgi?id=199974
        <rdar://problem/52762559>

        Reviewed by Eric Carlson.

        * http/tests/media/128kbps-44khz.mp3: Added.
        * http/tests/media/audio-volume-zero-expected.txt: Added.
        * http/tests/media/audio-volume-zero.html: Added.

2019-07-22  Truitt Savell  <tsavell@apple.com>

        [ Mojave Debug WK1 ] Layout Test imported/blink/storage/indexeddb/blob-basics-metadata.html is Timing out (200002)
        https://bugs.webkit.org/show_bug.cgi?id=200002

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-07-21  Saam Barati  <sbarati@apple.com>

        [WHLSL] Checker needs to setError() when a property access node can't commit its base type
        https://bugs.webkit.org/show_bug.cgi?id=199978

        Reviewed by Dean Jackson.

        * webgpu/whlsl/null-array-property-access-expected.txt: Added.
        * webgpu/whlsl/null-array-property-access.html: Added.

2019-07-21  Saam Barati  <sbarati@apple.com>

        [WHLSL] Return the zero-value enum in the enum-from-integer constructor when the integer is not a valid enum value
        https://bugs.webkit.org/show_bug.cgi?id=199853

        Reviewed by Dean Jackson.

        * webgpu/whlsl/enum-integer-constructor-expected.txt: Added.
        * webgpu/whlsl/enum-integer-constructor.html: Added.

2019-07-21  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Fast and complex text codepaths disagree about how to lay out bopomofo with tone marks
        https://bugs.webkit.org/show_bug.cgi?id=199912
        <rdar://problem/52182454>

        Reviewed by Simon Fraser.

        * css3/font-feature-font-face-local-expected.html:
        * css3/font-feature-font-face-local.html:
        * editing/mac/selection/word-thai-expected.txt:
        * editing/mac/selection/word-thai.html:
        * fast/text/international/system-language/composition-expected.txt: Added.
        * fast/text/international/system-language/composition.html: Added.
        * platform/ios/fast/text/crash-complex-text-surrogate-expected.txt:
        * svg/custom/glyph-selection-arabic-forms-expected.txt:

2019-07-20  Andres Gonzalez  <andresg_22@apple.com>

        Add accessibilityInsertText for text insertion in edit fields.
        https://bugs.webkit.org/show_bug.cgi?id=199973

        Reviewed by Chris Fleizach.

        Tests for inserting a newline in the middle of a text line and checking
        that the insertion point and text ranges are correct.
        * accessibility/insert-newline-expected.txt: Added.
        * accessibility/insert-newline.html: Added.
        * accessibility/ios-simulator/insert-newline-expected.txt: Added.
        * accessibility/ios-simulator/insert-newline.html: Added.

2019-07-20  Saam Barati  <sbarati@apple.com>

        [WHLSL] Make enums work
        https://bugs.webkit.org/show_bug.cgi?id=199634

        Reviewed by Robin Morisset.

        * webgpu/whlsl/enums-2-expected.txt: Added.
        * webgpu/whlsl/enums-2.html: Added.
        * webgpu/whlsl/enums-expected.txt: Added.
        * webgpu/whlsl/enums.html: Added.

2019-07-19  Jonathan Bedard  <jbedard@apple.com>

        fast/scrolling/ipad/* tests running on Mac
        https://bugs.webkit.org/show_bug.cgi?id=199969
        <rdar://problem/52531653>

        Unreviewed test gardening.

        * TestExpectations: Skip fast/scrolling/ipad on all platforms.
        * platform/ios/TestExpectations: Move to generic TestExpectations.

2019-07-19  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Entering 2FA code on idmsa.apple.com causes unexpected scrolling
        https://bugs.webkit.org/show_bug.cgi?id=199949
        <rdar://problem/49944428>

        Reviewed by Tim Horton and Megan Gardner.

        Add a new layout test to verify that moving focus between horizontally adjacent form controls doesn't induce
        vertical scrolling.

        * fast/forms/ios/no-scrolling-when-moving-focus-between-adjacent-fields-expected.txt: Added.
        * fast/forms/ios/no-scrolling-when-moving-focus-between-adjacent-fields.html: Added.

2019-07-19  Antoine Quint  <graouts@apple.com>

        Links stop working after long-pressing a link (WK1)
        https://bugs.webkit.org/show_bug.cgi?id=199952
        <rdar://problem/52291860>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/click-after-long-press-expected.txt: Added.
        * fast/events/touch/ios/click-after-long-press.html: Added.

2019-07-19  Alex Christensen  <achristensen@webkit.org>

        Rebase fast/forms/ios/typing-in-input-in-iframe.html after r244141
        https://bugs.webkit.org/show_bug.cgi?id=199875
        <rdar://problem/50060561>

        Reviewed by Megan Gardner.

        With r247571 and its justification, we need to rebase another test.

        * fast/forms/ios/typing-in-input-in-iframe-expected.txt:
        * fast/forms/ios/typing-in-input-in-iframe.html:

2019-07-19  Antoine Quint  <graouts@apple.com>

        Unable to bring up custom media controls on iOS for video.sina.cn
        https://bugs.webkit.org/show_bug.cgi?id=199889
        <rdar://problem/51883919>

        Unreviewed test gardening.

        This new test can only run on Internal bots.

        * platform/ios/TestExpectations:

2019-07-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        Remove pywebsockets from thirdparty
        https://bugs.webkit.org/show_bug.cgi?id=199710

        Reviewed by Jonathan Bedard.

        Update two tests that timeout with the new pywebsocket version, because the server doesn't close the connection
        after handshake.AbortedByUserException(). Simply assume onopen to be called a success in handshake like other
        tests using handshake.AbortedByUserException() do.

        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers-expected.txt:
        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html:
        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers-expected.txt:
        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html:

2019-07-18  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [iOS Sim] Multiple quicklook tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=191711

        Reviewed by Simon Fraser.

        Rebaseline expected results for quicklook layout tests.

        * platform/ios/TestExpectations:
        * platform/ios/quicklook/powerpoint-expected.txt:
        * platform/ios/quicklook/powerpoint-legacy-expected.txt:
        * platform/ios/quicklook/resources/numbers-expected.pdf:
        * quicklook/resources/keynote-expected.pdf:
        * quicklook/resources/pages-expected.pdf:

2019-07-18  Antoine Quint  <graouts@apple.com>

        [Pointer Events] The button and buttons properties are incorrect on iOS
        https://bugs.webkit.org/show_bug.cgi?id=199910
        <rdar://problem/52778374>

        Reviewed by Dean Jackson.

        * pointerevents/ios/pointer-event-button-and-buttons-expected.txt: Added.
        * pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel-expected.txt: Added.
        * pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel.html: Added.
        * pointerevents/ios/pointer-event-button-and-buttons.html: Added.

2019-07-18  Alex Christensen  <achristensen@webkit.org>

        Rebase fast/forms/ios/delete-in-input-in-iframe.html after r244141
        https://bugs.webkit.org/show_bug.cgi?id=199875
        <rdar://problem/50060561>

        Reviewed by Megan Gardner.

        In r202295, we added an ios-specific quirk to prevent scrolling on iOS because of UIKit/WebKit scrolling discrepancies.
        In r244141, we changed the scrolling behavior to be more like macOS, and the test was broken.  Since this was an intentional
        change and the bugs reported in rdar://problem/26805722 (initially fixed by r202295) and rdar://problem/49225507 (fixed by r244141)
        are both behaving as desired, the intentional change in r244141 should be reflected by new test expectations.
        We do want typing in an input field in an iframe to scroll as we type.

        * fast/forms/ios/delete-in-input-in-iframe-expected.txt:
        * fast/forms/ios/delete-in-input-in-iframe.html:

2019-07-18  Youenn Fablet  <youenn@apple.com>

        Make sure to set kCTFontFallbackOptionAttribute to kCTFontFallbackOptionSystem for system fonts
        https://bugs.webkit.org/show_bug.cgi?id=199769
        <rdar://problem/49390297>

        Reviewed by Myles C. Maxfield.

        Tests require WTR and recent MacOS, hence why they are disabled elsewhere.

        * TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * fast/text/user-installed-fonts/extended-character-expected.html: Added.
        * fast/text/user-installed-fonts/extended-character-with-user-font-expected-mismatch.html: Added.
        * fast/text/user-installed-fonts/extended-character-with-user-font.html: Added.
        * fast/text/user-installed-fonts/extended-character.html: Added.

2019-07-18  Truitt Savell  <tsavell@apple.com>

        Rebaseline imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering.html
        https://bugs.webkit.org/show_bug.cgi?id=199839

        Unreviewed test gardening.

        * platform/ios/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt:

2019-07-17  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port

        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-07-17  Robin Morisset  <rmorisset@apple.com>

        [WHLSL] The lexer should not choke on a single '/'
        https://bugs.webkit.org/show_bug.cgi?id=199886

        Reviewed by Myles Maxfield.

        Added a new basic test of division.

        * webgpu/whlsl/float-math.html:

2019-07-17  Antoine Quint  <graouts@apple.com>

        Unable to bring up custom media controls on iOS for video.sina.cn
        https://bugs.webkit.org/show_bug.cgi?id=199889
        <rdar://problem/51883919>

        Reviewed by Dean Jackson.

        This test replicates the scenario found on video.sina.cn that caused the issue: a <video> element originally has the "controls"
        attribute and is not set to autoplay. This means the tap gesture recognizer is created to track a tap for the video to play. Then
        the "controls" attribute is removed and we dispatch a tap on the video which would previously have *not* caused a "click" event to
        eventually be dispatched on the <video> element since the tap gesture recognizer would call preventDefault(). With this patch applied,
        we get the "click" event because the tap gesture recognizer is disabled once the controls are no longer visible.

        * media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls-expected.txt: Added.
        * media/modern-media-controls/media-controller/ios/media-controller-allows-click-over-video-with-no-controls.html: Added.

2019-07-17  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Avoid lots of compositing backing store for offscreen position:fixed descendants
        https://bugs.webkit.org/show_bug.cgi?id=199819
        rdar://problem/51977416

        Reviewed by Zalan Bujtas.

        * compositing/layer-creation/fixed-position-change-out-of-view-in-view.html:
        * compositing/layer-creation/fixed-position-descendants-out-of-view-expected.txt: Added.
        * compositing/layer-creation/fixed-position-descendants-out-of-view.html: Added.
        * compositing/layer-creation/fixed-position-out-of-view.html:
        * platform/ios-wk2/fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt: Added.

2019-07-17  Alex Christensen  <achristensen@webkit.org>

        Add a runtime-disabled dialog element skeleton
        https://bugs.webkit.org/show_bug.cgi?id=199839

        Reviewed by Ryosuke Niwa.

        Rebaseline WK2 test expectations.

        * platform/ios-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:

2019-07-17  Alicia Boya García  <aboya@igalia.com>

        [GTK] Unreviewed test gardening
        https://bugs.webkit.org/show_bug.cgi?id=199878

        * platform/gtk/TestExpectations:
        * platform/gtk/compositing/overflow/textarea-scroll-touch-expected.txt:
        * platform/gtk/fast/events/shadow-event-path-2-expected.txt:
        * platform/gtk/fast/events/shadow-event-path-expected.txt:
        * platform/wpe/TestExpectations:

2019-07-17  Olivier Blin  <olivier.blin@softathome.com>

        Web Inspector: application/xml content not shown
        https://bugs.webkit.org/show_bug.cgi?id=199861

        Reviewed by Devin Rousso.

        * inspector/unit-tests/mimetype-utilities-expected.txt:
        * inspector/unit-tests/mimetype-utilities.html:
        Test for shouldTreatMIMETypeAsText.

2019-07-17  Daniel Bates  <dabates@apple.com>

        Typing into a cell in a Google Sheet lags behind by one character
        https://bugs.webkit.org/show_bug.cgi?id=199587
        <rdar://problem/51616845>

        Reviewed by Brent Fulgham.

        Add a test that enables the quirk and ensures that the DOM is up-to-date on expiration of a
        zero timer scheduled from keydown, keypress, keyup, and input.

        * fast/events/ios/dom-update-on-keydown-quirk-expected.txt: Added.
        * fast/events/ios/dom-update-on-keydown-quirk.html: Added.

2019-07-17  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Move WHLSL tests to their own folder
        https://bugs.webkit.org/show_bug.cgi?id=199838

        Reviewed by Robin Morisset.

        webgpu/whlsl-foo.html => webgpu/whlsl/foo.html

        * TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * webgpu/msl-harness-test.html:
        * webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html: Removed.
        * webgpu/whlsl-buffer-fragment-expected.html: Removed.
        * webgpu/whlsl-buffer-vertex-expected.html: Removed.
        * webgpu/whlsl-dereference-pointer-should-type-check-expected.html: Removed.
        * webgpu/whlsl-do-while-loop-continue-expected.html: Removed.
        * webgpu/whlsl-do-while-loop-expected.html: Removed.
        * webgpu/whlsl-dont-crash-parsing-enum-expected.html: Removed.
        * webgpu/whlsl-dot-expressions-expected.html: Removed.
        * webgpu/whlsl-ensure-proper-variable-lifetime-2-expected.html: Removed.
        * webgpu/whlsl-ensure-proper-variable-lifetime-3-expected.html: Removed.
        * webgpu/whlsl-ensure-proper-variable-lifetime-expected.html: Removed.
        * webgpu/whlsl-expected.html: Removed.
        * webgpu/whlsl-loops-expected.html: Removed.
        * webgpu/whlsl-nested-dot-expression-rvalue-expected.html: Removed.
        * webgpu/whlsl-return-local-variable-expected.html: Removed.
        * webgpu/whlsl-store-to-property-updates-properly-expected.html: Removed.
        * webgpu/whlsl-textures-load-expected.html: Removed.
        * webgpu/whlsl-textures-sample-expected.html: Removed.
        * webgpu/whlsl-while-loop-break-expected.html: Removed.
        * webgpu/whlsl-while-loop-continue-expected.html: Removed.
        * webgpu/whlsl-zero-initialize-values-2-expected.html: Removed.
        * webgpu/whlsl-zero-initialize-values-expected.html: Removed.
        * webgpu/whlsl/arbitrary-vertex-attribute-locations-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
        * webgpu/whlsl/arbitrary-vertex-attribute-locations.html: Renamed from LayoutTests/webgpu/whlsl-arbitrary-vertex-attribute-locations.html.
        * webgpu/whlsl/argument-evaluation-order-expected.txt: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order-expected.txt.
        * webgpu/whlsl/argument-evaluation-order.html: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order.html.
        * webgpu/whlsl/array-length-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests-expected.txt.
        * webgpu/whlsl/array-length-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests.html.
        * webgpu/whlsl/array-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests-expected.txt.
        * webgpu/whlsl/array-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests.html.
        * webgpu/whlsl/bad-add-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-add-expected.txt.
        * webgpu/whlsl/bad-add.html: Renamed from LayoutTests/webgpu/whlsl-bad-add.html.
        * webgpu/whlsl/bad-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-ander-expected.txt.
        * webgpu/whlsl/bad-ander.html: Renamed from LayoutTests/webgpu/whlsl-bad-ander.html.
        * webgpu/whlsl/bad-literals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-literals-expected.txt.
        * webgpu/whlsl/bad-literals.html: Renamed from LayoutTests/webgpu/whlsl-bad-literals.html.
        * webgpu/whlsl/bitwise-bool-ops-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops-expected.txt.
        * webgpu/whlsl/bitwise-bool-ops.html: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops.html.
        * webgpu/whlsl/bools-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bools-expected.txt.
        * webgpu/whlsl/bools.html: Renamed from LayoutTests/webgpu/whlsl-bools.html.
        * webgpu/whlsl/buffer-fragment-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-expected.html.
        * webgpu/whlsl/buffer-fragment.html: Renamed from LayoutTests/webgpu/whlsl-buffer-fragment.html.
        * webgpu/whlsl/buffer-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-buffer-length-expected.txt.
        * webgpu/whlsl/buffer-length.html: Renamed from LayoutTests/webgpu/whlsl-buffer-length.html.
        * webgpu/whlsl/buffer-vertex-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-lvalue-3-levels-expected.html.
        * webgpu/whlsl/buffer-vertex.html: Renamed from LayoutTests/webgpu/whlsl-buffer-vertex.html.
        * webgpu/whlsl/builtin-vectors-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2-expected.txt.
        * webgpu/whlsl/builtin-vectors-2.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2.html.
        * webgpu/whlsl/builtin-vectors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-expected.txt.
        * webgpu/whlsl/builtin-vectors.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors.html.
        * webgpu/whlsl/casts-expected.txt: Renamed from LayoutTests/webgpu/whlsl-casts-expected.txt.
        * webgpu/whlsl/casts.html: Renamed from LayoutTests/webgpu/whlsl-casts.html.
        * webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt.
        * webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html.
        * webgpu/whlsl/comment-parsing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-comment-parsing-expected.txt.
        * webgpu/whlsl/comment-parsing.html: Renamed from LayoutTests/webgpu/whlsl-comment-parsing.html.
        * webgpu/whlsl/compute-expected.txt: Renamed from LayoutTests/webgpu/whlsl-compute-expected.txt.
        * webgpu/whlsl/compute.html: Renamed from LayoutTests/webgpu/whlsl-compute.html.
        * webgpu/whlsl/copy-expected.txt: Renamed from LayoutTests/webgpu/whlsl-copy-expected.txt.
        * webgpu/whlsl/copy.html: Renamed from LayoutTests/webgpu/whlsl-copy.html.
        * webgpu/whlsl/dereference-ordering-expected.txt: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering-expected.txt.
        * webgpu/whlsl/dereference-ordering.html: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering.html.
        * webgpu/whlsl/dereference-pointer-should-type-check-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-lvalue-expected.html.
        * webgpu/whlsl/dereference-pointer-should-type-check.html: Renamed from LayoutTests/webgpu/whlsl-dereference-pointer-should-type-check.html.
        * webgpu/whlsl/do-while-loop-break-expected.html: Copied from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
        * webgpu/whlsl/do-while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break.html.
        * webgpu/whlsl/do-while-loop-continue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/getter-expected.html.
        * webgpu/whlsl/do-while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-continue.html.
        * webgpu/whlsl/do-while-loop-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html.
        * webgpu/whlsl/do-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop.html.
        * webgpu/whlsl/dont-crash-parsing-enum-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-expected.html.
        * webgpu/whlsl/dont-crash-parsing-enum.html: Renamed from LayoutTests/webgpu/whlsl-dont-crash-parsing-enum.html.
        * webgpu/whlsl/dot-expressions-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html.
        * webgpu/whlsl/dot-expressions.html: Renamed from LayoutTests/webgpu/whlsl-dot-expressions.html.
        * webgpu/whlsl/double-not-expected.txt: Renamed from LayoutTests/webgpu/whlsl-double-not-expected.txt.
        * webgpu/whlsl/double-not.html: Renamed from LayoutTests/webgpu/whlsl-double-not.html.
        * webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt.
        * webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html.
        * webgpu/whlsl/duplicates-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicates-expected.txt.
        * webgpu/whlsl/duplicates.html: Renamed from LayoutTests/webgpu/whlsl-duplicates.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-2-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-expected.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-2.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-2.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-3-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-getter-expected.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-3.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-3.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime.html.
        * webgpu/whlsl/enum-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests-expected.txt.
        * webgpu/whlsl/enum-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests.html.
        * webgpu/whlsl/equality-expected.txt: Renamed from LayoutTests/webgpu/whlsl-equality-expected.txt.
        * webgpu/whlsl/equality.html: Renamed from LayoutTests/webgpu/whlsl-equality.html.
        * webgpu/whlsl/float-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-float-math-expected.txt.
        * webgpu/whlsl/float-math.html: Renamed from LayoutTests/webgpu/whlsl-float-math.html.
        * webgpu/whlsl/getter-setter-type-expected.txt: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type-expected.txt.
        * webgpu/whlsl/getter-setter-type.html: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type.html.
        * webgpu/whlsl/huge-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-huge-array-expected.txt.
        * webgpu/whlsl/huge-array.html: Renamed from LayoutTests/webgpu/whlsl-huge-array.html.
        * webgpu/whlsl/if-statement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-if-statement-expected.txt.
        * webgpu/whlsl/if-statement.html: Renamed from LayoutTests/webgpu/whlsl-if-statement.html.
        * webgpu/whlsl/increment-decrement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-increment-decrement-expected.txt.
        * webgpu/whlsl/increment-decrement.html: Renamed from LayoutTests/webgpu/whlsl-increment-decrement.html.
        * webgpu/whlsl/index-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-ander-expected.txt.
        * webgpu/whlsl/index-ander.html: Renamed from LayoutTests/webgpu/whlsl-index-ander.html.
        * webgpu/whlsl/index-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter-expected.txt.
        * webgpu/whlsl/index-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter.html.
        * webgpu/whlsl/index-setter-getter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter-expected.txt.
        * webgpu/whlsl/index-setter-getter.html: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter.html.
        * webgpu/whlsl/int-bit-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-bit-math-expected.txt.
        * webgpu/whlsl/int-bit-math.html: Renamed from LayoutTests/webgpu/whlsl-int-bit-math.html.
        * webgpu/whlsl/int-literal-compare-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare-expected.txt.
        * webgpu/whlsl/int-literal-compare.html: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare.html.
        * webgpu/whlsl/js/test-harness.js: Renamed from LayoutTests/webgpu/js/whlsl-test-harness.js.
        (isScalar):
        (convertTypeToArrayType):
        (convertTypeToWHLSLType):
        (whlslArgumentType):
        (convertToWHLSLOutputType):
        (convertToWHLSLInputType):
        (WebGPUUnsupportedError):
        (Data):
        (Data.prototype.async.getArrayBuffer):
        (Data.prototype.get type):
        (Data.prototype.get isBuffer):
        (Data.prototype.get buffer):
        (Data.prototype.get byteLength):
        (Harness):
        (Harness.prototype.async.requestDevice):
        (Harness.prototype.set isWHLSL):
        (Harness.prototype.get isWHLSL):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.callVoidFunction):
        (Harness.prototype.async.checkCompileFail):
        (Harness.prototype.get device):
        (Harness.prototype._clearResults):
        (Harness.prototype._setUpArguments):
        (Harness.prototype.async._callFunction):
        (makeBool):
        (makeInt):
        (makeUchar):
        (makeUint):
        (makeFloat):
        (makeFloat4):
        (makeFloat4x4):
        (processArrays):
        (async.callBoolFunction):
        (async.callIntFunction):
        (async.callUcharFunction):
        (async.callUintFunction):
        (async.callFloatFunction):
        (async.callFloat4Function):
        (async.callFloat4x4Function):
        (async.checkFail):
        (callVoidFunction):
        (const.webGPUPromiseTest):
        * webgpu/whlsl/logical-negation-expected.txt: Renamed from LayoutTests/webgpu/whlsl-logical-negation-expected.txt.
        * webgpu/whlsl/logical-negation.html: Renamed from LayoutTests/webgpu/whlsl-logical-negation.html.
        * webgpu/whlsl/loops-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-break-expected.html.
        * webgpu/whlsl/loops-break.html: Renamed from LayoutTests/webgpu/whlsl-loops-break.html.
        * webgpu/whlsl/loops-continue-expected.html: Copied from LayoutTests/webgpu/whlsl-nested-loop-expected.html.
        * webgpu/whlsl/loops-continue.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue.html.
        * webgpu/whlsl/loops-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html.
        * webgpu/whlsl/loops-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests-expected.txt.
        * webgpu/whlsl/loops-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests.html.
        * webgpu/whlsl/loops.html: Renamed from LayoutTests/webgpu/whlsl-loops.html.
        * webgpu/whlsl/lots-of-local-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables-expected.txt.
        * webgpu/whlsl/lots-of-local-variables.html: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables.html.
        * webgpu/whlsl/lvalues-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lvalues-expected.txt.
        * webgpu/whlsl/lvalues.html: Renamed from LayoutTests/webgpu/whlsl-lvalues.html.
        * webgpu/whlsl/make-array-ref-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests-expected.txt.
        * webgpu/whlsl/make-array-ref-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests.html.
        * webgpu/whlsl/make-array-reference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-reference-expected.txt.
        * webgpu/whlsl/make-array-reference.html: Renamed from LayoutTests/webgpu/whlsl-make-array-reference.html.
        * webgpu/whlsl/matrices-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests-expected.txt.
        * webgpu/whlsl/matrices-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests.html.
        * webgpu/whlsl/matrix-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-2-expected.txt.
        * webgpu/whlsl/matrix-2.html: Renamed from LayoutTests/webgpu/whlsl-matrix-2.html.
        * webgpu/whlsl/matrix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-expected.txt.
        * webgpu/whlsl/matrix-memory-layout-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout-expected.txt.
        * webgpu/whlsl/matrix-memory-layout.html: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout.html.
        * webgpu/whlsl/matrix.html: Renamed from LayoutTests/webgpu/whlsl-matrix.html.
        * webgpu/whlsl/nested-dot-expression-rvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-expected.html.
        * webgpu/whlsl/nested-dot-expression-rvalue.html: Renamed from LayoutTests/webgpu/whlsl-nested-dot-expression-rvalue.html.
        * webgpu/whlsl/nested-loop-expected.html: Copied from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
        * webgpu/whlsl/nested-loop.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop.html.
        * webgpu/whlsl/null-arg-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-arg-expected.txt.
        * webgpu/whlsl/null-arg.html: Renamed from LayoutTests/webgpu/whlsl-null-arg.html.
        * webgpu/whlsl/null-array-ref.html: Renamed from LayoutTests/webgpu/whlsl-null-array-ref.html.
        * webgpu/whlsl/null-dereference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-dereference-expected.txt.
        * webgpu/whlsl/null-dereference.html: Renamed from LayoutTests/webgpu/whlsl-null-dereference.html.
        * webgpu/whlsl/oob-access-expected.txt: Renamed from LayoutTests/webgpu/whlsl-oob-access-expected.txt.
        * webgpu/whlsl/oob-access.html: Renamed from LayoutTests/webgpu/whlsl-oob-access.html.
        * webgpu/whlsl/operator-overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-operator-overload-expected.txt.
        * webgpu/whlsl/operator-overload.html: Renamed from LayoutTests/webgpu/whlsl-operator-overload.html.
        * webgpu/whlsl/overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-overload-expected.txt.
        * webgpu/whlsl/overload.html: Renamed from LayoutTests/webgpu/whlsl-overload.html.
        * webgpu/whlsl/override-subscript-expected.txt: Renamed from LayoutTests/webgpu/whlsl-override-subscript-expected.txt.
        * webgpu/whlsl/override-subscript.html: Renamed from LayoutTests/webgpu/whlsl-override-subscript.html.
        * webgpu/whlsl/plus-equals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-plus-equals-expected.txt.
        * webgpu/whlsl/plus-equals.html: Renamed from LayoutTests/webgpu/whlsl-plus-equals.html.
        * webgpu/whlsl/pointer-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests-expected.txt.
        * webgpu/whlsl/pointer-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests.html.
        * webgpu/whlsl/postfix-prefix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix-expected.txt.
        * webgpu/whlsl/postfix-prefix.html: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix.html.
        * webgpu/whlsl/propertyresolver/ander-abstract-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue.html.
        * webgpu/whlsl/propertyresolver/ander-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-expected.html.
        * webgpu/whlsl/propertyresolver/ander-lvalue-3-levels-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue-3-levels-expected.html.
        * webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue-3-levels.html.
        * webgpu/whlsl/propertyresolver/ander-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/ander-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-lvalue.html.
        * webgpu/whlsl/propertyresolver/ander.html: Renamed from LayoutTests/webgpu/propertyresolver/ander.html.
        * webgpu/whlsl/propertyresolver/getter-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/getter-expected.html.
        * webgpu/whlsl/propertyresolver/getter.html: Renamed from LayoutTests/webgpu/propertyresolver/getter.html.
        * webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-abstract-lvalue.html.
        * webgpu/whlsl/propertyresolver/indexer-ander-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue.html.
        * webgpu/whlsl/propertyresolver/indexer-ander.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-ander.html.
        * webgpu/whlsl/propertyresolver/indexer-getter-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-getter-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-getter.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-getter.html.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue.html.
        * webgpu/whlsl/propertyresolver/indexer-setter-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-setter-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/indexer-setter-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-lvalue.html.
        * webgpu/whlsl/propertyresolver/indexer-setter.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter.html.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Copied from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue.html.
        * webgpu/whlsl/propertyresolver/setter-lvalue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/setter-lvalue-expected.html.
        * webgpu/whlsl/propertyresolver/setter-lvalue.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-lvalue.html.
        * webgpu/whlsl/read-modify-write-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-expected.txt.
        * webgpu/whlsl/read-modify-write-high-zombies-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies-expected.txt.
        * webgpu/whlsl/read-modify-write-high-zombies.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies.html.
        * webgpu/whlsl/read-modify-write.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write.html.
        * webgpu/whlsl/recursive-structs-expected.txt: Renamed from LayoutTests/webgpu/whlsl-recursive-structs-expected.txt.
        * webgpu/whlsl/recursive-structs.html: Renamed from LayoutTests/webgpu/whlsl-recursive-structs.html.
        * webgpu/whlsl/return-local-variable-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/indexer-setter-lvalue-expected.html.
        * webgpu/whlsl/return-local-variable.html: Renamed from LayoutTests/webgpu/whlsl-return-local-variable.html.
        * webgpu/whlsl/return-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests-expected.txt.
        * webgpu/whlsl/return-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests.html.
        * webgpu/whlsl/setter-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests-expected.txt.
        * webgpu/whlsl/setter-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests.html.
        * webgpu/whlsl/simple-arrays-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-arrays-expected.txt.
        * webgpu/whlsl/simple-arrays.html: Renamed from LayoutTests/webgpu/whlsl-simple-arrays.html.
        * webgpu/whlsl/simple-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter-expected.txt.
        * webgpu/whlsl/simple-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter.html.
        * webgpu/whlsl/simple-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-tests-expected.txt.
        * webgpu/whlsl/simple-tests.html: Renamed from LayoutTests/webgpu/whlsl-simple-tests.html.
        * webgpu/whlsl/simple-while-loop-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop-expected.txt.
        * webgpu/whlsl/simple-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop.html.
        * webgpu/whlsl/store-null-expected.txt: Renamed from LayoutTests/webgpu/whlsl-store-null-expected.txt.
        * webgpu/whlsl/store-null.html: Renamed from LayoutTests/webgpu/whlsl-store-null.html.
        * webgpu/whlsl/store-to-property-updates-properly-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html.
        * webgpu/whlsl/store-to-property-updates-properly.html: Renamed from LayoutTests/webgpu/whlsl-store-to-property-updates-properly.html.
        * webgpu/whlsl/struct-expected.txt: Renamed from LayoutTests/webgpu/whlsl-struct-expected.txt.
        * webgpu/whlsl/struct.html: Renamed from LayoutTests/webgpu/whlsl-struct.html.
        * webgpu/whlsl/switch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-switch-expected.txt.
        * webgpu/whlsl/switch.html: Renamed from LayoutTests/webgpu/whlsl-switch.html.
        * webgpu/whlsl/ternary-spec-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test-expected.txt.
        * webgpu/whlsl/ternary-spec-test.html: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test.html.
        * webgpu/whlsl/test-harness-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-test-harness-test-expected.txt.
        * webgpu/whlsl/test-harness-test.html: Renamed from LayoutTests/webgpu/whlsl-test-harness-test.html.
        * webgpu/whlsl/textures-getdimensions-expected.txt: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions-expected.txt.
        * webgpu/whlsl/textures-getdimensions.html: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions.html.
        * webgpu/whlsl/textures-load-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-expected.html.
        * webgpu/whlsl/textures-load.html: Renamed from LayoutTests/webgpu/whlsl-textures-load.html.
        * webgpu/whlsl/textures-sample-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/setter-lvalue-expected.html.
        * webgpu/whlsl/textures-sample.html: Renamed from LayoutTests/webgpu/whlsl-textures-sample.html.
        * webgpu/whlsl/two-dimensional-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array-expected.txt.
        * webgpu/whlsl/two-dimensional-array.html: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array.html.
        * webgpu/whlsl/type-mismatch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-type-mismatch-expected.txt.
        * webgpu/whlsl/type-mismatch.html: Renamed from LayoutTests/webgpu/whlsl-type-mismatch.html.
        * webgpu/whlsl/uint-bitwise-expected.txt: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise-expected.txt.
        * webgpu/whlsl/uint-bitwise.html: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise.html.
        * webgpu/whlsl/use-undefined-variable-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2-expected.txt.
        * webgpu/whlsl/use-undefined-variable-2.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2.html.
        * webgpu/whlsl/use-undefined-variable-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-expected.txt.
        * webgpu/whlsl/use-undefined-variable.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable.html.
        * webgpu/whlsl/variable-shadowing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing-expected.txt.
        * webgpu/whlsl/variable-shadowing.html: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing.html.
        * webgpu/whlsl/vector-syntax-expected.txt: Renamed from LayoutTests/webgpu/whlsl-vector-syntax-expected.txt.
        * webgpu/whlsl/vector-syntax.html: Renamed from LayoutTests/webgpu/whlsl-vector-syntax.html.
        * webgpu/whlsl/while-loop-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
        * webgpu/whlsl/while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-break.html.
        * webgpu/whlsl/while-loop-continue-expected.html: Copied from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
        * webgpu/whlsl/while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-continue.html.
        * webgpu/whlsl/whlsl-expected.html: Renamed from LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue-expected.html.
        * webgpu/whlsl/whlsl.html: Renamed from LayoutTests/webgpu/whlsl.html.
        * webgpu/whlsl/wrong-argument-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length-expected.txt.
        * webgpu/whlsl/wrong-argument-length.html: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length.html.
        * webgpu/whlsl/wrong-types-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-types-expected.txt.
        * webgpu/whlsl/wrong-types.html: Renamed from LayoutTests/webgpu/whlsl-wrong-types.html.
        * webgpu/whlsl/zero-initialize-values-2-expected.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop-expected.html.
        * webgpu/whlsl/zero-initialize-values-2.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-2.html.
        * webgpu/whlsl/zero-initialize-values-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue-expected.html.
        * webgpu/whlsl/zero-initialize-values.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values.html.

2019-07-17  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r247501.

        Introduced 100 failures on Mojave WK2.

        Reverted changeset:

        "[WHLSL] Move WHLSL tests to their own folder"
        https://bugs.webkit.org/show_bug.cgi?id=199838
        https://trac.webkit.org/changeset/247501

2019-07-17  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port

        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-07-17  Rob Buis  <rbuis@igalia.com>

        Add referrerpolicy attribute support for <script> elements
        https://bugs.webkit.org/show_bug.cgi?id=185550

        Reviewed by Youenn Fablet.

        Add tests for scripts with various referrerpolicy attribute values.

        * http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/same-origin.html: Added.
        * http/tests/referrer-policy-script/no-referrer/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/no-referrer/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/no-referrer/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/no-referrer/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/no-referrer/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/no-referrer/same-origin.html: Added.
        * http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/origin-when-cross-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/origin-when-cross-origin/same-origin.html: Added.
        * http/tests/referrer-policy-script/origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/origin/same-origin.html: Added.
        * http/tests/referrer-policy-script/same-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/same-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/same-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/same-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/same-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/same-origin/same-origin.html: Added.
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/same-origin.html: Added.
        * http/tests/referrer-policy-script/strict-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/strict-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/strict-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/strict-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/strict-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/strict-origin/same-origin.html: Added.
        * http/tests/referrer-policy-script/unsafe-url/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-script/unsafe-url/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-script/unsafe-url/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-script/unsafe-url/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-script/unsafe-url/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-script/unsafe-url/same-origin.html: Added.
        * http/tests/referrer-policy/resources/script.php: Added.
        * platform/win/TestExpectations:

2019-07-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Move WHLSL tests to their own folder
        https://bugs.webkit.org/show_bug.cgi?id=199838

        Reviewed by Robin Morisset.

        webgpu/whlsl-foo.html => webgpu/whlsl/foo.html

        * TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * webgpu/whlsl/arbitrary-vertex-attribute-locations-expected.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-continue-expected.html.
        * webgpu/whlsl/arbitrary-vertex-attribute-locations.html: Renamed from LayoutTests/webgpu/whlsl-arbitrary-vertex-attribute-locations.html.
        * webgpu/whlsl/argument-evaluation-order-expected.txt: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order-expected.txt.
        * webgpu/whlsl/argument-evaluation-order.html: Renamed from LayoutTests/webgpu/whlsl-argument-evaluation-order.html.
        * webgpu/whlsl/array-length-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests-expected.txt.
        * webgpu/whlsl/array-length-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-length-spec-tests.html.
        * webgpu/whlsl/array-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests-expected.txt.
        * webgpu/whlsl/array-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-array-spec-tests.html.
        * webgpu/whlsl/bad-add-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-add-expected.txt.
        * webgpu/whlsl/bad-add.html: Renamed from LayoutTests/webgpu/whlsl-bad-add.html.
        * webgpu/whlsl/bad-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-ander-expected.txt.
        * webgpu/whlsl/bad-ander.html: Renamed from LayoutTests/webgpu/whlsl-bad-ander.html.
        * webgpu/whlsl/bad-literals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bad-literals-expected.txt.
        * webgpu/whlsl/bad-literals.html: Renamed from LayoutTests/webgpu/whlsl-bad-literals.html.
        * webgpu/whlsl/bitwise-bool-ops-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops-expected.txt.
        * webgpu/whlsl/bitwise-bool-ops.html: Renamed from LayoutTests/webgpu/whlsl-bitwise-bool-ops.html.
        * webgpu/whlsl/bools-expected.txt: Renamed from LayoutTests/webgpu/whlsl-bools-expected.txt.
        * webgpu/whlsl/bools.html: Renamed from LayoutTests/webgpu/whlsl-bools.html.
        * webgpu/whlsl/buffer-fragment-expected.html: Renamed from LayoutTests/webgpu/whlsl-textures-sample-expected.html.
        * webgpu/whlsl/buffer-fragment.html: Renamed from LayoutTests/webgpu/whlsl-buffer-fragment.html.
        * webgpu/whlsl/buffer-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-expected.txt.
        * webgpu/whlsl/buffer-length.html: Renamed from LayoutTests/webgpu/whlsl-buffer-length.html.
        * webgpu/whlsl/buffer-vertex-expected.html: Renamed from LayoutTests/webgpu/whlsl-textures-load-expected.html.
        * webgpu/whlsl/buffer-vertex.html: Renamed from LayoutTests/webgpu/whlsl-buffer-vertex.html.
        * webgpu/whlsl/builtin-vectors-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2-expected.txt.
        * webgpu/whlsl/builtin-vectors-2.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-2.html.
        * webgpu/whlsl/builtin-vectors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors-expected.txt.
        * webgpu/whlsl/builtin-vectors.html: Renamed from LayoutTests/webgpu/whlsl-builtin-vectors.html.
        * webgpu/whlsl/casts-expected.txt: Renamed from LayoutTests/webgpu/whlsl-casts-expected.txt.
        * webgpu/whlsl/casts.html: Renamed from LayoutTests/webgpu/whlsl-casts.html.
        * webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2-expected.txt.
        * webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html.
        * webgpu/whlsl/comment-parsing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-comment-parsing-expected.txt.
        * webgpu/whlsl/comment-parsing.html: Renamed from LayoutTests/webgpu/whlsl-comment-parsing.html.
        * webgpu/whlsl/compute-expected.txt: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array-expected.txt.
        * webgpu/whlsl/compute.html: Renamed from LayoutTests/webgpu/whlsl-compute.html.
        * webgpu/whlsl/copy-expected.txt: Renamed from LayoutTests/webgpu/whlsl-copy-expected.txt.
        * webgpu/whlsl/copy.html: Renamed from LayoutTests/webgpu/whlsl-copy.html.
        * webgpu/whlsl/dereference-ordering-expected.txt: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering-expected.txt.
        * webgpu/whlsl/dereference-ordering.html: Renamed from LayoutTests/webgpu/whlsl-dereference-ordering.html.
        * webgpu/whlsl/dereference-pointer-should-type-check-expected.html: Renamed from LayoutTests/webgpu/whlsl-store-to-property-updates-properly-expected.html.
        * webgpu/whlsl/dereference-pointer-should-type-check.html: Renamed from LayoutTests/webgpu/whlsl-dereference-pointer-should-type-check.html.
        * webgpu/whlsl/do-while-loop-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-expected.html.
        * webgpu/whlsl/do-while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break.html.
        * webgpu/whlsl/do-while-loop-continue-expected.html: Renamed from LayoutTests/webgpu/whlsl-return-local-variable-expected.html.
        * webgpu/whlsl/do-while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-continue.html.
        * webgpu/whlsl/do-while-loop-expected.html: Renamed from LayoutTests/webgpu/whlsl-nested-dot-expression-rvalue-expected.html.
        * webgpu/whlsl/do-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop.html.
        * webgpu/whlsl/dont-crash-parsing-enum-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-expected.html.
        * webgpu/whlsl/dont-crash-parsing-enum.html: Renamed from LayoutTests/webgpu/whlsl-dont-crash-parsing-enum.html.
        * webgpu/whlsl/dot-expressions-expected.html: Renamed from LayoutTests/webgpu/whlsl-expected.html.
        * webgpu/whlsl/dot-expressions.html: Renamed from LayoutTests/webgpu/whlsl-dot-expressions.html.
        * webgpu/whlsl/double-not-expected.txt: Renamed from LayoutTests/webgpu/whlsl-double-not-expected.txt.
        * webgpu/whlsl/double-not.html: Renamed from LayoutTests/webgpu/whlsl-double-not.html.
        * webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors-expected.txt: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions-expected.txt.
        * webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html.
        * webgpu/whlsl/duplicates-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicates-expected.txt.
        * webgpu/whlsl/duplicates.html: Renamed from LayoutTests/webgpu/whlsl-duplicates.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-2-expected.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-expected.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-2.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-2.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-3-expected.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-3-expected.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-3.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-3.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime-expected.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime-2-expected.html.
        * webgpu/whlsl/ensure-proper-variable-lifetime.html: Renamed from LayoutTests/webgpu/whlsl-ensure-proper-variable-lifetime.html.
        * webgpu/whlsl/enum-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests-expected.txt.
        * webgpu/whlsl/enum-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-enum-spec-tests.html.
        * webgpu/whlsl/equality-expected.txt: Renamed from LayoutTests/webgpu/whlsl-equality-expected.txt.
        * webgpu/whlsl/equality.html: Renamed from LayoutTests/webgpu/whlsl-equality.html.
        * webgpu/whlsl/expected.html: Renamed from LayoutTests/webgpu/whlsl-dot-expressions-expected.html.
        * webgpu/whlsl/float-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-float-math-expected.txt.
        * webgpu/whlsl/float-math.html: Renamed from LayoutTests/webgpu/whlsl-float-math.html.
        * webgpu/whlsl/getter-setter-type-expected.txt: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type-expected.txt.
        * webgpu/whlsl/getter-setter-type.html: Renamed from LayoutTests/webgpu/whlsl-getter-setter-type.html.
        * webgpu/whlsl/huge-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-arrays-expected.txt.
        * webgpu/whlsl/huge-array.html: Renamed from LayoutTests/webgpu/whlsl-huge-array.html.
        * webgpu/whlsl/if-statement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-if-statement-expected.txt.
        * webgpu/whlsl/if-statement.html: Renamed from LayoutTests/webgpu/whlsl-if-statement.html.
        * webgpu/whlsl/increment-decrement-expected.txt: Renamed from LayoutTests/webgpu/whlsl-increment-decrement-expected.txt.
        * webgpu/whlsl/increment-decrement.html: Renamed from LayoutTests/webgpu/whlsl-increment-decrement.html.
        * webgpu/whlsl/index-ander-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-ander-expected.txt.
        * webgpu/whlsl/index-ander.html: Renamed from LayoutTests/webgpu/whlsl-index-ander.html.
        * webgpu/whlsl/index-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter-expected.txt.
        * webgpu/whlsl/index-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-index-getter-setter.html.
        * webgpu/whlsl/index-setter-getter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter-expected.txt.
        * webgpu/whlsl/index-setter-getter.html: Renamed from LayoutTests/webgpu/whlsl-index-setter-getter.html.
        * webgpu/whlsl/int-bit-math-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-bit-math-expected.txt.
        * webgpu/whlsl/int-bit-math.html: Renamed from LayoutTests/webgpu/whlsl-int-bit-math.html.
        * webgpu/whlsl/int-literal-compare-expected.txt: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare-expected.txt.
        * webgpu/whlsl/int-literal-compare.html: Renamed from LayoutTests/webgpu/whlsl-int-literal-compare.html.
        * webgpu/whlsl/logical-negation-expected.txt: Renamed from LayoutTests/webgpu/whlsl-logical-negation-expected.txt.
        * webgpu/whlsl/logical-negation.html: Renamed from LayoutTests/webgpu/whlsl-logical-negation.html.
        * webgpu/whlsl/loops-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-2-expected.html.
        * webgpu/whlsl/loops-break.html: Renamed from LayoutTests/webgpu/whlsl-loops-break.html.
        * webgpu/whlsl/loops-continue-expected.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-break-expected.html.
        * webgpu/whlsl/loops-continue.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue.html.
        * webgpu/whlsl/loops-expected.html: Renamed from LayoutTests/webgpu/whlsl-dont-crash-parsing-enum-expected.html.
        * webgpu/whlsl/loops-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests-expected.txt.
        * webgpu/whlsl/loops-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-loops-spec-tests.html.
        * webgpu/whlsl/loops.html: Renamed from LayoutTests/webgpu/whlsl-loops.html.
        * webgpu/whlsl/lots-of-local-variables-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables-expected.txt.
        * webgpu/whlsl/lots-of-local-variables.html: Renamed from LayoutTests/webgpu/whlsl-lots-of-local-variables.html.
        * webgpu/whlsl/lvalues-expected.txt: Renamed from LayoutTests/webgpu/whlsl-lvalues-expected.txt.
        * webgpu/whlsl/lvalues.html: Renamed from LayoutTests/webgpu/whlsl-lvalues.html.
        * webgpu/whlsl/make-array-ref-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests-expected.txt.
        * webgpu/whlsl/make-array-ref-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-make-array-ref-spec-tests.html.
        * webgpu/whlsl/make-array-reference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies-expected.txt.
        * webgpu/whlsl/make-array-reference.html: Renamed from LayoutTests/webgpu/whlsl-make-array-reference.html.
        * webgpu/whlsl/matrices-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests-expected.txt.
        * webgpu/whlsl/matrices-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-matrices-spec-tests.html.
        * webgpu/whlsl/matrix-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-expected.txt.
        * webgpu/whlsl/matrix-2.html: Renamed from LayoutTests/webgpu/whlsl-matrix-2.html.
        * webgpu/whlsl/matrix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-oob-access-expected.txt.
        * webgpu/whlsl/matrix-memory-layout-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-dereference-expected.txt.
        * webgpu/whlsl/matrix-memory-layout.html: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout.html.
        * webgpu/whlsl/matrix.html: Renamed from LayoutTests/webgpu/whlsl-matrix.html.
        * webgpu/whlsl/nested-dot-expression-rvalue-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-expected.html.
        * webgpu/whlsl/nested-dot-expression-rvalue.html: Renamed from LayoutTests/webgpu/whlsl-nested-dot-expression-rvalue.html.
        * webgpu/whlsl/nested-loop-expected.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop-expected.html.
        * webgpu/whlsl/nested-loop.html: Renamed from LayoutTests/webgpu/whlsl-nested-loop.html.
        * webgpu/whlsl/null-arg-expected.txt: Renamed from LayoutTests/webgpu/whlsl-null-arg-expected.txt.
        * webgpu/whlsl/null-arg.html: Renamed from LayoutTests/webgpu/whlsl-null-arg.html.
        * webgpu/whlsl/null-array-ref.html: Renamed from LayoutTests/webgpu/whlsl-null-array-ref.html.
        * webgpu/whlsl/null-dereference-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-memory-layout-expected.txt.
        * webgpu/whlsl/null-dereference.html: Renamed from LayoutTests/webgpu/whlsl-null-dereference.html.
        * webgpu/whlsl/oob-access-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-expected.txt.
        * webgpu/whlsl/oob-access.html: Renamed from LayoutTests/webgpu/whlsl-oob-access.html.
        * webgpu/whlsl/operator-overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-operator-overload-expected.txt.
        * webgpu/whlsl/operator-overload.html: Renamed from LayoutTests/webgpu/whlsl-operator-overload.html.
        * webgpu/whlsl/overload-expected.txt: Renamed from LayoutTests/webgpu/whlsl-overload-expected.txt.
        * webgpu/whlsl/overload.html: Renamed from LayoutTests/webgpu/whlsl-overload.html.
        * webgpu/whlsl/override-subscript-expected.txt: Renamed from LayoutTests/webgpu/whlsl-override-subscript-expected.txt.
        * webgpu/whlsl/override-subscript.html: Renamed from LayoutTests/webgpu/whlsl-override-subscript.html.
        * webgpu/whlsl/plus-equals-expected.txt: Renamed from LayoutTests/webgpu/whlsl-plus-equals-expected.txt.
        * webgpu/whlsl/plus-equals.html: Renamed from LayoutTests/webgpu/whlsl-plus-equals.html.
        * webgpu/whlsl/pointer-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests-expected.txt.
        * webgpu/whlsl/pointer-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-pointer-spec-tests.html.
        * webgpu/whlsl/postfix-prefix-expected.txt: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix-expected.txt.
        * webgpu/whlsl/postfix-prefix.html: Renamed from LayoutTests/webgpu/whlsl-postfix-prefix.html.
        * webgpu/whlsl/read-modify-write-expected.txt: Renamed from LayoutTests/webgpu/whlsl-matrix-2-expected.txt.
        * webgpu/whlsl/read-modify-write-high-zombies-expected.txt: Renamed from LayoutTests/webgpu/whlsl-make-array-reference-expected.txt.
        * webgpu/whlsl/read-modify-write-high-zombies.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write-high-zombies.html.
        * webgpu/whlsl/read-modify-write.html: Renamed from LayoutTests/webgpu/whlsl-read-modify-write.html.
        * webgpu/whlsl/recursive-structs-expected.txt: Renamed from LayoutTests/webgpu/whlsl-recursive-structs-expected.txt.
        * webgpu/whlsl/recursive-structs.html: Renamed from LayoutTests/webgpu/whlsl-recursive-structs.html.
        * webgpu/whlsl/return-local-variable-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-continue-expected.html.
        * webgpu/whlsl/return-local-variable.html: Renamed from LayoutTests/webgpu/whlsl-return-local-variable.html.
        * webgpu/whlsl/return-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests-expected.txt.
        * webgpu/whlsl/return-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-return-spec-tests.html.
        * webgpu/whlsl/setter-spec-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests-expected.txt.
        * webgpu/whlsl/setter-spec-tests.html: Renamed from LayoutTests/webgpu/whlsl-setter-spec-tests.html.
        * webgpu/whlsl/simple-arrays-expected.txt: Renamed from LayoutTests/webgpu/whlsl-huge-array-expected.txt.
        * webgpu/whlsl/simple-arrays.html: Renamed from LayoutTests/webgpu/whlsl-simple-arrays.html.
        * webgpu/whlsl/simple-getter-setter-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter-expected.txt.
        * webgpu/whlsl/simple-getter-setter.html: Renamed from LayoutTests/webgpu/whlsl-simple-getter-setter.html.
        * webgpu/whlsl/simple-tests-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-tests-expected.txt.
        * webgpu/whlsl/simple-tests.html: Renamed from LayoutTests/webgpu/whlsl-simple-tests.html.
        * webgpu/whlsl/simple-while-loop-expected.txt: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop-expected.txt.
        * webgpu/whlsl/simple-while-loop.html: Renamed from LayoutTests/webgpu/whlsl-simple-while-loop.html.
        * webgpu/whlsl/store-null-expected.txt: Renamed from LayoutTests/webgpu/whlsl-store-null-expected.txt.
        * webgpu/whlsl/store-null.html: Renamed from LayoutTests/webgpu/whlsl-store-null.html.
        * webgpu/whlsl/store-to-property-updates-properly-expected.html: Renamed from LayoutTests/webgpu/whlsl-dereference-pointer-should-type-check-expected.html.
        * webgpu/whlsl/store-to-property-updates-properly.html: Renamed from LayoutTests/webgpu/whlsl-store-to-property-updates-properly.html.
        * webgpu/whlsl/struct-expected.txt: Renamed from LayoutTests/webgpu/whlsl-struct-expected.txt.
        * webgpu/whlsl/struct.html: Renamed from LayoutTests/webgpu/whlsl-struct.html.
        * webgpu/whlsl/switch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-switch-expected.txt.
        * webgpu/whlsl/switch.html: Renamed from LayoutTests/webgpu/whlsl-switch.html.
        * webgpu/whlsl/ternary-spec-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test-expected.txt.
        * webgpu/whlsl/ternary-spec-test.html: Renamed from LayoutTests/webgpu/whlsl-ternary-spec-test.html.
        * webgpu/whlsl/test-harness-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-test-harness-test-expected.txt.
        * webgpu/whlsl/test-harness-test.html: Renamed from LayoutTests/webgpu/whlsl-test-harness-test.html.
        * webgpu/whlsl/textures-getdimensions-expected.txt: Renamed from LayoutTests/webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt.
        * webgpu/whlsl/textures-getdimensions.html: Renamed from LayoutTests/webgpu/whlsl-textures-getdimensions.html.
        * webgpu/whlsl/textures-load-expected.html: Renamed from LayoutTests/webgpu/whlsl-buffer-vertex-expected.html.
        * webgpu/whlsl/textures-load.html: Renamed from LayoutTests/webgpu/whlsl-textures-load.html.
        * webgpu/whlsl/textures-sample-expected.html: Renamed from LayoutTests/webgpu/whlsl-buffer-fragment-expected.html.
        * webgpu/whlsl/textures-sample.html: Renamed from LayoutTests/webgpu/whlsl-textures-sample.html.
        * webgpu/whlsl/two-dimensional-array-expected.txt: Renamed from LayoutTests/webgpu/whlsl-compute-expected.txt.
        * webgpu/whlsl/two-dimensional-array.html: Renamed from LayoutTests/webgpu/whlsl-two-dimensional-array.html.
        * webgpu/whlsl/type-mismatch-expected.txt: Renamed from LayoutTests/webgpu/whlsl-type-mismatch-expected.txt.
        * webgpu/whlsl/type-mismatch.html: Renamed from LayoutTests/webgpu/whlsl-type-mismatch.html.
        * webgpu/whlsl/uint-bitwise-expected.txt: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise-expected.txt.
        * webgpu/whlsl/uint-bitwise.html: Renamed from LayoutTests/webgpu/whlsl-uint-bitwise.html.
        * webgpu/whlsl/use-undefined-variable-2-expected.txt: Renamed from LayoutTests/webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt.
        * webgpu/whlsl/use-undefined-variable-2.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable-2.html.
        * webgpu/whlsl/use-undefined-variable-expected.txt: Renamed from LayoutTests/webgpu/whlsl-buffer-length-expected.txt.
        * webgpu/whlsl/use-undefined-variable.html: Renamed from LayoutTests/webgpu/whlsl-use-undefined-variable.html.
        * webgpu/whlsl/variable-shadowing-expected.txt: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing-expected.txt.
        * webgpu/whlsl/variable-shadowing.html: Renamed from LayoutTests/webgpu/whlsl-variable-shadowing.html.
        * webgpu/whlsl/vector-syntax-expected.txt: Renamed from LayoutTests/webgpu/whlsl-vector-syntax-expected.txt.
        * webgpu/whlsl/vector-syntax.html: Renamed from LayoutTests/webgpu/whlsl-vector-syntax.html.
        * webgpu/whlsl/while-loop-break-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-continue-expected.html.
        * webgpu/whlsl/while-loop-break.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-break.html.
        * webgpu/whlsl/while-loop-continue-expected.html: Renamed from LayoutTests/webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html.
        * webgpu/whlsl/while-loop-continue.html: Renamed from LayoutTests/webgpu/whlsl-while-loop-continue.html.
        * webgpu/whlsl/whlsl.html: Renamed from LayoutTests/webgpu/whlsl.html.
        * webgpu/whlsl/wrong-argument-length-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length-expected.txt.
        * webgpu/whlsl/wrong-argument-length.html: Renamed from LayoutTests/webgpu/whlsl-wrong-argument-length.html.
        * webgpu/whlsl/wrong-types-expected.txt: Renamed from LayoutTests/webgpu/whlsl-wrong-types-expected.txt.
        * webgpu/whlsl/wrong-types.html: Renamed from LayoutTests/webgpu/whlsl-wrong-types.html.
        * webgpu/whlsl/zero-initialize-values-2-expected.html: Renamed from LayoutTests/webgpu/whlsl-loops-break-expected.html.
        * webgpu/whlsl/zero-initialize-values-2.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values-2.html.
        * webgpu/whlsl/zero-initialize-values-expected.html: Renamed from LayoutTests/webgpu/whlsl-do-while-loop-break-expected.html.
        * webgpu/whlsl/zero-initialize-values.html: Renamed from LayoutTests/webgpu/whlsl-zero-initialize-values.html.

2019-07-16  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Convert GPUComputePipeline LOG statements to generate GPUErrors
        https://bugs.webkit.org/show_bug.cgi?id=199773

        Reviewed by Myles C. Maxfield.

        Add a test to ensure GPUComputePipeline errors generate correctly.
        Rework checkFail in the WHLSL test harness to check for GPUError.

        * webgpu/compute-pipeline-errors-expected.txt: Added.
        * webgpu/compute-pipeline-errors.html: Added.
        * webgpu/error-scopes-test.html:
        * webgpu/js/webgpu-functions.js:
        (runTestsWithDevice): Runs tests in an object all with the same device.
        * webgpu/js/whlsl-test-harness.js: Add shader compilation error checking.
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.async.checkCompileFail):
        (Harness.prototype.async._callFunction):
        (Harness):
        (async.checkFail):
        (Harness.prototype._callFunction): Deleted.
        * webgpu/whlsl-recursive-structs-expected.txt: Remove a WHLSL compiler buggy test.
        * webgpu/whlsl-recursive-structs.html:
        * webgpu/whlsl-test-harness-test-expected.txt:
        * webgpu/whlsl-test-harness-test.html:

2019-07-10  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement GPUError and error scopes
        https://bugs.webkit.org/show_bug.cgi?id=199655

        Reviewed by Myles C. Maxfield.

        Add a test to cover the cases outlined in the WebGPU error handling design doc.

        * webgpu/error-scopes-test-expected.txt: Added.
        * webgpu/error-scopes-test.html: Added.

2019-07-16  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r247493.
        https://bugs.webkit.org/show_bug.cgi?id=199841

        "The new whlsl-for-loop.html test is failing on the bots"
        (Requested by rmorisset on #webkit).

        Reverted changeset:

        "[WHLSL] Desugar for loops and while loops"
        https://bugs.webkit.org/show_bug.cgi?id=199726
        https://trac.webkit.org/changeset/247493

2019-07-16  Robin Morisset  <rmorisset@apple.com>

        [WHLSL] Desugar for loops and while loops
        https://bugs.webkit.org/show_bug.cgi?id=199726

        Reviewed by Myles C. Maxfield.

        I added the for-loop tests from Test.mjs (with help from Saam).
        I did not add the foo9 and foo10 tests, as they are forbidden by the behavior checker in the C++ implementation (and by the spec).

        I also changed one test from whlsl-return-spec-tests.html to assert_fail, because it relied on a lone variable declaration in an if, which is forbidden by the spec.

        * webgpu/whlsl-for-loop-expected.txt: Added.
        * webgpu/whlsl-for-loop.html: Added.
        * webgpu/whlsl-return-spec-tests.html:

2019-07-16  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Text autosizing] [iPadOS] Paragraph text on the front page of LinkedIn.com is not boosted
        https://bugs.webkit.org/show_bug.cgi?id=199827
        <rdar://problem/53152660>

        Reviewed by Zalan Bujtas.

        Add a new test case, inspired by paragraph text in a post on linkedin.com. This text should get autosized.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:

2019-07-16  Rob Buis  <rbuis@igalia.com>

        Remove support for beforeload on link=prefetch
        https://bugs.webkit.org/show_bug.cgi?id=199632

        Reviewed by Youenn Fablet.

        Add tests to verify that beforeload event is not called for link
        rel=prefetch.


        * TestExpectations:
        * fast/dom/HTMLLinkElement/prefetch-beforeload-expected.txt: Removed.
        * fast/dom/HTMLLinkElement/prefetch-beforeload.html: Removed.
        * http/wpt/prefetch/beforeload-dynamic-expected.txt: Added.
        * http/wpt/prefetch/beforeload-dynamic.html: Added.
        * http/wpt/prefetch/beforeload-expected.txt: Added.
        * http/wpt/prefetch/beforeload.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-07-15  Ryan Haddad  <ryanhaddad@apple.com>

        [macOS WK2] Layout Test http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=198670

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Mark test as flaky.

2019-07-15  Keith Miller  <keith_miller@apple.com>

        JSGlobalObject type macros should support feature flags and WeakRef should have one
        https://bugs.webkit.org/show_bug.cgi?id=199601

        Reviewed by Mark Lam.

        Add JSC option requirements for WeakRef tests.

        * js/script-tests/weakref-async-is-collected.js:
        * js/script-tests/weakref-eventually-collects-values.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-microtasks-dont-collect.html:
        * js/weakref-weakset-consistency.html:

2019-07-15  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r247444.

        Caused two scrolling tests to fail on iOS Simulator

        Reverted changeset:

        "Typing into a cell in a Google Sheet lags behind by one
        character"
        https://bugs.webkit.org/show_bug.cgi?id=199587
        https://trac.webkit.org/changeset/247444

2019-07-15  Keith Miller  <keith_miller@apple.com>

        A Possible Issue of Object.create method
        https://bugs.webkit.org/show_bug.cgi?id=199744

        Reviewed by Yusuke Suzuki.

        Rebaseline error message due to change of error point.

        * js/Object-create-expected.txt:

2019-07-15  Saam Barati  <sbarati@apple.com>

        [WHLSL] Matrix memory layout should match HLSL by laying out columns linearly
        https://bugs.webkit.org/show_bug.cgi?id=199215

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-matrix-memory-layout-expected.txt: Added.
        * webgpu/whlsl-matrix-memory-layout.html: Added.
        * webgpu/whlsl-test-harness-test.html:

2019-07-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Text autosizing] [iPadOS] Product label text is clipped in portrait mode on the front page of sephora.com
        https://bugs.webkit.org/show_bug.cgi?id=199806
        <rdar://problem/52902482>

        Reviewed by Zalan Bujtas.

        Add a new test case to an existing layout test, which mimics the product label text on sephora.com's front page.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:

2019-07-11  Myles C. Maxfield  <mmaxfield@apple.com>

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653
        <rdar://problem/51692592>

        Reviewed by Simon Fraser.

        * TestExpectations:
        * fast/text/design-system-ui-10-expected-mismatch.html: Added.
        * fast/text/design-system-ui-10.html: Added.
        * fast/text/design-system-ui-11-expected-mismatch.html: Added.
        * fast/text/design-system-ui-11.html: Added.
        * fast/text/design-system-ui-12-expected-mismatch.html: Added.
        * fast/text/design-system-ui-12.html: Added.
        * fast/text/design-system-ui-13-expected-mismatch.html: Added.
        * fast/text/design-system-ui-13.html: Added.
        * fast/text/design-system-ui-14-expected-mismatch.html: Added.
        * fast/text/design-system-ui-14.html: Added.
        * fast/text/design-system-ui-15-expected-mismatch.html: Added.
        * fast/text/design-system-ui-15.html: Added.
        * fast/text/design-system-ui-16-expected-mismatch.html: Added.
        * fast/text/design-system-ui-16.html: Added.
        * fast/text/design-system-ui-2-expected.html: Added.
        * fast/text/design-system-ui-2.html: Added.
        * fast/text/design-system-ui-3-expected-mismatch.html: Added.
        * fast/text/design-system-ui-3.html: Added.
        * fast/text/design-system-ui-4-expected-mismatch.html: Added.
        * fast/text/design-system-ui-4.html: Added.
        * fast/text/design-system-ui-5-expected-mismatch.html: Added.
        * fast/text/design-system-ui-5.html: Added.
        * fast/text/design-system-ui-6-expected.html: Added.
        * fast/text/design-system-ui-6.html: Added.
        * fast/text/design-system-ui-7-expected.html: Added.
        * fast/text/design-system-ui-7.html: Added.
        * fast/text/design-system-ui-8-expected-mismatch.html: Added.
        * fast/text/design-system-ui-8.html: Added.
        * fast/text/design-system-ui-9-expected-mismatch.html: Added.
        * fast/text/design-system-ui-9.html: Added.
        * fast/text/design-system-ui-expected.html: Added.
        * fast/text/design-system-ui.html: Added.
        * platform/mac/TestExpectations:

2019-07-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Improve wasm wpt test results by fixing miscellaneous issues
        https://bugs.webkit.org/show_bug.cgi?id=199783

        Reviewed by Mark Lam.

        * platform/ios-simulator/TestExpectations:
        * platform/win/TestExpectations:

2019-07-15  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, rolling out r247440.

        Broke builds

        Reverted changeset:

        "[JSC] Improve wasm wpt test results by fixing miscellaneous
        issues"
        https://bugs.webkit.org/show_bug.cgi?id=199783
        https://trac.webkit.org/changeset/247440

2019-07-15  Daniel Bates  <dabates@apple.com>

        Typing into a cell in a Google Sheet lags behind by one character
        https://bugs.webkit.org/show_bug.cgi?id=199587
        <rdar://problem/51616845>

        Reviewed by Brent Fulgham.

        Add a test that enables the quirk and ensures that the DOM is up-to-date on expiration of a
        zero timer scheduled from keydown, keypress, keyup, and input.

        * fast/events/ios/dom-update-on-keydown-quirk-expected.txt: Added.
        * fast/events/ios/dom-update-on-keydown-quirk.html: Added.

2019-07-15  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r247397, r247378, r247366.

        Broke watchOS builds.

        Reverted changesets:

        "[WebGPU] Implement GPUError and error scopes"
        https://bugs.webkit.org/show_bug.cgi?id=199655
        https://trac.webkit.org/changeset/247366/webkit

        "[WebGPU] Move error scopes out of GPUDevice for more portable error generation"
        https://bugs.webkit.org/show_bug.cgi?id=199740
        https://trac.webkit.org/changeset/247397/webkit

2019-07-15  Rob Buis  <rbuis@igalia.com>

        MathML WPT test for RadicalDegreeBottomRaisePercent fails
        https://bugs.webkit.org/show_bug.cgi?id=183631

        Reviewed by Frédéric Wang.

        Adjust test expectations.

        * platform/ios/mathml/presentation/roots-expected.txt:
        * platform/mac/mathml/presentation/roots-expected.txt:
        * platform/win/mathml/presentation/roots-expected.txt:

2019-07-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Improve wasm wpt test results by fixing miscellaneous issues
        https://bugs.webkit.org/show_bug.cgi?id=199783

        Reviewed by Mark Lam.

        * platform/ios-simulator/TestExpectations:
        * platform/win/TestExpectations:

2019-07-15  Youenn Fablet  <youenn@apple.com>

        Enable a debug WebRTC mode without any encryption
        https://bugs.webkit.org/show_bug.cgi?id=199177
        <rdar://problem/52074986>

        Reviewed by Eric Carlson.

        * webrtc/disable-encryption-expected.txt: Added.
        * webrtc/disable-encryption.html: Added.

2019-07-15  Youenn Fablet  <youenn@apple.com>

        Filter SDP c lines
        https://bugs.webkit.org/show_bug.cgi?id=199791

        Reviewed by Eric Carlson.

        * webrtc/datachannel/filter-ice-candidate.html:

2019-07-14  Dean Jackson  <dino@apple.com>

        WebGL not supported on WKWebView on UIKit for Mac
        https://bugs.webkit.org/show_bug.cgi?id=199785
        <rdar://problem/52911449>

        Reviewed by Antoine Quint.

        Even though we don't yet run tests on UIKit for Mac, we
        should have the most simple "is WebGL working?" ref test.

        * webgl/smell-test-expected.html: Added.
        * webgl/smell-test.html: Added.

2019-07-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Text autosizing] [iPadOS] Further adjust our heuristics to determine text autosizing candidates
        https://bugs.webkit.org/show_bug.cgi?id=199780
        <rdar://problem/52289088>

        Reviewed by Simon Fraser.

        Rebaseline an existing idempotent text autosizing test, and add an additional test case.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:

2019-07-13  Simon Fraser  <simon.fraser@apple.com>

        Don't do async overflow scrolling for visibility:hidden scrollers
        https://bugs.webkit.org/show_bug.cgi?id=199779

        Reviewed by Dean Jackson.

        * compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers.html: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt: Added.

2019-07-13  Zalan Bujtas  <zalan@apple.com>

        Cannot bring up custom media controls at all on v.youku.com
        https://bugs.webkit.org/show_bug.cgi?id=199699
        <rdar://problem/51835327>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/visibility-hidden-iframe-click-expected.txt: Added.
        * fast/events/touch/ios/visibility-hidden-iframe-click.html: Added.
        * fast/events/touch/ios/visibility-hidden-nested-iframe-click-expected.txt: Added.
        * fast/events/touch/ios/visibility-hidden-nested-iframe-click.html: Added.

2019-07-12  Youenn Fablet  <youenn@apple.com>

        Stopping a cloned MediaStream video track should not stop any other video track
        https://bugs.webkit.org/show_bug.cgi?id=199635

        Reviewed by Eric Carlson.

        * fast/mediastream/mediastreamtrack-video-clone-expected.txt:
        * fast/mediastream/mediastreamtrack-video-clone.html:

2019-07-12  Timothy Hatcher  <timothy@apple.com>

        Drop DarkModeCSSEnabled as an experimental feature and always enable it.
        https://bugs.webkit.org/show_bug.cgi?id=199725
        rdar://problem/52970972

        Reviewed by Megan Gardner.

        Removed <!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
        from all dark mode tests.

        * css-dark-mode/color-scheme-css-parse.html:
        * css-dark-mode/color-scheme-css.html:
        * css-dark-mode/color-scheme-meta.html:
        * css-dark-mode/color-scheme-priority.html:
        * css-dark-mode/color-scheme-scrollbar.html:
        * css-dark-mode/default-colors.html:
        * css-dark-mode/older-syntax/supported-color-schemes-css.html:
        * css-dark-mode/older-syntax/supported-color-schemes-meta.html:
        * css-dark-mode/older-systems/color-scheme-css.html:
        * css-dark-mode/older-systems/color-scheme-meta.html:
        * css-dark-mode/older-systems/prefers-color-scheme.html:
        * css-dark-mode/prefers-color-scheme-picture-element.html:
        * css-dark-mode/prefers-color-scheme.html:

2019-07-11  Myles C. Maxfield  <mmaxfield@apple.com>

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653
        <rdar://problem/51692592>

        Reviewed by Simon Fraser.

        * TestExpectations:
        * fast/text/design-system-ui-10-expected-mismatch.html: Added.
        * fast/text/design-system-ui-10.html: Added.
        * fast/text/design-system-ui-11-expected-mismatch.html: Added.
        * fast/text/design-system-ui-11.html: Added.
        * fast/text/design-system-ui-12-expected-mismatch.html: Added.
        * fast/text/design-system-ui-12.html: Added.
        * fast/text/design-system-ui-13-expected-mismatch.html: Added.
        * fast/text/design-system-ui-13.html: Added.
        * fast/text/design-system-ui-14-expected-mismatch.html: Added.
        * fast/text/design-system-ui-14.html: Added.
        * fast/text/design-system-ui-15-expected-mismatch.html: Added.
        * fast/text/design-system-ui-15.html: Added.
        * fast/text/design-system-ui-16-expected-mismatch.html: Added.
        * fast/text/design-system-ui-16.html: Added.
        * fast/text/design-system-ui-2-expected.html: Added.
        * fast/text/design-system-ui-2.html: Added.
        * fast/text/design-system-ui-3-expected-mismatch.html: Added.
        * fast/text/design-system-ui-3.html: Added.
        * fast/text/design-system-ui-4-expected-mismatch.html: Added.
        * fast/text/design-system-ui-4.html: Added.
        * fast/text/design-system-ui-5-expected-mismatch.html: Added.
        * fast/text/design-system-ui-5.html: Added.
        * fast/text/design-system-ui-6-expected.html: Added.
        * fast/text/design-system-ui-6.html: Added.
        * fast/text/design-system-ui-7-expected.html: Added.
        * fast/text/design-system-ui-7.html: Added.
        * fast/text/design-system-ui-8-expected-mismatch.html: Added.
        * fast/text/design-system-ui-8.html: Added.
        * fast/text/design-system-ui-9-expected-mismatch.html: Added.
        * fast/text/design-system-ui-9.html: Added.
        * fast/text/design-system-ui-expected.html: Added.
        * fast/text/design-system-ui.html: Added.
        * platform/mac/TestExpectations:

2019-07-11  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK][WPE] Rebaseline css3/blending tests with an empty homedir.

        It seems this tests are sensible to some configuration of some
        library as they produce different output (the layers with more left
        margin) depending on that. The test pass on both cases, but the
        check with the expected result fails, so it is flagged as failing.

        This rebaselines the results to those that happen when running with
        an empty/temporal homedir on Debian 10 to match what happens on the
        bots. For more info see bugs 169916 and 199738.

        Unreviewed gardening commit.

        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
        * platform/wpe/TestExpectations: css3/blending/svg-isolation-isolated-group.html passes with an empty homedir.
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt:

2019-07-11  Chris Dumez  <cdumez@apple.com>

        [iOS] fast/events/ios/rotation/orientationchange-event-listener-on.body.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=199732
        <rdar://problem/52693087>

        Reviewed by Alex Christensen.

        Stop logging in each event listener to not be reliant on the order in which listener are called.
        Instead, simply make sure all event listeners that should be called were actually called.

        * fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt:
        * fast/events/ios/rotation/orientationchange-event-listener-on.body.html:

2019-07-11  Ryosuke Niwa  <rniwa@webkit.org>

        Make the test added in r247327 more reliable.

        * editing/selection/ios/autoscroll-with-top-content-inset-2.html:

2019-07-11  Russell Epstein  <russell_e@apple.com>

        Layout Test fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html is Failing Consistently on iOS-WK2.
        https://bugs.webkit.org/show_bug.cgi?id=199731

        Unreviewed Test Gardening

        * platform/ios-wk2/TestExpectations:

2019-07-11  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement GPUError and error scopes
        https://bugs.webkit.org/show_bug.cgi?id=199655

        Reviewed by Myles C. Maxfield.

        Add a test to cover the cases outlined in the WebGPU error handling design doc.

        * webgpu/error-scopes-test-expected.txt: Added.
        * webgpu/error-scopes-test.html: Added.

2019-07-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r247314.
        https://bugs.webkit.org/show_bug.cgi?id=199721

        Caused performance regression. (Requested by deanj on
        #webkit).

        Reverted changeset:

        "Disable speculative loading if cache is not to be used for
        the load"
        https://bugs.webkit.org/show_bug.cgi?id=199644
        https://trac.webkit.org/changeset/247314

2019-07-11  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Can't place caret or select in content that overflows a contenteditable element
        https://bugs.webkit.org/show_bug.cgi?id=199741
        rdar://problem/50545233

        Reviewed by Wenson Hsieh.
        
        Re-enable editing/caret/ios, fixing the result of emoji.html which for some reason was
        checked in as an html file (the test still fails).

        * editing/caret/ios/caret-in-overflow-area-expected.txt: Added.
        * editing/caret/ios/caret-in-overflow-area.html: Added.
        * editing/caret/ios/emoji-expected.txt: Renamed from LayoutTests/editing/caret/ios/emoji-expected.html.
        * editing/caret/ios/fixed-caret-position-after-scroll-expected.txt:
        * editing/caret/ios/fixed-caret-position-after-scroll.html:
        * editing/selection/ios/place-selection-in-overflow-area-expected.txt: Added.
        * editing/selection/ios/place-selection-in-overflow-area.html: Added.
        * editing/selection/ios/selection-extends-into-overflow-area-expected.txt: Added.
        * editing/selection/ios/selection-extends-into-overflow-area.html: Added.
        * platform/ios-wk2/TestExpectations:

2019-07-11  Ryan Haddad  <ryanhaddad@apple.com>

        Add test expectations and baselines for iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=199329

        Reviewed by Jonathan Bedard.

        * platform/ios-12/*: Move iOS 12 specific baselines to their own directory.
        * platform/ios/*: Add iOS 13 baselines and test expectations.

2019-07-11  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening. Update expectations after r247346.

        * platform/gtk/TestExpectations:

2019-07-11  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Implement support for ARIA roles insertion, deletion, subscript, superscript, and time
        https://bugs.webkit.org/show_bug.cgi?id=199692

        Reviewed by Chris Fleizach.

        Add the new roles to the existing role-exposure tests and update expectations accordingly.

        * accessibility/gtk/object-attributes-expected.txt:
        * accessibility/gtk/object-attributes.html:
        * accessibility/gtk/xml-roles-exposed-expected.txt:
        * accessibility/gtk/xml-roles-exposed.html:
        * accessibility/roles-computedRoleString.html:
        * accessibility/roles-exposed.html:
        * platform/gtk/accessibility/roles-computedRoleString-expected.txt:
        * platform/gtk/accessibility/roles-exposed-expected.txt:
        * platform/mac-wk2/accessibility/roles-exposed-expected.txt:
        * platform/mac/accessibility/roles-computedRoleString-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:
        * platform/wpe/accessibility/roles-computedRoleString-expected.txt:
        * platform/wpe/accessibility/roles-exposed-expected.txt:

2019-07-10  Saam Barati  <sbarati@apple.com>

        [WHLSL] Import all tests that pass without compiler changes from the JS reference test suite
        https://bugs.webkit.org/show_bug.cgi?id=199595

        Rubber stamped by Robin Morisset.

        * webgpu/whlsl-argument-evaluation-order-expected.txt: Added.
        * webgpu/whlsl-argument-evaluation-order.html: Added.
        * webgpu/whlsl-array-length-spec-tests-expected.txt: Added.
        * webgpu/whlsl-array-length-spec-tests.html: Added.
        * webgpu/whlsl-array-spec-tests-expected.txt:
        * webgpu/whlsl-array-spec-tests.html:
        * webgpu/whlsl-bad-add-expected.txt: Added.
        * webgpu/whlsl-bad-add.html: Added.
        * webgpu/whlsl-bools-expected.txt: Added.
        * webgpu/whlsl-bools.html: Added.
        * webgpu/whlsl-casts-expected.txt: Added.
        * webgpu/whlsl-casts.html: Added.
        * webgpu/whlsl-comment-parsing-expected.txt: Added.
        * webgpu/whlsl-comment-parsing.html: Added.
        * webgpu/whlsl-copy-expected.txt: Added.
        * webgpu/whlsl-copy.html: Added.
        * webgpu/whlsl-dereference-ordering-expected.txt: Added.
        * webgpu/whlsl-dereference-ordering.html: Added.
        * webgpu/whlsl-double-not-expected.txt: Added.
        * webgpu/whlsl-double-not.html: Added.
        * webgpu/whlsl-duplicates-expected.txt: Added.
        * webgpu/whlsl-duplicates.html: Added.
        * webgpu/whlsl-increment-decrement-expected.txt: Added.
        * webgpu/whlsl-increment-decrement.html: Added.
        * webgpu/whlsl-index-ander-expected.txt: Added.
        * webgpu/whlsl-index-ander.html: Added.
        * webgpu/whlsl-index-setter-getter-expected.txt: Added.
        * webgpu/whlsl-index-setter-getter.html: Added.
        * webgpu/whlsl-logical-negation-expected.txt: Added.
        * webgpu/whlsl-logical-negation.html: Added.
        * webgpu/whlsl-lots-of-local-variables-expected.txt: Added.
        * webgpu/whlsl-lots-of-local-variables.html: Added.
        * webgpu/whlsl-lvalues-expected.txt: Added.
        * webgpu/whlsl-lvalues.html: Added.
        * webgpu/whlsl-null-arg-expected.txt: Added.
        * webgpu/whlsl-null-arg.html: Added.
        * webgpu/whlsl-operator-overload-expected.txt: Added.
        * webgpu/whlsl-operator-overload.html: Added.
        * webgpu/whlsl-overload-expected.txt: Added.
        * webgpu/whlsl-overload.html: Added.
        * webgpu/whlsl-setter-spec-tests-expected.txt: Added.
        * webgpu/whlsl-setter-spec-tests.html: Added.
        * webgpu/whlsl-store-null-expected.txt: Added.
        * webgpu/whlsl-store-null.html: Added.
        * webgpu/whlsl-struct-expected.txt: Added.
        * webgpu/whlsl-struct.html: Added.
        * webgpu/whlsl-switch-expected.txt: Added.
        * webgpu/whlsl-switch.html: Added.
        * webgpu/whlsl-variable-shadowing-expected.txt: Added.
        * webgpu/whlsl-variable-shadowing.html: Added.
        * webgpu/whlsl-vector-syntax-expected.txt: Added.
        * webgpu/whlsl-vector-syntax.html: Added.

2019-07-10  Truitt Savell  <tsavell@apple.com>

        Marking webgpu/whlsl-builtin-vectors-2.html as Slow after https://trac.webkit.org/changeset/247319/webkit
        https://bugs.webkit.org/show_bug.cgi?id=199651

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-07-10  Chris Fleizach  <cfleizach@apple.com>

        AX: VoiceOver ignored role="presentation" on <table> HTML elements
        https://bugs.webkit.org/show_bug.cgi?id=199659

        Reviewed by Zalan Bujtas.

        * accessibility/ios-simulator/tables-lists-expected.txt:
        * accessibility/ios-simulator/tables-lists.html:

2019-07-10  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS] REGRESSION(r244851): Revealing caret sometimes fails when content inset is used
        https://bugs.webkit.org/show_bug.cgi?id=199662

        Reviewed by Simon Fraser.

        Added a regression test.

        * editing/selection/ios/autoscroll-with-top-content-inset-2-expected.txt: Added.
        * editing/selection/ios/autoscroll-with-top-content-inset-2.html: Added.

2019-07-10  Saam Barati  <sbarati@apple.com>

        [WHLSL Import more JS reference spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199651

        Rubber stamped by Robin Morisset.

        * webgpu/whlsl-builtin-vectors-2-expected.txt: Added.
        * webgpu/whlsl-builtin-vectors-2.html: Added.
        * webgpu/whlsl-builtin-vectors-expected.txt: Added.
        * webgpu/whlsl-builtin-vectors.html: Added.
        * webgpu/whlsl-getter-setter-type-expected.txt: Added.
        * webgpu/whlsl-getter-setter-type.html: Added.
        * webgpu/whlsl-loops-spec-tests-expected.txt: Added.
        * webgpu/whlsl-loops-spec-tests.html: Added.
        * webgpu/whlsl-null-array-ref.html: Added.
        * webgpu/whlsl-override-subscript-expected.txt: Added.
        * webgpu/whlsl-override-subscript.html: Added.
        * webgpu/whlsl-plus-equals-expected.txt: Added.
        * webgpu/whlsl-plus-equals.html: Added.
        * webgpu/whlsl-recursive-structs-expected.txt: Added.
        * webgpu/whlsl-recursive-structs.html: Added.
        * webgpu/whlsl-ternary-spec-test-expected.txt: Added.
        * webgpu/whlsl-ternary-spec-test.html: Added.
        * webgpu/whlsl-wrong-argument-length-expected.txt: Added.
        * webgpu/whlsl-wrong-argument-length.html: Added.
        * webgpu/whlsl-wrong-types-expected.txt: Added.
        * webgpu/whlsl-wrong-types.html: Added.

2019-07-10  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r247223.
        https://bugs.webkit.org/show_bug.cgi?id=199679

        Caused perf regression. (Requested by deanj on #webkit).

        Reverted changeset:

        "[iPadOS] Viewport pops while loading sohu.com, xinhuanet.com,
        and various other websites"
        https://bugs.webkit.org/show_bug.cgi?id=199575
        https://trac.webkit.org/changeset/247223

2019-07-10  Youenn Fablet  <youenn@apple.com>

        Disable speculative loading if cache is not to be used for the load
        https://bugs.webkit.org/show_bug.cgi?id=199644

        Reviewed by Chris Dumez.

        * http/wpt/fetch/disable-speculative-for-reload-expected.txt: Added.
        * http/wpt/fetch/disable-speculative-for-reload.html: Added.
        * http/wpt/fetch/resources/iframe-with-image.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load-count.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load.py: Added.
        (main):

2019-07-10  Youenn Fablet  <youenn@apple.com>

        openDatabase property should not be enumerable on DOMWindow
        https://bugs.webkit.org/show_bug.cgi?id=199672
        <rdar://problem/52809000>

        Reviewed by Chris Dumez.

        * storage/websql/openDatabase-deprecation-expected.txt: Added.
        * storage/websql/openDatabase-deprecation.html: Added.

2019-07-10  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK][WPE] Enable support for CSS_COMPOSITING
        https://bugs.webkit.org/show_bug.cgi?id=199513

        Reviewed by Michael Catanzaro.

        Rebaseline the tests that pass after enabling CSS_COMPOSITING.
        The feature works is most of the cases, but there are still some tests/cases not working.

        There are also some new failures marked related to SVG blending (css3/blending/svg*), but those were already failing before.
        So its unrelated to this change.

        * platform/gtk/TestExpectations:
        * platform/gtk/css3/blending/background-blend-mode-default-value-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-different-image-formats-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-image-color-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-image-image-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-single-layer-no-blending-expected.png:
        * platform/gtk/css3/blending/blend-mode-background-expected.png:
        * platform/gtk/css3/blending/blend-mode-background-expected.txt:
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-overflow-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-overflow-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-simple-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-simple-expected.txt: Added.
        * platform/gtk/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
        * platform/wpe/TestExpectations:
        * platform/wpe/css3/blending/background-blend-mode-default-value-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-default-value-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-color-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-color-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-image-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-image-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-background-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-background-expected.txt: Copied from LayoutTests/platform/gtk/css3/blending/blend-mode-background-expected.txt.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-overflow-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-overflow-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-simple-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-simple-expected.txt: Added.
        * platform/wpe/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt: Added.

2019-07-09  Andres Gonzalez  <andresg_22@apple.com>

        AX: HTML datalist accessibility is not exposed by WebKit
        https://bugs.webkit.org/show_bug.cgi?id=196998
        <rdar://problem/49962521>

        Reviewed by Chris Fleizach.

        * accessibility/datalist-expected.txt: Added.
        * accessibility/datalist.html: Added.

2019-07-09  Saam Barati  <sbarati@apple.com>

        [WHLSL] Import another round of JS spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199647

        Reviewed by Myles C. Maxfield.

        This patch also removes the unneded <!-- webkit-test-runner [ experimental:WebGPUEnabled=true ] -->
        comments in various tests.

        * webgpu/bind-groups.html:
        * webgpu/blit-commands.html:
        * webgpu/map-read-buffers.html:
        * webgpu/map-write-buffers.html:
        * webgpu/msl-harness-test.html:
        * webgpu/pipeline-layouts.html:
        * webgpu/queue-creation.html:
        * webgpu/render-command-encoding.html:
        * webgpu/shader-modules.html:
        * webgpu/textures-textureviews.html:
        * webgpu/whlsl-array-spec-tests.html:
        * webgpu/whlsl-bad-ander-expected.txt: Added.
        * webgpu/whlsl-bad-ander.html: Added.
        * webgpu/whlsl-bad-literals-expected.txt: Added.
        * webgpu/whlsl-bad-literals.html: Added.
        * webgpu/whlsl-bitwise-bool-ops.html:
        * webgpu/whlsl-enum-spec-tests.html:
        * webgpu/whlsl-equality.html:
        * webgpu/whlsl-float-math-expected.txt: Added.
        * webgpu/whlsl-float-math.html: Added.
        * webgpu/whlsl-index-getter-setter-expected.txt: Added.
        * webgpu/whlsl-index-getter-setter.html: Added.
        * webgpu/whlsl-int-bit-math-expected.txt: Added.
        * webgpu/whlsl-int-bit-math.html: Added.
        * webgpu/whlsl-int-literal-compare.html:
        * webgpu/whlsl-make-array-ref-spec-tests-expected.txt: Added.
        * webgpu/whlsl-make-array-ref-spec-tests.html: Added.
        * webgpu/whlsl-matrices-spec-tests.html:
        * webgpu/whlsl-pointer-spec-tests-expected.txt: Added.
        * webgpu/whlsl-pointer-spec-tests.html: Added.
        * webgpu/whlsl-postfix-prefix-expected.txt: Added.
        * webgpu/whlsl-postfix-prefix.html: Added.
        * webgpu/whlsl-return-spec-tests.html:
        * webgpu/whlsl-simple-getter-setter.html:
        * webgpu/whlsl-simple-tests.html:
        * webgpu/whlsl-simple-while-loop.html:
        * webgpu/whlsl-test-harness-test.html:
        * webgpu/whlsl-type-mismatch.html:
        * webgpu/whlsl-uint-bitwise.html:

2019-07-09  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, address TestExpectations linter warning.

        * TestExpectations: Delete entry for fast/content-observation since
        the directory doesn't exist anymore.

2019-07-09  Saam Barati  <sbarati@apple.com>

        [WHLSL] Add another group of WHLSL JS reference spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199642

        Reviewed by Robin Morisset.

        * webgpu/whlsl-array-spec-tests-expected.txt: Added.
        * webgpu/whlsl-array-spec-tests.html: Added.
        * webgpu/whlsl-enum-spec-tests-expected.txt: Added.
        * webgpu/whlsl-enum-spec-tests.html: Added.
        * webgpu/whlsl-equality-expected.txt: Added.
        * webgpu/whlsl-equality.html: Added.
        * webgpu/whlsl-matrices-spec-tests-expected.txt: Added.
        * webgpu/whlsl-matrices-spec-tests.html: Added.
        * webgpu/whlsl-return-spec-tests-expected.txt: Added.
        * webgpu/whlsl-return-spec-tests.html: Added.
        * webgpu/whlsl-simple-getter-setter-expected.txt: Added.
        * webgpu/whlsl-simple-getter-setter.html: Added.
        * webgpu/whlsl-simple-while-loop-expected.txt: Added.
        * webgpu/whlsl-simple-while-loop.html: Added.

2019-07-09  Youenn Fablet  <youenn@apple.com>

        XHR CORS requests logged twice in the server
        https://bugs.webkit.org/show_bug.cgi?id=199492
        <rdar://problem/52757558>

        Reviewed by Chris Dumez.

        * http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads-expected.txt: Added.
        * http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads.html: Added.
        * http/wpt/fetch/resources/fetch-xhr-load.py: Added.
        (main):
        * http/wpt/fetch/resources/xhr-and-fetch.html: Added.

2019-07-09  Rob Buis  <rbuis@igalia.com>

        Remove rel=subresource tests
        https://bugs.webkit.org/show_bug.cgi?id=199616

        Reviewed by Ryosuke Niwa.

        Remove rel=subresource references by deleting or using rel=prefetch
        instead.

        * TestExpectations:
        * fast/dom/HTMLLinkElement/cachedresource-types.html:
        * http/tests/misc/link-rel-prefetch-and-subresource.html: Removed.
        * webarchive/test-link-rel-subresource-beforeload-expected.webarchive: Removed.
        * webarchive/test-link-rel-subresource-beforeload.html: Removed.

2019-07-09  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Scroll indicators should not show for scrollable content with touch-action: none
        https://bugs.webkit.org/show_bug.cgi?id=199618

        Reviewed by Simon Fraser.

        Add a new test that swipes "overflow: scroll" content which would show scroll indicators without scrolling
        prior to this patch.

        * pointerevents/ios/touch-action-none-no-scroll-indicators-expected.html: Added.
        * pointerevents/ios/touch-action-none-no-scroll-indicators.html: Added.

2019-07-09  Charlie Turner  <cturner@igalia.com>

        [GStreamer] HLS media test gardening
        https://bugs.webkit.org/show_bug.cgi?id=199620

        Unreviewed gardening commit.

        * platform/gtk/TestExpectations:

2019-07-09  Antti Koivisto  <antti@apple.com>

        REGRESSION(r244906): Crash in WebCore::positionOffsetValue
        https://bugs.webkit.org/show_bug.cgi?id=199613
        <rdar://problem/51518172>

        Reviewed by Zalan Bujtas.

        * fast/css/getComputedStyle/sticky-scroll-container-crash-expected.txt: Added.
        * fast/css/getComputedStyle/sticky-scroll-container-crash.html: Added.

2019-07-09  Cathie Chen  <cathiechen@igalia.com>

        Support writing-mode and direction for scrollIntoViewOptions.
        https://bugs.webkit.org/show_bug.cgi?id=161611

        Reviewed by Frédéric Wang and Simon Fraser.

        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt: Removed.

2019-07-08  Saam Barati  <sbarati@apple.com>

        [WHLSL Import 23 new JS reference spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199604

        Reviewed by Myles C. Maxfield.

        This moves some stuff down into whlsl-test-harness which are needed by
        all tests. This also adds a new checkFail that ensures the program never
        runs (e.g, it has a compile error).

        * webgpu/js/whlsl-test-harness.js:
        (async.checkFail):
        (const.webGPUPromiseTest):
        * webgpu/whlsl-bitwise-bool-ops-expected.txt:
        * webgpu/whlsl-bitwise-bool-ops.html:
        * webgpu/whlsl-int-literal-compare-expected.txt: Added.
        * webgpu/whlsl-int-literal-compare.html: Added.
        * webgpu/whlsl-simple-tests-expected.txt: Added.
        * webgpu/whlsl-simple-tests.html: Added.
        * webgpu/whlsl-type-mismatch-expected.txt: Added.
        * webgpu/whlsl-type-mismatch.html: Added.
        * webgpu/whlsl-uint-bitwise-expected.txt: Added.
        * webgpu/whlsl-uint-bitwise.html: Added.

2019-07-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS 13] paste-does-not-fire-promises-while-sanitizing-web-content.html times out when run with multiple iterations
        https://bugs.webkit.org/show_bug.cgi?id=199597

        Reviewed by Tim Horton.

        Make this test more robust to work around bugs in iOS 13 that currently prevent some single tap gestures from
        being recognized, due to conflicts with double tap gesture recognizers.
        -   Make both the subframe and editable element taller, so that they're easier to hit.
        -   Tap twice when attempting to trigger a paste, in hopes that at least one of the taps will be recognized as a
            single click.
        -   Make several event listeners one-shot, to prevent the double tap gesture from triggering paste twice.

        * editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html:

2019-07-08  Keith Miller  <keith_miller@apple.com>

        Enable Intl.PluralRules and Intl.NumberFormatToParts by default
        https://bugs.webkit.org/show_bug.cgi?id=199288

        Reviewed by Yusuke Suzuki.

        Remove runtime flag from testing.

        * js/intl-numberformat-format-to-parts.html:
        * js/intl-pluralrules.html:
        * js/script-tests/intl-numberformat-format-to-parts.js:
        * js/script-tests/intl-pluralrules.js:

2019-07-08  Daniel Bates  <dabates@apple.com>

        [iOS] Support select all in non-editable element
        https://bugs.webkit.org/show_bug.cgi?id=199257
        <rdar://problem/52553667>

        Reviewed by Wenson Hsieh.

        Add a test to ensure that we can perform Select All even when a non-editable element is focused.

        Also disallow testing of Command + A until we fix <https://bugs.webkit.org/show_bug.cgi?id=199475>.
        Otherwise, the test fast/events/ios/key-events-comprehensive/key-events-meta.html fails since
        Command + A now triggers page selection even in a non-editable (the purpose of this change)
        and hence Command + C also triggers the copy command. The triggering of these commands causes
        the test to fail the Command + A and Command + C sub-tests since no keypress event is dispatched
        for the key that triggered these key commands. This is expected, but Command + A should not have
        triggered selection as key-tester.js calls preventDefault() from a keypress handler. That's
        the bug. See <https://bugs.webkit.org/show_bug.cgi?id=199475> for more details.

        * editing/selection/ios/select-all-non-editable-text-using-keyboard-expected.txt: Added.
        * editing/selection/ios/select-all-non-editable-text-using-keyboard.html: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt: Updated result.
        * fast/events/ios/resources/key-tester.js: Disallow Command + A until we fix <https://bugs.webkit.org/show_bug.cgi?id=199475>.
        * platform/ios/TestExpectations: Skip the test until the fix for <rdar://problem/48322899>
        has shipped.

2019-07-08  Daniel Bates  <dabates@apple.com>

        Command + . generates Escape with key identifier Period, should be Escape
        https://bugs.webkit.org/show_bug.cgi?id=199393
        <rdar://problem/52498001>

        Reviewed by Wenson Hsieh.

        Update test result.

        * fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt:

2019-07-08  Charlie Turner  <cturner@igalia.com>

        [GTK] Some media fragment tests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=132248

        Reviewed by Eric Carlson.

        These tests look like they're flakey due to a small stop time. I'm
        surmising that based on the bot's load, we step over the 0.5 mark
        often. When I run this locally, despite running the fragment tests
        100 times, I saw no timeouts.

        I have seen crashes in the flakiness dashboard, but I would prefer
        for these to have separate bugs so that we can squash them rather
        than allowing them to linger. Having them expected to crash means
        we have no crash logs to investigate.

        Updated the baselines in the LayoutTests/ directory to reflect the
        new stop time delta.

        * media/media-fragments/media-fragments.js:
        (pause): Increase stop delta, on simulator builds the stddev
        crossed the 0.5s mark, and I suspect on GTK builds, our bots being
        heavily loaded cause the majority of timeouts.
        * platform/gtk/TestExpectations: Remove expectations.

2019-07-08  Ryan Haddad  <ryanhaddad@apple.com>

        Add test expectations and baselines for Catalina
        https://bugs.webkit.org/show_bug.cgi?id=199328

        Reviewed by Jonathan Bedard.

        * platfrom/mac/*: Adding Catalina test expectations and baselines.
        * platform/mac-mojave/*: Migrating Mojave baselines from platform/mac directory.

2019-07-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iPadOS] Viewport pops while loading sohu.com, xinhuanet.com, and various other websites
        https://bugs.webkit.org/show_bug.cgi?id=199575
        <rdar://problem/51842220>

        Reviewed by Simon Fraser.

        Adjusts an existing layout test, and introduces a new test to verify that the shrink-to-fit heuristic is given a
        chance to run before document load. See WebKit ChangeLog for more details.

        * fast/viewport/ios/shrink-to-fit-content-before-document-load-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-content-before-document-load.html: Added.
        * fast/viewport/ios/shrink-to-fit-content-temporary-overflow.html:

        Tweak this layout test to add the temporarily overflowing element after document load.

2019-07-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unable to paste from Notes into Excel 365 spreadsheet
        https://bugs.webkit.org/show_bug.cgi?id=199565
        <rdar://problem/43615497>

        Reviewed by Chris Dumez.

        Add a test to verify that promises scheduled right before a programmatic paste resolve in the middle of the
        paste, while creating a document for web content sanitization. See WebCore ChangeLog for more details.

        * editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content-expected.txt: Added.
        * editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html: Added.

2019-07-08  Chris Dumez  <cdumez@apple.com>

        Unable to play videos on xfinity.com/stream on macOS Catalina
        https://bugs.webkit.org/show_bug.cgi?id=199576
        <rdar://problem/50101264>

        Reviewed by Alex Christensen.

        Rebaseline existing test.

        * http/wpt/fetch/request-abort-expected.txt:

2019-07-08  Antoine Quint  <graouts@apple.com>

        [Pointer Events] "touch-action: none" does not prevent double-tap-to-zoom
        https://bugs.webkit.org/show_bug.cgi?id=199571
        <rdar://problem/51715002>

        Reviewed by Wenson Hsieh.

        Add two new tests that check that setting "touch-action: none" on an element does not allow double-tap-to-zoom
        and that "touch-action: manipulation" allows it.

        * pointerevents/ios/touch-action-manipulation-double-tap-to-zoom-expected.txt: Added.
        * pointerevents/ios/touch-action-manipulation-double-tap-to-zoom.html: Added.
        * pointerevents/ios/touch-action-none-double-tap-to-zoom-expected.txt: Added.
        * pointerevents/ios/touch-action-none-double-tap-to-zoom.html: Added.
        * pointerevents/utils.js:
        (const.ui.new.UIController.prototype.doubleTapToZoom):

2019-07-08  Charlie Turner  <cturner@igalia.com>

        [GStreamer] media/video-volume.html broken after switching from cubic to linear scaling
        https://bugs.webkit.org/show_bug.cgi?id=199505

        Reviewed by Xabier Rodriguez-Calvar.

        PulseAudio has a conversion process from volume's in
        double-precision to uint32_t volumes. Depending on the environment
        can introduce rounding errors. Be more lenient in our comparison
        code.

        * media/video-volume-expected.txt: Update baseline
        * media/video-volume.html: Compare volume values within a
        reasonable tolerance.

2019-07-08  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Enable only on the most recent version of the supported iOS family
        https://bugs.webkit.org/show_bug.cgi?id=199562
        <rdar://problem/52766511>

        Reviewed by Dean Jackson.

        * js/dom/navigator-maxtouchpoints-expected.txt: Since ENABLE_POINTER_EVENTS is now disabled by default, navigator.maxTouchPoints
        is "undefined" in thed default case.
        * platform/mac/js/dom/navigator-maxtouchpoints-expected.txt: But 0 on macOS.

2019-07-07  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Difficult to control videos on iqiyi.com as the actions are mouse hover
        https://bugs.webkit.org/show_bug.cgi?id=199542
        <rdar://problem/51886813>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/tap-on-1px-height-content-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-1px-height-content.html: Added.
        * fast/events/touch/ios/content-observation/tap-on-1px-width-content-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-1px-width-content.html: Added.

2019-07-06  Cathie Chen  <cathiechen@igalia.com>

        Import css/cssom-view testcases from WPT.
        https://bugs.webkit.org/show_bug.cgi?id=199509

        Reviewed by Frédéric Wang.

        * TestExpectations:
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Added.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Added.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt: Added.
        * tests-options.json:

2019-07-05  Youenn Fablet  <youenn@apple.com> and Simon Fraser  <simon.fraser@apple.com>

        Trigger a compositing update when video element is changing
        https://bugs.webkit.org/show_bug.cgi?id=199522
        <rdar://problem/47297159>

        Reviewed by Simon Fraser.

        * compositing/video/video-update-rendering-expected.txt: Added.
        * compositing/video/video-update-rendering.html: Added.

2019-07-05  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS] Crash in WebKit::WebPage::positionInformation via Range::startPosition
        https://bugs.webkit.org/show_bug.cgi?id=199503

        Reviewed by Wenson Hsieh.

        Added a regression test for the crash.

        * editing/input/delete-text-in-composition-expected.txt: Added.
        * editing/input/delete-text-in-composition.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.ensurePositionInformationUpdateForElement): Added.

2019-07-02  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Standard library is too big to directly include in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=198186
        <rdar://problem/51288898>

        Reviewed by Saam Barati.

        The standard library doesn't include any matrix constructors that broadcast a single value
        to every field in a matrix. https://bugs.webkit.org/show_bug.cgi?id=199333

        * webgpu/whlsl-matrix.html:

2019-07-05  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] REGRESSION (r247015): facebook photo/video upload button is unresponsive to user interaction.
        https://bugs.webkit.org/show_bug.cgi?id=199502
        <rdar://problem/52547473>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition3-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition3.html: Added.

2019-07-05  Youenn Fablet  <youenn@apple.com>

        [iOS] Local capture MediaStreamTrack does not render in portrait mode
        https://bugs.webkit.org/show_bug.cgi?id=199519
        <rdar://problem/52689720>

        Reviewed by Eric Carlson.

        * webrtc/video-rotation-expected.txt:
        * webrtc/video-rotation.html:

2019-07-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r247115.

        Breaks lldbWebKitTester (and by extension, test-webkitpy)

        Reverted changeset:

        "[WHLSL] Standard library is too big to directly include in
        WebCore"
        https://bugs.webkit.org/show_bug.cgi?id=198186
        https://trac.webkit.org/changeset/247115

2019-07-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        Click events on outer page are not being dispatched correctly after touch-zooming within an iframe
        https://bugs.webkit.org/show_bug.cgi?id=185001
        <rdar://problem/40569615>

        Reviewed by Simon Fraser.

        Add a new layout test to verify that after interacting with an element with touch event handlers in a cross-
        origin subframe, the user is still able to click on elements on the top level document.

        * http/tests/events/touch/ios/click-after-handling-touch-in-cross-origin-frame.https-expected.txt: Added.
        * http/tests/events/touch/ios/click-after-handling-touch-in-cross-origin-frame.https.html: Added.
        * http/tests/events/touch/ios/resources/touch-target.html: Added.

2019-07-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        Touching media controls sometimes shows software keyboard
        https://bugs.webkit.org/show_bug.cgi?id=199490
        <rdar://problem/52076270>

        Reviewed by Eric Carlson.

        Adds a new layout test to verify that the keyboard only appears after a handled touch event if the focused
        element is inside a hidden editable area; otherwise, the keyboard should not be present.

        * fast/events/touch/ios/do-not-show-keyboard-after-preventing-touchstart-expected.txt: Added.
        * fast/events/touch/ios/do-not-show-keyboard-after-preventing-touchstart.html: Added.

        This test passes as long as we didn't begin showing the keyboard after tapping.

        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart-expected.txt:
        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart.html:

        Adjust this existing test to make the focused textarea hidden.

        * resources/ui-helper.js:
        (window.UIHelper.hasInputSession):

        Add a new testing hook to check whether there is an active input session.

2019-07-05  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999
        <rdar://problem/51979477>

        Reviewed by Dean Jackson.

        Update some WK1-specific expectations.

        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget-expected.txt:

2019-07-04  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] didFinishTransition triggers a nested style recalc via isConsideredClickable
        https://bugs.webkit.org/show_bug.cgi?id=199506
        <rdar://problem/52656221>

        Reviewed by Ryosuke Niwa.

        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-and-recursive-update-style-expected.txt: Added.
        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-and-recursive-update-style.html: Added.

2019-07-04  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Limit mouseOut dispatching after synthetic click to YouTube.com
        https://bugs.webkit.org/show_bug.cgi?id=199497
        <rdar://problem/52361019>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html:
        * fast/events/touch/ios/content-observation/mouse-out-event-should-not-fire-on-click-expected.txt: Added.
        * fast/events/touch/ios/content-observation/mouse-out-event-should-not-fire-on-click.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html.

2019-07-03  Simon Fraser  <simon.fraser@apple.com>

        Some layers inside overflow:scroll don't move back to correct positions when the contents are shrunk
        https://bugs.webkit.org/show_bug.cgi?id=199464
        rdar://problem/52613285

        Reviewed by Sam Weinig.

        * compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html: Added.

2019-07-03  Justin Fan  <justin_fan@apple.com>

        [WHLSL] Support float4x4 in test harness
        https://bugs.webkit.org/show_bug.cgi?id=199484

        Reviewed by Myles C. Maxfield.

        Support WHLSL float4x4 parameters in the WHLSL test harness.

        * webgpu/js/whlsl-test-harness.js:
        (isScalar):
        (convertTypeToArrayType):
        (convertTypeToWHLSLType):
        (Data):
        (makeFloat4):
        (makeFloat4x4):
        (processArrays):
        (async.callFloat4x4Function):
        (isVectorType): Deleted. Replaced with isScalar.

        Add some float4x4 sanity checks:
        * webgpu/whlsl-test-harness-test-expected.txt:
        * webgpu/whlsl-test-harness-test.html:

2019-07-03  Simon Fraser  <simon.fraser@apple.com>

        RELEASE_ASSERT in WebCore: WebCore::ScrollingStateTree::insertNode()
        https://bugs.webkit.org/show_bug.cgi?id=199479
        rdar://problem/52392556

        Reviewed by Zalan Bujtas.

        * scrollingcoordinator/scrolling-tree/scrolling-proxy-with-no-scrolling-layer-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/scrolling-proxy-with-no-scrolling-layer.html: Added.

2019-07-02  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Standard library is too big to directly include in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=198186
        <rdar://problem/51288898>

        Reviewed by Saam Barati.

        The standard library doesn't include any matrix constructors that broadcast a single value
        to every field in a matrix. https://bugs.webkit.org/show_bug.cgi?id=199333

        * webgpu/whlsl-matrix.html:

2019-07-03  Daniel Bates  <dabates@apple.com>

        Skip the test added in r246810 as it requires the simulator to be preconfigured with a Pinyin keyboard
        <rdar://problem/52608620>

        We will remove this prerequisite in <https://bugs.webkit.org/show_bug.cgi?id=199472>.

        * platform/ios/TestExpectations:

2019-07-03  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (iOS 13): Tapping an element with a click event handler no longer clears the selection
        https://bugs.webkit.org/show_bug.cgi?id=199430

        Reviewed by Tim Horton.

        Add and adjust layout tests to verify that calling preventDefault() on mousedown on iOS causes an existing
        selection to not be cleared, and that tapping in an element with a click handler clears out the selection.

        * editing/selection/ios/clear-selection-after-tapping-on-element-with-click-handler-expected.txt: Added.
        * editing/selection/ios/clear-selection-after-tapping-on-element-with-click-handler.html: Added.
        * editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler-expected.txt: Renamed.
        * editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html:

        Renamed from LayoutTests/editing/selection/ios/persist-selection-after-tapping-on-element-with-click-handler.html,
        and adjusted to call preventDefault() on mousedown events instead of click events. Also, remove a bit of
        trailing whitespace.

2019-07-03  Russell Epstein  <russell_e@apple.com>

        Rebaseline fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html
        https://bugs.webkit.org/show_bug.cgi?id=199459

        Unreviewed Test Gardening.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:

2019-07-03  Zalan Bujtas  <zalan@apple.com>

        REGRESSION (r244356): Drop down menus collapse without user input - Ebay.com
        https://bugs.webkit.org/show_bug.cgi?id=199457
        <rdar://problem/52386563>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-async-clickable-change-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-async-clickable-change.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-clickable-change-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-clickable-change.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html:

2019-07-03  Andres Gonzalez  <andresg_22@apple.com>

        Safari hanging while loading pages - WebCore::AccessibilityRenderObject::visiblePositionRangeForLine.
        https://bugs.webkit.org/show_bug.cgi?id=199434
        <rdar://problem/52475140>

        Reviewed by Chris Fleizach.

        Disabled the tests that were passing for workaround. The workaround had
        to be roll out cause it is hanging Safari.
        * TestExpectations:
        * platform/ios-wk2/TestExpectations:

2019-07-02  Fujii Hironori  <Hironori.Fujii@sony.com>

        imported/blink/animations/display-inline-style-adjust.html isn't a valid ref test
        https://bugs.webkit.org/show_bug.cgi?id=199311

        Reviewed by Simon Fraser.

        These tests are depending on platform font metrics. They were
        created for a Blink bug, doesn't seem useful for WebKit. Just
        removed them.

        * imported/blink/animations/display-inline-style-adjust.html: Deleted.
        * legacy-animation-engine/imported/blink/animations/display-inline-style-adjust.html: Deleted.
        * platform/gtk/TestExpectations: Unmarked them.
        * platform/ios/TestExpectations: Ditto.
        * platform/wpe/TestExpectations: Ditto.

2019-07-02  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Assertion fires when animating the 'class' attribute of an SVG element
        https://bugs.webkit.org/show_bug.cgi?id=197372

        Reviewed by Ryosuke Niwa.

        * svg/animations/animated-bool-externalResourcesRequired-instances-expected.svg: Added.
        * svg/animations/animated-bool-externalResourcesRequired-instances.svg: Added.
        * svg/animations/animated-string-class-instances-expected.svg: Added.
        * svg/animations/animated-string-class-instances.svg: Added.
        * svg/animations/animated-string-href-expected.svg: Added.
        * svg/animations/animated-string-href.svg: Added.

2019-07-02  Ryan Haddad  <ryanhaddad@apple.com>

        [macOS WK2] REGRESSION (r242313): Layout Test scrollingcoordinator/mac/multiple-fixed.html is a flaky time out and image diff
        https://bugs.webkit.org/show_bug.cgi?id=195635

        Unreviewed test gardening.

        Move test expectation entry to a more specific file.

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

2019-07-02  Saam Barati  <sbarati@apple.com>

        [WHLSL] Change whlsl-two-dimensional-array.html to not be flaky on AMD Radeon Pro GPUs
        https://bugs.webkit.org/show_bug.cgi?id=199424

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-two-dimensional-array.html:

2019-07-02  Andres Gonzalez  <andresg_22@apple.com>

        Enhance support of aria-haspopup per ARIA 1.1 specification.
        https://bugs.webkit.org/show_bug.cgi?id=199216
        <rdar://problem/46221342>

        Reviewed by Chris Fleizach.

        * accessibility/button-with-aria-haspopup-role-expected.txt:
        * accessibility/button-with-aria-haspopup-role.html:
        * accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt:
        * accessibility/ios-simulator/button-with-aria-haspopup-role.html:

2019-07-02  Saam Barati  <sbarati@apple.com>

        [WHLSL] Import bitwise bool tests
        https://bugs.webkit.org/show_bug.cgi?id=199093

        Reviewed by Myles C. Maxfield.

        This patch makes it so that we can mark bools as input and output types in the
        WHLSL harness. Since bool is not something WHLSL itself allows as an entrypoint
        input/output type (because we don't specify its bit pattern), we convert between
        bool and int in the input and output of the function. For now,  we don't support
        a buffer of bools for the input type as a simplification, so we don't have to worry
        about dynamically converting an int buffer to a bool buffer. We could add this
        in the future if we found it helpful, but we don't have a strong reason for supporting
        it right now.
        
        This patch also starts the process of importing the WHLSL test suite by importing bool
        bit op tests.

        * webgpu/js/whlsl-test-harness.js:
        (convertTypeToArrayType):
        (whlslArgumentType):
        (convertToWHLSLOutputType):
        (convertToWHLSLInputType):
        (Data):
        (Harness.prototype.get isWHLSL):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype._setUpArguments):
        (callVoidFunction):
        * webgpu/whlsl-bitwise-bool-ops-expected.txt: Added.
        * webgpu/whlsl-bitwise-bool-ops.html: Added.
        * webgpu/whlsl-test-harness-test-expected.txt:
        * webgpu/whlsl-test-harness-test.html:

2019-07-02  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Fix CookieJarCurl::getRawCookie.
        https://bugs.webkit.org/show_bug.cgi?id=199300

        Reviewed by Fujii Hironori.

        * http/tests/inspector/page/get-cookies-expected.txt: Added.
        * http/tests/inspector/page/get-cookies.html: Added.
        * http/tests/inspector/page/resources/set-cookie.php: Added.
        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-07-02  Daniel Bates  <dabates@apple.com>

        [iOS] Cannot tab cycle through credit card fields on antonsvpatisserie.com checkout page
        https://bugs.webkit.org/show_bug.cgi?id=196053
        <rdar://problem/49093034>

        Reviewed by Wenson Hsieh.

        Add some tests.

        * fast/events/ios/tab-cycle-expected.txt: Added.
        * fast/events/ios/tab-cycle.html: Added.
        * fast/events/ios/tab-into-text-field-inside-iframe-expected.txt: Added.
        * fast/events/ios/tab-into-text-field-inside-iframe.html: Added.

2019-07-02  Daniel Bates  <dabates@apple.com>

        Left and right option key has Unidentified key identifier
        https://bugs.webkit.org/show_bug.cgi?id=199392
        <rdar://problem/52497604>

        Reviewed by Wenson Hsieh.

        Update test results.

        * fast/events/ios/key-events-comprehensive/key-events-control-option-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-option-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-option-shift-expected.txt:

2019-07-02  Antti Koivisto  <antti@apple.com>

        Crash when adding inline stylesheet to shadow tree in document with null base URL
        https://bugs.webkit.org/show_bug.cgi?id=199400

        Reviewed by Zalan Bujtas.

        * fast/shadow-dom/stylesheet-in-shadow-without-base-url-crash-expected.txt: Added.
        * fast/shadow-dom/stylesheet-in-shadow-without-base-url-crash.html: Added.

2019-07-01  Justin Michaud  <justin_michaud@apple.com>

        [Wasm-References] Disable references by default
        https://bugs.webkit.org/show_bug.cgi?id=199390

        Reviewed by Saam Barati.

        * workers/wasm-references.html:

2019-07-01  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION(r245498): Timelines: CPU: discontinuities are filled in by the next record
        https://bugs.webkit.org/show_bug.cgi?id=198927

        Reviewed by Matt Baker.

        * inspector/unit-tests/set-utilities.html:
        * inspector/unit-tests/set-utilities-expected.txt:

2019-07-01  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/blink/fast/multicol/span/overflow-on-viewport.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199387

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-07-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS 13] editing/selection/ios/dispatch-mouse-events-when-modifying-selection-quirk.html fails on trunk
        https://bugs.webkit.org/show_bug.cgi?id=199384

        Reviewed by Tim Horton.

        Adjust this test to show the callout menu by tapping on the caret rect, rather than the center of the editable
        area. Currently, tapping the center of the editable area twice results in a double tap, which fails to trigger
        the callout bar.

        * editing/selection/ios/dispatch-mouse-events-when-modifying-selection-quirk.html:

2019-07-01  Chris Dumez  <cdumez@apple.com>

        It should not be possible to trigger a load while in the middle of restoring a page in PageCache
        https://bugs.webkit.org/show_bug.cgi?id=199190
        <rdar://problem/52114552>

        Reviewed by Brady Eidson.

        Add layout test coverage.

        * http/tests/security/navigate-when-restoring-cached-page-expected.txt: Added.
        * http/tests/security/navigate-when-restoring-cached-page.html: Added.
        * http/tests/security/resources/navigate-when-restoring-cached-page-frame.html: Added.
        * http/tests/security/resources/navigate-when-restoring-cached-page-victim.html: Added.

2019-07-01  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r246844.

        Broke 12 tests in imported/w3c/web-platform-
        tests/pointerevents/

        Reverted changeset:

        "[Pointer Events] Respect pointer capture when dispatching
        mouse boundary events and updating :hover"
        https://bugs.webkit.org/show_bug.cgi?id=198999
        https://trac.webkit.org/changeset/246844

2019-07-01  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r246958.

        Broke inspector/dom/getAccessibilityPropertiesForNode.html

        Reverted changeset:

        "Enhance support of aria-haspopup per ARIA 1.1 specification."
        https://bugs.webkit.org/show_bug.cgi?id=199216
        https://trac.webkit.org/changeset/246958

2019-07-01  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Exiting from fullscreen scrolls to top of page
        https://bugs.webkit.org/show_bug.cgi?id=199338
        <rdar://problem/51273017>

        Reviewed by Jer Noble.

        * fullscreen/fullscreen-restore-scroll-position-expected.txt: Added.
        * fullscreen/fullscreen-restore-scroll-position.html: Added.

2019-07-01  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/mozilla/svg/text/selectSubString.svg is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199370

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-07-01  Zalan Bujtas  <zalan@apple.com>

        Tapping on the bottom part of youtube video behaves as if controls were visible
        https://bugs.webkit.org/show_bug.cgi?id=199349
        <rdar://problem/51955744>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition2-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition2.html: Added.

2019-07-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        iOS: REGRESSION(async scroll): Caret doesn't scroll when scrolling textarea
        https://bugs.webkit.org/show_bug.cgi?id=198217
        <rdar://problem/51097296>

        Reviewed by Simon Fraser.

        Add a new layout test to check that the text selection views are updated after scrolling in a fast overflow
        scrolling container.

        * editing/selection/ios/update-selection-after-overflow-scroll-expected.txt: Added.
        * editing/selection/ios/update-selection-after-overflow-scroll.html: Added.

2019-06-30  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed, rolling out r246959.

        svg/clip-path/clip-hidpi.svg is flaky on mac-wk2-ews

        Reverted changeset:

        "LayoutTests svg/clip-path/clip-hidpi.svg isn't working as
        expected due to a syntax error"
        https://bugs.webkit.org/show_bug.cgi?id=199313
        https://trac.webkit.org/changeset/246959

2019-06-30  Fujii Hironori  <Hironori.Fujii@sony.com>

        LayoutTests svg/clip-path/clip-hidpi.svg isn't working as expected due to a syntax error
        https://bugs.webkit.org/show_bug.cgi?id=199313

        Reviewed by Carlos Garcia Campos.

        * svg/clip-path/clip-hidpi.svg: Fix the syntax error by replacing '->' with '=>'.
        Call testRunner.waitUntilDone() before testRunner.notifyDone().
        * svg/clip-path/clip-hidpi-expected.svg: Call testRunner.setBackingScaleFactor().

2019-06-30  Andres Gonzalez  <andresg_22@apple.com>

        Enhance support of aria-haspopup per ARIA 1.1 specification.
        https://bugs.webkit.org/show_bug.cgi?id=199216
        <rdar://problem/46221342>

        Reviewed by Chris Fleizach.

        * accessibility/button-with-aria-haspopup-role-expected.txt:
        * accessibility/button-with-aria-haspopup-role.html:
        * accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt:
        * accessibility/ios-simulator/button-with-aria-haspopup-role.html:

2019-06-29  Simon Fraser  <simon.fraser@apple.com>

        Remove a PLATFORM(IOS_FAMILY) related to repaint offsets in composited scrolling layers
        https://bugs.webkit.org/show_bug.cgi?id=199342

        Reviewed by Zalan Bujtas.

        * fast/events/touch/ios/touch-event-regions/scrolled-overflow-expected.txt: Added.
        * fast/events/touch/ios/touch-event-regions/scrolled-overflow.html: Added.

2019-06-28  Zalan Bujtas  <zalan@apple.com>

        [Text autosizing][iPadOS] bing.com is hard to read even with boosted text because of the line height
        https://bugs.webkit.org/show_bug.cgi?id=199318
        <rdar://problem/51826096>

        Reviewed by Wenson Hsieh.

        * fast/text-autosizing/ios/idempotentmode/line-height-boosting-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/line-height-boosting.html: Added.

2019-06-27  Ryosuke Niwa  <rniwa@webkit.org>

        Fix the test added in r246868 on iOS debug simulator.

        * editing/pasteboard/paste-contents-with-side-effects.html:

2019-06-27  Daniel Bates  <dabates@apple.com>

        [iOS] Select all with existing range selection replaces range instead of selecting all text
        https://bugs.webkit.org/show_bug.cgi?id=197950
        <rdar://problem/50245131>

        Reviewed by Wenson Hsieh.

        Add a test to ensure that pressing Command + A performs a "select all" even when there
        is an existing range selection.

        * fast/events/ios/select-all-with-existing-selection-expected.txt: Added.
        * fast/events/ios/select-all-with-existing-selection.html: Added.

2019-06-27  Russell Epstein  <russell_e@apple.com>

        Layout Test fast/parser/parser-yield-timing.html was flaky due to strict tolerance, increased tolerance.
        https://bugs.webkit.org/show_bug.cgi?id=199280

        Reviewed by Tim Horton.

        * fast/parser/parser-yield-timing-expected.txt:
        * fast/parser/parser-yield-timing.html:
        * platform/mac-wk1/TestExpectations:

2019-06-27  Ryan Haddad  <ryanhaddad@apple.com>

        REGRESSION (r246888): fast/dom/navigator-detached-no-crash.html failing on Apple High Sierra Release WK2 (Tests)
        https://bugs.webkit.org/show_bug.cgi?id=199284

        Unreviewed test gardening.

        * platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt: Rebaseline test after r246888.

2019-06-27  Russell Epstein  <russell_e@apple.com>

        Layout Test fast/parser/parser-yield-timing.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199280

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-06-27  Antoine Quint  <graouts@apple.com>

        pointerevents/ios/pointer-events-implicit-capture.html fails on iOS
        https://bugs.webkit.org/show_bug.cgi?id=199259

        Reviewed by Dean Jackson.

        The assumptions made by this test were incorrect. The "gotpointercapture" event should not be dispatched
        until the next pointer event is dispatched after setting pointer capture. Even though pointer capture is
        set implicitly on "pointerdown" on non-mouse devices, the event will only be fired once a "pointermove" or
        "pointerup" event is dispatched.

        * pointerevents/ios/pointer-events-implicit-capture.html:

2019-06-27  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r246876.

        * inspector/worker/console-basic-expected.txt:

2019-06-27  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, rebaseline test after r246876.

        * inspector/worker/console-basic-expected.txt:

2019-06-27  Saam Barati  <sbarati@apple.com>

        Unreviewed. Skip WebGPU tests on High Sierra since WebGPU is disabled.

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

2019-06-27  Antti Koivisto  <antti@apple.com>

        REGRESSION (touch-action): Can't scroll vertically when touching a horizontally-scrollable element on instagram.com
        https://bugs.webkit.org/show_bug.cgi?id=199268
        <rdar://problem/52246473>

        Reviewed by Antoine Quint.

        * pointerevents/ios/touch-action-region-manipulation-expected.txt: Added.
        * pointerevents/ios/touch-action-region-manipulation.html: Added.

2019-06-27  Devin Rousso  <drousso@apple.com>

        Web Inspector: throw an error if console.count/console.countReset is called with an object that throws an error from toString
        https://bugs.webkit.org/show_bug.cgi?id=199252

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-count.html:
        * inspector/console/console-count-expected.txt:
        * inspector/console/console-api-expected.txt:

2019-06-27  Saam Barati  <sbarati@apple.com>

        [WHLSL] Implement arrays and MakeArrayReference
        https://bugs.webkit.org/show_bug.cgi?id=198414

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-huge-array-expected.txt: Added.
        * webgpu/whlsl-huge-array.html: Added.
        * webgpu/whlsl-make-array-reference-expected.txt: Added.
        * webgpu/whlsl-make-array-reference.html: Added.
        * webgpu/whlsl-simple-arrays-expected.txt: Added.
        * webgpu/whlsl-simple-arrays.html: Added.
        * webgpu/whlsl-two-dimensional-array-expected.txt: Added.
        * webgpu/whlsl-two-dimensional-array.html: Added.

2019-06-26  Simon Fraser  <simon.fraser@apple.com>

        [Async overflow scrolling] Fix missing or misplaced content inside overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=199253

        Reviewed by Zalan Bujtas.

        * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * compositing/scrolling/async-overflow-scrolling/hidden-relative-layer-content-in-scroller-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/hidden-relative-layer-content-in-scroller.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller.html: Added.
        * compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller.html: Added.
        * compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:

2019-06-26  Ryosuke Niwa  <rniwa@webkit.org>

        ReplacementFragment should not have script observable side effects
        https://bugs.webkit.org/show_bug.cgi?id=199147

        Reviewed by Wenson Hsieh.

        Added regression tests.

        * editing/pasteboard/paste-contents-with-side-effects-expected.txt: Added.
        * editing/pasteboard/paste-contents-with-side-effects.html: Added.

2019-06-26  Andy Estes  <aestes@apple.com>

        [Payment Request] Set state to Closed when show() is called during an active session
        https://bugs.webkit.org/show_bug.cgi?id=199239

        Reviewed by Alex Christensen.

        Copied from web-platform-tests/payment-request/payment-is-showing.https.html and modified to
        use UIHelper instead of test_driver.bless.

        * http/tests/paymentrequest/payment-is-showing.https-expected.txt: Added.
        * http/tests/paymentrequest/payment-is-showing.https.html: Added.
        * http/tests/paymentrequest/resources/blank.html: Added.

2019-06-26  Russell Epstein  <russell_e@apple.com>

        Layout Test http/tests/performance/performance-resource-timing-resourcetimingbufferfull-shrinking-buffer-crash.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199242

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

2019-06-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iPadOS] eddm.usps.com scrolls horizontally due to explicit width set in viewport meta tag
        https://bugs.webkit.org/show_bug.cgi?id=199219
        <rdar://problem/50425765>

        Reviewed by Tim Horton.

        Add a new test to verify that if the meta viewport tag specifies a wide fixed width value, we will still try to
        shrink the page down to fit within the viewport.

        * fast/viewport/ios/shrink-to-fit-content-large-constant-width-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-content-large-constant-width.html: Added.

2019-06-26  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Implement console.countReset
        https://bugs.webkit.org/show_bug.cgi?id=199200

        Reviewed by Devin Rousso.

        * inspector/console/console-count-expected.txt:
        * inspector/console/console-count.html:
        * js/console-expected.txt:

2019-06-26  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=199012

        Reviewed by Saam Barati.

        Make the tests still pass if the machine doesn't support WebGPU.

        * webgpu/adapter-options-expected.txt: Removed.
        * webgpu/adapter-options.html: Removed.
        * webgpu/bind-groups.html:
        * webgpu/blend-color-triangle-strip-expected.html:
        * webgpu/blend-color-triangle-strip.html:
        * webgpu/blend-triangle-strip-expected.html:
        * webgpu/blend-triangle-strip.html:
        * webgpu/blit-commands-expected.html:
        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races-expected.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/color-write-mask-triangle-strip-expected.html:
        * webgpu/color-write-mask-triangle-strip.html:
        * webgpu/command-buffers.html:
        * webgpu/depth-enabled-triangle-strip-expected.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles-expected.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/js/create-worker-device.js: Removed.
        * webgpu/js/webgpu-functions.js:
        (drawWhiteSquareOnBlueBackgroundInSoftware):
        (drawGreenSquareInSoftware):
        (drawGreenAndBlueCheckerboardInSoftware):
        (async.mapWriteDataToBuffer):
        * webgpu/map-read-buffers.html:
        * webgpu/map-write-buffers.html:
        * webgpu/pipeline-layouts.html:
        * webgpu/propertyresolver/ander-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/ander-abstract-lvalue.html:
        * webgpu/propertyresolver/ander-expected.html:
        * webgpu/propertyresolver/ander-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/ander-lvalue-expected.html:
        * webgpu/propertyresolver/ander-lvalue.html:
        * webgpu/propertyresolver/ander.html:
        * webgpu/propertyresolver/getter-expected.html:
        * webgpu/propertyresolver/getter.html:
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-ander-expected.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-ander-lvalue.html:
        * webgpu/propertyresolver/indexer-ander.html:
        * webgpu/propertyresolver/indexer-getter-expected.html:
        * webgpu/propertyresolver/indexer-getter.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-setter-expected.html:
        * webgpu/propertyresolver/indexer-setter-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-setter-lvalue.html:
        * webgpu/propertyresolver/indexer-setter.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/setter-abstract-lvalue.html:
        * webgpu/propertyresolver/setter-lvalue-expected.html:
        * webgpu/propertyresolver/setter-lvalue.html:
        * webgpu/queue-creation.html:
        * webgpu/render-command-encoding.html:
        * webgpu/render-pipelines.html:
        * webgpu/shader-modules.html:
        * webgpu/simple-triangle-strip-expected.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/texture-triangle-strip-expected.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/textures-textureviews.html:
        * webgpu/vertex-buffer-triangle-strip-expected.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/viewport-scissor-rect-triangle-strip-expected.html:
        * webgpu/viewport-scissor-rect-triangle-strip.html:
        * webgpu/webgpu-enabled-expected.txt: Removed.
        * webgpu/webgpu-enabled-in-worker-expected.txt: Removed.
        * webgpu/webgpu-enabled-in-worker.html: Removed.
        * webgpu/webgpu-enabled.html: Removed.
        * webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html:
        * webgpu/whlsl-arbitrary-vertex-attribute-locations.html:
        * webgpu/whlsl-buffer-fragment-expected.html:
        * webgpu/whlsl-buffer-fragment.html:
        * webgpu/whlsl-buffer-length-expected.txt:
        * webgpu/whlsl-buffer-length.html:
        * webgpu/whlsl-buffer-vertex-expected.html:
        * webgpu/whlsl-buffer-vertex.html:
        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt:
        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html:
        * webgpu/whlsl-compute-expected.txt:
        * webgpu/whlsl-compute.html:
        * webgpu/whlsl-dereference-pointer-should-type-check-expected.html:
        * webgpu/whlsl-dereference-pointer-should-type-check.html:
        * webgpu/whlsl-do-while-loop-break-expected.html:
        * webgpu/whlsl-do-while-loop-break.html:
        * webgpu/whlsl-do-while-loop-continue-expected.html:
        * webgpu/whlsl-do-while-loop-continue.html:
        * webgpu/whlsl-do-while-loop-expected.html:
        * webgpu/whlsl-do-while-loop.html:
        * webgpu/whlsl-dont-crash-parsing-enum-expected.html:
        * webgpu/whlsl-dont-crash-parsing-enum.html:
        * webgpu/whlsl-dot-expressions-expected.html:
        * webgpu/whlsl-dot-expressions.html:
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt:
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-2-expected.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-2.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-3-expected.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-3.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-expected.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime.html:
        * webgpu/whlsl-expected.html:
        * webgpu/whlsl-loops-break-expected.html:
        * webgpu/whlsl-loops-break.html:
        * webgpu/whlsl-loops-continue-expected.html:
        * webgpu/whlsl-loops-continue.html:
        * webgpu/whlsl-loops-expected.html:
        * webgpu/whlsl-loops.html:
        * webgpu/whlsl-matrix-2-expected.txt:
        * webgpu/whlsl-matrix-2.html:
        * webgpu/whlsl-matrix-expected.txt:
        * webgpu/whlsl-matrix.html:
        * webgpu/whlsl-nested-dot-expression-rvalue-expected.html:
        * webgpu/whlsl-nested-dot-expression-rvalue.html:
        * webgpu/whlsl-nested-loop-expected.html:
        * webgpu/whlsl-nested-loop.html:
        * webgpu/whlsl-null-dereference-expected.txt:
        * webgpu/whlsl-null-dereference.html:
        * webgpu/whlsl-oob-access-expected.txt:
        * webgpu/whlsl-oob-access.html:
        * webgpu/whlsl-read-modify-write-high-zombies-expected.txt:
        * webgpu/whlsl-read-modify-write-high-zombies.html:
        * webgpu/whlsl-return-local-variable-expected.html:
        * webgpu/whlsl-return-local-variable.html:
        * webgpu/whlsl-store-to-property-updates-properly-expected.html:
        * webgpu/whlsl-store-to-property-updates-properly.html:
        * webgpu/whlsl-textures-getdimensions-expected.txt:
        * webgpu/whlsl-textures-getdimensions.html:
        * webgpu/whlsl-textures-load-expected.html:
        * webgpu/whlsl-textures-load.html:
        * webgpu/whlsl-textures-sample-expected.html:
        * webgpu/whlsl-textures-sample.html:
        * webgpu/whlsl-while-loop-break-expected.html:
        * webgpu/whlsl-while-loop-break.html:
        * webgpu/whlsl-while-loop-continue-expected.html:
        * webgpu/whlsl-while-loop-continue.html:
        * webgpu/whlsl-zero-initialize-values-2-expected.html:
        * webgpu/whlsl-zero-initialize-values-2.html:
        * webgpu/whlsl-zero-initialize-values-expected.html:
        * webgpu/whlsl-zero-initialize-values.html:
        * webgpu/whlsl.html:

2019-06-26  Simon Fraser  <simon.fraser@apple.com>

        Incorrect clippping with overflow:scroll inside oveflow:hidden with border-radius
        https://bugs.webkit.org/show_bug.cgi?id=199135
        rdar://problem/51882383

        Reviewed by Zalan Bujtas.

        * compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container.html: Added.

2019-06-26  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999
        <rdar://problem/51979477>

        Reviewed by Dean Jackson.

        Update some WK1-specific expectations.

        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget-expected.txt:

2019-06-26  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/mozilla/svg/text/selectSubString-2.svg is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199196

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-06-26  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Dispatch synthetic mouse event asynchronously in completePendingSyntheticClickForContentChangeObserver
        https://bugs.webkit.org/show_bug.cgi?id=199220
        <rdar://problem/51787961>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-crash-expected.txt: Added.
        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-crash.html: Added.

2019-06-25  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/blink/editing/selection/deleteFromDocument-crash.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199213

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-06-25  Justin Fan  <justin_fan@apple.com>

        [WHLSL] Make whlsl-test-harness actually generate WHLSL shaders by default
        https://bugs.webkit.org/show_bug.cgi?id=199028

        Reviewed by Saam Barati.

        whlsl-test-harness.js now generates WHLSL shaders and invokes WebKit's WHLSL compiler.
        MSL mode remains to facilitate further harness tesing.
        In addition, if WebGPU is not supported, synchronous Harness methods do nothing.
        Asynchronous methods will throw a WebGPUUnsupportedError that "rejects" the returned Promise.

        * TestExpectations:
        * platform/mac/TestExpectations:
        * webgpu/js/whlsl-test-harness.js:
        (WebGPUUnsupportedError): Layout tests should catch these to fail gracefully if WebGPU is not supported.
        (Data):
        (Data.prototype.async.getArrayBuffer):
        (Data.prototype.get isBuffer): Renamed from isPointer.
        (Harness):
        (Harness.prototype.async.requestDevice): Can be used to re-acquire a GPUDevice.
        (Harness.prototype.set isWHLSL): Determines whether harness will generate WHLSL or MSL shaders.
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.callVoidFunction):
        (Harness.prototype.get device):
        (Harness.prototype._clearResults):
        (Harness.prototype._setUpArguments):
        (Harness.prototype._callFunction):
        (Data.prototype.get isPointer): Deleted.
        (Harness.prototype._initialize): Deleted.
        (Harness.prototype.async.callVoidFunction): Deleted.
        (harness._initialize.async): Deleted.
        * webgpu/msl-harness-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-harness-test-expected.txt.
        * webgpu/msl-harness-test.html: Copied from LayoutTests/webgpu/whlsl-harness-test.html.
        * webgpu/whlsl-test-harness-test-expected.html: Added.
        * webgpu/whlsl-test-harness-test.html: Renamed from LayoutTests/webgpu/whlsl-harness-test.html.

2019-06-25  Daniel Bates  <dabates@apple.com>

        Non-editable text selections should be modifiable with hardware keyboard
        https://bugs.webkit.org/show_bug.cgi?id=199204
        <rdar://problem/51651496>

        Reviewed by Wenson Hsieh.

        Add a test, skipped for now, until we have the fix for <rdar://problem/48322899>.

        * editing/selection/ios/select-non-editable-text-using-keyboard-expected.txt: Added.
        * editing/selection/ios/select-non-editable-text-using-keyboard.html: Added.
        * platform/ios/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.callFunctionAndWaitForEvent): Added.

2019-06-25  Daniel Bates  <dabates@apple.com>

        [iOS] Should not process key events in non-editable elements using IME
        https://bugs.webkit.org/show_bug.cgi?id=199122
        <rdar://problem/52006654>

        Reviewed by Brent Fulgham.

        Add a test to ensure that we do not process key events as being handled by the Input Manager
        when using a Chinese keyboard layout and targeting a non-editable element.

        * fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt: Added.
        * fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard.html: Added.

2019-06-25  Truitt Savell  <tsavell@apple.com>

        [macOS WK2] REGRESSION (r242313): Layout Test scrollingcoordinator/mac/multiple-fixed.html is a flaky time out and image diff
        https://bugs.webkit.org/show_bug.cgi?id=195635

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-06-25  John Wilander  <wilander@apple.com>

        Migrate LayoutTests/http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store* test cases to setEnableFeature() and jsTestIsAsync
        https://bugs.webkit.org/show_bug.cgi?id=199180
        <rdar://problem/52085369>

        Reviewed by Brent Fulgham.

        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-expected.txt:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-expected.txt:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html:

2019-06-25  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/mozilla/svg/text/textpath-selection.svg is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199196

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-06-25  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Implement console.timeLog
        https://bugs.webkit.org/show_bug.cgi?id=199184

        Reviewed by Devin Rousso.

        * inspector/console/console-time-expected.txt:
        * inspector/console/console-time.html:
        Add new timeLog tests.

        * js/console-expected.txt:
        New timeLog method.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        Unskip test.

2019-06-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening

        * TestExpectations: Added webkit.org/b/184066 to imported/w3c/web-platform-tests/IndexedDB/nested-cloning-large-multiple.html and others.
        Added webkit.org/b/184065 to imported/w3c/web-platform-tests/IndexedDB/keypath-exceptions.htm.

2019-06-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo] Unreviewed test gardening

        * platform/wincairo/TestExpectations: Added webkit.org/b/199186 to fonts/use-typo-metrics-1.html.
        Removed duplicated storage/indexeddb/key-type-array-private.html and storage/indexeddb/key-type-array.html.

2019-06-24  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Text autosizing] [iPadOS] Revise our heuristics to determine idempotent text autosizing candidates
        https://bugs.webkit.org/show_bug.cgi?id=198763
        <rdar://problem/51826266>

        Reviewed by Simon Fraser.

        Rebaseline an existing text autosizing test, and introduce some new test cases that correspond to several common
        patterns of autosizable (or non-autosizable) text on websites that were surveyed.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html:
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html: Renamed from LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip.html.

        Rename this existing layout test too, to avoid using the term "skip" in the name of a layout test.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip-expected.txt: Removed.

2019-06-24  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r246725 ): Crashes on twitch.tv
        https://bugs.webkit.org/show_bug.cgi?id=199176

        Reviewed by Zalan Bujtas.

        * scrollingcoordinator/scrolling-tree/scroller-with-negative-z-child-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/scroller-with-negative-z-child.html: Added.

2019-06-24  Alexey Shvayka  <shvaikalesh@gmail.com>

        Add Array.prototype.{flat,flatMap} to unscopables
        https://bugs.webkit.org/show_bug.cgi?id=194322

        Reviewed by Keith Miller.

        * js/array-unscopables-properties-expected.txt:
        * js/script-tests/array-unscopables-properties.js:

2019-06-24  Jer Noble  <jer.noble@apple.com>

        iOS 12.2 Drawing portrait video to canvas is sideways
        https://bugs.webkit.org/show_bug.cgi?id=196772
        <rdar://problem/49781802>

        Reviewed by Eric Carlson.

        * media/content/no-rotation.mp4:
        * media/media-source/only-bcp47-language-tags-accepted-as-valid-expected.txt:
        * media/video-orientation-canvas-expected.txt: Added.
        * media/video-orientation-canvas.html: Added.
        * media/video-test.js:
        (waitFor):

2019-06-24  Daniel Bates  <dabates@apple.com>

        m_focusedElement != &element in WebPage::elementDidBlur() sometimes
        https://bugs.webkit.org/show_bug.cgi?id=198928
        <rdar://problem/51814327>

        Reviewed by Brent Fulgham.

        Update test result now that we do not mutate the focused frame on tap.

        * TestExpectations: Skip problematic test editing/deleting/smart-delete-paragraph-003.html;
        See <https://bugs.webkit.org/show_bug.cgi?id=198928#c16>, <https://bugs.webkit.org/show_bug.cgi?id=198928#c17>,
        and <https://bugs.webkit.org/show_bug.cgi?id=199039> for more details.
        * fast/events/ios/should-be-able-to-dismiss-form-accessory-after-tapping-outside-iframe-with-focused-field-expected.txt:

2019-06-24  Antoine Quint  <graouts@apple.com>

        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_coordinates_when_locked.html
        https://bugs.webkit.org/show_bug.cgi?id=197007

        Reviewed by Dean Jackson.

        This test now works reliably, even if it fails the actual assertions.

        * platform/mac/TestExpectations:

2019-06-24  Antoine Quint  <graouts@apple.com>

        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_is_first.html
        https://bugs.webkit.org/show_bug.cgi?id=197005

        Reviewed by Dean Jackson.

        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        * platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        * platform/mac-highsierra/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        Since we've fixed the issue with event dispatch in WK1, we can remove these platform-specific expectations.
        * platform/mac/TestExpectations: We no longer skip this test which works reliably.
        * pointerevents/mouse/pointer-capture.html: We modify this test to correctly expect the "gotpointercapture" event only once the next
        pointer event has been dispatched.

2019-06-24  Greg Doolittle  <gr3g@apple.com>

        Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt>
        https://bugs.webkit.org/show_bug.cgi?id=194754

        Reviewed by Chris Fleizach.

        * accessibility/img-alt-attribute-unassigned-value-expected.txt: Added.
        * accessibility/img-alt-attribute-unassigned-value.html: Added.
        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:

2019-06-24  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999
        <rdar://problem/51979477>

        Unreviewed.

        Rolling back all changes made for this bug (r246728 + r246716 + r246674) as it regressed one test
        (imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame.html).

        * platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Added.
        * platform/mac-highsierra/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_capture-expected.txt: Removed.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget-expected.txt:

2019-06-23  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo] Unreviewed test gardening

        * platform/wincairo/TestExpectations:

2019-06-23  Simon Fraser  <simon.fraser@apple.com>

        [Async overflow scroll] Clipped composited layers inside overflow scroll jitter and get incorrectly clipped
        https://bugs.webkit.org/show_bug.cgi?id=199133
        rdar://problem/43614439

        Reviewed by Antti Koivisto.
        
        New baselines for:
        - clipping layers no longer have offsetFromRenderer(), which they didn't need.
        - positioned nodes don't print scrollBehavior (they are always "Stationary")
        - "Moves" positioned nodes are replaced with overflow scroll proxy nodes

        * compositing/backing/backing-store-attachment-empty-keyframe-expected.txt:
        * compositing/geometry/clip-expected.txt:
        * compositing/geometry/clip-inside-expected.txt:
        * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
        * compositing/layer-creation/clipping-scope/nested-scroller-overlap.html:
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * compositing/overflow/clip-descendents-expected.txt:
        * compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants.html:
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll.html: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested.html: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow.html: Added.
        * compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness.html:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt: Copied from LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt: Copied from LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
        * scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt.
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt.
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested.html: Added.
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow.html: Added.
        * scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
        * scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:

2019-06-23  Antoine Quint  <graouts@apple.com>

        [Pointer Events WPT] Unflake imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame.html
        https://bugs.webkit.org/show_bug.cgi?id=197058

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-06-23  Antoine Quint  <graouts@apple.com>

        [Pointer Events WPT] Unflake imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_invalid_pointerid.html
        https://bugs.webkit.org/show_bug.cgi?id=197009

        Unreviewed test gardening.

        This test some being flaky as of r245809, the fix for wkb.ug/198191.

        * platform/mac/TestExpectations:

2019-06-22  Andres Gonzalez  <andresg_22@apple.com>

        Accessibility objects contained in links should honor the aria-haspopup attribute in the ancestor link.
        https://bugs.webkit.org/show_bug.cgi?id=199107
        <rdar://problem/43663611>

        Reviewed by Chris Fleizach.

        * accessibility/element-haspopup-expected.txt:
        * accessibility/element-haspopup.html: Added cases for a <p> element contained within <a>.
        * accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt: Added.
        * accessibility/ios-simulator/button-with-aria-haspopup-role.html: Added. Existed for MacOS and now also for iOS.
        * accessibility/ios-simulator/element-haspopup-expected.txt: Copied from LayoutTests/accessibility/element-haspopup-expected.txt.
        * accessibility/ios-simulator/element-haspopup.html: Added.

2019-06-21  Sihui Liu  <sihui_liu@apple.com>

        openDatabase should return an empty object when WebSQL is disabled
        https://bugs.webkit.org/show_bug.cgi?id=198805

        Reviewed by Geoffrey Garen.

        Modify test expectation as openDatabase is not a function but an attribute of window now.

        * js/dom/global-function-resolve-expected.txt:
        * js/dom/script-tests/global-function-resolve.js:

2019-06-21  Saam Barati  <sbarati@apple.com>

        [WHLSL] Code that accesses an undefined variable crashes
        https://bugs.webkit.org/show_bug.cgi?id=198775

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-use-undefined-variable-2-expected.txt: Added.
        * webgpu/whlsl-use-undefined-variable-2.html: Added.
        * webgpu/whlsl-use-undefined-variable-expected.txt: Added.
        * webgpu/whlsl-use-undefined-variable.html: Added.

2019-06-21  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r246611.

        Introduced a flakey test.

        Reverted changeset:

        "iOS 12.2 Drawing portrait video to canvas is sideways"
        https://bugs.webkit.org/show_bug.cgi?id=196772
        https://trac.webkit.org/changeset/246611

2019-06-21  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] read modify write expressions do no work as expected
        https://bugs.webkit.org/show_bug.cgi?id=195864

        Unreviewed test gardening.

        * webgpu/whlsl-read-modify-write-expected.txt: Added.

2019-06-21  Tim Horton  <timothy_horton@apple.com>

        Preview of <picture> element doesn't match element bounds
        https://bugs.webkit.org/show_bug.cgi?id=199049
        <rdar://problem/51474402>

        Reviewed by Simon Fraser.

        * fast/text-indicator/text-indicator-uses-img-size-inside-picture-expected.txt: Added.
        * fast/text-indicator/text-indicator-uses-img-size-inside-picture.html: Added.

2019-06-21  Antoine Quint  <graouts@apple.com>

        [iOS] Compatibility mouse events aren't prevented by calling preventDefault() on pointerdown
        https://bugs.webkit.org/show_bug.cgi?id=198124

        Reviewed by Dean Jackson.

        Add a new test that checks that calling preventDefault() within a "pointerdown" event handler correctly prevents
        the dispatch of compatibility mouse events even with a slow tap. 

        * pointerevents/ios/pointer-events-no-mousedown-when-prevent-default-called-on-pointerdown-expected.txt: Added.
        * pointerevents/ios/pointer-events-no-mousedown-when-prevent-default-called-on-pointerdown.html: Added.

2019-06-21  Russell Epstein  <russell_e@apple.com>

        Layout Test animations/change-one-anim.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=190882

        Unreviewed Test Gardening.

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

2019-06-21  Youenn Fablet  <youenn@apple.com>

        Safari crashes after ~2028 OfflineAudioContext objects are created (they never get garbage collected, consuming a thread each)
        https://bugs.webkit.org/show_bug.cgi?id=198964
        <rdar://problem/51891520>

        Reviewed by Jer Noble.

        * webaudio/offlineaudiocontext-gc-expected.txt: Added.
        * webaudio/offlineaudiocontext-gc.html: Added.

2019-06-21  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r246655.

        Introduced a failing test

        Reverted changeset:

        "Web Inspector: AXI: Audit: image label test is throwing
        spurious errors on elements with existing alt attr, but no
        value: <img alt>"
        https://bugs.webkit.org/show_bug.cgi?id=194754
        https://trac.webkit.org/changeset/246655

2019-06-21  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] read modify write expressions do no work as expected
        https://bugs.webkit.org/show_bug.cgi?id=195864

        Reviewed by Saam Barati.

        * webgpu/whlsl-read-modify-write.html: Added.

2019-06-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK gardening. Rebaseline css-dark-mode/default-colors.html.

        * platform/gtk/TestExpectations:
        * platform/gtk/css-dark-mode/default-colors-expected.txt:

2019-06-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK gardening. Skip touch event tests.

        Since r245788 touch events support is enabled at runtime depending on whether there's an actual touch device
        attached or not. We need to skip the tests in the bots since they don't have a touch screen.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/events/event-attribute-expected.txt: Removed.
        * platform/gtk/fast/events/touch/document-create-touch-list-expected.txt: Removed.

2019-06-20  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999

        Reviewed by Dean Jackson.

        Record progressions in two WPT tests and mark updated failures in two other WPT tests.

        * platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        * platform/mac-highsierra/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_capture-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame-expected.txt: Removed.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget-expected.txt:

2019-06-20  Antoine Quint  <graouts@apple.com>

        fast/events/ios/click-event-and-display-contents.html times out on iPad
        https://bugs.webkit.org/show_bug.cgi?id=199068
        <rdar://problem/51899547>

        Reviewed by Dean Jackson.

        Querying the bounds of a "display: contents" element will always return 0 width and height. So let's position the element at 0,0
        so that we can send a tap at that location and reliably tap on that element.

        * fast/events/ios/click-event-and-display-contents.html:

2019-06-20  Simon Fraser  <simon.fraser@apple.com>

        Make it possible to include clipping in GraphicsLayer tree dumps
        https://bugs.webkit.org/show_bug.cgi?id=199096

        Reviewed by Zalan Bujtas.

        * compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt:
        * compositing/clipping/border-radius-async-overflow-clipping-layer.html:
        * compositing/clipping/border-radius-overflow-hidden-stacking-context-expected.txt:
        * compositing/clipping/border-radius-overflow-hidden-stacking-context.html:
        * platform/mac-wk1/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt:

2019-06-20  Greg Doolittle  <gr3g@apple.com>

        Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt>
        https://bugs.webkit.org/show_bug.cgi?id=194754

        Reviewed by Chris Fleizach.

        * accessibility/img-alt-attribute-unassigned-value-expected.txt: Added.
        * accessibility/img-alt-attribute-unassigned-value.html: Added.
        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:

2019-06-20  Saam Barati  <sbarati@apple.com>

        [WHLSL] Property resolver needs to recurse on newValueExpression for RMW operations
        https://bugs.webkit.org/show_bug.cgi?id=199037

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-read-modify-write-high-zombies-expected.txt: Added.
        * webgpu/whlsl-read-modify-write-high-zombies.html: Added.

2019-06-20  Justin Fan  <justin_fan@apple.com>

        [WebGPU] High Sierra/Intel HD Graphics 4000: whlsl-harness-test.html crashes during dispatch call.
        https://bugs.webkit.org/show_bug.cgi?id=199076

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Skip the test on High Sierra.

2019-06-20  Justin Michaud  <justin_michaud@apple.com>

        [WASM-References] Add extra tests for Wasm references + fix element parsing and subtyping bugs
        https://bugs.webkit.org/show_bug.cgi?id=199044

        Reviewed by Saam Barati.

        Add wasm references spec tests as well as a worker test. 

        * workers/wasm-references.html: Added.
        * workers/wasm-references/test.js: Added.
        (const._fail):
        (const.isNotA.assert.isNotA):
        (const):
        (switch.typeof):
        (Builder):
        (Builder.prototype.setChecked):
        (Builder.prototype.setPreamble):
        (Builder.prototype._functionIndexSpaceKeyHash):
        (Builder.prototype._registerFunctionToIndexSpace):
        (Builder.prototype._getFunctionFromIndexSpace):
        (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
        (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.const.codeBuilder.End.switch.case.string_appeared_here.e):
        (Builder.prototype._registerSectionBuilders.this.Unknown):
        (done):
        (runTest.worker.onmessage):
        (runTest):
        (doGC):
        * workers/wasm-references/worker.js: Added.
        (const._fail):
        (const.isNotA.assert.isNotA):

2019-06-20  Youenn Fablet  <youenn@apple.com>

        Changing settings of a MediaStreamTrack clone should not alter the settings of the original track
        https://bugs.webkit.org/show_bug.cgi?id=198840

        Reviewed by Eric Carlson.

        * fast/mediastream/mediastreamtrack-video-clone-expected.txt: Added.
        * fast/mediastream/mediastreamtrack-video-clone.html: Added.

2019-06-20  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/blink/fast/css/user-select-none.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199071

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-06-20  Shawn Roberts  <sroberts@apple.com>

        Moving expectations files
        https://bugs.webkit.org/show_bug.cgi?id=196495

        Unreviewed test gardening.

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

2019-06-20  Alexander Mikhaylenko  <exalm7659@gmail.com>

        [GTK] Enable navigation swipe layout tests
        https://bugs.webkit.org/show_bug.cgi?id=198995

        Reviewed by Michael Catanzaro.

        Enable the existing tests for the swipe gesture.

        swipe/pushState-programmatic-back-while-swiping-crash.html is not applicable because
        it deals with NSEvents directly, skip it.

        swipe/main-frame-pinning-requirement.html is flaky, same as on Mac.

        swipe/pushstate-with-manual-scrollrestoration.html passes, don't mark it as failure.

        * platform/gtk/TestExpectations:

2019-06-20  Alexander Mikhaylenko  <exalm7659@gmail.com>

        [GTK] HTTP layout tests don't run in flatpak
        https://bugs.webkit.org/show_bug.cgi?id=199067

        Reviewed by Michael Catanzaro.

        Set PERL5LIB environment variable in Apache config.

        * http/conf/flatpak-httpd.conf:

2019-06-18  Darin Adler  <darin@apple.com>

        Tidy up the remaining bits of the AtomicString to AtomString rename
        https://bugs.webkit.org/show_bug.cgi?id=198990

        Reviewed by Michael Catanzaro.

        * js/dopey-rope-with-16-bit-propertyname-expected.txt: Rename to AtomString.
        * js/dopey-rope-with-16-bit-propertyname.html: Ditto.

2019-06-19  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up common texture functions
        https://bugs.webkit.org/show_bug.cgi?id=198704
        <rdar://problem/51668841>

        Reviewed by Saam Barati.

        Make the text tests play better with js-test-pre.js.

        * webgpu/whlsl-buffer-length.html:
        * webgpu/whlsl-compute-expected.txt:
        * webgpu/whlsl-compute.html:
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html:
        * webgpu/whlsl-null-dereference-expected.txt:
        * webgpu/whlsl-null-dereference.html:
        * webgpu/whlsl-oob-access-expected.txt:
        * webgpu/whlsl-oob-access.html:
        * webgpu/whlsl-textures-getdimensions-expected.txt: Added.
        * webgpu/whlsl-textures-getdimensions.html: Copied from LayoutTests/webgpu/whlsl-buffer-length.html.
        * webgpu/whlsl-textures-load-expected.html: Added.
        * webgpu/whlsl-textures-load.html: Added.
        * webgpu/whlsl-textures-sample-expected.html: Added.
        * webgpu/whlsl-textures-sample.html: Added.

2019-06-19  Rob Buis  <rbuis@igalia.com>

        Make preload/link-header-preload-imagesrcset.html work on DPR != 1
        https://bugs.webkit.org/show_bug.cgi?id=198533

        Reviewed by Youenn Fablet.

        Remove unneeded iOS test expectations.

        * platform/ios-simulator-12-wk2/imported/w3c/web-platform-tests/preload/dynamic-adding-preload-imagesrcset-expected.txt: Removed.
        * platform/ios-simulator-12-wk2/imported/w3c/web-platform-tests/preload/link-header-preload-imagesrcset-expected.txt: Removed.

2019-06-19  Justin Fan  <justin_fan@apple.com>

        [WHLSL] Create a shading language test harness
        https://bugs.webkit.org/show_bug.cgi?id=198978

        Reviewed by Myles C. Maxfield.

        Introduce a test harness that can be used to test WebGPU shader compilation and functionality.
        Currently using MSL. 
        Will be replaced with WHLSL as it gains the minimum features needed to support.

        * webgpu/js/whlsl-test-harness.js: Added.
        (isVectorType):
        (convertTypeToArrayType):
        (convertTypeToWHLSLType):
        (Data):
        (Data.prototype.async.getArrayBuffer):
        (Data.prototype.get type):
        (Data.prototype.get isPointer):
        (Data.prototype.get buffer):
        (Data.prototype.get byteLength):
        (Harness.prototype._initialize):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.async.callVoidFunction):
        (Harness.prototype._setUpArguments):
        (Harness.prototype._callFunction):
        (Harness):
        (harness._initialize.async):
        (makeBool):
        (makeInt):
        (makeUchar):
        (makeUint):
        (makeFloat):
        (makeFloat4):
        (async.callBoolFunction):
        (async.callIntFunction):
        (async.callUcharFunction):
        (async.callUintFunction):
        (async.callFloatFunction):
        (async.callFloat4Function):
        (callVoidFunction):
        * webgpu/whlsl-harness-test-expected.txt: Added.
        * webgpu/whlsl-harness-test.html: Added.

2019-06-19  Saam Barati  <sbarati@apple.com>

        [WHLSL] The checker needs to resolve types for the anonymous variables in ReadModifyWrite expressions
        https://bugs.webkit.org/show_bug.cgi?id=198988

        Reviewed by Dean Jackson and Myles C. Maxfield.

        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt: Added.
        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html: Added.

2019-06-19  Nikita Vasilyev  <nvasilyev@apple.com>

        REGRESSION(r240946): Web Inspector: Styles: Pasting multiple properties has issues
        https://bugs.webkit.org/show_bug.cgi?id=198505
        <rdar://problem/51374780>

        Reviewed by Matt Baker.

        * inspector/css/modify-css-property.html:
        Listen for PropertiesChanged on the specific inline style declaration.
        In Debug, PropertiesChanged may fire on a computed style declaration first,
        causing the test to fail.

        * inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
        Drive-by: fix trailing white space.

2019-06-19  Ryan Haddad  <ryanhaddad@apple.com>

        REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=199012

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Limit the failure expectation to High Sierra.

2019-06-19  Russell Epstein  <russell_e@apple.com>

        Layout Tests in imported/w3c/web-platform-tests/websockets/ are flakey failures after r246406.
        https://bugs.webkit.org/show_bug.cgi?id=199013

        Unreviewed Test Gardening.

        * TestExpectations:

2019-06-19  Jer Noble  <jer.noble@apple.com>

        iOS 12.2 Drawing portrait video to canvas is sideways
        https://bugs.webkit.org/show_bug.cgi?id=196772
        <rdar://problem/49781802>

        Reviewed by Eric Carlson.

        * media/content/no-rotation.mp4:
        * media/media-source/only-bcp47-language-tags-accepted-as-valid-expected.txt:
        * media/video-orientation-canvas-expected.html: Added.
        * media/video-orientation-canvas.html: Added.
        * media/video-test.js:
        (waitFor):

2019-06-19  Alicia Boya García  <aboya@igalia.com>

        [GTK] Unreviewed test gardening
        https://bugs.webkit.org/show_bug.cgi?id=199021

        * platform/gtk/TestExpectations:

2019-06-19  Simon Fraser  <simon.fraser@apple.com>

        Revert parts of r246538 so that frame scrolling is reverted to using layer positions.
        Overflow scroll will still scroll by changing boundsOrigin.
        
        The bug was caused by confusion about insetClipLayer and scrollContainerLayer; macOS
        positions the clip layer using FrameView::yPositionForInsetClipLayer(), so it's not just
        a simple scroll container, and this change broke positioning for fixed position layers.

        * compositing/iframes/scrolling-iframe-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
        * platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * platform/mac-highsierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * platform/mac-highsierra-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
        * platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:

2019-06-19  Russell Epstein  <russell_e@apple.com>

        webgpu/blend-color-triangle-strip.html is a flakey failure since introduction.
        https://bugs.webkit.org/show_bug.cgi?id=198921

        Unreviewed Test Gardening.

        * platform/mac-wk2/TestExpectations:

2019-06-19  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199013

        Unreviewed Test Gardening.

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

2019-06-19  Antti Koivisto  <antti@apple.com>

        RequestedScrollPosition shouldn't be applied after node reattach
        https://bugs.webkit.org/show_bug.cgi?id=198994
        <rdar://problem/51439685>

        Reviewed by Simon Fraser.

        * scrollingcoordinator/ios/scroll-position-after-reattach-expected.html: Added.
        * scrollingcoordinator/ios/scroll-position-after-reattach.html: Added.

2019-06-19  Truitt Savell  <tsavell@apple.com>

        REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=199012

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-06-19  Cathie Chen  <cathiechen@igalia.com>

        resize-observer/element-leak.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=198666

        Reviewed by Frédéric Wang.

        It takes a very long time to construct iframes which create and remove 1000 elements. This would cause timeout sometimes.
        In order to make it more effective, reduce the number of elements to 200 and put them into a container first,
        then attach the container to DOM tree.

        * resize-observer/resources/element-leak-frame.html:

2019-06-18  Megan Gardner  <megan_gardner@apple.com>

        Text Selection gesture has changed behavior, change test to match new behavior
        https://bugs.webkit.org/show_bug.cgi?id=198980
        <rdar://problem/51713918>

        Reviewed by Wenson Hsieh.

        Long press and drag now starts a selection and entends the range, rather than changing
        the start of the text selection. Update the test to match the new behavior. 

        * fast/events/touch/ios/long-press-then-drag-to-select-text.html:

2019-06-18  Saam Barati  <sbarati@apple.com>

        [WHLSL] Support matrices
        https://bugs.webkit.org/show_bug.cgi?id=198876
        <rdar://problem/51768882>

        Reviewed by Dean Jackson and Myles Maxfield.

        * webgpu/whlsl-matrix-2-expected.txt: Added.
        * webgpu/whlsl-matrix-2.html: Added.
        * webgpu/whlsl-matrix-expected.txt: Added.
        * webgpu/whlsl-matrix.html: Added.

2019-06-18  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=198977

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

2019-06-18  Russell Epstein  <russell_e@apple.com>

        Layout test http/tests/websocket/tests/hybi/send-object-tostring-check.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=176030

        Unreviewed Test Gardening.

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

2019-06-18  Daniel Bates  <dabates@apple.com>

        REGRESSION (r240757): Cannot dismiss the keyboard on http://apple.com/apple-tv-plus
        https://bugs.webkit.org/show_bug.cgi?id=198922
        <rdar://problem/50300056>

        Reviewed by Wenson Hsieh.

        Add a test to ensure that pressing Done hides the keyboard after tapping outside the focused
        element's frame.

        * fast/events/ios/should-be-able-to-dismiss-form-accessory-after-tapping-outside-iframe-with-focused-field-expected.txt: Added.
        * fast/events/ios/should-be-able-to-dismiss-form-accessory-after-tapping-outside-iframe-with-focused-field.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.dismissFormAccessoryView): Added.

2019-06-18  Alexey Shvayka  <shvaikalesh@gmail.com>

        [ESNExt] String.prototype.matchAll
        https://bugs.webkit.org/show_bug.cgi?id=186694

        Reviewed by Yusuke Suzuki.

        Implement String.prototype.matchAll.
        (https://tc39.es/ecma262/#sec-string.prototype.matchall)

        * js/Object-getOwnPropertyNames-expected.txt:
        * js/script-tests/Object-getOwnPropertyNames.js:

2019-06-18  Keith Miller  <keith_miller@apple.com>

        Add support for WeakRef
        https://bugs.webkit.org/show_bug.cgi?id=198710

        Reviewed by Yusuke Suzuki.

        Add an asyncTestStart that mirrors the asyncTestStart behavior in
        the JSC cli.

        * http/tests/resources/js-test-pre.js:
        (asyncTestStart):
        * js/script-tests/weakref-async-is-collected.js: Added.
        (makeWeakRef):
        (turnEventLoop):
        (async.foo):
        (async.test):
        * js/script-tests/weakref-eventually-collects-values.js: Added.
        (makeWeakRef):
        (turnEventLoop):
        (let.weakRefs.async.test):
        * js/script-tests/weakref-microtasks-dont-collect.js: Added.
        (asyncTestStart.1.makeWeakRef):
        (turnEventLoop):
        (async.foo):
        (async.test):
        * js/script-tests/weakref-weakset-consistency.js: Added.
        (makeWeakRef):
        (turnEventLoop):
        (async.foo):
        (async.test):
        * js/weakref-async-is-collected-expected.txt: Added.
        * js/weakref-async-is-collected.html: Added.
        * js/weakref-eventually-collects-values-expected.txt: Added.
        * js/weakref-eventually-collects-values.html: Added.
        * js/weakref-microtasks-dont-collect-expected.txt: Added.
        * js/weakref-microtasks-dont-collect.html: Added.
        * js/weakref-weakset-consistency-expected.txt: Added.
        * js/weakref-weakset-consistency.html: Added.
        * resources/js-test-pre.js:
        (asyncTestStart):

2019-06-18  Daniel Bates  <dabates@apple.com>

        [iOS] Pressing key while holding Command should not insert character
        https://bugs.webkit.org/show_bug.cgi?id=198925
        <rdar://problem/51778811>

        Reviewed by Brent Fulgham.

        Add a test that Command + Shift + v does not insert a v as we don't expect it
        to as of the time of writing. A more comprehensive test would be needed to
        ensure that all unhandled key commands with Command modifiers do not insert
        a character. For now, the added test seems good enough.

        * fast/events/ios/command+shift+v-should-not-insert-v-expected.txt: Added.
        * fast/events/ios/command+shift+v-should-not-insert-v.html: Added.

2019-06-18  Russell Epstein  <russell_e@apple.com>

        [iOS] Layout Test http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is frequently failing or timing out.
        https://bugs.webkit.org/show_bug.cgi?id=198185.

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-06-18  Devin Rousso  <drousso@apple.com>

        Web Inspector: parseQueryParameters fails to successfully parse query parameter values that contain "="
        https://bugs.webkit.org/show_bug.cgi?id=198971
        <rdar://problem/51852782>

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/url-utilities.html:
        * inspector/unit-tests/url-utilities-expected.txt:

2019-06-18  Saam Barati  <sbarati@apple.com>

        [WHLSL] Do not generate duplicate constructors/copy constructors in synthesizeConstructors
        https://bugs.webkit.org/show_bug.cgi?id=198580

        Reviewed by Robin Morisset.

        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt: Added.
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html: Added.

2019-06-18  Simon Fraser  <simon.fraser@apple.com>

        Convert macOS to scroll by changing layer boundsOrigin
        https://bugs.webkit.org/show_bug.cgi?id=198917

        Reviewed by Antti Koivisto.

        * compositing/iframes/scrolling-iframe-expected.txt:
        * compositing/overflow/textarea-scroll-touch-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
        * compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:

2019-06-18  Zan Dobersek  <zdobersek@igalia.com>

        [WebGL] Extensions3DOpenGLES::bindVertexArrayOES() should allow zero array object
        https://bugs.webkit.org/show_bug.cgi?id=198929

        Reviewed by Carlos Garcia Campos.

        Enable the passing tests and update one baseline.

        * platform/wpe/TestExpectations:
        * platform/wpe/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt:

2019-06-17  Saam Barati  <sbarati@apple.com>

        [WHLSL] Make .length work
        https://bugs.webkit.org/show_bug.cgi?id=198890

        Reviewed by Myles Maxfield.

        * TestExpectations:
        * webgpu/whlsl-buffer-length-expected.txt: Added.
        * webgpu/whlsl-buffer-length.html: Added.
        * webgpu/whlsl-buffer-vertex.html:
        * webgpu/whlsl-compute.html:
        * webgpu/whlsl-null-dereference.html:
        * webgpu/whlsl-oob-access.html:

2019-06-17  Shawn Roberts  <sroberts@apple.com>

        scrollingcoordinator/ios/sync-layer-positions-after-scroll.html is a flaky failure on iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=172001

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2019-06-17  Simon Fraser  <simon.fraser@apple.com>

        Add missing test result after r246471. EWS didn't show any failure when it was missing.

        * compositing/overflow/composited-scrolling-paint-phases-expected.txt: Added.

2019-06-16  Darin Adler  <darin@apple.com>

        Convert some uses of fixed width and fixed precision floating point formatting to use shortest instead
        https://bugs.webkit.org/show_bug.cgi?id=198896

        Reviewed by Sam Weinig.

        * fast/loader/stateobjects/pushstate-frequency-expected.txt:
        * fast/loader/stateobjects/pushstate-frequency-iframe-expected.txt:
        * fast/loader/stateobjects/replacestate-frequency-expected.txt:
        * fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt:
        Updated to expect cleaner output without ".000000".

2019-06-15  Simon Fraser  <simon.fraser@apple.com>

        Make layerTreeAsText() output a bit less verbose
        https://bugs.webkit.org/show_bug.cgi?id=198870

        Reviewed by Tim Horton.

        * compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
        * platform/gtk/compositing/overflow/composited-scrolling-paint-phases-expected.txt:
        * platform/ios-wk2/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
        * platform/mac-wk1/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
        * platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt: Removed.

2019-06-15  Rob Buis  <rbuis@igalia.com>

        Add tests for prefetch redirects
        https://bugs.webkit.org/show_bug.cgi?id=197371

        Reviewed by Youenn Fablet.

        Add a test to verify prefetch redirections are cached in the prefetch
        cache and reused when navigating.

        * http/wpt/prefetch/link-prefetch-main-resource-redirect-expected.txt: Added.
        * http/wpt/prefetch/link-prefetch-main-resource-redirect.html: Added.
        * http/wpt/prefetch/resources/main-resource-redirect-no-prefetch.py: Added.
        (main):
        * http/wpt/prefetch/resources/navigate.html: Added.
        * http/wpt/prefetch/resources/prefetched-main-resource-redirect.py: Added.
        (main):
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-06-15  Saam Barati  <sbarati@apple.com>

        Unreviewed. Temporarily mark webgpu/whlsl-oob-access.html as flaky.

        * TestExpectations:

2019-06-14  Devin Rousso  <drousso@apple.com>

        Web Inspector: rework http/tests/inspector/network/resource-sizes-network.html to print the actual values so other platforms don't FAIL
        https://bugs.webkit.org/show_bug.cgi?id=198877
        <rdar://problem/50381370>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/resources/resource-size-test.js:
        (TestPage.registerInitializer.window.addResourceSizeTest):

        * http/tests/inspector/network/resource-sizes-disk-cache.html:
        * http/tests/inspector/network/resource-sizes-disk-cache-expected.txt:

        * http/tests/inspector/network/resource-sizes-memory-cache.html:
        * http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
        * platform/gtk/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
        * platform/mac/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
        * platform/mac-sierra/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:

        * http/tests/inspector/network/resource-sizes-network.html:
        * http/tests/inspector/network/resource-sizes-network-expected.txt:
        * platform/gtk/http/tests/inspector/network/resource-sizes-network-expected.txt:
        * platform/mac/http/tests/inspector/network/resource-sizes-network-expected.txt:
        * platform/mac-sierra/http/tests/inspector/network/resource-sizes-network-expected.txt:

2019-06-14  John Wilander  <wilander@apple.com>

        Repeatedly check for IDB removal to address flakiness in http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html
        https://bugs.webkit.org/show_bug.cgi?id=198185
        <rdar://problem/51074251>

        Unreviewed test gardening.

        There's an asynchronosity in the removal of IDB entries so this test case
        needs to check repeatedly until the removal has happened.

        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
        * platform/ios-simulator-wk2/TestExpectations:
            Removed skip.

2019-06-14  Daniel Bates  <dabates@apple.com>

        [iOS] Split up fast/events/ios/key-events-meta-alt-combinations.html and add more tests
        https://bugs.webkit.org/show_bug.cgi?id=198834
        <rdar://problem/50103348>

        Reviewed by Brent Fulgham.

        The test fast/events/ios/key-events-meta-alt-combinations.html frequently times out. Let's try
        to break up this test into multiple files. Also add more modifier combination tests and group
        all these combination tests under a new direcdtory: fast/events/ios/key-events-comprehensive.

        * fast/events/ios/key-events-comprehensive/key-events-control-expected.txt: Renamed from LayoutTests/fast/events/ios/key-events-control-expected.txt.
        * fast/events/ios/key-events-comprehensive/key-events-control-option-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-control-option.html: Copied from LayoutTests/fast/events/ios/key-events-control.html.
        * fast/events/ios/key-events-comprehensive/key-events-control-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-control-shift.html: Copied from LayoutTests/fast/events/ios/key-events-control.html.
        * fast/events/ios/key-events-comprehensive/key-events-control.html: Renamed from LayoutTests/fast/events/ios/key-events-control.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta-control-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-control.html: Copied from LayoutTests/fast/events/ios/key-events-meta.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt: Renamed from LayoutTests/fast/events/ios/key-events-meta-expected.txt.
        * fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-option.html: Renamed from LayoutTests/fast/events/ios/key-events-meta-alt-combinations.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-shift.html: Copied from LayoutTests/fast/events/ios/key-events-meta.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta.html: Renamed from LayoutTests/fast/events/ios/key-events-meta.html.
        * fast/events/ios/key-events-comprehensive/key-events-option-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-option-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-option-shift.html: Added.
        * fast/events/ios/key-events-comprehensive/key-events-option.html: Added.
        * fast/events/ios/key-events-comprehensive/key-events-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-shift.html: Added.
        * fast/events/ios/key-events-meta-alt-combinations-expected.txt: Removed.

2019-06-14  Antoine Quint  <graouts@apple.com>

        [Pointer Events] button property is -1 for pointerdown and pointerup
        https://bugs.webkit.org/show_bug.cgi?id=198868
        <rdar://problem/51758109>

        Reviewed by Dean Jackson.

        * pointerevents/mouse/pointer-button-and-buttons-expected.txt: Added.
        * pointerevents/mouse/pointer-button-and-buttons.html: Added.
        * pointerevents/utils.js:
        (prototype._handlePointerEvent):

2019-06-14  John Wilander  <wilander@apple.com>

        Move http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html off of testRunner.setAlwaysAcceptCookies()
        https://bugs.webkit.org/show_bug.cgi?id=198863
        <rdar://problem/47854589>

        Unreviewed test gardening.

        testRunner.setAlwaysAcceptCookies() is not working right (tracked
        in rdar://problem/51757107). Therefore, we need to change
        http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html
        to make it work properly.

        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:

2019-06-14  Saam Barati  <sbarati@apple.com>

        [WHLSL] Implement out-of-bounds and nullptr behavior
        https://bugs.webkit.org/show_bug.cgi?id=198600
        <rdar://problem/51668853>

        Reviewed by Robin Morisset.

        * webgpu/whlsl-null-dereference-expected.txt: Added.
        * webgpu/whlsl-null-dereference.html: Added.
        * webgpu/whlsl-oob-access-expected.txt: Added.
        * webgpu/whlsl-oob-access.html: Added.

2019-06-14  Youenn Fablet  <youenn@apple.com>

        Cloning a MediaStreamTrack does not clone the logger
        https://bugs.webkit.org/show_bug.cgi?id=198844

        Reviewed by Eric Carlson.

        * fast/mediastream/MediaStreamTrack-clone-expected.txt:
        * fast/mediastream/MediaStreamTrack-clone.html:

2019-06-14  Shawn Roberts  <sroberts@apple.com>

        webgpu/compute-squares.html test was deleted in https://trac.webkit.org/changeset/246427
        https://bugs.webkit.org/show_bug.cgi?id=198841

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Removing expectation for deleted teest

2019-06-14  Per Arne Vollan  <pvollan@apple.com>

        [Win10] Some tests are failing only on specific machines
        https://bugs.webkit.org/show_bug.cgi?id=197509

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-06-13  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION(r246178): extra spaces added in at-rules when formatting CSS
        https://bugs.webkit.org/show_bug.cgi?id=198806

        Reviewed by Joseph Pecoraro.

        * inspector/formatting/resources/css-tests/keyframes.css:
        * inspector/formatting/resources/css-tests/keyframes-expected.css:
        * inspector/formatting/resources/css-tests/media-query.css:
        * inspector/formatting/resources/css-tests/media-query-expected.css:
        * inspector/formatting/resources/css-tests/selectors.css:
        * inspector/formatting/resources/css-tests/selectors-expected.css:
        * inspector/formatting/resources/css-tests/wrapping.css:
        * inspector/formatting/resources/css-tests/wrapping-expected.css:

2019-06-13  Antoine Quint  <graouts@apple.com>

        REGRESSION (r246103) [ Mojave+ WK1 ] Layout Test scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=198800
        <rdar://problem/51679634>

        Reviewed by Tim Horton.

        This test now passes reliably on WK1.

        * platform/mac-wk1/TestExpectations:

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up compute
        https://bugs.webkit.org/show_bug.cgi?id=198644

        Reviewed by Saam Barati.

        This doesn't thoroughly test compute, but it's at least enough to unblock the WHLSL testing effort.

        * webgpu/compute-squares-expected.txt: Deleted. Covered by webgpu/whlsl-compute.html.
        * webgpu/compute-squares.html: Deleted. Ditto.
        * webgpu/whlsl-compute-expected.txt: Added.
        * webgpu/whlsl-compute.html: Added.

2019-06-13  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] LayoutTest/fast/content-observation/click-event-suppression-on-content-change.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=198848
        <rdar://problem/51689630>

        Reviewed by Dean Jackson.

        1. Enable content observation for this test.
        2. Add role attribute to trigger fast click-through -less flaky with the sleeps. 
        3. Use UIHelper functions.

        * fast/content-observation/click-event-suppression-on-content-change.html: Removed.
        * fast/events/touch/ios/content-observation/click-event-suppression-on-content-change-expected.txt: Renamed from LayoutTests/fast/content-observation/click-event-suppression-on-content-change-expected.txt.
        * fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html: Added.

2019-06-13  Daniel Bates  <dabates@apple.com>

        [iOS] Normalize test result of fast/events/ios/keyboard-event-key-attribute.html to handle possible modifier dispatch
        https://bugs.webkit.org/show_bug.cgi?id=198835
        <rdar://problem/46082708>

        Reviewed by Darin Adler.

        WebKit now knows how to handle flag change events on iOS and dispatch DOM events just like Mac.
        Until USE(UIKIT_KEYBOARD_ADDITIONS) is enabled by default WebKit does not expect to receive
        modifier flag changes. But once this compile time flag is enabled it will and the test
        fast/events/ios/keyboard-event-key-attribute.html will fail because it types '@' and only
        expects to see a single keydown for '@' even though it actually requires two key downs to
        generate an '@': Shift, and 2 (on a US keyboard layout). We have a bunch of other tests to
        check that modifier key presses generate DOM events. So, let's just normalize the result of
        this test to ignore Shift keydowns.

        * fast/events/ios/keyboard-event-key-attribute.html:

2019-06-13  Truitt Savell  <tsavell@apple.com>

        Test gardening after r246406
        https://bugs.webkit.org/show_bug.cgi?id=198774

        Unreviewed test gardening.

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

2019-06-13  Jonathan Bedard  <jbedard@apple.com>

        run-webkit-tests: Correctly garden fast/events/ios, fast/forms/ios tests
        https://bugs.webkit.org/show_bug.cgi?id=198798

        Reviewed by Aakash Jain.

        Any expectations for fast/events/ios and fast/forms/ios tests are overriden
        in ios-wk2 expectations, remove them since they don't do anything.

        * platform/ios-device/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ipad/TestExpectations:

2019-06-13  Shawn Roberts  <sroberts@apple.com>

        webgpu/compute-squares.html is crashing on HighSierra
        https://bugs.webkit.org/show_bug.cgi?id=198841

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Skipping on High Sierra

2019-06-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r246396 and r246397.
        https://bugs.webkit.org/show_bug.cgi?id=198837

        Breaks internal builds (Requested by ShawnRoberts on #webkit).

        Reverted changesets:

        "[WHLSL] Hook up compute"
        https://bugs.webkit.org/show_bug.cgi?id=198644
        https://trac.webkit.org/changeset/246396

        "[WHLSL] Hook up compute"
        https://bugs.webkit.org/show_bug.cgi?id=198644
        https://trac.webkit.org/changeset/246397

2019-06-13  Antti Koivisto  <antti@apple.com>

        twitch.tv: embedded video hovers down the screen when scrolling on iPad
        https://bugs.webkit.org/show_bug.cgi?id=198832
        <rdar://problem/51541439>

        Reviewed by Simon Fraser.

        * compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling.html: Added.

2019-06-13  Youenn Fablet  <youenn@apple.com>

        Import WPT websockets tests
        https://bugs.webkit.org/show_bug.cgi?id=198774

        Reviewed by Geoffrey Garen.

        * platform/mac-wk1/TestExpectations:
        * TestExpectations:
        * tests-options.json:

2019-06-13  Antoine Quint  <graouts@apple.com>

        "display: contents" Content click does not trigger
        https://bugs.webkit.org/show_bug.cgi?id=198559
        <rdar://problem/51488524>

        Reviewed by Antti Koivisto.

        Add a new test that checks that tapping on an element with "display: contents" correctly gets a "click" event.

        * fast/events/ios/click-event-and-display-contents-expected.txt: Added.
        * fast/events/ios/click-event-and-display-contents.html: Added.

2019-06-13  Youenn Fablet  <youenn@apple.com>

        Update service worker test and expectation after revision 246363
        https://bugs.webkit.org/show_bug.cgi?id=198808

        Reviewed by Geoffrey Garen.

        * TestExpectations:
        Skip timing out test in Debug

2019-06-13  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening. Update expectations after r246397.

        * platform/gtk/TestExpectations:

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up compute
        https://bugs.webkit.org/show_bug.cgi?id=198644

        Reviewed by Saam Barati.

        This doesn't thoroughly test compute, but it's at least enough to unblock the WHLSL testing effort.

        * webgpu/compute-squares-expected.txt: Deleted. Covered by webgpu/whlsl-compute.html.
        * webgpu/compute-squares.html: Deleted. Ditto.
        * webgpu/whlsl-compute-expected.txt: Added.
        * webgpu/whlsl-compute.html: Added.

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Implement array references
        https://bugs.webkit.org/show_bug.cgi?id=198163

        Reviewed by Saam Barati.

        * webgpu/buffer-resource-triangles-expected.html: Deleted. This test doens't make any sense and triggers
        Metal to read out-of-bounds of a vertex buffer.
        * webgpu/buffer-resource-triangles.html: Deleted.
        * webgpu/whlsl-buffer-fragment-expected.html: Added.
        * webgpu/whlsl-buffer-fragment.html: Added.
        * webgpu/whlsl-buffer-vertex-expected.html: Added.
        * webgpu/whlsl-buffer-vertex.html: Added.
        * webgpu/whlsl-dont-crash-parsing-enum.html:
        * webgpu/whlsl.html:

2019-06-12  Justin Fan  <justin_fan@apple.com>

        [WebGL] ANGLE Extension directive location incorrectly enforced for webgl 1.0
        https://bugs.webkit.org/show_bug.cgi?id=198811

        Reviewed by Dean Jackson.

        ANGLE was updated so that this case should not be an error.

        * webgl/webgl-extension-directive-location-no-error-expected.txt: Added.
        * webgl/webgl-extension-directive-location-no-error.html: Added.

2019-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform
        https://bugs.webkit.org/show_bug.cgi?id=198746
        <rdar://problem/51620347>

        Reviewed by Don Olmstead.

        * svg/clip-path/clip-hidpi-expected.svg: Added.
        * svg/clip-path/clip-hidpi.svg: Added.
        * svg/clip-path/clip-opacity-translate-expected.svg: Added.
        * svg/clip-path/clip-opacity-translate.svg: Added.

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Educate the property resolver about IndexExpressions
        https://bugs.webkit.org/show_bug.cgi?id=198399

        Unreviewed test gardening.

        Failing WebGPU tests should fail instead of time out.

        * webgpu/blend-color-triangle-strip.html:
        * webgpu/blend-triangle-strip.html:
        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/color-write-mask-triangle-strip.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/propertyresolver/ander-abstract-lvalue.html:
        * webgpu/propertyresolver/ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/ander-lvalue.html:
        * webgpu/propertyresolver/ander.html:
        * webgpu/propertyresolver/getter.html:
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-ander-lvalue.html:
        * webgpu/propertyresolver/indexer-ander.html:
        * webgpu/propertyresolver/indexer-getter.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-setter-lvalue.html:
        * webgpu/propertyresolver/indexer-setter.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/setter-abstract-lvalue.html:
        * webgpu/propertyresolver/setter-lvalue.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/viewport-scissor-rect-triangle-strip.html:
        * webgpu/whlsl-arbitrary-vertex-attribute-locations.html:
        * webgpu/whlsl-dereference-pointer-should-type-check.html:
        * webgpu/whlsl-do-while-loop-break.html:
        * webgpu/whlsl-do-while-loop-continue.html:
        * webgpu/whlsl-do-while-loop.html:
        * webgpu/whlsl-dont-crash-parsing-enum.html:
        * webgpu/whlsl-dot-expressions.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-2.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-3.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime.html:
        * webgpu/whlsl-loops-break.html:
        * webgpu/whlsl-loops-continue.html:
        * webgpu/whlsl-loops.html:
        * webgpu/whlsl-nested-dot-expression-rvalue.html:
        * webgpu/whlsl-nested-loop.html:
        * webgpu/whlsl-return-local-variable.html:
        * webgpu/whlsl-store-to-property-updates-properly.html:
        * webgpu/whlsl-while-loop-break.html:
        * webgpu/whlsl-while-loop-continue.html:
        * webgpu/whlsl-zero-initialize-values-2.html:
        * webgpu/whlsl-zero-initialize-values.html:
        * webgpu/whlsl.html:

2019-06-12  Simon Fraser  <simon.fraser@apple.com>

        paddingBoxRect() is wrong with RTL scrollbars on the left
        https://bugs.webkit.org/show_bug.cgi?id=198816

        Reviewed by Jon Lee.

        * compositing/geometry/rtl-overflow-scroll-expected.html: Added.
        * compositing/geometry/rtl-overflow-scroll.html: Added.

2019-06-12  Eric Carlson  <eric.carlson@apple.com>

        [High Sierra / Mojave Debug WK2] Layout Test media/video-restricted-invisible-autoplay-allowed-when-visible.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=190885
        <rdar://problem/45590590>

        Reviewed by Youenn Fablet.

        * media/video-restricted-invisible-autoplay-allowed-when-visible.html: Increase the amount of
         time it takes for the test to fail so it isn't flaky on slow machines.

2019-06-12  Daniel Bates  <dabates@apple.com>

        [iOS] Adjust tests platform/ipad/fast/forms/{select-form-run-twice, unfocus-inside-fixed-hittest}.html following r243808
        https://bugs.webkit.org/show_bug.cgi?id=198799
        <rdar://problem/50181023>

        Reviewed by Brent Fulgham.

        Following r243808 we no longer defocus a <select> on iPad when its popover is dismissed as a
        result of picking a value for it. This is to make the behavior of <select> on iPad like the Mac. 
        However the tests platform/ipad/fast/forms/{select-form-run-twice, unfocus-inside-fixed-hittest}.html
        depend on the old behavior. So, we need to update them to no longer expect a defocusing of the
        <select>/the end of form control interaction.

        * platform/ipad/fast/forms/select-form-run-twice.html:
        * platform/ipad/fast/forms/unfocus-inside-fixed-hittest.html:

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Educate the property resolver about IndexExpressions
        https://bugs.webkit.org/show_bug.cgi?id=198399

        Reviewed by Saam Barati.

        * webgpu/propertyresolver/ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/ander-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue.html: Added.
        * webgpu/propertyresolver/ander.html: Added.
        * webgpu/propertyresolver/getter-expected.html: Added.
        * webgpu/propertyresolver/getter.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander.html: Added.
        * webgpu/propertyresolver/indexer-getter-expected.html: Added.
        * webgpu/propertyresolver/indexer-getter.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-lvalue.html: Added.

2019-06-12  Shawn Roberts  <sroberts@apple.com>

        scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out on WK1 testers
        https://bugs.webkit.org/show_bug.cgi?id=198800

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Updating expecations for test

2019-06-12  Jiewen Tan  <jiewen_tan@apple.com>

        REGRESSION (r245043) [Mac WK2 Debug] ASSERTION FAILED: m_services.isEmpty() && transports.size() <= maxTransportNumber seen with two http/wpt/webauthn/public-key-credential-* tests
        https://bugs.webkit.org/show_bug.cgi?id=197917
        <rdar://problem/51524958>

        Reviewed by Brent Fulgham.

        * platform/mac-wk2/TestExpectations:

2019-06-12  Antti Koivisto  <antti@apple.com>

        (Async scrolling) Handle 'position:fixed' inside 'position:sticky' correctly.
        https://bugs.webkit.org/show_bug.cgi?id=198788
        <rdar://problem/51589759>

        Reviewed by Simon Fraser.

        * scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-frame-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-frame.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-stacking-context-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-stacking-context.html: Added.

2019-06-12  Youenn Fablet  <youenn@apple.com>

        Update WPT service workers test up to 0df7c68
        https://bugs.webkit.org/show_bug.cgi?id=198720

        Reviewed by Eric Carlson.

        * TestExpectations:
        * tests-options.json:

2019-06-12  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r246350.

        r246350 Introduced a failing and timing out test svg/clip-path
        /clip-hidpi.svg

        Reverted changeset:

        "[cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform"
        https://bugs.webkit.org/show_bug.cgi?id=198746
        https://trac.webkit.org/changeset/246350

2019-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform
        https://bugs.webkit.org/show_bug.cgi?id=198746
        <rdar://problem/51665805>

        Reviewed by Don Olmstead.

        * svg/clip-path/clip-hidpi-expected.svg: Added.
        * svg/clip-path/clip-hidpi.svg: Added.
        * svg/clip-path/clip-opacity-translate-expected.svg: Added.
        * svg/clip-path/clip-opacity-translate.svg: Added.

2019-06-12  Fujii Hironori  <Hironori.Fujii@sony.com>

        [GTK] Some reftest fail with only one or two pixel differences in diff image
        https://bugs.webkit.org/show_bug.cgi?id=168426

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        svg/clip-path/clip-opacity.html results in 0.01% image diff. Marked it as ImageOnlyFailure of Bug 168426.

2019-06-11  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Idempotent text autosizing needs to react properly to viewport changes
        https://bugs.webkit.org/show_bug.cgi?id=198736
        <rdar://problem/50591911>

        Reviewed by Zalan Bujtas.

        Add a new layout test that programmatically adjusts the meta viewport initial scale, and dumps the resulting
        computed sizes of several paragraphs of text, after adjusting for text autosizing.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html: Added.

2019-06-11  Zalan Bujtas  <zalan@apple.com>

        LayoutTests/fast/events/touch/ios/double-tap-for-double-click* test cases are failing
        https://bugs.webkit.org/show_bug.cgi?id=198764
        <rdar://problem/51035459>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/double-tap-for-double-click1.html:
        * fast/events/touch/ios/double-tap-for-double-click2.html:
        * fast/events/touch/ios/double-tap-for-double-click3.html:

2019-06-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r246320.
        https://bugs.webkit.org/show_bug.cgi?id=198773

        New test is failing, and commit is causing another test to
        fail. (Requested by ShawnRoberts on #webkit).

        Reverted changeset:

        "Web Inspector: AXI: Audit: image label test is throwing
        spurious errors on elements with existing alt attr, but no
        value: <img alt>"
        https://bugs.webkit.org/show_bug.cgi?id=194754
        https://trac.webkit.org/changeset/246320

2019-06-11  Devin Rousso  <drousso@apple.com>

        Sort the computed styles list
        https://bugs.webkit.org/show_bug.cgi?id=198743

        Reviewed by Simon Fraser

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:

        * fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-font-family-expected.txt:

        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

        * svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/ios/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
        * platform/wpe/svg/css/getComputedStyle-basic-expected.txt:

2019-06-11  Daniel Bates  <dabates@apple.com>

        [iOS] Adjust test fast/events/ios/keyup.html to ignore Shift keyups
        https://bugs.webkit.org/show_bug.cgi?id=198768
        <rdar://problem/46082743>

        Reviewed by Brent Fulgham.

        Ignore Shift keyups as in the future they will be emitted. We have existing test coverage for them
        currently skipped in OpenSource that will be unskipped in the future once we enable ENABLE(FULL_KEYBOARD_ACCESS).

        * fast/events/ios/keyup.html:

2019-06-11  Daniel Bates  <dabates@apple.com>

        Fix up test result following r245161.
        <rdar://problem/51032967>

        Until we get UIKit support, almost all keys, including the numpad comma key (on JIS keyboards)
        report Dead for their key property and Unidentified for their keyIdentifier property.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:

2019-06-11  Truitt Savell  <tsavell@apple.com>

        r246018 introduced a falkey test on WK1
        https://bugs.webkit.org/show_bug.cgi?id=196508

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-06-11  Daniel Bates  <dabates@apple.com>

        Import Content Security Policy Web Platform Tests
        https://bugs.webkit.org/show_bug.cgi?id=198676
        <rdar://problem/51533785>

        Reviewed by Youenn Fablet.

        Import tests as of 3840f46213d9a991acc9288e3863530f7502c05e (origin/master).

        * TestExpectations: Skip some tests for features we do not support.
        * platform/mac-wk1/TestExpectations: Skip some tests.
        * platform/win/TestExpectations: Ditto.
        * tests-options.json:

2019-06-11  Daniel Bates  <dabates@apple.com>

        Skip test http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html as
        testRunner.queueLoad() does not support loading data URLs in Legacy WebKit on Mac and iOS

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

2019-06-11  Daniel Bates  <dabates@apple.com>

        [Win] Layout test http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=198758

        It is a longstanding known issue (since 2015) that navigating to a blob URL times out on Windows.
        Further investigation is needed. Skip another test for now.

        * platform/win/TestExpectations:

2019-06-11  Shawn Roberts  <sroberts@apple.com>

        compositing/fixed-with-main-thread-scrolling.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=198757

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating expectations for flaky test

2019-06-11  Greg Doolittle  <gr3g@apple.com>

        Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt>
        https://bugs.webkit.org/show_bug.cgi?id=194754
        <rdar://problem/48144534>

        Reviewed by Chris Fleizach.

        * accessibility/img-alt-attribute-empty-string-expected.txt: Added.
        * accessibility/img-alt-attribute-empty-string.html: Added.
        * accessibility/img-alt-attribute-no-value-expected.txt: Added.
        * accessibility/img-alt-attribute-no-value.html: Added.

2019-06-11  Shawn Roberts  <sroberts@apple.com>

        http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure and timeout
        https://bugs.webkit.org/show_bug.cgi?id=198185

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Skipping test on iOS

2019-06-11  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r246292.

        * inspector/timeline/timeline-recording.html:
        * inspector/timeline/timeline-recording-expected.txt:
        Filter the contents of `sampleStackTraces` and `sampleDurations` when exporting.

2019-06-11  Antti Koivisto  <antti@apple.com>

        REGRESSION (iOS): Can't scroll litter-robot.com checkout form's dropdown menus
        https://bugs.webkit.org/show_bug.cgi?id=198753
        <rdar://problem/51355686>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/overflow-scroll-user-interaction-disabled-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html: Added.

2019-06-11  Youenn Fablet  <youenn@apple.com>

        MediaStreamAudioSourceNode::setFormat should check for m_sourceSampleRate equality
        https://bugs.webkit.org/show_bug.cgi?id=198740
        <rdar://problem/47088939>

        Reviewed by Eric Carlson.

        * platform/mac/TestExpectations:

2019-06-11  Fujii Hironori  <Hironori.Fujii@sony.com>

        [cairo][SVG] Putting multiple path elements in clippath causes rendering artifacts
        https://bugs.webkit.org/show_bug.cgi?id=198701

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        Unskipped svg/gradients/spreadMethodDiagonal3.svg and svg/gradients/spreadMethodDiagonal4.svg.

        * svg/clip-path/clip-opacity-expected.html: Added.
        * svg/clip-path/clip-opacity.html: Added.
        * svg/clip-path/svg-in-html-expected.html: Added.
        * svg/clip-path/svg-in-html.html: Added.

2019-06-10  Daniel Bates  <dabates@apple.com>

        [CSP] Blob URLs should inherit their CSP policy
        https://bugs.webkit.org/show_bug.cgi?id=198579
        <rdar://problem/51366878>

        Reviewed by Brent Fulgham.

        Actually add the tests that I inadvertently omitted from r246277.

        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html: Added.

2019-06-10  Sam Weinig  <weinig@apple.com>

        Remove Dashboard support
        https://bugs.webkit.org/show_bug.cgi?id=198615

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        * cssom/cssvalue-comparison-expected.txt:
        * cssom/cssvalue-comparison.html:
        * fast/canvas/canvas-gradient-addStop-error-expected.txt:
        * fast/canvas/canvas-gradient-addStop-error.html:
        * fast/canvas/fill-stroke-clip-reset-path-expected.txt:
        * fast/canvas/fill-stroke-clip-reset-path.html:
        * fast/css/dashboard-regions-attr-crash-expected.txt: Removed.
        * fast/css/dashboard-regions-attr-crash.html: Removed.
        * fast/css/dashboard-regions-undefined-length-assertion-expected.txt: Removed.
        * fast/css/dashboard-regions-undefined-length-assertion.html: Removed.
        * fast/xmlhttprequest/set-dangerous-headers-in-dashboard-expected.txt: Removed.
        * fast/xmlhttprequest/set-dangerous-headers-in-dashboard.html: Removed.
        * http/tests/xmlhttprequest/default-content-type-dashboard-expected.txt: Removed.
        * http/tests/xmlhttprequest/default-content-type-dashboard.html: Removed.
        * http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard-expected.txt: Removed.
        * http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html: Removed.
        * legacy-animation-engine/cssom/cssvalue-comparison-expected.txt:
        * legacy-animation-engine/cssom/cssvalue-comparison.html:
        * mathml/mathml-in-dashboard-expected.txt: Removed.
        * mathml/mathml-in-dashboard.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/mathml/mathml-in-dashboard-expected.txt: Removed.
        * platform/mac/TestExpectations:
        * platform/mac/fast/css/dashboard-region-parser-expected.txt: Removed.
        * platform/mac/fast/css/dashboard-region-parser.html: Removed.
        * platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk-expected.txt: Removed.
        * platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk.html: Removed.
        * platform/mac/mathml/mathml-in-dashboard-expected.png: Removed.
        * platform/mac/mathml/mathml-in-dashboard-expected.txt: Removed.
        * platform/mac/svg/custom/embedded-svg-disallowed-in-dashboard-expected.png: Removed.
        * platform/mac/svg/custom/manually-parsed-embedded-svg-disallowed-in-dashboard-expected.png: Removed.
        * platform/mac/svg/custom/manually-parsed-svg-disallowed-in-dashboard-expected.png: Removed.
        * platform/mac/svg/custom/svg-disallowed-in-dashboard-object-expected.png: Removed.
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * svg/custom/embedded-svg-allowed-in-dashboard-expected.txt: Removed.
        * svg/custom/embedded-svg-allowed-in-dashboard.xml: Removed.
        * svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard-expected.txt: Removed.
        * svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html: Removed.
        * svg/custom/manually-parsed-svg-allowed-in-dashboard-expected.txt: Removed.
        * svg/custom/manually-parsed-svg-allowed-in-dashboard.html: Removed.
        * svg/custom/svg-allowed-in-dashboard-object-expected.txt: Removed.
        * svg/custom/svg-allowed-in-dashboard-object.html: Removed.

2019-06-10  Ryan Haddad  <ryanhaddad@apple.com>

        [ iOS Sim WK2 ] Layout Test editing/deleting/delete-emoji* is failing

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Remove failure expectation.
        * platform/ios/editing/deleting/delete-emoji-1-expected.txt: Rebaseline test.
        * platform/ios/editing/deleting/delete-emoji-9-expected.txt: Ditto.
        * platform/ios/editing/deleting/delete-emoji-expected.txt: Ditto.

2019-06-10  Antti Koivisto  <antti@apple.com>

        Event region should be set on scrolledContentsLayer if it exists
        https://bugs.webkit.org/show_bug.cgi?id=198717
        <rdar://problem/51572169>

        Reviewed by Simon Fraser.

        * pointerevents/ios/touch-action-region-backing-sharing-expected.txt:
        * pointerevents/ios/touch-action-region-overflow-expected.txt: Added.
        * pointerevents/ios/touch-action-region-overflow.html: Added.

2019-06-10  Daniel Bates  <dabates@apple.com>

        [CSP] Blob URLs should inherit their CSP policy
        https://bugs.webkit.org/show_bug.cgi?id=198579
        <rdar://problem/51366878>

        Reviewed by Brent Fulgham.

        Add tests to ensure that a self navigation to a Blob or Data URL inherits its CSP policy from
        its parent document.

        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html: Added.

2019-06-10  Saam Barati  <sbarati@apple.com>

        [WHLSL] Auto initialize local variables
        https://bugs.webkit.org/show_bug.cgi?id=198426

        Reviewed by Myles Maxfield.

        * webgpu/whlsl-zero-initialize-values-2-expected.html: Added.
        * webgpu/whlsl-zero-initialize-values-2.html: Added.
        * webgpu/whlsl-zero-initialize-values-expected.html: Added.
        * webgpu/whlsl-zero-initialize-values.html: Added.

2019-06-10  Timothy Hatcher  <timothy@apple.com>

        Integrate dark mode support for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=198687
        rdar://problem/51545643

        Reviewed by Tim Horton.

        * platform/ios/TestExpectations:

2019-06-10  Youenn Fablet  <youenn@apple.com>

        Call was negotiated with H264 Base Profile 42e01f but encoded in High Profile
        https://bugs.webkit.org/show_bug.cgi?id=195124
        <rdar://problem/48453085>

        Reviewed by Eric Carlson.

        * webrtc/video-h264-expected.txt: Added.
        * webrtc/video-h264.html: Added.

2019-06-08  Cathie Chen  <cathiechen@igalia.com>

        resize-observer/element-leak.html fails on Windows platform
        https://bugs.webkit.org/show_bug.cgi?id=197908

        Reviewed by Ryosuke Niwa.

        We have conservative GC, the removed objects might keep alive for a while. Change the test case
        to 20 iframes. This would make the result more accurate.

        * platform/win/TestExpectations:
        * resize-observer/element-leak-expected.txt:
        * resize-observer/element-leak.html:

2019-06-07  Youenn Fablet  <youenn@apple.com>

        [ Mac Debug ] REGRESSION (r242975) Layout Test storage/indexeddb/modern/deletedatabase-2-private.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196445
        <rdar://problem/49483061>

        Reviewed by Brady Eidson.

        Unflake the test by making sure to wait for the onerror event before continuing the test.

        * platform/mac-wk2/TestExpectations:
        * storage/indexeddb/modern/resources/deletedatabase-2.js:
        (prepareDatabase.event.target.onerror):
        (continueTest1.request.onsuccess): Deleted.

2019-06-07  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r246138.

        Broke internal builds

        Reverted changeset:

        "[WHLSL] Educate the property resolver about IndexExpressions"
        https://bugs.webkit.org/show_bug.cgi?id=198399
        https://trac.webkit.org/changeset/246138

2019-06-07  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: longhand CSS properties overridden by shorthands miss strikethrough
        https://bugs.webkit.org/show_bug.cgi?id=198629
        <rdar://problem/51504160>

        Reviewed by Devin Rousso.

        * inspector/css/overridden-property-expected.txt:
        * inspector/css/overridden-property.html:

2019-06-07  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Remove GPUBuffer.setSubData and implement GPUDevice.createBufferMapped
        https://bugs.webkit.org/show_bug.cgi?id=198591

        Reviewed by Myles C. Maxfield.

        GPUBuffer.setSubData has been removed from the WebGPU implementation.
        GPUDevice.createBufferMapped has been added to the WebGPU implementation.
        Replace all setSubData calls with appropriate replacements.

        * webgpu/blend-triangle-strip.html:
        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/compute-squares.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/js/webgpu-functions.js:
        (createBufferWithData):
        (async.mapWriteDataToBuffer):
        * webgpu/map-read-buffers-expected.txt:
        * webgpu/map-read-buffers.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:

2019-06-07  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/events/fire-mousedown-while-pressing-mouse-button.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=198679

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-06-07  Antoine Quint  <graouts@apple.com>

        Restrict fast clicks everywhere to desktop content mode
        https://bugs.webkit.org/show_bug.cgi?id=198610
        <rdar://problem/50114230>

        Reviewed by Dean Jackson.

        Add a new test that enables fast clicks but also sets a mobile content mode.
        
        We also mark fast/visual-viewport/ios/min-scale-greater-than-one.html as non-flaky
        since the flakiness was due to the fast clicks everywhere behavior being enabled on iPhone.

        Finally, we can now remove the hack where ui.tap() in the Pointer Events utility returned
        a promise with a one-second delay since the issue of double-taps being recognized instead of
        two consecutive single taps across two tests has been resolved.

        * fast/events/ios/ipad/fast-click-always-mobile-content-mode-expected.txt: Added.
        * fast/events/ios/ipad/fast-click-always-mobile-content-mode.html: Added.
        * platform/ios-simulator-wk2/TestExpectations:
        * pointerevents/utils.js:

2019-06-07  Shawn Roberts  <sroberts@apple.com>

        http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=198663

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating expectations for flaky test

2019-06-07  Shawn Roberts  <sroberts@apple.com>

        scrollingcoordinator/mac/nested-sticky.html is a flaky Timeout and ImageOnlyFailure
        https://bugs.webkit.org/show_bug.cgi?id=198661

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating expectations for flaky test

2019-06-07  Antti Koivisto  <antti@apple.com>

        position:fixed inside overflow positioning nodes is jumpy
        https://bugs.webkit.org/show_bug.cgi?id=198647
        <rdar://problem/51514437>

        Reviewed by Frédéric Wang.

        * scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1-expected.html: Added.
        * scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1.html: Added.
        * scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2-expected.html: Added.
        * scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2.html: Added.
        * scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary-expected.html: Added.
        * scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary.html: Added.

2019-06-07  Enrique Ocaña González  <eocanha@igalia.com>

        [MSE][GStreamer] Avoid QUOTA_EXCEEDED_ERR when seeking to a buffered range just before the buffered one
        https://bugs.webkit.org/show_bug.cgi?id=166620

        Reviewed by Xabier Rodriguez-Calvar.

        Added a test to check that, after the memory is filled by appending a continuous
        range, a seek right before it and a new append can be done without getting a
        QuotaExceededError on GStreamer ports. On the rest of the ports, QuotaExceededError
        is never thrown and the expectations just check that the right buffered ranges
        remain.

        * media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.
        * media/media-source/media-source-append-before-last-range-no-quota-exceeded.html: Added.
        * platform/gtk/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.
        * platform/wpe/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.


2019-06-07  Joonghun Park  <jh718.park@samsung.com>

        Implement tab-size with units
        https://bugs.webkit.org/show_bug.cgi?id=179022

        Reviewed by Simon Fraser.

        This change is ported from Blink.
        The committed revision is https://src.chromium.org/viewvc/blink?revision=189430&view=revision.

        Additionally, this patch lets css "number" value be allowed as tab-size's property value,
        not css "integer" value,
        according to https://drafts.csswg.org/css-text-3/#tab-size-property.

        * TestExpectations:
        * css3/tab-size-expected.txt: Added.
        * css3/tab-size.html: Added.
        * fast/css/tab-size-expected.html:
        * fast/css/tab-size.html:

2019-06-06  Youenn Fablet  <youenn@apple.com>

        Allow WebKitTestRunner to terminate network process after it finishes service worker file operations
        https://bugs.webkit.org/show_bug.cgi?id=198584

        Reviewed by Geoffrey Garen.

        * http/wpt/service-workers/service-worker-networkprocess-crash.html:

2019-06-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r246165.
        https://bugs.webkit.org/show_bug.cgi?id=198636

        Causing test failures in 7 content-observation tests.
        (Requested by ShawnRoberts on #webkit).

        Reverted changeset:

        "Restrict fast clicks everywhere to desktop content mode"
        https://bugs.webkit.org/show_bug.cgi?id=198610
        https://trac.webkit.org/changeset/246165

2019-06-06  Devin Rousso  <drousso@apple.com>

        Web Inspector: Formatter: pretty-print CSS using a Worker
        https://bugs.webkit.org/show_bug.cgi?id=197829
        <rdar://problem/36891532>

        Reviewed by Timothy Hatcher.

        * inspector/formatting/formatting-css.html: Added.
        * inspector/formatting/formatting-css-expected.txt: Added.
        * inspector/formatting/resources/css-tests/basic-expected.css: Added.
        * inspector/formatting/resources/css-tests/basic.css: Added.
        * inspector/formatting/resources/css-tests/gradient-expected.css: Added.
        * inspector/formatting/resources/css-tests/gradient.css: Added.
        * inspector/formatting/resources/css-tests/keyframes-expected.css: Added.
        * inspector/formatting/resources/css-tests/keyframes.css: Added.
        * inspector/formatting/resources/css-tests/media-query-expected.css: Added.
        * inspector/formatting/resources/css-tests/media-query.css: Added.
        * inspector/formatting/resources/css-tests/selectors-expected.css: Added.
        * inspector/formatting/resources/css-tests/selectors.css: Added.
        * inspector/formatting/resources/css-tests/wrapping-expected.css: Added.
        * inspector/formatting/resources/css-tests/wrapping.css: Added.
        * inspector/formatting/resources/utilities.js:
        (TestPage.registerInitializer.runFormattingTest):

2019-06-06  Youenn Fablet  <youenn@apple.com>

        REGRESSION (r243270) [ iOS Sim Release ] Layout Test imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=198573
        <rdar://problem/51447519>

        Unreviewed.

        * platform/ios-simulator-wk2/TestExpectations:
        Marking test as slow.

2019-06-05  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION (r243121): Load event should not be fired while animating the 'externalResourcesRequired' attribute 
        https://bugs.webkit.org/show_bug.cgi?id=198576

        Reviewed by Simon Fraser.

        * svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt: Added.
        * svg/animations/animate-externalResourcesRequired-no-load-event.html: Added.

2019-06-04  Takashi Komori  <Takashi.Komori@sony.com>
2019-06-06  Antoine Quint  <graouts@apple.com>

        Restrict fast clicks everywhere to desktop content mode
        https://bugs.webkit.org/show_bug.cgi?id=198610
        <rdar://problem/50114230>

        Reviewed by Dean Jackson.

        Add a new test that enables fast clicks but also sets a mobile content mode.

        * fast/events/ios/ipad/fast-click-always-mobile-content-mode-expected.txt: Added.
        * fast/events/ios/ipad/fast-click-always-mobile-content-mode.html: Added.

2019-06-06  Alexey Shvayka  <shvaikalesh@gmail.com>

        JSON.parse throws incorrect exception when called w/o arguments
        https://bugs.webkit.org/show_bug.cgi?id=198574

        Reviewed by Yusuke Suzuki.

        SyntaxError should be thrown if JSON.parse is called w/o arguments.
        (steps 1-2 of https://tc39.github.io/ecma262/#sec-json.parse)

        * js/dom/JSON-parse-expected.txt:

2019-06-06  Antti Koivisto  <antti@apple.com>

        Position fixed is buggy with overflow:auto scrolling inside iframes
        https://bugs.webkit.org/show_bug.cgi?id=154399
        <rdar://problem/24742251>

        Reviewed by Frederic Wang and Simon Fraser.

        * scrollingcoordinator/ios/fixed-frame-overflow-swipe-expected.html: Added.
        * scrollingcoordinator/ios/fixed-frame-overflow-swipe.html: Added.

2019-06-06  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Add support for chorded button interactions
        https://bugs.webkit.org/show_bug.cgi?id=198462

        Unreviewed, rebaselining this test for WK1.

        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt:

2019-06-05  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Report all request headers to web inspector.
        https://bugs.webkit.org/show_bug.cgi?id=191653

        Reviewed by Fujii Hironori.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/inspector/network/resource-request-headers-expected.txt: Added.

2019-06-05  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Educate the property resolver about IndexExpressions
        https://bugs.webkit.org/show_bug.cgi?id=198399

        Reviewed by Saam Barati.

        * webgpu/propertyresolver/ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/ander-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue.html: Added.
        * webgpu/propertyresolver/ander.html: Added.
        * webgpu/propertyresolver/getter-expected.html: Added.
        * webgpu/propertyresolver/getter.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander.html: Added.
        * webgpu/propertyresolver/indexer-getter-expected.html: Added.
        * webgpu/propertyresolver/indexer-getter.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-lvalue.html: Added.

2019-06-05  Daniel Bates  <dabates@apple.com>

        [CSP] Data URLs should inherit their CSP policy
        https://bugs.webkit.org/show_bug.cgi?id=198572
        <rdar://problem/50660927>

        Reviewed by Brent Fulgham.

        Add a test to ensure that a framed data URL inherits its CSP policy from its parent document.

        * http/tests/security/contentSecurityPolicy/subframe-with-data-url-inheritance-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/subframe-with-data-url-inheritance.html: Added.

2019-06-05  Alex Christensen  <achristensen@webkit.org>

        Re-enable safe browsing in WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=196161
        <rdar://problem/49171413>

        Reviewed by Ryosuke Niwa.

        * platform/mac-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt:

== Rolled over to ChangeLog-2019-06-05 ==
