2019-11-22  Chris Dumez  <cdumez@apple.com>

        Speculative loading sometimes happens too early and is missing login cookies
        https://bugs.webkit.org/show_bug.cgi?id=204305
        <rdar://problem/57063840>

        Reviewed by Antti Koivisto.

        Extend layout test coverage to make sure that the validation request contains the latest cookies
        set by the main resource.

        * http/tests/cache/disk-cache/speculative-validation/resources/validation-request-frame.php:
        * http/tests/cache/disk-cache/speculative-validation/validation-request-expected.txt:
        * http/tests/cache/disk-cache/speculative-validation/validation-request.html:

2019-11-22  Per Arne Vollan  <pvollan@apple.com>

        Layout Test storage/indexeddb/modern/new-database-after-user-delete.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=204489

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-11-22  Chris Dumez  <cdumez@apple.com>

        [ iOS Release ]: Layout Test http/tests/navigation/page-cache-domcache-pending-promise.html is a Flaky Timeout
        https://bugs.webkit.org/show_bug.cgi?id=203373
        <rdar://problem/56590038>

        Reviewed by Youenn Fablet.

        I am not able to reproduce the flakiness so this includes speculative fixes and better error handling so
        that the test would hopefully fail with a message instead of timing out.

        Speculative fixes:
        1. If the promise is resolved before we've navigated away, retry it asynchronously.
        2. If the promise is rejected before we've navigated away, retry it asynchronously instead of synchronously.
           I believe it is possible to prevent the navigation otherwise, in cases where the promise is rejected
           synchronously.

        * http/tests/navigation/page-cache-domcache-pending-promise-expected.txt:
        * http/tests/navigation/page-cache-domcache-pending-promise.html:

2019-11-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        File input should fire an 'input' event before the 'change' event
        https://bugs.webkit.org/show_bug.cgi?id=204292

        Reviewed by Wenson Hsieh.

        Add new test to check both events are fired now.

        * fast/forms/file/file-input-user-selection-events-expected.txt: Added.
        * fast/forms/file/file-input-user-selection-events.html: Added.

2019-11-21  Jer Noble  <jer.noble@apple.com>

        Experimental support for HDR media query
        https://bugs.webkit.org/show_bug.cgi?id=204422

        Reviewed by Eric Carlson.

        * fast/media/mq-highdynamicrange-live-update-expected.txt: Added.
        * fast/media/mq-highdynamicrange-live-update.html: Added.

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

        Scrolling to fragment shouldn't happen as a part of updating style
        https://bugs.webkit.org/show_bug.cgi?id=203982

        Reviewed by Simon Fraser.

        Made an existing test more robust.

        * fast/parser/adoption-agency-unload-iframe-4.html: Made the iframe's data URL not cachable.

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

        Remove font-variant @font-face descriptor
        https://bugs.webkit.org/show_bug.cgi?id=203179

        Reviewed by Simon Fraser.

        Delete tests for the removed feature.

        * css3/font-variant-font-face-all-expected.html: Deleted.
        * css3/font-variant-font-face-all.html: Deleted.
        * css3/font-variant-font-face-override-expected.html:
        * css3/font-variant-font-face-override.html:
        * fast/text/font-face-empty-string-expected.txt:
        * fast/text/font-face-empty-string.html:
        * fast/text/font-face-javascript-expected.txt:
        * fast/text/font-face-javascript.html:

2019-11-21  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, rolling in again, regression is not caused by it
        https://bugs.webkit.org/show_bug.cgi?id=202471

        * js/Object-getOwnPropertyNames-expected.txt:
        * js/script-tests/Object-getOwnPropertyNames.js:

2019-11-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r252683 and r252721.
        https://bugs.webkit.org/show_bug.cgi?id=204475

        13% regression in JetStream2/prepack-wtb (Requested by
        yusukesuzuki on #webkit).

        Reverted changesets:

        "Implement String.prototype.replaceAll"
        https://bugs.webkit.org/show_bug.cgi?id=202471
        https://trac.webkit.org/changeset/252683

        "Unreviewed, address Darin's feedback on r252683."
        https://trac.webkit.org/changeset/252721

2019-11-21  Simon Fraser  <simon.fraser@apple.com>

        Flaky Test: compositing/backing/backing-store-attachment-with-rotation.html
        https://bugs.webkit.org/show_bug.cgi?id=204394

        Reviewed by Myles C. Maxfield.

        Move compositing-overlap-utils.js to compositing/resources and use its layerTreeWithoutTransforms()
        function to not dump transforms for the flakey test.

        Adjust other tests which use this JS file.

        * compositing/backing/backing-store-attachment-with-rotation-expected.txt:
        * compositing/backing/backing-store-attachment-with-rotation.html:
        * compositing/layer-creation/animation-overlap-with-children.html:
        * compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
        * compositing/layer-creation/mismatched-transform-transition-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/scale-rotation-animation-overlap.html:
        * compositing/layer-creation/scale-rotation-transition-overlap.html:
        * compositing/layer-creation/translate-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * compositing/layer-creation/translate-scale-transition-overlap.html:
        * compositing/layer-creation/translate-transition-overlap.html:
        * compositing/resources/compositing-test-utils.js: Renamed from LayoutTests/compositing/layer-creation/resources/compositing-overlap-utils.js.
        (makeDots):
        (layerTreeWithoutTransforms):
        (dumpLayersWithoutTransforms):
        * legacy-animation-engine/compositing/layer-creation/animation-overlap-with-children.html:
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/mismatched-transform-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-scale-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-transition-overlap.html:

2019-11-21  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Outline sRGB-safe areas on P3 color picker
        https://bugs.webkit.org/show_bug.cgi?id=203533
        <rdar://problem/56688057>

        Reviewed by Brian Burg.

        Test WI.Color.displayP3toSRGB.

        LayoutTests:
        * inspector/model/color-expected.txt:
        * inspector/model/color.html:

2019-11-21  Kate Cheney  <katherine_cheney@apple.com>

        REGRESSION (r234440): [Mac WK2 ] Layout Test http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html is flaky timeout (194164)
        <https://bugs.webkit.org/show_bug.cgi?id=194164>
        <rdar://problem/48011649>

        Reviewed by John Wilander.

        Test no longer flaky.

        * platform/mac-wk2/TestExpectations:

2019-11-21  Youenn Fablet  <youenn@apple.com>

        Regression (r252660): Layout Test platform/ios/mediastream/audio-muted-in-background-tab.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204408
        <rdar://problem/57364353>

        Reviewed by Eric Carlson.

        * platform/ios/TestExpectations:

2019-11-20  Per Arne Vollan  <pvollan@apple.com>

        Update test expectations for flaky tests

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Web Inspector: removing the blackbox for a specific script doesn't actually remove the blackbox
        https://bugs.webkit.org/show_bug.cgi?id=204428

        Reviewed by Timothy Hatcher.

        * inspector/debugger/setShouldBlackboxURL.html:
        * inspector/debugger/setShouldBlackboxURL-expected.txt:

2019-11-20  Simon Fraser  <simon.fraser@apple.com>

        getComputedStyle returns "auto" for zIndex property even after it has been set, on non-positioned elements
        https://bugs.webkit.org/show_bug.cgi?id=15562

        Reviewed by Antti Koivisto.

        * fast/css-grid-layout/grid-item-z-index-support-expected.txt:
        * fast/css-grid-layout/grid-item-z-index-support.html:
        * fast/css/getComputedStyle/getComputedStyle-zIndex-auto-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-zIndex-auto.html:

2019-11-20  Kate Cheney  <katherine_cheney@apple.com>

        [ Jazz ] http/tests/resourceLoadStatistics/cookie-deletion.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=203813
        <rdar://problem/54316765>

        Reviewed by John Wilander.

        Added random dummy value to the end of the cookie-redirect query to ensure
        the third party url isn't failing to set the cookie and redirect back
        to the correct file because the url is already in the cache from previous runs.

        * http/tests/resourceLoadStatistics/cookie-deletion-expected.txt:
        * http/tests/resourceLoadStatistics/cookie-deletion.html:

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

        Flexbox sizing logic triggers full repaint on the flex items.
        https://bugs.webkit.org/show_bug.cgi?id=204380
        <rdar://problem/57236404>

        Reviewed by Simon Fraser.

        * fast/repaint/align-items-change-expected.txt: progression.

2019-11-20  Justin Fan  <justin_fan@apple.com>

        webgl/1.0.3/conformance/context/context-release-upon-reload.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203984

        Unreviewed test gardening. Skip the 2.0.0 version of this test as well.

        * platform/mac-highsierra-wk1/TestExpectations:

2019-11-20  Jonathan Bedard  <jbedard@apple.com>

        [WebGL] Add `--webgl-test-suite` flag for run-webkit-tests
        https://bugs.webkit.org/show_bug.cgi?id=204327

        Rubber-stamped by Aakash Jain.

        * webgl/TestExpectations: Added.

2019-11-20  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Add ui-sans-serif as a sibling to ui-serif, ui-monospace, and ui-rounded
        https://bugs.webkit.org/show_bug.cgi?id=204188

        Reviewed by Simon Fraser.

        * fast/text/design-system-ui-sans-serif-expected.html: Added.
        * fast/text/design-system-ui-sans-serif.html: Added.

2019-11-20  Truitt Savell  <tsavell@apple.com>

        Add platform specific expectations for High Sierra and Mojave for svg/custom/glyph-selection-arabic-forms.svg
        https://bugs.webkit.org/show_bug.cgi?id=204249

        Unreviewed test gardening.

        * platform/mac-highsierra/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.
        * platform/mac-mojave/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.

2019-11-20  Simon Fraser  <simon.fraser@apple.com>

        Turn off antialiasing when rendering with Ahem, for testing
        https://bugs.webkit.org/show_bug.cgi?id=204197

        Reviewed by Myles C. Maxfield.

        * TestExpectations:

2019-11-20  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/text/font-antialiasing-save-restore.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204413

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-11-20  Truitt Savell  <tsavell@apple.com>

        Regression (r252660): Layout Test platform/ios/mediastream/audio-muted-in-background-tab.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204408

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2019-11-20  Truitt Savell  <tsavell@apple.com>

        Rebase svg/custom/glyph-selection-arabic-forms.svg
        https://bugs.webkit.org/show_bug.cgi?id=204249

        Unreviewed test gardening.

        * svg/custom/glyph-selection-arabic-forms-expected.txt:

2019-11-20  Jer Noble  <jer.noble@apple.com>

        HTML5 audio .ended event not fired when app in background or phone screen is off
        https://bugs.webkit.org/show_bug.cgi?id=173332
        <rdar://problem/32757402>

        Reviewed by Eric Carlson.

        * media/audio-background-playback-playlist-expected.txt: Added.
        * media/audio-background-playback-playlist.html: Added.

2019-11-20  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r252161): box-shadow with inset and rounded borders is clipped
        https://bugs.webkit.org/show_bug.cgi?id=204348

        Reviewed by Zalan Bujtas.

        * fast/box-shadow/inset-box-shadow-expected.html: Added.
        * fast/box-shadow/inset-box-shadow.html: Added.

2019-11-20  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/text/font-antialiasing-save-restore.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204413

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-11-19  Simon Fraser  <simon.fraser@apple.com>

        Remove macOS Sierra results in LayoutTests/platform
        https://bugs.webkit.org/show_bug.cgi?id=204388

        Reviewed by Eric Carlson.

        * platform/mac-sierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: Removed.
        * platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: Removed.
        * platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: Removed.
        * platform/mac-sierra-wk1/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray-expected.txt: Removed.
        * platform/mac-sierra-wk2/fast/dom/HTMLLinkElement/preconnect-support-expected.txt: Removed.
        * platform/mac-sierra-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: Removed.
        * platform/mac-sierra/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Removed.
        * platform/mac-sierra/crypto/subtle/rsa-import-key-malformed-parameters-expected.txt: Removed.
        * platform/mac-sierra/css1/basic/inheritance-expected.png: Removed.
        * platform/mac-sierra/css1/basic/inheritance-expected.txt: Removed.
        * platform/mac-sierra/css2.1/t0602-c13-inh-underlin-00-e-expected.png: Removed.
        * platform/mac-sierra/css2.1/t0602-c13-inh-underlin-00-e-expected.txt: Removed.
        * platform/mac-sierra/css2.1/t0805-c5522-brdr-02-e-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-18-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-18-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-19b-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-19b-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-23-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-23-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-69-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/html/css3-modsel-69-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-18-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-18-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-19b-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-19b-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-23-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-23-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-69-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-69-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-18-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-18-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-19b-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-19b-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-23-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-23-expected.txt: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-69-expected.png: Removed.
        * platform/mac-sierra/css3/selectors3/xml/css3-modsel-69-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-1-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-2-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-3-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-4-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-5-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-6-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-7-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-8-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-9-expected.txt: Removed.
        * platform/mac-sierra/editing/deleting/delete-emoji-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/anchor-element-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attrib-string-colors-with-color-filter-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attrib-string-range-with-color-filter-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attribute-string-for-copy-with-color-filter-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/basic-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/comment-cdata-section-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/font-size-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/font-weight-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/letter-spacing-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/text-decorations-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/attributed-string/vertical-align-expected.txt: Removed.
        * platform/mac-sierra/editing/mac/input/firstrectforcharacterrange-styled-expected.txt: Removed.
        * platform/mac-sierra/editing/selection/select-from-textfield-outwards-expected.png: Removed.
        * platform/mac-sierra/editing/selection/select-from-textfield-outwards-expected.txt: Removed.
        * platform/mac-sierra/fast/HTMLTextAreaElement/reset-textarea-expected.png: Removed.
        * platform/mac-sierra/fast/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
        * platform/mac-sierra/fast/block/basic/001-expected.png: Removed.
        * platform/mac-sierra/fast/block/basic/001-expected.txt: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-basic-expected.png: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-basic-expected.txt: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-border-padding-expected.png: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-border-padding-expected.txt: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-raised-expected.png: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-raised-expected.txt: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-sunken-expected.png: Removed.
        * platform/mac-sierra/fast/css-generated-content/initial-letter-sunken-expected.txt: Removed.
        * platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Removed.
        * platform/mac-sierra/fast/css/css3-nth-child-expected.png: Removed.
        * platform/mac-sierra/fast/css/css3-nth-child-expected.txt: Removed.
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Removed.
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
        * platform/mac-sierra/fast/css/rtl-ordering-expected.png: Removed.
        * platform/mac-sierra/fast/css/rtl-ordering-expected.txt: Removed.
        * platform/mac-sierra/fast/css/text-overflow-input-expected.png: Removed.
        * platform/mac-sierra/fast/css/text-overflow-input-expected.txt: Removed.
        * platform/mac-sierra/fast/dom/34176-expected.png: Removed.
        * platform/mac-sierra/fast/dom/34176-expected.txt: Removed.
        * platform/mac-sierra/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
        * platform/mac-sierra/fast/dom/clone-node-dynamic-style-expected.png: Removed.
        * platform/mac-sierra/fast/dom/clone-node-dynamic-style-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/basic-inputs-expected.png: Removed.
        * platform/mac-sierra/fast/forms/basic-inputs-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/box-shadow-override-expected.png: Removed.
        * platform/mac-sierra/fast/forms/box-shadow-override-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/button-sizes-expected.png: Removed.
        * platform/mac-sierra/fast/forms/button-sizes-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/button-style-color-expected.png: Removed.
        * platform/mac-sierra/fast/forms/button-style-color-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/input-appearance-disabled-expected.png: Removed.
        * platform/mac-sierra/fast/forms/input-appearance-disabled-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/input-appearance-readonly-expected.png: Removed.
        * platform/mac-sierra/fast/forms/input-appearance-readonly-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/input-appearance-visibility-expected.png: Removed.
        * platform/mac-sierra/fast/forms/input-appearance-visibility-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/input-button-sizes-expected.png: Removed.
        * platform/mac-sierra/fast/forms/input-button-sizes-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/input-table-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/input-value-expected.png: Removed.
        * platform/mac-sierra/fast/forms/input-value-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/listbox-bidi-align-expected.png: Removed.
        * platform/mac-sierra/fast/forms/listbox-bidi-align-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/listbox-hit-test-zoomed-expected.png: Removed.
        * platform/mac-sierra/fast/forms/listbox-hit-test-zoomed-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/option-script-expected.png: Removed.
        * platform/mac-sierra/fast/forms/option-script-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/plaintext-mode-2-expected.png: Removed.
        * platform/mac-sierra/fast/forms/plaintext-mode-2-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/search-rtl-expected.png: Removed.
        * platform/mac-sierra/fast/forms/search-rtl-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/search-vertical-alignment-expected.png: Removed.
        * platform/mac-sierra/fast/forms/search-vertical-alignment-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/searchfield-heights-expected.png: Removed.
        * platform/mac-sierra/fast/forms/searchfield-heights-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/select-visual-hebrew-expected.png: Removed.
        * platform/mac-sierra/fast/forms/select-visual-hebrew-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/select-writing-direction-natural-expected.png: Removed.
        * platform/mac-sierra/fast/forms/select-writing-direction-natural-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/textarea-setinnerhtml-expected.png: Removed.
        * platform/mac-sierra/fast/forms/textarea-setinnerhtml-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/textfield-outline-expected.png: Removed.
        * platform/mac-sierra/fast/forms/textfield-outline-expected.txt: Removed.
        * platform/mac-sierra/fast/forms/visual-hebrew-text-field-expected.png: Removed.
        * platform/mac-sierra/fast/forms/visual-hebrew-text-field-expected.txt: Removed.
        * platform/mac-sierra/fast/invalid/003-expected.png: Removed.
        * platform/mac-sierra/fast/invalid/003-expected.txt: Removed.
        * platform/mac-sierra/fast/invalid/004-expected.png: Removed.
        * platform/mac-sierra/fast/invalid/004-expected.txt: Removed.
        * platform/mac-sierra/fast/invalid/nestedh3s-expected.png: Removed.
        * platform/mac-sierra/fast/invalid/nestedh3s-expected.txt: Removed.
        * platform/mac-sierra/fast/selectors/018-expected.png: Removed.
        * platform/mac-sierra/fast/selectors/018-expected.txt: Removed.
        * platform/mac-sierra/fast/table/frame-and-rules-expected.png: Removed.
        * platform/mac-sierra/fast/table/frame-and-rules-expected.txt: Removed.
        * platform/mac-sierra/fast/text/atsui-multiple-renderers-expected.png: Removed.
        * platform/mac-sierra/fast/text/atsui-multiple-renderers-expected.txt: Removed.
        * platform/mac-sierra/fast/text/bidi-embedding-pop-and-push-same-expected.png: Removed.
        * platform/mac-sierra/fast/text/bidi-embedding-pop-and-push-same-expected.txt: Removed.
        * platform/mac-sierra/fast/text/drawBidiText-expected.png: Removed.
        * platform/mac-sierra/fast/text/drawBidiText-expected.txt: Removed.
        * platform/mac-sierra/fast/text/emoji-expected.txt: Removed.
        * platform/mac-sierra/fast/text/font-selection-font-face-parse-expected.txt: Removed.
        * platform/mac-sierra/fast/text/font-selection-font-loading-api-parse-expected.txt: Removed.
        * platform/mac-sierra/fast/text/font-stretch-parse-expected.txt: Removed.
        * platform/mac-sierra/fast/text/font-style-parse-expected.txt: Removed.
        * platform/mac-sierra/fast/text/font-weight-parse-expected.txt: Removed.
        * platform/mac-sierra/fast/text/font-weights-expected.png: Removed.
        * platform/mac-sierra/fast/text/font-weights-expected.txt: Removed.
        * platform/mac-sierra/fast/text/font-weights-zh-expected.png: Removed.
        * platform/mac-sierra/fast/text/font-weights-zh-expected.txt: Removed.
        * platform/mac-sierra/fast/text/indic-expected.png: Removed.
        * platform/mac-sierra/fast/text/indic-expected.txt: Removed.
        * platform/mac-sierra/fast/text/international/complex-character-based-fallback-expected.png: Removed.
        * platform/mac-sierra/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
        * platform/mac-sierra/fast/text/international/danda-space-expected.png: Removed.
        * platform/mac-sierra/fast/text/international/danda-space-expected.txt: Removed.
        * platform/mac-sierra/fast/text/international/pop-up-button-text-alignment-and-direction-expected.png: Removed.
        * platform/mac-sierra/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt: Removed.
        * platform/mac-sierra/fast/text/orientation-sideways-expected.png: Removed.
        * platform/mac-sierra/fast/text/orientation-sideways-expected.txt: Removed.
        * platform/mac-sierra/fast/text/updateNewFont-expected.png: Removed.
        * platform/mac-sierra/fast/text/updateNewFont-expected.txt: Removed.
        * platform/mac-sierra/fast/writing-mode/text-orientation-basic-expected.png: Removed.
        * platform/mac-sierra/fast/writing-mode/text-orientation-basic-expected.txt: Removed.
        * platform/mac-sierra/fonts/cursive-expected.png: Removed.
        * platform/mac-sierra/fonts/cursive-expected.txt: Removed.
        * platform/mac-sierra/http/tests/blink/sendbeacon/beacon-same-origin-expected.txt: Removed.
        * platform/mac-sierra/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt: Removed.
        * platform/mac-sierra/http/tests/inspector/network/resource-sizes-network-expected.txt: Removed.
        * platform/mac-sierra/http/tests/websocket/tests/hybi/secure-cookie-secure-connection-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.https-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.
        * platform/mac-sierra/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Removed.
        * platform/mac-sierra/inspector/css/shadow-scoped-style-expected.txt: Removed.
        * platform/mac-sierra/platform/mac/fast/loader/file-url-mimetypes-3-expected.txt: Removed.
        * platform/mac-sierra/printing/width-overflow-expected.txt: Removed.
        * platform/mac-sierra/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt: Removed.
        * platform/mac-sierra/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: Removed.
        * platform/mac-sierra/svg/batik/text/textStyles-expected.png: Removed.
        * platform/mac-sierra/svg/batik/text/textStyles-expected.txt: Removed.
        * platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/mac-sierra/tables/mozilla/bugs/bug18359-expected.png: Removed.
        * platform/mac-sierra/tables/mozilla/bugs/bug18359-expected.txt: Removed.
        * platform/mac-sierra/tables/mozilla/bugs/bug30692-expected.txt: Removed.
        * platform/mac-sierra/tables/mozilla/bugs/bug51727-expected.png: Removed.
        * platform/mac-sierra/tables/mozilla/bugs/bug51727-expected.txt: Removed.
        * platform/mac-sierra/tables/mozilla/bugs/bug52505-expected.png: Removed.
        * platform/mac-sierra/tables/mozilla/bugs/bug52505-expected.txt: Removed.
        * platform/mac-sierra/tables/mozilla/other/wa_table_thtd_rowspan-expected.png: Removed.
        * platform/mac-sierra/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Removed.
        * platform/mac-sierra/tables/mozilla/other/wa_table_tr_align-expected.png: Removed.
        * platform/mac-sierra/tables/mozilla/other/wa_table_tr_align-expected.txt: Removed.
        * platform/mac-sierra/transforms/2d/zoom-menulist-expected.png: Removed.
        * platform/mac-sierra/transforms/2d/zoom-menulist-expected.txt: Removed.

2019-11-19  Ross Kirsling  <ross.kirsling@sony.com>

        Implement String.prototype.replaceAll
        https://bugs.webkit.org/show_bug.cgi?id=202471

        Reviewed by Yusuke Suzuki.

        * js/Object-getOwnPropertyNames-expected.txt:
        * js/script-tests/Object-getOwnPropertyNames.js:
        Grrr, why is this a layout test...

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

        getUserMedia echoCancellation constraint has no affect
        https://bugs.webkit.org/show_bug.cgi?id=179411

        Reviewed by Eric Carlson.

        * fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt:
        * fast/mediastream/MediaDevices-getSupportedConstraints.html:
        * fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
        * fast/mediastream/apply-constraints-audio-expected.txt:
        * fast/mediastream/apply-constraints-audio.html:
        * fast/mediastream/getUserMedia-webaudio-expected.txt:
        * fast/mediastream/getUserMedia-webaudio.html:
        * webrtc/routines.js:

2019-11-19  Peng Liu  <peng.liu6@apple.com>

        Typos in layout test names
        https://bugs.webkit.org/show_bug.cgi?id=204387

        Reviewed by Eric Carlson.

        * media/video-fullscreen-only-controls-expected.txt: Renamed from LayoutTests/media/video-fullscreeen-only-controls-expected.txt.
        * media/video-fullscreen-only-controls.html: Renamed from LayoutTests/media/video-fullscreeen-only-controls.html.
        * media/video-fullscreen-only-playback-expected.txt: Renamed from LayoutTests/media/video-fullscreeen-only-playback-expected.txt.
        * media/video-fullscreen-only-playback.html: Renamed from LayoutTests/media/video-fullscreeen-only-playback.html.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2019-11-19  Peng Liu  <peng.liu6@apple.com>

        Assertion failure in HTMLMediaElement::enterFullscreen()
        https://bugs.webkit.org/show_bug.cgi?id=204376

        Reviewed by Eric Carlson.

        * media/video-set-presentation-mode-to-inline-expected.txt: Added.
        * media/video-set-presentation-mode-to-inline.html: Added.

2019-11-19  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: overflow of KeyGenerator in MemoryIDBBackingStore
        https://bugs.webkit.org/show_bug.cgi?id=204366

        Reviewed by Brady Eidson.

        * storage/indexeddb/key-generator-expected.txt:
        * storage/indexeddb/key-generator-private-expected.txt:
        * storage/indexeddb/resources/key-generator.js:
        (request.onerror):

2019-11-19  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: update m_objectStoresByName after renaming object store
        https://bugs.webkit.org/show_bug.cgi?id=204373

        Reviewed by Brady Eidson.

        * storage/indexeddb/put-after-objectstore-rename-expected.txt: Added.
        * storage/indexeddb/put-after-objectstore-rename-private-expected.txt: Added.
        * storage/indexeddb/put-after-objectstore-rename-private.html: Added.
        * storage/indexeddb/put-after-objectstore-rename.html: Added.
        * storage/indexeddb/resources/put-after-objectstore-rename.js: Added.
        (prepareDatabase):
        (openSuccess):

2019-11-19  Jiewen Tan  <jiewen_tan@apple.com>

        Improve WebAuthn NFC tests after r252297
        https://bugs.webkit.org/show_bug.cgi?id=204251

        Reviewed by Alexey Proskuryakov.

        This patch fixes a test failure after r252297 and adds new test contents for r252297.

        * http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:

2019-11-19  Sunny He  <sunny_he@apple.com>

        Nullptr crash in Node::setTextContent via Document::setTitle if title element is removed before setTextContent call.
        https://bugs.webkit.org/show_bug.cgi?id=204332

        Reviewed by Ryosuke Niwa.

        * fast/dom/Document/title-property-set-with-dom-event-expected.txt: Added.
        * fast/dom/Document/title-property-set-with-dom-event.html: Added.
        * fast/dom/Document/title-property-set-with-dom-event-svg-expected.html: Added.
        * fast/dom/Document/title-property-set-with-dom-event-svg.html: Added.
2019-11-19  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, test gardening

        * platform/ios-wk2/TestExpectations:

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

        fast/events/touch/ios/long-press-on-link.html times out after r251693
        https://bugs.webkit.org/show_bug.cgi?id=204365
        <rdar://problem/57324773>

        Reviewed by Megan Gardner.

        The change in trac.webkit.org/r251693 inadvertently fixed a failing layout test, fast/events/touch/ios/
        long-press-on-image.html. In doing so, it caused the subsequent layout test, long-press-on-link.html, to begin
        failing, since both tests depend on the previous test not presenting a context menu when long pressing; if the
        previous test presents a context menu, the next test will proceed while the context menu is still dismissing,
        which prevents the touches from making it to the web view.

        To fix this, simply mark both tests as `runSingly` in test options; this forces context menu UI to be torn down
        after running these two tests, so that these tests won't have side effects when they successfully show a context
        menu.

        * fast/events/touch/ios/long-press-on-image.html:
        * fast/events/touch/ios/long-press-on-link.html:

2019-11-19  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Count third-party script loads under top frame
        https://bugs.webkit.org/show_bug.cgi?id=204262
        <rdar://problem/57244945>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html: Added.
        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt: Added.
        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html: Added.
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html: Added.
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt: Added.
        * http/tests/resourceLoadStatistics/count-third-party-script-loads.html: Added.
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html: Added.
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt: Added.
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html: Added.
        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt:
            Removed the lastSeen output since it may differ between test runs.
        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
            Removed the lastSeen output since it may differ between test runs.
        * http/tests/resourceLoadStatistics/resources/dummy.js: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database-expected.txt:
            Removed the lastSeen output since it may differ between test runs.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:
            Removed the lastSeen output since it may differ between test runs.

2019-11-19  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r252598): system-preview/badge.html and transforms/2d/zoom-menulist.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=204383

        Unreviewed test gardening: adjust these tests for the different color component
        rounding introduced in r252598.

        * platform/ios/transforms/2d/zoom-menulist-expected.txt:
        * system-preview/badge-expected.html:

2019-11-19  Sihui Liu  <sihui_liu@apple.com>

        Update expectations for bufferedAmount-unchanged-by-sync-xhr.any.worker.html
        https://bugs.webkit.org/show_bug.cgi?id=204313

        Reviewed by Alex Christensen.

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

2019-11-19  Eric Carlson  <eric.carlson@apple.com>

        OverConstrainedError is missing 'name' property
        https://bugs.webkit.org/show_bug.cgi?id=204069

        Reviewed by Youenn Fablet.

        * fast/mediastream/MediaDevices-getUserMedia.html:
        * fast/mediastream/overconstrainederror-constraint.html:

2019-11-19  Kate Cheney  <katherine_cheney@apple.com>

        [ Jazz ] http/tests/resourceLoadStatistics/cookie-deletion.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=203813
        <rdar://problem/54316765>

        Reviewed by Alexey Proskuryakov.

        Added console logging to narrow down cause of flaky test which does not
        reproduce locally. Changed test expectations to timeout so the bots
        actually run the test and the issue can be determined.

        * http/tests/resourceLoadStatistics/cookie-deletion-expected.txt:
        * http/tests/resourceLoadStatistics/cookie-deletion.html:
        * platform/wk2/TestExpectations:

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

        [Clipboard API] Add support for Clipboard.readText()
        https://bugs.webkit.org/show_bug.cgi?id=204310
        <rdar://problem/57292754>

        Reviewed by Ryosuke Niwa.

        Add several new layout tests.

        * editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes-expected.txt: Added.
        * editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html: Added.

        Add a test to verify that if the clipboard changes content in the middle of a call to clipboard.readText, we
        will reject the readText() promise and avoid exposing any text to the page.

        * editing/async-clipboard/clipboard-read-text-expected.txt: Added.
        * editing/async-clipboard/clipboard-read-text-from-platform-expected.txt: Added.
        * editing/async-clipboard/clipboard-read-text-from-platform.html: Added.

        Add a test to verify that we display DOM paste UI when reading text that was written to the pasteboard directly
        via platform API.

        * editing/async-clipboard/clipboard-read-text-same-origin-expected.txt: Added.
        * editing/async-clipboard/clipboard-read-text-same-origin.html: Added.

        Add a test to verify that we allow the page to access same origin text data on the pasteboard using readText,
        during a user gesture.

        * editing/async-clipboard/clipboard-read-text.html: Added.

        Add a basic test to verify that readText works when the page writes text to the clipboard using DataTransfer and
        document.execCommand.

        * platform/gtk/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wpe/TestExpectations:

2019-11-18  John Wilander  <wilander@apple.com>

        Check if ITP is on before applying third-party cookie blocking
        https://bugs.webkit.org/show_bug.cgi?id=204322
        <rdar://problem/57120772>

        Reviewed by Chris Dumez and Alexey Proskuryakov.

        * http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off-expected.txt: Added.
        * http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html: Added.

2019-11-18  Simon Fraser  <simon.fraser@apple.com>

        -webkit-font-smoothing: none leaves subsequent elements unantialiased
        https://bugs.webkit.org/show_bug.cgi?id=204334

        Reviewed by Myles C. Maxfield.

        * fast/text/font-antialiasing-save-restore-expected.html: Added.
        * fast/text/font-antialiasing-save-restore.html: Added.

2019-11-18  Devin Rousso  <drousso@apple.com>

        Web Inspector: Local Resource Overrides: allow substitution based on a url pattern
        https://bugs.webkit.org/show_bug.cgi?id=202375

        Reviewed by Brian Burg.

        * http/tests/inspector/network/local-resource-override-basic.html:
        * http/tests/inspector/network/local-resource-override-basic-expected.txt:

2019-11-18  Megan Gardner  <megan_gardner@apple.com>

        Update dismiss-picker-using-keyboard.html test to work on iPad correctly
        https://bugs.webkit.org/show_bug.cgi?id=204257
        <rdar://problem/57239690>

        Reviewed by Wenson Hsieh.

        The iPad does not use the keyboard to show the options for these form controls,
        and instead uses a popover. This expands the test infrastructure to allow for
        either iPhone or iPad functionality.

        * fast/forms/ios/dismiss-picker-using-keyboard.html:
        * resources/ui-helper.js:
        (window.UIHelper.activateAndWaitForInputSessionAt.return.new.Promise.):
        (window.UIHelper.waitForInputSessionToDismiss.return.new.Promise.):
        (window.UIHelper.waitForInputSessionToDismiss.return.new.Promise):
        (window.UIHelper.waitForInputSessionToDismiss):

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

        Fix getTotalLength() and getPointAtLength() for optimized rect and ellipse renderers
        https://bugs.webkit.org/show_bug.cgi?id=204213

        Reviewed by Simon Fraser.

        The following tests were added in r231955. The SVGElements in these were
        defined such that a path has to be created to render any of them. Change
        all the tests, except the polygon and the polyline, such that no path is
        needed to render them. This will exercise the code path where we need to
        create a temporary Path to answer the questions of getTotalLength() and
        getPointAtLength().

        * svg/dom/SVGGeometry-circle-expected.txt:
        * svg/dom/SVGGeometry-circle.xhtml:
        * svg/dom/SVGGeometry-ellipse-expected.txt:
        * svg/dom/SVGGeometry-ellipse.xhtml:
        * svg/dom/SVGGeometry-line-expected.txt:
        * svg/dom/SVGGeometry-line.xhtml:
        * svg/dom/SVGGeometry-polygon-expected.txt:
        * svg/dom/SVGGeometry-polygon.xhtml:
        * svg/dom/SVGGeometry-polyline-expected.txt:
        * svg/dom/SVGGeometry-polyline.xhtml:
        * svg/dom/SVGGeometry-rect-expected.txt:
        * svg/dom/SVGGeometry-rect.xhtml:

2019-11-18  Zalan Bujtas  <zalan@apple.com>

        Block layout invalidation logic triggers excessive layout on height percentage descendants
        https://bugs.webkit.org/show_bug.cgi?id=204255

        Reviewed by Simon Fraser.

        * fast/block/height-percentage-descendants-with-absolute-pos-containingblock-expected.txt: Added.
        * fast/block/height-percentage-descendants-with-absolute-pos-containingblock.html: Added.

2019-11-18  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Clipboard API] Add support for Clipboard.writeText()
        https://bugs.webkit.org/show_bug.cgi?id=204287
        <rdar://problem/57270440>

        Reviewed by Tim Horton.

        * editing/async-clipboard/clipboard-write-text-expected.txt: Added.
        * editing/async-clipboard/clipboard-write-text-requires-user-gesture-expected.txt: Added.
        * editing/async-clipboard/clipboard-write-text-requires-user-gesture.html: Added.

        Add a layout test to verify that `navigator.clipboard.writeText` is gated on user gesture, if the
        javaScriptCanAccessClipboard preference is disabled.

        * editing/async-clipboard/clipboard-write-text.html: Added.

        Add a layout test to verify that writing text to the clipboard puts a single item on the system clipboard with
        the type "text/plain", which can be read back using `navigator.clipboard.read`.

        * platform/win/TestExpectations:

        Skip clipboard-write-text.html on Windows, since custom pasteboard data is not implemented there yet.

2019-11-18  Simon Fraser  <simon.fraser@apple.com>

        Fix color component rounding to match the CSS Color spec
        https://bugs.webkit.org/show_bug.cgi?id=203597
        <rdar://problem/56728546>

        Reviewed by Tim Horton.

        New results.

        * TestExpectations:
        * css3/calc/color-hsl-expected.txt:
        * css3/calc/color-rgb-expected.txt:
        * css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt:
        * displaylists/canvas-display-list-expected.txt:
        * editing/execCommand/query-command-value-background-color-expected.txt:
        * editing/execCommand/query-command-value-background-color.html:
        * fast/block/basic/fieldset-stretch-to-legend-expected.txt:
        * fast/block/float/relative-painted-twice-expected.txt:
        * fast/borders/border-image-trumps-radius-expected.txt:
        * fast/borders/border-left-right-same-bottom-different-color-expected.txt:
        * fast/borders/border-radius-groove-03-expected.txt:
        * fast/borders/border-radius-wide-border-03-expected.txt:
        * fast/borders/border-radius-wide-border-04-expected.txt:
        * fast/borders/borderRadiusDashed05-expected.txt:
        * fast/borders/borderRadiusDotted05-expected.txt:
        * fast/borders/borderRadiusDotted06-expected.txt:
        * fast/borders/borderRadiusDouble05-expected.txt:
        * fast/borders/borderRadiusDouble09-expected.txt:
        * fast/borders/fieldsetBorderRadius-expected.txt:
        * fast/canvas/rgba-parsing-expected.txt:
        * fast/canvas/rgba-parsing.html:
        * fast/css/apple-system-control-colors-expected.txt:
        * fast/css/paint-order-shadow-expected.html:
        * fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color-expected.txt:
        * fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color.html:
        * fast/frames/content-opacity-1-expected.txt:
        * fast/table/border-collapsing/collapsed-borders-adjoining-sections-vertical-rl-expected.txt:
        * fast/table/border-collapsing/collapsed-borders-painted-once-on-inner-cells-expected.txt:
        * media/modern-media-controls/background-tint/background-tint-expected.txt:
        * media/modern-media-controls/background-tint/background-tint.html:
        * media/modern-media-controls/button/button-focus-state-expected.txt:
        * media/modern-media-controls/button/button-focus-state.html:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
        * platform/ios-wk2/editing/pasteboard/4641033-expected.txt:
        * platform/ios-wk2/editing/pasteboard/4944770-1-expected.txt:
        * platform/ios-wk2/editing/selection/caret-before-select-expected.txt:
        * platform/ios-wk2/fast/block/basic/011-expected.txt:
        * platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
        * platform/ios-wk2/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
        * platform/ios-wk2/fast/overflow/float-in-relpositioned-expected.txt:
        * platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
        * platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt:
        * platform/ios-wk2/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
        * platform/ios-wk2/fast/text/shadow-no-blur-expected.txt:
        * platform/ios-wk2/fast/text/shadow-translucent-fill-expected.txt:
        * platform/ios/TestExpectations:
        * platform/ios/compositing/images/direct-image-background-color-expected.txt:
        * platform/ios/compositing/overflow/theme-affects-visual-overflow-expected.txt:
        * platform/ios/compositing/webgl/webgl-background-color-expected.txt:
        * platform/ios/css1/box_properties/acid_test-expected.txt:
        * platform/ios/css2.1/t09-c5526c-display-00-e-expected.txt:
        * platform/ios/css3/flexbox/button-expected.txt:
        * platform/ios/css3/selectors3/html/css3-modsel-19b-expected.txt:
        * platform/ios/css3/selectors3/html/css3-modsel-64-expected.txt:
        * platform/ios/css3/selectors3/xhtml/css3-modsel-19b-expected.txt:
        * platform/ios/css3/selectors3/xhtml/css3-modsel-64-expected.txt:
        * platform/ios/css3/selectors3/xml/css3-modsel-19b-expected.txt:
        * platform/ios/css3/selectors3/xml/css3-modsel-64-expected.txt:
        * platform/ios/editing/selection/3690703-2-expected.txt:
        * platform/ios/editing/selection/3690703-expected.txt:
        * platform/ios/editing/selection/3690719-expected.txt:
        * platform/ios/editing/selection/4397952-expected.txt:
        * platform/ios/editing/selection/5240265-expected.txt:
        * platform/ios/editing/selection/replaced-boundaries-3-expected.txt:
        * platform/ios/editing/selection/select-box-expected.txt:
        * platform/ios/editing/selection/select-element-paragraph-boundary-expected.txt:
        * platform/ios/editing/selection/selection-button-text-expected.txt:
        * platform/ios/fast/backgrounds/background-leakage-expected.txt:
        * platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt:
        * platform/ios/fast/block/float/float-avoidance-expected.txt:
        * platform/ios/fast/block/float/intruding-painted-twice-expected.txt:
        * platform/ios/fast/block/positioning/inline-block-relposition-expected.txt:
        * platform/ios/fast/borders/mixed-border-styles-expected.txt:
        * platform/ios/fast/borders/mixed-border-styles-radius-expected.txt:
        * platform/ios/fast/borders/mixed-border-styles-radius2-expected.txt:
        * platform/ios/fast/box-shadow/inset-box-shadow-radius-expected.txt:
        * platform/ios/fast/css/continuationCrash-expected.txt:
        * platform/ios/fast/css/margin-top-bottom-dynamic-expected.txt:
        * platform/ios/fast/css/non-standard-checkbox-size-expected.txt:
        * platform/ios/fast/css/percentage-non-integer-expected.txt:
        * platform/ios/fast/css/rtl-ordering-expected.txt:
        * platform/ios/fast/css/shadow-multiple-expected.txt:
        * platform/ios/fast/css/text-transform-select-expected.txt:
        * platform/ios/fast/css/viewport-units-dynamic-expected.txt:
        * platform/ios/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
        * platform/ios/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
        * platform/ios/fast/forms/001-expected.txt:
        * platform/ios/fast/forms/003-expected.txt:
        * platform/ios/fast/forms/004-expected.txt:
        * platform/ios/fast/forms/basic-inputs-expected.txt:
        * platform/ios/fast/forms/basic-selects-expected.txt:
        * platform/ios/fast/forms/blankbuttons-expected.txt:
        * platform/ios/fast/forms/box-shadow-override-expected.txt:
        * platform/ios/fast/forms/button-align-expected.txt:
        * platform/ios/fast/forms/button-cannot-be-nested-expected.txt:
        * platform/ios/fast/forms/button-generated-content-expected.txt:
        * platform/ios/fast/forms/button-positioned-expected.txt:
        * platform/ios/fast/forms/button-sizes-expected.txt:
        * platform/ios/fast/forms/button-style-color-expected.txt:
        * platform/ios/fast/forms/button-table-styles-expected.txt:
        * platform/ios/fast/forms/button-text-transform-expected.txt:
        * platform/ios/fast/forms/button-white-space-expected.txt:
        * platform/ios/fast/forms/control-clip-expected.txt:
        * platform/ios/fast/forms/control-clip-overflow-expected.txt:
        * platform/ios/fast/forms/control-restrict-line-height-expected.txt:
        * platform/ios/fast/forms/disabled-select-change-index-expected.txt:
        * platform/ios/fast/forms/file/file-input-direction-expected.txt:
        * platform/ios/fast/forms/file/file-input-disabled-expected.txt:
        * platform/ios/fast/forms/form-element-geometry-expected.txt:
        * platform/ios/fast/forms/formmove-expected.txt:
        * platform/ios/fast/forms/formmove2-expected.txt:
        * platform/ios/fast/forms/formmove3-expected.txt:
        * platform/ios/fast/forms/hidden-listbox-expected.txt:
        * platform/ios/fast/forms/input-appearance-height-expected.txt:
        * platform/ios/fast/forms/input-button-sizes-expected.txt:
        * platform/ios/fast/forms/input-value-expected.txt:
        * platform/ios/fast/forms/listbox-bidi-align-expected.txt:
        * platform/ios/fast/forms/listbox-hit-test-zoomed-expected.txt:
        * platform/ios/fast/forms/listbox-scrollbar-incremental-load-expected.txt:
        * platform/ios/fast/forms/listbox-width-change-expected.txt:
        * platform/ios/fast/forms/menulist-clip-expected.txt:
        * platform/ios/fast/forms/menulist-deselect-update-expected.txt:
        * platform/ios/fast/forms/menulist-narrow-width-expected.txt:
        * platform/ios/fast/forms/menulist-no-overflow-expected.txt:
        * platform/ios/fast/forms/menulist-option-wrap-expected.txt:
        * platform/ios/fast/forms/menulist-separator-painting-expected.txt:
        * platform/ios/fast/forms/menulist-style-color-expected.txt:
        * platform/ios/fast/forms/menulist-width-change-expected.txt:
        * platform/ios/fast/forms/option-script-expected.txt:
        * platform/ios/fast/forms/option-strip-whitespace-expected.txt:
        * platform/ios/fast/forms/option-text-clip-expected.txt:
        * platform/ios/fast/forms/select-align-expected.txt:
        * platform/ios/fast/forms/select-baseline-expected.txt:
        * platform/ios/fast/forms/select-block-background-expected.txt:
        * platform/ios/fast/forms/select-change-listbox-size-expected.txt:
        * platform/ios/fast/forms/select-change-listbox-to-popup-expected.txt:
        * platform/ios/fast/forms/select-change-popup-to-listbox-expected.txt:
        * platform/ios/fast/forms/select-dirty-parent-pref-widths-expected.txt:
        * platform/ios/fast/forms/select-disabled-appearance-expected.txt:
        * platform/ios/fast/forms/select-empty-option-height-expected.txt:
        * platform/ios/fast/forms/select-initial-position-expected.txt:
        * platform/ios/fast/forms/select-item-background-clip-expected.txt:
        * platform/ios/fast/forms/select-list-box-with-height-expected.txt:
        * platform/ios/fast/forms/select-non-native-rendering-direction-expected.txt:
        * platform/ios/fast/forms/select-selected-expected.txt:
        * platform/ios/fast/forms/select-style-expected.txt:
        * platform/ios/fast/forms/select-visual-hebrew-expected.txt:
        * platform/ios/fast/forms/select-writing-direction-natural-expected.txt:
        * platform/ios/fast/forms/select/optgroup-rendering-expected.txt:
        * platform/ios/fast/forms/selectlist-minsize-expected.txt:
        * platform/ios/fast/forms/stuff-on-my-optgroup-expected.txt:
        * platform/ios/fast/html/details-replace-summary-child-expected.txt:
        * platform/ios/fast/html/details-replace-text-expected.txt:
        * platform/ios/fast/html/keygen-expected.txt:
        * platform/ios/fast/inline/positionedLifetime-expected.txt:
        * platform/ios/fast/invalid/014-expected.txt:
        * platform/ios/fast/multicol/client-rects-expected.txt:
        * platform/ios/fast/multicol/client-rects-spanners-complex-expected.txt:
        * platform/ios/fast/multicol/client-rects-spanners-expected.txt:
        * platform/ios/fast/multicol/newmulticol/client-rects-expected.txt:
        * platform/ios/fast/parser/bad-xml-slash-expected.txt:
        * platform/ios/fast/replaced/replaced-breaking-expected.txt:
        * platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
        * platform/ios/fast/replaced/three-selects-break-expected.txt:
        * platform/ios/fast/replaced/width100percent-button-expected.txt:
        * platform/ios/fast/replaced/width100percent-checkbox-expected.txt:
        * platform/ios/fast/replaced/width100percent-menulist-expected.txt:
        * platform/ios/fast/replaced/width100percent-radio-expected.txt:
        * platform/ios/fast/ruby/select-ruby-expected.txt:
        * platform/ios/fast/selectors/064-expected.txt:
        * platform/ios/fast/table/append-cells2-expected.txt:
        * platform/ios/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
        * platform/ios/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
        * platform/ios/fast/table/remove-td-display-none-expected.txt:
        * platform/ios/fast/text/international/bidi-listbox-atsui-expected.txt:
        * platform/ios/fast/text/international/bidi-listbox-expected.txt:
        * platform/ios/fast/text/international/bidi-menulist-expected.txt:
        * platform/ios/fast/text/international/hindi-spacing-expected.txt:
        * platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
        * platform/ios/fast/text/whitespace/normal-after-nowrap-breaking-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/ios/ios/fast/borders/thin-lozenge-expected.txt:
        * platform/ios/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt:
        * platform/ios/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt:
        * platform/ios/svg/custom/foreign-object-skew-expected.txt:
        * platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug1318-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug138725-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug26178-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug29326-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug33855-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug39209-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug4429-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug44505-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug51727-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug52505-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug52506-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug60749-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug68912-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug92647-2-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
        * platform/ios/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
        * platform/ios/tables/mozilla/core/margins-expected.txt:
        * platform/ios/tables/mozilla/dom/tableDom-expected.txt:
        * platform/ios/tables/mozilla/other/move_row-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/core/captions1-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/core/captions2-expected.txt:
        * platform/ios/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
        * platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
        * platform/mac-mojave/fast/css/apple-system-control-colors-expected.txt:
        * platform/mac/compositing/images/direct-image-background-color-expected.txt:
        * platform/mac/compositing/webgl/webgl-background-color-expected.txt:
        * platform/mac/fast/backgrounds/background-leakage-expected.txt:
        * platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt:
        * platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.txt:
        * platform/mac/fast/block/float/intruding-painted-twice-expected.txt:
        * platform/mac/fast/borders/fieldsetBorderRadius-expected.txt:
        * platform/mac/fast/borders/mixed-border-styles-expected.txt:
        * platform/mac/fast/borders/mixed-border-styles-radius-expected.txt:
        * platform/mac/fast/borders/mixed-border-styles-radius2-expected.txt:
        * platform/mac/fast/box-shadow/inset-box-shadow-radius-expected.txt:
        * platform/mac/fast/css/apple-system-control-colors-expected.txt:
        * platform/mac/fast/css/percentage-non-integer-expected.txt:
        * platform/mac/fast/css/shadow-multiple-expected.txt:
        * platform/mac/fast/css/viewport-units-dynamic-expected.txt:
        * platform/mac/fast/multicol/client-rects-expected.txt:
        * platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
        * platform/mac/fast/multicol/client-rects-spanners-expected.txt:
        * platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
        * platform/mac/fast/overflow/float-in-relpositioned-expected.txt:
        * platform/mac/fast/ruby/select-ruby-expected.txt:
        * platform/mac/fast/table/border-collapsing/collapsed-borders-adjoining-sections-vertical-rl-expected.txt:
        * platform/mac/fast/table/border-collapsing/collapsed-borders-painted-once-on-inner-cells-expected.txt:
        * platform/mac/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
        * platform/mac/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
        * platform/mac/fast/text/shadow-no-blur-expected.txt:
        * platform/mac/fast/text/shadow-translucent-fill-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
        * platform/win/TestExpectations:
        * svg/custom/fill-opacity-rgba-expected.txt:
        * svg/custom/mask-colorspace-expected.txt:

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

        [Web Animations] Retargeted transitions targeting accelerated properties do not stop the original transition
        https://bugs.webkit.org/show_bug.cgi?id=204116

        Reviewed by Dean Jackson.

        Rebaseline iOS test output.

        * platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Added.

2019-11-16  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r243606): Interacting with date and time pickers hangs the UI process on watchOS
        https://bugs.webkit.org/show_bug.cgi?id=204280
        <rdar://problem/49718359>

        Reviewed by Chris Dumez.

        Clean up a few details in the layout test.

        * fast/forms/watchos/time-picker-value-change-expected.txt:
        * fast/forms/watchos/time-picker-value-change.html:

        Tweak the test description, and simplify logic for completing the layout test.

2019-11-16  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, rolling out r252526.

        broke iOS and mac builds

        Reverted changeset:

        "Unreviewed, rolling out r252455."
        https://bugs.webkit.org/show_bug.cgi?id=204272
        https://trac.webkit.org/changeset/252526

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

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

        Broke a layout-test on iOS (Requested by aakashja_ on
        #webkit).

        Reverted changeset:

        "[Web Animations] Retargeted transitions targeting accelerated
        properties do not stop the original transition"
        https://bugs.webkit.org/show_bug.cgi?id=204116
        https://trac.webkit.org/changeset/252455

2019-11-15  Per Arne Vollan  <pvollan@apple.com>

        Layout test animations/no-style-recalc-during-accelerated-animation.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204253

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-11-14  Ryosuke Niwa  <rniwa@webkit.org>

        JS wrappers of scroll event targets can get prematurely collected by GC
        https://bugs.webkit.org/show_bug.cgi?id=204219

        Reviewed by Keith Miller.

        Added a regression test for adding elements as pending scroll event targets,
        and removing them from the document before scroll events are fired.

        * fast/scrolling/scrolling-event-target-gc-expected.txt: Added.
        * fast/scrolling/scrolling-event-target-gc.html: Added.

2019-11-15  Pablo Saavedra  <psaavedra@igalia.com>

        [WPE][GTK] Gardening after r252487
        https://bugs.webkit.org/show_bug.cgi?id=204235

        Unreviewed WPE and GTK+ gardening after r252487.

        * platform/gtk/TestExpectations:

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

        [iOS] Two layout tests in editing/selection/ios time out when waiting for selection views to appear
        https://bugs.webkit.org/show_bug.cgi?id=204231
        <rdar://problem/56096961>

        Reviewed by Megan Gardner.

        Adjust these layout tests to select text by long pressing, instead of selecting text by tapping a button that
        programmatically selects a range of text. The latter only results in platform selection views if the user (or,
        in this case, a previous test in the same web view) has already manually selected text. This isn't guaranteed,
        given that the previous test may have timed out, or may have different test options which require a new
        WKWebView to have been created.

        * editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html:
        * editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text-expected.txt:
        * editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html:
        * resources/ui-helper.js:
        (window.UIHelper.async.longPressElement):
        (window.UIHelper.async.longPressAtPoint.return.new.Promise.):
        (window.UIHelper.async.longPressAtPoint.return.new.Promise):
        (window.UIHelper.async.longPressAtPoint):

        Also add helper methods in ui-helper.js to trigger long press gestures, so that we can start moving away from
        the helper methods in basic-gestures.js.

        (window.UIHelper):

2019-11-15  Simon Fraser  <simon.fraser@apple.com>

        The image is flashing if falls out and has an animation transform: rotate
        https://bugs.webkit.org/show_bug.cgi?id=203613

        Reviewed by Antti Koivisto.

        * compositing/backing/backing-store-attachment-with-rotation-expected.txt: Added.
        * compositing/backing/backing-store-attachment-with-rotation.html: Added.

2019-11-14  Wenson Hsieh  <wenson_hsieh@apple.com>

        Crash when setting HTMLInputElement.checked for a disconnected radio button in a shadow root
        https://bugs.webkit.org/show_bug.cgi?id=204208
        <rdar://problem/57045830>

        Reviewed by Tim Horton.

        Adds a new layout test to verify that we don't crash in this scenario.

        * fast/forms/radio-input-in-shadow-root-crash-expected.txt: Added.
        * fast/forms/radio-input-in-shadow-root-crash.html: Added.

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

        Update libwebrtc to M78
        https://bugs.webkit.org/show_bug.cgi?id=203897

        Reviewed by Eric Carlson.

        * webrtc/simulcast-h264.html:
        Update test to remove rid information from answer.

2019-11-14  Said Abou-Hallawa  <sabouhallawa@apple.com>

        The CSSParser should not consume negative or unit-less lengths for the SVG properties 'r', 'rx' and 'ry'
        https://bugs.webkit.org/show_bug.cgi?id=204200

        Reviewed by Simon Fraser.

        * svg/css/parse-length-expected.txt:
        * svg/css/parse-length.html:

2019-11-14  Antoine Quint  <graouts@apple.com>

        [Web Animations] Accelerated transitions do not always remove their backing accelerated animation
        https://bugs.webkit.org/show_bug.cgi?id=204198
        <rdar://problem/45847205>

        Reviewed by Dean Jackson.

        Add a new test that checks that a CSS Transition targeting the transform property which requires a layer correctly clears the
        accelerated animation upon completion.

        * webanimations/accelerated-animation-removal-upon-transition-completion-expected.txt: Added.
        * webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.

2019-11-14  Antoine Quint  <graouts@apple.com>

        [Web Animations] Retargeted transitions targeting accelerated properties do not stop the original transition
        https://bugs.webkit.org/show_bug.cgi?id=204116
        <rdar://problem/57116961>

        Reviewed by Dean Jackson.

        Add a new test that checks that reversing an in-flight transition for "opacity" and "transform" correctly reverses the transition.

        * platform/mac-wk1/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Added.
        * webanimations/css-transition-in-flight-reversal-accelerated-expected.txt: Added.
        * webanimations/css-transition-in-flight-reversal-accelerated.html: Added.

2019-11-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Clipboard API] Add support for Clipboard.write()
        https://bugs.webkit.org/show_bug.cgi?id=204078
        <rdar://problem/57087756>

        Reviewed by Ryosuke Niwa.

        Adds several new layout tests to exercise the write method on Clipboard.

        * editing/async-clipboard/clipboard-change-data-while-writing-expected.txt: Added.
        * editing/async-clipboard/clipboard-change-data-while-writing.html: Added.

        Verify that if the platform pasteboard contents change while the page attempts to write to the clipboard, we
        will reject the promise for writing.

        * editing/async-clipboard/clipboard-write-basic-expected.txt: Added.
        * editing/async-clipboard/clipboard-write-basic.html: Added.

        Verify that writing multiple ClipboardItems to the clipboard using write() works. Among these items, one of them
        contains no types, and another only contains types that resolve to empty strings. The page should be able to
        read all four items back using Clipboard.read().

        * editing/async-clipboard/clipboard-write-items-twice-expected.txt: Added.
        * editing/async-clipboard/clipboard-write-items-twice.html: Added.

        Verify that attempting to write a clipboard item that resolves on a long delay, and then attempting to write
        another item that resolves on a short delay before the previous clipboard item has finished writing does not
        cause the latter call to Clipboard.write() to fail. Additionally, the clipboard should contain the contents of
        the second set of clipboard items, rather than the first.

        * editing/async-clipboard/resources/async-clipboard-helpers.js:
        (async.checkClipboardItemString):

        Add a helper method to read a string for the given type, out of the given clipboard item, and compare it against
        an expected result.

2019-11-13  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [SVG2] Add the 'orient' property of the interface SVGMarkerElement
        https://bugs.webkit.org/show_bug.cgi?id=203646

        Reviewed by Simon Fraser.

        The pair properties <orientAngle, orientType> are now in sync. Fix the
        tests which were assuming that these properties can change independently.

        * svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
        * svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html:
        * svg/dynamic-updates/SVGMarkerElement-dom-orient-attr-expected.txt:
        * svg/dynamic-updates/SVGMarkerElement-dom-orient-attr.html:

2019-11-13  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win][DumpRenderTree][WebKitTestRunner] eventSender.keyDown should support function keys
        https://bugs.webkit.org/show_bug.cgi?id=204146

        Reviewed by Ross Kirsling.

        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        Unskipped fast/events/keydown-function-keys.html and fast/events/keydown-leftright-keys.html.

2019-11-13  youenn fablet  <youenn@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
        <rdar://problem/51902173>

        Reviewed by Alex Christensen.

        * TestExpectations:
        Mark more tests as DumpJSConsoleLogInStdErr

2019-11-13  Youenn Fablet  <youenn@apple.com>

        Several XHR and CORS tests are flaky due to inconsistent order of console messages
        https://bugs.webkit.org/show_bug.cgi?id=179607

        Reviewed by Alex Christensen.

        Use DumpJSConsoleLogInStdErr to remove console lines.
        * TestExpectations:

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

        Web Inspector: inspector/model/remote-object-weak-collection.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=202932

        Reviewed by Brian Burg.

        * inspector/model/remote-object-weak-collection.html:
        Don't `generatePreview` when evaluating each expression, as that can create additional
        references to the object. Use `HeapAgent.gc()` as that's guaranteed to be synchronous.

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

        Google Docs spreadsheet tiles render very slowly (because of event region painting)
        https://bugs.webkit.org/show_bug.cgi?id=204160
        <rdar://problem/57073401>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt: Added.
        * fast/scrolling/ios/event-region-scrolled-contents-layer.html: Added.

2019-11-13  Youenn Fablet  <youenn@apple.com>

        [ iOS ]: Layout Test http/tests/IndexedDB/storage-limit-1.https.html is a Flaky Failure
        https://bugs.webkit.org/show_bug.cgi?id=203275
        <rdar://problem/56516249>

        Reviewed by Alex Christensen.

        * platform/ios-wk2/TestExpectations:

2019-11-13  Per Arne Vollan  <pvollan@apple.com>

        REGRESSION: some layout test are failing on Win EWS
        https://bugs.webkit.org/show_bug.cgi?id=204153

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-11-13  Rob Buis  <rbuis@igalia.com>

        Support stale-while-revalidate cache strategy
        https://bugs.webkit.org/show_bug.cgi?id=201461

        Reviewed by Youenn Fablet.

        Skip newly imported tests for WK1.

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

2019-11-12  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo

        * platform/wincairo/TestExpectations: Unskipped fast/events.

2019-11-12  Keith Miller  <keith_miller@apple.com>

        AudioScheduledSourceNodes leak if they have an attached onended EventTarget
        https://bugs.webkit.org/show_bug.cgi?id=204087

        Reviewed by Jer Noble.

        * webaudio/audiobuffersource-not-gced-until-ended-expected.txt: Added.
        * webaudio/audiobuffersource-not-gced-until-ended.html: Added.
        * webaudio/finished-audio-buffer-source-nodes-should-be-collectable-expected.txt: Added.
        * webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html: Added.

2019-11-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] WKWebView does not respect system spellchecking preference
        https://bugs.webkit.org/show_bug.cgi?id=204100
        <rdar://problem/56653808>

        Reviewed by Tim Horton.

        Add a new layout test to verify that the changes to platform spellchecking preferences are reflected in editable
        content. See other changelogs for more information.

        * editing/spelling/toggle-spellchecking-expected.txt: Added.
        * editing/spelling/toggle-spellchecking.html: Added.
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.async.setContinuousSpellCheckingEnabled):

        Also, add a new UIHelper method to enable or disable continuous spellchecking during a layout test.

        (window.UIHelper):

2019-11-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK][WPE] Support Pointer Events
        https://bugs.webkit.org/show_bug.cgi?id=202789

        Reviewed by Carlos Garcia Campos.

        Add test expectations for GTK/WPE.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification-expected.txt: Removed.
          Now it passes with the general expectation.
        * platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-verification-expected.txt: Removed.
          Now it passes with the general expectation.
        * platform/wpe/TestExpectations: Update also bug number for PointerLock.

2019-11-12  Rob Buis  <rbuis@igalia.com>

        Unskip some fetch tests
        https://bugs.webkit.org/show_bug.cgi?id=204047

        Reviewed by Youenn Fablet.

        Unskip two fetch tests that do not time out anymore.

        * TestExpectations:

2019-11-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK][WPE] Enable CSS Painting API
        https://bugs.webkit.org/show_bug.cgi?id=190710

        Reviewed by Don Olmstead.

        Unskip the tests that now pass.

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

2019-11-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [Pointer Events WPT] Delete manual tests imported as layout tests
        https://bugs.webkit.org/show_bug.cgi?id=203996

        Reviewed by Youenn Fablet.

        Manual tests should not be imported as layout tests.

        * platform/mac/TestExpectations: delete expectations.

2019-11-12  Alejandro G. Castro  <alex@igalia.com>

        [GTK][WPE] New tests crashing after added in the r251377
        https://bugs.webkit.org/show_bug.cgi?id=204112

        Unreviewed test gardening, new tests crashing.

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

2019-11-12  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win] UIScriptController::zoomToScale not implemented
        https://bugs.webkit.org/show_bug.cgi?id=180424

        Reviewed by Alex Christensen.

        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        Unmarked skipped tests for webkit.org/b/180424.
        Marked fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html,
        fast/visual-viewport/client-rects-relative-to-layout-viewport.html
        and fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html as
        Failure.

2019-11-13  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r249434): flashy menus on wellsfargo.com
        https://bugs.webkit.org/show_bug.cgi?id=204175
        <rdar://problem/56654512>

        Reviewed by Zalan Bujtas.

        * compositing/backing/backing-for-clipping-expected.html: Added.
        * compositing/backing/backing-for-clipping.html: Added.
        * compositing/backing/no-backing-for-perspective-expected.txt:
        * platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt:

2019-11-11  Ryosuke Niwa  <rniwa@webkit.org>

        iOS: fast/scrolling/ios/scrollTo-at-page-load.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=204062

        Reviewed by Wenson Hsieh.

        Wait until the next rendering update for a scroll event.`

        * fast/scrolling/ios/scrollTo-at-page-load.html:

2019-11-11  Youenn Fablet  <youenn@apple.com>

        DOMFormData should be available in workers
        https://bugs.webkit.org/show_bug.cgi?id=176674

        Reviewed by Alex Christensen.

        * platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:

2019-11-11  Youenn Fablet  <youenn@apple.com>

        Fail cross-origin redirection loads in case of CORS with redirection URLs having credentials
        https://bugs.webkit.org/show_bug.cgi?id=204036

        Reviewed by Alex Christensen.

        * http/tests/security/shape-image-cors-redirect-error-message-logging-4-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-async.html:

2019-11-11  Kate Cheney  <katherine_cheney@apple.com>

        CrashTracer: com.apple.WebKit.Networking.Development at com.apple.WebKit: WebKit::NetworkProcess::setIsRunningResourceLoadStatisticsTest
        https://bugs.webkit.org/show_bug.cgi?id=204081
        <rdar://problem/56889809>

        Reviewed by John Wilander.

        This crash was happening in two places. First, in 
        has-storage-access-true-if-third-party-has-cookies-database.html, 
        the test was incorrectly marked as ephemeral then tried to use ITP by
        calling setEnableFeature. ITP should not be used in ephemeral
        sessions. There was also a small bug, ITP should be set to true (not
        false) at the beginning of this test.

        Second, both
        has-storage-access-true-if-third-party-has-cookies-ephemeral.html and
        has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html
        had document.hrefs which redirected back to the non-ephemeral test cases after
        setting a cookie. This caused a crash when trying to set ITP to false
        using an ephemeral sessionID.

        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database.html:
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database-expected.txt:
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html:
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt:
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html:

2019-11-11  Andy Estes  <aestes@apple.com>

        PaymentRequest / PaymentResponse should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203101
        <rdar://problem/56744409>

        Reviewed by Chris Dumez.

        * http/tests/paymentrequest/page-cache-closed-payment-request.https-expected.txt: Added.
        * http/tests/paymentrequest/page-cache-closed-payment-request.https.html: Added.
        * http/tests/paymentrequest/page-cache-completed-payment-response.https-expected.txt: Added.
        * http/tests/paymentrequest/page-cache-completed-payment-response.https.html: Added.
        * http/tests/paymentrequest/page-cache-created-payment-request.https-expected.txt: Added.
        * http/tests/paymentrequest/page-cache-created-payment-request.https.html: Added.
        * http/tests/paymentrequest/page-cache-created-payment-response.https-expected.txt: Added.
        * http/tests/paymentrequest/page-cache-created-payment-response.https.html: Added.
        * http/tests/paymentrequest/page-cache-interactive-payment-request.https-expected.txt: Added.
        * http/tests/paymentrequest/page-cache-interactive-payment-request.https.html: Added.
        * http/tests/paymentrequest/page-cache-retried-payment-response.https-expected.txt: Added.
        * http/tests/paymentrequest/page-cache-retried-payment-response.https.html: Added.
        * resources/js-test.js:
        (shouldReject):
        (shouldRejectWithErrorName):

2019-11-11  Youenn Fablet  <youenn@apple.com>

        Make MediaStream/MediaStreamTrack page cache friendly
        https://bugs.webkit.org/show_bug.cgi?id=204030

        Reviewed by Chris Dumez.

        * platform/mac-wk1/TestExpectations: Disabled test for WK1.
        * http/tests/navigation/page-cache-mediastream-expected.txt: Added.
        * http/tests/navigation/page-cache-mediastream.html: Added.

2019-11-11  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r252076.

        This broke internal builds and tests. For more information
        discuss with your reviewers.

        Reverted changeset:

        "[css-lists] Implement list-style-type: <string>"
        https://bugs.webkit.org/show_bug.cgi?id=167729
        https://trac.webkit.org/changeset/252076

2019-11-11  Eric Carlson  <eric.carlson@apple.com>

        Update WPT mediacapture-streams tests
        https://bugs.webkit.org/show_bug.cgi?id=204073

        Reviewed by Youenn Fablet.

        * tests-options.json:

2019-11-11  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Support picture-in-picture CSS pseudo-class
        https://bugs.webkit.org/show_bug.cgi?id=203493

        Reviewed by Dean Jackson.

        * media/picture-in-picture/picture-in-picture-api-css-selector-expected.txt: Added.
        * media/picture-in-picture/picture-in-picture-api-css-selector.html: Added.

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

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

        This patch caused a crash due to synchronous event firing
        (Requested by jernoble on #webkit).

        Reverted changeset:

        "media/W3C/video/networkState/networkState_during_progress.html
        is flaky"
        https://bugs.webkit.org/show_bug.cgi?id=76280
        https://trac.webkit.org/changeset/251460

2019-11-10  Ryosuke Niwa  <rniwa@webkit.org>

        iOS: fast/events/scroll-subframe-in-rendering-update.html always fails
        https://bugs.webkit.org/show_bug.cgi?id=204045

        Reviewed by Wenson Hsieh.

        Enable async & frame scrolling to make the test work in iOS.

        * fast/events/scroll-subframe-in-rendering-update.html:

2019-11-09  Ryosuke Niwa  <rniwa@webkit.org>

        iOS: fast/events/scroll-subframe-in-rendering-update.html always fails
        https://bugs.webkit.org/show_bug.cgi?id=204045

        Reviewed by Alexey Proskuryakov.

        Add a failing test expectation for now while we investigate how to fix the test.

        * platform/ios/TestExpectations:

2019-11-09  Ryosuke Niwa  <rniwa@webkit.org>

        iOS: fast/events/scroll-subframe-in-rendering-update.html always fails
        https://bugs.webkit.org/show_bug.cgi?id=204045

        Reviewed by Alexey Proskuryakov.

        Disable the frame flattening to make the test work on iOS.

        * fast/events/scroll-subframe-in-rendering-update.html:

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

        New test inspector-protocol/page/archive.html added in r154828 fails on EFL, Qt, GTK
        https://bugs.webkit.org/show_bug.cgi?id=120682

        Reviewed by Devin Rousso.

        Generate custom expectations for inspector-protocol/page/archive.html on the platforms
        where Page.archive is not supported yet.

        * inspector/page/archive.html: 'Not supported' is a valid response on some platforms.
        * platform/gtk/TestExpectations:
        * platform/gtk/inspector/page/archive-expected.txt: Added.

2019-11-08  Peng Liu  <peng.liu6@apple.com>

        Entering/Exiting Picture-in-Picture mode through webkitSetPresentationMode() does not fire events (enterpictureinpicture and leavepictureinpicture) defined in the spec
        https://bugs.webkit.org/show_bug.cgi?id=203989

        Reviewed by Eric Carlson.

        Move all layout tests for Picture-in-Picture to folder media/picture-in-picture.
        Add a layout test to verify the events defined in the spec are fired when we call the webkit prefixed API.
        Update TestExpectations files since webkit.org/b/203614 has been fixed.

        * TestExpectations:
        * media/picture-in-picture/picture-in-picture-api-element-attributes-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-element-attributes-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-element-attributes.html: Renamed from LayoutTests/media/picture-in-picture-api-element-attributes.html.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-1-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-1-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-1.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-1.html.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-2-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-2-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-2.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-2.html.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-3-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-3-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-3.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-3.html.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-4-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-4-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-enter-pip-4.html: Renamed from LayoutTests/media/picture-in-picture-api-enter-pip-4.html.
        * media/picture-in-picture/picture-in-picture-api-events-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-pip-events-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-events.html: Renamed from LayoutTests/media/picture-in-picture-api-pip-events.html.
        * media/picture-in-picture/picture-in-picture-api-exit-pip-1-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-1-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-exit-pip-1.html: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-1.html.
        * media/picture-in-picture/picture-in-picture-api-exit-pip-2-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-2-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-exit-pip-2.html: Renamed from LayoutTests/media/picture-in-picture-api-exit-pip-2.html.
        * media/picture-in-picture/picture-in-picture-api-pip-window-expected.txt: Renamed from LayoutTests/media/picture-in-picture-api-pip-window-expected.txt.
        * media/picture-in-picture/picture-in-picture-api-pip-window.html: Renamed from LayoutTests/media/picture-in-picture-api-pip-window.html.
        * media/picture-in-picture/picture-in-picture-events-expected.txt: Added.
        * media/picture-in-picture/picture-in-picture-events.html: Added.
        * media/picture-in-picture/picture-in-picture-interruption-expected.txt: Renamed from LayoutTests/media/picture-in-picture-interruption-expected.txt.
        * media/picture-in-picture/picture-in-picture-interruption.html: Renamed from LayoutTests/media/picture-in-picture-interruption.html.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ipad/TestExpectations:
        * platform/mac-wk2/TestExpectations:

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

        Make DeferredPromise behave nicely with regards to the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203976

        Reviewed by Ryosuke Niwa.

        Rebaseline test where ordering has changed slightly due to not queueing a task anymore before
        resolving the promise. This restores pre-r251746 behavior.

        * fast/mediastream/MediaDevices-getUserMedia-expected.txt:

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

        Update expectations for 3 fast/events/ios/key-events-comprehensive tests
        https://bugs.webkit.org/show_bug.cgi?id=204020

        Unreviewed test gardening

        * fast/events/ios/key-events-comprehensive/key-events-meta-control-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-meta-shift-expected.txt:

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

        'Strikethrough' editing command reported as 'formatUnderline'
        https://bugs.webkit.org/show_bug.cgi?id=203944

        Reviewed by Adrian Perez de Castro.

        * fast/events/input-events-strikethrough-type-expected.txt: Added.
        * fast/events/input-events-strikethrough-type.html: Added.

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

        Default NamepaceURI must be gotten from the topmost parent before the SVG <foreignObject>
        https://bugs.webkit.org/show_bug.cgi?id=203868

        Reviewed by Ryosuke Niwa.

        * svg/foreignObject/foreign-object-dynamic-parsing-expected.svg: Added.
        * svg/foreignObject/foreign-object-dynamic-parsing.svg: Added.

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

        TestController may reuse a view that used window.open(), which prevents process-swapping and causes flakiness
        https://bugs.webkit.org/show_bug.cgi?id=203981

        Reviewed by Ryosuke Niwa.

        Drop temporary flakiness workaround that was landed in r252214.

        * http/tests/inspector/target/target-events-for-provisional-page.html:

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

        [WebGL] Fixing WebGL tests: Add new baselines for iOS bots
        https://bugs.webkit.org/show_bug.cgi?id=203938

        Unreviewed test expectation gardening.

        Follow-up to https://bugs.webkit.org/show_bug.cgi?id=203908.
        New baselines for iOS tests generated from simulator.

        * TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/webgl/1.0.3/conformance/extensions/get-extension-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/extensions/webgl-draw-buffers-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/more/functions/readPixelsBadArgs-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/more/functions/texImage2DHTML-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/more/functions/texSubImage2DHTML-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats-expected.txt: Added.
        * platform/ios/webgl/1.0.3/conformance/textures/texture-npot-video-expected.txt: Added.
        * platform/ios/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-expected.txt: Added.
        * platform/ios/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt: Added.

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

        webgl/1.0.3/conformance/context/context-release-upon-reload.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203984

        Unreviewed test expectation addition.

        Skip context-release-upon-reload.html on High Sierra WK1 debug bots.

        * platform/mac-highsierra-wk1/TestExpectations: Added.

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

        WindowEventLoop should be shared among similar origin documents
        https://bugs.webkit.org/show_bug.cgi?id=203882

        Reviewed by Wenson Hsieh.

        Added some tests to make sure the event loop is shared among similar origin documents.

        * http/tests/eventloop: Added.
        * http/tests/eventloop/queue-task-across-cross-site-frames-expected.txt: Added.
        * http/tests/eventloop/queue-task-across-cross-site-frames.html: Added.
        * http/tests/eventloop/queue-task-across-frames-expected.txt: Added.
        * http/tests/eventloop/queue-task-across-frames.html: Added.
        * http/tests/eventloop/resources: Added.
        * http/tests/eventloop/resources/eventloop-helper.html: Added.

2019-11-07  youenn fablet  <youenn@apple.com>

        Layout Test http/tests/appcache/remove-cache.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=199124
        <rdar://problem/52008712>

        Reviewed by Chris Dumez.

        The flakiness probably comes from the use of a setTimeout that might kick in while in most runs, it never kicks in.
        When the timer kicks in, the test is reloaded, which triggers a new console log line.
        The current console lines do not bring more values than what the test checks with appcache events.
        Removing console log lines from the expected file will fix the flakiness.

        * TestExpectations:
        * http/tests/appcache/remove-cache-expected.txt:
        * platform/mac/TestExpectations:

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

        Web Inspector: http/tests/inspector/target/target-events-for-provisional-page.html is flaky when running with other tests
        https://bugs.webkit.org/show_bug.cgi?id=203965
        <rdar://problem/56988642>

        Reviewed by Devin Rousso.

        Enforce enableProcessSwapOnWindowOpen=true for the test so that it PSON is enabled regardless of other tests
        that may run before (the test may reuse Page instance from the previous test on which
        Page::openedByDOMWithOpener==true).

        * http/tests/inspector/target/target-events-for-provisional-page.html:

2019-11-07  Kate Cheney  <katherine_cheney@apple.com>

       Many resourceLoadStatistics tests and storageAccess tests using the ITP
       Database redirect to the corresponding memory store test after setting
       a cookie
       https://bugs.webkit.org/show_bug.cgi?id=203958
       <rdar://problem/56984114>

        Reviewed by John Wilander.

        This patch fixes incorrect redirects in some ITP database store tests.
        They should redirect back to themselves as opposed to corresponding
        memory store tests to be sure they are testing the correct
        functionality.

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-database.html:
        * http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-database.html:
        * http/tests/resourceLoadStatistics/cookie-deletion-database.html:
        * http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-database.html:
        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database.html:
        * http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource-database.html:
        * http/tests/resourceLoadStatistics/grandfathering-database.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-database.html:
        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource-database.html:
        * http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.html:
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database.html:
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database.html:
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html:
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html:
        * http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-database.html:
        * http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-database.html:
        * http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-database.html:

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

        Integrate scroll event into HTML5 event loop
        https://bugs.webkit.org/show_bug.cgi?id=203839
        <rdar://problem/56890922>

        Reviewed by Simon Fraser.

        Added tests to test the timing at which scroll events are fired across multiple elements and documents,
        and with visualViewport, and updated the existing tests to work with the new timing.

        * editing/selection/overflow-scroll-while-selecting-text.html:
        * fast/events/scroll-multiple-elements-in-rendering-update-expected.txt: Added.
        * fast/events/scroll-multiple-elements-in-rendering-update.html: Added.
        * fast/events/scroll-subframe-in-rendering-update-expected.txt: Added.
        * fast/events/scroll-subframe-in-rendering-update.html: Added.
        * fast/scrolling/programmatic-scroll-to-negative-offset.html:
        * fast/shadow-dom/trusted-event-scoped-flags.html:
        * fast/visual-viewport/visual-viewport-scroll-after-resize-in-subframe-expected.txt: Added.
        * fast/visual-viewport/visual-viewport-scroll-after-resize-in-subframe.html: Added.
        * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:

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

        REGRESSION: r252121 introduced timeout in webgl/1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html
        https://bugs.webkit.org/show_bug.cgi?id=203949

        Unreviewed test expectation gardening.

        shader-with-non-reserved-words takes dozens of minutes to pass. Skip everywhere.

        * platform/gtk/TestExpectations:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:

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

        Captcha images render as blank white space
        https://bugs.webkit.org/show_bug.cgi?id=204013
        rdar://problem/50095458

        Reviewed by Zalan Bujtas.

        New test. Fails in WK1 because of compositing timing differences in iframes in DRT which
        has a non auto-displaying window.

        * compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Progression.
        * compositing/visibility/resources/become-composited.html: Added.
        * compositing/visibility/resources/frame-with-visibility-change.html: Added.
        * compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
        * compositing/visibility/visibility-change-in-subframe.html: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt:
        * platform/ios-wk2/compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
        * platform/mac-wk1/TestExpectations:

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

        Web Inspector: REGRESSION(r250087): inspector/model/remote-object.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=202934
        <rdar://problem/56270900>

        Reviewed by Timothy Hatcher.

        Split inspector/model/remote-object.html into separate tests for each type of object being
        tested, as well as specialized tests for extremely large values. This allows us to better
        know which specific expression can cause a timeout.

        * inspector/model/remote-object.html: Removed.
        * inspector/model/remote-object-expected.txt: Removed.
        * platform/mac-wk1/inspector/model/remote-object-expected.txt: Removed.

        * inspector/model/remote-object/array.html: Added.
        * inspector/model/remote-object/array-expected.txt: Added.
        * inspector/model/remote-object/array-large.html: Added.
        * inspector/model/remote-object/array-large-expected.txt: Added.
        * inspector/model/remote-object/boolean.html: Added.
        * inspector/model/remote-object/boolean-expected.txt: Added.
        * inspector/model/remote-object/class.html: Added.
        * inspector/model/remote-object/class-expected.txt: Added.
        * inspector/model/remote-object/date.html: Added.
        * inspector/model/remote-object/date-expected.txt: Added.
        * inspector/model/remote-object/error.html: Added.
        * inspector/model/remote-object/error-expected.txt: Added.
        * inspector/model/remote-object/function.html: Added.
        * inspector/model/remote-object/function-expected.txt: Added.
        * inspector/model/remote-object/immutable.html: Added.
        * inspector/model/remote-object/immutable-expected.txt: Added.
        * inspector/model/remote-object/iterator.html: Added.
        * inspector/model/remote-object/iterator-expected.txt:  Added.
        * inspector/model/remote-object/iterator-large.html: Added.
        * inspector/model/remote-object/iterator-large-expected.txt: Added.
        * inspector/model/remote-object/map.html: Added.
        * inspector/model/remote-object/map-expected.txt: Added.
        * inspector/model/remote-object/map-large.html: Added.
        * inspector/model/remote-object/map-large-expected.txt: Added.
        * inspector/model/remote-object/null.html: Added.
        * inspector/model/remote-object/null-expected.txt: Added.
        * inspector/model/remote-object/number.html: Added.
        * inspector/model/remote-object/number-expected.txt: Added.
        * platform/mac-wk1/inspector/number-expected.txt: Added.
        * inspector/model/remote-object/object.html: Added.
        * inspector/model/remote-object/object-expected.txt: Added.
        * inspector/model/remote-object/object-large.html: Added.
        * inspector/model/remote-object/object-large-expected.txt: Added.
        * inspector/model/remote-object/promise.html: Added.
        * inspector/model/remote-object/promise-expected.txt: Added.
        * inspector/model/remote-object/regexp.html: Added.
        * inspector/model/remote-object/regexp-expected.txt: Added.
        * inspector/model/remote-object/set.html: Added.
        * inspector/model/remote-object/set-expected.txt: Added.
        * inspector/model/remote-object/set-large.html: Added.
        * inspector/model/remote-object/set-large-expected.txt: Added.
        * inspector/model/remote-object/string.html: Added.
        * inspector/model/remote-object/string-expected.txt: Added.
        * inspector/model/remote-object/string-large.html: Added.
        * inspector/model/remote-object/string-large-expected.txt: Added.
        * inspector/model/remote-object/undefined.html: Added.
        * inspector/model/remote-object/undefined-expected.txt: Added.

        * inspector/model/remote-object/dom.html: Renamed from LayoutTests/inspector/model/remote-object-dom.html.
        * inspector/model/remote-object/dom-expected.txt: Renamed from LayoutTests/inspector/model/remote-object-dom-expected.txt.
        * inspector/model/remote-object/iterators-mutated.html: Renamed from LayoutTests/inspector/model/remote-object-mutated-iterators.html.
        * inspector/model/remote-object/iterators-mutated-expected.txt: Renamed from LayoutTests/inspector/model/remote-object-mutated-iterators-expected.txt.

        * inspector/model/remote-object/resources/remote-object-utilities.js: Renamed from LayoutTests/inspector/model/resources/remote-object-utilities.js.

        * inspector/runtime/getDisplayableProperties.html:
        * inspector/runtime/getDisplayableProperties-expected.txt:
        * inspector/runtime/getProperties.html:
        * inspector/runtime/getProperties-expected.txt:
        Drive-by: fix assertion for when the `__proto__` is included if `fetchStart` is 0.

        * TestExpectations:

2019-11-07  Tuomas Karkkainen  <tuomas.webkit@apple.com>

        didPassSomeTestsSilenty and didFaileSomeTests are misspelled in standalone-pre.js
        https://bugs.webkit.org/show_bug.cgi?id=203948

        Reviewed by Yusuke Suzuki.

        * resources/standalone-pre.js:

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

        Re-enable NSURLSession isolation after r252116
        https://bugs.webkit.org/show_bug.cgi?id=203934
        <rdar://problem/56921584>

        Reviewed by Chris Dumez.

        * platform/wk2/TestExpectations:
        Re-enable skipped tests.

2019-11-06  Antti Koivisto  <antti@apple.com>

        REGRESSION: [ iOS ] ( r251015 ) Layout Test fast/text/whitespace/pre-wrap-overflow-selection.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203366
        <rdar://problem/56580680>

        Reviewed by Simon Fraser.

        * platform/ios/TestExpectations:

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

        REGRESSION (r252161): 3 transitions/ tests time-out
        https://bugs.webkit.org/show_bug.cgi?id=203966

        Reviewed by Dean Jackson.

        Fix the shadow parsing code to deal with non-integral values.

        * legacy-animation-engine/transitions/resources/transition-test-helpers.js:
        (isShadow):
        * transitions/resources/transition-test-helpers.js:
        (isShadow):

2019-11-06  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Display color picker for p3 colors
        https://bugs.webkit.org/show_bug.cgi?id=203436
        <rdar://problem/56635062>

        Reviewed by Brian Burg.

        Add tests for WI.Color.rgb2hsv and WI.Color.hsv2rgb.

        * inspector/model/color-expected.txt:
        * inspector/model/color.html:

2019-11-06  Justin Fan  <justin_fan@apple.com>

        REGRESSION: r252121 introduced new webgl/ failures
        https://bugs.webkit.org/show_bug.cgi?id=203908

        Unreviewed test gardening to quell the bots.

        * TestExpectations:
        * platform/ios/TestExpectations:

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

        Screen locks while watching previously-muted-then-unmuted video
        https://bugs.webkit.org/show_bug.cgi?id=203906
        <rdar://problem/55821375>

        Reviewed by Eric Carlson.

        * media/video-unmuted-after-play-holds-sleep-assertion-expected.txt: Added.
        * media/video-unmuted-after-play-holds-sleep-assertion.html: Added.

2019-11-06  Daniel Bates  <dabates@apple.com>

        Update SameSite tests for new semantics for empty and invalid SameSite attribute
        https://bugs.webkit.org/show_bug.cgi?id=203755
        <rdar://problem/50816282>

        Reviewed by Brent Fulgham.

        Update the tests and test expectations following CFNetwork change <rdar://problem/42290578> as we
        now only recognize SameSite=Strict and SameSite=Lax. That is, we no longer treat SameSite= or
        SameSite=<some garbage value> as SameSite=Strict.

        MacOS Mojave does not have the fix for <rdar://problem/42290578> and so we land expected failure results.

        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
        * http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
        * http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
        * http/tests/cookies/same-site/popup-cross-site-post.html:
        * http/tests/cookies/same-site/popup-cross-site.html:
        * http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
        * http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php:
        * http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.php:
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php:
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php:
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html:
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
        * platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-expected.txt:
        * platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-post-expected.txt:
        * platform/mac-mojave/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt:
        * platform/mac/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.

2019-11-06  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r252138.

        Caused 8 http/tests/cookies/same-site/ to fail

        Reverted changeset:

        "Update SameSite tests for new semantics for empty and invalid
        SameSite attribute"
        https://bugs.webkit.org/show_bug.cgi?id=203755
        https://trac.webkit.org/changeset/252138

2019-11-06  Peng Liu  <peng.liu6@apple.com>

        Layout tests in media/modern-media-controls/pip-placard are designed for MacOS only
        https://bugs.webkit.org/show_bug.cgi?id=203859

        Reviewed by Eric Carlson.

        * platform/ios/TestExpectations:

2019-11-05  Timothy Hatcher  <timothy@apple.com>

        [ Mac Debug WK1 ] REGRESSION (r251262?): fast/scrolling/latching/scroll-select-bottom-test.html is a Flaky Failure
        https://bugs.webkit.org/show_bug.cgi?id=203176
        rdar://problem/56425901

        Unreviewed test gardening.

        This hasn't been flaky since r251565 when a related r251261 regression/bug was fixed.
        I was also able to run it locally against r252065 a total of 1,100 times with no failures.

        * platform/mac-wk1/TestExpectations: Removed scroll-select-bottom-test.html.

2019-11-06  Daniel Bates  <dabates@apple.com>

        REGRESSION [ PHP ][ iOS ]: Two http/tests/cookies/same-site/set-first-party-* Tests are Failing
        https://bugs.webkit.org/show_bug.cgi?id=203567
        <rdar://problem/56708500>

        Reviewed by Youenn Fablet.

        A callable must be passed by string in PHP. Any other way seems to be non-standard and your
        mileage may vary.

        * http/tests/cookies/resources/cookie-utilities.php:
        * http/tests/cookies/resources/cookie-utility.php:
        * platform/ios-wk2/TestExpectations:

2019-11-06  Daniel Bates  <dabates@apple.com>

        http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html is a Flakey Failure
        https://bugs.webkit.org/show_bug.cgi?id=198924
        <rdar://problem/51811010>

        Reviewed by Brent Fulgham.

        JavaScript alert() cannot be called from a Web Worker. Use postMessage() instead to post "PASS"
        to the worker's owner document. The tests don't actually make use of this posted message, but
        fixing the code to use postMessage() may come in handy for future tests.

        * http/tests/security/contentSecurityPolicy/resources/worker.php:
        * http/tests/security/contentSecurityPolicy/worker-script-src.html:
        * http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html:

2019-11-06  Daniel Bates  <dabates@apple.com>

        Update SameSite tests for new semantics for empty and invalid SameSite attribute
        https://bugs.webkit.org/show_bug.cgi?id=203755
        <rdar://problem/50816282>

        Reviewed by Brent Fulgham.

        Update the tests and test expectations following CFNetwork change <rdar://problem/42290578> as we
        now only recognize SameSite=Strict and SameSite=Lax. That is, we no longer treat SameSite= or
        SameSite=<some garbage value> as SameSite=Strict.

        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
        * http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
        * http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
        * http/tests/cookies/same-site/popup-cross-site-post.html:
        * http/tests/cookies/same-site/popup-cross-site.html:
        * http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
        * http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php:
        * http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.php:
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php:
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php:
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html:
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
        * platform/ios-12/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
        * platform/ios/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
        * platform/mac-mojave/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/popup-cross-site-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Removed.
        * platform/mac/http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Removed.

2019-11-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Implement support for Pointer Lock API
        https://bugs.webkit.org/show_bug.cgi?id=202956

        Reviewed by Carlos Alberto Lopez Perez.

        Unskip Pointer Lock tests and update expectations for tests still failing.

        * platform/gtk/TestExpectations:
        * platform/gtk/pointer-lock/mouse-event-delivery-expected.txt: Added.

2019-11-05  Kate Cheney  <katherine_cheney@apple.com>

        Layout test website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=203706
        <rdar://problem/56801615> 

        Reviewed by Chris Dumez. 

        Since the state is reset between tests, the call to 
        setUseITPDatabase(false) is redundant. 

        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html:
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:

2019-11-05  Ryosuke Niwa  <rniwa@webkit.org>

        Integrate visualViewport's resize event with HTML5 event loop
        https://bugs.webkit.org/show_bug.cgi?id=203842

        Reviewed by Simon Fraser.

        Added a test to make sure resize event fires on visualViewport in the frame tree order.

        * fast/visual-viewport/visual-viewport-resize-subframe-in-rendering-update-expected.txt: Added.
        * fast/visual-viewport/visual-viewport-resize-subframe-in-rendering-update.html: Added.

2019-11-05  Justin Fan  <justin_fan@apple.com>

        [WebGL] Update WebGL 1 tests to prep for WebGL Conformance bot
        https://bugs.webkit.org/show_bug.cgi?id=203763

        Reviewed by Dean Jackson.

        Remove the 1.0.2 suite and update 1.0.3 suite, which supercedes the former.

        * webgl/1.0.2: Removed.
        * webgl/1.0.3: Updated to latest Khronos version and expectations to match. Unskip all non-timeout/non-crashing tests.

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

        Temporarily turn off NSURLSession isolation
        https://bugs.webkit.org/show_bug.cgi?id=201822

        Reviewed by Chris Dumez.

        Re-enabling it is tracked in rdar://problem/56921584.

        * platform/wk2/TestExpectations:
            Skipped the associated tests.

2019-11-05  Oriol Brufau  <obrufau@igalia.com>

        [css-lists] Implement list-style-type: <string>
        https://bugs.webkit.org/show_bug.cgi?id=167729

        Reviewed by Antti Koivisto.

        Most tests pass now, but some still fail because mixed-bidi is not
        supported in markers (https://bugs.webkit.org/show_bug.cgi?id=202849).

        iOS and Mac have some extra failures due to subpixel differences for the
        marker position.

        * TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2019-11-05  Simon Fraser  <simon.fraser@apple.com>

        Content can disappear with a combination of <video> with controls and clipping
        https://bugs.webkit.org/show_bug.cgi?id=203834

        Reviewed by Zalan Bujtas.

        * compositing/shared-backing/clipping-and-shared-backing-expected.html: Added.
        * compositing/shared-backing/clipping-and-shared-backing.html: Added.

2019-11-05  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Disabled SVG shapes should not be hit
        https://bugs.webkit.org/show_bug.cgi?id=200140

        Reviewed by Simon Fraser.

        * platform/gtk/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/types-dom-08-f-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt:
        * platform/ios/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
        * platform/ios/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
        * platform/ios/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
        * platform/ios/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
        * platform/ios/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/types-dom-08-f-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
        * platform/win/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
        * platform/win/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
        * platform/win/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
        * platform/win/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
        * platform/win/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-32-t-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/circle-01-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/ellipse-04-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/ellipse-09-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/rect-05-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:

        * svg/custom/getBBox-js-circle-zerodimension-expected.txt: Removed.
        * svg/custom/getBBox-js-circle-zerodimension.html: Removed.
        * svg/custom/getBBox-js-ellipse-zerodimension-expected.txt: Removed.
        * svg/custom/getBBox-js-ellipse-zerodimension.html: Removed.
        * svg/custom/getBBox-js-rect-zerodimension-expected.txt: Removed.
        * svg/custom/getBBox-js-rect-zerodimension.html: Removed.
        These tests were added in r169522. They succeed in Safari and Chrome but
        they fail in FireFox. The issue of calculating getBBox was discussed in:
        https://lists.w3.org/Archives/Public/www-svg/2012Aug/0014.html. But no
        resolution was reached. 

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

        Layout test http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=203841
        <rdar://problem/51752151>

        Reviewed by Brian Burg.

        * http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
        Rewrite the test so it actually waits for the resource response information to be received
        in the frontend before testing any information about the resource, as the response is what
        contains the status code and source. Previously, we would only wait for the inspected page
        to finish loading, which did guarantee that the inspector frontend at least knew about the
        resource being loaded, but not necessarily that it had been told about the response.

2019-11-05  Daniel Bates  <dabates@apple.com>

        [Cocoa] Right Command key should have location DOM_KEY_LOCATION_RIGHT instead of DOM_KEY_LOCATION_STANDARD
        https://bugs.webkit.org/show_bug.cgi?id=202601
        <rdar://problem/55992775>

        Reviewed by Wenson Hsieh.

        Update test to emit the location property of the DOM key event to ensure that we do not
        regress the value of this property.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html:

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

        DatabaseContext should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203103
        <rdar://problem/56592193>

        Reviewed by Geoffrey Garen.

        * fast/history/page-cache-webdatabase-pending-transaction-expected.txt:
        * fast/history/page-cache-webdatabase-pending-transaction.html:
        Update existing test to reflect behavior change.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        Unmark test as flaky.

2019-11-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        Native text substitutions interfere with HTML <datalist> options resulting in crash
        https://bugs.webkit.org/show_bug.cgi?id=203116
        <rdar://problem/49875932>

        Reviewed by Tim Horton.

        Add a new layout test to exercise the crash.

        * fast/forms/datalist/datalist-click-crash-expected.txt: Added.
        * fast/forms/datalist/datalist-click-crash.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.activateDataListSuggestion):

2019-11-05  Andy Estes  <aestes@apple.com>

        ApplePaySession should never prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203087
        <rdar://problem/56744401>

        Reviewed by Chris Dumez.

        * http/tests/ssl/applepay/page-cache-active-apple-pay-session-expected.txt: Added.
        * http/tests/ssl/applepay/page-cache-active-apple-pay-session.html: Added.
        * http/tests/ssl/applepay/page-cache-inactive-apple-pay-session-expected.txt: Added.
        * http/tests/ssl/applepay/page-cache-inactive-apple-pay-session.html: Added.

2019-11-05  youenn fablet  <youenn@apple.com>

        MessagePort::close cannot assume that is execution context is not null
        https://bugs.webkit.org/show_bug.cgi?id=203843
        <rdar://problem/55599877>

        Reviewed by Chris Dumez.

        * http/tests/workers/service/basic-messageport-expected.txt:
        * http/tests/workers/service/resources/basic-messageport.js:
        (async.doLog):
        (then):
        (): Deleted.

2019-11-05  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Update fast/forms/ios/file-upload-panel.html test and results
        https://bugs.webkit.org/show_bug.cgi?id=203823
        <rdar://problem/56080440>

        Reviewed by Youenn Fablet.

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

2019-11-05  youenn fablet  <youenn@apple.com>

        mp4 video element broken with service worker
        https://bugs.webkit.org/show_bug.cgi?id=184447
        <rdar://problem/39313155>

        Reviewed by Chris Dumez.

        Enable test for WK2, not WK1.

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

2019-11-05  youenn fablet  <youenn@apple.com>

        Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied
        https://bugs.webkit.org/show_bug.cgi?id=203362
        <rdar://problem/56648232>

        Reviewed by Eric Carlson.

        * fast/mediastream/constraint-intrinsic-size.html:
        * fast/mediastream/get-display-media-muted.html:
        * fast/mediastream/getUserMedia-deny-persistency5-expected.txt:
        * fast/mediastream/getUserMedia-deny-persistency5.html:
        * fast/mediastream/media-stream-page-muted.html:
        Use user gesture simulation instead of disabling user gesture check.
        * fast/mediastream/screencapture-user-gesture.html:
        * fast/mediastream/screencapture-user-gesture-expected.txt:
        * http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
        * http/tests/media/media-stream/get-display-media-prompt.html:
        * http/tests/media/media-stream/resources/get-display-media-devices-iframe.html:
        * resources/testharnessreport.js:

2019-11-05  youenn fablet  <youenn@apple.com>

        LayoutTest webrtc/captureCanvas-webrtc.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181835

        Unreviewed.

        * platform/mac-wk2/TestExpectations:
        Test is no longer a flaky timeout.

2019-11-04  Ryosuke Niwa  <rniwa@webkit.org>

        Skip fast/forms/ios/inputmode-change-update-keyboard.html on iPads as this test relies on iPhone's keyboard behavior.

        * platform/ipad/TestExpectations:

2019-11-04  Zalan Bujtas  <zalan@apple.com>

        [iOS] LayoutTest fast/events/touch/ios/double-tap-for-double-click3.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=203835
        <rdar://problem/56123067>

        Unable to reproduce. Inserting a double-tap-delay between the events usually fixes these problems.

        Reviewed by Wenson Hsieh.

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

2019-11-04  Zalan Bujtas  <zalan@apple.com>

        [iOS] fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=203838
        <rdar://problem/55664976>

        Reviewed by Wenson Hsieh.

        Unable to reproduce. Replace the magic 50ms timeouts with the more robust UIHelper.waitForDoubleTapDelay().

        * fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html:

2019-11-04  Ryosuke Niwa  <rniwa@webkit.org>

        Removed the flaky failure expectation from focusing-element-with-tabindex-by-tap-or-click.html
        since it appears to be always passing now.

        * platform/ios/TestExpectations:

2019-11-04  Myles C. Maxfield  <mmaxfield@apple.com>

        Rename ui-monospaced to ui-monospace to match the monospace generic font family
        https://bugs.webkit.org/show_bug.cgi?id=203602

        Reviewed by Simon Fraser.

        Updated existing tests.

        * fast/text/design-system-ui-12.html:
        * fast/text/design-system-ui-15.html:
        * fast/text/design-system-ui-2-expected.html:
        * fast/text/design-system-ui-2.html:
        * fast/text/design-system-ui-4-expected-mismatch.html:
        * fast/text/design-system-ui-4.html:
        * fast/text/design-system-ui-7-expected.html:
        * fast/text/design-system-ui-7.html:
        * fast/text/design-system-ui-9-expected-mismatch.html:
        * fast/text/design-system-ui-9.html:

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

        MediaKeySession / WebKitMediaKeySession should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203089

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/navigation/page-cache-mediakeysession-expected.txt: Added.
        * http/tests/navigation/page-cache-mediakeysession.html: Added.

2019-11-04  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Introduce LinkTimeConstant mechanism
        https://bugs.webkit.org/show_bug.cgi?id=153792

        Reviewed by Saam Barati.

        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt:

2019-11-04  Yury Semikhatsky  <yurys@chromium.org>

        [GTK] Inspector protocol tests timing out on the bots
        https://bugs.webkit.org/show_bug.cgi?id=122571

        Reviewed by Devin Rousso.

        Mark more inspector tests as passing on GTK.

        * inspector/dom/focus.html: Remove 'focus' event listener before closing dummy inspector
        window. Otherwise it triggers a WebPage::setActivityState which in turn triggers focus
        event on the page and on the focused element which results in two extra 'focus' lines printed.
        To be clear this only avoids the extra text output that could be added to the output. Timeout
        and crash problems must have been fixed before (likely by the recent changes in local inspector
        client).
        * platform/gtk/TestExpectations:

2019-11-04  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r251993.

        Broke platform/mac/media/encrypted-media/fps-
        generateRequest.html on Mojave+

        Reverted changeset:

        "MediaKeySession / WebKitMediaKeySession should not prevent
        entering the back/forward cache"
        https://bugs.webkit.org/show_bug.cgi?id=203089
        https://trac.webkit.org/changeset/251993

2019-11-06  Simon Fraser  <simon.fraser@apple.com>

        Box-shadow spread radius does not transition or animate correctly with CSS Transitions & Animations
        https://bugs.webkit.org/show_bug.cgi?id=202489

        Reviewed by Zalan Bujtas.

        * fast/box-shadow/hidpi-box-shadow-expected.html: Added.
        * fast/box-shadow/hidpi-box-shadow.html: Added.

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

        MediaRecorder should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203093
        <rdar://problem/56748870>

        Reviewed by Eric Carlson.

        Add layout test coverage.

        * fast/history/page-cache-media-recorder-expected.txt: Added.
        * fast/history/page-cache-media-recorder.html: Added.

2019-11-04  Yury Semikhatsky  <yurys@chromium.org>

        [GTK] inspector/runtime/getPreview.html timing out
        https://bugs.webkit.org/show_bug.cgi?id=180096

        Unreviewed. Mark the test as always passing on GTK (1k iterations passed with
        no issues locally).

        * platform/gtk/TestExpectations:

2019-11-04  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failure after r251959

        * inspector/timeline/timeline-recording.html:
        `WI.TimelineRecording.import` was made `async`, so add an `await`.

2019-11-04  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Flaky Test: imported/w3c/web-platform-tests/svg/text/visualtests/text-inline-size-003-visual.svg
        https://bugs.webkit.org/show_bug.cgi?id=203172

        Unreviewed Test Gardening.

        * TestExpectations:
        Mark the test as flaky.

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

        MediaKeySession / WebKitMediaKeySession should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203089

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/navigation/page-cache-mediakeysession-expected.txt: Added.
        * http/tests/navigation/page-cache-mediakeysession.html: Added.

2019-11-04  youenn fablet  <youenn@apple.com>

        Layout Test webrtc/filtering-ice-candidate-after-reload.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=174471

        Unreviewed.

        * platform/wk2/TestExpectations:
        Test is no longer flaky.

2019-11-04  youenn fablet  <youenn@apple.com>

        Layout Test http/wpt/webrtc/third-party-frame-ice-candidate-filtering.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=183801

        Unreviewed.

        * platform/wk2/TestExpectations:
        Test is no longer a flaky failure.

2019-11-04  youenn fablet  <youenn@apple.com>

        Order of postMessage and fetch events should be preserved when going from client to service worker
        https://bugs.webkit.org/show_bug.cgi?id=203236

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/service-worker/postMessage-fetch-order-worker.js: Added.
        * http/wpt/service-workers/service-worker/postMessage-fetch-order.https-expected.txt: Added.
        * http/wpt/service-workers/service-worker/postMessage-fetch-order.https.html: Added.

2019-11-04  Oriol Brufau  <obrufau@igalia.com>

        [css-lists] Import tests for list-style-type: <string>
        https://bugs.webkit.org/show_bug.cgi?id=203759

        Reviewed by Manuel Rego Casasnovas.

        Most tests fail because the feature hasn't been implemented yet
        (https://bugs.webkit.org/show_bug.cgi?id=167729).

        * TestExpectations:

2019-11-04  youenn fablet  <youenn@apple.com>

        Add a test verifying video plays well when switching from MediaStreams to regular videos
        https://bugs.webkit.org/show_bug.cgi?id=203421

        Reviewed by Geoffrey Garen.

        * fast/mediastream/stream-switch-expected.txt: Added.
        * fast/mediastream/stream-switch.html: Added.

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

        REGRESSION: [ Mac ] inspector/dom/getAccessibilityPropertiesForNode.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=203746

        Unreviewed. Move custom test expectation under platform/gtk and revert generic
        one to the previous state (it was wrongly updated in r251818).

        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
        * platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt: Copied from LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt.

2019-11-01  Devin Rousso  <drousso@apple.com>

        Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
        https://bugs.webkit.org/show_bug.cgi?id=203651
        <rdar://problem/56128726>

        Reviewed by Brian Burg.

        * inspector/animation/tracking.html: Added.
        * inspector/animation/tracking-expected.txt: Added.

2019-11-01  Said Abou-Hallawa  <sabouhallawa@apple.com>

        SVG pair properties must be detached from their owner before it's deleted
        https://bugs.webkit.org/show_bug.cgi?id=203545

        Reviewed by Simon Fraser.

        * svg/custom/pair-properties-detach-expected.txt: Added.
        * svg/custom/pair-properties-detach.html: Added.

2019-11-01  Eric Carlson  <eric.carlson@apple.com>

        Add experimental TextTrackCue API
        https://bugs.webkit.org/show_bug.cgi?id=203649
        <rdar://problem/55675172>

        Reviewed by Jer Noble.

        * media/track/texttrackcue/texttrackcue-addcue-expected.txt: Added.
        * media/track/texttrackcue/texttrackcue-addcue.html: Added.
        * media/track/texttrackcue/texttrackcue-constructor-expected.txt: Added.
        * media/track/texttrackcue/texttrackcue-constructor.html: Added.
        * media/track/texttrackcue/texttrackcue-displaycue-expected.txt: Added.
        * media/track/texttrackcue/texttrackcue-displaycue.html: Added.
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2019-11-01  Kate Cheney  <katherine_cheney@apple.com>

        http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=176240
        <rdar://problem/51445000>

        Reviewed by Alexey Proskuryakov.

        Flakiness no longer reproducible.

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

2019-11-01  Ryosuke Niwa  <rniwa@webkit.org>

        macOS WK1: requestidlecallback/requestidlecallback-document-gc.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203758

        Reviewed by Wenson Hsieh.

        Fix the test by delaying the check until the next run loop via setTimeout.
        This is needed to make GC work reliably in WK1.

        * requestidlecallback/requestidlecallback-document-gc.html:

2019-11-01  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Display color swatches for p3 colors
        https://bugs.webkit.org/show_bug.cgi?id=203439
        <rdar://problem/56637250>

        Reviewed by Devin Rousso.

        * inspector/model/color-expected.txt:
        * inspector/model/color.html:

2019-11-01  Ryosuke Niwa  <rniwa@webkit.org>

        Integrate media query evaluation into HTML5 event loop
        https://bugs.webkit.org/show_bug.cgi?id=203134
        <rdar://problem/56396316>

        Reviewed by Antti Koivisto.

        Added tests for listening to accessiblity related media queries without having any style rules
        get affected by those media queries so that we can catch any future regressions. For now,
        changing accessiblity settings seem to always schedule a rendering update so there is nothing to do
        when these accessibility settings do change.

        * fast/media/media-query-list-07.html: Fixed the test to be compatible with new behavior.
        * fast/media/mq-inverted-colors-live-update-for-listener-expected.txt: Added.
        * fast/media/mq-inverted-colors-live-update-for-listener.html: Added.
        * fast/media/mq-prefers-reduced-motion-live-update-for-listener-expected.txt: Added.
        * fast/media/mq-prefers-reduced-motion-live-update-for-listener.html: Added.

2019-11-01  Ryosuke Niwa  <rniwa@webkit.org>

        Don't leak documents with a pending requestIdleCallback
        https://bugs.webkit.org/show_bug.cgi?id=203708

        Reviewed by Simon Fraser.

        Added a test for removing iframes with a pending idle callback and test that
        the current documents of those iframes are collected immediately by GCController.collect.

        * requestidlecallback/requestidlecallback-document-gc-expected.txt: Added.
        * requestidlecallback/requestidlecallback-document-gc.html: Added.

2019-11-01  Peng Liu  <peng.liu6@apple.com>

        Picture-in-Picture layout test cases interfere with each other
        https://bugs.webkit.org/show_bug.cgi?id=203614

        Reviewed by Eric Carlson.

        Use "internals.setPictureInPictureAPITestEnabled(video, true)" to test
        the picture-in-picture API implementation without AVKit/CoreMedia stuffs.

        * media/picture-in-picture-api-enter-pip-1-expected.txt:
        * media/picture-in-picture-api-enter-pip-1.html:
        * media/picture-in-picture-api-enter-pip-2-expected.txt:
        * media/picture-in-picture-api-enter-pip-2.html:
        * media/picture-in-picture-api-enter-pip-3-expected.txt:
        * media/picture-in-picture-api-enter-pip-3.html:
        * media/picture-in-picture-api-enter-pip-4-expected.txt:
        * media/picture-in-picture-api-enter-pip-4.html:
        * media/picture-in-picture-api-exit-pip-1-expected.txt:
        * media/picture-in-picture-api-exit-pip-1.html:
        * media/picture-in-picture-api-exit-pip-2-expected.txt:
        * media/picture-in-picture-api-exit-pip-2.html:
        * media/picture-in-picture-api-pip-events-expected.txt:
        * media/picture-in-picture-api-pip-events.html:
        * media/picture-in-picture-api-pip-window-expected.txt:
        * media/picture-in-picture-api-pip-window.html:

2019-11-01  Tim Horton  <timothy_horton@apple.com>

        Turn on IOSurface support in the iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=203026
        <rdar://problem/56320993>

        * platform/ios/TestExpectations:
        Adjust some more test expectations after turning on accelerated drawing.
        This is starting to get concerning.

2019-10-31  Tim Horton  <timothy_horton@apple.com>

        Turn on IOSurface support in the iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=203026
        <rdar://problem/56320993>

        * platform/ios/TestExpectations:
        Adjust some more test expectations after turning on accelerated drawing.

2019-10-31  Tim Horton  <timothy_horton@apple.com>

        Turn on IOSurface support in the iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=203026
        <rdar://problem/56320993>

        Reviewed by Simon Fraser.

        * compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt:
        * platform/ios-device/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/compositing/canvas/accelerated-canvas-compositing-expected.txt: Added.
        * platform/ios/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Removed.
        * platform/ios/fast/canvas/canvas-render-layer-expected.txt: Added.
        * platform/ios/fast/canvas/canvas-scale-shadowBlur-expected.txt: Added.
        * platform/ios/fast/canvas/canvas-scale-strokePath-shadow-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_html_image-expected.txt: Removed.
        Move and expand the scope of some TestExpectations for canvas tests
        that fail due to noise introduced in the hardware accelerated drawing path.
        We will separately investigate how to mitigate this, but it already affects
        iOS on-device testing (as well as macOS in most cases). The tiny reduction
        in coverage here is well worth the massive improvement in coverage of
        accelerated drawing code paths.

        * fast/images/exif-orientation-canvas-expected.html:
        Due to rdar://problem/56755864, <canvas> and <img> render slightly differently.
        Use <canvas> for the reference as well, but use transforms to translate it
        instead of depending on EXIF orientation support, to continue testing
        the intended behavior.

2019-10-31  Jer Noble  <jer.noble@apple.com>

        [EME] Batch multiple key requests into one request and response
        https://bugs.webkit.org/show_bug.cgi?id=203580
        <rdar://problem/54853345>

        Reviewed by Eric Carlson.

        * platform/mac/TestExpectations:
        * platform/mac/media/encrypted-media/fps-multiple-pssh-expected.txt: Added.
        * platform/mac/media/encrypted-media/fps-multiple-pssh.html: Added.

2019-10-31  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Color picker: incorrect saturation when selecting color on color square
        https://bugs.webkit.org/show_bug.cgi?id=203695
        <rdar://problem/56793697>

        Reviewed by Matt Baker.

        * inspector/model/color-expected.txt:
        * inspector/model/color.html:

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

        Web Inspector: DOMDebugger: Node Removed breakpoints should fire whenever the node is removed from the main DOM tree, not just when it's removed from it's parent
        https://bugs.webkit.org/show_bug.cgi?id=203349

        Reviewed by Matt Baker.

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

2019-10-31  Ryosuke Niwa  <rniwa@webkit.org>

        Integrate resize event with HTML5 event loop
        https://bugs.webkit.org/show_bug.cgi?id=202964

        Reviewed by Geoffrey Garen and Simon Fraser.

        Added a regression test and fixed an existing test to work with the new behavior.

        * fast/events/resize-subframe-in-rendering-update-expected.txt: Added.
        * fast/events/resize-subframe-in-rendering-update.html: Added.
        * fast/shadow-dom/trusted-event-scoped-flags.html:

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

        Update results for fast/css/hsl-color.html on win
        https://bugs.webkit.org/show_bug.cgi?id=203592

        Unreviewed test gardening

        * platform/win/fast/css/hsl-color-expected.txt:

2019-10-31  Yury Semikhatsky  <yurys@chromium.org>

        [GTK] Web Inspector: inspector/timeline/timeline-event-*.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=203625

        Reviewed by Devin Rousso.

        Unflake inspector/timeline/timeline-event-*.html tests on GTK.

        * inspector/timeline/resources/timeline-event-utilities.js: There is a race between CapturingState.Inactive
        and SavePageData events, so the test has to wait for both.
        Drive-by: wrap promis.reject in a lambda, otherwise reject would be called on an undefined 'this' object.
        arrive before resolving the promise.
        (TestPage.registerInitializer):
        * platform/gtk/TestExpectations:

2019-10-31  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK and WPE gardening after r251837.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/svg/geometry/parsing/height-computed-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/geometry/parsing/width-computed-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:

2019-10-30  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Enable the support for iOS
        https://bugs.webkit.org/show_bug.cgi?id=202618

        Reviewed by Jer Noble.

        We do not need to play the video before entering the picture-in-picture mode,
        so remove the code to start video playback in the test pages.
        Also, enable the layout test cases of the Picture-in-Picture API for iPad.

        * media/picture-in-picture-api-pip-events-expected.txt:
        * media/picture-in-picture-api-pip-events.html:
        * media/picture-in-picture-api-pip-window-expected.txt:
        * media/picture-in-picture-api-pip-window.html:
        * platform/ipad/TestExpectations:

2019-10-30  Yury Semikhatsky  <yurys@chromium.org>

        inspector-protocol/debugger/setBreakpoint-dfg.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=128736

        Reviewed by Devin Rousso.

        Reenabling the test on all platforms. Depending on the platform implementation of EventLoop
        there is a difference in what is dispatched first when execution is resumed: previously
        paused inspected script or commands from the inspector front-end. It would not be a problem
        if InspectorFrontendAPI.dispatchMessageAsync actually delivered messages asynchronously.
        With the current implementation though response to Debugger.resume
        is dispatched in the front-end synchronously and the front-end would call InspectoTest.log
        when inspected script execution is not yet resumed.

        * TestExpectations:
        * inspector/debugger/setBreakpoint-dfg-expected.txt:
        * inspector/debugger/setBreakpoint-dfg.html: Print final 'PASS' output after exiting nested loop
        so that it always appears last.
        * platform/gtk/TestExpectations:

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

        Opacity should always serialize as a number
        https://bugs.webkit.org/show_bug.cgi?id=203601

        Reviewed by Dean Jackson.

        Fix the tests and results.

        * fast/css/parsing-opacity-expected.txt:
        * fast/css/parsing-opacity.html:
        * fast/svg/parsing-fill-opacity-expected.txt:
        * fast/svg/parsing-fill-opacity.html:
        * fast/svg/parsing-flood-opacity-expected.txt:
        * fast/svg/parsing-flood-opacity.html:
        * fast/svg/parsing-stop-opacity-expected.txt:
        * fast/svg/parsing-stop-opacity.html:
        * fast/svg/parsing-stroke-opacity-expected.txt:
        * fast/svg/parsing-stroke-opacity.html:

2019-10-30  Chris Dumez  <cdumez@apple.com>

        GPUCanvasContext should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203104
        <rdar://problem/56748066>

        Reviewed by Tim Horton.

        Add layout test coverage.

        * fast/history/page-cache-gpu-canvas-context-expected.txt: Added.
        * fast/history/page-cache-gpu-canvas-context.html: Added.

2019-10-30  Yury Semikhatsky  <yurys@chromium.org>

        [GTK] LayoutTests/inspector tests timeout
        https://bugs.webkit.org/show_bug.cgi?id=147518

        Unreviewed. Renable inspector/dom and inspector/timeline tests on GTK.

        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt: This test has consistent output which
        is slightly different from Mac.
        * platform/gtk/TestExpectations:
        * platform/gtk/inspector/timeline/line-column-expected.txt: Added. TimelineRecordType::RenderingFrame
        is only emitted on PLATFORM(COCOA), so we need custom expectation on other platforms.

2019-10-30  Russell Epstein  <repstein@apple.com>

        [ iOS ] Layout Test fast/css-custom-paint/simple-hidpi.html is a Flaky Failure (203637).
        https://bugs.webkit.org/show_bug.cgi?id=203637

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations: Marked test as flaky.

2019-10-30  Alex Christensen  <achristensen@webkit.org>

        WKContentRuleLists should block requests from service workers
        https://bugs.webkit.org/show_bug.cgi?id=201980
        <rdar://problem/55516735>

        Reviewed by Chris Dumez.

        * http/tests/contentextensions/resources/fetch-worker.js: Added.
        (event.fetch.string_appeared_here.then):
        (event.catch):
        * http/tests/contentextensions/resources/serviceworkertest.js: Added.
        (testServiceWorker):
        (test):
        * http/tests/contentextensions/service-worker.https-expected.txt: Added.
        * http/tests/contentextensions/service-worker.https.html: Added.
        * http/tests/contentextensions/service-worker.https.html.json: Added.

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

        Fix misspelling test named fast/dom/simultaneouslyRegsiteredTimerFireOrder.html
        https://bugs.webkit.org/show_bug.cgi?id=203578

        Reviewed by Jer Noble.

        * fast/dom/simultaneously-registered-timer-fire-order-expected.txt: Renamed from LayoutTests/fast/dom/simultaneouslyRegsiteredTimerFireOrder-expected.txt.
        * fast/dom/simultaneously-registered-timer-fire-order.html: Renamed from LayoutTests/fast/dom/simultaneouslyRegsiteredTimerFireOrder.html.

2019-10-30  Russell Epstein  <repstein@apple.com>

        REGRESSION [ PHP ][ iOS ]: Two http/tests/cookies/same-site/set-first-party-* Tests are Failing
        https://bugs.webkit.org/show_bug.cgi?id=203567

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations: Marked tests as failing.

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

        REGRESSION (r251750): Three CSS Tests are Failing
        https://bugs.webkit.org/show_bug.cgi?id=203616
        <rdar://problem/56749907>

        Unreviewed test gardening.

        Fix the conic-gradient-parsing.html tests, and update iOS expectations for two hsl tests.

        * http/wpt/css/css-images-4/conic-gradient-parsing.html:
        * platform/ios/fast/css/hsl-color-expected.txt:
        * platform/ios/fast/css/hsla-color-expected.txt:

2019-10-30  Zalan Bujtas  <zalan@apple.com>

        ASSERTION FAILED: !object || !isRuby(object->parent()) || is<RenderRubyRun>(*object) || (object->isInline() && (object->isBeforeContent() || object->isAfterContent())) || (object->isAnonymous() && is<RenderBlock>(*object) && object->style().display() == D
        https://bugs.webkit.org/show_bug.cgi?id=196003
        <rdar://problem/49219890>

        Reviewed by Antti Koivisto.

        * TestExpectations:

2019-10-30  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Implement PictureInPictureWindow
        https://bugs.webkit.org/show_bug.cgi?id=202615

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-10-30  Chris Dumez  <cdumez@apple.com>

        REGRESSION (r238252): HTTP POST is losing application/x-www-form-urlencoded body if there's a redirect to different host
        https://bugs.webkit.org/show_bug.cgi?id=201950
        <rdar://problem/55577782>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/misc/form-submit-file-cross-site-redirect-expected.txt: Added.
        * http/tests/misc/form-submit-file-cross-site-redirect.html: Added.

2019-10-30  Antti Koivisto  <antti@apple.com>

        ::before/::after elements not filling their grid cell when container has display: contents
        https://bugs.webkit.org/show_bug.cgi?id=193567

        Reviewed by Simon Fraser.

        * fast/css/display-contents-before-after-grid-expected.html: Added.
        * fast/css/display-contents-before-after-grid.html: Added.

2019-10-30  Antti Koivisto  <antti@apple.com>

        Update css/css-display web platform tests
        https://bugs.webkit.org/show_bug.cgi?id=203607

        Reviewed by Simon Fraser.

        * TestExpectations:

2019-10-30  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Make testharnessreport.js report the results correctly inside an SVG document
        https://bugs.webkit.org/show_bug.cgi?id=203503

        Reviewed by Chris Dumez.

        For SVG tests, the completion callback has to create a foreignObject and
        append it to the root element. Then the results element has to be appended
        to this foreignObject.

        * TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/svg/path/error-handling/bounding-expected.txt: Removed.
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt: Removed.
        * resources/testharnessreport.js:
        (self.testRunner.add_completion_callback):

2019-10-30  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip imported/w3c/web-platform-tests/cors/credentials-flag.htm

        The test is not flaky if we don't dump JS console messages in the output.

        * TestExpectations:

2019-10-30  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip 3 WPT tests that are timing out since they were imported.

        It unnecessarily slows down our test runs.

        * TestExpectations:

2019-10-30  Megan Gardner  <megan_gardner@apple.com>

        Fix autoscroll test to work on iPad.
        https://bugs.webkit.org/show_bug.cgi?id=203598
        <rdar://problem/51863703>

        Reviewed by Wenson Hsieh.

        iPads are much taller than iPhones, so to test autoscrolling under a
        software keyboard, we need to return several more times.
        Also take the opportunity to make the test more robust to races.

        * fast/events/autoscroll-with-software-keyboard.html:
        * platform/ipad/TestExpectations:

2019-10-30  Frederic Wang  <fwang@igalia.com>

        Import WPT tests for scrollend and overscroll events
        https://bugs.webkit.org/show_bug.cgi?id=203500

        Reviewed by Simon Fraser.

        * TestExpectations: Skip the tests on most platforms, since
        sendEventStream is not supported.
        * platform/ios/TestExpectations: Enable the tests on iOS.

2019-10-29  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [SVG2] SVGSymbolElement should inherits SVGGraphicsElement
        https://bugs.webkit.org/show_bug.cgi?id=203573

        Reviewed by Simon Fraser.

        * svg/dom/svg2-inheritance-expected.txt:
        * svg/dom/svg2-inheritance.html:

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

        REGRESSION (r251693): [iOS] Unable to change selection after focusing an element with keyboard attached
        https://bugs.webkit.org/show_bug.cgi?id=203582

        Reviewed by Tim Horton.

        Add a new layout test to cover this scenario.

        * editing/selection/ios/set-selection-by-tapping-after-changing-focused-element-bounds-expected.txt: Added.
        * editing/selection/ios/set-selection-by-tapping-after-changing-focused-element-bounds.html: Added.

2019-10-29  Chris Dumez  <cdumez@apple.com>

        UserMediaRequest should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203098
        <rdar://problem/56716101>

        Reviewed by Eric Carlson.

        Add layout test coverage.

        * fast/mediastream/MediaDevices-getUserMedia-expected.txt:
        * http/tests/navigation/page-cache-getUserMedia-pending-promise-expected.txt: Added.
        * http/tests/navigation/page-cache-getUserMedia-pending-promise.html: Added.

2019-10-29  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Implement PictureInPictureWindow
        https://bugs.webkit.org/show_bug.cgi?id=202615

        Reviewed by Eric Carlson.

        Add layout test cases for the Picture-in-Picture API.

        * TestExpectations:
        * media/picture-in-picture-api-enter-pip-1-expected.txt: Added.
        * media/picture-in-picture-api-enter-pip-1.html: Added.
        * media/picture-in-picture-api-enter-pip-2-expected.txt: Added.
        * media/picture-in-picture-api-enter-pip-2.html: Added.
        * media/picture-in-picture-api-enter-pip-3-expected.txt: Added.
        * media/picture-in-picture-api-enter-pip-3.html: Added.
        * media/picture-in-picture-api-enter-pip-4-expected.txt: Added.
        * media/picture-in-picture-api-enter-pip-4.html: Added.
        * media/picture-in-picture-api-exit-pip-1-expected.txt: Added.
        * media/picture-in-picture-api-exit-pip-1.html: Added.
        * media/picture-in-picture-api-exit-pip-2-expected.txt: Added.
        * media/picture-in-picture-api-exit-pip-2.html: Added.
        * media/picture-in-picture-api-pip-events-expected.txt: Added.
        * media/picture-in-picture-api-pip-events.html: Added.
        * media/picture-in-picture-api-pip-window-expected.txt: Added.
        * media/picture-in-picture-api-pip-window.html: Added.
        * platform/mac-wk2/TestExpectations:

2019-10-29  Antoine Quint  <graouts@apple.com>

        WebAnimation should never prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203088
        <rdar://problem/56374249>

        Reviewed by Antti Koivisto.

        Add a new test that checks that an Animation that would run past a page's navigation is correctly suspended
        and resumed as it enters and leaves the back/forward cache.

        * webanimations/animation-page-cache-expected.txt: Added.
        * webanimations/animation-page-cache.html: Added.

2019-10-29  Megan Gardner  <megan_gardner@apple.com>

        Update autocorrect test to have correctly focused contenteditable
        https://bugs.webkit.org/show_bug.cgi?id=203552
        <rdar://problem/51690426>

        Reviewed by Wenson Hsieh.

        Autocorrection bails when we are not first responder after 
        https://bugs.webkit.org/show_bug.cgi?id=192824
        Therefore, this test must be written to first focus the 
        contenteditable, and then apply the autocorrection.

        * fast/events/ios/autocorrect-with-range-selection.html:

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

        Align CSS hsl() -> rgb() color conversion with the spec
        https://bugs.webkit.org/show_bug.cgi?id=203592

        Reviewed by Tim Horton.

        * platform/mac/fast/css/hsl-color-expected.txt:
        * platform/mac/fast/css/hsla-color-expected.txt:

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

        Implement the Remote Playback API.
        https://bugs.webkit.org/show_bug.cgi?id=162971

        Reviewed by Youenn Fablet.

        * media/remoteplayback-cancel-invalid-expected.txt: Added.
        * media/remoteplayback-cancel-invalid.html: Added.
        * media/remoteplayback-prompt-expected.txt: Added.
        * media/remoteplayback-prompt.html: Added.
        * media/remoteplayback-target-availability-expected.txt: Added.
        * media/remoteplayback-target-availability.html: Added.
        * media/remoteplayback-watch-disableremoteplayback-expected.txt: Added.
        * media/remoteplayback-watch-disableremoteplayback.html: Added.
        * platform/ios-wk2/TestExpectations:

2019-10-29  Truitt Savell  <tsavell@apple.com>

        imported/w3c/web-platform-tests/css/css-sizing/dynamic-available-size-iframe.html is flakey
        https://bugs.webkit.org/show_bug.cgi?id=203517

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Update css/css-color WPT
        https://bugs.webkit.org/show_bug.cgi?id=203585

        Reviewed by Zalan Bujtas.

        * tests-options.json:

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

        Flaky Test: imported/w3c/web-platform-tests/css/css-values/absolute_length_units.html
        https://bugs.webkit.org/show_bug.cgi?id=203581

        Unreviewed Test Gardening. Mark as flakey.

        * TestExpectations:

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

        css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html is flakey
        https://bugs.webkit.org/show_bug.cgi?id=203583

        Unreviewed Test Gardening. Mark as flakey.

        * TestExpectations:

2019-10-29  Chris Dumez  <cdumez@apple.com>

        <input type="range">.setAttribute("value") does not update the value
        https://bugs.webkit.org/show_bug.cgi?id=202859
        <rdar://problem/56204271>

        Reviewed by Frédéric Wang.

        Unskip ref test that is no longer failing.

        * TestExpectations:

2019-10-29  Russell Epstein  <repstein@apple.com>

        (r251242) [ iOS ]: fast/scrolling/ios/touch-scroll-visibility-hidden.html is a Flaky Timeout.
        https://bugs.webkit.org/show_bug.cgi?id=203577

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-10-29  Russell Epstein  <repstein@apple.com>

        [iOS] fast/forms/contenteditable-font-optical-size.html landed flaky.
        https://bugs.webkit.org/show_bug.cgi?id=203371

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-10-29  Kate Cheney  <katherine_cheney@apple.com>

        Layout Test http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html is flaky (183093)
        <https://bugs.webkit.org/show_bug.cgi?id=183093>
        <rdar://problem/37964600>

        Reviewed by John Wilander.

        Flakiness no longer reproducible. 

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

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

        Update css/css-multicol WPT
        https://bugs.webkit.org/show_bug.cgi?id=203551

        Reviewed by Zalan Bujtas.

        * TestExpectations:

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

        Import css/css-sizing WPT
        https://bugs.webkit.org/show_bug.cgi?id=203517

        Reviewed by Tim Horton.

        * TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio-affects-container-width-when-height-changes-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/css/css-sizing/button-min-width-expected.txt: Added.

2019-10-29  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r251639.

        Caused flakey API failures for GetDisplayMediaTest.Constraints

        Reverted changeset:

        "Enforce user gesture for getUserMedia in case a previous
        getUserMedia call was denied"
        https://bugs.webkit.org/show_bug.cgi?id=203362
        https://trac.webkit.org/changeset/251639

2019-10-29  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r251594.

        Caused an API test failure

        Reverted changeset:

        "mp4 video element broken with service worker"
        https://bugs.webkit.org/show_bug.cgi?id=184447
        https://trac.webkit.org/changeset/251594

2019-10-29  Chris Dumez  <cdumez@apple.com>

        Unreviewed, revert r251637 as it caused http/tests/lazyload/scroll-element-removed-from-document.html to crash
        https://bugs.webkit.org/show_bug.cgi?id=203566

        * TestExpectations:
        * http/tests/lazyload/attribute-expected.txt: Removed.
        * http/tests/lazyload/attribute.html: Removed.
        * http/tests/lazyload/invisible-image-expected.txt: Removed.
        * http/tests/lazyload/invisible-image.html: Removed.
        * http/tests/lazyload/js-image-expected.txt: Removed.
        * http/tests/lazyload/js-image.html: Removed.
        * http/tests/lazyload/lazy-expected.txt: Removed.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled-expected.txt: Removed.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled.html: Removed.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled-expected.txt: Removed.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled.html: Removed.
        * http/tests/lazyload/lazy.html: Removed.
        * http/tests/lazyload/lazy2-expected.txt: Removed.
        * http/tests/lazyload/placeholder.js: Removed.
        * http/tests/lazyload/resources/lazy-load-in-iframe.html: Removed.
        * http/tests/lazyload/scroll-element-moved-from-document-expected.txt: Removed.
        * http/tests/lazyload/scroll-element-moved-from-document.html: Removed.
        * http/tests/lazyload/scroll-element-removed-from-document-expected.txt: Removed.
        * http/tests/lazyload/scroll-element-removed-from-document.html: Removed.
        * http/tests/lazyload/scroll-expected.txt: Removed.
        * http/tests/lazyload/scroll.html: Removed.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        Unreviewed, add missing platform-specific test expectations after r251686

        Add mac-wk2-specific baselines.

        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https.html: Removed.

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

        Unreviewed test gardening; new iOS results for these now passing tests.

        * platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt:
        * platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt:
        * platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt:
        * platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt:

2019-10-29  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Synchronize the attributes and properties of HTMLVideoElementPictureInPicture
        https://bugs.webkit.org/show_bug.cgi?id=203518

        Reviewed by Eric Carlson.

        * TestExpectations:
        * media/picture-in-picture-api-element-attributes-expected.txt: Added.
        * media/picture-in-picture-api-element-attributes.html: Added.
        * platform/mac-wk2/TestExpectations:

2019-10-29  Dirk Schulze  <krit@webkit.org>

        [SVG2] fill-opacity, stroke-opacity, stop-opacity and flood-opacity doe not support percentage
        https://bugs.webkit.org/show_bug.cgi?id=201731

        Test number and percentage values for opacity, fill-opacity, stroke-opacity, stop-opacity, flood-opacity.

        Reviewed by Simon Fraser.

        * fast/css/parsing-opacity-expected.txt: Added.
        * fast/css/parsing-opacity.html: Added.
        * fast/svg/parsing-fill-opacity-expected.txt: Added.
        * fast/svg/parsing-fill-opacity.html: Added.
        * fast/svg/parsing-flood-opacity-expected.txt: Added.
        * fast/svg/parsing-flood-opacity.html: Added.
        * fast/svg/parsing-stop-opacity-expected.txt: Added.
        * fast/svg/parsing-stop-opacity.html: Added.
        * fast/svg/parsing-stroke-opacity-expected.txt: Added.
        * fast/svg/parsing-stroke-opacity.html: Added.

2019-10-28  Kate Cheney  <katherine_cheney@apple.com>

        http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-w* are flaky timeouts
        https://bugs.webkit.org/show_bug.cgi?id=196269
        <rdar://problem/49288612>

        Reviewed by Alexey Proskuryakov.

        Flakiness no longer reproducible.

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

2019-10-28  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Remove JSPromiseDeferred
        https://bugs.webkit.org/show_bug.cgi?id=203400

        Reviewed by Keith Miller.

        * js/dom/promise-stack-overflow-expected.txt: Added.
        * js/dom/promise-stack-overflow.html: Added.

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

        Update css/css-text-decor WPT
        https://bugs.webkit.org/show_bug.cgi?id=203532

        Reviewed by Tim Horton.

        Mark tests as failing.

        * TestExpectations:

2019-10-28  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add bindings support for the enterkeyhint HTML attribute
        https://bugs.webkit.org/show_bug.cgi?id=203440

        Reviewed by Ryosuke Niwa.

        * fast/forms/enterkeyhint-attribute-values-expected.txt: Added.
        * fast/forms/enterkeyhint-attribute-values.html: Added.

        Add a new layout test to exercise the new attribute (including case sensitivity, the default value, unknown
        values, all known value types, and different types of elements).

        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt: Added.
        * platform/ios-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/mac-wk2/TestExpectations:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt: Added.
        * platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:

        Add some new baselines for some existing layout tests.

2019-10-28  Truitt Savell  <tsavell@apple.com>

        Correcting expectations after r251666
        https://bugs.webkit.org/show_bug.cgi?id=203501

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-10-28  Zalan Bujtas  <zalan@apple.com>

        Hidden framesets should provide default edgeInfo value
        https://bugs.webkit.org/show_bug.cgi?id=203506
        <rdar://problem/56233726>

        Reviewed by Simon Fraser.

        * fast/frames/hidden-frameset-expected.txt: Added.
        * fast/frames/hidden-frameset.html: Added.

2019-10-28  Chris Dumez  <cdumez@apple.com>

        Update html/semantics/forms WPT tests from upstream
        https://bugs.webkit.org/show_bug.cgi?id=203499

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        Skip new ref-test that is failing.

        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
        Baseline existing WPT test.

2019-10-28  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Optimize Promise runtime functions
        https://bugs.webkit.org/show_bug.cgi?id=203454

        Reviewed by Keith Miller.

        * inspector/console/message-stack-trace-expected.txt:

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

        Re-import the css/css-shapes WPT
        https://bugs.webkit.org/show_bug.cgi?id=203441

        Reviewed by Tim Horton.

        * TestExpectations:
        * platform/ios/TestExpectations:

2019-10-28  Truitt Savell  <tsavell@apple.com>

        Two imported tests from r251591 are failing
        https://bugs.webkit.org/show_bug.cgi?id=203501

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Properties that take <position> should not accept 3 values
        https://bugs.webkit.org/show_bug.cgi?id=189142

        Reviewed by Antti Koivisto.

        Land some FAIL results for these shapes tests. They should get removed when
        the css/css-shapes WPT are imported (webkit.org/b/203441), though the WPT
        haven't been updated for the new syntax either.

        * css3/shapes/shape-outside/values/shape-outside-circle-002-expected.txt:
        * css3/shapes/shape-outside/values/shape-outside-circle-004-expected.txt:
        * css3/shapes/shape-outside/values/shape-outside-ellipse-002-expected.txt:
        * css3/shapes/shape-outside/values/shape-outside-ellipse-004-expected.txt:
        * fast/css/object-position/parsing-object-position-expected.txt:
        * fast/css/object-position/parsing-object-position.html: Remove the invalid position test.
        * fast/shapes/parsing/parsing-shape-outside-expected.txt:
        * fast/shapes/parsing/parsing-test-utils.js:  Remove the invalid position tests.

2019-10-28  John Wilander  <wilander@apple.com>

        Storage Access API: Make the API work with the experimental 3rd-party cookie blocking
        https://bugs.webkit.org/show_bug.cgi?id=203428
        <rdar://problem/56626949>

        Reviewed by Alex Christensen.

        * http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database-expected.txt: Added.
        * http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.html: Added.
        * http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-expected.txt: Added.
        * http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking.html: Added.
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database-expected.txt: Added.
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database.html: Added.
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-expected.txt: Added.
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html: Added.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html:
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html: Added.
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html: Added.
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database.html: Added.
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie.html: Added.

2019-10-28  Alex Christensen  <achristensen@webkit.org>

        Remove flaky debug log from WK1 expectations after r251582
        https://bugs.webkit.org/show_bug.cgi?id=203383

        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt:
        The important part of this test is that there are 3 PASSes, not that the console log is consistent.

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

        Add support for the Q unit
        https://bugs.webkit.org/show_bug.cgi?id=203469

        Reviewed by Antti Koivisto.

        More tests now pass.

        * TestExpectations:
        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt:
        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt:
        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt:
        * fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt:

2019-10-28  Antoine Quint  <graouts@apple.com>

        CSS Transitions and CSS Animations properties should treat unitless 0 as an invalid value for times
        https://bugs.webkit.org/show_bug.cgi?id=203484

        Reviewed by Antti Koivisto.

        Use 0s instead of 0 in places where unitless times were used but shouldn't have been.

        * animations/fill-mode-forwards-zero-duration.html:
        * compositing/animation/keyframe-order.html:
        * css1/units/zero-duration-without-units.html:
        * legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html:
        * legacy-animation-engine/compositing/animation/keyframe-order.html:
        * legacy-animation-engine/css1/units/zero-duration-without-units.html:
        * legacy-animation-engine/transitions/zero-duration-in-list.html:
        * legacy-animation-engine/transitions/zero-duration-without-units.html:
        * transitions/zero-duration-in-list.html:
        * transitions/zero-duration-without-units.html:
        * webanimations/css-animations-expected.txt:
        * webanimations/css-animations.html:

2019-10-28  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK][WPE] Enable CSS typed OM
        https://bugs.webkit.org/show_bug.cgi?id=192875

        Reviewed by Carlos Garcia Campos.

        Unskip the tests that now pass.

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

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

        Can't change @font-face descriptors from fontFaceRule.style.setProperty()
        https://bugs.webkit.org/show_bug.cgi?id=177975
        <rdar://problem/56648761>

        Reviewed by Antti Koivisto.

        Fix tests for the urange serialization fix.

        * fast/text/font-face-javascript-expected.txt:
        * fast/text/font-face-javascript.html:
        * fast/text/unicode-range-javascript-expected.txt:
        * fast/text/unicode-range-javascript.html:

2019-10-28  Antoine Quint  <graouts@apple.com>

        [Web Animations] Update WPT tests related to Web Animations and remove imported Mozilla tests
        https://bugs.webkit.org/show_bug.cgi?id=203291

        Unreviewed test gardening.

        * TestExpectations:
        * platform/gtk/TestExpectations:

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

        Fix nth-child An+B serialization to match the spc
        https://bugs.webkit.org/show_bug.cgi?id=203464

        Reviewed by Antti Koivisto.

        New results. Some tests that assumed that the selectors simply round-trip had to be
        fixed to supply test and expected selectors.

        * css3/parsing-css3-nthchild-expected.txt:
        * css3/parsing-css3-nthchild.html:
        * fast/css/css-selector-text-expected.txt:
        * fast/css/css-selector-text.html:
        * fast/css/css-set-selector-text-expected.txt:
        * fast/css/css-set-selector-text.html:
        * fast/css/parsing-css-matches-1-expected.txt:
        * fast/css/parsing-css-matches-1.html:
        * fast/css/parsing-css-matches-2-expected.txt:
        * fast/css/parsing-css-matches-2.html:
        * fast/css/parsing-css-matches-4-expected.txt:
        * fast/css/parsing-css-matches-4.html:
        * fast/css/parsing-css-not-1-expected.txt:
        * fast/css/parsing-css-not-1.html:
        * fast/css/parsing-css-not-2-expected.txt:
        * fast/css/parsing-css-not-2.html:
        * fast/css/parsing-css-not-4-expected.txt:
        * fast/css/parsing-css-not-4.html:
        * fast/css/parsing-css-nth-child-expected.txt:
        * fast/css/parsing-css-nth-child-of-1-expected.txt:
        * fast/css/parsing-css-nth-child-of-1.html:
        * fast/css/parsing-css-nth-child-of-2-expected.txt:
        * fast/css/parsing-css-nth-child-of-2.html:
        * fast/css/parsing-css-nth-child.html:
        * fast/css/parsing-css-nth-last-child-of-1-expected.txt:
        * fast/css/parsing-css-nth-last-child-of-1.html:
        * fast/css/parsing-css-nth-last-child-of-2-expected.txt:
        * fast/css/parsing-css-nth-last-child-of-2.html:
        * fast/dom/css-selectorText-expected.txt:

2019-10-21  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Warn users when multiple NFC tags present
        https://bugs.webkit.org/show_bug.cgi?id=200932
        <rdar://problem/54890736>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:
        Adds new tests for multiple physical tags and service restart.

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

        Import css/css-position WPT
        https://bugs.webkit.org/show_bug.cgi?id=203446

        Reviewed by Antti Koivisto.

        Import css/css-position from WPT at 5eebc927c57ec8c5e234fef8e4cc480ac339462c (Mon Oct 21 20:23:09 2019 +0100).

        * TestExpectations:

2019-10-26  youenn fablet  <youenn@apple.com>

        Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied
        https://bugs.webkit.org/show_bug.cgi?id=203362

        Reviewed by Eric Carlson.

        * fast/mediastream/getUserMedia-deny-persistency5-expected.txt:
        * fast/mediastream/getUserMedia-deny-persistency5.html:
        * fast/mediastream/screencapture-user-gesture-expected.txt:
        * fast/mediastream/screencapture-user-gesture.html:

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

        Main implementation for lazy image loading
        https://bugs.webkit.org/show_bug.cgi?id=200764

        Reviewed by Simon Fraser.

        Import relevant tests into http/tests/lazyload.
        Skip lazy image load tests for WK1 and windows, which
        has IntersectionObserver turned off by default.

        * TestExpectations:
        * http/tests/lazyload/attribute-expected.txt: Added.
        * http/tests/lazyload/attribute.html: Added.
        * http/tests/lazyload/invisible-image-expected.txt: Added.
        * http/tests/lazyload/invisible-image.html: Added.
        * http/tests/lazyload/js-image-expected.txt: Added.
        * http/tests/lazyload/js-image.html: Added.
        * http/tests/lazyload/lazy-expected.txt: Added.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled-expected.txt: Added.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled.html: Added.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled-expected.txt: Added.
        * http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled.html: Added.
        * http/tests/lazyload/lazy.html: Added.
        * http/tests/lazyload/lazy2-expected.txt: Added.
        * http/tests/lazyload/placeholder.js: Added.
        (is_image_fully_loaded):
        * http/tests/lazyload/resources/lazy-load-in-iframe.html: Added.
        * http/tests/lazyload/scroll-element-moved-from-document-expected.txt: Added.
        * http/tests/lazyload/scroll-element-moved-from-document.html: Added.
        * http/tests/lazyload/scroll-element-removed-from-document-expected.txt: Added.
        * http/tests/lazyload/scroll-element-removed-from-document.html: Added.
        * http/tests/lazyload/scroll-expected.txt: Added.
        * http/tests/lazyload/scroll.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-10-26  Yury Semikhatsky  <yurys@chromium.org>

        [GTK] LayoutTests/inspector tests timeout
        https://bugs.webkit.org/show_bug.cgi?id=147518

        Unreviewed. Added missing generic test expectation (it was accidentally placed under platform/mac).

        * inspector/model/remote-object-dom-expected.txt: Renamed from LayoutTests/platform/mac/inspector/model/remote-object-dom-expected.txt.

2019-10-26  Chris Lord  <clord@igalia.com>

        Put OffscreenCanvas behind a build flag
        https://bugs.webkit.org/show_bug.cgi?id=203146

        Reviewed by Ryosuke Niwa.

        OffscreenCanvas is disabled by default except on GTK/WPE. Adjust test
        expectations accordingly.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt.

2019-10-25  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: remove custom expectations from platform/gtk/inspector-protocol
        https://bugs.webkit.org/show_bug.cgi?id=203453

        Unreviewed, test expectations cleanup.

        * platform/gtk/inspector-protocol/debugger/setBreakpoint-dfg-and-modify-local-expected.txt: Removed.
        * platform/gtk/inspector-protocol/debugger/setBreakpoint-dfg-expected.txt: Removed.
        * platform/gtk/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Removed.
        Removed platform/gtk/inspector-protocol altogether as there is no LayoutTests/inspector-protocol
        folder any more. Corresponding tests were either deleted or moved to LayoutTests/inspector a while ago.

2019-10-25  Yury Semikhatsky  <yurys@chromium.org>

        [GTK] Layout test inspector-protocol/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=139359

        Reviewed by Devin Rousso.

        Renable the test on all platforms. With the current implementation of inspector client in tests
        response to Debugger.resume is dispatched in the front-end synchronously and the front-end would
        call InspectoTest.log when inspected script execution is not yet resumed.

        * inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local-expected.txt:
        * inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2019-10-25  Eric Carlson  <eric.carlson@apple.com>

        Support for callbacks for manifest events
        https://bugs.webkit.org/show_bug.cgi?id=202101
        <rdar://problem/54277362>

        Reviewed by Jer Noble.

        * http/tests/media/resources/hls/metadata/prog_index.m3u8:
        * http/tests/media/track-in-band-hls-metadata-expected.txt:
        * http/tests/media/track-in-band-hls-metadata.html:

2019-10-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS WK2] fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196298
        <rdar://problem/49337021>

        Reviewed by Simon Fraser.

        * fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt:
        * fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html:

        Adjust this flaky layout test so that it's more robust:
        -   Begin the test after the first visible content rect update following the load event.
        -   Add an initial step to the test to sanity check the viewport dimensions when setting the minimum effective
            device width to 0.
        -   At each step, instead of waiting for the next visible content rect update and presentation update, simply
            wait for the window width to reach the expected value.

        From local testing, this brings the test failure rate down from ~25 failures in 1000 runs to 0 failures.

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

        Remove the failing test expectations.

        * platform/ipad/fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt:

        Adjust the text expectations so that they contain an entry for setMinimumEffectiveWidth(0) as well.

2019-10-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        Adjust a layout test after r251522
        https://bugs.webkit.org/show_bug.cgi?id=202663

        Reviewed by Simon Fraser.

        Fix relative file paths when including ui-helper.js and basic-gestures.js.

        * fast/events/touch/ios/long-press-on-link.html:

2019-10-25  Yury Semikhatsky  <yurys@chromium.org>

        [GTK] LayoutTests/inspector tests timeout
        https://bugs.webkit.org/show_bug.cgi?id=147518

        Reviewed by Devin Rousso.

        Renable inspector/model tests on GTK.

        * TestExpectations: There are two real issues that actually happen on all platforms,
        filed separate bugs for each of them.
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:

2019-10-25  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: support emulateUserGesture parameter in Runtime.callFunctionOn
        https://bugs.webkit.org/show_bug.cgi?id=200262

        Reviewed by Devin Rousso.

        Supported emulateUserGesture in Runtime.callFunctionOn protocol command.

        * TestExpectations:
        * inspector/runtime/callFunctionOn-emulateUserGesture-expected.txt: Added.
        * inspector/runtime/callFunctionOn-emulateUserGesture-userIsInteracting-expected.txt: Added.
        * inspector/runtime/callFunctionOn-emulateUserGesture-userIsInteracting.html: Added.
        * inspector/runtime/callFunctionOn-emulateUserGesture.html: Added.
        * platform/wk2/TestExpectations:
        Only enable the new test on WK2, as the user interaction state is only supported by WK2.

2019-10-25  Megan Gardner  <megan_gardner@apple.com>

        Fix autoscroll test specifically for iPad
        https://bugs.webkit.org/show_bug.cgi?id=203392
        <rdar://problem/51712479>

        Reviewed by Wenson Hsieh.

        On iPad, we only have one gesture that will set off the magnified caret gesture.
        If we touch in the same point as where we touched to focus the element, in the
        test environment, nothing resets the positionInformation, which then erroneously
        thinks that there is no focused element, which then blocks the caret gesture from
        starting. The easiest fix for this is to not have the point to focus the element 
        be the same point that we use to start the caret gesture.

        * fast/events/touch/ios/drag-to-autoscroll-in-single-line-editable.html:

2019-10-25  Sihui Liu  <sihui_liu@apple.com>

        REGRESSION (r251261?): Flaky Test: inspector/runtime/getProperties.html
        https://bugs.webkit.org/show_bug.cgi?id=203271
        <rdar://problem/56557216>

        Reviewed by Devin Rousso.

        r251261 was reverted and the test has become not so flaky, but the previous flakiness showed us a potential bug
        in the test: it is possible that the console message for unhandled rejected promise gets dispatched after 
        dumping the results. To make the test more robust, stop showing that message in console.

        * inspector/runtime/getProperties-expected.txt:
        * inspector/runtime/getProperties.html:

2019-10-25  Per Arne Vollan  <pvollan@apple.com>

        REGRESSION: fast/css/paint-order.html and fast/css/paint-order-shadow.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=203313
        <rdar://problem/52557916>

        Reviewed by Alexey Proskuryakov.

        Catalina introduced a regression, causing these tests to fail. This was not a regression related to the feature these
        tests are testing, but a regression related to the rendering position and size of a specific glyph. Given this, the
        tests are changed to take this into consideration, making them pass both on Catalina and previous versions of the OS.

        * fast/css/paint-order-expected.html:
        * fast/css/paint-order-shadow-expected.html:
        * fast/css/paint-order-shadow.html:
        * fast/css/paint-order.html:
        * platform/mac/TestExpectations:

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

        Adding expectations for editing/pasteboard/smart-paste-paragraph-003.html
        https://bugs.webkit.org/show_bug.cgi?id=203264

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2019-10-25  Yury Semikhatsky  <yurys@chromium.org>

        inspector/heap/getRemoteObject.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=156077
        <rdar://problem/25469998>

        Unreviewed test gardening. Skip the test on GTK in addition to Mac WK2 as it's
        now failing and crashing.

        * platform/gtk/TestExpectations:

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

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

        Causing more test failures after the rollout of resize event
        patch (Requested by rniwa on #webkit).

        Reverted changeset:

        "Integrate media query evaluation into HTML5 event loop"
        https://bugs.webkit.org/show_bug.cgi?id=203134
        https://trac.webkit.org/changeset/251322

2019-10-25  Matt Lewis  <jlewis3@apple.com>

        Rolling out r251579,r251162,r251512,r251500, and r251498 for build failures
        and test failures

        Unreviewed rollout.

        * http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:

2019-10-24  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS 13] fast/forms/ios/accessory-bar-navigation.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=203294
        <rdar://problem/54520848>

        Reviewed by Tim Horton.

        Upstream an iOS 13 layout test result into open source. Note that fast/forms/ios is not currently run in open
        automation at all, so this expectation was unused anyways.

        * fast/forms/ios/accessory-bar-navigation-expected.txt:

2019-10-25  youenn fablet  <youenn@apple.com>

        WebProcess should unregister its interest for a SWServerRegistration when all its corresponding ServiceWorkerRegistrations are destroyed
        https://bugs.webkit.org/show_bug.cgi?id=203410

        Reviewed by Chris Dumez.

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

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

        Followup test gardening after r251591
        https://bugs.webkit.org/show_bug.cgi?id=203291

        Unreviewed test gardening.

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

2019-10-25  Alex Christensen  <achristensen@webkit.org>

        Rebase WK1 test after r251582
        https://bugs.webkit.org/show_bug.cgi?id=203383

        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Added.

2019-10-25  youenn fablet  <youenn@apple.com>

        mp4 video element broken with service worker
        https://bugs.webkit.org/show_bug.cgi?id=184447
        <rdar://problem/39313155>

        Reviewed by Chris Dumez.

        Enable test for WK2, not WK1.

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

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

        Unreviewed, rolling out r251586.

        New test is flaky

        Reverted changeset:

        "DatabaseContext should not prevent entering the back/forward
        cache"
        https://bugs.webkit.org/show_bug.cgi?id=203103
        https://trac.webkit.org/changeset/251586

2019-10-25  Antoine Quint  <graouts@apple.com>

        [Web Animations] Update WPT tests related to Web Animations and remove imported Mozilla tests
        https://bugs.webkit.org/show_bug.cgi?id=203291
        <rdar://problem/56577481>

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/ios/TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * tests-options.json:

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

        DatabaseContext should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203103

        Reviewed by Geoffrey Garen.

        * fast/history/page-cache-webdatabase-pending-transaction-expected.txt:
        * fast/history/page-cache-webdatabase-pending-transaction.html:
        Update existing test to reflect behavior change.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        Unmark test as flaky.

2019-10-24  Alex Christensen  <achristensen@webkit.org>

        Add more information to SRI failure console messages
        https://bugs.webkit.org/show_bug.cgi?id=203383

        Reviewed by Geoff Garen.

        * http/tests/subresource-integrity/sri-enabled-with-setting-expected.txt:
        * http/tests/subresource-integrity/sri-module-expected.txt:
        * http/tests/subresource-integrity/sri-script-expected.txt:
        * http/tests/subresource-integrity/sri-style-expected.txt:

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

        Automate generation of computedProperties
        https://bugs.webkit.org/show_bug.cgi?id=198680
        <rdar://problem/51507834>

        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-10-24  Simon Fraser  <simon.fraser@apple.com>

        imported/w3c/web-platform-tests/css/css-values/calc-positive-fraction-001.html fails
        https://bugs.webkit.org/show_bug.cgi?id=203332

        Reviewed by Dean Jackson.

        imported/w3c/web-platform-tests/css/css-values/calc-positive-fraction-001.html passes now.

        * TestExpectations:

2019-10-24  Zhifei Fang  <zhifei_fang@apple.com>

        [jsc test] Skip intl-numberformat.js test
        https://bugs.webkit.org/show_bug.cgi?id=203279

        Reviewed by Yusuke Suzuki.

        * js/script-tests/intl-numberformat.js:

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

        Unreviewed, rolling out r251536.

        Landed 3 Broken Tests.

        Reverted changeset:

        "[Web Animations] Update WPT tests related to Web Animations
        and remove imported Mozilla tests"
        https://bugs.webkit.org/show_bug.cgi?id=203291
        https://trac.webkit.org/changeset/251536

2019-10-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r251269, r251294, and r251328.
        https://bugs.webkit.org/show_bug.cgi?id=203384

        Probably made many animation tests flaky (Requested by rniwa
        on #webkit).

        Reverted changesets:

        "Integrate resize event with HTML5 event loop"
        https://bugs.webkit.org/show_bug.cgi?id=202964
        https://trac.webkit.org/changeset/251269

        "Flaky Test: fast/events/resize-subframe-in-rendering-
        update.html"
        https://bugs.webkit.org/show_bug.cgi?id=203140
        https://trac.webkit.org/changeset/251294

        "Flaky Test: fast/events/resize-subframe-in-rendering-
        update.html"
        https://bugs.webkit.org/show_bug.cgi?id=203140
        https://trac.webkit.org/changeset/251328

2019-10-24  Sihui Liu  <sihui_liu@apple.com>

        [ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
        https://bugs.webkit.org/show_bug.cgi?id=203173
        <rdar://problem/56424721>

        Reviewed by Geoffrey Garen.

        play() returns a promise and the promise can be rejected by a later pause(). We didn't handle
        that case so we could receive a type JavaScript message for the unhandled rejected promise.

        * inspector/console/webcore-logging.html:
        * platform/mac-wk1/TestExpectations:

2019-10-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] Fix compositing/backing/transform-transition-from-outside-view.html
        https://bugs.webkit.org/show_bug.cgi?id=184566

        Reviewed by Simon Fraser.

        For the most part this is the same fix that Simon Fraser made to address 184611 in r251412 although here I also
        changed the setTimeout call to requestAnimationFrame in order to ensure that the backing store bit was set in the
        layer dump for WK1.

        * TestExpectations:
        * compositing/backing/transform-transition-from-outside-view.html:

2019-10-24  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip new tests added in 251509 on Windows

        DataTransferItems is not supported on this platform.

        * platform/win/TestExpectations:

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

        Unreviewed test gardening.

        Make the test added in r251385 pass in WebKit1.

        * compositing/video/video-border-radius-clipping-expected.html:
        * compositing/video/video-border-radius-clipping.html:

2019-10-24  Chris Dumez  <cdumez@apple.com>

        FetchResponse should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203092
        <rdar://problem/56554677>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * TestExpectations:
        * fast/history/page-cache-active-fetch-response-blobReadAsBlob-expected.txt: Added.
        * fast/history/page-cache-active-fetch-response-blobReadAsBlob.html: Added.

2019-10-24  Truitt Savell  <tsavell@apple.com>

        Removing expectations for legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html
        https://bugs.webkit.org/show_bug.cgi?id=203225

        unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-10-24  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ iOS ] ( r251015 ) Layout Test fast/text/whitespace/pre-wrap-overflow-selection.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203366

        Unreviewed test gardening

        * platform/ios/TestExpectations:

2019-10-24  Chris Dumez  <cdumez@apple.com>

        AudioContext should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203102

        Reviewed by Geoffrey Garen.

        Update layout test coverage.

        * fast/history/page-cache-running-audiocontext-expected.txt:
        * fast/history/page-cache-running-audiocontext.html:

2019-10-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] Update WPT tests related to Web Animations and remove imported Mozilla tests
        https://bugs.webkit.org/show_bug.cgi?id=203291

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/win/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * tests-options.json:

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

        Web Inspector: provide a way to inject "bootstrap" JavaScript into the page as the first script executed
        https://bugs.webkit.org/show_bug.cgi?id=195847
        <rdar://problem/48950551>

        Reviewed by Joseph Pecoraro.

        * inspector/page/setBootstrapScript-main-frame.html: Added.
        * inspector/page/setBootstrapScript-main-frame-expected.txt: Added.
        * inspector/page/setBootstrapScript-sub-frame.html: Added.
        * inspector/page/setBootstrapScript-sub-frame-expected.txt: Added.
        * inspector/page/resources/bootstrap-iframe.html: Added.

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

        Notification should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203099
        <rdar://problem/56557479>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * fast/history/page-cache-notification-non-suspendable-expected.txt: Removed.
        * fast/history/page-cache-notification-non-suspendable.html: Removed.
        * fast/history/page-cache-notification-showing-expected.txt: Added.
        * fast/history/page-cache-notification-showing.html: Added.

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

        [SVG2] Fix SVGSVGElement to conform with SVG2
        https://bugs.webkit.org/show_bug.cgi?id=203278

        Reviewed by Simon Fraser.

        * svg/custom/immutable-properties-expected.txt:
        * svg/custom/immutable-properties.html:
        SVGSVGElement.viewport has to be removed.

        * svg/custom/intersection-list-null-expected.txt: Removed.
        * svg/custom/intersection-list-null.svg: Removed.
        The specs state that the SVGElement argument to checkIntersection() and
        checkEnclosure() is not optional. This test was testing the argument 
        optional case.

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

        [iOS 13] imported/mozilla/svg/text/textpath-selection.svg is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203247
        <rdar://problem/52124292>

        Reviewed by Tim Horton.

        Remove the failing test expectation. See Tools/ChangeLog for more details.

        * platform/ios-wk2/TestExpectations:

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

        Rename force-press-related functions to refer to context menus, and fix a former force-press test
        https://bugs.webkit.org/show_bug.cgi?id=202663
        <rdar://problem/52699530>

        Reviewed by Dean Jackson.

        Move and rename force press test to correctly test context menu functionality.

        * fast/events/touch/ios/long-press-on-link-expected.txt: Renamed from LayoutTests/platform/iphone-7/fast/events/touch/force-press-on-link-expected.txt.
        * fast/events/touch/ios/long-press-on-link.html: Added.
        * platform/iphone-7/fast/events/touch/force-press-on-link.html: Removed.
        * resources/ui-helper.js:
        (window.UIHelper.longPressAndGetContextMenuContentAt.return.new.Promise.):
        (window.UIHelper.longPressAndGetContextMenuContentAt.return.new.Promise):
        (window.UIHelper.longPressAndGetContextMenuContentAt):
        (window.UIHelper.waitForInputSessionAt.return.new.Promise.):
        (window.UIHelper.waitForInputSessionAt.return.new.Promise):
        (window.UIHelper.waitForInputSessionAt):

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

        Import the css/css-values web platform tests
        https://bugs.webkit.org/show_bug.cgi?id=203342

        Reviewed by Dean Jackson.

        Import wpt revision e68120da0fb52f010f206f3ecc63cfa09885b0f4 (Wed Oct 23 13:18:06 2019 -0700)
        css-values tests.

        * TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/css/css-values/absolute_length_units-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/css/css-values/lh-rlh-on-root-001-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt: Added.
        * tests-options.json:

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

        Unreviewed, rolling out r251469.

        Broke accessibility/ios-simulator/link-with-images-text.html
        on iOS

        Reverted changeset:

        "AX: Implement support for new ARIA roles: code, strong,
        emphasis, generic"
        https://bugs.webkit.org/show_bug.cgi?id=203257
        https://trac.webkit.org/changeset/251469

2019-10-23  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r251261.

        This broke multiple tests

        Reverted changeset:

        "Using version 1 CFRunloopSource for faster task dispatch"
        https://bugs.webkit.org/show_bug.cgi?id=202874
        https://trac.webkit.org/changeset/251261

2019-10-23  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r251482.

        r251261 broke multiple tests, reverting this as part of that
        rollout.

        Reverted changeset:

        "[ Mac WK1 ] REGRESSION (r251261): Layout Test
        inspector/console/webcore-logging.html is consistently
        Failing"
        https://bugs.webkit.org/show_bug.cgi?id=203173
        https://trac.webkit.org/changeset/251482

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

        FileSystemDirectoryReader / FileSystemEntry should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203090
        <rdar://problem/56550805>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * editing/pasteboard/entries-api/DirectoryEntry-getFile-back-forward-cache-expected.txt: Added.
        * editing/pasteboard/entries-api/DirectoryEntry-getFile-back-forward-cache.html: Added.
        * editing/pasteboard/entries-api/DirectoryReader-readEntries-back-forward-cache-expected.txt: Added.
        * editing/pasteboard/entries-api/DirectoryReader-readEntries-back-forward-cache.html: Added.

2019-10-23  Truitt Savell  <tsavell@apple.com>

        update expectations for inspector/heap/getRemoteObject.html
        https://bugs.webkit.org/show_bug.cgi?id=156077

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Ignore document.open/write after the active parser has been aborted
        https://bugs.webkit.org/show_bug.cgi?id=203028

        Reviewed by Geoffrey Garen.

        Import test from blink.

        * imported/blink/fast/loader/document-write-after-location-change-expected.txt: Added.
        * imported/blink/fast/loader/document-write-after-location-change.html: Added.
        * imported/blink/fast/loader/resources/pass-and-notify-done.html: Added.

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

        REGRESSION (r250936?) [ iOS ]: Layout Test http/tests/IndexedDB/storage-limit-1.https.html is a Flaky Failure (203275)
        https://bugs.webkit.org/show_bug.cgi?id=203275

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-10-23  Kate Cheney  <katherine_cheney@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 (198670)
        https://bugs.webkit.org/show_bug.cgi?id=198670
        <rdar://problem/51529251>

        Reviewed by John Wilander.

        Was able to reproduce flaky timeouts extremely rarely accompanied by
        the error 'JS ERROR TypeError: null is not an object (evaluating
        'document.body.appendChild’)'. Since the frame was being created in
        head, the document body was sometimes not finished loading by the time
        the appendChild call was being made. Moving the frame load to the body should fix this flakiness.

        * http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
        * platform/mac-wk2/TestExpectations:

2019-10-23  Kate Cheney  <katherine_cheney@apple.com>

        Implement dumpResourceLoadStatistics in SQLite ITP Database
        https://bugs.webkit.org/show_bug.cgi?id=203224
        <rdar://problem/56482165>

        Reviewed by John Wilander. 

        Migrated tests from the memory store to be used to test dumping
        for database store. Both tests are almost identical to the memory
        store tests except they set the useITPDatabase flag to true and 
        log-cross-site-load-with-link-decoration-database.html tests one additional domain
        to be sure that listing multiple domains in a category works in the database store.

        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database.html: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database.html: Added.

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

        [SVG2] Fix SVGElement to conform with SVG2
        https://bugs.webkit.org/show_bug.cgi?id=203280

        Reviewed by Simon Fraser.

        * platform/gtk/svg/custom/getPresentationAttribute-expected.png: Removed.
        * platform/gtk/svg/custom/getPresentationAttribute-expected.txt: Removed.
        * platform/ios/svg/custom/getPresentationAttribute-expected.txt: Removed.
        * platform/mac/svg/custom/getPresentationAttribute-expected.png: Removed.
        * platform/mac/svg/custom/getPresentationAttribute-expected.txt: Removed.
        * platform/mac/svg/custom/getPresentationAttribute-modify-expected.png: Removed.
        * platform/win/svg/custom/getPresentationAttribute-expected.txt: Removed.
        * platform/wincairo/svg/custom/getPresentationAttribute-expected.txt: Removed.
        * platform/wpe/svg/custom/getPresentationAttribute-expected.txt: Removed.
        * svg/custom/getPresentationAttribute.svg: Removed.
        * svg/custom/path-getPresentationAttribute-crash-expected.txt: Removed.
        * svg/custom/path-getPresentationAttribute-crash.html: Removed.
        SVGElement.getPresentationAttribute has to be removed.

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

        FetchRequest should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203091
        <rdar://problem/56525333>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * TestExpectations:
        * fast/history/page-cache-active-fetch-request-blobReadAsBlob-expected.txt: Added.
        * fast/history/page-cache-active-fetch-request-blobReadAsBlob.html: Added.
        * fast/history/page-cache-active-fetch-request-blobReadAsReadableStream-expected.txt: Added.
        * fast/history/page-cache-active-fetch-request-blobReadAsReadableStream.html: Added.
        * fast/history/page-cache-active-fetch-request-blobReadAsText-expected.txt: Added.
        * fast/history/page-cache-active-fetch-request-blobReadAsText.html: Added.

2019-10-23  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: notify inspector when provisional page is created, committed and destroyed
        https://bugs.webkit.org/show_bug.cgi?id=202704

        Reviewed by Devin Rousso.

        Added new test for Target events during PSON. It is only enabled on WebKit2 as there is
        no Target agent in WebKit1.

        * TestExpectations:
        * http/tests/inspector/target/target-events-for-provisional-page-expected.txt: Added.
        * http/tests/inspector/target/target-events-for-provisional-page.html: Added.
        * platform/wk2/TestExpectations:

2019-10-23  Rob Buis  <rbuis@igalia.com>

        Be strict on request's Content-Type
        https://bugs.webkit.org/show_bug.cgi?id=191356

        Reviewed by Alex Christensen.

        Remove expected results for tests that now pass.

        * TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/cors/client-hint-request-headers-expected.txt: Removed.
        * platform/mac-wk1/imported/w3c/web-platform-tests/cors/late-upload-events-expected.txt: Removed.

2019-10-22  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Supply FrameInfo in -[WKUIDelegatePrivate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:]
        https://bugs.webkit.org/show_bug.cgi?id=202563
        <rdar://problem/55973968>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
        Imporves the flakiness.

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

        fast/forms/ios/click-should-not-suppress-misspelling.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=203283
        <rdar://problem/52701047>

        Reviewed by Tim Horton.

        This layout test frequently fails on iOS 13, because it assumes that the `selectionchange` event due to tapping
        a misspelled word must occur within one zero-delay timeout after detecting a click event. However, this is not
        guaranteed; to fix the test, we simply wait until both `click` and `selectionchange` events have occured, and
        then check that the entire contents of the text field are selected.

        * fast/forms/ios/click-should-not-suppress-misspelling-expected.txt:
        * fast/forms/ios/click-should-not-suppress-misspelling.html:

2019-10-23  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: frontend tests should clear output before resending results
        https://bugs.webkit.org/show_bug.cgi?id=203262

        Reviewed by Devin Rousso.

        Unflake some of the tests that reload inspected page. This is achieved by waiting for
        explicit TestPageDidLoad event. At that point it's known that accumulated so far test
        output has been resent to the inspected page and the log lines will not change their
        order / appear twice.

        * http/tests/inspector/resources/inspector-test.js:
        (TestPage.clearOutput):
        * inspector/debugger/breakpoint-action-eval.html:
        * inspector/debugger/breakpoint-action-log-expected.txt:
        * inspector/debugger/breakpoint-action-log.html:
        * inspector/debugger/probe-manager-add-remove-actions-expected.txt:
        * inspector/debugger/probe-manager-add-remove-actions.html:

2019-10-23  Sihui Liu  <sihui_liu@apple.com>

        [ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
        https://bugs.webkit.org/show_bug.cgi?id=203173
        <rdar://problem/56424721>

        Reviewed by Geoffrey Garen.

        play() returns a promise and the promise can be rejected by a later pause(). We didn't handle
        that case so we could receive a type JavaScript message for the unhandled rejected promise.

        * inspector/console/webcore-logging.html:
        * platform/mac-wk1/TestExpectations:

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

        wpt/css/css-images/gradient/color-stops-parsing.html fails
        https://bugs.webkit.org/show_bug.cgi?id=200211

        Reviewed by Dean Jackson.

        Mark the conic gradient test as skipped, then passing on Mojave+.

        * TestExpectations:
        * platform/mac/TestExpectations:

2019-10-22  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Implement support for new ARIA roles: code, strong, emphasis, generic
        https://bugs.webkit.org/show_bug.cgi?id=203257

        Reviewed by Chris Fleizach.

        Add new roles to existing role-related tests and update expectations.

        * accessibility/gtk/xml-roles-exposed-expected.txt:
        * accessibility/gtk/xml-roles-exposed.html:
        * accessibility/roles-computedRoleString.html:
        * accessibility/roles-exposed.html:
        * platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt:
        * 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:

2019-10-22  John Wilander  <wilander@apple.com>

        Resource Load Statistics (experimental): Block all third-party cookies
        https://bugs.webkit.org/show_bug.cgi?id=203266
        <rdar://problem/56512858>

        Reviewed by Alex Christensen.

        This change updates the experimental change in
        <https://trac.webkit.org/changeset/251213> to block all
        third-party cookies, regardless of user interaction with
        the first-party website.

        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-database-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt.
        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-database.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html.
        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt.
        * http/tests/resourceLoadStatistics/third-party-cookie-blocking.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html.

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

        editing/pasteboard/paste-and-sanitize.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=203199
        <rdar://problem/53551736>

        Reviewed by Tim Horton.

        Try to make this test more robust in WebKit2 on iOS 13 by ensuring at least one round trip between the web
        content process and the UI process after copying and pasting. The root cause of the flakiness is still unknown,
        but evidence suggests that code in Pasteboard.framework needs at least one runloop to sever the connection
        between the application process and `pasted` after writing content to the pasteboard; otherwise, this
        post-writing cleanup step will race against the next time we attempt to trigger a paste.

        * editing/pasteboard/paste-and-sanitize.html:
        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:

        Remove the failing test expectations.

2019-10-22  Charlie Turner  <cturner@igalia.com>

        [GStreamer] Skip http/tests/media/hls/hls-video-resize.html
        https://bugs.webkit.org/show_bug.cgi?id=199617

        Unreviewed gardening.

        Generally speaking, the HTML spec says that HAVE_METADATA => video
        dimensions are available. Only when the state is < HAVE_METADATA
        is it specified that "If the element's readyState attribute is
        HAVE_NOTHING, then the [width, height] attributes must return 0."

        However, there is a provision mentioned implicitly that the UA can
        be in HAVE_METADATA and have received no video data. "When no
        video data is available (the element's readyState attribute is
        either HAVE_NOTHING, or HAVE_METADATA but no video data has yet
        been obtained at all..."

        The two definitions of the HAVE_METADATA both state that
        dimensions should be available though,

        Defn 1.  "Enough of the resource has been obtained that the
        duration of the resource is available. In the case of a video
        element, the dimensions of the video are also available. No media
        data is available for the immediate current playback position."

        Defn 2.  "The user agent has just determined the duration and
        dimensions of the media resource and the text tracks are ready."

        And yet there's one more mention of transitioning to this state
        that suggests the UA only needs to know the duration of the media:
        "The user agent must determine the duration of the media resource
        before playing any part of the media data and before setting
        readyState to a value equal to or greater than HAVE_METADATA, even
        if doing so requires fetching multiple parts of the resource."

        So, it seems more like the spec itself it unclear, and the test
        was added to check the Apple ports' specific HLS behaviour.

        * platform/gtk/TestExpectations: Skip this test, since it relies
        on behaviour that does not seem to be standard, but rather quite
        specific to how the Apple HLS player works.

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

        [SVG2] Remove the 'viewTarget' property of SVGViewElement
        https://bugs.webkit.org/show_bug.cgi?id=203217

        Reviewed by Simon Fraser.

        * svg/dom/SVGViewElement-viewTarget-expected.txt: Removed.
        * svg/dom/SVGViewElement-viewTarget.html: Removed.

2019-10-22  Charlie Turner  <cturner@igalia.com>

        media/W3C/video/networkState/networkState_during_progress.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=76280

        Reviewed by Eric Carlson.

        The onprogress event must be received when networkState is
        NETWORK_LOADING, make sure in the transition from loading to idle
        that the progress event is fired synchronously, so that it is
        received before the networkState changes to NETWORK_IDLE.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2019-10-22  Russell Epstein  <repstein@apple.com>

        [ iOS ] Three editing/pasteboard/smart-paste-paragraph tests have been flaky since they landed in r243124 (203264)
        https://bugs.webkit.org/show_bug.cgi?id=203264

        Unreviewed Test Gardening..

        * platform/ios-wk2/TestExpectations: Marked tests as flaky failures
        * platform/ipad/TestExpectations: Marked tests as passing on iPad.

2019-10-22  Dirk Schulze  <krit@webkit.org>

        SVG2: Add bounding-box keyword to pointer-events
        https://bugs.webkit.org/show_bug.cgi?id=191382

        Reviewed by Dean Jackson.

        Test pointer-events: bounding-box with different SVG elements.

        * platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt:
        * platform/mac/svg/custom/pointer-events-image-expected.txt:
        * platform/mac/svg/custom/pointer-events-path-expected.txt:
        * platform/mac/svg/custom/pointer-events-text-expected.txt:
        * svg/custom/pointer-events-image-css-transform.svg:
        * svg/custom/pointer-events-image.svg:
        * svg/custom/pointer-events-path.svg:
        * svg/custom/pointer-events-text-css-transform.svg:
        * svg/custom/pointer-events-text.svg:

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

        wpt/css/css-images/gradient/color-stops-parsing.html fails
        https://bugs.webkit.org/show_bug.cgi?id=200211

        Reviewed by Dean Jackson.

        Mark the conic gradient test as skipped, then passing on Mojave+.

        * TestExpectations:
        * platform/mac/TestExpectations:

2019-10-22  youenn fablet  <youenn@apple.com>

        Carriage return character sometimes missing in SDP c-line
        https://bugs.webkit.org/show_bug.cgi?id=203190

        Reviewed by Eric Carlson.

        * webrtc/datachannel/filter-ice-candidate.html:

2019-10-22  Russell Epstein  <repstein@apple.com>

        Layout Test imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=203256

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations: Marked test as Flaky.
        * platform/mac-wk2/TestExpectations: Marked test as Flaky on Debug.

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

        wpt/css/css-images/gradient/color-stops-parsing.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=200206

        Reviewed by Carlos Alberto Lopez Perez.

        Unskip the test. It fails, but no longer crashes.

        * TestExpectations:
        * imported/w3c/web-platform-tests/css/css-images/gradient/color-stops-parsing-expected.txt: Added.
        * platform/mac-highsierra/imported/w3c/web-platform-tests/css/css-images/gradient/color-stops-parsing-expected.txt: Added.

2019-10-22  Alexey Proskuryakov  <ap@apple.com>

        Remove expectations for compositing/iframes/nested-iframe-scrolling.html.

        It passes now.

        * platform/ios/TestExpectations:

2019-10-22  Miguel Gomez  <magomez@igalia.com>

        REGRESSION(r244372): [GTK][WPE] fast/images/icon-decoding.html and others are failing
        https://bugs.webkit.org/show_bug.cgi?id=197251

        Reviewed by Adrian Perez de Castro.

        Update expectations for passing tests.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/images/icon-decoding-expected.txt:
        * platform/wpe/TestExpectations:
        * platform/wpe/fast/images/icon-decoding-expected.txt:

2019-10-22  Dirk Schulze  <krit@webkit.org>

        SVG2: Use DOMMatrix2DInit for setMatrix and createSVGTransformFromMatrix
        https://bugs.webkit.org/show_bug.cgi?id=191417

        Reviewed by Dean Jackson.

        Extended existing tests to cover change to new argument
        DOMMatrix2DInit.

        * svg/dom/SVGTransform-expected.txt:
        * svg/dom/SVGTransform.html:
        * svg/dom/SVGTransformList-expected.txt:
        * svg/dom/SVGTransformList.html:

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

        Multiple fast/scrolling/ios tests failing with unexpected scrollbars appearing in result
        https://bugs.webkit.org/show_bug.cgi?id=203223

        Reviewed by Wenson Hsieh.
        
        Hide scrollbars in iOS iframe scrolling ref tests.

        * fast/scrolling/ios/hit-testing-iframe-006.html:
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-002.html:
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-003.html:
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-006.html:
        * fast/scrolling/ios/scroll-iframe-001.html:
        * fast/scrolling/ios/scroll-iframe-002.html:
        * fast/scrolling/ios/scroll-iframe-003.html:
        * fast/scrolling/ios/scroll-iframe-004.html:
        * platform/ios-wk2/TestExpectations:

2019-10-21  Chris Dumez  <cdumez@apple.com>

        Suspend dedicated worker threads while in the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203186
        <rdar://problem/56447493>

        Reviewed by Ryosuke Niwa.

        Extend layout test coverage.

        * fast/workers/resources/worker-setInterval.js: Added.
        (onmessage):
        (setInterval):
        * fast/workers/worker-page-cache.html:

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

        [Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI
        https://bugs.webkit.org/show_bug.cgi?id=203129

        Reviewed by Tim Horton.

        Update the tests to use the new names, and to not set the setting.

        * fast/text/design-system-ui-10-expected-mismatch.html:
        * fast/text/design-system-ui-10.html:
        * fast/text/design-system-ui-11.html:
        * fast/text/design-system-ui-12.html:
        * fast/text/design-system-ui-13.html:
        * fast/text/design-system-ui-14.html:
        * fast/text/design-system-ui-15.html:
        * fast/text/design-system-ui-16.html:
        * fast/text/design-system-ui-2-expected.html:
        * fast/text/design-system-ui-2.html:
        * fast/text/design-system-ui-3-expected-mismatch.html:
        * fast/text/design-system-ui-3.html:
        * fast/text/design-system-ui-4-expected-mismatch.html:
        * fast/text/design-system-ui-4.html:
        * fast/text/design-system-ui-5-expected-mismatch.html:
        * fast/text/design-system-ui-5.html:
        * fast/text/design-system-ui-6-expected.html:
        * fast/text/design-system-ui-6.html:
        * fast/text/design-system-ui-7-expected.html:
        * fast/text/design-system-ui-7.html:
        * fast/text/design-system-ui-8-expected-mismatch.html:
        * fast/text/design-system-ui-8.html:
        * fast/text/design-system-ui-9-expected-mismatch.html:
        * fast/text/design-system-ui-9.html:
        * fast/text/design-system-ui-expected.html:
        * fast/text/design-system-ui.html:

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

        [WK1] Layout Test legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184611

        Reviewed by Zalan Bujtas.
        
        In WebKit1, the transform on the layer is not consistent, so filter it out of the layer tree dump (it's not the important part).

        * legacy-animation-engine/compositing/backing/transform-transition-from-outside-view-expected.txt:
        * legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html:
        * platform/mac-wk1/TestExpectations:

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

        Update Web Platform Test css/css-lists/content-property/marker-text-matches-armenian.html
        https://bugs.webkit.org/show_bug.cgi?id=203130
        <rdar://problem/51525184>

        Reviewed by Alex Christensen.

        Apply https://github.com/web-platform-tests/wpt/commit/b2d4cb4a64ae072dfc6feb888dd77575927f5ae2

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

2019-10-21  Kate Cheney  <katherine_cheney@apple.com>

        http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=202852
        <rdar://problem/56195888>

        Reviewed by Alex Christensen.

        Fixed test flakiness caused by the resource remaining in the cache
        between tests, therefore not creating a new isolated session and
        failing the text diff. This patch adds a php header to each file to
        prevent the resource from being stored in the cache.

        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database.html.
        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.html.

2019-10-21  Truitt Savell  <tsavell@apple.com>

        [ Mac ] Layout Test legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203225

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

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

        REGRESSION (~r251067): http/tests/workers/service/registration-clear-redundant-worker.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=203218

        Unreviewed Test Gardening.

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

2019-10-21  Jer Noble  <jer.noble@apple.com>

        Add MediaCapabilities support for DolbyVision codecs.
        https://bugs.webkit.org/show_bug.cgi?id=203170

        Reviewed by Eric Carlson.

        * media/dovi-codec-parameters-expected.txt: Added.
        * media/dovi-codec-parameters.html: Added.

2019-10-21  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Update cookie blocking in NetworkStorageSession after first user interaction
        https://bugs.webkit.org/show_bug.cgi?id=203195
        <rdar://problem/56464567>

        Reviewed by Alex Christensen and Chris Dumez.

        This patch removes the explicit calls to testRunner.statisticsUpdateCookieBlocking() since
        they are no longer needed. This makes sure the changed code is tested.

        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html:
        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html:

2019-10-21  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, re-enable a couple of passing layout tests

        * platform/ios/TestExpectations:
        * platform/ipad/TestExpectations:

2019-10-21  Wenson Hsieh  <wenson_hsieh@apple.com>

        editing/selection/ios/selection-handles-in-readonly-input.html times out
        https://bugs.webkit.org/show_bug.cgi?id=203203
        <rdar://problem/47710799>

        Reviewed by Tim Horton.

        This test began to fail in iOS 13, since we (intentionally) no longer show a keyboard when focusing `readonly`
        inputs. The test is intended to verify that moving selection handles inside a readonly input field will not
        cause the selection to disappear, but it currently waits forever for the keyboard to appear after initially
        tapping a readonly input field.

        We can fix this test by instead using a tap-and-half gesture to select the text ('aa').

        * editing/selection/ios/selection-handles-in-readonly-input.html:

2019-10-21  Daniel Bates  <dabates@apple.com>

        Update expected result for fast/repaint/placeholder-after-caps-lock-hidden.html
        https://bugs.webkit.org/show_bug.cgi?id=203005
        <rdar://problem/51826131>

        Reviewed by Simon Fraser.

        Rebase iOS result. The test fast/repaint/placeholder-after-caps-lock-hidden.html is only supported
        in Modern WebKit and only on Mac and iOS, which implement uiController.toggleCapsLock(), at the time
        of writing.

        * platform/ios-wk2/TestExpectations: Mark test as PASS.
        * platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
        * platform/ios/TestExpectations: Remove entry so that we fallback to platform-independent TestExpectations
        and skip the test because the test is only supported on Modern WebKit.
        * platform/ios/fast/events/ios/placeholder-after-caps-lock-hidden-expected.txt: Removed; erroneously added
        file for non-existent test.

2019-10-21  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [SVG2]: Add 'auto' behavior to the 'width' and 'height' properties of the SVG <image> element
        https://bugs.webkit.org/show_bug.cgi?id=202013

        Reviewed by Simon Fraser.

        * svg/custom/image-width-height-auto-dynamic-expected.svg: Added.
        * svg/custom/image-width-height-auto-dynamic.svg: Added.
        * svg/custom/image-width-height-auto-initial-expected.svg: Added.
        * svg/custom/image-width-height-auto-initial.svg: Added.
        * svg/custom/image-width-height-length-initial-expected.svg: Added.
        * svg/custom/image-width-height-length-initial.svg: Added.
        * svg/custom/resources/100x200-green.png: Added.

2019-10-21  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Clipboard API] Implement ClipboardItem.getType() for platform clipboard items
        https://bugs.webkit.org/show_bug.cgi?id=203168

        Reviewed by Tim Horton.

        Add 3 new layout tests.

        * editing/async-clipboard/clipboard-change-data-while-getting-type-expected.txt: Added.
        * editing/async-clipboard/clipboard-change-data-while-getting-type.html: Added.

        Add a layout test to verify that if the pasteboard changes right after the page has obtained clipboard items,
        the page should not be able to fetch the new contents of the pasteboard using these clipboard items.

        * editing/async-clipboard/clipboard-get-type-with-old-items.html: Added.
        * editing/async-clipboard/clipboard-get-type-with-old-items-expected.txt: Added.

        Add a layout test to verify that after attempting to get data from invalid (stale) items, the page is still
        capable of reading data from valid clipboard items.

        * editing/async-clipboard/clipboard-item-get-type-basic-expected.txt: Added.
        * editing/async-clipboard/clipboard-item-get-type-basic.html: Added.

        Add a layout test to verify that after writing multiple types to the clipboard using the DataTransfer API, we
        should be able to read them back using the async clipboard API, as a single ClipboardItem, and also get data out
        of the clipboard item using ClipboardItem.getType.

        * editing/async-clipboard/resources/async-clipboard-helpers.js:
        * platform/win/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.async.copyText):
        (window.UIHelper):

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

        Setting border-radius on <video> element clips top and left sections of video
        https://bugs.webkit.org/show_bug.cgi?id=202049
        <rdar://problem/55570024>

        Reviewed by Dean Jackson.

        * compositing/video/video-border-radius-clipping-expected.html: Added.
        * compositing/video/video-border-radius-clipping.html: Added.

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

        scrollingcoordinator/ios/ui-scrolling-tree.html is a Flaky Failure on iPad
        https://bugs.webkit.org/show_bug.cgi?id=203119
        rdar://problem/52970947

        Reviewed by Wenson Hsieh.

        iPad viewport heuristics (WebPage::immediatelyShrinkToFitContent()) run on a zero-delay
        timer after page load, which races with this test getting the UI-side scrolling tree
        and makes the test flakey.

        Fix by turning off the heuristics with "contentMode=mobile". Also fix the test
        to use UIHelper to get the scrolling tree.

        * platform/ipad/TestExpectations:
        * platform/ipad/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt:
        * scrollingcoordinator/ios/ui-scrolling-tree.html:

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

        [iOS WK2] Support hiding iframe scrollbars via ::-webkit-scrollbar style
        https://bugs.webkit.org/show_bug.cgi?id=203178

        Reviewed by Dean Jackson.

        Tests that dumps the scrolling tree.

        * fast/scrolling/ios/scrollbar-hiding-iframes-expected.txt: Added.
        * fast/scrolling/ios/scrollbar-hiding-iframes.html: Added.

2019-10-21  youenn fablet  <youenn@apple.com>

        Share code between AudioDestinationIOS and AudioDestinationMac
        https://bugs.webkit.org/show_bug.cgi?id=203047
        <rdar://problem/56340866>

        Reviewed by Eric Carlson.

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

2019-10-21  Chris Dumez  <cdumez@apple.com>

        XMLHttpRequest should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203107
        <rdar://problem/56438647>

        Reviewed by Youenn Fablet.

        Add more test coverage.

        * TestExpectations:
        * fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt:
        * fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html:
        * http/tests/navigation/page-cache-xhr-in-loading-iframe-expected.txt: Added.
        * http/tests/navigation/page-cache-xhr-in-loading-iframe.html: Added.
        * http/tests/navigation/resources/page-cache-xhr-in-loading-iframe.html: Added.

2019-10-21  Alicia Boya García  <aboya@igalia.com>

        [MSE][GStreamer] Revert WebKitMediaSrc rework temporarily
        https://bugs.webkit.org/show_bug.cgi?id=203078

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations:

2019-10-19  Ryosuke Niwa  <rniwa@webkit.org>

        Flaky Test: fast/events/resize-subframe-in-rendering-update.html
        https://bugs.webkit.org/show_bug.cgi?id=203140
        <rdar://problem/56415948>

        Reviewed by Wenson Hsieh.

        Removed the assertion in setTimeout to avoid flakiness. There isn't a way to deterministically order
        callbacks of setTimeout and requestAnimationFrame for this test for now.

        * fast/events/resize-subframe-in-rendering-update-expected.txt:
        * fast/events/resize-subframe-in-rendering-update.html:

2019-10-19  Chris Dumez  <cdumez@apple.com>

        FileReader should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203106

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * TestExpectations:
        * fast/files/file-reader-back-forward-cache-expected.txt: Added.
        * fast/files/file-reader-back-forward-cache.html: Added.

2019-10-19  Ryosuke Niwa  <rniwa@webkit.org>

        Integrate media query evaluation into HTML5 event loop
        https://bugs.webkit.org/show_bug.cgi?id=203134
        <rdar://problem/56396316>

        Reviewed by Antti Koivisto.

        Added tests for listening to accessiblity related media queries without having any style rules
        get affected by those media queries so that we can catch any future regressions. For now,
        changing accessiblity settings seem to always schedule a rendering update so there is nothing to do
        when these accessibility settings do change.

        * fast/media/media-query-list-07.html: Fixed the test to be compatible with new behavior.
        * fast/media/mq-inverted-colors-live-update-for-listener-expected.txt: Added.
        * fast/media/mq-inverted-colors-live-update-for-listener.html: Added.
        * fast/media/mq-prefers-reduced-motion-live-update-for-listener-expected.txt: Added.
        * fast/media/mq-prefers-reduced-motion-live-update-for-listener.html: Added.

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

        [SVG2]: Remove the SVGExternalResourcesRequired interface
        https://bugs.webkit.org/show_bug.cgi?id=191293

        Reviewed by Simon Fraser.

        * platform/gtk/TestExpectations:
        The script-change-externalResourcesRequired-while-loading.svg has to be
        removed and it was flaky on all platforms.

        * platform/gtk/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
        * platform/ios/TestExpectations:
        * platform/ios/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
        * platform/mac/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
        * platform/win/TestExpectations:
        * platform/win/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
        * svg/W3C-SVG-1.1-SE/types-dom-04-b.svg:
        Use the preserveAlpha property of <feConvolveMatrix> element to test
        SVGAnimatedBoolean.

        * svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt: Removed.
        * svg/animations/animate-externalResourcesRequired-no-load-event.html: Removed.
        * svg/custom/path-domsubtreemodified-crash.html:

        * svg/dom/SVGAnimatedBoolean-expected.txt:
        * svg/dom/SVGAnimatedBoolean.html:
        Use the preserveAlpha property of <feConvolveMatrix> element to test
        SVGAnimatedBoolean.

        * svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading-expected.txt: Removed.
        * svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg: Removed.
        * svg/dom/SVGScriptElement/script-load-and-error-events.svg:
        * svg/dom/SVGScriptElement/script-onerror-bubbling.svg:
        * svg/dom/SVGScriptElement/script-reexecution.svg:
        * svg/dynamic-updates/SVGUseElement-dom-href1-attr.html:

2019-10-18  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Warn users when no credentials are found
        https://bugs.webkit.org/show_bug.cgi?id=203147
        <rdar://problem/55931123>

        Reviewed by Brent Fulgham.

        Adds new tests for CtapAuthenticator::tryDowngrade enhancement.

        * http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:

2019-10-18  Russell Epstein  <repstein@apple.com>

        [ Mac Debug WK1 ] REGRESSION (r251262?): fast/scrolling/latching/scroll-select-bottom-test.html is a Flaky Failure
        https://bugs.webkit.org/show_bug.cgi?id=203176

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

2019-10-18  Russell Epstein  <repstein@apple.com>

        [ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
        https://bugs.webkit.org/show_bug.cgi?id=203173

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

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

        Layout Test inspector/layers/layers-for-node.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=203171

        unreviewed test gardening

        * platform/mac/TestExpectations:

2019-10-18  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS] REGRESSION(r251269): fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation.html and fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html fail
        https://bugs.webkit.org/show_bug.cgi?id=203162
        <rdar://problem/56418459>

        Reviewed by Simon Fraser.

        Rebaselined the test now that the order of execution of orientationchange and resize events have changed.

        * fast/events/ios/rotation/layout-viewport-during-safari-type-rotation-expected.txt:

2019-10-18  Devin Rousso  <drousso@apple.com>

        Web Inspector: Elements: allow WebKit engineers to edit UserAgent shadow trees
        https://bugs.webkit.org/show_bug.cgi?id=203159

        Reviewed by Brian Burg.

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

2019-10-17  Dean Jackson  <dino@apple.com>

        texImage2D for a half-float texture only accepts null
        https://bugs.webkit.org/show_bug.cgi?id=169999
        <rdar://problem/31713571>

        Reviewed by Simon Fraser.

        Add a new test, and update the expected results of existing tests.

        * fast/canvas/webgl/oes-texture-half-float-uint16-expected.txt: Added.
        * fast/canvas/webgl/oes-texture-half-float-uint16.html: Added.
        * webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt:
        * webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:

2019-10-18  Daniel Bates  <dabates@apple.com>

        fast/events/ios/forward-delete-in-editable.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=203049
        <rdar://problem/52969457>

        Reviewed by Wenson Hsieh.

        Now that <rdar://problem/45772078> is fixed we can write the test such that we check the test
        result after we receive a DOM key up for the forward delete. Currently the test makes use of a
        workaround that incorrectly assumes that the keyboard will call back into WebKit to perform the
        forward deletion before the web process blur()s the field. This is not guaranteed to happen.
        Instead wait until we receive a DOM key up for the delete key.

        * fast/events/ios/forward-delete-in-editable.html:

2019-10-18  Daniel Bates  <dabates@apple.com>

        Layout Test http/tests/security/contentSecurityPolicy/iframe-allowed-when-loaded-via-javascript-url.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=202481
        <rdar://problem/55916200>

        Reviewed by Youenn Fablet.

        Have the iframe's document call testRunner.notifyDone() instead of assuming that the document will
        be loaded by the next turn of the event loop.

        * http/tests/security/contentSecurityPolicy/iframe-allowed-when-loaded-via-javascript-url.html:

2019-10-18  Daniel Bates  <dabates@apple.com>

        REGRESSION (r241747): [iOS] Adjust default SVG focus ring width to match width for HTML documents
        https://bugs.webkit.org/show_bug.cgi?id=203011

        Reviewed by Wenson Hsieh.

        Remove the test imported/blink/svg/custom/focus-ring-2.svg now that it passes, again.

        * platform/ios/TestExpectations:

2019-10-18  Jer Noble  <jer.noble@apple.com>

        Add experimental HDR MediaCapabilities support.
        https://bugs.webkit.org/show_bug.cgi?id=203113

        Reviewed by Eric Carlson.

        * media/mediacapabilities/mock-decodingInfo-alphaChannel-expected.txt:
        * media/mediacapabilities/mock-decodingInfo-hdr-expected.txt: Added.
        * media/mediacapabilities/mock-decodingInfo-hdr.html: Added.
        * platform/mac/media/mediacapabilities/hevc-decodingInfo-hdr-expected.txt: Added.
        * platform/mac/media/mediacapabilities/hevc-decodingInfo-hdr.html: Added.

2019-10-18  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Implement AuthenticatorCancel
        https://bugs.webkit.org/show_bug.cgi?id=191523
        <rdar://problem/55920204>

        Reviewed by Brent Fulgham.

        Modified one of the error message that is no longer emitted.

        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:

2019-10-18  Ryosuke Niwa  <rniwa@webkit.org>

        Flaky Test: fast/events/resize-subframe-in-rendering-update.html
        https://bugs.webkit.org/show_bug.cgi?id=203140

        Reviewed by Simon Fraser.

        The flakiness was caused by the race condition between rAF and setTimeout. In many cases,
        setTimeout was getting scheduled after the next rAF and prevented some assertions to run in time.

        Fixed the flakiness by moving setTimeout to outside the setTimeout in which tests run so that
        those assertions would always run.

        Rebaselined the test since these assertions in setTimeout are now always included in the results.

        * fast/events/resize-subframe-in-rendering-update-expected.txt:
        * fast/events/resize-subframe-in-rendering-update.html:

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

        Load event must be fired only for the SVG structurally external elements and the outermost SVG element
        https://bugs.webkit.org/show_bug.cgi?id=203044

        Reviewed by Simon Fraser.

        * fast/dom/crash-moving-subtree-between-documents.html:
        * fast/dom/focus-style-resolution.html:
        * fast/html/marquee-reparent-check.html:
        The SVGElement element should not fire "load" event. Set the HTML <body>
        element's "onload" event handler to be the function which was set to the
        SVGElement's "onload" event handler.

        * svg/custom/image-load-event-expected.html: Added.
        * svg/custom/image-load-event.html: Added.
        Images with external resources or data URIs must fire load events once
        the data is loaded or decoded.

        * svg/custom/loadevents-async-expected.txt: Removed.
        * svg/custom/loadevents-async.html: Removed.
        * svg/custom/loadevents-capturing-expected.txt: Removed.
        * svg/custom/loadevents-capturing.svg: Removed.
        * svg/custom/loadevents-externalresourcesrequired-displaynone-expected.txt: Removed.
        * svg/custom/loadevents-externalresourcesrequired-displaynone.svg: Removed.
        * svg/custom/loadevents-externalresourcesrequired-expected.txt: Removed.
        * svg/custom/loadevents-externalresourcesrequired.svg: Removed.
        * svg/custom/loadevents-normal-displaynone-expected.txt: Removed.
        * svg/custom/loadevents-normal-displaynone.svg: Removed.
        * svg/custom/loadevents-normal-expected.txt: Removed.
        * svg/custom/loadevents-normal.svg: Removed.
        These tests were implementing the SVG1.1 SVGLoad event interactivity:
        https://www.w3.org/TR/SVG11/interact.html where every SVG element had to
        fire the SVGLoad event once it parsed its closing tag. SVG structurally
        external elements were firing load events when the corresponding external
        resources had finished loading but only if externalResourcesRequired = true.

        * svg/dom/SVGScriptElement/script-load-and-error-events.svg:
        This test had two wrong assumptions:
        1) The SVG structurally external element fires a load event when parsing
        the children finishes. Then they may fire another load or error event if
        externalResourcesRequired = true.        
        2) The outermost SVG element will not fire its load event unless all the
        children fires their load events correctly.

2019-10-18  Russell Epstein  <repstein@apple.com>

        REGRESSION (r251262): Layout Test scrollingcoordinator/ios/non-stable-viewport-scroll.html is a Flaky Failure
        https://bugs.webkit.org/show_bug.cgi?id=203157

        Unreviewed Test Gardening.

        * platform/ios-simulator-wk2/TestExpectations: Marked
	scrollingcoordinator/ios/non-stable-viewport-scroll.html as flaky

2019-10-18  Kate Cheney  <katherine_cheney@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 (198185)
        https://bugs.webkit.org/show_bug.cgi?id=198185
        <rdar://problem/51074251>

        Reviewed by Youenn Fablet.

        Fixes a flaky failure caused by test results being checked before data
        records have finished processing. This patch uses a callback to
        ensure data processing has finished before continuing.

        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
        * platform/ios-wk2/TestExpectations:

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

        REGRESSION: Layout Test webgl/many-contexts.html is a flaky timeout on Mojave
        https://bugs.webkit.org/show_bug.cgi?id=198867

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2019-10-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Clipboard API] Support navigator.clipboard.read()
        https://bugs.webkit.org/show_bug.cgi?id=203021

        Reviewed by Ryosuke Niwa.

        * editing/async-clipboard/clipboard-change-data-while-reading-expected.txt: Added.
        * editing/async-clipboard/clipboard-change-data-while-reading.html: Added.

        Add a new layout test to verify that if the platform pasteboard changes in the middle of a DOM paste access
        request, the promise returned by Clipboard.read() should reject, and the page should not receive any clipboard
        items.

        * editing/async-clipboard/clipboard-read-basic-expected.txt: Added.
        * editing/async-clipboard/clipboard-read-basic.html: Added.

        Add a new layout test to exercise Clipboard.read(). Since we don't support reading data from clipboard items
        yet, this only checks the types of each pasteboard item. This test additionally ensures that the ClipboardItems
        returned from the API are the same between calls to Clipboard.read() if the data hasn't changed.

        * editing/async-clipboard/resources/async-clipboard-helpers.js:
        (writeToClipboardUsingDataTransfer):

        Add a new helper to synchronously write data to the clipboard using execCommand and DataTransfer API.

        (async.triggerProgrammaticPaste):

        Add a new helper to trigger programmatic paste by activating the given element or location. Also receives an
        array of options (which, for now, just supports a single option to change the pasteboard when granting DOM paste
        access).

        * platform/ios-wk1/TestExpectations: Skip clipboard-change-data-while-reading.html for now in WebKit1.
        * platform/mac-wk1/TestExpectations: Skip clipboard-change-data-while-reading.html for now in WebKit1.
        * platform/win/TestExpectations: Skip the new layout tests on Windows for now.

2019-10-17  Chris Dumez  <cdumez@apple.com>

        Don't put pages that have not reached the non-visually empty layout milestone in the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=203108
        <rdar://problem/56375671>

        Reviewed by Geoff Garen.

        * http/tests/navigation/page-cache-pending-load.html:
        Tweak test to add the stylesheet to the body instead of the head since a document
        with a pending stylesheet before the body qualifies as visually empty. The test
        would be flaky otherwise.

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

        Only include "deep color" in layer tree dumps if a tests requests it
        https://bugs.webkit.org/show_bug.cgi?id=203125

        Reviewed by Tim Horton.

        * TestExpectations:
        * compositing/contents-format/deep-color-backing-store-expected.txt: Copied from LayoutTests/platform/iphone-7/tiled-drawing/compositing-layers-deep-color-expected.txt.
        * compositing/contents-format/deep-color-backing-store.html: Copied from LayoutTests/platform/iphone-7/tiled-drawing/compositing-layers-deep-color.html.
        * compositing/contents-format/ipad/deep-color-backing-store-expected.txt: Copied from LayoutTests/platform/iphone-7/tiled-drawing/compositing-layers-deep-color-expected.txt.
        * compositing/contents-format/ipad/deep-color-backing-store.html: Copied from LayoutTests/platform/iphone-7/tiled-drawing/compositing-layers-deep-color.html.
        * compositing/contents-format/iphone-7/deep-color-backing-store-expected.txt: Copied from LayoutTests/platform/iphone-7/tiled-drawing/compositing-layers-deep-color-expected.txt.
        * compositing/contents-format/iphone-7/deep-color-backing-store.html: Renamed from LayoutTests/platform/iphone-7/tiled-drawing/compositing-layers-deep-color.html.
        * platform/ipad/TestExpectations:
        * platform/iphone-7/TestExpectations: Added.
        * platform/mac-wk1/compositing/contents-format/deep-color-backing-store-expected.txt: Renamed from LayoutTests/platform/iphone-7/tiled-drawing/compositing-layers-deep-color-expected.txt.

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

        REGRESSION (r243347) Layout tests fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on* are flakey
        https://bugs.webkit.org/show_bug.cgi?id=203122
        rdar://problem/50058173

        Reviewed by Wenson Hsieh.
        
        Rewrite these tests to wait for scrolling to finish, since the overflow is now accelerated and we need
        to wait for momentum to end.

        Also have them use UIHelper, factoring a function to work with overflow as well as document scroll.

        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block-expected.txt:
        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html:
        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document-expected.txt:
        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html:
        * resources/ui-helper.js:
        (window.UIHelper.callFunctionAndWaitForEvent):
        (window.UIHelper.callFunctionAndWaitForScrollToFinish):
        (window.UIHelper.callFunctionAndWaitForTargetScrollToFinish.return.new.Promise):
        (window.UIHelper.callFunctionAndWaitForTargetScrollToFinish):
        (window.UIHelper.callFunctionAndWaitForScrollToFinish.return.new.Promise): Deleted.

2019-10-17  Dean Jackson  <dino@apple.com>

        ctx.font = "" asserts in CSS parser
        https://bugs.webkit.org/show_bug.cgi?id=203127
        <rdar://problem/56391016>

        Reviewed by Devin Rousso.

        Copy the updated test from my WPT pull request. Once this
        is merged into WPT, we won't need this version.

        * http/wpt/2dcontext/text-styles/2d.text.font.parse.invalid-expected.txt: Added.
        * http/wpt/2dcontext/text-styles/2d.text.font.parse.invalid.html: Added.
        * http/wpt/resources/canvas-tests.css: Added.
        * http/wpt/resources/canvas-tests.js: Added.

2019-10-17  Ryosuke Niwa  <rniwa@webkit.org>

        Integrate resize event with HTML5 event loop
        https://bugs.webkit.org/show_bug.cgi?id=202964

        Reviewed by Geoffrey Garen.

        Added a regression test and fixed an existing test to work with the new behavior.

        * fast/events/resize-subframe-in-rendering-update-expected.txt: Added.
        * fast/events/resize-subframe-in-rendering-update.html: Added.
        * fast/shadow-dom/trusted-event-scoped-flags.html:

2019-10-17  Tim Horton  <timothy_horton@apple.com>

        Land a missing test baseline

        * fast/forms/ios/inputmode-none-with-hardware-keyboard-expected.txt: Added.

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

        [ Mojave+ ] Layout Test compositing/fixed-with-main-thread-scrolling.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=198757

        Reviewed by Tim Horton.
        
        Remove expectation for compositing/fixed-with-main-thread-scrolling.html.

        * platform/mac-wk2/TestExpectations:

2019-10-17  Sihui Liu  <sihui_liu@apple.com>

        Using version 1 CFRunloopSource for faster task dispatch
        https://bugs.webkit.org/show_bug.cgi?id=202874

        Reviewed by Geoffrey Garen.

        Fix a flaky test.

        * inspector/css/pseudo-creation-expected.txt:
        * inspector/css/pseudo-creation.html:

2019-10-17  Ryosuke Niwa  <rniwa@webkit.org>

        Make requestIdleCallback suspendable
        https://bugs.webkit.org/show_bug.cgi?id=203023

        Reviewed by Chris Dumez.

        * requestidlecallback/requestidlecallback-in-page-cache-expected.txt: Added.
        * requestidlecallback/requestidlecallback-in-page-cache.html: Added.
        * requestidlecallback/resources: Added.
        * requestidlecallback/resources/page-cache-helper.html: Added.

2019-10-17  Dirk Schulze  <krit@webkit.org>

        transform-box: content-box, stroke-box missing
        https://bugs.webkit.org/show_bug.cgi?id=201892

        Reviewed by Simon Fraser.

        * fast/css/transform-box-parsing.html:
        * svg/transforms/svg-transform-box-expected.html:
        * svg/transforms/svg-transform-box.html:
        * transforms/transform-box-expected.html: Added.
        * transforms/transform-box.html: Added.

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

        [iOS Sim] Layout Test scrollingcoordinator/ios/ui-scroll-fixed.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196612
        rdar://problem/49612867

        Reviewed by Antti Koivisto.
        
        This test hit a really obscure bug where a combination of an immediate scroll, and
        an ancestor reposition left the layer position of a position:fixed layer unchanged.
        The position of this layer in the UI process had been previously modified by
        the scrolling tree for the scroll, but because the WebContent-side mutations left
        the actual position unchanged, we'd never apply a new position via a commit, so left
        the layer in the wrong location.
        
        Removing the m_wasScrolledByDelegatedScrollingSincePreviousCommit check in ScrollingTree::applyLayerPositionsAfterCommit()
        fixes this, but has perf implications. Alternative fixes require complex state tracking.
        Since this is so hard to hit with noisy user scrolling, just change the test to avoid
        the perfect storm of scrolls and offsets.

        * platform/ios-simulator-wk2/TestExpectations:
        * scrollingcoordinator/ios/ui-scroll-fixed-expected.html:
        * scrollingcoordinator/ios/ui-scroll-fixed.html:

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

        Unreviewed, rolling out r251231.

        This test is still very flakey on all platforms.

        Reverted changeset:

        "[GStreamer] media/video-seek-after-end.html is no longer
        flakey"
        https://bugs.webkit.org/show_bug.cgi?id=203079
        https://trac.webkit.org/changeset/251231

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

        Unreviewed, rolling out r251245.

        Addressing this issue differently

        Reverted changeset:

        "Marking media/video-seek-after-end.html as failing"
        https://bugs.webkit.org/show_bug.cgi?id=203111
        https://trac.webkit.org/changeset/251245

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

        Marking media/video-seek-after-end.html as failing 
        https://bugs.webkit.org/show_bug.cgi?id=203111

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Two fast/scrolling/ios/touch-scroll* tests failing in iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=203070
        rdar://problem/51756254

        Reviewed by Wenson Hsieh.
        
        For some reason the uiController.dragFromPointToPoint() in these tests was too long
        to trigger scrolling (maybe an OS change). Fix them to use UIHelper and a shorter
        duration, and also to not be sensitive to the exact distance scrolled.

        * fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt:
        * fast/scrolling/ios/touch-scroll-pointer-events-none.html:
        * fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt:
        * fast/scrolling/ios/touch-scroll-visibility-hidden.html:
        * platform/ios-wk2/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.dragFromPointToPoint):

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

        REGRESSION (r245483) [iPad Simulator] 2 Layout tests fast/scrolling/ios/overflow-scroll-inherited.html fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=203069
        rdar://problem/51868813

        Reviewed by Zalan Bujtas.

        Add new result for overflow-scroll-inherited.html, since -webkit-overflow-scrolling:touch is a no-op
        on iPad on iOS 13.

        We can't have different image references for different devices, so keep overflow-scrolling-touch-enabled-stacking.html
        as an image failure.

        * platform/ipad-12/fast/scrolling/ios/overflow-scroll-inherited-expected.txt: Added.
        * platform/ipad/TestExpectations:
        * platform/ipad/fast/scrolling/ios/overflow-scroll-inherited-expected.txt: Added.

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

        Make fast/text/font-cursive-italic-cjk.html more robust
        https://bugs.webkit.org/show_bug.cgi?id=203072

        Reviewed by Alexey Proskuryakov.

        Instead of naming STKaiti by name, we can just use an -expected-mismatch test.

        * fast/text/font-cursive-italic-cjk-2-expected.html: Removed.
        * fast/text/font-cursive-italic-cjk-2.html: Removed.
        * fast/text/font-cursive-italic-cjk-expected-mismatch.html: Added.
        * fast/text/font-cursive-italic-cjk-expected.html: Removed.
        * fast/text/font-cursive-italic-cjk.html:
        * platform/mac/TestExpectations:

2019-10-17  Charlie Turner  <cturner@igalia.com>

        [GStreamer] media/video-seek-after-end.html is no longer flakey
        https://bugs.webkit.org/show_bug.cgi?id=203079

        Unreviewed test gardening

        * TestExpectations:

2019-10-17  Devin Rousso  <drousso@apple.com>

        Web Inspector: rework frontend agent construction to allow commands/events to be controlled by the related target's type
        https://bugs.webkit.org/show_bug.cgi?id=200384
        <rdar://problem/53850352>

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/requestShaderSource-webgl.html:
        * inspector/canvas/updateShader-webgl:
        * inspector/page/overrideSetting.html:
        * inspector/page/overrideSetting-ICECandidateFilteringEnabled.html:
        * inspector/page/overrideSetting-MockCaptureDevicesEnabled.html:
        * inspector/runtime/parse.html:
        Replace all instances of `DomainAgent.Enum` with `InspectorBackend.domains.Domain.Enum`.

        * inspector/audit/run.html:
        * inspector/audit/version.html:
        * inspector/recording/version.html:
        Use new `InspectorBackend` methods.

        * inspector/unit-tests/target-manager.html:
        * inspector/unit-tests/target-manager-expected.txt:
        * inspector/worker/console-basic.html:
        * inspector/worker/debugger-pause.html:
        * inspector/worker/debugger-scripts.html:
        * inspector/worker/debugger-shared-breakpoint.html:
        * inspector/worker/resources-in-worker.html:
        * inspector/worker/resources/dom-debugger-utilities.js:
        * inspector/worker/runtime-basic.html:
        * http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html:
        Replace `WI.Target.Type` with `WI.TargetType`.

        * inspector/dom/inspect.html:
        * inspector/dom/inspect-expected.txt:
        Rewrite test since faking events from the backend now requires a target.

        * inspector/unit-tests/set-utilities.html:
        * inspector/unit-tests/set-utilities-expected.txt:
        Add tests for `Set.prototype.addAll`.

2019-10-16  Chris Dumez  <cdumez@apple.com>

        Rename PageCache to BackForwardCache
        https://bugs.webkit.org/show_bug.cgi?id=203048

        Reviewed by Alex Christensen.

        Rename PageCache to BackForwardCache for clarity and consistency with the UIProcess's WebBackForwardCache.

        * animations/resume-after-page-cache.html:
        * compositing/accelerated-layers-after-back.html:
        * compositing/iframes/page-cache-layer-tree.html:
        * compositing/page-cache-back-crash.html:
        * compositing/show-composited-iframe-on-back-button.html:
        * editing/mac/input/unconfirmed-text-navigation-with-page-cache.html:
        * fast/canvas/webgl/canvas-webgl-page-cache.html:
        * fast/css/fontloader-page-cache.html:
        * fast/dom/DeviceMotion/no-page-cache.html:
        * fast/dom/DeviceOrientation/event-after-navigation.html:
        * fast/dom/DeviceOrientation/no-page-cache.html:
        * fast/dom/Window/timer-resume-on-navigation-back.html:
        * fast/events/onunload-back-to-page-cache.html:
        * fast/events/pagehide-timeout.html:
        * fast/events/pagehide-xhr-open.html:
        * fast/events/pageshow-pagehide-on-back-cached-with-frames.html:
        * fast/events/pageshow-pagehide-on-back-cached.html:
        * fast/events/suspend-timers.html:
        * fast/forms/autocomplete-off-with-default-value-does-not-clear.html:
        * fast/frames/frame-crash-with-page-cache.html:
        * fast/frames/frame-unload-navigate-and-setTimeout-assert-fail.html:
        * fast/frames/page-hide-document-open.html:
        * fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update.html:
        * fast/frames/restoring-page-cache-should-not-run-scripts.html:
        * fast/harness/page-cache-crash-on-data-urls.html:
        * fast/harness/use-page-cache.html:
        * fast/history/back-from-page-with-focused-iframe.html:
        * fast/history/go-back-to-iframe-with-plugin.html:
        * fast/history/go-back-to-object-subframe.html:
        * fast/history/history-back-while-pdf-in-pagecache.html:
        * fast/history/page-cache-MessagePort-pending-message.html:
        * fast/history/page-cache-after-window-open.html:
        * fast/history/page-cache-back-navigation-crash.html:
        * fast/history/page-cache-clearing-expected.txt:
        * fast/history/page-cache-clearing.html:
        * fast/history/page-cache-closed-audiocontext.html:
        * fast/history/page-cache-createImageBitmap.html:
        * fast/history/page-cache-createObjectURL-using-open-panel.html:
        * fast/history/page-cache-createObjectURL.html:
        * fast/history/page-cache-destroy-document.html:
        * fast/history/page-cache-element-state-focused.html:
        * fast/history/page-cache-execute-script-during-restore.html:
        * fast/history/page-cache-geolocation-active-oneshot.html:
        * fast/history/page-cache-geolocation-active-watcher.html:
        * fast/history/page-cache-geolocation.html:
        * fast/history/page-cache-iframe-js-url.html:
        * fast/history/page-cache-indexed-closed-db.html:
        * fast/history/page-cache-indexed-opened-db.html:
        * fast/history/page-cache-media-source-closed-2.html:
        * fast/history/page-cache-media-source-closed.html:
        * fast/history/page-cache-media-source-opened.html:
        * fast/history/page-cache-navigate-during-restore.html:
        * fast/history/page-cache-notification-non-suspendable.html:
        * fast/history/page-cache-notification-suspendable.html:
        * fast/history/page-cache-removed-source-buffer.html:
        * fast/history/page-cache-running-audiocontext.html:
        * fast/history/page-cache-subframes-with-provisional-load.html:
        * fast/history/page-cache-suspended-audiocontext.html:
        * fast/history/page-cache-webdatabase-no-transaction-db.html:
        * fast/history/page-cache-webdatabase-pending-transaction.html:
        * fast/history/page-cache-with-opener.html:
        * fast/history/pagehide-remove-iframe-crash.html:
        * fast/history/resources/page-cache-window-with-iframe.html:
        * fast/history/resources/page-cache-window-with-opener.html:
        * fast/history/timed-refresh-in-cached-frame.html:
        * fast/images/animated-gif-restored-from-bfcache.html:
        * fast/loader/frames-with-unload-handlers-in-page-cache.html:
        * fast/loader/image-in-page-cache.html:
        * fast/loader/input-element-page-cache-crash.html:
        * fast/loader/navigate-with-new-target-after-back-forward-navigation.html:
        * fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html:
        * fast/loader/scroll-position-restored-on-back.html:
        * fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html:
        * fast/loader/stateobjects/popstate-fires-with-page-cache.html:
        * fast/loader/unschedule-relayout-after-unload.html:
        * fast/loader/window-properties-restored-from-page-cache.html:
        * fast/mediastream/RTCPeerConnection-page-cache.html:
        * fast/overflow/horizontal-scroll-after-back.html:
        * fast/scrolling/iframe-scrollable-after-back.html:
        * fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html:
        * fast/scrolling/ios/scroll-events-back-forward.html:
        * fast/scrolling/ios/touch-scroll-back-forward.html:
        * fast/scrolling/overflow-scrollable-after-back.html:
        * fast/scrolling/page-cache-back-overflow-scroll-restore.html:
        * fast/text-autosizing/ios/text-autosizing-after-back.html:
        * fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html:
        * fast/viewport/viewport-128.html:
        * fast/workers/worker-page-cache.html:
        * http/tests/cache/display-image-unset-allows-cached-image-load.html:
        * http/tests/eventsource/eventsource-page-cache-connected.html:
        * http/tests/eventsource/eventsource-page-cache-connecting.html:
        * http/tests/loading/main-resource-delegates-on-back-navigation.html:
        * http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html:
        * http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks.html:
        * http/tests/media/reload-after-dialog.html:
        * http/tests/navigation/go-back-to-error-page.html:
        * http/tests/navigation/https-in-page-cache.html:
        * http/tests/navigation/https-no-store-subframe-in-page-cache.html:
        * http/tests/navigation/image-load-in-pagehide-handler.html:
        * http/tests/navigation/page-cache-domcache-pending-promise.html:
        * http/tests/navigation/page-cache-domcachestorage-pending-promise.html:
        * http/tests/navigation/page-cache-failed-xhr.html:
        * http/tests/navigation/page-cache-fontfaceset.html:
        * http/tests/navigation/page-cache-fragment-referrer.html:
        * http/tests/navigation/page-cache-iframe-no-current-historyItem.html:
        * http/tests/navigation/page-cache-iframe-provisional-load-async-delegates.html:
        * http/tests/navigation/page-cache-iframe-provisional-load.html:
        * http/tests/navigation/page-cache-pending-image-load-cache-partition.html:
        * http/tests/navigation/page-cache-pending-image-load.html:
        * http/tests/navigation/page-cache-pending-load.html:
        * http/tests/navigation/page-cache-pending-ping-load-cross-origin.html:
        * http/tests/navigation/page-cache-pending-ping-load-same-origin.html:
        * http/tests/navigation/page-cache-requestAnimationFrame.html:
        * http/tests/navigation/page-cache-xhr-in-pagehide.html:
        * http/tests/navigation/page-cache-xhr.html:
        * http/tests/navigation/resources/https-in-page-cache-3.html:
        * http/tests/navigation/subframe-pagehide-handler-starts-load.html:
        * http/tests/navigation/subframe-pagehide-handler-starts-load2.html:
        * http/tests/security/cross-origin-window-open-insert-script.html:
        * http/tests/security/cross-origin-window-open-javascript-url.html:
        * http/tests/security/navigate-when-restoring-cached-page.html:
        * http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
        * http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html:
        * http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html:
        * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
        * http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
        * http/tests/workers/service/page-cache-service-worker-pending-promise.https.html:
        * http/tests/workers/service/page-caching.html:
        * http/wpt/beacon/support/sendBeacon-onpagehide-window.html:
        * legacy-animation-engine/animations/resume-after-page-cache.html:
        * loader/go-back-cached-main-resource.html:
        * loader/go-back-to-different-window-size.html:
        * media/crash-closing-page-with-media-as-plugin-fallback.html:
        * media/media-source/media-source-page-cache.html:
        * media/restore-from-page-cache.html:
        * platform/ios/ios/fixed/fixed-back-forward.html:
        * plugins/crash-restoring-plugin-page-from-page-cache.html:
        * plugins/frameset-with-plugin-frame.html:
        * plugins/netscape-plugin-page-cache-works.html:
        * storage/indexeddb/IDBRequest-page-cache.html:
        * storage/indexeddb/IDBTransaction-page-cache.html:
        * swipe/basic-cached-back-swipe.html:
        * swipe/main-frame-pinning-requirement.html:
        * swipe/pushState-cached-back-swipe.html:
        * swipe/pushState-programmatic-back-while-swiping-crash.html:
        * swipe/pushstate-with-manual-scrollrestoration.html:
        * tiled-drawing/scrolling/null-parent-back-crash.html:
        * tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:
        * webrtc/datachannel/datachannel-page-cache-send.html:
        * webrtc/datachannel/datachannel-page-cache.html:

2019-10-16  Tim Horton  <timothy_horton@apple.com>

        iOS: inputmode=none is not respected with a hardware keyboard attached
        https://bugs.webkit.org/show_bug.cgi?id=203061

        Reviewed by Daniel Bates.

        * fast/forms/ios/inputmode-none-with-hardware-keyboard.html: Added.
        Clone inputmode-none.html to inputmode-none-with-hardware-keyboard.html
        and remove the line to faux-detach the hardware keyboard.

2019-10-16  John Wilander  <wilander@apple.com>

        Resource Load Statistics (experimental): Block all third-party cookies on websites without prior user interaction
        https://bugs.webkit.org/show_bug.cgi?id=203017
        <rdar://problem/56262708>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt: Added.
        * http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html: Added.

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

        Correct TestExpectations from r251119.
        https://bugs.webkit.org/show_bug.cgi?id=202826

        Unreviewed Test Gardening.

        * platform/ios/TestExpectations:

2019-10-16  Rob Buis  <rbuis@igalia.com>

        Remove duplicate MathML tests
        https://bugs.webkit.org/show_bug.cgi?id=202979

        Reviewed by Frédéric Wang.

        Remove mo-form-dynamic.html, this got imported
        as presentation-markup/operators/mo-form-dynamic.html.

        Remove mo-form-minus-plus.html, this got imported
        as presentation-markup/operators/mo-form-minus-plus.html.

        Remove mo-form-fallback.html, this got imported
        as presentation-markup/operators/mo-form-fallback.html.

        * mathml/presentation/mo-form-dynamic-expected.html: Removed.
        * mathml/presentation/mo-form-dynamic-expected.html: Removed.
        * mathml/presentation/mo-form-dynamic.html: Removed.
        * mathml/presentation/mo-form-fallback-expected.html: Removed.
        * mathml/presentation/mo-form-fallback.html: Removed.
        * mathml/presentation/mo-form-minus-plus-expected.html: Removed.
        * mathml/presentation/mo-form-minus-plus.html: Removed.

2019-10-15  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        image/apng not recognized in source tag
        https://bugs.webkit.org/show_bug.cgi?id=202785

        Reviewed by Dean Jackson.

        * TestExpectations: Remove test imported/w3c/web-platform-tests/apng/supported-in-source-type.html
        from the list of expected failures.

2019-10-15  Kate Cheney  <katherine_cheney@apple.com>

        REGRESSION (~244100) [Mac WK2 Debug] Layout Test http/tests/resourceLoadStatistics/prune-statistics.html is a flaky failure (197285)
        https://bugs.webkit.org/show_bug.cgi?id=197285
        <rdar://problem/50208370>

        Reviewed by Chris Dumez.

        Remove a "skipped" expectation for a previously flaky test that should 
        be fixed by this patch.
        * platform/mac-wk2/TestExpectations:

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

        editing/async-clipboard/clipboard-item-basic.html is a flaky failure on macOS and iOS
        https://bugs.webkit.org/show_bug.cgi?id=203015

        Reviewed by Tim Horton.

        This test, for the most part, finishes and dumps its final output before a couple of (intentionally) rejected
        promises finish and log their uncaught rejections to the console. In the case where we lose this race and the
        console messages happen earlier, we end up with a text diff failure.

        Avoid this issue by making sure that we catch these promise rejections.

        * editing/async-clipboard/clipboard-item-basic.html:

        Also give this test a tiny bit more variety, by making one of the promises reject immediately, while the other
        still waits for a short delay (50 ms).

2019-10-15  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        Import apng testcases from WPT.
        https://bugs.webkit.org/show_bug.cgi?id=202783

        Reviewed by Simon Fraser.

        Import apng tests from WTP

        * TestExpectations: Mark the new imported test as failing. One already
        has a fix and the other would pass once the support for reftest-wait
        is implemented in the tooling.

2019-10-15  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Implement HTMLVideoElement.requestPictureInPicture() / Document.exitPictureInPicture()
        https://bugs.webkit.org/show_bug.cgi?id=201024

        Reviewed by Eric Carlson.

        Skip imported/w3c/web-platform-tests/picture-in-picture because of http://webkit.org/b/202617.

        * TestExpectations:
        * tests-options.json:

2019-10-15  Dean Jackson  <dino@apple.com>

        Layout test fast/events/touch/ios/passive-by-default-on-document-and-window.html is a flaky failure on Internal iOS Testers
        https://bugs.webkit.org/show_bug.cgi?id=202858
        <rdar://51829520>

        Update expected results.

        * fast/events/touch/ios/passive-by-default-on-document-and-window-expected.txt:

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

        REGRESSION: editing/async-clipboard/clipboard-interfaces.html is failing in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=202940
        <rdar://problem/56262298>

        Reviewed by Ryosuke Niwa.

        * editing/async-clipboard/clipboard-interfaces.html:
        * editing/async-clipboard/clipboard-item-basic.html:
        * editing/async-clipboard/clipboard-wrapper-stays-alive.html:

        Tweak a few layout tests to actually turn the experimental feature on (this previously worked because
        experimental feature flags are already on by default in WebKit2).

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

        Unskip and unmark these layout tests as failing in WebKit1 on iOS, macOS, and Windows.

2019-10-15  Dean Jackson  <dino@apple.com>

        Reset maxCanvasPixelMemory between tests
        https://bugs.webkit.org/show_bug.cgi?id=202941
        <rdar://problem/56260865>

        Attempt to fix flakiness.

        * fast/canvas/canvas-too-large-to-draw-expected.txt:
        * fast/canvas/canvas-too-large-to-draw.html:

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

        [Clipboard API] Implement getType() for ClipboardItems created from bindings
        https://bugs.webkit.org/show_bug.cgi?id=202943

        Reviewed by Tim Horton.

        Add a new layout test to verify that we can create and ask ClipboardItems for data. Exercises the following
        corner cases:
        - Promise rejection when returning item data.
        - Resolving promises to incorrect data types.
        - Setting types to custom strings (including emojis and non-ASCII characters).
        - Returning values with emojis and non-ASCII characters.
        - Resolving promises using both Blobs and DOMStrings.
        - Delayed promise rejection/resolution (using setTimeout).

        * editing/async-clipboard/clipboard-item-basic-expected.txt: Added.
        * editing/async-clipboard/clipboard-item-basic.html: Added.
        * editing/async-clipboard/resources/async-clipboard-helpers.js: Added.

        Add a resource file with some helper functions for creating blobs, and loading images and text from blobs.

        * platform/win/TestExpectations:

        Temporarily mark a test as failing; I'll fix this and some other failing tests in a followup. See
        <https://webkit.org/b/202940>.

2019-10-15  Rob Buis  <rbuis@igalia.com>

        Remove duplicate MathML tests
        https://bugs.webkit.org/show_bug.cgi?id=202979

        Reviewed by Frédéric Wang.

        Remove mo-paint-lspace-rspace.html, this got imported
        as presentation-markup/operators/mo-paint-lspace-rspace.html.

        Remove mo-movablelimits.html, this got imported
        as presentation-markup/operators/mo-movablelimits.html.

        Remove mo-movablelimits-dynamic.html, this got imported as
        presentation-markup/operators/mo-movablelimits-dynamic.html.

        Remove mo-movablelimits-default.html, this got imported as
        presentation-markup/operators/mo-movablelimits-default.html.

        Remove direction.html, this got imported as
        presentation-markup/direction/direction.html.

        Remove direction-token.html, this got imported as
        presentation-markup/direction/direction-token.html.

        Remove direction-overall.html, this got imported as
        presentation-markup/direction/direction-overall.html.

        Remove inferred-mrow-baseline.html, this got imported as
        presentation-markup/mrow/inferred-mrow-baseline.html.

        Remove inferred-mrow-stretchy.html, this got imported as
        presentation-markup/mrow/inferred-mrow-stretchy.html.

        * mathml/presentation/direction-expected.html: Removed.
        * mathml/presentation/direction-overall-expected.html: Removed.
        * mathml/presentation/direction-overall.html: Removed.
        * mathml/presentation/direction-token-expected.html: Removed.
        * mathml/presentation/direction-token.html: Removed.
        * mathml/presentation/direction.html: Removed.
        * mathml/presentation/inferred-mrow-baseline-expected.txt: Removed.
        * mathml/presentation/inferred-mrow-baseline.html: Removed.
        * mathml/presentation/inferred-mrow-stretchy-expected.txt: Removed.
        * mathml/presentation/inferred-mrow-stretchy.html: Removed.
        * mathml/presentation/mo-movablelimits-default-expected.html: Removed.
        * mathml/presentation/mo-movablelimits-default.html: Removed.
        * mathml/presentation/mo-movablelimits-dynamic-expected.html: Removed.
        * mathml/presentation/mo-movablelimits-dynamic.html: Removed.
        * mathml/presentation/mo-movablelimits-expected.html: Removed.
        * mathml/presentation/mo-movablelimits.html: Removed.
        * mathml/presentation/mo-paint-lspace-rspace-expected.html: Removed.
        * mathml/presentation/mo-paint-lspace-rspace.html: Removed.

2019-10-14  Ryosuke Niwa  <rniwa@webkit.org>

        Import W3C tests for requestidlecallback
        https://bugs.webkit.org/show_bug.cgi?id=202946

        Reviewed by Wenson Hsieh.

        * tests-options.json:

2019-10-14  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Outsets for referenced SVG filters are always zero
        https://bugs.webkit.org/show_bug.cgi?id=202826

        Reviewed by Simon Fraser.

        * css3/filters/svg-blur-filter-clipped-expected.html: Added.
        * css3/filters/svg-blur-filter-clipped.html: Added.
        * platform/ios/TestExpectations:

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

        [Mac] Update fast/text/font-cursive-italic-cjk-2.html for Catalina
        https://bugs.webkit.org/show_bug.cgi?id=202779
        <rdar://problem/54317204>

        Unreviewed gardening.

        * platform/mac/TestExpectations:

2019-10-14  Chris Dumez  <cdumez@apple.com>

        [ iOS13 ] Layout test imported/w3c/web-platform-tests/html/dom/idlharness.https.html is consistently Failing
        https://bugs.webkit.org/show_bug.cgi?id=202960
        <rdar://problem/56267775>

        Unreviewed, unskip test and land new iOS baseline instead.

        * TestExpectations:
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Added.

2019-10-14  Russell Epstein  <repstein@apple.com>

        [ iOS13 ] Layout test imported/w3c/web-platform-tests/html/dom/idlharness.https.html is consistently Failing (202960)
        https://bugs.webkit.org/show_bug.cgi?id=202960

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations: Changed expectation from Crash
	to Failure for imported/w3c/web-platform-tests/html/dom/idlharness.https.html

2019-10-14  Truitt Savell  <tsavell@apple.com>

        Mass Marking failing tests on Windows

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-10-14  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r251081.

        Broke macOS and iOS builds

        Reverted changeset:

        "transform-box: content-box, stroke-box missing"
        https://bugs.webkit.org/show_bug.cgi?id=201892
        https://trac.webkit.org/changeset/251081

2019-10-14  Dean Jackson  <dino@apple.com>

        Reset maxCanvasPixelMemory between tests
        https://bugs.webkit.org/show_bug.cgi?id=202941
        <rdar://problem/56260865>

        Reviewed by Wenson Hsieh.

        Swap the order of the tests, because a previous test might have
        already allocated canvas memory that is sitting around.

        * fast/canvas/canvas-too-large-to-draw.html:

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

        [Mac] Update fast/text/font-cursive-italic-cjk-2.html for Catalina
        https://bugs.webkit.org/show_bug.cgi?id=202779
        <rdar://problem/54317204>

        Reviewed by Alexey Proskuryakov.

        The platform-specific generic font family mappings changed. Luckily, we already had a (skipped) test that tests the new mappings.

        * platform/mac/TestExpectations:

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

        [Cocoa] REGRESSION (r245672): Contenteditable with optical sizing freezes Safari
        https://bugs.webkit.org/show_bug.cgi?id=202262

        Reviewed by Tim Horton.

        * fast/forms/contenteditable-font-optical-size-expected.txt: Added.
        * fast/forms/contenteditable-font-optical-size.html: Added.

2019-10-14  Russell Epstein  <russell_e@apple.com>

        Unreviewed, rolling out r251081.

        Broke macOS and iOS builds.

        Reverted changeset:

        "transform-box: content-box, stroke-box missing"
        https://bugs.webkit.org/show_bug.cgi?id=201892
        https://trac.webkit.org/changeset/251081

2019-10-14  Eric Carlson  <eric.carlson@apple.com>

        [ Mac ] REGRESSION (r243033) Assertion failed: m_logger Layout Test imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html is a flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=196517
        <rdar://problem/49540704>

        Unreviewed, unskipping a passing test.

        * platform/mac/TestExpectations: Unskip MediaStreamTrack-contentHint.html.

2019-10-14  Truitt Savell  <tsavell@apple.com>

        Remove expectations for fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html
        <rdar://problem/52699318>

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2019-10-14  Dirk Schulze  <krit@webkit.org>

        transform-box: content-box, stroke-box missing
        https://bugs.webkit.org/show_bug.cgi?id=201892

        Reviewed by Simon Fraser.

        * fast/css/transform-box-parsing.html:
        * svg/transforms/svg-transform-box-expected.html:
        * svg/transforms/svg-transform-box.html:
        * transforms/transform-box-expected.html: Added.
        * transforms/transform-box.html: Added.

2019-10-14  Rob Buis  <rbuis@igalia.com>

        Replace reftest scripts-height.html with script tests
        https://bugs.webkit.org/show_bug.cgi?id=159423

        Reviewed by Frédéric Wang.

        Remove the expected result as well.

        * mathml/presentation/scripts-height-expected.html: Removed.

2019-10-14  youenn fablet  <youenn@apple.com>

        Reuse existing web processes for running service workers
        https://bugs.webkit.org/show_bug.cgi?id=202195

        Reviewed by Chris Dumez.

        * http/tests/workers/service/resources/postmessage-after-sw-process-crash.js:
        (async.doTest):
        * http/tests/workers/service/resources/postmessage-after-terminate.js:
        (async.doTest):
        * http/tests/workers/service/resources/postmessage-after-terminating-hung-worker.js:
        (async.doTest):
        * http/wpt/service-workers/online.https.html:
        * http/wpt/service-workers/service-worker-different-process.https-expected.txt: Added.
        * http/wpt/service-workers/service-worker-different-process.https.html: Added.
        * http/wpt/service-workers/service-worker-process-worker.js: Added.

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

        [iOS] Crash in WebCore::DOMWindow::incrementScrollEventListenersCount
        https://bugs.webkit.org/show_bug.cgi?id=202878

        Reviewed by Alex Christensen.

        Added a regression test for the crash.

        * fast/events/scroll-event-on-document-without-window-expected.txt: Added.
        * fast/events/scroll-event-on-document-without-window.html: Added.

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

        Invoke callback registered by requestIdleCallback
        https://bugs.webkit.org/show_bug.cgi?id=202824

        Reviewed by Antti Koivisto.

        Added basic regression tests. The second test (requestidlecallback-is-not-called-when-canceled.html)
        found a spec bug (https://github.com/w3c/requestidlecallback/issues/83).

        * requestidlecallback/requestidlecallback-is-called-expected.txt: Added.
        * requestidlecallback/requestidlecallback-is-called.html: Added.
        * requestidlecallback/requestidlecallback-is-not-called-when-canceled-expected.txt: Added.
        * requestidlecallback/requestidlecallback-is-not-called-when-canceled.html: Added.

2019-10-11  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS Debug] Layout Test editing/execCommand/print.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=196654
        <rdar://problem/49652875>

        Removed the skip expectation since the test is no longer crashing in my local testing.

        * platform/ios-simulator-wk2/TestExpectations:

2019-10-11  Devin Rousso  <drousso@apple.com>

        Web Inspector: Debugger: support pattern blackboxing
        https://bugs.webkit.org/show_bug.cgi?id=198855

        Reviewed by Timothy Hatcher.

        * inspector/debugger/setShouldBlackboxURL.html:
        * inspector/debugger/setShouldBlackboxURL-expected.txt:

2019-10-11  Devin Rousso  <drousso@apple.com>

        Web Inspector: Elements: Computed: show shorthand properties in addition to longhand ones
        https://bugs.webkit.org/show_bug.cgi?id=200554

        Reviewed by Matt Baker.

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

2019-10-11  Andy Estes  <aestes@apple.com>

        [iOS] Unreviewed test gardening

        * platform/ios/TestExpectations: Removed failing expectation.
        * platform/ios/quicklook/numbers-09-expected.txt: Reset expected result.

2019-10-11  Andy Estes  <aestes@apple.com>

        [iOS] Unreviewed iPad test expectation gardening.

        Un-skip tests in http/tests/paymentrequest/ that no longer time out on iPad.

        * platform/ipad/TestExpectations:

2019-10-11  Dean Jackson  <dino@apple.com>

        REGRESSION (r244239) Layout Test fast/canvas/canvas-too-large-to-draw.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=202870
        <rdar://51862629>

        Reviewed by Simon Fraser.

        The output from this test depends on the amount of RAM on the system, so
        modify it to specify a limit for testing which will give reproducible results.

        * fast/canvas/canvas-too-large-to-draw-expected.txt:
        * fast/canvas/canvas-too-large-to-draw.html:
        * platform/ios/fast/canvas/canvas-too-large-to-draw-expected.txt: Removed.
        * platform/ipad/TestExpectations:

2019-10-11  Peng Liu  <peng.liu6@apple.com>

        Layout Test media/W3C/audio/events/event_progress.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181966
        <rdar://problem/51449034>

        Reviewed by Alexey Proskuryakov.

        Use the option {once: true} in addEventListener instead of a variable to avoid
        executing the event handler more than once.

        * media/W3C/audio/events/event_order_loadstart_progress.html:
        * media/W3C/audio/events/event_progress.html:
        * media/W3C/audio/events/event_progress_manual.html:
        * media/W3C/video/events/event_order_loadstart_progress.html:
        * media/W3C/video/events/event_progress.html:
        * media/W3C/video/events/event_progress_manual.html:

2019-10-11  Dean Jackson  <dino@apple.com>

        Layout Test fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html is a Flaky Failure
        https://bugs.webkit.org/show_bug.cgi?id=202867
        <rdar://52968736>

        Reviewed by Wenson Hsieh.

        From the failing results, it looks like the event listener for touchend was firing
        after the uiScriptController returned its result, which is strange.
        I was unable to reproduce this, so I rewrote the test to use UIHelper, which
        hopefully will improve the situation (although... is basically the same code).

        * fast/events/touch/ios/tap-with-passive-listener-inside-active-listener-expected.txt:
        * fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html:

2019-10-10  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Local Resource Overrides: UI for overriding image and font resource content
        https://bugs.webkit.org/show_bug.cgi?id=202016
        <rdar://problem/55541475>

        Reviewed by Devin Rousso.

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

        * http/tests/inspector/network/fetch-response-body.html:
        * http/tests/inspector/network/xhr-response-body.html:
        Renamed utilities.

2019-10-11  Dean Jackson  <dino@apple.com>

        Layout test fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=202863
        <rdar://51724211>

        Reviewed by Tim Horton.

        Another case where we are getting more touchmoves during a drag than we expected.
        However, this time we still want to listen, and we can't use { once: true } because
        there are multiple sequential drags. Instead, keep a list of the moves we've seen and
        only output the first one.

        Also, remove the coordinate logging for the move, since it might not be consistent.

        * fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener-expected.txt:
        * fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html:

2019-10-11  Chris Dumez  <cdumez@apple.com>

        Pages frequently fail to enter the back/forward cache due to frames with a quick redirect coming
        https://bugs.webkit.org/show_bug.cgi?id=202768
        <rdar://problem/56132022>

        Reviewed by Alex Christensen.

        Add lauout test coverage.

        * fast/history/page-cache-iframe-js-url-expected.txt: Added.
        * fast/history/page-cache-iframe-js-url.html: Added.

2019-10-11  Kate Cheney  <katherine_cheney@apple.com>

        Get StorageAccess API features working on SQLite database implementation (195422)
        https://bugs.webkit.org/show_bug.cgi?id=195422
        <rdar://problem/54213519>

        Reviewed by Brent Fulgham.

        This patch migrates tests in http/tests/storageAccess to use the ITP
        SQLite Database to ensure the storageAccess API features are working.
        Additionally, the Safari UI flow was manually tested for the database
        using tlstestwebkit.org (no automated tests exist for this).

        It also updates the test expectations for two tests that consistently
        timeout on the flakiness dashboard and will be looked into in a
        separate radar.

        Most storageAccess tests are skipped on ios because of incompatibility
        with recognizing user interaction.

        * http/tests/storageAccess/deny-storage-access-under-opener-database-expected.txt: Added.
        * http/tests/storageAccess/deny-storage-access-under-opener-database.html: Added.
        * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-database-expected.txt: Added.
        * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-database.html: Added.
        * http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture-database-expected.txt: Added.
        * http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture-database.html: Added.
        * http/tests/storageAccess/deny-without-prompt-preserves-gesture-database-expected.txt: Added.
        * http/tests/storageAccess/deny-without-prompt-preserves-gesture-database.html: Added.
        * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-database-expected.txt: Added.
        * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-database.html: Added.
        * http/tests/storageAccess/grant-with-prompt-preserves-gesture-database-expected.txt: Added.
        * http/tests/storageAccess/grant-with-prompt-preserves-gesture-database.html: Added.
        * http/tests/storageAccess/has-storage-access-crash-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-crash-database.html: Added.
        * http/tests/storageAccess/has-storage-access-false-by-default-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-false-by-default-database.html: Added.
        * http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-database.html: Added.
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction-database.html: Added.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-database.html: Added.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html: Added.
        * http/tests/storageAccess/remove-requesting-iframe-database-expected.txt: Added.
        * http/tests/storageAccess/remove-requesting-iframe-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-database.html: Added.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-database-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-database.html: Added.
        * http/tests/storageAccess/request-storage-access-crash-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-crash-database.html: Added.
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-database.html: Added.
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-database.html: Added.
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-database.html: Added.
        * http/tests/storageAccess/request-storage-access-same-origin-iframe-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-same-origin-iframe-database.html: Added.
        * http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-database.html: Added.
        * http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-database.html: Added.
        * http/tests/storageAccess/request-storage-access-top-frame-database-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-top-frame-database.html: Added.
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2019-10-11  Antti Koivisto  <antti@apple.com>

        Position::upstream/downstream should not need to call ensureLineBoxes
        https://bugs.webkit.org/show_bug.cgi?id=202203

        Reviewed by Zalan Bujtas.

        Some additional end of line whitespaces.

        * TestExpectations:

        Skip imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-013.html.

        This test starts failing because soft linebreak clears the trailing whitespace run.
        The failing behavior aligns simple path with the complex path. The existing textarea-pre-wrap-013.html
        test (which takes the complex path) is already skipped because of this.

        * platform/mac/fast/forms/targeted-frame-submission-expected.txt:
        * platform/mac/fast/forms/textarea-scroll-height-expected.txt:
        * platform/mac/fast/loader/text-document-wrapping-expected.txt:
        * platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
        * platform/mac/http/tests/misc/acid3-expected.txt:
        * platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:

2019-10-11  Dean Jackson  <dino@apple.com>

        Layout test fast/events/touch/ios/passive-by-default-on-document-and-window.html is a flaky failure on Internal iOS Testers
        https://bugs.webkit.org/show_bug.cgi?id=202858
        <rdar://51829520>

        Reviewed by Tim Horton.

        We can't guarantee how many touchmove events we'll get for a drag, so
        this was flaky. Easiest thing to do is remove the listeners, since they
        aren't an important part of the test. (We could have removed them on
        firing too, which we do for the similar test that exercises the case
        where we don't use the default options)

        * fast/events/touch/ios/passive-by-default-on-document-and-window-expected.txt:
        * fast/events/touch/ios/passive-by-default-on-document-and-window.html:

2019-10-11  Dean Jackson  <dino@apple.com>

        REGRESSION: fast/events/touch/ios/long-press-on-image.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=202845
        <rdar://51717197>

        Reviewed by Antoine Quint.

        This test failed because images no longer pop up action sheets, but
        instead use context menus.

        We no longer need to test the actions in the context menu here, since
        it is covered by the TestWebKitAPI/Tests/WebKitCocoa/ContextMenus test.

        However, we can still use this test to ensure we are getting a
        context menu on the correct element.

        * fast/events/touch/ios/long-press-on-image-expected.txt:
        * fast/events/touch/ios/long-press-on-image.html:
        * platform/iphone-7/fast/events/touch/force-press-on-link.html: This
        test currently fails and needs to be rewritten (rdar://problem/52699530),
        but at least update it to use the new data from the Internal API.

2019-10-11  Peng Liu  <peng.liu6@apple.com>

        Layout Test media/W3C/audio/events/event_progress.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181966

        Reviewed by Eric Carlson.

        It is possible that video/audio elements fire "progress" event again
        when the event handler is still processing the previous "progress" event.
        We need to ignore all the events except the first one to make sure
        the test cases generate consistent output.

        In addition, this patch fixes some errors in JS file names and function parameters.

        * http/tests/resources/js-test-pre.js:
        (isSuccessfullyParsed):
        * media/W3C/audio/events/event_order_loadstart_progress.html:
        * media/W3C/audio/events/event_progress.html:
        * media/W3C/audio/events/event_progress_manual.html:
        * media/W3C/video/events/event_order_loadstart_progress.html:
        * media/W3C/video/events/event_progress.html:
        * media/W3C/video/events/event_progress_manual.html:
        * media/W3C/w3cwrapper.js:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * resources/js-test-pre.js:
        (isSuccessfullyParsed):

2019-10-11  Bjorn Melinder  <bjornm@spotify.com>

        OfflineAudioContext does not validate allocation of destination buffer
        https://bugs.webkit.org/show_bug.cgi?id=177259

        Reviewed by Eric Carlson.

        Moved the allocation of the destination buffer to the static
        OfflineAudioContext::create method where we are able to handle a failed
        allocation properly and return an Exception. This change handles both
        negative lengths as well as too large lengths where the memory cannot
        be allocated.

        * webaudio/offlineaudiocontext-constructor-expected.txt:
        * webaudio/offlineaudiocontext-constructor.html:

2019-10-11  Chris Lord  <clord@igalia.com>

        Flaky test: imported/w3c/web-platform-tests/offscreen-canvas/compositing/2d.composite.canvas.destination-in.html
        https://bugs.webkit.org/show_bug.cgi?id=202801

        Reviewed by Alexey Proskuryakov.

        More OffscreenCanvas tests failing due to unhandled Promise rejection.
        See also bug #202782.

        * TestExpectations:

2019-10-11  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK and WPE gardening after r251001. Removing crash expectations after
        bug 202784 was fixed.

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

2019-10-10  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        Import css/css-images WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=200210

        Reviewed by Simon Fraser.

        Import css/css-images tests

        * TestExpectations: Mark the new imported ref-tests that fail and a test that crashes.

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

        [Cocoa] font-family:system-ui on Chinese systems don't get Chinese quote marks
        https://bugs.webkit.org/show_bug.cgi?id=202778
        <rdar://problem/52594556>

        Reviewed by Simon Fraser.

        * platform/mac/TestExpectations:

2019-10-10  Chris Dumez  <cdumez@apple.com>

        Unreviewed, tweak test to address flakiness on WK1.

        * media/media-source/media-source-page-cache-expected.txt:
        * media/media-source/media-source-page-cache.html:

2019-10-10  Youenn Fablet  <youenn@apple.com>

        Do not timeout a load intercepted by service worker that receives a response
        https://bugs.webkit.org/show_bug.cgi?id=202787

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/fetch-timeout-worker.js: Added.
        (async.doTest):
        * http/wpt/service-workers/fetch-timeout.https-expected.txt: Added.
        * http/wpt/service-workers/fetch-timeout.https.html: Added.
        * http/wpt/service-workers/resources/lengthy-pass.py:
        (main):

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

        FontFaceSet's ready promise is not always resolved
        https://bugs.webkit.org/show_bug.cgi?id=202548

        Reviewed by Youenn Fablet.

        * fast/text/fontfaceset-ready-not-fired-expected.txt: Added.
        * fast/text/fontfaceset-ready-not-fired.html: Added.
        * fast/text/fontfaceset-ready-not-fired-2-expected.txt: Added.
        * fast/text/fontfaceset-ready-not-fired-2.html: Added.

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

        pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html is failing after r250361
        https://bugs.webkit.org/show_bug.cgi?id=202777
        <rdar://problem/56128421>

        Reviewed by Tim Horton.

        This layout test is intended to verify that pinching to zoom out in an element with `touch-action: pinch-zoom`
        will cause the page scale to change (i.e. decrease). This test works on iPhone, where the initial-scale meta
        viewport property is respected. However, a desktop viewport configuration is used by default on iPad, which
        ignores the initial-scale property by default.

        Prior to r250361, we would always try and scale down content to fit within the viewport, such that the initial
        scale in this layout test on iPad would be approximately 0.384; this meant that the test would pass, regardless
        of whether it even attempted to pinch zoom at all, since it would always pass the `pageScale != 1` assertion.

        However, after r250361, we now no longer attempt to scale down to fit the viewport when the content width is
        excessively large (the maximum width breakpoint is 1920px), which makes the initial scale 1. This layout test
        makes the content width 2000px, which exceeds this maximum width limit and causes us to avoid shrinking to fit.
        This means that we'll end up failing the pageScale assertion and timing out as a result.

        To fix this, simply mark the test as `contentMode=mobile`, such that even on iPad, we'll respect the
        initial-scale meta viewport property, and the test will actually pinch to zoom the page out as expected.

        * pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html:

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

        Support programmatic paste requests on macOS
        https://bugs.webkit.org/show_bug.cgi?id=202773
        <rdar://problem/48957166>

        Reviewed by Tim Horton.

        Refactors existing layout tests for programmatic paste requests on iOS, such that they now run in both iOS and
        macOS. See below for more details.

        * TestExpectations:
        * editing/pasteboard/dom-paste/dom-paste-confirmation-expected.txt: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation-expected.txt.
        * editing/pasteboard/dom-paste/dom-paste-confirmation.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation.html.
        * editing/pasteboard/dom-paste/dom-paste-consecutive-confirmations-expected.txt: Added.
        * editing/pasteboard/dom-paste/dom-paste-consecutive-confirmations.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-consecutive-confirmations.html.
        * editing/pasteboard/dom-paste/dom-paste-rejection-expected.txt: Added.
        * editing/pasteboard/dom-paste/dom-paste-rejection.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-rejection.html.
        * editing/pasteboard/dom-paste/dom-paste-requires-user-gesture-expected.txt: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-requires-user-gesture-expected.txt.
        * editing/pasteboard/dom-paste/dom-paste-requires-user-gesture.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-requires-user-gesture.html.
        * editing/pasteboard/dom-paste/dom-paste-same-origin-expected.txt: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-same-origin-expected.txt.
        * editing/pasteboard/dom-paste/dom-paste-same-origin.html: Renamed from LayoutTests/editing/pasteboard/ios/dom-paste-same-origin.html.
        * editing/pasteboard/dom-paste/resources/dom-paste-helper.js: Added.

        Re-word some of these layout tests' descriptions to reference "clicks or taps", instead of just "taps", and also
        replace mentions of "callout bars" with platform-agnostic "menus".

        (return.new.Promise.):
        (async._waitForOrTriggerPasteMenu):
        (async.triggerPasteMenuAfterActivatingLocation):
        (async.waitForPasteMenu):

        Refactor these testing helpers to support both iOS and macOS:

        (1) Replace code that finds callout bar menu items and synthesizes taps on iOS, with code that instead chooses a
        menu item with the given title (in this case, "Paste"). This is supported on both macOS and iOS, where we invoke
        the NSMenuItem's action and dismiss the menu item, and find and tap the callout bar menu item, respectively.

        (2) Implement UIScriptController::activateAtPoint, which is used as a cross-platform way of activating an
        element at the given point. On iOS, this taps the given location, and on macOS, this moves the mouse to that
        location and then simulates a click (mouse down and mouse up). In a subsequent patch, we should additionally use
        this in the implementation of UIHelper.activateAt().

        * editing/pasteboard/ios/dom-paste-consecutive-confirmations-expected.txt: Removed.
        * editing/pasteboard/ios/dom-paste-rejection-expected.txt: Removed.
        * editing/pasteboard/ios/resources/dom-paste-helper.js: Removed.
        * platform/ios-wk2/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:

        Skip editing/pasteboard/dom-paste everywhere for now, except for macOS and iOS WebKit2.

2019-10-10  Chris Lord  <clord@igalia.com>

        Flaky Test: imported/w3c/web-platform-tests/offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource.html
        https://bugs.webkit.org/show_bug.cgi?id=202782

        Reviewed by Youenn Fablet.

        Some OffscreenCanvas tests are failing due to unhandled Promise
        rejection from unimplemented API. Mark this, and other tests that are
        affected with DumpJSConsoleLogInStdErr.

        * TestExpectations:

2019-10-10  Chris Dumez  <cdumez@apple.com>

        DOMCacheStorage should not prevent pages from entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202608

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/navigation/page-cache-domcachestorage-pending-promise-expected.txt: Added.
        * http/tests/navigation/page-cache-domcachestorage-pending-promise.html: Added.

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

        Unreviewed GTK and WPE gardening after r250954.

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

2019-10-09  Yury Semikhatsky  <yurys@chromium.org>

        LayoutTest inspector/dom-debugger/node-removed.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=154610
        <rdar://problem/24801209>

        Reviewed by Matt Baker.

        Reenabled the test on all platforms.

        The test was missing call to Debugger.setBreakpointsActive. Apparently at the time
        it was written calling Debugger.setBreakpoint automatically activated breakpoint but
        the behavior changed over time. I also removed some unnecessary code.

        * inspector/dom-debugger/node-removed-expected.txt:
        * inspector/dom-debugger/node-removed.html:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:

2019-10-09  Myles C. Maxfield  <mmaxfield@apple.com>

        Make fast/text/complex-initial-advance.html more robust
        https://bugs.webkit.org/show_bug.cgi?id=202708

        Unreviewed follow up to r250884.

        Makes test robust enough to pass on Mojave.

        * fast/text/complex-initial-advance-expected.html:
        * fast/text/complex-initial-advance.html:

2019-10-09  John Wilander  <wilander@apple.com>

        IsLoggedIn: Add as experimental feature
        https://bugs.webkit.org/show_bug.cgi?id=202707
        <rdar://problem/56095064>

        Reviewed by Brent Fulgham and Chris Dumez.

        IsLoggedIn was proposed to the WebAppSec WG at TPAC 2019.
        So far there is only an explainer posted to the mailing list:
        https://lists.w3.org/Archives/Public/public-webappsec/2019Sep/0004.html

        * http/tests/is-logged-in/available-in-secure-contexts.https-expected.txt: Added.
        * http/tests/is-logged-in/available-in-secure-contexts.https.html: Added.
        * http/tests/is-logged-in/unavailable-in-insecure-contexts-expected.txt: Added.
        * http/tests/is-logged-in/unavailable-in-insecure-contexts.html: Added.
        * platform/ios-device-wk1/TestExpectations:
        * platform/ios-simulator-wk1/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/wincairo-wk1/TestExpectations:

2019-10-09  Zalan Bujtas  <zalan@apple.com>

        [iOS] LayoutTest fast/events/touch/ios/double-tap-for-double-click2.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=202765
        <rdar://problem/56123067>

        Reviewed by Wenson Hsieh.

        Currently when a dblclick handler is dynamically registered while executing the click handler, we don't always pick up the newly added handler (see webkit.org/b/202766).
        Modify the test so that it passes consistently (and still preserve the dynamic behavior).

        * fast/events/touch/ios/double-tap-for-double-click2.html:

2019-10-09  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Move the mock testing entrance to Internals
        https://bugs.webkit.org/show_bug.cgi?id=202560
        <rdar://problem/55973793>

        Reviewed by Chris Dumez.

        * http/wpt/webauthn/ctap-hid-failure.https.html:
        * http/wpt/webauthn/ctap-hid-success.https.html:
        * http/wpt/webauthn/ctap-nfc-failure.https.html:
        * http/wpt/webauthn/idl.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-u2f.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-local.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-nfc.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-u2f.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-local.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-nfc.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-u2f.https.html:
        * http/wpt/webauthn/resources/public-key-credential-ip-address.https.html:

2019-10-09  Dean Jackson  <dino@apple.com>

        Layout test fast/events/touch/ios/passive-by-default-overridden-on-document-and-window.html is a flaky failure on Internal iOS testers
        https://bugs.webkit.org/show_bug.cgi?id=202770
        <rdar://51715312>

        Reviewed by Megan Gardner.

        Remove the touchmove listeners after firing once, because we can't
        tell exactly how many we'll get for a drag.

        * fast/events/touch/ios/passive-by-default-overridden-on-document-and-window.html:

2019-10-09  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: include size of index records in size estimate of put/add task
        https://bugs.webkit.org/show_bug.cgi?id=202483

        Reviewed by Geoffrey Garen.

        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * storage/indexeddb/request-size-estimate-expected.txt: Added.
        * storage/indexeddb/request-size-estimate.html: Added.
        * storage/indexeddb/resources/request-size-estimate.js: Added.
        (randomKey):
        (randomPropertyValue):
        (createObject):
        (prepareDatabase):
        (onOpenSuccess):

2019-10-09  Chris Dumez  <cdumez@apple.com>

        Youtube.com is unable to enter the back/forward cache on macOS
        https://bugs.webkit.org/show_bug.cgi?id=202754
        <rdar://problem/56117666>

        Reviewed by Eric Carlson.

        Add layout test coverage.

        * media/media-source/media-source-page-cache-expected.txt: Added.
        * media/media-source/media-source-page-cache.html: Added.

2019-10-09  Truitt Savell  <tsavell@apple.com>

        Mark crypto/workers/subtle/aes-indexeddb.html as a timeout on Mojave Release wk2
        https://bugs.webkit.org/show_bug.cgi?id=202500

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-10-09  Zalan Bujtas  <zalan@apple.com>

        RunResolver::rangeForRendererWithOffsets should check for range end
        https://bugs.webkit.org/show_bug.cgi?id=202761
        <rdar://problem/55917924>

        Reviewed by Antti Koivisto.

        * fast/text/simple-line-layout-range-check-end-expected.txt: Added.
        * fast/text/simple-line-layout-range-check-end.html: Added.

2019-10-09  Antoine Quint  <graouts@apple.com>

        [iOS] Layout Test fast/events/touch/ios/touchstart-and-touchend-outside-touchmove-target.html is Timing Out
        https://bugs.webkit.org/show_bug.cgi?id=202759
        <rdar://problem/56122388>

        Reviewed by Dean Jackson.

        This test would be run after fast/events/touch/ios/touchmove-cancelable-after-touchstart.html which does not
        cleanly finish its simulated touch gesture with a touchend. Now that it does both tests can run one after the
        other reliably.

        * fast/events/touch/ios/touchmove-cancelable-after-touchstart.html:

2019-10-09  Alicia Boya García  <aboya@igalia.com>

        [MSE][GStreamer] Fix video sometimes not appearing
        https://bugs.webkit.org/show_bug.cgi?id=201401

        Reviewed by Xabier Rodriguez-Calvar.

        Added an exact expectation picture to avoid errors in the test runner
        (only a fuzzy match is expected, and different platforms render video
        with slightly different colors).

        * platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible-expected.html: Added.
        * platform/mac/TestExpectations:

2019-10-09  Dean Jackson  <dino@apple.com>

        REGRESSION (r250755): fast/events/ios/ipad/fast-click-not-always.html is Failing
        https://bugs.webkit.org/show_bug.cgi?id=202760
        <rdar://56079585>

        Reviewed by Antoine Quint.

        Update the preference name.

        * fast/events/ios/ipad/fast-click-not-always.html:

2019-10-09  Alicia Boya García  <aboya@igalia.com>

        Unreviewed minor WinCairo test gardening
        https://bugs.webkit.org/show_bug.cgi?id=187762

        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-10-09  Eric Carlson  <eric.carlson@apple.com>

        [ Mac WK2 ] Layout Test fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196400
        <rdar://problem/49567579>

        Reviewed by Youenn Fablet.

        * fast/mediastream/MediaStreamTrack-getSettings.html: Cleanup test.
        * platform/mac-wk2/TestExpectations: Unskip test.

2019-10-09  Dean Jackson  <dino@apple.com>

        Layout Test webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html is failing since ANGLE roll
        https://bugs.webkit.org/show_bug.cgi?id=201784
        <rdar://problem/55358159>

        Reviewed by Antoine Quint.

        This test needed updating.

        * platform/ios/TestExpectations:
        * webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html:

2019-10-09  Alicia Boya García  <aboya@igalia.com>

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

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Added.
        * platform/gtk/accessibility/roles-exposed-expected.txt:
        * platform/gtk/fast/tokenizer/script_extra_close-expected.txt:
        * platform/wpe/TestExpectations:

2019-10-09  Miguel Gomez  <magomez@igalia.com>

        Unreviewed WPE gardening after r250889.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:

2019-10-09  youenn fablet  <youenn@apple.com>

        Remove testRunner.setWebRTCUnifiedPlanEnabled
        https://bugs.webkit.org/show_bug.cgi?id=202700

        Reviewed by Eric Carlson.

        Remove legacy tests and migrate simulcast test to unified plan.

        * fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html:
        * platform/gtk/TestExpectations:
        * webrtc/simulcast-h264.html:
        * webrtc/video-addLegacyTransceiver.html: Removed.
        * webrtc/video-with-receiver.html: Removed.

2019-10-09  Antti Koivisto  <antti@apple.com>

        [CSS Shadow Parts] Allow exporting single part with multiple names using exportparts attribute
        https://bugs.webkit.org/show_bug.cgi?id=202719

        Reviewed by Ryosuke Niwa.

        * fast/css/shadow-parts/exportparts-syntax-expected.txt:

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

        Partially undo r250811
        https://bugs.webkit.org/show_bug.cgi?id=202715
        <rdar://problem/56084287>

        Reviewed by Chris Dumez.

        Some rebaselines.

        * crypto/workers/subtle/ec-postMessage-worker-expected.txt:
        * crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
        * crypto/workers/subtle/rsa-postMessage-worker-expected.txt:

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

        WebGPU tests are skipped on iOS
        https://bugs.webkit.org/show_bug.cgi?id=192889

        Unreviewed test expectation updates.

        Unskip WebGPU tests on iOS devices while skipping on simulator.

        * platform/ios-simulator/TestExpectations:
        * platform/ios/TestExpectations:

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

        Make fast/text/complex-initial-advance.html more robust
        https://bugs.webkit.org/show_bug.cgi?id=202708
        <rdar://problem/49539493>

        Reviewed by Tim Horton.

        We are hitting floating point precision issues. Fortunately, the part of the text that is
        hitting these issues isn't actually necessary for the test.

        * fast/text/complex-initial-advance-expected.html:
        * fast/text/complex-initial-advance.html:
        * platform/mac/TestExpectations:

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

        Web Inspector: Canvas: modifications to shader modules can be shared between vertex/fragment shaders
        https://bugs.webkit.org/show_bug.cgi?id=202031

        Reviewed by Dean Jackson.

        * inspector/canvas/updateShader-webgpu-sharedVertexFragment.html: Added.
        * inspector/canvas/updateShader-webgpu-sharedVertexFragment-expected.txt: Added.

        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

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

        Web Inspector: inspector/layers/layers-for-node.html and  inspector/timeline/line-column.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=202649

        Reviewed by Devin Rousso.

        Unflake a couple of inspector protocol tests. r250655 replaced Timer-based queue
        with RunLoop-based one for inspector message dispatching. The tests apparently relied
        on the timing of the message delivery and had been less flaky before. Updated the tests
        to wait for explicit signals rather than relying on event timing.

        * inspector/layers/layers-for-node-expected.txt:
        * inspector/layers/layers-for-node.html: Updated the test to wait for the first
        LayerTree.layerTreeDidChange event before requesting initial layer tree.

        Also after adding a node wait for next RAF to avoid flakiness.

        * inspector/timeline/line-column-expected.txt:
        * inspector/timeline/line-column.html: There a style recalc event
        which appears intermittently in the recorded profile making the test
        flaky. To avoid that dump only events that are always present.

2019-10-08  Kate Cheney  <katherine_cheney@apple.com>

        Implement Telemetry and Dumping Routines for SQLite backend (195088)
        https://bugs.webkit.org/show_bug.cgi?id=195088
        <rdar://problem/54213407>

        Reviewed by John Wilander.

        Updated the current testing for telemetry which only tested 3
        statistics. With this patch it now tests 10 statistics.
        * http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html: Added.
        * http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html: Added.

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

        [CSS Shadow Parts] Add test for exportparts list syntax
        https://bugs.webkit.org/show_bug.cgi?id=202695

        Reviewed by Ryosuke Niwa.

        The test shows that we don't handle exporting same part under multiple names correctly.

        * fast/css/shadow-parts/exportparts-syntax-expected.txt: Added.
        * fast/css/shadow-parts/exportparts-syntax.html: Added.

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

        [CSS Shadow Parts] Fix style invalidation with class selector and ::before and ::after
        https://bugs.webkit.org/show_bug.cgi?id=202694

        Reviewed by Ryosuke Niwa.

        * fast/css/shadow-parts/invalidation-class-before-after-expected.txt: Added.
        * fast/css/shadow-parts/invalidation-class-before-after.html: Added.

2019-10-08  youenn fablet  <youenn@apple.com>

        MediaStreamTrack should be a PlatformMediaSessionClient instead of MediaStream
        https://bugs.webkit.org/show_bug.cgi?id=202631

        Reviewed by Eric Carlson.

        * fast/mediastream/audio-track-enabled.html:

2019-10-08  Brady Eidson  <beidson@apple.com>

        Service Worker Fetch events should time out.
        https://bugs.webkit.org/show_bug.cgi?id=202188

        Reviewed by Alex Christensen.

        * http/tests/workers/service/basic-timeout.https-expected.txt: Added.
        * http/tests/workers/service/basic-timeout.https.html: Added.
        * http/tests/workers/service/resources/basic-timeout-worker.js: Added.
        (event.event.request.url.indexOf):
        * http/tests/workers/service/resources/basic-timeout.js: Added.
        (async.test.finishThisTest):
        (async.test.try):
        (async.test.try.checkSuccessAgain):
        (async.test):
        * http/tests/workers/service/resources/succeed-fallback-check.php: Added.
        * http/tests/workers/service/resources/timeout-fallback.html: Added.

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

        Accept two values in the overflow shorthand
        https://bugs.webkit.org/show_bug.cgi?id=184691

        Reviewed by Simon Fraser.

        * fast/css/cssText-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-overflow-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-overflow.html:
        * platform/ios/fast/css/invalidation-errors-2-expected.txt:
        * platform/ios/fast/css/invalidation-errors-expected.txt:
        * platform/mac/fast/css/invalidation-errors-2-expected.txt:
        * platform/mac/fast/css/invalidation-errors-expected.txt:

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

        Unreviewed test gardening

        * TestExpectations:

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

        Unreviewed, test gardening

        * TestExpectations:
        * platform/ios-simulator/TestExpectations:

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

        fast/events/touch/ios/mouse-events-dispatch-with-touch.html is timing out on iOS
        https://bugs.webkit.org/show_bug.cgi?id=202688
        <rdar://problem/52700396>

        Reviewed by Dean Jackson.

        Since this test was originally added, the behavior of simulated mouse events changed to not dispatch any event when there is more than a
        single active touch on the screen. This test needs to be adapted to this new behavior.

        * fast/events/touch/ios/mouse-events-dispatch-with-touch.html:

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

        Simplify data channel buffer amount low tests
        https://bugs.webkit.org/show_bug.cgi?id=202693

        Reviewed by Eric Carlson.

        Neither of these tests need to handle a remoteChannel.
        Remove the related code and remove variables that are also unneeded.

        * webrtc/datachannel/bufferedAmountLowThreshold-default.html:
        * webrtc/datachannel/bufferedAmountLowThreshold.html:

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

        [Clipboard API] Introduce bindings for the async Clipboard API
        https://bugs.webkit.org/show_bug.cgi?id=202622
        <rdar://problem/56038126>

        Reviewed by Ryosuke Niwa.

        * editing/async-clipboard/clipboard-interfaces-expected.txt: Added.
        * editing/async-clipboard/clipboard-interfaces.html: Added.

        Add a new test to sanity check the new clipboard API interfaces and interface extensions.

        * editing/async-clipboard/clipboard-wrapper-stays-alive-expected.txt: Added.
        * editing/async-clipboard/clipboard-wrapper-stays-alive.html: Added.

        Add a new test to make sure that the clipboard wrapper stays alive between GC passes, even when the clipboard's
        navigator is kept alive, independently of its window object.

        * fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/ios-wk1/TestExpectations:
        * platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/win/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/wincairo/fast/dom/navigator-detached-no-crash-expected.txt:

        Update an existing layout test to include "navigator.clipboard".

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

        Import autofocus Web Platform Tests
        https://bugs.webkit.org/show_bug.cgi?id=202641

        Reviewed by Ryosuke Niwa.

        * platform/ios-wk2/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt: Added.

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

        [CSS Shadow Parts] Implement style invalidation
        https://bugs.webkit.org/show_bug.cgi?id=202632

        Reviewed by Ryosuke Niwa.

        Add some tests to verify class mutations and combinators with ::part and exportpart.

        * fast/css/shadow-parts/invalidation-class-descendant-combinator-expected.txt: Added.
        * fast/css/shadow-parts/invalidation-class-descendant-combinator-export-expected.txt: Added.
        * fast/css/shadow-parts/invalidation-class-descendant-combinator-export.html: Added.
        * fast/css/shadow-parts/invalidation-class-descendant-combinator.html: Added.
        * fast/css/shadow-parts/invalidation-class-sibling-combinator-expected.txt: Added.
        * fast/css/shadow-parts/invalidation-class-sibling-combinator-export-expected.txt: Added.
        * fast/css/shadow-parts/invalidation-class-sibling-combinator-export.html: Added.
        * fast/css/shadow-parts/invalidation-class-sibling-combinator.html: Added.

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

        [CSS Shadow Parts] Internal shadow pseudo elements should work with ::part
        https://bugs.webkit.org/show_bug.cgi?id=202620

        Reviewed by Ryosuke Niwa.

        Note that imported/w3c/web-platform-tests/css/css-shadow-parts/interaction-with-pseudo-elements.html placeholder subtest still
        won't pass because we we don't support getComputedStyle for internal pseudo elements. Visually it now work fully.

        * TestExpectations:

        Unskip imported/w3c/web-platform-tests/css/css-shadow-parts/interaction-with-placeholder.html

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

        Add IDL for requestIdleCallback
        https://bugs.webkit.org/show_bug.cgi?id=202653

        Reviewed by Geoffrey Garen.

        Added basic tests for validating requestIdleCallback is enabled or disabled, and its identifier starts at 1 in each document.

        * requestidlecallback: Added.
        * requestidlecallback/requestidlecallback-enabled-expected.txt: Added.
        * requestidlecallback/requestidlecallback-enabled.html: Added.
        * requestidlecallback/requestidlecallback-id-expected.txt: Added.
        * requestidlecallback/requestidlecallback-id.html: Added.
        * requestidlecallback/requestidlecallback-not-enabled-expected.txt: Added.
        * requestidlecallback/requestidlecallback-not-enabled.html: Added.

2019-10-07  Jiewen Tan  <jiewen_tan@apple.com>

        Only wrapping CryptoKeys for IDB during serialization
        https://bugs.webkit.org/show_bug.cgi?id=202500
        <rdar://problem/52445927>

        Reviewed by Chris Dumez.

        Adds a new test aes-indexeddb.html to do idb in workers and makes
        other tests more deterministic.

        * crypto/workers/subtle/aes-indexeddb-expected.txt: Added.
        * crypto/workers/subtle/aes-indexeddb.html: Added.
        * crypto/workers/subtle/ec-postMessage-worker-expected.txt:
        * crypto/workers/subtle/ec-postMessage-worker.html:
        * crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
        * crypto/workers/subtle/hrsa-postMessage-worker.html:
        * crypto/workers/subtle/resources/aes-indexeddb.js: Added.
        * crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
        * crypto/workers/subtle/rsa-postMessage-worker.html:

2019-10-07  Kate Cheney  <katherine_cheney@apple.com>

        Domain relationships in the ITP Database should be inserted in a single query and ignore repeat insert attempts. (202604)
        https://bugs.webkit.org/show_bug.cgi?id=202604
        <rdar://problem/55995831>

        Reviewed by Chris Dumez.

        Edited the merge-statistics tests to also test the list-insertion
        change made in this patch. Also added a new test to ensure repeat
        inserts only result in one entry in the database.

        * http/tests/resourceLoadStatistics/many-inserts-only-insert-once-expected.txt: Added.
        * http/tests/resourceLoadStatistics/many-inserts-only-insert-once.html: Added.
        * http/tests/resourceLoadStatistics/merge-statistic-does-not-overwrite-database.html:
        * http/tests/resourceLoadStatistics/merge-statistic-does-overwrite-database-expected.txt:
        * http/tests/resourceLoadStatistics/merge-statistic-does-overwrite-database.html:
        * http/tests/resourceLoadStatistics/merge-statistic-does-partially-overwrite-database.html:

2019-10-07  Sihui Liu  <sihui_liu@apple.com>

        ASSERTION FAILED: m_transactionOperationsInProgressQueue.first() == &operation in IDBTransaction::operationCompletedOnClient
        https://bugs.webkit.org/show_bug.cgi?id=202552

        Reviewed by Alex Christensen.

        * storage/indexeddb/resources/storage-limit.js:
        (onOpenSuccess.request.onerror):
        * storage/indexeddb/storage-limit-expected.txt:

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

        focus pseudo class should match a shadow host whose shadow tree contains the focused element
        https://bugs.webkit.org/show_bug.cgi?id=202432

        Reviewed by Antti Koivisto.

        Added W3C style testharness tests and ref tests.

        * fast/shadow-dom/direct-focus-pseudo-does-not-match-in-author-stylesheet-expected.txt: Added.
        * fast/shadow-dom/direct-focus-pseudo-does-not-match-in-author-stylesheet.html: Added.
        * fast/shadow-dom/focus-pseudo-matches-on-shadow-host-expected.txt: Added.
        * fast/shadow-dom/focus-pseudo-matches-on-shadow-host.html: Added.
        * fast/shadow-dom/focus-pseudo-on-shadow-host-1-expected.html: Added.
        * fast/shadow-dom/focus-pseudo-on-shadow-host-1.html: Added.
        * fast/shadow-dom/focus-pseudo-on-shadow-host-2-expected.html: Added.
        * fast/shadow-dom/focus-pseudo-on-shadow-host-2.html: Added.
        * fast/shadow-dom/focus-pseudo-on-shadow-host-3-expected.html: Added.
        * fast/shadow-dom/focus-pseudo-on-shadow-host-3.html: Added.

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

        DOMCache should not prevent pages from entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202590

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * TestExpectations:
        * http/tests/navigation/page-cache-domcache-pending-promise-expected.txt: Added.
        * http/tests/navigation/page-cache-domcache-pending-promise.html: Added.

2019-10-07  Alexey Shvayka  <shvaikalesh@gmail.com>

        Sync web-platform-tests/css/css-overflow from upstream
        https://bugs.webkit.org/show_bug.cgi?id=202635

        Reviewed by Youenn Fablet.

        Sync web-platform-tests/css/css-overflow from upstream 819a234d3dd3.

        * TestExpectations:

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

        PendingImageBitmap should not prevent entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202585

        Reviewed by Tim Horton.

        Add layout test coverage.

        * TestExpectations:
        * fast/history/page-cache-createImageBitmap-expected.txt: Added.
        * fast/history/page-cache-createImageBitmap.html: Added.

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

        [macOS WK2 Debug ] Flaky Test: animations/play-state-in-shorthand.html
        https://bugs.webkit.org/show_bug.cgi?id=192501

        Reviewed by Simon Fraser.

        This test used to rely on timers to check the computed style at various animation times and also to check the "animation-play-state"
        to "paused" via the "animation" shorthand CSS property. This was flaky by design since timers could not fire with high enough fidelity
        to ensure the animation time matched the expectation. With the availability of the Web Animations API, we can simply use the "playState"
        property on the Animation object reflecting the CSS animation to check that the change is accounted for.

        * animations/play-state-in-shorthand-expected.txt:
        * animations/play-state-in-shorthand.html:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac/TestExpectations:

2019-10-07  Dirk Schulze  <krit@webkit.org>

        clip-path: <geometry-box> mapping incorrect
        https://bugs.webkit.org/show_bug.cgi?id=202075

        Reviewed by Simon Fraser.

        For HTML elements:
        - stroke-box, view-box consistently compute to border-box
        - fill-box computes to content-box

        * css3/masking/clip-path-border-radius-fill-box-001-expected.html: Added.
        * css3/masking/clip-path-border-radius-fill-box-001.html: Added.
        * css3/masking/clip-path-border-radius-stroke-box-000-expected.html: Added.
        * css3/masking/clip-path-border-radius-stroke-box-000.html: Added.
        * css3/masking/clip-path-border-radius-view-box-000-expected.html: Added.
        * css3/masking/clip-path-border-radius-view-box-000.html: Added.

2019-10-07  Chris Lord  <clord@igalia.com>

        Import OffscreenCanvas Web Platform Tests
        https://bugs.webkit.org/show_bug.cgi?id=202513

        Reviewed by Žan Doberšek.

        * TestExpectations:

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

        attachShadow should support attaching a shadow root to a main element
        https://bugs.webkit.org/show_bug.cgi?id=197726

        Reviewed by Antti Koivisto.

        Added a test for attachShadow.

        * fast/shadow-dom/attach-shadow-to-elements-expected.txt: Added.
        * fast/shadow-dom/attach-shadow-to-elements.html: Added.

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

        Allow pages using EventSource to enter the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202370
        <rdar://problem/55853142>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/tests/eventsource/eventsource-page-cache-connected-expected.txt: Added.
        * http/tests/eventsource/eventsource-page-cache-connected.html: Added.
        * http/tests/eventsource/eventsource-page-cache-connecting-expected.txt: Added.
        * http/tests/eventsource/eventsource-page-cache-connecting.html: Added.
        * http/tests/eventsource/resources/infinite-event-stream.php: Added.

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

        ServiceWorkerContainer should never prevent a page from entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202603

        Reviewed by Geoff Garen.

        Add layout test coverage.

        * http/tests/workers/service/page-cache-service-worker-pending-promise.https-expected.txt: Added.
        * http/tests/workers/service/page-cache-service-worker-pending-promise.https.html: Added.

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

        Allow pages using IDBIndex to enter the PageCache
        https://bugs.webkit.org/show_bug.cgi?id=202430
        <rdar://problem/55887918>

        Reviewed by Geoffrey Garen.

        Extend layout test coverage.

        * storage/indexeddb/IDBTransaction-page-cache-expected.txt:
        * storage/indexeddb/IDBTransaction-page-cache.html:

2019-10-04  Truitt Savell  <tsavell@apple.com>

        Layout Test imported/w3c/web-platform-tests/2dcontext/line-styles/2d.line.cap.round.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=202598

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-10-04  Joonghun Park  <jh718.park@samsung.com>

        Negative radii in radial gradients should be rejected.
        https://bugs.webkit.org/show_bug.cgi?id=202412

        Per the spec, https://drafts.csswg.org/css-images-3/#radial-gradients
        "Negative values are invalid.",
        we reject negative radii values in radial-gradient.

        This patch rejects negative radii during radial-gradient parsing
        for both webkit prefixed and non-prefixed ones.

        Reviewed by Antti Koivisto.

        * imported/blink/css-parser/webkit-gradient-expected.txt: Added.
        * imported/blink/css-parser/webkit-gradient.html: Added.

2019-10-04  youenn fablet  <youenn@apple.com>

        AbortSignal does not always emit the abort signal
        https://bugs.webkit.org/show_bug.cgi?id=201871
        <rdar://problem/55451712>

        Reviewed by Chris Dumez.

        * http/tests/fetch/abort-signal-gc-expected.txt: Added.
        * http/tests/fetch/abort-signal-gc.html: Added.

2019-10-04  youenn fablet  <youenn@apple.com>

        Allow to suspend RTCPeerConnection when not connected
        https://bugs.webkit.org/show_bug.cgi?id=202403

        Reviewed by Chris Dumez.

        * webrtc/datachannel/datachannel-page-cache-expected.txt: Added.
        * webrtc/datachannel/datachannel-page-cache-send-expected.txt: Added.
        * webrtc/datachannel/datachannel-page-cache-send.html: Added.
        * webrtc/datachannel/datachannel-page-cache.html: Added.

2019-10-04  Chris Lord  <clord@igalia.com>

        Import 2dcontext Web Platform Tests
        https://bugs.webkit.org/show_bug.cgi?id=179191
        <rdar://problem/35320416>

        Reviewed by Žan Doberšek.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_html_image-expected.txt: Added.
        * platform/mac/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.bottom-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.front-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape1-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.top-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside1-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside2-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside1-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/2dcontext/line-styles/2d.line.cap.round-expected.txt: Added.
        * platform/win/TestExpectations:
        * platform/wpe/TestExpectations:

2019-10-04  Ryosuke Niwa  <rniwa@webkit.org>

        A newly inserted element doesn't get assigned to a named slot if slot assignments had already happened
        https://bugs.webkit.org/show_bug.cgi?id=199733

        Reviewed by Antti Koivisto.

        Added ref tests.

        * fast/shadow-dom/add-slotted-element-after-assignment-1-expected.html: Added.
        * fast/shadow-dom/add-slotted-element-after-assignment-1.html: Added.
        * fast/shadow-dom/add-slotted-element-after-assignment-2-expected.html: Added.
        * fast/shadow-dom/add-slotted-element-after-assignment-2.html: Added.
        * fast/shadow-dom/add-slotted-element-after-assignment-3-expected.html: Added.
        * fast/shadow-dom/add-slotted-element-after-assignment-3.html: Added.

2019-10-03  Ryosuke Niwa  <rniwa@webkit.org>

        Resync WPT shadow DOM tests
        https://bugs.webkit.org/show_bug.cgi?id=202497

        Rubber-stamped by Sam Weinig.

        Added a failing expectation. Also skipped focus tests on iOS for now since sending tab key via UIController
        doesn't seem to move the focus on iOS somehow even though manual testing seems to work.

        * TestExpectations:
        * platform/ios/TestExpectations:
        * /platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/mathml/relations/html5-tree/tabindex-002-expected.txt: Added.

2019-10-03  Chris Dumez  <cdumez@apple.com>

        Allow pages using FontFaceSet to enter the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202476

        Reviewed by Myles C. Maxfield.

        Add layout test coverage.

        * http/tests/navigation/page-cache-fontfaceset-expected.txt: Added.
        * http/tests/navigation/page-cache-fontfaceset.html: Added.
        * http/tests/navigation/resources/page-cache-fontfaceset-iframe.html: Added.

2019-10-03  Chris Dumez  <cdumez@apple.com>

        Provisional / scheduled loads in subframes should not prevent a page from entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202474

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/history/page-cache-subframes-with-provisional-load-expected.txt: Added.
        * fast/history/page-cache-subframes-with-provisional-load.html: Added.

2019-10-03  Chris Dumez  <cdumez@apple.com>

        XMLHttpRequest sometimes prevents pages from entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202434
        <rdar://problem/55890340>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/tests/navigation/page-cache-failed-xhr-expected.txt: Added.
        * http/tests/navigation/page-cache-failed-xhr.html: Added.
        * http/tests/navigation/resources/page-cache-failed-xhr-frame.html: Added.

2019-10-03  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Downgrade document.referrer for all third-party iframes
        https://bugs.webkit.org/show_bug.cgi?id=202506
        <rdar://problem/55786397>

        Reviewed by Brent Fulgham.

        The tests that are not new rely on document.referrer and so they are made to turn off
        ITP before they run to maintain a full referrer.

        * http/tests/media/media-stream/enumerate-devices-source-id.html:
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/same-origin.html:
        * http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/no-referrer/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/no-referrer/same-origin.html:
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/same-origin.html:
        * http/tests/referrer-policy-iframe/origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/origin/same-origin.html:
        * http/tests/referrer-policy-iframe/same-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/same-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/same-origin/same-origin.html:
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/same-origin.html:
        * http/tests/referrer-policy-iframe/strict-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/strict-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/strict-origin/same-origin.html:
        * http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http.html:
        * http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https.html:
        * http/tests/referrer-policy-iframe/unsafe-url/same-origin.html:
        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http.html:
        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https.html:
        * http/tests/referrer-policy/no-referrer-when-downgrade/same-origin.html:
        * http/tests/referrer-policy/no-referrer/cross-origin-http-http.html:
        * http/tests/referrer-policy/no-referrer/cross-origin-http.https.html:
        * http/tests/referrer-policy/no-referrer/same-origin.html:
        * http/tests/referrer-policy/origin-when-cross-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy/origin-when-cross-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy/origin-when-cross-origin/same-origin.html:
        * http/tests/referrer-policy/origin/cross-origin-http-http.html:
        * http/tests/referrer-policy/origin/cross-origin-http.https.html:
        * http/tests/referrer-policy/origin/same-origin.html:
        * http/tests/referrer-policy/same-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy/same-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy/same-origin/same-origin.html:
        * http/tests/referrer-policy/strict-origin-when-cross-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy/strict-origin-when-cross-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy/strict-origin-when-cross-origin/same-origin.html:
        * http/tests/referrer-policy/strict-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy/strict-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy/strict-origin/same-origin.html:
        * http/tests/referrer-policy/unsafe-url/cross-origin-http-http.html:
        * http/tests/referrer-policy/unsafe-url/cross-origin-http.https.html:
        * http/tests/referrer-policy/unsafe-url/same-origin.html:
        * http/tests/resourceLoadStatistics/downgrade-document-referrer-nested-third-party-iframe-expected.txt: Added.
        * http/tests/resourceLoadStatistics/downgrade-document-referrer-nested-third-party-iframe.html: Added.
        * http/tests/resourceLoadStatistics/downgrade-document-referrer-third-party-iframe-expected.txt: Added.
        * http/tests/resourceLoadStatistics/downgrade-document-referrer-third-party-iframe.html: Added.
        * http/tests/resourceLoadStatistics/leave-empty-document-referrer-alone-third-party-iframe-expected.txt: Added.
        * http/tests/resourceLoadStatistics/leave-empty-document-referrer-alone-third-party-iframe.html: Added.
        * http/tests/resourceLoadStatistics/resources/nest-iframe-report-document-referrer.html: Added.
        * http/tests/resourceLoadStatistics/resources/report-document-referrer.html: Added.

2019-10-03  Antoine Quint  <graouts@apple.com>

        REGRESSION: touchend doesn't trigger on element when touch is released outside of its bounds
        https://bugs.webkit.org/show_bug.cgi?id=202527
        <rdar://55883213>

        Reviewed by Dean Jackson.

        Add a test that checks a scenario where an element that listens to "touchstart", "touchmove" and "touchend" events
        is only the target of move-phase touches but neither start and end phases. The code change that fixes the reported
        issue where the "touchend" wouldn't be dispatched is done in Internal.

        * pointerevents/utils.js:
        (EventTracker.prototype.handleEvent):
        (EventTracker.prototype._handleTouchEvent):

2019-10-03  youenn fablet  <youenn@apple.com>

        Regression: iOS 13.1 MediaStreamTrack.enabled = false kills audio track
        https://bugs.webkit.org/show_bug.cgi?id=202405
        <rdar://problem/55922616>

        Reviewed by Eric Carlson.

        * fast/mediastream/audio-track-enabled-expected.txt: Added.
        * fast/mediastream/audio-track-enabled.html: Added.

2019-10-03  youenn fablet  <youenn@apple.com>

        http/tests/security/navigate-when-restoring-cached-page.html should not use RTCPeerConnection to not enter in page cache
        https://bugs.webkit.org/show_bug.cgi?id=202521

        Reviewed by Chris Dumez.

        Make use of new internals API to prevent the page to go in page cache.

        * http/tests/security/navigate-when-restoring-cached-page.html:

2019-10-03  Jiewen Tan  <jiewen_tan@apple.com>

        Support googleLegacyAppidSupport extension
        https://bugs.webkit.org/show_bug.cgi?id=202427
        <rdar://problem/55887473>

        Reviewed by Brent Fulgham.

        Add tests to confirm the googleLegacyAppidSupport extension is ignored for RP ID != google.com.

        * http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:

2019-10-03  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: tests under LayoutTests/inspector/debugger are flaky
        https://bugs.webkit.org/show_bug.cgi?id=137131
        <rdar://problem/18461335>

        Reviewed by Devin Rousso.

        Enable inspector/debugger tests on GTK.

        * inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt: Rebaselined the test
        after changes in the breakpoint resolution code. Now the output on GTK is the same as on Mac.
        * platform/gtk/TestExpectations:

2019-10-03  Joonghun Park  <pjh0718@gmail.com>

        CSS ellipse() doesn't accept single <shape-radius>
        https://bugs.webkit.org/show_bug.cgi?id=181745

        CSS ellipse() should only accept 0 or 2 radii.
        The corresponding csswg discussion is
        https://github.com/w3c/csswg-drafts/issues/2175.
        Remove the layout tests duplicated with the wpt ported version ones.

        Reviewed by Antti Koivisto.

        * css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-015-expected.html: Removed.
        * css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-015.html: Removed.
        * css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-017-expected.html: Removed.
        * css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-017.html: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-001-expected.txt: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-001.html: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-005-expected.txt: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-005.html: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-010-expected.txt: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-010.html: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-011-expected.txt: Removed.
        * css3/shapes/shape-outside/values/shape-outside-ellipse-011.html: Removed.
        * fast/shapes/parsing/parsing-shape-outside-expected.txt:
        * fast/shapes/parsing/parsing-test-utils.js:
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:

2019-10-03  Miguel Gomez  <magomez@igalia.com>

        [WPE] Unreviewed WPE gardening after r250642
        https://bugs.webkit.org/show_bug.cgi?id=202515

        Unreviewed WPE gardening after r250642. Adding some missing results and updating
        some expectations.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-grad-24-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-grad-stops-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-03-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-04-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-05-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-06-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-07-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-08-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/pservers-pattern-09-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-elems-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-elems-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-elems-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-elems-06-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-elems-07-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-elems-08-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-groups-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/render-groups-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/script-handle-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/script-handle-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/script-handle-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/script-handle-04-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/script-specify-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/script-specify-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-circle-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-circle-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-ellipse-03-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-grammar-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-intro-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-intro-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-line-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-line-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-polygon-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-polygon-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-polygon-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-polyline-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-polyline-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-04-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-05-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-06-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/shapes-rect-07-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-cond-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-cond-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-cond-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-cond-overview-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-cond-overview-03-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-cond-overview-04-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-cond-overview-05-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-defs-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-04-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-05-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-06-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-07-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-08-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-11-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-12-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-13-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-14-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-15-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-16-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-17-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-18-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-19-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-dom-20-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-frag-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-frag-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-frag-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-frag-04-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-frag-05-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-frag-06-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-group-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-group-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-group-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-04-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-05-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-06-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-07-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-08-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-09-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-10-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-11-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-12-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-13-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-14-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-15-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-16-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-17-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-18-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-image-19-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-svg-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-svg-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-svg-03-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-symbol-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-04-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-05-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-06-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-07-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-08-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-09-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-10-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-11-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-12-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-13-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-14-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/struct-use-15-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-class-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-04-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-05-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-06-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-07-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-08-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-09-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-css-10-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-elem-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-inherit-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-pres-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-pres-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-pres-03-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-pres-04-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/styling-pres-05-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/svgdom-over-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-04-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-05-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-06-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-07-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-align-08-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-altglyph-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-altglyph-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-altglyph-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-bidi-01-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-deco-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-dom-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-dom-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-dom-03-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-dom-04-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-dom-05-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-fonts-02-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-fonts-03-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-fonts-04-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-fonts-05-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-fonts-202-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-fonts-203-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-fonts-204-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-04-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-05-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-06-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-07-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-09-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-10-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-11-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-intro-12-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-path-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-path-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-spacing-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-04-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-05-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-06-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-07-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-08-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-09-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-10-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-11-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-text-12-t-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tref-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tref-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tref-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tselect-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tselect-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tselect-03-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tspan-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/text-tspan-02-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-basic-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-basic-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-01-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-02-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-03-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-05-b-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-06-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-07-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-08-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-svgfittoviewbox-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-svglengthlist-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-svgnumberlist-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-svgstringlist-01-f-manual-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-svgtransformable-01-f-manual-expected.txt: Added.
        * platform/wpe/svg/W3C-SVG-1.1/coords-viewattr-01-b-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/coords-viewattr-02-b-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/render-elems-03-t-expected.txt:
        * platform/wpe/svg/custom/preserve-aspect-ratio-syntax-expected.txt:
        * platform/wpe/svg/custom/viewbox-syntax-expected.txt:
        * platform/wpe/svg/zoom/page/zoom-coords-viewattr-01-b-expected.txt:
        * platform/wpe/svg/zoom/text/zoom-coords-viewattr-01-b-expected.txt:

2019-10-02  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION (r245672): <select> dropdown with text-rendering: optimizeLegibility freezes Safari
        https://bugs.webkit.org/show_bug.cgi?id=202198

        Reviewed by Tim Horton.

        * fast/forms/select-font-optical-size-expected.txt: Added.
        * fast/forms/select-font-optical-size.html: Added.

2019-10-02  Kate Cheney  <katherine_cheney@apple.com>

        Updated resource load statistics are never merged into the SQLite Database backend (202372).
        https://bugs.webkit.org/show_bug.cgi?id=202372
        <rdar://problem/55854542>

        Reviewed by Brent Fulgham. 

        Added layout tests to test succesful merging of resource load
        statistics into SQLite backend.

        * http/tests/resourceLoadStatistics/merge-statistic-does-not-overwrite-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/merge-statistic-does-not-overwrite-database.html: Added.
        * http/tests/resourceLoadStatistics/merge-statistic-does-overwrite-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/merge-statistic-does-overwrite-database.html: Added.
        * http/tests/resourceLoadStatistics/merge-statistic-does-partially-overwrite-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/merge-statistic-does-partially-overwrite-database.html: Added.

2019-10-02  Miguel Gomez  <magomez@igalia.com>

        [WPE] Unreviewed gardening: add new expectations after r250602
        https://bugs.webkit.org/show_bug.cgi?id=202461

        Unreviewed WPE gardening. Add missing results after r250276.

        * platform/wpe/imported/w3c/web-platform-tests/svg/: Added.

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

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

        Reviewed by Devin Rousso.

        User interaction inspector tests were accidentally disabled on both WebKit1 and WebKit2.
        Marking them as passing on WebKit2.

        * platform/wk2/TestExpectations:

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

        Unreviewed GTK gardening. Add missing results after r250276.

        * platform/gtk/imported/w3c/web-platform-tests/svg/: Added.

2019-10-01  Alexey Shvayka  <shvaikalesh@gmail.com>

        [win-ews] No such file or directory: u'/cygdrive/C/cygwin/home/buildbot/WebKit/WebKitBuild/Release/bin32/layout-test-results/pywebsocket.ws.log-out.txt'
        https://bugs.webkit.org/show_bug.cgi?id=188640

        Reviewed by Alex Christensen.

        WebSocket server is now fixed, tests should pass. 

        Reverted changeset:

        "Unreviewed test gardening"
        https://bugs.webkit.org/show_bug.cgi?id=188640
        https://trac.webkit.org/changeset/234933

2019-10-01  John Wilander  <wilander@apple.com>

        Storage Access API: document.hasStorageAccess() should return true when the cookie policy allows access
        https://bugs.webkit.org/show_bug.cgi?id=202435
        <rdar://problem/55718526>

        Reviewed by Brent Fulgham.

        WebKit's Storage Access API implementation has so far only looked at whether ITP is
        blocking cookie access or not. However, the default cookie policy is still in
        effect underneath ITP. document.hasStorageAccess() should return true if the
        third-party:
        a) is not classified by ITP, and
        b) has cookies which implies it can use cookies as third-party according to the
        default cookie policy.

        * http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html: Renamed from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2019-10-01  Rob Buis  <rbuis@igalia.com>

        [Mac] Layout Test imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location.any.html fails
        https://bugs.webkit.org/show_bug.cgi?id=202350

        Reviewed by Alex Christensen.

        Remove expectation for non-existing tests.

        * platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt: Removed.

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

        Support accessibility for <figure> element on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=202272

        Reviewed by Aakash Jain.

        Fix for WK1 test, rebasing.
        * platform/mac/accessibility/roles-exposed-expected.txt:

2019-10-01  Antti Koivisto  <antti@apple.com>

        Import WPT tests for CSS Shadow Parts
        https://bugs.webkit.org/show_bug.cgi?id=202393

        Reviewed by Antoine Quint.

        * TestExpectations:

2019-10-01  Joonghun Park  <jh718.park@samsung.com>

        Make table's clientWidth/Height include its border sizes.
        https://bugs.webkit.org/show_bug.cgi?id=200974

        WebKit doesn't have table wrapper box currently
        while Gecko has it,
        so this CL tries to mimic the behavior that
        clientWidth/Height refers to table wrapper box
        which doesn't have borders applied to itself
        and table grid box has the borders.

        This CL adds table's border sizes
        to clientWidth/Height
        at |LayoutBox::PixelSnappedClientWidth/Height|.

        As a result of this CL, table's clientWidth/Height
        and offsetWidth/Height are equal now, respectively.

        The corresponding csswg discussion is
        https://github.com/w3c/csswg-drafts/issues/4245.

        Reviewed by Antti Koivisto.

        * fast/table/border-collapsing/bug236727-expected.txt: Added.
        * fast/table/border-collapsing/bug236727.html: Added.

2019-09-30  Devin Rousso  <drousso@apple.com>

        Web Inspector: JS Formatter: unexpected newlines added inside template string expression
        https://bugs.webkit.org/show_bug.cgi?id=202374

        Reviewed by Joseph Pecoraro.

        * inspector/formatting/resources/javascript-tests/template-strings.js:
        * inspector/formatting/resources/javascript-tests/template-strings-expected.js:

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

        Inline caching is wrong for custom accessors and custom values
        https://bugs.webkit.org/show_bug.cgi?id=201994
        <rdar://problem/50850326>

        Reviewed by Yusuke Suzuki.

        * js/dom/custom-accessor-redefine-expected.txt: Added.
        * js/dom/custom-accessor-redefine.html: Added.

2019-09-30  Chris Dumez  <cdumez@apple.com>

        IDBTransaction / IDBObjectStore should not prevent a page from entering the back / forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202291
        <rdar://problem/55760106>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * storage/indexeddb/IDBTransaction-page-cache.html: Added.

2019-09-30  Chris Dumez  <cdumez@apple.com>

        Pages with Web Workers cannot enter the back / forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202296
        <rdar://problem/55764073>

        Reviewed by Jer Noble.

        Add layout test coverage.

        * fast/workers/worker-page-cache-expected.txt: Added.
        * fast/workers/worker-page-cache.html: Added.

2019-09-28  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Crash when removing the target element while animating its attributes
        https://bugs.webkit.org/show_bug.cgi?id=202247

        Reviewed by Darin Adler.

        * svg/animations/animate-and-remove-target-element-expected.txt: Added.
        * svg/animations/animate-and-remove-target-element.html: Added.

2019-09-27  Chris Dumez  <cdumez@apple.com>

        Pages using WebGLRenderingContext fail to enter the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202318
        <rdar://problem/55783612>

        Reviewed by Tim Horton.

        Add layout test coverage.

        * fast/canvas/webgl/canvas-webgl-page-cache-expected.txt: Added.
        * fast/canvas/webgl/canvas-webgl-page-cache.html: Added.

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

        Support accessibility for <figure> element on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=202272
        <rdar://problem/54789907>

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/figure-element-expected.txt: Added.
        * accessibility/ios-simulator/figure-element.html: Added.

2019-09-27  Truitt Savell  <tsavell@apple.com>

        fast/images/async-image-multiple-clients-repaint.html
        https://bugs.webkit.org/show_bug.cgi?id=202328

        Unreviewed test gardening

        * platform/ios/TestExpectations:

2019-09-27  Chris Dumez  <cdumez@apple.com>

        Allow pages served over HTTPS with `Cache-Control: no-store` header to enter the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202314
        <rdar://problem/55783482>

        Reviewed by Alex Christensen.

        Update existing test to reflect behavior change.

        * http/tests/navigation/https-in-page-cache-expected.txt:
        * http/tests/navigation/resources/https-in-page-cache-1.php:

2019-09-27  Alexey Shvayka  <shvaikalesh@gmail.com>

        Non-standard Error properties should not be enumerable
        https://bugs.webkit.org/show_bug.cgi?id=198975

        Reviewed by Ross Kirsling.

        * inspector/debugger/resources/exception.js: Introduce `stringifyError` helper.
        * inspector/debugger/setPauseOnExceptions-all.html:
        * inspector/debugger/setPauseOnExceptions-none.html:
        * inspector/debugger/setPauseOnExceptions-uncaught.html:
        * js/exception-properties-expected.txt:
        * js/script-tests/exception-properties.js:

2019-09-27  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [iOS]: When inserting a photo and then inserting auto-corrected text, the photo is removed
        https://bugs.webkit.org/show_bug.cgi?id=202294

        Reviewed by Wenson Hsieh.

        * fast/events/ios/autocorrect-after-image-expected.txt: Added.
        * fast/events/ios/autocorrect-after-image.html: Added.

2019-09-27  John Wilander  <wilander@apple.com>

        Storage Access API: document.hasStorageAccess() should return false by default
        https://bugs.webkit.org/show_bug.cgi?id=202281
        <rdar://problem/55718526>

        Reviewed by Alex Christensen.

        document.hasStorageAccess() should return false by default so that it only
        returns true if the context has asked for and been granted storage access.

        * http/tests/storageAccess/has-storage-access-false-by-default-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-false-by-default.html: Added.
        * platform/ios/TestExpectations:
            The new test is marked as [ Pass ].
        * platform/mac-wk2/TestExpectations:
            The new test is marked as [ Pass ].

2019-09-27  Chris Dumez  <cdumez@apple.com>

        IDBRequest should not prevent a page from entering the back/forward cache
        https://bugs.webkit.org/show_bug.cgi?id=202270
        <rdar://problem/55744717>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * storage/indexeddb/IDBRequest-page-cache-expected.txt: Added.
        * storage/indexeddb/IDBRequest-page-cache.html: Added.

2019-09-27  Alex Christensen  <achristensen@webkit.org>

        Remove unused WebProcessPool::setCanHandleHTTPSServerTrustEvaluation
        https://bugs.webkit.org/show_bug.cgi?id=202285

        Reviewed by Youenn Fablet.

        * http/tests/ssl/certificate-validation-expected.txt: Removed.
        * http/tests/ssl/certificate-validation.html: Removed.

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

        Pages frequently fails to enter the back/forward cache due to pending loads
        https://bugs.webkit.org/show_bug.cgi?id=202289
        <rdar://problem/55758506>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

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

2019-09-26  Kate Cheney  <katherine_cheney@apple.com>

        Resource Load Statistics: Downgrade all third-party referrer headers
        https://bugs.webkit.org/show_bug.cgi?id=201353
        <rdar://problem/54895650>

        Majority of this patch was written by John Wilander <wilander@apple.com>

        Reviewed by Brent Fulgham. 

        The changes in the two http/tests/resourceLoadStatistics/strip-referrer-to-origin*
        tests and the http/tests/navigation/ping-attribute/* tests are for the functional 
        change. The other changes are to make use of the new
        testRunner.setStatisticsShouldDowngradeReferrer() to maintain earlier functionality.

        TestRunner::setStatisticsShouldDowngradeReferrer() function is not
        supported for mac-wk1, win or wincairo.

        * http/tests/blink/sendbeacon/beacon-cross-origin-expected.txt:
        * http/tests/navigation/ping-attribute/anchor-cross-origin.html:
        * http/tests/navigation/ping-attribute/area-cross-origin.html:
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/no-referrer-when-downgrade/same-origin.html:
        * http/tests/referrer-policy-script/no-referrer/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/no-referrer/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/no-referrer/same-origin.html:
        * http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/origin-when-cross-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/origin-when-cross-origin/same-origin.html:
        * http/tests/referrer-policy-script/origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/origin/same-origin.html:
        * http/tests/referrer-policy-script/same-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/same-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/same-origin/same-origin.html:
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/strict-origin-when-cross-origin/same-origin.html:
        * http/tests/referrer-policy-script/strict-origin/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/strict-origin/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/strict-origin/same-origin.html:
        * http/tests/referrer-policy-script/unsafe-url/cross-origin-http-http.html:
        * http/tests/referrer-policy-script/unsafe-url/cross-origin-http.https.html:
        * http/tests/referrer-policy-script/unsafe-url/same-origin.html:
        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http.html:
        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https.html:
        * http/tests/referrer-policy/no-referrer-when-downgrade/same-origin.html:
        * http/tests/referrer-policy/unsafe-url/cross-origin-http-http.html:
        * http/tests/referrer-policy/unsafe-url/cross-origin-http.https.html:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests.html: Removed.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-redirects-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-expected.txt.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-redirects.html: Copied from LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-requests-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-expected.txt.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-requests.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html.
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.php:
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.php:
        * http/tests/security/referrer-policy-header.html:
        * platform/ios-wk2/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wk2/TestExpectations:
        * resources/testharnessreport.js:
        * resources/js-test.js:

2019-09-26  Eric Carlson  <eric.carlson@apple.com>

        REGRESSION (iOS 13): Trying to record just audio using HTML Media Capture crashes Safari
        https://bugs.webkit.org/show_bug.cgi?id=202039
        <rdar://problem/55566628>

        Reviewed by Jer Noble.

        * fast/forms/ios/file-upload-panel-capture-expected.txt: Added.
        * fast/forms/ios/file-upload-panel-capture.html: Added.

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

        [ iOS ] Layout Test scrollingcoordinator/ios/fixed-scrolling-with-keyboard.html is a Flaky Failure
        https://bugs.webkit.org/show_bug.cgi?id=202283

        Unreviewed Test Gardening.

        * platform/ios/TestExpectations: Marked
	scrollingcoordinator/ios/fixed-scrolling-with-keyboard.html as flaky

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

        Stop using testRunner.overridePreference() to turn on Page Cache
        https://bugs.webkit.org/show_bug.cgi?id=202274

        Reviewed by Alex Christensen.

        Stop using testRunner.overridePreference() to turn on Page Cache, as this does not work
        for WebKit2 when navigating cross-origin due to process swapping. Instead, update tests
        to rely on `<!-- webkit-test-runner [ enablePageCache=true ] -->`.

        * animations/resume-after-page-cache.html:
        * compositing/accelerated-layers-after-back.html:
        * compositing/iframes/page-cache-layer-tree.html:
        * compositing/page-cache-back-crash.html:
        * compositing/show-composited-iframe-on-back-button.html:
        * editing/mac/input/unconfirmed-text-navigation-with-page-cache.html:
        * fast/css/fontloader-page-cache.html:
        * fast/dom/DeviceMotion/no-page-cache.html:
        * fast/dom/DeviceOrientation/event-after-navigation.html:
        * fast/dom/DeviceOrientation/no-page-cache.html:
        * fast/dom/Window/timer-resume-on-navigation-back.html:
        * fast/events/onunload-back-to-page-cache.html:
        * fast/events/pagehide-timeout-expected.txt:
        * fast/events/pagehide-timeout.html:
        * fast/events/pagehide-xhr-open-expected.txt:
        * fast/events/pagehide-xhr-open.html:
        * fast/events/pageshow-pagehide-on-back-cached-with-frames.html:
        * fast/events/pageshow-pagehide-on-back-cached.html:
        * fast/events/suspend-timers-expected.txt:
        * fast/events/suspend-timers.html:
        * fast/forms/autocomplete-off-with-default-value-does-not-clear.html:
        * fast/frames/frame-crash-with-page-cache.html:
        * fast/frames/frame-unload-navigate-and-setTimeout-assert-fail.html:
        * fast/frames/page-hide-document-open.html:
        * fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update.html:
        * fast/frames/restoring-page-cache-should-not-run-scripts.html:
        * fast/harness/page-cache-crash-on-data-urls.html:
        * fast/harness/use-page-cache-expected.txt:
        * fast/harness/use-page-cache.html:
        * fast/history/back-from-page-with-focused-iframe.html:
        * fast/history/go-back-to-iframe-with-plugin.html:
        * fast/history/go-back-to-object-subframe.html:
        * fast/history/history-back-while-pdf-in-pagecache.html:
        * fast/history/page-cache-MessagePort-pending-message.html:
        * fast/history/page-cache-after-window-open.html:
        * fast/history/page-cache-back-navigation-crash.html:
        * fast/history/page-cache-clearing-expected.txt:
        * fast/history/page-cache-clearing.html:
        * fast/history/page-cache-closed-audiocontext.html:
        * fast/history/page-cache-createObjectURL-using-open-panel.html:
        * fast/history/page-cache-createObjectURL.html:
        * fast/history/page-cache-destroy-document.html:
        * fast/history/page-cache-element-state-focused.html:
        * fast/history/page-cache-execute-script-during-restore.html:
        * fast/history/page-cache-geolocation-active-oneshot.html:
        * fast/history/page-cache-geolocation-active-watcher.html:
        * fast/history/page-cache-geolocation.html:
        * fast/history/page-cache-indexed-closed-db.html:
        * fast/history/page-cache-indexed-opened-db.html:
        * fast/history/page-cache-media-source-closed-2.html:
        * fast/history/page-cache-media-source-closed.html:
        * fast/history/page-cache-media-source-opened.html:
        * fast/history/page-cache-navigate-during-restore.html:
        * fast/history/page-cache-notification-non-suspendable.html:
        * fast/history/page-cache-notification-suspendable.html:
        * fast/history/page-cache-removed-source-buffer.html:
        * fast/history/page-cache-running-audiocontext.html:
        * fast/history/page-cache-suspended-audiocontext.html:
        * fast/history/page-cache-webdatabase-no-transaction-db-expected.txt:
        * fast/history/page-cache-webdatabase-no-transaction-db.html:
        * fast/history/page-cache-webdatabase-pending-transaction.html:
        * fast/history/page-cache-with-opener.html:
        * fast/history/pagehide-remove-iframe-crash.html:
        * fast/history/resources/page-cache-window-with-iframe.html:
        * fast/history/resources/page-cache-window-with-opener.html:
        * fast/history/timed-refresh-in-cached-frame.html:
        * fast/images/animated-gif-restored-from-bfcache.html:
        * fast/loader/frames-with-unload-handlers-in-page-cache.html:
        * fast/loader/image-in-page-cache.html:
        * fast/loader/input-element-page-cache-crash.html:
        * fast/loader/navigate-with-new-target-after-back-forward-navigation.html:
        * fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html:
        * fast/loader/scroll-position-restored-on-back.html:
        * fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html:
        * fast/loader/stateobjects/popstate-fires-with-page-cache.html:
        * fast/loader/unschedule-relayout-after-unload.html:
        * fast/loader/window-properties-restored-from-page-cache.html:
        * fast/overflow/horizontal-scroll-after-back.html:
        * fast/scrolling/iframe-scrollable-after-back.html:
        * fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html:
        * fast/scrolling/ios/scroll-events-back-forward.html:
        * fast/scrolling/ios/touch-scroll-back-forward.html:
        * fast/scrolling/overflow-scrollable-after-back.html:
        * fast/scrolling/page-cache-back-overflow-scroll-restore.html:
        * fast/text-autosizing/ios/text-autosizing-after-back.html:
        * fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html:
        * fast/viewport/viewport-128.html:
        * http/tests/cache/display-image-unset-allows-cached-image-load.html:
        * http/tests/loading/main-resource-delegates-on-back-navigation-expected.txt:
        * http/tests/loading/main-resource-delegates-on-back-navigation.html:
        * http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html:
        * http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks.html:
        * http/tests/media/reload-after-dialog.html:
        * http/tests/navigation/go-back-to-error-page.html:
        * http/tests/navigation/https-in-page-cache.html:
        * http/tests/navigation/https-no-store-subframe-in-page-cache.html:
        * http/tests/navigation/image-load-in-pagehide-handler.html:
        * http/tests/navigation/page-cache-fragment-referrer.html:
        * http/tests/navigation/page-cache-iframe-no-current-historyItem.html:
        * http/tests/navigation/page-cache-iframe-provisional-load-async-delegates.html:
        * http/tests/navigation/page-cache-iframe-provisional-load.html:
        * http/tests/navigation/page-cache-pending-image-load-cache-partition.html:
        * http/tests/navigation/page-cache-pending-image-load.html:
        * http/tests/navigation/page-cache-pending-ping-load-cross-origin.html:
        * http/tests/navigation/page-cache-pending-ping-load-same-origin.html:
        * http/tests/navigation/page-cache-xhr-in-pagehide-expected.txt:
        * http/tests/navigation/page-cache-xhr-in-pagehide.html:
        * http/tests/navigation/page-cache-xhr.html:
        * http/tests/navigation/resources/https-in-page-cache-1.php:
        * http/tests/navigation/resources/https-in-page-cache-2.php:
        * http/tests/navigation/resources/https-in-page-cache-3.html:
        * http/tests/navigation/resources/https-no-store-subframe-in-page-cache.html:
        * http/tests/navigation/subframe-pagehide-handler-starts-load.html:
        * http/tests/navigation/subframe-pagehide-handler-starts-load2.html:
        * http/tests/security/cross-origin-window-open-insert-script.html:
        * http/tests/security/cross-origin-window-open-javascript-url.html:
        * http/tests/security/navigate-when-restoring-cached-page.html:
        * http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
        * http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html:
        * http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html:
        * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
        * http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
        * http/wpt/beacon/support/sendBeacon-onpagehide-window.html:
        * legacy-animation-engine/animations/resume-after-page-cache.html:
        * loader/go-back-cached-main-resource.html:
        * loader/go-back-to-different-window-size.html:
        * media/crash-closing-page-with-media-as-plugin-fallback.html:
        * media/restore-from-page-cache.html:
        * platform/ios/ios/fixed/fixed-back-forward.html:
        * plugins/crash-restoring-plugin-page-from-page-cache.html:
        * plugins/frameset-with-plugin-frame.html:
        * plugins/netscape-plugin-page-cache-works.html:
        * swipe/basic-cached-back-swipe.html:
        * swipe/main-frame-pinning-requirement.html:
        * swipe/pushState-cached-back-swipe.html:
        * swipe/pushState-programmatic-back-while-swiping-crash.html:
        * swipe/pushstate-with-manual-scrollrestoration.html:
        * tiled-drawing/scrolling/null-parent-back-crash.html:
        * tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:

2019-09-26  Kate Cheney  <katherine_cheney@apple.com>

        Enable LayoutTests using ResourceLoadStatistics SQLite backend (195420)
        https://bugs.webkit.org/show_bug.cgi?id=195420 
        <rdar://problem/54213551>

        Added a flag to all ITP tests to enable the ITP database backend to 
        allow for testing functionality against the memory store. Tests were 
        not created for telemetry-generation.html, 
        log-cross-site-load-with-link-decoration.html, or 
        website-data-removal-for-site-navigated-to-with-link-decoration.html, 
        because these rely on functions not yet implemented in the ITP database.
        Additionally, added flags to some memory store tests to ensure they
        are using the memory store before calling functions not implemented in
        the database store yet.

        Reviewed by Brent Fulgham.

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-database.html: Added.
        * http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-database.html: Added.
        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-database.html: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-database.html: Added.
        * http/tests/resourceLoadStatistics/cookie-deletion-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cookie-deletion-database.html: Added.
        * http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/delete-script-accessible-cookies-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/delete-script-accessible-cookies-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/enable-debug-mode-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/enable-debug-mode-database.html: Added.
        * http/tests/resourceLoadStatistics/grandfathering-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/grandfathering-database.html: Added.
        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/prune-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prune-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database.html: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database.html: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database.html: Added.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/telemetry-generation.html:
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database.html: Added.
        * http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database.html: Added.
        * http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database.html: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
        * platform/ios/TestExpectations:
        Added test expectations to skip database tests which do not work in 
        ios because of reliance on EventSender.keydown() which is not
        supported on iOS and also those which use UIHelper.activateAt() which
        does not produce a user gesture captured by ITP in iOS.

2019-09-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS 13] Tapping on a non-editable text selection should toggle callout bar visibility instead of clearing selection
        https://bugs.webkit.org/show_bug.cgi?id=202254
        <rdar://problem/54410263>

        Reviewed by Megan Gardner.

        * editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text-expected.txt: Added.
        * editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html: Added.

        Add a new layout test to verify that when tapping in a text selection that encompasses the entire page, we allow
        the tap to dismiss the selection instead of toggling callout bar visibility.

        * editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text-expected.txt: Added.
        * editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html: Added.

        Add another layout test to verify that when tapping inside a text selection, the callout bar is toggled, and
        when tapping outside the selected text, the selection is dismissed.

        * resources/ui-helper.js:
        (window.UIHelper.async.waitForSelectionToAppear):
        (window.UIHelper.async.waitForSelectionToDisappear):

        New helper methods to wait for selection rects to appear or disappear.

        (window.UIHelper):

2019-09-26  Alexey Shvayka  <shvaikalesh@gmail.com>

        toExponential, toFixed, and toPrecision should allow arguments up to 100
        https://bugs.webkit.org/show_bug.cgi?id=199163

        Reviewed by Ross Kirsling.

        * js/dom/number-tofixed-expected.txt:
        * js/dom/number-toprecision-expected.txt:
        * js/dom/script-tests/number-tofixed.js:
        * js/dom/script-tests/number-toprecision.js:
        * js/kde/Number-expected.txt:
        * js/kde/script-tests/Number.js:
        * js/number-toExponential-expected.txt:
        * js/script-tests/number-toExponential.js:

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

        Layout Test platform/ios/ios/fast/text/opticalFont.html is Failing on iOS13.
        https://bugs.webkit.org/show_bug.cgi?id=202278

        Unreviewed Test Gardening.

        * platform/ios/ios/fast/text/opticalFont-expected.txt: Removed.
        * platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt:
	Rebaselined for iOS 13.

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

        Add very basic PageCache support for RTCPeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=202244

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * fast/mediastream/RTCPeerConnection-page-cache-expected.txt: Added.
        * fast/mediastream/RTCPeerConnection-page-cache.html: Added.

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

        Improve Service worker support for Page Caching
        https://bugs.webkit.org/show_bug.cgi?id=202221

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/tests/workers/service/no-page-cache-when-controlled-expected.txt: Removed.
        * http/tests/workers/service/page-caching-expected.txt: Added.
        * http/tests/workers/service/page-caching.html: Renamed from LayoutTests/http/tests/workers/service/no-page-cache-when-controlled.html.

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

        [Cocoa] Regression(r212041) Safari adds a .dms extension automatically when downloading binaries with no extension
        https://bugs.webkit.org/show_bug.cgi?id=202147
        <rdar://problem/54886021>

        Reviewed by Alexey Proskuryakov.

        Add layout test coverage.

        * http/tests/download/anchor-download-attribute-content-disposition-no-extension-octet-stream-expected.txt: Added.
        * http/tests/download/anchor-download-attribute-content-disposition-no-extension-octet-stream.html: Added.
        * http/tests/download/anchor-download-attribute-content-disposition-no-extension-text-plain-expected.txt: Added.
        * http/tests/download/anchor-download-attribute-content-disposition-no-extension-text-plain.html: Added.
        * http/tests/download/resources/content-disposition-pass-no-extension-octet-stream.php: Added.
        * http/tests/download/resources/content-disposition-pass-no-extension-text-plain.php: Added.
        * http/tests/security/anchor-download-octet-stream-no-extension-expected.txt: Added.
        * http/tests/security/anchor-download-octet-stream-no-extension.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-09-25  Megan Gardner  <megan_gardner@apple.com>

        Update selections after scrolling for iframes and hide selections while iframes and overflow scrolls are scrolling.
        https://bugs.webkit.org/show_bug.cgi?id=202125

        Reviewed by Tim Horton.

        Test that an iframe selection is updated after a scroll is completed.

        * editing/selection/ios/update-selection-after-iframe-scroll-expected.txt: Added.
        * editing/selection/ios/update-selection-after-iframe-scroll.html: Added.

2019-09-25  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:

2019-09-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        Page temporarily jumps to an excessively small viewport scale while loading usatoday.com
        https://bugs.webkit.org/show_bug.cgi?id=202224
        <rdar://problem/52906640>

        Reviewed by Tim Horton.

        Adds a new layout test to verify that when the content width of the page is excessively large and an explicit
        viewport width is specified, we don't attempt to zoom out to fit the larger content width, and instead zoom to
        fit the explicit viewport width.

        * fast/viewport/ios/shrink-to-fit-large-content-width-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-large-content-width.html: Added.

2019-09-25  Zalan Bujtas  <zalan@apple.com>

        Adjust tap position to avoid double-tap issue across tests.

        Unreviewed test gardening.

        * fast/events/touch/ios/double-tap-for-two-clicks3.html:

2019-09-25  Zalan Bujtas  <zalan@apple.com>

        Rebaselining after r250315.

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

2019-09-25  Alexey Shvayka  <shvaikalesh@gmail.com>

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

        Reviewed by Alex Christensen.

        Re-sync web-platform-tests/IndexedDB from upstream a0f781e4d4e9.

        * TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * tests-options.json:

2019-09-25  Jonathan Bedard  <jbedard@apple.com>

        Unreviewed, rolling out r250324.

        Broke many mac wk2 layout tests

        Reverted changeset:

        "Enable LayoutTests using ResourceLoadStatistics SQLite
        backend (195420)"
        https://bugs.webkit.org/show_bug.cgi?id=195420
        https://trac.webkit.org/changeset/250324

2019-09-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port.

        * platform/wincairo/TestExpectations: Updated several tests.

2019-09-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Layout Test http/tests/misc/bubble-drag-events.html is a flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=182130

        Unreviewed test gardening for Windows ports.

        It doesn't flaky crash these days for Windows ports.
        <https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#tests=http%2Ftests%2Fmisc%2Fbubble-drag-events.html>

        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        Unmarked it.

2019-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Windows][webkitpy] _apache_config_file_name_for_platform should take the system PHP version into account
        https://bugs.webkit.org/show_bug.cgi?id=202134

        Reviewed by Jonathan Bedard.

        * http/conf/cygwin-httpd.conf: Removed a stale conf file.
        * http/conf/win-httpd-2.4-php5.conf: Renamed from LayoutTests/http/conf/apache2.4-httpd-win.conf.

2019-09-24  Kate Cheney  <katherine_cheney@apple.com>

        Enable LayoutTests using ResourceLoadStatistics SQLite backend (195420)
        https://bugs.webkit.org/show_bug.cgi?id=195420 
        <rdar://problem/54213551>

        Added a flag to all ITP tests to enable the ITP database backend to 
        allow for testing functionality against the memory store. Tests were 
        not created for telemetry-generation.html, 
        log-cross-site-load-with-link-decoration.html, or 
        website-data-removal-for-site-navigated-to-with-link-decoration.html, 
        because these rely on functions not yet implemented in the ITP database.
        Additionally, added flags to some memory store tests to ensure they
        are using the memory store before calling functions not implemented in
        the database store yet.

        Reviewed by Brent Fulgham.

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-database.html: Added.
        * http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-database.html: Added.
        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to-database.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-database.html: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-database.html: Added.
        * http/tests/resourceLoadStatistics/cookie-deletion-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cookie-deletion-database.html: Added.
        * http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/delete-script-accessible-cookies-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/delete-script-accessible-cookies-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-database.html: Added.
        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/enable-debug-mode-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/enable-debug-mode-database.html: Added.
        * http/tests/resourceLoadStatistics/grandfathering-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/grandfathering-database.html: Added.
        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/prune-statistics-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prune-statistics-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html: Added.
        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database.html: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database.html: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database.html: Added.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/telemetry-generation.html:
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database.html: Added.
        * http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database.html: Added.
        * http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database.html: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
        * platform/ios/TestExpectations:
        Added test expectations to skip database tests which do not work in 
        ios because of reliance on EventSender.keydown() which is not
        supported on iOS and also those which use UIHelper.activateAt() which
        does not produce a user gesture captured by ITP in iOS.

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

        [iPadOs] The second click event is missing on double tap when dblclick handler is not present
        https://bugs.webkit.org/show_bug.cgi?id=202006
        <rdar://problem/51706828>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/double-tap-for-two-clicks1-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-two-clicks1.html: Added.
        * fast/events/touch/ios/double-tap-for-two-clicks2-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-two-clicks2.html: Added.
        * fast/events/touch/ios/double-tap-for-two-clicks3-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-two-clicks3.html: Added.
        * fast/events/touch/ios/double-tap-for-two-clicks4-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-two-clicks4.html: Added.
        * fast/events/touch/ios/doubleclick.html: Added.
        * fast/events/touch/resources/doubleClickContent.html: Added.

2019-09-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] Unflake web-animations/timing-model/animations/updating-the-finished-state.html WPT test
        https://bugs.webkit.org/show_bug.cgi?id=181121

        Reviewed by Dean Jackson.

        * TestExpectations:

2019-09-24  Kate Cheney  <katherine_cheney@apple.com>

        Mixed content blocking is bypassed for WebSockets in Workers (159726)
        https://bugs.webkit.org/show_bug.cgi?id=159726
        <rdar://problem/27326438>

        Reviewed by Brady Eidson.

        Added 4 test cases and 2 html resources utilized by the tests.
        The cases test the following: 
        1. an https page with a worker trying to connect via ws: url -->
        fails.
        2. an https page embedded in an http page trying to connect via ws
        :url (through a worker) --> fails.
        3. an http page embedded in an https page with an http top frame
        trying to connect via an insecure ws url fails.
        4. an https page embedded in an http page embedded in an https page
        trying to connect to a ws :url via a worker --> fails.

        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https-expected.txt: Added.
        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https-with-embedded-http-expected.txt: Added.
        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https-with-embedded-http.html: Added.
        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-http-with-embedded-https.html: Added.
        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-https-with-embedded-http-with-embedded-https.https-expected.txt: Added.
        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked-https-with-embedded-http-with-embedded-https.https.html: Added.
        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked.https-expected.txt: Added.
        * http/tests/websocket/tests/hybi/non-document-mixed-content-blocked.https.html: Added.
        * http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked-embedded-http.https.html: Added.
        * http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked-embedding-https.js: Added.
        (handleConnect.self.postMessage):
        (handleConnect):
        (runTests.ws.onopen):
        (runTests.ws.onerror):
        (runTests):
        * http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked.html: Added.
        * http/tests/websocket/tests/hybi/resources/non-document-mixed-content-blocked.js: Added.
        (handleConnect.self.postMessage):
        (handleConnect):
        (runTests.ws.onopen):
        (runTests.ws.onerror):
        (runTests):
        * http/tests/workers/service/resources/serviceworker-websocket-worker.js:
        (async.doTest):
        Updated previous test which was hitting the fix to use a wss url 

2019-09-23  Youenn Fablet  <youenn@apple.com>

        Support sync-xhr feature policy
        https://bugs.webkit.org/show_bug.cgi?id=202098

        Reviewed by Alex Christensen.

        * TestExpectations: enable test.
        * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub-expected.txt: Deleted.

2019-09-23  Alex Christensen  <achristensen@webkit.org>

        Fix WPT test html/browsers/offline/application-cache-api/api_swapcache_error.https.html
        https://bugs.webkit.org/show_bug.cgi?id=202056
        <rdar://problem/55523986>

        Reviewed by Youenn Fablet.

        * TestExpectations:

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

        Import SVG web-platform-tests
        https://bugs.webkit.org/show_bug.cgi?id=202017

        Reviewed by Tim Horton.

        * TestExpectations:
        * imported/w3c/resources/import-expectations.json:
        * imported/w3c/web-platform-tests/resources/SVGAnimationTestCase-testharness.js:
        * imported/w3c/web-platform-tests/svg: Added.
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg: Added.
        * platform/mac/imported/w3c/web-platform-tests/svg: Added.
        * tests-options.json:

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

        [Web Animations] Update WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=202110

        Reviewed by Dean Jackson.

        * TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
        * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
        * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.

2019-09-23  Peng Liu  <peng.liu6@apple.com>

        Layout test webaudio/silence-after-playback.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=202116

        Reviewed by Jer Noble.

        Rebasing a webaudio layout test expected result because of a bug fix in Catalina.

        * platform/mac-mojave/webaudio/silence-after-playback-expected.wav: Copied from LayoutTests/platform/mac/webaudio/silence-after-playback-expected.wav.
        * platform/mac/TestExpectations:
        * platform/mac/webaudio/silence-after-playback-expected.wav:

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

        Web Inspector: Canvas: show WebGPU shader pipelines
        https://bugs.webkit.org/show_bug.cgi?id=201675
        <rdar://problem/55543450>

        Reviewed by Joseph Pecoraro.

        Split existing shader tests into WebGL and WebGPU sub-tests for different platforms.

        * inspector/canvas/requestShaderSource.html:
        * inspector/canvas/requestShaderSource-expected.txt:
        * inspector/canvas/updateShader.html:
        * inspector/canvas/updateShader-expected.txt:

        * inspector/canvas/resources/shaderProgram-utilities-webgpu.js: Added.
        * inspector/canvas/requestShaderSource-webgpu.html: Added.
        * inspector/canvas/requestShaderSource-webgpu-expected.txt: Added.
        * inspector/canvas/shaderProgram-add-remove-webgpu.html: Added.
        * inspector/canvas/shaderProgram-add-remove-webgpu-expected.txt: Added.
        * inspector/canvas/updateShader-webgpu-expected.txt: Added.
        * inspector/canvas/updateShader-webgpu.html: Added.

        * inspector/canvas/resources/shaderProgram-utilities-webgl.js: Renamed from LayoutTests/inspector/canvas/resources/shaderProgram-utilities.js.
        * inspector/canvas/console-record-webgl.html:
        * inspector/canvas/console-record-webgl2.html:
        * inspector/canvas/recording-webgl-frameCount.html:
        * inspector/canvas/recording-webgl-full.html:
        * inspector/canvas/recording-webgl-memoryLimit.html:
        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl2-frameCount.html:
        * inspector/canvas/recording-webgl2-full.html:
        * inspector/canvas/recording-webgl2-memoryLimit.html:
        * inspector/canvas/recording-webgl2-snapshots.html:
        * inspector/canvas/requestShaderSource-webgl.html: Added.
        * inspector/canvas/requestShaderSource-webgl-expected.txt: Added.
        * inspector/canvas/setShaderProgramDisabled.html:
        * inspector/canvas/setShaderProgramHighlighted.html:
        * inspector/canvas/shaderProgram-add-remove-webgl.html:
        * inspector/canvas/shaderProgram-add-remove-webgl2.html:
        * inspector/canvas/updateShader-webgl.html: Added.
        * inspector/canvas/updateShader-webgl-expected.txt: Added.

        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2019-09-23  Daniel Bates  <dabates@apple.com>

        Improve CSP inheritance semantics
        https://bugs.webkit.org/show_bug.cgi?id=201884
        <rdar://problem/50172407>

        Reviewed by Brent Fulgham.

        Add some more tests and update expected results of existing tests now that we pass more sub-tests.

        * http/tests/security/contentSecurityPolicy/iframe-allowed-when-loaded-via-javascript-url-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/iframe-allowed-when-loaded-via-javascript-url.html: Added.
        * http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url.html: Added.
        * http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url2-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url2.html: Added.
        * http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt: I don't understand
        why there is another duplicte console log message emitted, but there are already two such messages, which is
        already one too many. The duplicate messages are more cosmetic than functional though there may be implications
        with respect to CSP reporting. Filed <https://bugs.webkit.org/show_bug.cgi?id=202004> to track this issue.
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt:
        * platform/win/http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt:

2019-09-16  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] LocalAuthenticator tests are failing on internal bots
        https://bugs.webkit.org/show_bug.cgi?id=201844
        <rdar://problem/54278693>

        Reviewed by Brent Fulgham.

        This patch makes each test to generate their own credentials to avoid race conditions in Keychain
        accesses when multiple test runners present.

        * http/wpt/credential-management/credentialscontainer-store-basics.https.html:
        * http/wpt/webauthn/idl.https.html:
        These two tests are changed to use hid authenticator instead of local to avoid any future Keychain issues.
        * http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-local.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-local.https.html:
        * http/wpt/webauthn/resources/util.js:
        * platform/mac-wk2/TestExpectations:

2019-09-23  Youenn Fablet  <youenn@apple.com>

        Simplify UserMediaPermissionRequestManager management of UserMediaRequest
        https://bugs.webkit.org/show_bug.cgi?id=201688

        Reviewed by Eric Carlson.

        * http/tests/media/media-stream/disconnected-frame-permission-denied-expected.txt:
        * http/tests/media/media-stream/disconnected-frame-permission-denied.html:

2019-09-23  Rob Buis  <rbuis@igalia.com>

        Sync operator dictionary
        https://bugs.webkit.org/show_bug.cgi?id=201974

        Reviewed by Frédéric Wang.

        * platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Added.
        * platform/win/TestExpectations:

2019-09-21  Antoine Quint  <graouts@apple.com>

        [Pointer Events] touch-action set to pan-x or pan-y alone should disable scrolling altogether if the intial gesture is in the disallowed direction
        https://bugs.webkit.org/show_bug.cgi?id=202053
        <rdar://problem/54542190>

        Reviewed by Tim Horton.

        Add new tests checking that setting "touch-action: pan-y" on an element and initiating a horizontal panning gesture will disallow scrolling vertically
        if a vertical scrolling gesture follows. We test both the case where scrolling would apply to the whole page and the case where scrolling would apply
        to an "overflow: scroll" element.

        * pointerevents/ios/touch-action-pan-y-horizontal-gesture-prevents-vertical-scrolling-expected.txt: Added.
        * pointerevents/ios/touch-action-pan-y-horizontal-gesture-prevents-vertical-scrolling.html: Added.
        * pointerevents/ios/touch-action-pan-y-in-overflow-scroll-horizontal-gesture-prevents-vertical-scrolling-expected.txt: Added.
        * pointerevents/ios/touch-action-pan-y-in-overflow-scroll-horizontal-gesture-prevents-vertical-scrolling.html: Added.

2019-09-20  Antoine Quint  <graouts@apple.com>

        releasePointerCapture() not working for implicit capture; can't opt-in to pointerenter/leave for touches
        https://bugs.webkit.org/show_bug.cgi?id=199803
        <rdar://problem/53127223>

        Reviewed by Dean Jackson.

        Add new tests that check we correctly dispatch boundary events on iOS when pointer capture is disabled.

        * pointerevents/ios/boundary-events-through-hierarchy-without-pointer-capture-expected.txt: Added.
        * pointerevents/ios/boundary-events-through-hierarchy-without-pointer-capture.html: Added.
        * pointerevents/ios/boundary-events-without-pointer-capture-expected.txt: Added.
        * pointerevents/ios/boundary-events-without-pointer-capture.html: Added.
        * pointerevents/utils.js:

2019-09-20  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Assertion fires when animating a discrete property with values range and multiple animators
        https://bugs.webkit.org/show_bug.cgi?id=201926

        Reviewed by Darin Adler.

        Animate a discrete property, such as SVGAnimatedString. There should be
        multiple animators and the range of animation has to be set by the 'values'
        attribute.

        * svg/animations/multiple-discrete-values-animate-expected.txt: Added.
        * svg/animations/multiple-discrete-values-animate.svg: Added.

2019-09-20  Chris Dumez  <cdumez@apple.com>

        REGRESSION (iOS 13): rAF stops firing when navigating away cross-origin and then back
        https://bugs.webkit.org/show_bug.cgi?id=201767
        <rdar://problem/55350854>

        Reviewed by Tim Horton.

        Call finishJSTest() on a timer to make it more likely to reproduce the bug.

        * http/tests/navigation/page-cache-requestAnimationFrame.html:

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

        Web Inspector: HTML Formatter - better indentation/newline handling for self closing tags
        https://bugs.webkit.org/show_bug.cgi?id=202036

        Reviewed by Joseph Pecoraro.

        * inspector/formatting/formatting-xml.html:
        * inspector/formatting/formatting-xml-expected.txt:
        * inspector/formatting/resources/xml-tests/self-closing.xml: Added.
        * inspector/formatting/resources/xml-tests/self-closing-expected.xml: Added.

2019-09-20  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r250114.

        Broke ~16 webgpu/ tests on Mojave wk2

        Reverted changeset:

        "Web Inspector: Canvas: show WebGPU shader pipelines"
        https://bugs.webkit.org/show_bug.cgi?id=201675
        https://trac.webkit.org/changeset/250114

2019-09-20  Rob Buis  <rbuis@igalia.com>

        Synchronize MathML WPT tests against upstream
        https://bugs.webkit.org/show_bug.cgi?id=201975

        Reviewed by Frédéric Wang.

        * TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/dir-mo-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-002-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/tabindex-001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/tabindex-002-expected.txt: Added.
        * platform/ios-wk1/imported/w3c/web-platform-tests/matml/presentation-markup/operators/operator-dictionary-001-expected.txt: Added.
        * platform/ios-wk1/imported/w3c/web-platform-tests/matml/relations/css-styling/ignored-properties-001-expected.txt: Added.
        * platform/mac/TestExpectations:
        * tests-options.json:

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

        Web Inspector: Canvas: show WebGPU shader pipelines
        https://bugs.webkit.org/show_bug.cgi?id=201675

        Reviewed by Joseph Pecoraro.

        Split existing shader tests into WebGL and WebGPU sub-tests for different platforms.

        * inspector/canvas/requestShaderSource.html:
        * inspector/canvas/requestShaderSource-expected.txt:
        * inspector/canvas/updateShader.html:
        * inspector/canvas/updateShader-expected.txt:

        * inspector/canvas/resources/shaderProgram-utilities-webgpu.js: Added.
        * inspector/canvas/requestShaderSource-webgpu.html: Added.
        * inspector/canvas/requestShaderSource-webgpu-expected.txt: Added.
        * inspector/canvas/shaderProgram-add-remove-webgpu.html: Added.
        * inspector/canvas/shaderProgram-add-remove-webgpu-expected.txt: Added.
        * inspector/canvas/updateShader-webgpu-expected.txt: Added.
        * inspector/canvas/updateShader-webgpu.html: Added.

        * inspector/canvas/resources/shaderProgram-utilities-webgl.js: Renamed from LayoutTests/inspector/canvas/resources/shaderProgram-utilities.js.
        * inspector/canvas/console-record-webgl.html:
        * inspector/canvas/console-record-webgl2.html:
        * inspector/canvas/recording-webgl-frameCount.html:
        * inspector/canvas/recording-webgl-full.html:
        * inspector/canvas/recording-webgl-memoryLimit.html:
        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl2-frameCount.html:
        * inspector/canvas/recording-webgl2-full.html:
        * inspector/canvas/recording-webgl2-memoryLimit.html:
        * inspector/canvas/recording-webgl2-snapshots.html:
        * inspector/canvas/requestShaderSource-webgl.html: Added.
        * inspector/canvas/requestShaderSource-webgl-expected.txt: Added.
        * inspector/canvas/setShaderProgramDisabled.html:
        * inspector/canvas/setShaderProgramHighlighted.html:
        * inspector/canvas/shaderProgram-add-remove-webgl.html:
        * inspector/canvas/shaderProgram-add-remove-webgl2.html:
        * inspector/canvas/updateShader-webgl.html: Added.
        * inspector/canvas/updateShader-webgl-expected.txt: Added.

        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2019-09-19  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [SVG2]: Add auto behavior for rx and ry to the SVG <ellipse> and <rect> elements
        https://bugs.webkit.org/show_bug.cgi?id=199843

        Reviewed by Simon Fraser, Nikolas Zimmermann.

        Add tests which exercise the initial setting for rx and ry: length, 'auto'.
        Add tests to dynamically change the values of these properties from length
        to 'auto'.

        Skip the tests with dynamic changes till webkit.org/b/201918 is fixed.

        * TestExpectations:
        * svg/css/parse-length-expected.txt:
        * svg/css/parse-length.html:
        * svg/custom/ellipse-radius-auto-dynamic-expected.svg: Added.
        * svg/custom/ellipse-radius-auto-dynamic.svg: Added.
        * svg/custom/ellipse-radius-auto-initial-expected.svg: Added.
        * svg/custom/ellipse-radius-auto-initial.svg: Added.
        * svg/custom/ellipse-radius-length-initial-expected.svg: Added.
        * svg/custom/ellipse-radius-length-initial.svg: Added.
        * svg/custom/rect-radius-auto-dynamic-expected.svg: Added.
        * svg/custom/rect-radius-auto-dynamic.svg: Added.
        * svg/custom/rect-radius-auto-initial-expected.svg: Added.
        * svg/custom/rect-radius-auto-initial.svg: Added.
        * svg/custom/rect-radius-length-initial-expected.svg: Added.
        * svg/custom/rect-radius-length-initial.svg: Added.

2019-09-19  Peng Liu  <peng.liu6@apple.com>

        HTMLVideoElement with a broken poster image will take square dimension
        https://bugs.webkit.org/show_bug.cgi?id=174122
        <rdar://problem/33121806>

        Reviewed by Daniel Bates.

        When only the width (no height) attribute of a video element is given
        and the the poster image is missing (cannot be downloaded),
        the aspect ratio of the video element should not be 1, which is the default behavior
        of WebKit to paint a broken image. Instead, it should be the aspect ratio of the video content.

        * media/video-poster-not-found-expected.txt: Added.
        * media/video-poster-not-found.html: Added.

2019-09-19  Miguel Gomez  <magomez@igalia.com>

        [WPE][GTK] Gardening after r250087
        https://bugs.webkit.org/show_bug.cgi?id=201984

        Unreviewed WPE and GTK+ gardening after r250087.

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

2019-09-18  Devin Rousso  <drousso@apple.com>

        Web Inspector: Better handling for large arrays and collections in Object Trees
        https://bugs.webkit.org/show_bug.cgi?id=143589
        <rdar://problem/16135388>

        Reviewed by Joseph Pecoraro.

        * inspector/runtime/getCollectionEntries.html: Added.
        * inspector/runtime/getCollectionEntries-expected.txt: Added.
        * inspector/runtime/getDisplayableProperties.html: Added.
        * inspector/runtime/getDisplayableProperties-expected.txt: Added.
        * inspector/runtime/getProperties.html:
        * inspector/runtime/getProperties-expected.txt:
        * inspector/runtime/resources/property-descriptor-utilities.js: Added.
        (makeArray):
        (makeObject):
        (makeMap):
        (makeSet):
        (makeWeakMap):
        (makeWeakSet):
        (TestPage.registerInitializer.ProtocolTest.PropertyDescriptorUtilities.logForEach):
        (TestPage.registerInitializer.ProtocolTest.PropertyDescriptorUtilities.stringifyRemoteObject):

        * inspector/model/remote-object-weak-collection.html:

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

        Unreviewed test gardening for iOS.

        * platform/ios/TestExpectations: Mark quicklook/numbers-09.html as failing.

2019-09-18  Andy Estes  <aestes@apple.com>

        [Apple Pay] Tell websites why a session was cancelled
        https://bugs.webkit.org/show_bug.cgi?id=201912

        Reviewed by Brady Eidson.

        * http/tests/ssl/applepay/ApplePayCancelEvent.https-expected.txt: Added.
        * http/tests/ssl/applepay/ApplePayCancelEvent.https.html: Added.

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

        REGRESSION: (Catalina) fast/images/async-image-multiple-clients-repaint.html is a flakey failure.
        rdar://55484256

        Unreviewed Test Gardening.

        * platform/mac/TestExpectations:

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

        REGRESSION (macOS): Many webgpu/whlsl* tests are flaky failures.
        https://bugs.webkit.org/show_bug.cgi?id=201877

        Unreviewed Test Gardening.

        Two additional tests are flaky, marking as such.

        * platform/mac/TestExpectations:

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

        Unreviewed iOS 13 test gardening, update test expectations.

        * platform/ios/TestExpectations:

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

        Unreviewed iOS 13 test gardening, udpate test expectations and baselines.

        * platform/ios/TestExpectations:
        * platform/ios/js/dom/navigator-maxtouchpoints-expected.txt: Added.
        * platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt:

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

        Unreviewed test gardening, rebaseline a test after r249963.

        * media/track/track-cue-rendering-rtl-expected.txt:

2019-09-17  Chris Dumez  <cdumez@apple.com>

        Unreviewed, address flakiness of imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update_error.https.html.

        Stop logging console messages.

        * TestExpectations:

2019-09-17  Russell Epstein  <russell_e@apple.com>

        Rebaseline imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window.html for Catalina and iOS 13.
        https://bugs.webkit.org/show_bug.cgi?id=172357

        Unreviewed Test Gardening.

        * platform/ios/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt:
        * platform/mac-mojave/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Copied from LayoutTests/platform/ios/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt.
        * platform/mac/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt:

2019-09-17  Chris Dumez  <cdumez@apple.com>

        Update testharness.js from upstream for web-platform-tests
        https://bugs.webkit.org/show_bug.cgi?id=201843

        Reviewed by Jiewen Tan.

        * http/wpt/resource-timing/rt-initiatorType-other-expected.txt:
        * http/wpt/webauthn/resources/util.js:

2019-09-17  Nikolas Zimmermann  <zimmermann@kde.org>

        SVG <animateMotion> does not reset the element to its first animation frame if its fill is "remove"
        https://bugs.webkit.org/show_bug.cgi?id=201565

        Reviewed by Said Abou-Hallawa.

        Add a layout test covering fill="remove" support <animate> and <animateMotion>.
        Add another layout test covering both fill="remove" and fill="freeze" for
        <animateMotion> on SVG elements and their instances (<use>).

        * svg/animations/animateMotion-remove-freeze-use-expected.svg: Added.
        * svg/animations/animateMotion-remove-freeze-use.svg: Added.
        * svg/animations/fill-remove-support-expected.txt: Added.
        * svg/animations/fill-remove-support.html: Added.
        * svg/animations/resources/fill-remove-support.svg: Added.

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

        REGRESSION (macOS): Many webgpu/whlsl* tests are flaky failures.
        https://bugs.webkit.org/show_bug.cgi?id=201877.

        Unreviewed Test Gardening.

        Incorrectly marked tests as Failures. Changed to ImageOnlyFailures as
	intended.
        * platform/mac/TestExpectations:

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

        REGRESSION (macOS): Many webgpu/whlsl* tests are flaky failures.
        https://bugs.webkit.org/show_bug.cgi?id=201877

        Unreviewed Test Gardening.

        * platform/mac/TestExpectations:

2019-09-17  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: HTML Formatter - better handling for HTML specific tag cases (<p>/<li>)
        https://bugs.webkit.org/show_bug.cgi?id=201757
        <rdar://problem/55409987>

        Reviewed by Devin Rousso.

        * inspector/formatting/formatting-html-expected.txt:
        * inspector/formatting/formatting-html.html:
        * inspector/formatting/resources/html-tests/auto-close-normal-expected.html: Renamed from LayoutTests/inspector/formatting/resources/html-tests/auto-close-expected.html.
        * inspector/formatting/resources/html-tests/auto-close-normal.html: Renamed from LayoutTests/inspector/formatting/resources/html-tests/auto-close.html.
        * inspector/formatting/resources/html-tests/auto-close-special-expected.html: Added.
        * inspector/formatting/resources/html-tests/auto-close-special.html: Added.
        * inspector/formatting/resources/html-tests/list-expected.html:
        * inspector/formatting/resources/html-tests/list.html:
        * inspector/formatting/resources/html-tests/not-well-formed-1-expected.html:
        * inspector/formatting/resources/html-tests/not-well-formed-1.html:
        * inspector/formatting/resources/html-tests/p-expected.html: Added.
        * inspector/formatting/resources/html-tests/p.html: Added.
        * inspector/formatting/resources/html-tests/table-expected.html: Added.
        * inspector/formatting/resources/html-tests/table.html: Added.
        * inspector/formatting/resources/html-tests/tag-case-expected.html: Added.
        * inspector/formatting/resources/html-tests/tag-case.html: Added.
        Tests for HTML specialties.

        * inspector/formatting/formatting-xml-expected.txt:
        * inspector/formatting/formatting-xml.html:
        * inspector/formatting/resources/xml-tests/tag-case-expected.xml: Added.
        * inspector/formatting/resources/xml-tests/tag-case.xml: Added.
        * inspector/formatting/resources/xml-tests/valid-html-invalid-xml-expected.xml:
        * inspector/formatting/resources/xml-tests/valid-html-invalid-xml.xml:
        XML is case-sensitive. Ensure XML doesn't get more of the HTML specialties.

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

        TextIterator should convert tabs to spaces
        https://bugs.webkit.org/show_bug.cgi?id=201863

        Reviewed by Zalan Bujtas.

        * editing/pasteboard/5761530-1.html:

        Set body to 'whitespace:pre' so tabs don't get lost in test output.

        * fast/tokenizer/script_extra_close-expected.txt:
        * imported/blink/fast/text/font-linux-normalize-expected.txt:
        * platform/mac/editing/pasteboard/5761530-1-expected.txt: Removed.

        No need for platform specific result.

        * editing/pasteboard/5761530-1-expected.txt:

2019-09-17  Chris Dumez  <cdumez@apple.com>

        REGRESSION (iOS 13): rAF stops firing when navigating away cross-origin and then back
        https://bugs.webkit.org/show_bug.cgi?id=201767
        <rdar://problem/55350854>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/tests/navigation/page-cache-requestAnimationFrame-expected.txt: Added.
        * http/tests/navigation/page-cache-requestAnimationFrame.html: Added.

2019-09-17  Chris Dumez  <cdumez@apple.com>

        Unreviewed, address flakiness of imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html

        Do not log console messages.

        * TestExpectations:

2019-09-17  Zalan Bujtas  <zalan@apple.com>

        [First-letter] Use WeakPtr for the first-letter insertion point.
        https://bugs.webkit.org/show_bug.cgi?id=201842
        <rdar://problem/51373788>

        Reviewed by Antti Koivisto.

        * fast/text/first-letter-with-columns-crash-expected.txt: Added.
        * fast/text/first-letter-with-columns-crash.html: Added.

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

        Access-Control-Expose-Headers parsed incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=172357

        Reviewed by Youenn Fablet.

        Add Mac/iOS expectations.

        * platform/ios/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Added.

2019-09-16  Alex Christensen  <achristensen@webkit.org>

        Remove "gopher" from list of special schemes in URLParser
        https://bugs.webkit.org/show_bug.cgi?id=201852

        Reviewed by Simon Fraser.

        * fast/url/invalid-urls-utf8-expected.txt:
        * fast/url/invalid-urls-utf8.html:
        * fast/url/segments-expected.txt:
        * fast/url/segments.html:
        * fast/url/standard-url-expected.txt:
        * fast/url/standard-url.html:
        * fetch/fetch-urls.json:
        * http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate-expected.txt:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rebaseline test after testharness.js update in r249918.

        * webgpu/whlsl/test-harness-test-expected.txt:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, fix several css-dark-mode tests to run properly after testharness.js update in r249918.

        * css-dark-mode/color-scheme-css-expected.txt:
        * css-dark-mode/color-scheme-css.html:
        * css-dark-mode/color-scheme-meta-expected.txt:
        * css-dark-mode/color-scheme-meta.html:
        * css-dark-mode/color-scheme-scrollbar-expected.txt:
        * css-dark-mode/color-scheme-scrollbar.html:
        * css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt:
        * css-dark-mode/older-syntax/supported-color-schemes-css.html:
        * css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt:
        * css-dark-mode/older-syntax/supported-color-schemes-meta.html:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update.https.html.

        This test is a flaky timeout since it was imported in r249886.

        * TestExpectations:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Update testharness.js from upstream
        https://bugs.webkit.org/show_bug.cgi?id=201808

        Reviewed by Darin Adler.

        Update testharness.js from upstream 6fd5e1e086ce590a4780a30d12968.
        Update existing layout tests so that they are compatible with this new version
        of testharness.js.

        * TestExpectations:
        * css-custom-properties-api/length-expected.txt:
        * css-custom-properties-api/length.html:
        * css-custom-properties-api/registerProperty.html:
        * css-dark-mode/older-systems/color-scheme-css-expected.txt:
        * css-dark-mode/older-systems/color-scheme-css.html:
        * css-dark-mode/older-systems/color-scheme-meta-expected.txt:
        * css-dark-mode/older-systems/color-scheme-meta.html:
        * css3/flexbox/style-change-expected.txt:
        * fast/css/DOMQuad-serialization.html:
        * fast/css/Element-style.html:
        * fast/css/parse-justify-self-expected.txt:
        * fast/css/parse-justify-self.html:
        * fast/events/clipboard-event-constructor-expected.txt:
        * fast/events/clipboard-event-constructor.html:
        * fast/media/mq-js-update-media-expected.txt:
        * fast/media/mq-js-update-media.html:
        * fast/mediacapturefromelement/CanvasCaptureMediaStream-offscreencanvas-expected.txt:
        * fast/mediastream/captureStream/canvas2d-expected.txt:
        * fast/mediastream/captureStream/canvas2d-heavy-drawing.html:
        * fast/mediastream/captureStream/canvas2d.html:
        * fast/shadow-dom/event-path-with-window-expected.txt:
        * fast/shadow-dom/event-path-with-window.html:
        * fast/shadow-dom/offsetParent-across-shadow-boundaries-expected.txt:
        * fast/shadow-dom/offsetParent-across-shadow-boundaries.html:
        * fast/shadow-dom/slotchange-for-slot-mutation-expected.txt:
        * fast/shadow-dom/slotchange-for-slot-mutation.html:
        * fast/shadow-dom/stylesheet-title-in-shadow-tree-expected.txt:
        * fast/shadow-dom/stylesheet-title-in-shadow-tree.html:
        * http/tests/fetch/redirectmode-and-preload-expected.txt:
        * http/tests/fetch/redirectmode-and-preload.html:
        * imported/blink/editing/selection/selectstart-event-crash-expected.txt:
        * js/promises-tests/promises-in-workers-expected.txt:
        * js/promises-tests/promises-in-workers.js:
        * resources/check-layout-th.js:
        (window.checkLayout):
        * resources/testharness.js:
        (WindowTestEnvironment):
        (WindowTestEnvironment.prototype._dispatch):
        (WindowTestEnvironment.prototype._forEach_windows):
        (WindowTestEnvironment.prototype.next_default_test_name):
        (WorkerTestEnvironment.prototype.next_default_test_name):
        (ServiceWorkerTestEnvironment.on_all_loaded):
        (ServiceWorkerTestEnvironment):
        (ShellTestEnvironment):
        (ShellTestEnvironment.prototype.next_default_test_name):
        (ShellTestEnvironment.prototype.on_new_harness_properties):
        (ShellTestEnvironment.prototype.on_tests_ready):
        (ShellTestEnvironment.prototype.add_on_loaded_callback):
        (ShellTestEnvironment.prototype.test_timeout):
        (create_test_environment):
        (is_shared_worker):
        (is_service_worker):
        (test):
        (promise_test):
        (this.wait_for):
        (EventWatcher):
        (done):
        * streams/readable-byte-stream-controller-expected.txt:
        * streams/readable-byte-stream-controller-worker-expected.txt: Added.
        * streams/readable-byte-stream-controller-worker.html: Copied from LayoutTests/streams/readable-byte-stream-controller.html.
        * streams/readable-byte-stream-controller.html:
        * streams/readable-stream-byob-reader-expected.txt:
        * streams/readable-stream-byob-reader-worker-expected.txt: Added.
        * streams/readable-stream-byob-reader-worker.html: Copied from LayoutTests/streams/readable-stream-byob-reader.html.
        * streams/readable-stream-byob-reader.html:
        * streams/readable-stream-byob-request-expected.txt:
        * streams/readable-stream-byob-request-worker-expected.txt: Copied from LayoutTests/streams/readable-stream-byob-request-expected.txt.
        * streams/readable-stream-byob-request-worker.html: Copied from LayoutTests/streams/readable-stream-byob-request.html.
        * streams/readable-stream-byob-request.html:
        * streams/reference-implementation/readable-stream-templated-expected.txt:
        * streams/reference-implementation/readable-stream-templated.html:
        * streams/reference-implementation/writable-stream-abort-expected.txt:
        * streams/reference-implementation/writable-stream-expected.txt:
        * webrtc/datachannel/basic-expected.txt:
        * webrtc/datachannel/basic.html:
        * webrtc/datachannel/mdns-ice-candidates-expected.txt:
        * webrtc/datachannel/mdns-ice-candidates.html:
        * webrtc/pc-detached-document-expected.txt:
        * webrtc/pc-detached-document.html:
        * webrtc/video-mute-expected.txt:
        * webrtc/video-mute-vp8-expected.txt:
        * webrtc/video-mute-vp8.html:
        * webrtc/video-mute.html:

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

        [ macOS ] Layout tests webgpu/*-triangle-strip.html are flaky failures.
        https://bugs.webkit.org/show_bug.cgi?id=201827

        Unreviewed Test Gardening.

        * platform/mac/TestExpectations:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, mark imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html as flaky on iOS.

        This test was imported in r249886.

        * platform/ios-wk2/TestExpectations:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip a couple of new WPT tests that are timing out on the bots.

        These tests were imported in r249886.

        * TestExpectations:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, land expectations for imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_swapcache_error.https.html.

        This test was imported in r249886.

        * TestExpectations:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, mark imported/w3c/web-platform-tests/html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode.html as failing

        This test was imported from upstream in r249886.

        * TestExpectations:

2019-09-16  Chris Dumez  <cdumez@apple.com>

        Unreviewed, address flakiness of imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update.https.html

        Flaky since r249886.

        * TestExpectations:

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

        Eliminate separate simple line layout path from TextIterator
        https://bugs.webkit.org/show_bug.cgi?id=201760

        Reviewed by Zalan Bujtas.

        This patch makes simple and complex line layout path results from TextIterator match, causing some whitespace changes.

        * animations/lineheight-animation-expected.txt:
        * animations/simultaneous-start-transform-expected.txt:
        * animations/width-using-ems-expected.txt:
        * compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt:
        * css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt:
        * fast/events/window-events-bubble-expected.txt:
        * fast/events/window-events-bubble2-expected.txt:
        * fast/tokenizer/script_extra_close-expected.txt:
        * legacy-animation-engine/animations/lineheight-animation-expected.txt:
        * legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:

2019-09-16  Andres Gonzalez  <andresg_22@apple.com>

        Expose misspelling ranges for editable content to accessibility clients.
        https://bugs.webkit.org/show_bug.cgi?id=201752
        <rdar://problem/49556828>

        Reviewed by Chris Fleizach.

        * accessibility/misspelling-range-expected.txt: Added.
        * accessibility/misspelling-range.html: Added.
        * platform/ios-simulator/TestExpectations:

2019-09-15  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
        * platform/mac/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt:
        * platform/win/TestExpectations:
        * tests-options.json:

2019-09-14  Antti Koivisto  <antti@apple.com>

        ASSERTION FAILED: !renderer() in  WebCore::Text::~Text
        https://bugs.webkit.org/show_bug.cgi?id=172514
        <rdar://problem/32470509>

        Unreviewed, this assert should be fixed now.

        * TestExpectations:

        Unskipping imported/w3c/web-platform-tests/innerText/getter.html on debug

2019-09-13  Youenn Fablet  <youenn@apple.com>

        WPT importer should check META global tag in .any.js files to generate the valid .html stub files
        https://bugs.webkit.org/show_bug.cgi?id=201718

        Reviewed by Chris Dumez.

        * platform/mac-wk1/TestExpectations:
        Skipping service worker tests.

2019-09-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: HTML Formatter - XML mode
        https://bugs.webkit.org/show_bug.cgi?id=201758

        Reviewed by Devin Rousso.

        * inspector/formatting/formatting-xml-expected.txt: Added.
        * inspector/formatting/formatting-xml.html: Added.
        * inspector/formatting/resources/formatting-utilities.js:
        (TestPage.registerInitializer.async.runFormattingTest):
        * inspector/formatting/resources/xml-tests/atom-expected.xml: Added.
        * inspector/formatting/resources/xml-tests/atom.xml: Added.
        * inspector/formatting/resources/xml-tests/basic-expected.xml: Added.
        * inspector/formatting/resources/xml-tests/basic.xml: Added.
        * inspector/formatting/resources/xml-tests/rss-expected.xml: Added.
        * inspector/formatting/resources/xml-tests/rss.xml: Added.
        * inspector/formatting/resources/xml-tests/valid-html-invalid-xml-expected.xml: Added.
        * inspector/formatting/resources/xml-tests/valid-html-invalid-xml.xml: Added.
        * inspector/formatting/resources/xml-tests/xslt-expected.xml: Added.
        * inspector/formatting/resources/xml-tests/xslt.xml: Added.

2019-09-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: HTML Formatting: Handle infinite loop for incomplete script data
        https://bugs.webkit.org/show_bug.cgi?id=201769

        Reviewed by Devin Rousso.

        * inspector/formatting/formatting-html-expected.txt:
        * inspector/formatting/formatting-html.html:
        * inspector/formatting/resources/html-tests/eof-7-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-7.html: Added.
        * inspector/formatting/resources/html-tests/eof-8-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-8.html: Added.
        * inspector/formatting/resources/html-tests/eof-9-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-9.html: Added.

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

        Layout Test webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html is failing on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=201784

        Unreviewed Test Gardening.

        * platform/ios/TestExpectations: Marked Test as Failing.

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

        IntersectionObserverEntry#intersectionRatio can be larger than 1
        https://bugs.webkit.org/show_bug.cgi?id=200776

        Reviewed by Simon Fraser.

        * intersection-observer/intersection-clipped-to-target-expected.txt: Added.
        * intersection-observer/intersection-clipped-to-target.html: Added.

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

        Layout Test http/tests/appcache/remove-cache.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=199124

        Unreviewed Test Gardening..

        * platform/mac/TestExpectations: Marked Test as Flaky.

2019-09-13  Nikolas Zimmermann  <zimmermann@kde.org>

        SMIL animations of SVG <view> element have no effect
        https://bugs.webkit.org/show_bug.cgi?id=94469

        Reviewed by Said Abou-Hallawa.

        Add new layout tests to verify that dynamic modifications of the <view> element cause
        visual updates. Previously SVGSVGElement was never notified about changes of the
        SVGViewElement and thus did not update the stored viewBox.

        * svg/custom/animation-on-view-element-expected.html: Added.
        * svg/custom/animation-on-view-element.html: Added. This is a new reftest
        demonstrating that animations of SVG <view> elements now behave as expected.
        * svg/custom/multiple-view-elements-expected.html: Added.
        * svg/custom/multiple-view-elements.html: Added.
        * svg/dom/SVGViewSpec-multiple-views-expected.txt:
        * svg/dom/SVGViewSpec-multiple-views.html: Extend to cover dynamic modifications.

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

        Unreviewed, rolling out r249709.

        Layout test added in this patch has been consistently failing
        since it landed.

        Reverted changeset:

        "Option + arrow moves caret past whitespace on iOS"
        https://bugs.webkit.org/show_bug.cgi?id=201575
        https://trac.webkit.org/changeset/249709

2019-09-13  Chris Dumez  <cdumez@apple.com>

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/security/appcache-in-private-browsing.html
        https://bugs.webkit.org/show_bug.cgi?id=201704

        Reviewed by Youenn Fablet.

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/security/appcache-in-private-browsing.html
        and use the new useEphemeralSession WKTR / DRT flag instead.

        * http/tests/security/appcache-in-private-browsing-expected.txt:
        * http/tests/security/appcache-in-private-browsing.html:
        * http/tests/security/resources/frame-for-appcache-in-private-browsing.html:
        * platform/mac-wk2/TestExpectations:

2019-09-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Formatter: Pretty Print HTML resources (including inline <script>/<style>)
        https://bugs.webkit.org/show_bug.cgi?id=201535
        <rdar://problem/29119232>

        Reviewed by Devin Rousso.

        * TestExpectations:
        Mark slow test.

        * inspector/formatting/formatting-css.html:
        * inspector/formatting/formatting-html-expected.txt: Added.
        * inspector/formatting/formatting-html.html: Added.
        * inspector/formatting/formatting-javascript-expected.txt:
        * inspector/formatting/formatting-javascript.html:
        * inspector/formatting/formatting-json-expected.txt:
        * inspector/formatting/formatting-json.html:
        * inspector/formatting/resources/formatting-utilities.js: Renamed from LayoutTests/inspector/formatting/resources/utilities.js.
        Update formatting tests to use new path to utilities.

        * inspector/formatting/resources/css-tests/basic-expected.css:
        * inspector/formatting/resources/css-tests/gradient-expected.css:
        * inspector/formatting/resources/css-tests/keyframes-expected.css:
        * inspector/formatting/resources/css-tests/media-query-expected.css:
        * inspector/formatting/resources/css-tests/selectors-expected.css:
        * inspector/formatting/resources/css-tests/wrapping-expected.css:
        * inspector/codemirror/resources/prettyprinting/css-tests/basic-expected.css:
        * inspector/codemirror/resources/prettyprinting/css-tests/calc-expected.css:
        * inspector/codemirror/resources/prettyprinting/css-tests/gradient-expected.css:
        * inspector/codemirror/resources/prettyprinting/css-tests/keyframes-expected.css:
        * inspector/codemirror/resources/prettyprinting/css-tests/media-query-expected.css:
        * inspector/codemirror/resources/prettyprinting/css-tests/selectors-expected.css:
        * inspector/codemirror/resources/prettyprinting/css-tests/wrapping-expected.css:
        Eliminate an extra trailing newline in CSS formatted results.

        * inspector/formatting/resources/html-tests/attributes-expected.html: Added.
        * inspector/formatting/resources/html-tests/attributes.html: Added.
        * inspector/formatting/resources/html-tests/auto-close-expected.html: Added.
        * inspector/formatting/resources/html-tests/auto-close.html: Added.
        * inspector/formatting/resources/html-tests/basic-1-expected.html: Added.
        * inspector/formatting/resources/html-tests/basic-1.html: Added.
        * inspector/formatting/resources/html-tests/basic-2-expected.html: Added.
        * inspector/formatting/resources/html-tests/basic-2.html: Added.
        * inspector/formatting/resources/html-tests/comments-expected.html: Added.
        * inspector/formatting/resources/html-tests/comments.html: Added.
        * inspector/formatting/resources/html-tests/eof-1-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-1.html: Added.
        * inspector/formatting/resources/html-tests/eof-2-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-2.html: Added.
        * inspector/formatting/resources/html-tests/eof-3-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-3.html: Added.
        * inspector/formatting/resources/html-tests/eof-4-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-4.html: Added.
        * inspector/formatting/resources/html-tests/eof-5-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-5.html: Added.
        * inspector/formatting/resources/html-tests/eof-6-expected.html: Added.
        * inspector/formatting/resources/html-tests/eof-6.html: Added.
        * inspector/formatting/resources/html-tests/inline-script-expected.html: Added.
        * inspector/formatting/resources/html-tests/inline-script.html: Added.
        * inspector/formatting/resources/html-tests/inline-style-expected.html: Added.
        * inspector/formatting/resources/html-tests/inline-style.html: Added.
        * inspector/formatting/resources/html-tests/list-expected.html: Added.
        * inspector/formatting/resources/html-tests/list.html: Added.
        * inspector/formatting/resources/html-tests/not-well-formed-1-expected.html: Added.
        * inspector/formatting/resources/html-tests/not-well-formed-1.html: Added.
        * inspector/formatting/resources/html-tests/not-well-formed-2-expected.html: Added.
        * inspector/formatting/resources/html-tests/not-well-formed-2.html: Added.
        * inspector/formatting/resources/html-tests/not-well-formed-3-expected.html: Added.
        * inspector/formatting/resources/html-tests/not-well-formed-3.html: Added.
        * inspector/formatting/resources/html-tests/self-closing-expected.html: Added.
        * inspector/formatting/resources/html-tests/self-closing.html: Added.
        HTMLFormatter tests.

        * inspector/formatting/resources/html-source-map-tests/1.html: Added.
        * inspector/formatting/resources/html-source-map-tests/2.html: Added.
        * inspector/formatting/resources/css-source-map-tests/1.css: Added.
        * inspector/formatting/resources/javascript-source-map-tests/1.js: Added.
        * inspector/formatting/source-map-css-1-expected.txt: Added.
        * inspector/formatting/source-map-css-1.html: Added.
        * inspector/formatting/source-map-html-1-expected.txt: Added.
        * inspector/formatting/source-map-html-1.html: Added.
        * inspector/formatting/source-map-html-2-expected.txt: Added.
        * inspector/formatting/source-map-html-2.html: Added.
        * inspector/formatting/source-map-javascript-1-expected.txt: Added.
        * inspector/formatting/source-map-javascript-1.html: Added.
        * inspector/formatting/resources/source-map-utilities.js: Added.
        (TestPage.registerInitializer.logLocationWithContext):
        (TestPage.registerInitializer.async.runSourceMapTest):
        (TestPage.registerInitializer.):
        (TestPage.registerInitializer.async.loadFormattedContentAndSourceMap):
        (TestPage.registerInitializer.async.loadSourceMapTestResource):
        (TestPage.registerInitializer.window.addSourceMapTest):
        (TestPage.registerInitializer):
        New formatter source map tests to ensure we can go back and forth reasonably
        between formatted content and original content.

        * inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations-expected.txt: Added.
        * inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations.html: Added.
        * inspector/debugger/breakpoints/resources/dump-inline-scripts.html: Added.
        * inspector/debugger/breakpoints/resources/dump.js:
        (TestPage.registerInitializer.window.addDumpAllPauseLocationsTestCase):
        (TestPage.registerInitializer.addDumpAllPauseLocationsTestCaseForScript):
        (TestPage.registerInitializer):
        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.window.findScript):
        (TestPage.registerInitializer.window.findResource):
        Test for resolving breakpoints at column locations in <script> which was
        not previously possible and would not have worked previously.

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

        Unreviewed test gardening, rebaseline inspector/model/remote-object.html for WK1 after r249808.

        * platform/mac-wk1/inspector/model/remote-object-expected.txt: Added.

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

        Unreviewed test gardening, rebaseline inspector/model/remote-object.html after r249808.

        * inspector/model/remote-object-expected.txt:

2019-09-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Cocoa] Text indicator for an image link on the front page of apple.com looks wrong
        https://bugs.webkit.org/show_bug.cgi?id=201724
        <rdar://problem/54622894>

        Reviewed by Tim Horton.

        Add a new layout test to exercise this scenario.

        * fast/text-indicator/text-indicator-empty-link-expected.txt: Added.
        * fast/text-indicator/text-indicator-empty-link.html: Added.

2019-09-12  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
        * tests-options.json:

2019-09-12  Devin Rousso  <drousso@apple.com>

        REGRESSION? (r249786): inspector/canvas/context-attributes.html is failing on macOS WK1
        https://bugs.webkit.org/show_bug.cgi?id=201714
        <rdar://problem/55290473>

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/context-attributes.html:
        * inspector/canvas/context-attributes-expected.txt:

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

        Layout Test http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199075

        Reviewed by Youenn Fablet.

        Currently, this test includes js-test.js twice, which is causing the test to be flaky.

        * http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror.html: Removed second instance.

2019-09-11  Youenn Fablet  <youenn@apple.com>

        Disable DTLS10
        https://bugs.webkit.org/show_bug.cgi?id=201679

        Reviewed by Alex Christensen.

        * webrtc/datachannel/dtls10-expected.txt: Added.
        * webrtc/datachannel/dtls10.html: Added.

2019-09-11  Saam Barati  <sbarati@apple.com>

        [WHLSL] Ensure structs/arrays with pointers as fields are disallowed
        https://bugs.webkit.org/show_bug.cgi?id=201525

        Reviewed by Robin Morisset.

        This patch fixes a bug in our test harness where we forgot to wait for the gpu
        device to load before running test harness tests. This patch fixes this oversight
        and asserts that we have always finished loading before running a test.

        * webgpu/whlsl/array-spec-tests.html:
        * webgpu/whlsl/ensure-proper-pointer-usage-expected.txt: Added.
        * webgpu/whlsl/ensure-proper-pointer-usage.html: Added.
        * webgpu/whlsl/js/test-harness.js:
        (Harness):
        (Harness.prototype.async.requestDevice):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.async.checkCompileFail):
        * webgpu/whlsl/pointer-spec-tests.html:
        * webgpu/whlsl/test-harness-test.html:

2019-09-11  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext
        https://bugs.webkit.org/show_bug.cgi?id=201650

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/create-context-webgpu.html:
        * inspector/canvas/create-context-webgpu-expected.txt:
        * inspector/canvas/resources/create-context-utilities.js:
        (createDetachedCanvas):
        (createCSSCanvas):
        (destroyCanvases):

        * inspector/canvas/requestClientNodes.html: Added.
        * inspector/canvas/requestClientNodes-expected.txt: Added.
        * inspector/canvas/requestClientNodes-css.html: Renamed from LayoutTests/inspector/canvas/css-canvas-clients.html.
        * inspector/canvas/requestClientNodes-css-expected.txt: Renamed from LayoutTests/inspector/canvas/css-canvas-clients-expected.txt.
        * inspector/canvas/requestClientNodes-webgpu.html: Added.
        * inspector/canvas/requestClientNodes-webgpu-expected.txt: Added.

        * inspector/canvas/resolveContext-2d.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d.html.
        * inspector/canvas/resolveContext-2d-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d-expected.txt.
        * inspector/canvas/resolveContext-bitmaprenderer.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer.html.
        * inspector/canvas/resolveContext-bitmaprenderer-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer-expected.txt.
        * inspector/canvas/resolveContext-webgl.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl.html.
        * inspector/canvas/resolveContext-webgl-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl-expected.txt.
        * inspector/canvas/resolveContext-webgl2.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2.html.
        * inspector/canvas/resolveContext-webgl2-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2-expected.txt.
        * inspector/canvas/resolveContext-webgpu.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
        * inspector/canvas/resolveContext-webgpu-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu-expected.txt.

        * inspector/canvas/context-attributes-expected.txt:

        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2019-09-11  Chris Dumez  <cdumez@apple.com>

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cache-storage/cache-persistency.https.html
        https://bugs.webkit.org/show_bug.cgi?id=201691

        Reviewed by Alex Christensen.

        Split cache-persistency.https.html into 2 tests (one for private session and one for
        regular session) to avoid relying on legacy testRunner.setPrivateBrowsingEnabled_DEPRECATED().

        * http/tests/cache-storage/cache-persistency-private-expected.txt: Added.
        * http/tests/cache-storage/cache-persistency-private.html: Added.
        * http/tests/cache-storage/cache-persistency.https-expected.txt:
        * http/tests/cache-storage/cache-persistency.https.html:

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

        Unreviewed, rolling out r249768.

        Caused 4 API tests to assert, perf test failures, and layout
        test crashes under ASan

        Reverted changeset:

        "Remove unnecessary abstractions around WebsiteDataStore"
        https://bugs.webkit.org/show_bug.cgi?id=201655
        https://trac.webkit.org/changeset/249768

2019-09-11  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r249753.

        caused inspector/canvas/shaderProgram-add-remove-webgl.html to
        crash on all Mac platforms.

        Reverted changeset:

        "Web Inspector: Canvas: instrument WebGPUDevice instead of
        GPUCanvasContext"
        https://bugs.webkit.org/show_bug.cgi?id=201650
        https://trac.webkit.org/changeset/249753

2019-09-11  Alex Christensen  <achristensen@webkit.org>

        Remove unnecessary abstractions around WebsiteDataStore
        https://bugs.webkit.org/show_bug.cgi?id=201655

        Reviewed by Chris Dumez.

        * platform/mac-wk2/TestExpectations:

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

        Unreviewed, rolling out r249758.

        Breaks the watchOS build.

        Reverted changeset:

        "[WHLSL] Ensure structs/arrays with pointers as fields are
        disallowed"
        https://bugs.webkit.org/show_bug.cgi?id=201525
        https://trac.webkit.org/changeset/249758

2019-09-11  Chris Dumez  <cdumez@apple.com>

        Unreviewed, re-skip service worker test that was unskipped in r249716

        This test is still a flaky timeout.

        * TestExpectations:

2019-09-11  Frederic Wang  <fwang@igalia.com>

        Bug 201603 - Synchronize MathML WPT tests against upstream
        https://bugs.webkit.org/show_bug.cgi?id=201603

        Reviewed by Rob Buis.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-2-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Added.
        * platform/mac-wk1/TestExpectations:

2019-09-11  Saam Barati  <sbarati@apple.com>

        [WHLSL] Ensure structs/arrays with pointers as fields are disallowed
        https://bugs.webkit.org/show_bug.cgi?id=201525

        Reviewed by Robin Morisset.

        This patch fixes a bug in our test harness where we forgot to wait for the gpu
        device to load before running test harness tests. This patch fixes this oversight
        and asserts that we have always finished loading before running a test.

        * webgpu/whlsl/array-spec-tests.html:
        * webgpu/whlsl/ensure-proper-pointer-usage-expected.txt: Added.
        * webgpu/whlsl/ensure-proper-pointer-usage.html: Added.
        * webgpu/whlsl/js/test-harness.js:
        (Harness):
        (Harness.prototype.async.requestDevice):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.async.checkCompileFail):
        * webgpu/whlsl/pointer-spec-tests.html:
        * webgpu/whlsl/test-harness-test.html:

2019-09-10  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext
        https://bugs.webkit.org/show_bug.cgi?id=201650

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/create-context-webgpu.html:
        * inspector/canvas/create-context-webgpu-expected.txt:
        * inspector/canvas/resources/create-context-utilities.js:
        (createDetachedCanvas):
        (createCSSCanvas):
        (destroyCanvases):

        * inspector/canvas/requestClientNodes.html: Added.
        * inspector/canvas/requestClientNodes-expected.txt: Added.
        * inspector/canvas/requestClientNodes-css.html: Renamed from LayoutTests/inspector/canvas/css-canvas-clients.html.
        * inspector/canvas/requestClientNodes-css-expected.txt: Renamed from LayoutTests/inspector/canvas/css-canvas-clients-expected.txt.
        * inspector/canvas/requestClientNodes-webgpu.html: Added.
        * inspector/canvas/requestClientNodes-webgpu-expected.txt: Added.

        * inspector/canvas/resolveContext-2d.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d.html.
        * inspector/canvas/resolveContext-2d-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d-expected.txt.
        * inspector/canvas/resolveContext-bitmaprenderer.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer.html.
        * inspector/canvas/resolveContext-bitmaprenderer-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer-expected.txt.
        * inspector/canvas/resolveContext-webgl.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl.html.
        * inspector/canvas/resolveContext-webgl-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl-expected.txt.
        * inspector/canvas/resolveContext-webgl2.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2.html.
        * inspector/canvas/resolveContext-webgl2-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2-expected.txt.
        * inspector/canvas/resolveContext-webgpu.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
        * inspector/canvas/resolveContext-webgpu-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu-expected.txt.

        * inspector/canvas/context-attributes-expected.txt:

        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2019-09-10  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove legacy CodeMirror based pretty printers
        https://bugs.webkit.org/show_bug.cgi?id=201624

        Reviewed by Devin Rousso.

        * inspector/codemirror/prettyprinting-css-expected.txt: Removed.
        * inspector/codemirror/prettyprinting-css.html: Removed.
        * inspector/codemirror/prettyprinting-javascript-expected.txt: Removed.
        * inspector/codemirror/prettyprinting-javascript.html: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/basic-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/basic.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/calc-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/calc.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/gradient-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/gradient.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/keyframes-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/keyframes.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/media-query-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/media-query.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/selectors-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/selectors.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/wrapping-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-tests/wrapping.css: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/block-comment-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/block-comment.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/switch-case-default-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/switch-case-default.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/unary-binary-operators-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/unary-binary-operators.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while-expected.js: Removed.
        * inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while.js: Removed.
        * inspector/codemirror/resources/prettyprinting/utilities.js: Removed.

2019-09-10  Chris Dumez  <cdumez@apple.com>

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cookies/private-cookie-storage.html
        https://bugs.webkit.org/show_bug.cgi?id=201648

        Reviewed by Alex Christensen.

        Use testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() / setShouldSwapToDefaultSessionOnNextNavigation() to
        truly switch session on WebKit2 instead of using the testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.

        * http/tests/cookies/private-cookie-storage-expected.txt:
        * http/tests/cookies/private-cookie-storage.html:
        * http/tests/cookies/resources/cookies-test-pre.js:
        (testCookies):

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

        [iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/registration-mime-types.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=201190

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=201665

        Unreviewed test gardening.

        This test was unskipped as part of r249716, but it is still frequently failing.

        * TestExpectations: Skip the test again.

2019-09-10  Jiewen Tan  <jiewen_tan@apple.com>

        REGRESSION: [ Catalina WK2 ] http/wpt/webauthn/public-key-credential-create-success-u2f.https.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=201620
        <rdar://problem/51524958>

        Reviewed by Alex Christensen.

        * http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:
        Remove the timeout value given those tests should never time out.
        * platform/mac-wk2/TestExpectations:
        Change the test expectation to Pass.

2019-09-10  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION (r249460): LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html is Failing
        https://bugs.webkit.org/show_bug.cgi?id=201478

        Reviewed by Simon Fraser.

        -- Revert r249460 which changed drawGreenAndBlueCheckerboardInSoftware().
        -- Remove the orientation bit from webgpu/resources/blue-checkered.png
           so drawing it is not affected by r249364.

        * webgpu/js/webgpu-functions.js:
        (drawGreenAndBlueCheckerboardInSoftware):
        * webgpu/resources/blue-checkered.png:

2019-09-10  Nikolas Zimmermann  <zimmermann@kde.org>

        Test SVGViewSpec behavior across page-loads with different anchors
        https://bugs.webkit.org/show_bug.cgi?id=201536

        Reviewed by Rob Buis.

        Added a new layout test to verify that navigating to different anchors within the same
        external SVG does not cause reloads. Instead scrollToAnchor() is used which causes an
        in-place navigation in the same document. The new test verifies that the SVGSVGElement
        is preserved when navigating between anchors, which indicates that no new document was
        created. Verify that the SVGViewSpec API works as intended, across navigations.

        * svg/dom/SVGViewSpec-multiple-views-expected.txt: Added.
        * svg/dom/SVGViewSpec-multiple-views.html: Added.
        * svg/dom/resources/multiple-view-elements.svg: Added.

2019-09-10  Chris Dumez  <cdumez@apple.com>

        Unreviewed, re-skip service worker test that was unskipped in r249716.

        This test is still flaky.

        * TestExpectations:

2019-09-10  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r249724.

        Patch included a lot more changes than intended

        Reverted changeset:

        "Unreviewed, re-skip service worker test that was unskipped in
        r249716."
        https://trac.webkit.org/changeset/249724

2019-09-10  Chris Dumez  <cdumez@apple.com>

        Unreviewed, re-skip service worker test that was unskipped in r249716.

        This test is still flaky.

        * TestExpectations:

2019-09-10  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Alex Christensen.

        * TestExpectations:
        * tests-options.json:

2019-09-10  Youenn Fablet  <youenn@apple.com>

        Remove MediaStreamPrivate::scheduleDeferredTask
        https://bugs.webkit.org/show_bug.cgi?id=200975
        <rdar://problem/55113418>

        Reviewed by Eric Carlson.

        * fast/mediastream/media-stream-track-source-failure.html:
        page mediaState may be updated synchronously.
        Get it just before failing a capture track to verify that the state is being updated after the track is stopped.

2019-09-10  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip / rebaseline a few service worker tests
        https://bugs.webkit.org/show_bug.cgi?id=201626

        * TestExpectations:

2019-09-10  Frederic Wang  <fwang@igalia.com>

        Ensure tests for legacy features are in LayoutTests/mathml
        https://bugs.webkit.org/show_bug.cgi?id=201604

        Reviewed by Rob Buis.

        This patch copies MathML WPT tests verifying legacy support for features removed from MathML
        Core. These tests will be overriden or removed in a future WPT synchronization, so we need
        to keep local copies to check these legacy features when the "MathML Core" option is
        disabled.

        * TestExpectations: Copy expectation.
        * mathml/non-core/frac-linethickness-001-expected.html: Added.
        * mathml/non-core/frac-linethickness-001.html: Added.
        * mathml/non-core/frac-linethickness-002-expected.html: Added.
        * mathml/non-core/frac-linethickness-002.html: Added.
        * mathml/non-core/frac-numalign-denomalign-001-expected.html: Added.
        * mathml/non-core/frac-numalign-denomalign-001.html: Added.
        * mathml/non-core/lengths-1-expected.html: Added.
        * mathml/non-core/lengths-1.html: Added.
        * mathml/non-core/lengths-2-expected.html: Added.
        * mathml/non-core/lengths-2.html: Added.
        * mathml/non-core/lengths-3-expected.txt: Added.
        * mathml/non-core/lengths-3.html: Added.
        * platform/gtk/TestExpectations: Copy expectation.
        * platform/win/TestExpectations: Add failure expectations.

2019-09-10  Ryosuke Niwa  <rniwa@webkit.org>

        Option + arrow moves caret past whitespace on iOS
        https://bugs.webkit.org/show_bug.cgi?id=201575

        Reviewed by Wenson Hsieh.

        Added a new test for moving caret by word granularity on iOS.

        * editing/selection/ios/move-by-word-with-keyboard-expected.txt: Added.
        * editing/selection/ios/move-by-word-with-keyboard.html: Added.
        * editing/selection/ios/select-non-editable-text-using-keyboard-expected.txt: Rebaselined.
        * editing/selection/ios/select-non-editable-text-using-keyboard.html: Updated the expected
        selection string due to the behavior change. Also fixed a bug that some test cases were
        not waiting for a secondary selectionchange event that happens after an extra selection
        update with character granularity introduced in r247524.

2019-09-09  Chris Dumez  <cdumez@apple.com>

        REGRESSION: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html is frequently timing out on iOS EWS bots
        https://bugs.webkit.org/show_bug.cgi?id=201550

        Reviewed by Alex Christensen.

        Update test to do checks on a timer if its call to testRunner.statisticsNotifyObserver() is a no-op
        due to having no statistics to send to the network process.

        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html:

2019-09-09  Joonghun Park  <pjh0718@gmail.com>

        getComputedStyle for line-height: normal should return the keyword instead of a length
        https://bugs.webkit.org/show_bug.cgi?id=201296

        Reviewed by Ryosuke Niwa.

        Per https://github.com/w3c/csswg-drafts/issues/3749,
        Gecko and Blink has this behavior already.

        This patch makes WebKit has the same behavior with them.

        * css3/calc/line-height-expected.txt:
        * fast/css/font-calculated-value-expected.txt:
        * fast/css/font-calculated-value.html:
        * fast/css/font-shorthand-from-longhands-expected.txt:
        * fast/css/font-shorthand-from-longhands.html:
        * fast/css/font-shorthand-line-height-expected.txt:
        * fast/css/font-shorthand-line-height.html:
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-font-expected.txt:
        * fast/css/getComputedStyle/computed-style-font.html:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * fast/ruby/ruby-line-height-expected.txt:
        * fast/ruby/ruby-line-height.html:
        * fast/text-autosizing/ios/idempotentmode/line-height-boosting-expected.txt:
        * fast/text-autosizing/ios/idempotentmode/line-height-boosting.html:
        * fast/text-autosizing/ios/line-height-text-autosizing-expected.txt:
        * fast/text-autosizing/ios/line-height-text-autosizing.html:
        * media/track/track-cue-rendering-on-resize-expected.txt:
        * media/track/track-cue-rendering-on-resize.html:
        * platform/gtk/fast/css/css2-system-fonts-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/ios/TestExpectations:
        * platform/ios/css3/calc/line-height-expected.txt:
        * platform/ios/fast/css/css2-system-fonts-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/ios/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/fast/css/css2-system-fonts-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/fast/text-autosizing/ios/line-height-text-autosizing-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/wincairo/css3/calc/line-height-expected.txt:
        * platform/wincairo/fast/css/css2-system-fonts-expected.txt:
        * platform/wpe/fast/css/css2-system-fonts-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/wpe/svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

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

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

        * platform/mac-wk1/TestExpectations:

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

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

        * platform/ios/TestExpectations:

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

        REGRESSION(r236540-r236595): ASSERTION FAILED: !frameView || !frameView->isPainting() on plugins/window-open.html
        https://bugs.webkit.org/show_bug.cgi?id=199089

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Skip the test.

2019-09-09  Chris Dumez  <cdumez@apple.com>

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html
        https://bugs.webkit.org/show_bug.cgi?id=201596

        Reviewed by Alex Christensen.

        Update layout test to use testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() &
        testRunner.setShouldSwapToDefaultSessionOnNextNavigation() instead of the legacy
        testRunner.setPrivateBrowsingEnabled_DEPRECATED(). The test needed some extra steps to
        navigate whenever we switch session but it is a lot more realistic and is really switching
        session on WebKit2. The testRunner.setPrivateBrowsingEnabled_DEPRECATED() was not truly
        switching session, just making the document think it did.

        * http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html:

2019-09-09  Chris Dumez  <cdumez@apple.com>

        Resync service workers WPT tests from upstream
        https://bugs.webkit.org/show_bug.cgi?id=201589

        Reviewed by Youenn Fablet.

        * TestExpectations:

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

        Attempt to make this test not flakey.
        https://bugs.webkit.org/show_bug.cgi?id=201482

        * legacy-animation-engine/compositing/transitions/add-remove-transition.html:

2019-09-09  Jiewen Tan  <jiewen_tan@apple.com>

        Layout Test http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=198810

        Reviewed by Dewei Zhu.

        * http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html:
        Removed the timeout value given these tests should report the exception immediately.

2019-09-09  Chris Dumez  <cdumez@apple.com>

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/workers/service/basic-register.html
        https://bugs.webkit.org/show_bug.cgi?id=201590

        Reviewed by Youenn Fablet.

        Split the layout test in 2 to test both the default and the ephemeral session without relying on the
        testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.

        * http/tests/workers/service/basic-register-expected.txt:
        * http/tests/workers/service/basic-register-private-expected.txt: Copied from LayoutTests/http/tests/workers/service/basic-register-expected.txt.
        * http/tests/workers/service/basic-register-private.html: Added.
        * http/tests/workers/service/resources/basic-register.js:
        (async.test):

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

        [GTK][WPE] Remove attributes deprecated from MathML3
        https://bugs.webkit.org/show_bug.cgi?id=197492

        Reviewed by Frédéric Wang.

        Disable the MathML Core flag for tests assuming MathML3 behavior.

        * mathml/presentation/attributes-background-color-expected.html:
        * mathml/presentation/attributes-background-color.html:
        * mathml/presentation/attributes-mathvariant.html:
        * mathml/presentation/direction-overall.html:
        * mathml/presentation/mstyle-css-attributes.html:

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

        [WHLSL] Add back a version of the property resolver
        https://bugs.webkit.org/show_bug.cgi?id=201251

        Reviewed by Robin Morisset.

        * webgpu/whlsl/property-evaluation-order-expected.txt: Added.
        * webgpu/whlsl/property-evaluation-order.html: Added.

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

        Add support for postMessage buffering between the service worker and window
        https://bugs.webkit.org/show_bug.cgi?id=201169

        Reviewed by Youenn Fablet.

        * TestExpectations:
        Unskip test that is no longer timing out.

        * resources/testharnessreport.js:
        (self.testRunner.add_completion_callback):
        Use testRunner.forceImmediateCompletion() instead of notifyDone() for WPT tests.
        testRunner.notifyDone() does not work in case of load error or when the load
        does not finish. The WPT test was timing out because the load does not finish for
        testing purposes.

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

        Rewrite http/tests/workers/service/serviceworker-private-browsing.https.html as an API test
        https://bugs.webkit.org/show_bug.cgi?id=201574

        Reviewed by Alex Christensen.

        Drop legacy test which was replaced by an API test.

        * http/tests/workers/service/serviceworker-private-browsing-worker.js: Removed.
        * http/tests/workers/service/serviceworker-private-browsing.https-expected.txt: Removed.
        * http/tests/workers/service/serviceworker-private-browsing.https.html: Removed.

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

        Rewrite storage/domstorage/localstorage/private-browsing-affects-storage.html as an API test
        https://bugs.webkit.org/show_bug.cgi?id=201547

        Reviewed by Alex Christensen.

        Drop outdated test.

        * storage/domstorage/localstorage/private-browsing-affects-storage.html: Removed.
        * storage/domstorage/localstorage/resources/private-browsing-1.html: Removed.
        * storage/domstorage/localstorage/resources/private-browsing-2.html: Removed.

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

        Unreviewed, rolling out r249353.

        The test for this change is a flaky failure.

        Reverted changeset:

        "Add support for postMessage buffering between the service
        worker and window"
        https://bugs.webkit.org/show_bug.cgi?id=201169
        https://trac.webkit.org/changeset/249353

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

        Deprecate WKContextGetWebsiteDataStore
        https://bugs.webkit.org/show_bug.cgi?id=200050

        Reviewed by Geoff Garen.

        Rebase some accessibility tests that were printing the SessionID since we're using SessionID 2 for testing now.

        * accessibility/mac/document-attributes-expected.txt:
        * platform/mac/accessibility/parent-delete-expected.txt:

2019-09-06  Devin Rousso  <drousso@apple.com>

        Web Inspector: CSS Formatter: the closing } of nested @media aren't indented
        https://bugs.webkit.org/show_bug.cgi?id=201560

        Reviewed by Joseph Pecoraro.

        * inspector/formatting/resources/css-tests/media-query.css:
        * inspector/formatting/resources/css-tests/media-query-expected.css:

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

        Incorrect selection rect revealed after pasting images in a contenteditable element
        https://bugs.webkit.org/show_bug.cgi?id=201549
        <rdar://problem/50956429>

        Reviewed by Simon Fraser.

        Add a couple of new layout tests.

        * editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll-expected.txt: Added.
        * editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll.html: Added.

        This test verifies that we don't try to scroll to reveal the caret after pasting, if the scroll position was
        changed before the images finished loading.

        * editing/pasteboard/reveal-selection-after-pasting-images-expected.txt: Added.
        * editing/pasteboard/reveal-selection-after-pasting-images.html: Added.
        * platform/ios/editing/pasteboard/reveal-selection-after-pasting-images-expected.txt: Added.

        This test verifies that we reveal the caret after loading multiple pasted images in a selection, and dispatch a
        scroll event in the process.

2019-09-06  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Update several interface and enum names to match spec
        https://bugs.webkit.org/show_bug.cgi?id=201564

        Reviewed by Dean Jackson.

        Rename GPUShaderStageBit -> GPUShaderStage.
        Rename GPUColorWriteBits -> GPUColorWrite.
        Rename TRANSFER_SRC/DST -> COPY_SRC/DST.

        * webgpu/bind-groups.html:
        * webgpu/blend-color-triangle-strip.html:
        * webgpu/blit-commands.html:
        * webgpu/buffer-errors.html:
        * webgpu/color-write-mask-triangle-strip.html:
        * webgpu/pipeline-layouts.html:
        * webgpu/render-pipelines.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/textures-textureviews.html:
        * webgpu/whlsl/arbitrary-vertex-attribute-locations.html:
        * webgpu/whlsl/buffer-fragment.html:
        * webgpu/whlsl/buffer-length.html:
        * webgpu/whlsl/buffer-vertex.html:
        * webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html:
        * webgpu/whlsl/compute.html:
        * webgpu/whlsl/dereference-pointer-should-type-check.html:
        * webgpu/whlsl/device-proper-type-checker.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/duplicate-types-should-not-produce-duplicate-ctors.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/huge-array.html:
        * webgpu/whlsl/js/test-harness.js:
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype._clearResults):
        (Harness.prototype._setUpArguments):
        * webgpu/whlsl/loops-break.html:
        * webgpu/whlsl/loops-continue.html:
        * webgpu/whlsl/loops.html:
        * webgpu/whlsl/make-array-reference.html:
        * webgpu/whlsl/matrix-2.html:
        * webgpu/whlsl/matrix-alignment.html:
        * webgpu/whlsl/matrix-memory-layout.html:
        * webgpu/whlsl/matrix.html:
        * webgpu/whlsl/nested-dot-expression-rvalue.html:
        * webgpu/whlsl/nested-loop.html:
        * webgpu/whlsl/oob-access.html:
        * webgpu/whlsl/read-modify-write-high-zombies.html:
        * webgpu/whlsl/return-local-variable.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules.html:
        * webgpu/whlsl/simple-arrays.html:
        * webgpu/whlsl/store-to-property-updates-properly.html:
        * webgpu/whlsl/textures-load.html:
        * webgpu/whlsl/textures-sample-bias.html:
        * webgpu/whlsl/textures-sample-grad.html:
        * webgpu/whlsl/textures-sample-level.html:
        * webgpu/whlsl/textures-sample.html:
        * webgpu/whlsl/two-dimensional-array.html:
        * webgpu/whlsl/while-loop-break.html:
        * webgpu/whlsl/while-loop-continue.html:
        * webgpu/whlsl/whlsl.html:
        * webgpu/whlsl/zero-initialize-values-2.html:
        * webgpu/whlsl/zero-initialize-values.html:

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

        REGRESSION: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html is frequently timing out on iOS EWS bots
        https://bugs.webkit.org/show_bug.cgi?id=201550

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations: Mark the test as flaky to speed up EWS while we investigate the root cause.

2019-09-06  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION (r249367): m_decodingPromises grows indefinitely until ImageLoader destruction
        https://bugs.webkit.org/show_bug.cgi?id=201402

        Reviewed by Youenn Fablet and Daniel Bates.

        * fast/images/decode-resolve-reject-no-leak-expected.txt: Added.
        * fast/images/decode-resolve-reject-no-leak.html: Added.

2019-09-06  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Prefer null namespace 'href' over 'xlink:href' on SVG elements
        https://bugs.webkit.org/show_bug.cgi?id=195802

        Reviewed by Youenn Fablet.

        * svg/custom/href-xlink-href-gradient-element-expected.svg: Added.
        * svg/custom/href-xlink-href-gradient-element.svg: Added.
        * svg/custom/href-xlink-href-use-element-expected.svg: Added.
        * svg/custom/href-xlink-href-use-element.svg: Added.

2019-09-05  Joseph Pecoraro  <pecoraro@apple.com>

        Tail Deleted Frames shown in Web Inspector are sometimes incorrect (Shadow Chicken)
        https://bugs.webkit.org/show_bug.cgi?id=201366

        Reviewed by Saam Barati.

        * inspector/debugger/tail-deleted-frames-expected.txt: Removed.
        * inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt: Removed.
        * inspector/debugger/tail-deleted-frames-from-vm-entry.html: Removed.
        * inspector/debugger/tail-deleted-frames-this-value-expected.txt: Removed.
        * inspector/debugger/tail-deleted-frames-this-value.html: Removed.
        * inspector/debugger/tail-deleted-frames.html: Removed.
        Remove legacy tests that are difficult to read.

        * inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js: Added.
        (TestPage.registerInitializer.window.getAsyncStackTrace):
        (TestPage.registerInitializer.async.logThisObject):
        (TestPage.registerInitializer.async.logScope):
        (TestPage.registerInitializer.async.logCallFrame):
        (TestPage.registerInitializer):
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-frames.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-native-tail-deleted-calls.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-tail-deleted-frames.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-scopes.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-this-value.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-vm-entry.js: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry.html: Added.
        Include modern tests that are easier to read.

        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls.html: Added.
        Include a test that is known to produce bad output, since we have reproductive steps.

        * platform/mac/TestExpectations:
        Updated pathes.

2019-09-06  Darryl Pogue  <darryl@dpogue.ca>

        REGRESSION(iOS 12): Keyboard dismissal leaves WKWebView viewport-fit=cover content offscreen
        https://bugs.webkit.org/show_bug.cgi?id=192564

        Reviewed by Tim Horton.

        Added tests to verify scrolling properly adapts to the keyboard insets on iOS.

        * fast/scrolling/ios/scrollview-adjusts-to-keyboard-insets-expected.txt: Added.
        * fast/scrolling/ios/scrollview-adjusts-to-keyboard-insets.html: Added.

2019-09-06  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Unreviewed, fix typo in r249216

        Also change the <desc> element to be <text> element so the purpose of 
        the test is visible once it is opened.

        * svg/custom/href-svg-namespace-animate-target-expected.svg:
        * svg/custom/href-svg-namespace-animate-target.svg:

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

        Unreviewed, rolling out r249566.

        Causes inspector layout test crashes under GuardMalloc

        Reverted changeset:

        "Tail Deleted Frames shown in Web Inspector are sometimes
        incorrect (Shadow Chicken)"
        https://bugs.webkit.org/show_bug.cgi?id=201366
        https://trac.webkit.org/changeset/249566

2019-09-06  Rob Buis  <rbuis@igalia.com>

        Implement MathML DOM
        https://bugs.webkit.org/show_bug.cgi?id=200470

        Reviewed by Ryosuke Niwa.

        Extend existing tests to also test focus for MathML. Add a standalone test for MathML
        based on svg/custom/tabindex-order.html. Add a test for mouse clicks and focus handling
        based on svg/custom/focus-event-handling.xhtml.

        * fast/dom/tabindex-defaults-expected.txt:
        * fast/dom/tabindex-defaults.html:
        * mathml/focus-event-handling-expected.txt: Added.
        * mathml/focus-event-handling.html: Added.
        * mathml/tabindex-order-expected.txt: Added.
        * mathml/tabindex-order.html: Added.
        * platform/ios-wk2/TestExpectations:

2019-09-05  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Crashes when intercept response is a 404
        https://bugs.webkit.org/show_bug.cgi?id=201514

        Reviewed by Alex Christensen.

        * http/tests/inspector/network/local-resource-override-basic-expected.txt:
        * http/tests/inspector/network/local-resource-override-basic.html:
        Add a test for a 404 response override.

2019-09-05  Joseph Pecoraro  <pecoraro@apple.com>

        Tail Deleted Frames shown in Web Inspector are sometimes incorrect (Shadow Chicken)
        https://bugs.webkit.org/show_bug.cgi?id=201366

        Reviewed by Saam Barati.

        * inspector/debugger/tail-deleted-frames-expected.txt: Removed.
        * inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt: Removed.
        * inspector/debugger/tail-deleted-frames-from-vm-entry.html: Removed.
        * inspector/debugger/tail-deleted-frames-this-value-expected.txt: Removed.
        * inspector/debugger/tail-deleted-frames-this-value.html: Removed.
        * inspector/debugger/tail-deleted-frames.html: Removed.
        Remove legacy tests that are difficult to read.

        * inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js: Added.
        (TestPage.registerInitializer.window.getAsyncStackTrace):
        (TestPage.registerInitializer.async.logThisObject):
        (TestPage.registerInitializer.async.logScope):
        (TestPage.registerInitializer.async.logCallFrame):
        (TestPage.registerInitializer):
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-frames.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-native-tail-deleted-calls.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-tail-deleted-frames.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-scopes.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-this-value.js: Added.
        * inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-vm-entry.js: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value.html: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry.html: Added.
        Include modern tests that are easier to read.

        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls-expected.txt: Added.
        * inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls.html: Added.
        Include a test that is known to produce bad output, since we have reproductive steps.

        * platform/mac/TestExpectations:
        Updated pathes.

2019-09-06  Andres Gonzalez  <andresg_22@apple.com>

        AccessibilityRenderObject::setSelectedTextRange fails to set the selection passed an empty line.
        https://bugs.webkit.org/show_bug.cgi?id=201518
        <rdar://problem/54835122>

        Reviewed by Ryosuke Niwa.

        Extended this test to set the selection range passed an empty line.
        * accessibility/set-selected-text-range-after-newline-expected.txt:
        * accessibility/set-selected-text-range-after-newline.html:

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

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in js-test.js
        https://bugs.webkit.org/show_bug.cgi?id=201522

        Reviewed by Alex Christensen.

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in js-test.js.
        Instead, use the new useEphemeralSession WKTR flag added in r249542.

        * resources/js-test.js:
        * storage/indexeddb/aborted-versionchange-closes-private.html:
        * storage/indexeddb/basics-private.html:
        * storage/indexeddb/clone-exception-private.html:
        * storage/indexeddb/closed-cursor-private.html:
        * storage/indexeddb/connection-leak-private.html:
        * storage/indexeddb/create-and-remove-object-store-private.html:
        * storage/indexeddb/create-object-store-options-private.html:
        * storage/indexeddb/createIndex-after-failure-private.html:
        * storage/indexeddb/createObjectStore-name-argument-required-private.html:
        * storage/indexeddb/createObjectStore-null-name-private.html:
        * storage/indexeddb/cursor-added-bug-private.html:
        * storage/indexeddb/cursor-advance-private.html:
        * storage/indexeddb/cursor-basics-private.html:
        * storage/indexeddb/cursor-cast-private.html:
        * storage/indexeddb/cursor-continue-dir-private.html:
        * storage/indexeddb/cursor-continue-private.html:
        * storage/indexeddb/cursor-continue-validity-private.html:
        * storage/indexeddb/cursor-delete-private.html:
        * storage/indexeddb/cursor-finished-private.html:
        * storage/indexeddb/cursor-inconsistency-private.html:
        * storage/indexeddb/cursor-index-delete-private.html:
        * storage/indexeddb/cursor-key-order-private.html:
        * storage/indexeddb/cursor-leak-private.html:
        * storage/indexeddb/cursor-overloads-private.html:
        * storage/indexeddb/cursor-prev-no-duplicate-private.html:
        * storage/indexeddb/cursor-primary-key-order-private.html:
        * storage/indexeddb/cursor-properties-private.html:
        * storage/indexeddb/cursor-request-cycle-private.html:
        * storage/indexeddb/cursor-reverse-bug-private.html:
        * storage/indexeddb/cursor-skip-deleted-private.html:
        * storage/indexeddb/cursor-update-private.html:
        * storage/indexeddb/cursor-update-value-argument-required-private.html:
        * storage/indexeddb/cursor-value-private.html:
        * storage/indexeddb/database-basics-private.html:
        * storage/indexeddb/database-close-private.html:
        * storage/indexeddb/database-closepending-flag-private.html:
        * storage/indexeddb/database-deletepending-flag-private.html:
        * storage/indexeddb/database-name-undefined-private.html:
        * storage/indexeddb/database-odd-names-private.html:
        * storage/indexeddb/database-quota-private.html:
        * storage/indexeddb/database-wrapper-private.html:
        * storage/indexeddb/delete-closed-database-object-private.html:
        * storage/indexeddb/delete-in-upgradeneeded-close-in-open-success-private.html:
        * storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-private.html:
        * storage/indexeddb/delete-range-private.html:
        * storage/indexeddb/deleteIndex-bug110792-private.html:
        * storage/indexeddb/deleteIndex-private.html:
        * storage/indexeddb/deleteObjectStore-name-argument-required-private.html:
        * storage/indexeddb/deleteObjectStore-null-name-private.html:
        * storage/indexeddb/deleted-objects-private.html:
        * storage/indexeddb/deletedatabase-blocked-private.html:
        * storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-private.html:
        * storage/indexeddb/deletedatabase-not-blocked-private.html:
        * storage/indexeddb/deletedatabase-transaction-private.html:
        * storage/indexeddb/dont-commit-on-blocked-private.html:
        * storage/indexeddb/dont-wedge-private.html:
        * storage/indexeddb/duplicates-private.html:
        * storage/indexeddb/error-causes-abort-by-default-private.html:
        * storage/indexeddb/events-private.html:
        * storage/indexeddb/exception-in-event-aborts-private.html:
        * storage/indexeddb/exceptions-private.html:
        * storage/indexeddb/factory-cmp-private.html:
        * storage/indexeddb/factory-deletedatabase-private.html:
        * storage/indexeddb/get-keyrange-private.html:
        * storage/indexeddb/index-basics-private.html:
        * storage/indexeddb/index-count-private.html:
        * storage/indexeddb/index-cursor-private.html:
        * storage/indexeddb/index-duplicate-keypaths-private.html:
        * storage/indexeddb/index-get-key-argument-required-private.html:
        * storage/indexeddb/index-multientry-private.html:
        * storage/indexeddb/index-population-private.html:
        * storage/indexeddb/index-unique-private.html:
        * storage/indexeddb/interfaces-private.html:
        * storage/indexeddb/intversion-abort-in-initial-upgradeneeded-private.html:
        * storage/indexeddb/intversion-bad-parameters-private.html:
        * storage/indexeddb/intversion-blocked-private.html:
        * storage/indexeddb/intversion-close-between-events-private.html:
        * storage/indexeddb/intversion-close-in-oncomplete-private.html:
        * storage/indexeddb/intversion-close-in-upgradeneeded-private.html:
        * storage/indexeddb/intversion-encoding-private.html:
        * storage/indexeddb/intversion-gated-on-delete-private.html:
        * storage/indexeddb/intversion-long-queue-private.html:
        * storage/indexeddb/intversion-omit-parameter-private.html:
        * storage/indexeddb/intversion-open-in-upgradeneeded-private.html:
        * storage/indexeddb/intversion-open-with-version-private.html:
        * storage/indexeddb/intversion-pending-version-changes-ascending-private.html:
        * storage/indexeddb/intversion-pending-version-changes-descending-private.html:
        * storage/indexeddb/intversion-pending-version-changes-same-private.html:
        * storage/indexeddb/intversion-persistence-private.html:
        * storage/indexeddb/intversion-revert-on-abort-private.html:
        * storage/indexeddb/intversion-two-opens-no-versions-private.html:
        * storage/indexeddb/intversion-upgrades-private.html:
        * storage/indexeddb/invalid-keys-private.html:
        * storage/indexeddb/key-generator-private.html:
        * storage/indexeddb/key-sort-order-across-types-private.html:
        * storage/indexeddb/key-sort-order-date-private.html:
        * storage/indexeddb/key-type-array-private.html:
        * storage/indexeddb/key-type-binary-private.html:
        * storage/indexeddb/key-type-infinity-private.html:
        * storage/indexeddb/keypath-arrays-private.html:
        * storage/indexeddb/keypath-basics-private.html:
        * storage/indexeddb/keypath-edges-private.html:
        * storage/indexeddb/keypath-fetch-key-private.html:
        * storage/indexeddb/keypath-intrinsic-properties-private.html:
        * storage/indexeddb/keyrange-private.html:
        * storage/indexeddb/keyrange-required-arguments-private.html:
        * storage/indexeddb/lazy-index-population-private.html:
        * storage/indexeddb/lazy-index-types-private.html:
        * storage/indexeddb/legacy-constants-private.html:
        * storage/indexeddb/list-ordering-private.html:
        * storage/indexeddb/metadata-private.html:
        * storage/indexeddb/metadata-race-private.html:
        * storage/indexeddb/modern/abort-objectstore-info-private.html:
        * storage/indexeddb/modern/abort-requests-cancelled-private.html:
        * storage/indexeddb/modern/aborted-put-private.html:
        * storage/indexeddb/modern/autoincrement-abort-private.html:
        * storage/indexeddb/modern/basic-add-private.html:
        * storage/indexeddb/modern/basic-put-private.html:
        * storage/indexeddb/modern/binary-keys-1-private.html:
        * storage/indexeddb/modern/blocked-open-db-requests-private.html:
        * storage/indexeddb/modern/create-index-failures-private.html:
        * storage/indexeddb/modern/createobjectstore-basic-private.html:
        * storage/indexeddb/modern/createobjectstore-failures-private.html:
        * storage/indexeddb/modern/cursor-1-private.html:
        * storage/indexeddb/modern/cursor-2-private.html:
        * storage/indexeddb/modern/cursor-3-private.html:
        * storage/indexeddb/modern/cursor-4-private.html:
        * storage/indexeddb/modern/cursor-5-private.html:
        * storage/indexeddb/modern/cursor-6-private.html:
        * storage/indexeddb/modern/cursor-7-private.html:
        * storage/indexeddb/modern/cursor-8-private.html:
        * storage/indexeddb/modern/date-basic-private.html:
        * storage/indexeddb/modern/deletedatabase-1-private.html:
        * storage/indexeddb/modern/deletedatabase-2-private.html:
        * storage/indexeddb/modern/deletedatabase-null-name-exception-private.html:
        * storage/indexeddb/modern/deletedatabase-request-event-private.html:
        * storage/indexeddb/modern/deletedatabase-request-private.html:
        * storage/indexeddb/modern/deleteindex-1-private.html:
        * storage/indexeddb/modern/deleteindex-2-private.html:
        * storage/indexeddb/modern/deleteindex-3-private.html:
        * storage/indexeddb/modern/deleteindex-4-private.html:
        * storage/indexeddb/modern/deleteobjectstore-1-private.html:
        * storage/indexeddb/modern/double-abort-private.html:
        * storage/indexeddb/modern/double-open-private.html:
        * storage/indexeddb/modern/gc-closes-database-private.html:
        * storage/indexeddb/modern/get-index-failures-private.html:
        * storage/indexeddb/modern/get-keyrange-private.html:
        * storage/indexeddb/modern/idbcursor-continue-primary-key-1-private.html:
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private.html:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-private.html:
        * storage/indexeddb/modern/idbindex-getall-1-private.html:
        * storage/indexeddb/modern/idbindex-getallkeys-1-private.html:
        * storage/indexeddb/modern/idbindex-properties-basic-private.html:
        * storage/indexeddb/modern/idbkey-array-equality-private.html:
        * storage/indexeddb/modern/idbobjectstore-clear-1-private.html:
        * storage/indexeddb/modern/idbobjectstore-clear-2-private.html:
        * storage/indexeddb/modern/idbobjectstore-count-1-private.html:
        * storage/indexeddb/modern/idbobjectstore-count-failures-private.html:
        * storage/indexeddb/modern/idbobjectstore-delete-1-private.html:
        * storage/indexeddb/modern/idbobjectstore-delete-2-private.html:
        * storage/indexeddb/modern/idbobjectstore-delete-failures-private.html:
        * storage/indexeddb/modern/idbobjectstore-get-failures-private.html:
        * storage/indexeddb/modern/idbobjectstore-getall-1-private.html:
        * storage/indexeddb/modern/idbobjectstore-getallkeys-1-private.html:
        * storage/indexeddb/modern/idbobjectstore-getkey-1-private.html:
        * storage/indexeddb/modern/idbobjectstore-put-and-clear-failures-private.html:
        * storage/indexeddb/modern/idbtransaction-objectstore-failures-private.html:
        * storage/indexeddb/modern/idbtransaction-objectstores-1-private.html:
        * storage/indexeddb/modern/index-1-private.html:
        * storage/indexeddb/modern/index-2-private.html:
        * storage/indexeddb/modern/index-3-private.html:
        * storage/indexeddb/modern/index-4-private.html:
        * storage/indexeddb/modern/index-5-private.html:
        * storage/indexeddb/modern/index-cursor-1-private.html:
        * storage/indexeddb/modern/index-cursor-2-private.html:
        * storage/indexeddb/modern/index-cursor-3-private.html:
        * storage/indexeddb/modern/index-get-count-basic-private.html:
        * storage/indexeddb/modern/index-get-count-failures-private.html:
        * storage/indexeddb/modern/index-rename-1-private.html:
        * storage/indexeddb/modern/keypath-basic-private.html:
        * storage/indexeddb/modern/memory-index-not-deleted-with-objectstore-private.html:
        * storage/indexeddb/modern/multiple-objectstore-index-cursor-collision-private.html:
        * storage/indexeddb/modern/objectstore-attributes-private.html:
        * storage/indexeddb/modern/objectstore-cursor-advance-failures-private.html:
        * storage/indexeddb/modern/objectstore-cursor-continue-failures-private.html:
        * storage/indexeddb/modern/objectstore-rename-1-private.html:
        * storage/indexeddb/modern/opencursor-failures-private.html:
        * storage/indexeddb/modern/opendatabase-request-event-private.html:
        * storage/indexeddb/modern/opendatabase-request-private.html:
        * storage/indexeddb/modern/opendatabase-success-after-versionchange-private.html:
        * storage/indexeddb/modern/opendatabase-versions-private.html:
        * storage/indexeddb/modern/request-readystate-private.html:
        * storage/indexeddb/modern/single-entry-index-invalid-key-crash-private.html:
        * storage/indexeddb/modern/transaction-scheduler-1-private.html:
        * storage/indexeddb/modern/transaction-scheduler-2-private.html:
        * storage/indexeddb/modern/transaction-scheduler-3-private.html:
        * storage/indexeddb/modern/transaction-scheduler-4-private.html:
        * storage/indexeddb/modern/transaction-scheduler-5-private.html:
        * storage/indexeddb/modern/transaction-scheduler-6-private.html:
        * storage/indexeddb/modern/transactions-stop-on-navigation-private.html:
        * storage/indexeddb/modern/versionchange-abort-then-reopen-private.html:
        * storage/indexeddb/modern/versionchange-event-private.html:
        * storage/indexeddb/mozilla/add-twice-failure-private.html:
        * storage/indexeddb/mozilla/autoincrement-indexes-private.html:
        * storage/indexeddb/mozilla/bad-keypath-private.html:
        * storage/indexeddb/mozilla/clear-private.html:
        * storage/indexeddb/mozilla/create-index-unique-private.html:
        * storage/indexeddb/mozilla/create-index-with-integer-keys-private.html:
        * storage/indexeddb/mozilla/create-objectstore-basics-private.html:
        * storage/indexeddb/mozilla/create-objectstore-null-name-private.html:
        * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-private.html:
        * storage/indexeddb/mozilla/cursor-mutation-private.html:
        * storage/indexeddb/mozilla/cursor-update-updates-indexes-private.html:
        * storage/indexeddb/mozilla/cursors-private.html:
        * storage/indexeddb/mozilla/delete-result-private.html:
        * storage/indexeddb/mozilla/event-source-private.html:
        * storage/indexeddb/mozilla/global-data-private.html:
        * storage/indexeddb/mozilla/index-prev-no-duplicate-private.html:
        * storage/indexeddb/mozilla/indexes-private.html:
        * storage/indexeddb/mozilla/key-requirements-delete-null-key-private.html:
        * storage/indexeddb/mozilla/key-requirements-inline-and-passed-private.html:
        * storage/indexeddb/mozilla/key-requirements-private.html:
        * storage/indexeddb/mozilla/key-requirements-put-no-key-private.html:
        * storage/indexeddb/mozilla/key-requirements-put-null-key-private.html:
        * storage/indexeddb/mozilla/object-cursors-private.html:
        * storage/indexeddb/mozilla/object-identity-private.html:
        * storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put-private.html:
        * storage/indexeddb/mozilla/object-store-remove-values-private.html:
        * storage/indexeddb/mozilla/objectstorenames-private.html:
        * storage/indexeddb/mozilla/odd-result-order-private.html:
        * storage/indexeddb/mozilla/open-database-null-name-private.html:
        * storage/indexeddb/mozilla/put-get-values-private.html:
        * storage/indexeddb/mozilla/readonly-transactions-private.html:
        * storage/indexeddb/mozilla/readwrite-transactions-private.html:
        * storage/indexeddb/mozilla/readyState-private.html:
        * storage/indexeddb/mozilla/remove-index-private.html:
        * storage/indexeddb/mozilla/remove-objectstore-private.html:
        * storage/indexeddb/mozilla/versionchange-abort-private.html:
        * storage/indexeddb/mutating-cursor-private.html:
        * storage/indexeddb/object-lookups-in-versionchange-private.html:
        * storage/indexeddb/objectStore-required-arguments-private.html:
        * storage/indexeddb/objectstore-autoincrement-private.html:
        * storage/indexeddb/objectstore-basics-private.html:
        * storage/indexeddb/objectstore-clear-private.html:
        * storage/indexeddb/objectstore-count-private.html:
        * storage/indexeddb/objectstore-cursor-private.html:
        * storage/indexeddb/objectstore-removeobjectstore-private.html:
        * storage/indexeddb/odd-strings-private.html:
        * storage/indexeddb/open-bad-versions-private.html:
        * storage/indexeddb/open-cursor-private.html:
        * storage/indexeddb/open-during-transaction-private.html:
        * storage/indexeddb/open-ordering-private.html:
        * storage/indexeddb/opencursor-key-private.html:
        * storage/indexeddb/optional-arguments-private.html:
        * storage/indexeddb/pending-activity-private.html:
        * storage/indexeddb/pending-version-change-on-exit-private.html:
        * storage/indexeddb/pending-version-change-stuck-private.html:
        * storage/indexeddb/pending-version-change-stuck-works-with-terminate-private.html:
        * storage/indexeddb/persistence-private.html:
        * storage/indexeddb/prefetch-bugfix-108071-private.html:
        * storage/indexeddb/prefetch-invalidation-private.html:
        * storage/indexeddb/prefetch-race-private.html:
        * storage/indexeddb/primary-key-unique-to-objectstore-private.html:
        * storage/indexeddb/queued-commands-private.html:
        * storage/indexeddb/readonly-private.html:
        * storage/indexeddb/readonly-properties-private.html:
        * storage/indexeddb/removed-private.html:
        * storage/indexeddb/request-continue-abort-private.html:
        * storage/indexeddb/request-event-propagation-private.html:
        * storage/indexeddb/request-leak-private.html:
        * storage/indexeddb/request-result-cache-private.html:
        * storage/indexeddb/set_version_blocked-private.html:
        * storage/indexeddb/setversion-blocked-by-versionchange-close-private.html:
        * storage/indexeddb/setversion-not-blocked-private.html:
        * storage/indexeddb/structured-clone-private.html:
        * storage/indexeddb/transaction-abort-private.html:
        * storage/indexeddb/transaction-active-flag-private.html:
        * storage/indexeddb/transaction-after-close-private.html:
        * storage/indexeddb/transaction-and-objectstore-calls-private.html:
        * storage/indexeddb/transaction-basics-private.html:
        * storage/indexeddb/transaction-complete-with-js-recursion-cross-frame-private.html:
        * storage/indexeddb/transaction-complete-with-js-recursion-private.html:
        * storage/indexeddb/transaction-complete-workers-private.html:
        * storage/indexeddb/transaction-coordination-across-databases-private.html:
        * storage/indexeddb/transaction-coordination-within-database-private.html:
        * storage/indexeddb/transaction-crash-in-tasks-private.html:
        * storage/indexeddb/transaction-crash-on-abort-private.html:
        * storage/indexeddb/transaction-error-private.html:
        * storage/indexeddb/transaction-event-propagation-private.html:
        * storage/indexeddb/transaction-ordering-private.html:
        * storage/indexeddb/transaction-overlapping-private.html:
        * storage/indexeddb/transaction-read-only-private.html:
        * storage/indexeddb/transaction-readwrite-exclusive-private.html:
        * storage/indexeddb/transaction-rollback-private.html:
        * storage/indexeddb/transaction-scope-sequencing-private.html:
        * storage/indexeddb/transaction-storeNames-required-private.html:
        * storage/indexeddb/unblocked-version-changes-private.html:
        * storage/indexeddb/unprefix-private.html:
        * storage/indexeddb/value-undefined-private.html:
        * storage/indexeddb/values-odd-types-private.html:
        * storage/indexeddb/version-change-abort-private.html:
        * storage/indexeddb/version-change-event-basic-private.html:
        * storage/indexeddb/version-change-event-private.html:
        * storage/indexeddb/version-change-exclusive-private.html:
        * storage/indexeddb/versionchangerequest-activedomobject-private.html:

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

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cache/disk-cache/disk-cache-vary-cookie.html
        https://bugs.webkit.org/show_bug.cgi?id=201524

        Reviewed by Alex Christensen.

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() as it does not do the right thing for WebKit2.
        Instead, use the new useEphemeralSession WKTR flag added in r249542.

        * http/tests/cache/disk-cache/disk-cache-vary-cookie-expected.txt:
        * http/tests/cache/disk-cache/disk-cache-vary-cookie-private-expected.txt: Added.
        * http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html: Copied from LayoutTests/http/tests/cache/disk-cache/disk-cache-vary-cookie.html.
        * http/tests/cache/disk-cache/disk-cache-vary-cookie.html:

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

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in plugins/private-browsing-mode.html
        https://bugs.webkit.org/show_bug.cgi?id=201523

        Reviewed by Alex Christensen.

        Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in plugins/private-browsing-mode.html
        since it does not do the right thing for WebKit2. Instead, use the new useEphemeralSession
        WKTR flag.

        * platform/mac-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * plugins/non-private-browsing-mode-expected.txt: Added.
        * plugins/non-private-browsing-mode.html: Added.
        * plugins/private-browsing-mode-expected.txt:
        * plugins/private-browsing-mode.html:

2019-09-05  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Fix new test results after adding console warnings
        https://bugs.webkit.org/show_bug.cgi?id=201526

        Unreviewed test expectation updates.

        * webgpu/buffer-errors-expected.txt:
        * webgpu/map-read-buffers-expected.txt:
        * webgpu/map-write-buffers-expected.txt:
        * webgpu/render-pipelines.html: Fix WHLSL compile error.
        * webgpu/uncaptured-errors-expected.txt: Added.
        * webgpu/whlsl/use-undefined-variable-2-expected.txt:
        * webgpu/whlsl/use-undefined-variable-expected.txt:

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

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=181837

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.
        * platform/mac/TestExpectations: Ditto.

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

        Layout Test media/audio-concurrent-supported.html is a flaky failure.
        rdar://55081191

        Unreviewed Test Gardening.

        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

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

        [WK2] Add proper layout test support for ephemeral sessions
        https://bugs.webkit.org/show_bug.cgi?id=201475

        Reviewed by Antti Koivisto.

        Update existing layout tests to either switch to the new mechanism when trivial or to rename
        setPrivateBrowsingEnabled() to setPrivateBrowsingEnabled_DEPRECATED() when it is not.

        * crypto/subtle/rsa-indexeddb-non-exportable-private.html:
        * crypto/subtle/rsa-indexeddb-private.html:
        * http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html:
        * http/tests/adClickAttribution/resources/util.js:
        (tearDownAndFinish):
        * http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html:
        * http/tests/cache-storage/cache-persistency.https.html:
        * http/tests/cache-storage/cache-representation.https.html:
        * http/tests/cache/disk-cache/disk-cache-vary-cookie.html:
        * http/tests/cookies/private-cookie-storage.html:
        * http/tests/media/now-playing-info-private-browsing.html:
        * http/tests/security/appcache-in-private-browsing.html:
        * http/tests/security/appcache-switching-private-browsing.html:
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.php:
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled.php:
        * http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.php:
        * http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.php:
        * http/tests/security/cookies/resources/first-party-cookie-allow.xsl:
        * http/tests/security/cookies/resources/third-party-cookie-blocking.xsl:
        * http/tests/security/cookies/third-party-cookie-blocking-main-frame.html:
        * http/tests/security/cookies/third-party-cookie-blocking-redirect.html:
        * http/tests/security/cookies/third-party-cookie-blocking-user-action.html:
        * http/tests/security/cookies/third-party-cookie-blocking.html:
        * http/tests/security/cross-frame-access-private-browsing.html:
        * http/tests/security/cross-origin-plugin-private-browsing-toggled-allowed.html:
        * http/tests/security/cross-origin-plugin-private-browsing-toggled.html:
        * http/tests/security/private-browsing-http-auth.html:
        * http/tests/security/storage-blocking-loosened-private-browsing-plugin.html:
        * http/tests/security/storage-blocking-strengthened-private-browsing-plugin.html:
        * http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html:
        * http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode.html:
        * http/tests/storageAccess/has-storage-access-true-if-feature-off.html:
        * http/tests/workers/service/resources/basic-register.js:
        (async.test):
        * http/tests/workers/service/serviceworker-private-browsing.https.html:
        * http/wpt/fetch/dnt-header-after-redirection.html:
        * platform/wk2/TestExpectations:
        * plugins/private-browsing-mode-2.html:
        * plugins/private-browsing-mode.html:
        * resources/js-test.js:
        * storage/domstorage/localstorage/private-browsing-affects-storage.html:
        * storage/domstorage/localstorage/resources/private-browsing-1.html:
        * storage/domstorage/localstorage/resources/private-browsing-2.html:
        * storage/indexeddb/open-db-private-browsing.html:
        * storage/indexeddb/resources/open-db-private-browsing.js:
        * storage/websql/private-browsing-noread-nowrite.html:
        * storage/websql/private-browsing-open-disabled.html:

2019-09-05  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement GPUUncapturedErrorEvent
        https://bugs.webkit.org/show_bug.cgi?id=199676

        Reviewed by Dean Jackson.

        Add a test to ensure GPUUncapturedErrorEvents work.

        * webgpu/uncaptured-errors.html: Added.

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

        [iOS] Layout Test imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=201509

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations: Mark test as failing.

2019-09-05  Antti Koivisto  <antti@apple.com>

        Generate event region for both the main graphics layer and the scrolled contents layer
        https://bugs.webkit.org/show_bug.cgi?id=201487

        Reviewed by Simon Fraser.

        * pointerevents/ios/touch-action-region-backing-sharing-expected.txt:
        * pointerevents/ios/touch-action-region-overflow-expected.txt:

2019-09-05  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (iOS 13): Bulleted list copied from Notes to Mail results in Times New Roman
        https://bugs.webkit.org/show_bug.cgi?id=201490

        Reviewed by Daniel Bates.

        Added a test to make sure -webkit-standard font family name isn't stripped away when sanitization is not in effect.

        * editing/pasteboard/paste-cocoa-writer-markup-with-webkit-standard-font-family-expected.txt: Added.
        * editing/pasteboard/paste-cocoa-writer-markup-with-webkit-standard-font-family.html: Added.

2019-09-05  Chris Fleizach  <cfleizach@apple.com>

        AX: children cache are not re-computed if tab index is removed
        https://bugs.webkit.org/show_bug.cgi?id=201502

        Reviewed by Zalan Bujtas.

        * accessibility/tabindex-removed-expected.txt: Added.
        * accessibility/tabindex-removed.html: Added.

2019-09-04  Fujii Hironori  <Hironori.Fujii@sony.com>

        [AppleWin] fast/block/float/float-with-anonymous-previous-sibling.html is failing as flaky ImageOnlyFailure
        https://bugs.webkit.org/show_bug.cgi?id=201491

        Unreviewed test gardening.

        * platform/win/TestExpectations: Marked it.

2019-09-04  Timothy Hatcher  <timothy@apple.com>

        Mail appears to be double inverting code copied from Notes, Xcode, or Terminal.
        https://bugs.webkit.org/show_bug.cgi?id=201368
        rdar://problem/40529867

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        * editing/pasteboard/paste-dark-mode-color-filtered-expected.txt: Added.
        * editing/pasteboard/paste-dark-mode-color-filtered.html: Added.
        * platform/ios-12/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2019-09-06  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (iOS 13): If an overflow:hidden with a non-zero scroll position is toggled to overflow:scroll, some other scroll causes its scroll position to get reset
        https://bugs.webkit.org/show_bug.cgi?id=201528
        rdar://problem/55044885

        Reviewed by Frédéric Wang.

        * scrollingcoordinator/ios/scroller-initial-scroll-position-expected.html: Added.
        * scrollingcoordinator/ios/scroller-initial-scroll-position.html: Added.

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

        [JSC] Make Promise implementation faster
        https://bugs.webkit.org/show_bug.cgi?id=200898

        Reviewed by Saam Barati.

        * inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
        * inspector/canvas/recording-bitmaprenderer-full-expected.txt:
        * inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
        * inspector/console/message-stack-trace-expected.txt:
        * inspector/console/queryHolders-expected.txt:
        * js/Promise-types-expected.txt:
        * js/dom/Promise-resolve-with-itself-expected.txt:
        * js/dom/Promise-resolve-with-itself.html:
        * js/script-tests/Promise-types.js:

2019-09-04  Tim Horton  <timothy_horton@apple.com>

        Line artifacts in note body after viewing note with <attachment>s
        https://bugs.webkit.org/show_bug.cgi?id=201474
        <rdar://problem/51306108>

        Reviewed by Simon Fraser.

        * fast/attachment/attachment-border-should-stay-inside-attachment-expected.html: Added.
        * fast/attachment/attachment-border-should-stay-inside-attachment.html: Added.
        Add a test that ensures that <attachment> stays inside its bounds.

2019-09-04  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Local Overrides - Provide substitution content for resource loads (URL based)
        https://bugs.webkit.org/show_bug.cgi?id=201262
        <rdar://problem/13108764>

        Reviewed by Devin Rousso.

        * http/tests/inspector/network/local-resource-override-basic-expected.txt: Added.
        * http/tests/inspector/network/local-resource-override-basic.html: Added.
        * http/tests/inspector/network/local-resource-override-main-resource-expected.txt: Added.
        * http/tests/inspector/network/local-resource-override-main-resource.html: Added.
        * http/tests/inspector/network/local-resource-override-script-tag-expected.txt: Added.
        * http/tests/inspector/network/local-resource-override-script-tag.html: Added.
        * http/tests/inspector/network/resource-response-inspector-override-expected.txt: Added.
        * http/tests/inspector/network/resource-response-inspector-override.html: Added.
        * http/tests/inspector/network/resources/override.js: Added.
        * http/tests/inspector/network/resources/override.txt: Added.
        * inspector/network/local-resource-override-continue-response-expected.txt: Added.
        * inspector/network/local-resource-override-continue-response.html: Added.
        Tests for overrides.

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

        * platform/mac-wk1/TestExpectations:
        WebKitLegacy does not support overrides.

2019-09-04  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Address review comments after r249364
        https://bugs.webkit.org/show_bug.cgi?id=201432

        Reviewed by Simon Fraser.

        Fix the <img> CSS width properties by adding the "px" units. 

        * fast/images/exif-orientation-background-expected.html:
        * fast/images/exif-orientation-canvas-expected.html:
        * fast/images/exif-orientation-canvas.html:
        * fast/images/exif-orientation-composited-expected.html:
        * fast/images/exif-orientation-composited.html:
        Remove the CSS border to enable the composited image code path.

        * fast/images/exif-orientation-content-expected.html:
        * fast/images/exif-orientation-element-expected.html:
        * fast/images/exif-orientation-element.html:
        * fast/images/exif-orientation-image-document-expected.html:
        * fast/images/exif-orientation-image-document.html:
        * fast/images/exif-orientation-image-object-expected.html:
        * fast/images/exif-orientation-image-object.html:
        * fast/images/exif-orientation-svg-feimage-expected.html:
        * fast/images/exif-orientation-svg-feimage.html:
        * fast/images/exif-orientation-svg-image-expected.html:
        * fast/images/exif-orientation-svg-image.html:

2019-09-04  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION (r249364): Layout Test webgpu/texture-triangle-strip.html is Failing
        https://bugs.webkit.org/show_bug.cgi?id=201425

        Reviewed by Myles C. Maxfield.

        The orientation of webgpu/resources/blue-checkered.png is OriginRightTop.
        Because r249364 made the image orientation respected everywhere including
        the canvas drawImage(), the expected result does not match the output of
        the test anymore.

        The fix is to change the the expected result to match the image drawing
        when the image orientation is respected.

        * webgpu/js/webgpu-functions.js:
        (drawGreenAndBlueCheckerboardInSoftware):

2019-09-03  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Implement SampleLevel(), SampleBias(), and SampleGrad()
        https://bugs.webkit.org/show_bug.cgi?id=201385

        Reviewed by Dean Jackson.

        * webgpu/whlsl/textures-sample-bias-expected.html: Added.
        * webgpu/whlsl/textures-sample-bias.html: Added.
        * webgpu/whlsl/textures-sample-grad-expected.html: Added.
        * webgpu/whlsl/textures-sample-grad.html: Added.
        * webgpu/whlsl/textures-sample-level-expected.html: Added.
        * webgpu/whlsl/textures-sample-level.html: Added.

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

        Web Inspector: implement blackboxing of script resources
        https://bugs.webkit.org/show_bug.cgi?id=17240
        <rdar://problem/5732847>

        Reviewed by Joseph Pecoraro.

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

        * inspector/model/remote-object-api-expected.txt:
        Update output since `WI.TestHarness.prototype.expectException` now logs the `.constructor.name`.

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

        REGRESSION (r249132): [macOS WK2] Layout Test inspector/layers/layerTreeDidChange.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=201435

        Reviewed by Joseph Pecoraro.

        r249132 changed the `InspectorLayerTreeAgent` to reset the flag that controls whether the
        frontend should be notified about layer changes when `disable` is called, which happens when
        Web Inspector disconnects.

        Sometimes, a layer change event can be "in flight" when this happens, meaning that the Web
        Inspector frontend can receive a layer change event before it requests the new layer data.

        This is normally handled by the Web Inspector UI, as the associated DOM node would no longer
        exist, so the UI paths would early return.

        * inspector/layers/layerTreeDidChange.html:
        Only listen for layer change events once we've triggered a guaranteed layer update, as any
        "in flight" events from previous tests could be incorrectly logged as part of this test.

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

        REGRESSION (r249078): Flaky crash in com.apple.JavaScriptCore: Inspector::InjectedScriptModule::ensureInjected
        https://bugs.webkit.org/show_bug.cgi?id=201201
        <rdar://problem/54771560>

        Reviewed by Joseph Pecoraro.

        * inspector/debugger/tail-deleted-frames-this-value.html:
        * inspector/debugger/tail-deleted-frames-this-value-expected.txt:
        * inspector/debugger/resources/tail-deleted-frames-this-value.js:
        * inspector/timeline/line-column-expected.txt:

2019-09-04  Simon Fraser  <simon.fraser@apple.com>

        Cancelled transitions on Google image search leave content with opacity 0 sometimes
        https://bugs.webkit.org/show_bug.cgi?id=201482
        rdar://problem/54921036

        Reviewed by Tim Horton.

        * legacy-animation-engine/compositing/transitions/add-remove-transition-expected.html: Added.
        * legacy-animation-engine/compositing/transitions/add-remove-transition.html: Added.

2019-09-03  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Enable WebAuthn by default for MobileSafari and SafariViewService
        https://bugs.webkit.org/show_bug.cgi?id=201369
        <rdar://problem/54903724>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-get-success-nfc.https.html:
        Imporves the test a bit.

2019-09-03  Antoine Quint  <graouts@apple.com>

        [iOS] Treat a two-finger single tap as if the user tapped with the Cmd key pressed
        https://bugs.webkit.org/show_bug.cgi?id=201420
        <rdar://problem/53207786>

        Reviewed by Simon Fraser.

        Add a new event that checks that a two-finger single tap on a clickable element yields a "click" event with the metaKey flag set to true.

        * fast/events/ios/click-event-two-finger-single-tap-meta-key-expected.txt: Added.
        * fast/events/ios/click-event-two-finger-single-tap-meta-key.html: Added.

2019-09-03  Rob Buis  <rbuis@igalia.com>

        Remove support for load/error on link=prefetch
        https://bugs.webkit.org/show_bug.cgi?id=201348

        Reviewed by Youenn Fablet.

        Adjust beforeload tests to also test load/error events.

        * http/tests/cache/link-prefetch-main-resource-iframe.html:
        * http/tests/cache/link-prefetch-main-resource.html:
        * http/wpt/prefetch/beforeload-dynamic-expected.txt: Removed.
        * http/wpt/prefetch/beforeload-expected.txt: Removed.
        * http/wpt/prefetch/load-events-dynamic-expected.txt: Added.
        * http/wpt/prefetch/load-events-dynamic.html: Renamed from LayoutTests/http/wpt/prefetch/beforeload-dynamic.html.
        * http/wpt/prefetch/load-events-expected.txt: Added.
        * http/wpt/prefetch/load-events.html: Renamed from LayoutTests/http/wpt/prefetch/beforeload.html.
        * http/wpt/prefetch/resources/navigate-skip-disk-cache.html:
        * http/wpt/prefetch/resources/navigate.html:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-09-02  Fujii Hironori  <Hironori.Fujii@sony.com>

        [SVG] fragment-only url 'url(#fragment)' should be resolved against the current document with regardless to HTML <base> element
        https://bugs.webkit.org/show_bug.cgi?id=189499
        <rdar://problem/44466206>

        Reviewed by Said Abou-Hallawa.

        These test cases are imported from Blink's commit, and modified for WebKit.
        <https://chromium.googlesource.com/chromium/src/+/e7d7225c33aa7fc42ee390125b01df9167fad106%5E%21/>

        * TestExpectations:
        * css3/filters/effect-reference-local-url-with-base-expected.html: Added.
        * css3/filters/effect-reference-local-url-with-base.html: Added.
        * css3/filters/effect-reference.html:
        * css3/masking/clip-path-reference-local-url-with-base-expected.html: Added.
        * css3/masking/clip-path-reference-local-url-with-base.html: Added.
        * http/tests/svg/local-url-with-valid-base-and-resource-expected.html: Added.
        * http/tests/svg/local-url-with-valid-base-and-resource.html: Added.
        * http/tests/svg/resources/red100x100.svg: Added.
        * platform/gtk/TestExpectations: Marked svg/custom/local-url-reference-marker.html as ImageOnlyFailure for Bug 113849.
        * platform/wpe/TestExpectations: Ditto.
        * svg/animations/local-url-target-reference-expected.html: Added.
        * svg/animations/local-url-target-reference.html: Added.
        * svg/custom/linking-base-external-reference-expected.txt: Removed. This was a test for old spec.
        * svg/custom/linking-base-external-reference.xhtml: Ditto.
        * svg/custom/local-url-reference-clip-path-expected.html: Added.
        * svg/custom/local-url-reference-clip-path.html: Added.
        * svg/custom/local-url-reference-fill-expected.html: Added.
        * svg/custom/local-url-reference-fill.html: Added.
        * svg/custom/local-url-reference-filter-expected.html: Added.
        * svg/custom/local-url-reference-filter.html: Added.
        * svg/custom/local-url-reference-marker-expected.html: Added.
        * svg/custom/local-url-reference-marker.html: Added.
        * svg/custom/local-url-reference-mask-expected.html: Added.
        * svg/custom/local-url-reference-mask.html: Added.
        * svg/custom/local-url-reference-pattern-expected.html: Added.
        * svg/custom/local-url-reference-pattern.html: Added.
        * svg/custom/local-url-reference-radial-gradient-expected.html: Added.
        * svg/custom/local-url-reference-radial-gradient.html: Added.
        * svg/custom/local-url-reference-srcdoc-expected.html: Added.
        * svg/custom/local-url-reference-srcdoc.html: Added.
        * svg/custom/local-url-reference-stroke-expected.html: Added.
        * svg/custom/local-url-reference-stroke.html: Added.
        * svg/custom/local-url-reference-use-expected.html: Added.
        * svg/custom/local-url-reference-use.html: Added.
        * svg/text/textpath-local-url-reference-expected.html: Added.
        * svg/text/textpath-local-url-reference.html: Added.

2019-09-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Resources don't work when only a subset of a bind group is referenced by a shader
        https://bugs.webkit.org/show_bug.cgi?id=201383

        Reviewed by Dean Jackson.

        * webgpu/whlsl/compute.html:
        * webgpu/whlsl/sparse-bind-group-2-expected.txt: Added.
        * webgpu/whlsl/sparse-bind-group-2.html: Added.
        * webgpu/whlsl/sparse-bind-group-3-expected.txt: Added.
        * webgpu/whlsl/sparse-bind-group-3.html: Added.
        * webgpu/whlsl/sparse-bind-group-expected.txt: Added.
        * webgpu/whlsl/sparse-bind-group.html: Added.

2019-09-01  Commit Queue  <commit-queue@webkit.org>

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

        broke WHLSL tests (Requested by litherum on #webkit).

        Reverted changeset:

        "[WHLSL] Resources don't work when only a subset of a bind
        group is referenced by a shader"
        https://bugs.webkit.org/show_bug.cgi?id=201383
        https://trac.webkit.org/changeset/249369

2019-09-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Resources don't work when only a subset of a bind group is referenced by a shader
        https://bugs.webkit.org/show_bug.cgi?id=201383

        Reviewed by Dean Jackson.

        * webgpu/whlsl/compute.html:
        * webgpu/whlsl/sparse-bind-group-2-expected.txt: Added.
        * webgpu/whlsl/sparse-bind-group-2.html: Added.
        * webgpu/whlsl/sparse-bind-group-3-expected.txt: Added.
        * webgpu/whlsl/sparse-bind-group-3.html: Added.
        * webgpu/whlsl/sparse-bind-group-expected.txt: Added.
        * webgpu/whlsl/sparse-bind-group.html: Added.

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

        Long presses that interrupt accelerated scrolling dispatch clicks on apps linked against iOS 12 or earlier
        https://bugs.webkit.org/show_bug.cgi?id=201346
        <rdar://problem/54885784>

        Reviewed by Dean Jackson.

        Add a couple of new layout tests to verify that using a long press gesture to interrupt momentum scrolling in a
        web view that uses API to disable link previews does not result in a click.

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

2019-09-01  Said Abou-Hallawa  <sabouhallawa@apple.com>

        HTMLImageElement::decode() should return a resolved promise for decoding non bitmap images
        https://bugs.webkit.org/show_bug.cgi?id=201243

        Reviewed by Youenn Fablet.

        * fast/images/decode-non-bitmap-image-resolve-expected.txt: Added.
        * fast/images/decode-non-bitmap-image-resolve.html: Added.
        * fast/images/resources/green-100x100.svg: Added.

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

        EXIF orientation should be respected when rendering images
        https://bugs.webkit.org/show_bug.cgi?id=201123

        Reviewed by Simon Fraser.

        Existing tests are made ref-tests. New tests were added to cover more
        cases for drawing images.

        * fast/images/exif-orientation-background-expected.html: Added.
        * fast/images/exif-orientation-background.html: Added.
        * fast/images/exif-orientation-canvas-expected.html: Added.
        * fast/images/exif-orientation-canvas.html: Added.
        * fast/images/exif-orientation-composited-expected.html: Added.
        * fast/images/exif-orientation-composited-expected.txt: Removed.
        * fast/images/exif-orientation-composited.html:
        * fast/images/exif-orientation-content-expected.html: Added.
        * fast/images/exif-orientation-content.html: Added.
        * fast/images/exif-orientation-css-expected.txt: Removed.
        * fast/images/exif-orientation-css.html: Removed.
        * fast/images/exif-orientation-element-expected.html: Added.
        * fast/images/exif-orientation-element-object-fit-expected.html: Added.
        * fast/images/exif-orientation-element-object-fit.html: Added.
        * fast/images/exif-orientation-element.html: Added.
        * fast/images/exif-orientation-expected.txt: Removed.
        * fast/images/exif-orientation-image-document-expected.html: Added.
        * fast/images/exif-orientation-image-document-expected.txt: Removed.
        * fast/images/exif-orientation-image-document.html:
        * fast/images/exif-orientation-image-object-expected.html: Added.
        * fast/images/exif-orientation-image-object.html: Added.
        * fast/images/exif-orientation-svg-feimage-expected.html: Added.
        * fast/images/exif-orientation-svg-feimage.html: Added.
        * fast/images/exif-orientation-svg-image-expected.html: Added.
        * fast/images/exif-orientation-svg-image.html: Added.
        * fast/images/exif-orientation.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/mac/fast/images/exif-orientation-composited-expected.png: Removed.
        * platform/win/TestExpectations:

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

        [iOS] Add a test to ensure that a tap in editable content shows the callout bar if the selection did not change
        https://bugs.webkit.org/show_bug.cgi?id=200082

        Reviewed by Dean Jackson.

        Adds a layout test to cover the UIKit change in <rdar://problem/53106460>.

        * editing/selection/ios/show-callout-bar-after-tap-expected.txt: Added.
        * editing/selection/ios/show-callout-bar-after-tap.html: Added.

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

        XMLHttpRequest: responseXML returns null if the Content-Type is valid (end in +xml) in some cases
        https://bugs.webkit.org/show_bug.cgi?id=46146

        Reviewed by Youenn Fablet.

        Adjust test to match the specification: make response MIME type fallback to
        text/xml in case mimeType could not be extracted.

        Behavior matches Firefox.

        * http/tests/xmlhttprequest/supported-xml-content-types-expected.txt:
        * http/tests/xmlhttprequest/supported-xml-content-types.html:

2019-08-31  Frederic Wang  <fwang@igalia.com>

        Fix interpretation of fraction shifts
        https://bugs.webkit.org/show_bug.cgi?id=201242

        Reviewed by Rob Buis.

        * TestExpectations: Skip mathml/presentation/stretchy-depth-height-symmetric.html since it
        cannot work in a reliable way and should be rewritten. Equivalent checks seem essentially
        covered by WPT test mathml/presentation-markup/operators/mo-axis-height-1.html.
        See bug 201356.
        * platform/win/mathml/presentation/roots-expected.txt: Update windows expectation.

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

        Add support for postMessage buffering between the service worker and window
        https://bugs.webkit.org/show_bug.cgi?id=201169

        Reviewed by Youenn Fablet.

        * TestExpectations:
        Unskip test that is no longer timing out.

        * resources/testharnessreport.js:
        (self.testRunner.add_completion_callback):
        Use testRunner.forceImmediateCompletion() instead of notifyDone() for WPT tests.
        testRunner.notifyDone() does not work in case of load error or when the load
        does not finish. The WPT test was timing out because the load does not finish for
        testing purposes.

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

        [WHLSL] Remove getters/setters/anders
        https://bugs.webkit.org/show_bug.cgi?id=201008

        Reviewed by Robin Morisset.

        * webgpu/whlsl/address-of-swizzle-expected.txt: Added.
        * webgpu/whlsl/address-of-swizzle.html: Added.
        * webgpu/whlsl/array-oob-alias-expected.txt: Copied from LayoutTests/webgpu/whlsl/structure-field-access-on-null-expected.txt.
        * webgpu/whlsl/array-oob-alias.html: Copied from LayoutTests/webgpu/whlsl/structure-field-access-on-null.html.
        * webgpu/whlsl/bad-ander-expected.txt: Removed.
        * webgpu/whlsl/bad-ander.html: Removed.
        * webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html:
        * webgpu/whlsl/increment-setter.html:
        * webgpu/whlsl/index-ander-expected.txt: Removed.
        * webgpu/whlsl/index-ander.html: Removed.
        * webgpu/whlsl/index-setter-getter-expected.txt: Removed.
        * webgpu/whlsl/index-setter-getter.html: Removed.
        * webgpu/whlsl/make-array-reference.html:
        * webgpu/whlsl/matrix-index-assign-expected.txt: Added.
        * webgpu/whlsl/matrix-index-assign.html: Added.
        * webgpu/whlsl/matrix-index-order-expected.txt: Added.
        * webgpu/whlsl/matrix-index-order.html: Added.
        * webgpu/whlsl/matrix-memory-layout.html:
        * webgpu/whlsl/matrix.html:
        * webgpu/whlsl/null-arg-expected.txt:
        * webgpu/whlsl/null-arg.html:
        * webgpu/whlsl/null-dereference-expected.txt: Removed.
        * webgpu/whlsl/null-dereference.html: Removed.
        * webgpu/whlsl/oob-access-2-expected.txt: Added.
        * webgpu/whlsl/oob-access-2.html: Added.
        * webgpu/whlsl/oob-access.html:
        * webgpu/whlsl/operator-syntax-expected.txt: Added.
        * webgpu/whlsl/operator-syntax.html: Added.
        * webgpu/whlsl/operator-vector-assign.html:
        * webgpu/whlsl/operator-vector-load.html:
        * webgpu/whlsl/override-subscript-expected.txt: Removed.
        * webgpu/whlsl/override-subscript.html: Removed.
        * webgpu/whlsl/propertyresolver/ander-abstract-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html: Removed.
        * webgpu/whlsl/propertyresolver/ander-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/ander-lvalue-3-levels-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html: Removed.
        * webgpu/whlsl/propertyresolver/ander-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/ander-lvalue.html: Removed.
        * webgpu/whlsl/propertyresolver/ander.html: Removed.
        * webgpu/whlsl/propertyresolver/getter-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/getter.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-ander.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-getter-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-getter.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html: Removed.
        * webgpu/whlsl/propertyresolver/indexer-setter.html: Removed.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html: Removed.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html: Removed.
        * webgpu/whlsl/propertyresolver/setter-lvalue-expected.html: Removed.
        * webgpu/whlsl/propertyresolver/setter-lvalue.html: Removed.
        * webgpu/whlsl/setter-spec-tests.html:
        * webgpu/whlsl/simple-getter-setter-expected.txt:
        * webgpu/whlsl/simple-getter-setter.html:
        * webgpu/whlsl/structure-field-access-on-null-expected.txt: Removed.
        * webgpu/whlsl/structure-field-access-on-null.html: Removed.
        * webgpu/whlsl/test-harness-test.html:

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

        Unreviewed, rolling out r249338.

        Caused 500+ layout test failures on WK1

        Reverted changeset:

        "Add support for postMessage buffering between the service
        worker and window"
        https://bugs.webkit.org/show_bug.cgi?id=201169
        https://trac.webkit.org/changeset/249338

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

        Caret does not appear in text field inside a transformed, overflow: hidden container
        https://bugs.webkit.org/show_bug.cgi?id=201317
        <rdar://problem/54859264>

        Reviewed by Simon Fraser.

        Add a new layout test that covers this scenario. See WebCore ChangeLog for additional detail.

        * editing/selection/ios/show-selection-in-transformed-container-2-expected.txt: Added.
        * editing/selection/ios/show-selection-in-transformed-container-2.html: Added.

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

        Add support for postMessage buffering between the service worker and window
        https://bugs.webkit.org/show_bug.cgi?id=201169

        Reviewed by Youenn Fablet.

        * TestExpectations:
        Unskip test that is no longer timing out.

        * resources/testharnessreport.js:
        (self.testRunner.add_completion_callback):
        Use testRunner.forceImmediateCompletion() instead of notifyDone() for WPT tests.
        testRunner.notifyDone() does not work in case of load error or when the load
        does not finish. The WPT test was timing out because the load does not finish for
        testing purposes.

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

        Unreviewed, fix test failure after r249305

        * inspector/dom-debugger/dom-breakpoints-expected.txt:

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

        [MSE][GStreamer] Gracefully fail on invalid non-first initialization segment
        https://bugs.webkit.org/show_bug.cgi?id=201322

        Reviewed by Xabier Rodriguez-Calvar.

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

2019-08-30  Joonghun Park  <jh718.park@samsung.com>

        Import css/css-text/tab-size/tab-size.html wpt test
        https://bugs.webkit.org/show_bug.cgi?id=201328

        Unreviewed. No behavioral changes.

        The css/css-text/tab-size/tab-size.html wpt test was ported from
        the original test LayoutTests/css3/tab-size.html.

        So we import that wpt test and remove the original test from LayoutTests.

        * css3/tab-size.html: Removed.

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

        [wk2] LayoutTest imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=169621

        Reviewed by Alex Christensen.

        Update test expectations to PASS.

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

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

        Web Inspector: Debugger: async event listener stack traces should be available in Workers
        https://bugs.webkit.org/show_bug.cgi?id=200903

        Reviewed by Joseph Pecoraro.

        * inspector/worker/dom-debugger-event-interval-breakpoints-expected.txt:
        * inspector/worker/dom-debugger-event-listener-breakpoints-expected.txt:
        * inspector/worker/dom-debugger-event-timeout-breakpoints-expected.txt:
        * inspector/worker/dom-debugger-url-breakpoints-expected.txt:
        * inspector/worker/resources/worker-dom-debugger.js:

2019-08-29  Timothy Hatcher  <timothy@apple.com>

        Copying and pasting two paragraphs with a newline between them results in stray paragraph with newline inside.
        https://bugs.webkit.org/show_bug.cgi?id=201306

        Reviewed by Wenson Hsieh.

        * editing/pasteboard/paste-without-nesting-expected.txt: Updated results.
        * editing/pasteboard/paste-without-nesting.html: Added new test case.

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

        Web Inspector: DOMDebugger: support event breakpoints in Worker contexts
        https://bugs.webkit.org/show_bug.cgi?id=200651

        Reviewed by Joseph Pecoraro.

        * inspector/worker/dom-debugger-dom-breakpoints.html: Added.
        * inspector/worker/dom-debugger-dom-breakpoints-expected.txt: Added.
        * inspector/worker/dom-debugger-event-animation-frame-breakpoints.html: Added.
        * inspector/worker/dom-debugger-event-animation-frame-breakpoints-expected.txt: Added.
        * inspector/worker/dom-debugger-event-interval-breakpoints.html: Added.
        * inspector/worker/dom-debugger-event-interval-breakpoints-expected.txt: Added.
        * inspector/worker/dom-debugger-event-listener-breakpoints.html: Added.
        * inspector/worker/dom-debugger-event-listener-breakpoints-expected.txt: Added.
        * inspector/worker/dom-debugger-event-timeout-breakpoints.html: Added.
        * inspector/worker/dom-debugger-event-timeout-breakpoints-expected.txt: Added.
        * inspector/worker/dom-debugger-url-breakpoints.html: Added.
        * inspector/worker/dom-debugger-url-breakpoints-expected.txt: Added.

        * inspector/debugger/resources/log-active-stack-trace.js: Added.
        (TestPage.registerInitializer.window.logStackTrace): Added.
        (TestPage.registerInitializer.window.logActiveStackTrace):

        * inspector/worker/resources/dom-debugger-utilities.js: Added.
        (TestPage.registerInitializer.InspectorTest.Worker.DOMDebugger.createWorkerTarget):
        * inspector/worker/resources/worker-dom-debugger.js: Added.

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

        Web Inspector: replace uses of `Array.prototype.concat` with `Array.prototype.push`
        https://bugs.webkit.org/show_bug.cgi?id=201082

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/array-utilities.html:
        * inspector/unit-tests/array-utilities-expected.txt:
        Add tests for added utility `Array.prototype.pushIterable`.

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

        [iOS 13] Caret does not appear in text field if the body element is translated completely out of the viewport
        https://bugs.webkit.org/show_bug.cgi?id=201287
        <rdar://problem/54780864>

        Reviewed by Tim Horton.

        Add a new layout test that covers this scenario. See WebKit ChangeLog for additional detail.

        * editing/selection/ios/show-selection-in-transformed-container-expected.txt: Added.
        * editing/selection/ios/show-selection-in-transformed-container.html: Added.

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

        Flaky Test: svg/custom/tabindex-order.html
        https://bugs.webkit.org/show_bug.cgi?id=201294

        Reviewed by Chris Dumez.

        Make the backward sequential navigation case more robust against platform differences.

        * svg/custom/tabindex-order.html:

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

        Skip fetch event dispatching if no fetch event handler is added at script evaluation time
        https://bugs.webkit.org/show_bug.cgi?id=201174

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/skipFetchEvent-worker.js: Added.
        (async.doTest):
        * http/wpt/service-workers/skipFetchEvent.https-expected.txt: Added.
        * http/wpt/service-workers/skipFetchEvent.https.html: Added.

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

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

        * fast/borders/empty-outline-border-assert-expected.txt:
        * platform/gtk/TestExpectations:
        * platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
        * platform/gtk/fast/forms/label/labelable-elements-expected.txt: Added.
        * platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt:
        * platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Added.
        * platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt: Added.
        * platform/ios-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.
        * platform/mac-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.

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

        Use WebPageProxy callbacks in case of authentication challenge received from Service Worker
        https://bugs.webkit.org/show_bug.cgi?id=201177

        Reviewed by Alex Christensen.

        * http/wpt/service-workers/server-trust-evaluation.https.html:

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

        Address some MathML FIXMEs 
        https://bugs.webkit.org/show_bug.cgi?id=201293

        Reviewed by Frédéric Wang.

        Also test newly exposed data and time elements.

        * mathml/presentation/foreign-element-in-token-expected.txt:
        * mathml/presentation/foreign-element-in-token.html:
        * platform/ios-wk2/mathml/presentation/foreign-element-in-token-expected.txt:
        * platform/mac-wk2/mathml/presentation/foreign-element-in-token-expected.txt:

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

        Make tabIndex IDL attribute reflect its content attribute
        https://bugs.webkit.org/show_bug.cgi?id=199606
        <rdar://problem/52811448>

        Reviewed by Chris Dumez.

        Added test cases and assertions.

        * fast/dom/tabindex-defaults-expected.txt:
        * fast/dom/tabindex-defaults.html: Added test cases for iframe, frame, object, video, summary, and SVG elements.
        Also blur the active element to avoid any race conditions.
        * plugins/focus-expected.txt:
        * plugins/focus.html:
        * svg/custom/tabindex-order-expected.txt:
        * svg/custom/tabindex-order.html: Made the sequential navigation code not rely on tabIndex IDL attribute.

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

        Unreviewed, fix test failure after r249173

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

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

        XLinkNames namespace is required before the 'href' attribute of SVG animate elements
        https://bugs.webkit.org/show_bug.cgi?id=201227

        Reviewed by Ryosuke Niwa.

        * svg/custom/href-svg-namespace-animate-target-expected.svg: Added.
        * svg/custom/href-svg-namespace-animate-target.svg: Added.

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

        [WHLSL] Matrices need to have correct alignment
        https://bugs.webkit.org/show_bug.cgi?id=201212

        Reviewed by Robin Morisset.

        Test the alignment and size of float matrices.

        Intentionally don't test bool matrices, because they can't be placed in buffers,
        meaning their size and alignment is unobservable.

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

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

        Implement HTMLOrForeignElement
        https://bugs.webkit.org/show_bug.cgi?id=201219

        Reviewed by Ryosuke Niwa.

        Adjust test expectations to new HTMLOrForeignElement interface.

        * js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/mac/inspector/model/remote-object-dom-expected.txt:

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

        geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure
        https://bugs.webkit.org/show_bug.cgi?id=201221

        Reviewed by Ryosuke Niwa.

        Update layout tests to reflect behavior change.

        * fast/dom/Geolocation/dataURL-getCurrentPosition-expected.txt:
        * fast/dom/Geolocation/dataURL-getCurrentPosition.html:
        * fast/dom/Geolocation/dataURL-watchPosition-expected.txt:
        * fast/dom/Geolocation/dataURL-watchPosition.html:
        * http/tests/security/resources/checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod.js:
        (didReceiveError):
        (checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):
        * http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
        * http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html:
        * http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
        * http/tests/security/sandboxed-iframe-geolocation-watchPosition.html:

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

        [MSE][GStreamer] WebKitMediaSrc rework
        https://bugs.webkit.org/show_bug.cgi?id=199719

        Reviewed by Xabier Rodriguez-Calvar.

        Updated expectations.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.

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

        Flaky Test: fullscreen/full-screen-request-removed-with-raf.html
        https://bugs.webkit.org/show_bug.cgi?id=201188

        Reviewed by Alexey Proskuryakov.

        * fullscreen/full-screen-request-removed-with-raf.html:

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

        Unable to enter text in https://eat.fi
        https://bugs.webkit.org/show_bug.cgi?id=193046

        Reviewed by Ryosuke Niwa.

        Add new test imported for blink.

        * imported/blink/fast/forms/label/label-contains-other-interactive-content-expected.txt: Added.
        * imported/blink/fast/forms/label/label-contains-other-interactive-content.html: Added.
        * platform/ios-wk2/TestExpectations: Skip the new test because it requires eventSender.mouseDown/Up/MoveTo()

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

        SVG2: Add length, item getter and item setter to all SVG lists
        https://bugs.webkit.org/show_bug.cgi?id=199526

        Reviewed by Simon Fraser.

        * svg/custom/polyline-points-crash-expected.txt:
        * svg/dom/SVGLengthList-basics-expected.txt:
        * svg/dom/SVGLengthList-length-indexed-access-expected.txt: Added.
        * svg/dom/SVGLengthList-length-indexed-access.xhtml: Added.
        * svg/dom/SVGNumberList-basics-expected.txt:
        * svg/dom/SVGPathSegList-length-indexed-access-expected.txt: Added.
        * svg/dom/SVGPathSegList-length-indexed-access.xhtml: Added.
        * svg/dom/SVGPointList-basics-expected.txt:
        * svg/dom/SVGTransformList-basics-expected.txt:

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

        Make FrameLoader::open() set outgoing referrer properly
        https://bugs.webkit.org/show_bug.cgi?id=167050

        Reviewed by Youenn Fablet.

        * http/tests/navigation/page-cache-fragment-referrer-expected.html: Added.
        * http/tests/navigation/page-cache-fragment-referrer.html: Added.
        * http/tests/navigation/resources/referrer.php: Added.

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

        Web Inspector: replace uses of added utility `Array.prototype.keySet` with an actual `Set`
        https://bugs.webkit.org/show_bug.cgi?id=201194

        Reviewed by Ross Kirsling.

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

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

        [WebGPU] Implement GPUErrors for and relax GPUBuffer validation rules
        https://bugs.webkit.org/show_bug.cgi?id=200852

        Reviewed by Dean Jackson.

        Add a test to ensure GPUBuffer errors are generated properly.

        * webgpu/buffer-errors-expected.txt: Added.
        * webgpu/buffer-errors.html: Added.

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

        Test Gardening for scrollingcoordinator/ios/scroll-position-after-reattach.html
        rdar://52961406

        Unreviewed Test Gardening.

        * platform/ios/TestExpectations:

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

        Update Test Expectations for iPad for fast/scrolling/ios/autoscroll-input-when-very-zoomed.html
        https://bugs.webkit.org/show_bug.cgi?id=201163
        <rdar://problem/54727027>

        Reviewed by Simon Fraser.

        Altering test slightly to have a reasonable test expecation on iPad. 

        * platform/ipad/fast/scrolling/ios/autoscroll-input-when-very-zoomed-expected.txt: Added.

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

        Web Inspector: don't attach properties to `injectedScript` for the CommandLineAPI
        https://bugs.webkit.org/show_bug.cgi?id=201193

        Reviewed by Joseph Pecoraro.

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

2019-08-27  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        Drawing an animated image to a canvas via drawImage should draw the first frame
        https://bugs.webkit.org/show_bug.cgi?id=74779
        <rdar://problem/42282454>

        Reviewed by Said Abou-Hallawa.

        Adds a test that checks that when drawing an animated image into a canvas
        it draws the first frame and that the animation doesn't reset or pause.

        Also enable the new internal setting setAnimatedImageDebugCanvasDrawingEnabled()
        for the tests that rely on canvas.drawImage() drawing the current frame instead
        of the first one.

        * fast/canvas/drawImage-animated-gif-draws-first-frame-and-no-reset-image-expected.txt: Added.
        * fast/canvas/drawImage-animated-gif-draws-first-frame-and-no-reset-image.html: Added.
        The above test checks that when drawing an animated image to a canvas it draws the first frame
        and that the playing image doesn't get reseted and finish playing.
        * fast/canvas/resources/animated-red-green-blue-yellow-cyan-black-repeat-1.gif: Added.
        * fast/images/animated-gif-restored-from-bfcache.html: Enable internals.settings.setAnimatedImageDebugCanvasDrawingEnabled().
        * fast/images/animated-image-different-dest-size.html: Ditto.
        * fast/images/animated-image-loop-count.html: Ditto.
        * fast/images/animated-image-mp4.html: Ditto.
        * fast/images/decode-animated-image.html: Ditto.
        * fast/images/decode-render-animated-image.html: Ditto.
        * fast/images/ordered-animated-image-frames.html: Ditto.
        * fast/images/reset-image-animation.html: Ditto.
        * fast/images/slower-animation-than-decoding-image.html: Ditto.
        * fast/images/slower-decoding-than-animation-image.html: Ditto.

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

        Unreviewed test gardening, remove failure expectations for tests that are now passing.

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

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

        Crash under WebCore::jsNotificationConstructorPermission
        https://bugs.webkit.org/show_bug.cgi?id=201186
        <rdar://problem/53962833>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/notifications/request-in-detached-frame-expected.txt: Added.
        * http/tests/notifications/request-in-detached-frame.html: Added.
        * http/tests/notifications/resources/request-in-detached-frame-subframe.html: Added.

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

        Unreviewed test gardening, land expectation for rdar://54317204.

        * platform/mac/TestExpectations:

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

        fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html times out on iPad
        https://bugs.webkit.org/show_bug.cgi?id=201182
        <rdar://problem/54562829>

        Reviewed by Tim Horton.

        This test verifies that if the user taps outside of a scrollable container that is decelerating, the page will
        observe a click event. This test currently behaves as expected on iPhone, but on iPad, the tap which is
        intended to be outside the scrollable area ends up inside it, so a click event is never dispatched. Instead of
        hard-coding the tap location, address this test failure by targetting a separate element outside of the
        scrollable area.

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

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

        Removing fullscreen element in rAF() callback after requestFullscreen() can leave fullscreen in inconsistent state.
        https://bugs.webkit.org/show_bug.cgi?id=201101
        <rdar://problem/54164587>

        Reviewed by Eric Carlson.

        * fullscreen/full-screen-request-removed-with-raf-expected.txt: Added.
        * fullscreen/full-screen-request-removed-with-raf.html: Added.

2019-08-27  Peng Liu  <peng.liu6@apple.com>

        webkitpresentationmodechanged is fired twice when exiting picture in picture
        https://bugs.webkit.org/show_bug.cgi?id=193765

        Reviewed by Jer Noble.

        * media/presentationmodechanged-fired-once-expected.txt: Added.
        * media/presentationmodechanged-fired-once.html: Added.

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

        Origin header not included in WebSocket handshake request when using platform WebSocket API
        https://bugs.webkit.org/show_bug.cgi?id=200535

        Reviewed by Youenn Fablet.

        Rebaseline tests that are passing now for GTK and WPE.

        * platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/003-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/003-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt:

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

        [WHLSL] Rewrite all tests to use WHLSL and delete the isWHLSL flag
        https://bugs.webkit.org/show_bug.cgi?id=201162

        Reviewed by Saam Barati.

        * webgpu/bind-groups.html:
        * webgpu/blend-color-triangle-strip.html:
        * webgpu/blend-triangle-strip.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/color-write-mask-triangle-strip.html:
        * webgpu/compute-pipeline-errors.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/msl-harness-test-expected.txt: Removed.
        * webgpu/msl-harness-test.html: Removed.
        * webgpu/render-command-encoding.html:
        * webgpu/render-pipeline-errors.html:
        * webgpu/render-pipelines.html:
        * webgpu/shader-modules.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/buffer-fragment.html:
        * webgpu/whlsl/buffer-length.html:
        * webgpu/whlsl/buffer-vertex.html:
        * webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html:
        * webgpu/whlsl/compute.html:
        * webgpu/whlsl/dereference-pointer-should-type-check.html:
        * webgpu/whlsl/device-proper-type-checker.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/duplicate-types-should-not-produce-duplicate-ctors.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/huge-array.html:
        * webgpu/whlsl/js/test-harness.js:
        (convertTypeToArrayType):
        (Data):
        (Harness):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.callVoidFunction):
        (Harness.prototype.async.checkCompileFail):
        (Harness.prototype._setUpArguments):
        (Harness.prototype.async._callFunction):
        (Harness.prototype.set isWHLSL): Deleted.
        (Harness.prototype.get isWHLSL): Deleted.
        * webgpu/whlsl/loops-break.html:
        * webgpu/whlsl/loops-continue.html:
        * webgpu/whlsl/loops.html:
        * webgpu/whlsl/make-array-reference.html:
        * webgpu/whlsl/matrix-2.html:
        * webgpu/whlsl/matrix-memory-layout.html:
        * webgpu/whlsl/matrix.html:
        * webgpu/whlsl/nested-dot-expression-rvalue.html:
        * webgpu/whlsl/nested-loop.html:
        * webgpu/whlsl/null-dereference.html:
        * webgpu/whlsl/oob-access.html:
        * webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html:
        * webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html:
        * webgpu/whlsl/propertyresolver/ander-lvalue.html:
        * webgpu/whlsl/propertyresolver/ander.html:
        * webgpu/whlsl/propertyresolver/getter.html:
        * webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html:
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html:
        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html:
        * webgpu/whlsl/propertyresolver/indexer-ander.html:
        * webgpu/whlsl/propertyresolver/indexer-getter.html:
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html:
        * webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html:
        * webgpu/whlsl/propertyresolver/indexer-setter.html:
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html:
        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html:
        * webgpu/whlsl/propertyresolver/setter-lvalue.html:
        * webgpu/whlsl/read-modify-write-high-zombies.html:
        * webgpu/whlsl/read-modify-write.html:
        * webgpu/whlsl/return-local-variable.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html:
        * webgpu/whlsl/separate-shader-modules/separate-shader-modules.html:
        * webgpu/whlsl/simple-arrays.html:
        * webgpu/whlsl/store-to-property-updates-properly.html:
        * webgpu/whlsl/textures-getdimensions.html:
        * webgpu/whlsl/textures-load.html:
        * webgpu/whlsl/textures-sample.html:
        * webgpu/whlsl/two-dimensional-array.html:
        * webgpu/whlsl/use-undefined-variable-2.html:
        * webgpu/whlsl/use-undefined-variable.html:
        * webgpu/whlsl/while-loop-break.html:
        * webgpu/whlsl/while-loop-continue.html:
        * webgpu/whlsl/whlsl.html:
        * webgpu/whlsl/zero-initialize-values-2.html:
        * webgpu/whlsl/zero-initialize-values.html:

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

        Unreviewed, fix test failure after r249127

        * inspector/debugger/tail-deleted-frames-this-value.html:

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

        Web Inspector: unify agent command error messages
        https://bugs.webkit.org/show_bug.cgi?id=200950

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/getSerializedCertificate-expected.txt:
        * http/tests/websocket/tests/hybi/inspector/resolveWebSocket-expected.txt:
        * inspector/audit/setup-expected.txt:
        * inspector/audit/teardown-expected.txt:
        * inspector/canvas/css-canvas-clients-expected.txt:
        * inspector/canvas/recording-expected.txt:
        * inspector/canvas/requestContent-2d-expected.txt:
        * inspector/canvas/requestNode-expected.txt:
        * inspector/canvas/requestShaderSource-expected.txt:
        * inspector/canvas/resolveCanvasContext-2d-expected.txt:
        * inspector/canvas/setShaderProgramDisabled-expected.txt:
        * inspector/canvas/setShaderProgramHighlighted-expected.txt:
        * inspector/canvas/updateShader-expected.txt:
        * inspector/console/webcore-logging-expected.txt:
        * inspector/css/add-rule-expected.txt:
        * inspector/debugger/continueUntilNextRunLoop-expected.txt:
        * inspector/debugger/evaluateOnCallFrame-errors-expected.txt:
        * inspector/debugger/setBreakpoint-expected.txt:
        * inspector/dom-debugger/dom-breakpoints-expected.txt:
        * inspector/dom/breakpoint-for-event-listener-expected.txt:
        * inspector/dom/highlightQuad-expected.txt:
        * inspector/dom/insertAdjacentHTML-expected.txt:
        * inspector/dom/request-child-nodes-depth-expected.txt:
        * inspector/dom/setEventListenerDisabled-expected.txt:
        * inspector/protocol/backend-dispatcher-argument-errors-expected.txt:
        * inspector/runtime/awaitPromise-expected.txt:
        * inspector/runtime/getPreview-expected.txt:
        * inspector/timeline/setInstruments-errors-expected.txt:

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

        Unreviewed, add extra test failure logging after r200971

        * inspector/debugger/tail-deleted-frames-this-value.html:
        Also log the actual value (in addition to the expected one) in assertion messages.

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

        Remove UIHelper.activateElementAtHumanSpeed
        https://bugs.webkit.org/show_bug.cgi?id=201147

        Reviewed by Tim Horton.

        This was used in layout tests that simulate repeated taps to work around <webkit.org/b/201129>, and should no
        longer be needed after <https://trac.webkit.org/changeset/249112/webkit>. Instead, we can just use UIHelper's
        activateElement as intended in cases where successive taps in the test does not result in a double-click; for
        the cases where we need to avoid triggering double clicks when tapping (e.g. in several payment tests), use a
        new script controller hook to wait for the double tap gesture delay before continuing.

        * fast/forms/ios/file-upload-panel.html:
        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:

        Rebaseline more line numbers.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation.html:

        Refactor this test so that the links are laid out in two (or more) columns to avoid firing the double click
        gesture recognizer instead of the synthetic click gesture.

        * http/tests/resources/payment-request.js:
        (activateThen):

        Instead of using activateElementAtHumanSpeed, wait for the platform double tap delay first, and then simulate
        a click using activateElement.

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

        Add a new UIHelper method to wait for the platform double tap delay. See Tools ChangeLog for more details.

        (window.UIHelper):
        (window.UIHelper.activateElementAtHumanSpeed.return.new.Promise): Deleted.
        (window.UIHelper.activateElementAtHumanSpeed): Deleted.

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

        Unreviewed, fix test failure after r200971

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

        * inspector/debugger/tail-deleted-frames-this-value.html:
        Add messages to all `InspectorTest.assert` so we can know which one is firing on the bots.

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

        Unreviewed, unmark two datalist tests as timing out on iOS 13 after r249112

        * platform/ios/TestExpectations:

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

        REGRESSION (iOS 13): Tests that simulate multiple back-to-back single taps fail or time out
        https://bugs.webkit.org/show_bug.cgi?id=201129
        <rdar://problem/51857277>

        Reviewed by Tim Horton.

        Adjusts a few layout tests after changes to UIScriptController::doubleTapAtPoint and
        UIScriptController::singleTapAtPoint.

        * editing/selection/ios/change-selection-by-tapping.html:

        Tweak this test to tap the page 12 times instead of 20 (which seems to cause occasional timeouts locally, when
        running all layout tests with a dozen active simulators).

        * fast/events/ios/double-tap-zoom.html:
        * fast/events/ios/viewport-device-width-allows-double-tap-zoom-out.html:
        * fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html:

        Augment a few call sites of `doubleTapAtPoint` with a 0 delay. Ideally, these should just use ui-helper.js, but
        we can refactor these tests as a part of folding basic-gestures.js into ui-helper.js.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:

        Rebaseline these layout tests, due to change in line numbers.

        * platform/ipad/TestExpectations:

        Unskip these tests on iPad, now that they should pass.

        * pointerevents/utils.js:
        (const.ui.new.UIController.prototype.doubleTapToZoom):
        * resources/basic-gestures.js:
        (return.new.Promise.):
        (return.new.Promise):

        Adjust some more call sites of `doubleTapAtPoint`. Ideally, these should use just `ui-helper.js` too.

        * resources/ui-helper.js:
        (window.UIHelper.doubleTapAt.return.new.Promise):
        (window.UIHelper.doubleTapAt):
        (window.UIHelper.humanSpeedDoubleTapAt):
        (window.UIHelper.humanSpeedZoomByDoubleTappingAt):

        Add a delay parameter to `doubleTapAt` to specify a delay after each simulated tap. By default, this is 0, but
        the `humanSpeed*` helpers add a delay of 120 milliseconds. Additionally, these helpers were previously calling
        `singleTapAtPoint` twice, with a timeout in between to add a delay. Instead, call `doubleTapAtPoint` with a
        nonzero delay; otherwise, we'll end up waiting in `singleTapAtPoint` for the gesture subgraph containing both
        the double tap gestures and the synthetic single tap gesture to reset, which causes these two single taps to no
        longer be recognized as a double tap gesture.

        (window.UIHelper.zoomByDoubleTappingAt):

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

        [WebAuthn] Support HID authenticators on iOS
        https://bugs.webkit.org/show_bug.cgi?id=201084
        <rdar://problem/51908390>

        Reviewed by Youenn Fablet.

        * platform/ios-wk2/TestExpectations:
        Unskips HID tests for iOS.

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

        Unreviewed, test gardening

        * platform/mac-wk2/TestExpectations:
        Skip WebAuthn tests for HighSierra and Mojave.

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

        Unreviewed, rolling out r248961.

        Same patch was re-landed after being rolled out. Patch is
        causing Catalina/iOS 13 test failures. Rolling out.

        Reverted changeset:

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

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

        rdar://51857070 (iPad: Many fast/text-autosizing layout tests are consistently failing)

        Unreviewed Test Gardening.
        Tests are no longer failing. Removing test expectations.

        * platform/ipad/TestExpectations:

2019-08-26  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.
        * http/tests/ssl/certificate-validation.html: Remove unneeded setting call
        since we deny server trust requests if SSL certificates are not all allowed.

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 ==
