2019-12-03  Truitt Savell  <tsavell@apple.com>

        6 fast/text/emoji-gender are expected to fail on Catalina 10.15.1 and newer
        https://bugs.webkit.org/show_bug.cgi?id=204820

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-12-03  Doug Kelly  <dougk@apple.com>

        Assertion when encountering U_OTHER_NEUTRAL in createBidiRunsForLine at end of run
        https://bugs.webkit.org/show_bug.cgi?id=204485

        Reviewed by Ryosuke Niwa.

        Add a simple test case which illustrates a neutral at the end of a
        Unicode bidirectional run.

        * fast/text/international/unicode-bidi-other-neutrals-expected.html: Added.
        * fast/text/international/unicode-bidi-other-neutrals.html: Added.

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

        fast/events/touch/ios/passive-by-default-on-document-and-window.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=204797
        <rdar://problem/57591431>

        Reviewed by Tim Horton.

        Fix the layout test by waiting for touchend events before finishing the test, such that passive touchend events
        that were queued up via `EventDispatcher::touchEvent` have a chance to be dispatched to the page. Also, make the
        test a bit more modern by replacing the UI script in the test with a call to a UIHelper method.

        * 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-12-03  youenn fablet  <youenn@apple.com>

        Add support for camera rotation when capturing in UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=204750

        Reviewed by Eric Carlson.

        * webrtc/video-rotation.html:
        Capture in UIProcess on Cocoa port and make use of test runner API to simulate device rotation.

2019-12-03  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/layoutformattingcontext/flow-integration-basic.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204795

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-12-03  Per Arne Vollan  <pvollan@apple.com>

        The test webanimations/accelerated-animation-removal-upon-transition-completion.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=204794

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-12-03  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Shorten feature flag name
        https://bugs.webkit.org/show_bug.cgi?id=204788

        Reviewed by Sam Weinig.

        * fast/layoutformattingcontext/flow-integration-basic.html:

2019-12-03  Chris Lord  <clord@igalia.com>

        [WPE] Some WebGL 1.0.3 conformance tests are marked as failing but have been consistently passing
        https://bugs.webkit.org/show_bug.cgi?id=204790

        Reviewed by Alejandro G. Castro.

        * platform/wpe/TestExpectations:

2019-12-03  youenn fablet  <youenn@apple.com>

        [Cocoa] Run camera capture in UIProcess by default in layout tests
        https://bugs.webkit.org/show_bug.cgi?id=204512

        Reviewed by Eric Carlson.

        Update tests to remove use of the removed internals API and disable
        camera capture in UIProcess for two tests that exihibit shortcomings of our current UIProcess camera capture support.

        * fast/mediastream/constraint-intrinsic-size.html:
        * fast/mediastream/media-stream-page-muted.html:
        * fast/mediastream/mediastreamtrack-video-clone.html:
        * fast/mediastream/mock-media-source-expected.txt:
        * fast/mediastream/mock-media-source.html:
        * fast/mediastream/overconstrainederror-constraint.html:
        * webrtc/video-rotation.html:

2019-12-03  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Setup root box properties
        https://bugs.webkit.org/show_bug.cgi?id=204743

        Reviewed by Zalan Bujtas.

        * fast/layoutformattingcontext/flow-integration-basic.html: Added.
        * platform/mac/fast/layoutformattingcontext/flow-integration-basic-expected.txt: Added.

2019-12-03  Zan Dobersek  <zdobersek@igalia.com>

        Implement createImageBitmap(OffscreenCanvas)
        https://bugs.webkit.org/show_bug.cgi?id=183440

        Reviewed by Antti Koivisto.

        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:

2019-12-02  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Provide UI to convert between sRGB and p3 color spaces
        https://bugs.webkit.org/show_bug.cgi?id=203534
        <rdar://problem/56688523>

        Reviewed by Devin Rousso.

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

2019-12-02  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Crash when animating an enum attribute for multiple instances of an SVG element
        https://bugs.webkit.org/show_bug.cgi?id=204766

        Reviewed by Simon Fraser.

        * svg/animations/animated-enum-lengthAdjust-instances-expected.txt: Added.
        * svg/animations/animated-enum-lengthAdjust-instances.svg: Added.

2019-12-02  Alex Christensen  <achristensen@webkit.org>

        Incorrect association of the URL object with the value port
        https://bugs.webkit.org/show_bug.cgi?id=204414

        Reviewed by Sam Weinig.

        * fast/dom/DOMURL/set-href-attribute-port-expected.txt:
        * fast/dom/DOMURL/set-href-attribute-port.html:
        * fast/dom/HTMLAnchorElement/set-href-attribute-port-expected.txt:
        * fast/dom/HTMLAnchorElement/set-href-attribute-port.html:

2019-12-02  Truitt Savell  <tsavell@apple.com>

        Update expectations for two tests after https://trac.webkit.org/changeset/252363/webkit
        https://bugs.webkit.org/show_bug.cgi?id=204756
        https://bugs.webkit.org/show_bug.cgi?id=204757

        Unreviewed test gardening.

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

2019-12-02  youenn fablet  <youenn@apple.com>

        Service Worker should correctly set its document first party for cookies URL
        https://bugs.webkit.org/show_bug.cgi?id=204742

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/resources/set-cookie.py: Added.
        * http/wpt/service-workers/resources/third-party-cookie-iframe.html: Added.
        * http/wpt/service-workers/resources/third-party-worker.js:
        * http/wpt/service-workers/third-party-cookie-expected.txt: Added.
        * http/wpt/service-workers/third-party-cookie.html: Added.

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

        Don't do range checking for calc() at parse time
        https://bugs.webkit.org/show_bug.cgi?id=204737

        Reviewed by Antti Koivisto.

        Update tests that assumed calc range-checked at parse time.

        * fast/css/column-width-calculated-value-expected.txt:
        * fast/css/column-width-calculated-value.html:
        * fast/css/flex-shrink-calculated-value-expected.txt:
        * fast/css/flex-shrink-calculated-value.html:
        * fast/css/negative-calc-values-expected.txt:
        * fast/css/negative-calc-values.html:
        * fast/css/text-shadow-calc-value-expected.txt:
        * fast/css/text-shadow-calc-value.html:
        * fast/shapes/parsing/parsing-shape-image-threshold-expected.txt:
        * fast/shapes/parsing/parsing-shape-image-threshold.html:

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

        Update RealtimeOutgoingAudioSourceCocoa::m_writeCount when sampleRate changes
        https://bugs.webkit.org/show_bug.cgi?id=204606

        Reviewed by Eric Carlson.

        * webrtc/audio-samplerate-change-expected.txt: Added.
        * webrtc/audio-samplerate-change.html: Added.

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

        [Web Animations] Forward-filling animations should not schedule updates while filling
        https://bugs.webkit.org/show_bug.cgi?id=204697
        <rdar://problem/57534005>

        Reviewed by Dean Jackson.

        Adding tests checking that we don't schedule animation updates while filling for accelerated and non-accelerated animations alike.

        * webanimations/no-scheduling-while-filling-accelerated-expected.txt: Added.
        * webanimations/no-scheduling-while-filling-accelerated.html: Added.
        * webanimations/no-scheduling-while-filling-non-accelerated-expected.txt: Added.
        * webanimations/no-scheduling-while-filling-non-accelerated.html: Added.

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

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

        Broke Windows Build (Requested by aakashja_ on #webkit).

        Reverted changeset:

        "[Web Animations] Forward-filling animations should not
        schedule updates while filling"
        https://bugs.webkit.org/show_bug.cgi?id=204697
        https://trac.webkit.org/changeset/252944

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

        [Web Animations] Forward-filling animations should not schedule updates while filling
        https://bugs.webkit.org/show_bug.cgi?id=204697

        Reviewed by Dean Jackson.

        Adding tests checking that we don't schedule animation updates while filling for accelerated and non-accelerated animations alike.

        * webanimations/no-scheduling-while-filling-accelerated-expected.txt: Added.
        * webanimations/no-scheduling-while-filling-accelerated.html: Added.
        * webanimations/no-scheduling-while-filling-non-accelerated-expected.txt: Added.
        * webanimations/no-scheduling-while-filling-non-accelerated.html: Added.

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

        Element jumps to wrong position after perspective change on ancestor
        https://bugs.webkit.org/show_bug.cgi?id=202505
        <rdar://problem/55930710>

        Reviewed by Antti Koivisto.

        * compositing/geometry/layer-position-after-removing-perspective-expected.html: Added.
        * compositing/geometry/layer-position-after-removing-perspective.html: Added.
        * css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt: Rebaselined.

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

        [WebGL] Garden dedicated queue (Part 10)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

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

        [WebGL] Garden dedicated queue (Part 9)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

2019-11-28  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK and WPE gardening after r252916.

        * platform/gtk/TestExpectations:
        * platform/gtk/css3/blending/svg-blend-hard-light-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/paths-data-18-f-manual-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/paths-data-20-f-manual-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-polygon-03-t-manual-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/struct-dom-07-f-manual-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/struct-svg-02-f-manual-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/svgdom-over-01-f-manual-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/bearing/absolute-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/bearing/relative-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/bearing/zero-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/closepath/segment-completing-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/error-handling/render-until-error-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/text/visualtests/text-inline-size-001-visual-expected.txt: Added.
        * platform/wpe/TestExpectations:

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

        [WebGL] Garden dedicated queue (Part 8)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

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

        REGRESSION(r252455): imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html fails on iOS and WK1
        https://bugs.webkit.org/show_bug.cgi?id=204272
        <rdar://problem/57253742>

        Reviewed by Dean Jackson.

        Removing this specific expectation for WK1 since it now behaves just like the other configurations.

        * platform/mac-wk1/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Removed.

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

        [WebGL] Garden dedicated queue (Part 7)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

2019-11-27  Nikolas Zimmermann  <nzimmermann@igalia.com>

        Update test expectations for GTK port

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2019-11-27  Nikolas Zimmermann  <nzimmermann@igalia.com>

        Update test expectations for GTK/WPE ports

        Unreviewed test gardening.

        Get rid of outdated expectations referring to not-existing tests, remove duplicates, etc.
        Mark Gtk tests as passing that are reported by the bots to pas.

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

2019-11-27  Nikolas Zimmermann  <nzimmermann@igalia.com>

        Update test expectations for WPE port

        Unreviewed test gardening.

        Get rid of outdated expectations referring to not-existing tests, remove duplicates, etc.

        * platform/wpe/TestExpectations:

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

        [WebGL] Garden dedicated queue (Part 6)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        Remove duplicates, unicode character.

        * webgl/TestExpectations:

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

        Drop ActiveDOMObject::shouldPreventEnteringBackForwardCache_DEPRECATED()
        https://bugs.webkit.org/show_bug.cgi?id=204626

        Reviewed by Ryosuke Niwa.

        * http/tests/security/navigate-when-restoring-cached-page.html:

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

        [WebGL] Garden dedicated queue (Part 5)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

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

        Update capturing document media state when entering b/f cache
        https://bugs.webkit.org/show_bug.cgi?id=204589

        Reviewed by Chris Dumez.

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

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

        Allow b/f cache in case of connected peer connections
        https://bugs.webkit.org/show_bug.cgi?id=204583

        Reviewed by Chris Dumez.

        * fast/history/resources/page-cache-helper-10000ms.html: Added.
        * webrtc/peerconnection-page-cache-expected.txt: Added.
        * webrtc/peerconnection-page-cache-long-expected.txt: Added.
        * webrtc/peerconnection-page-cache-long.html: Added.
        * webrtc/peerconnection-page-cache.html: Added.

2019-11-26  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, add new tests crashing because we do
        not have an implementation of WTR::UIScriptController::copyText,
        the test was added in r252450.

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

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

        [Web Animations] Layout of children of element with forwards-filling opacity animation may be incorrect after removal
        https://bugs.webkit.org/show_bug.cgi?id=204602
        <rdar://problem/45311541>

        Reviewed by Antti Koivisto.

        Add a new ref test that checks that removing a forwards-filling animation that triggers a stacking context (for instance, animating opacity)
        after it has completed from an element affecting layout yields the correct layout.

        * webanimations/child-layer-position-after-removal-of-animation-triggering-stacking-context-with-fill-forwards-expected.html: Added.
        * webanimations/child-layer-position-after-removal-of-animation-triggering-stacking-context-with-fill-forwards.html: Added.

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

        [Win] Update KeyboardEvent as per the latest specification
        https://bugs.webkit.org/show_bug.cgi?id=202183

        Reviewed by Ross Kirsling.

        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        Unskipped fast/events/arrow-keys-on-body.html, fast/events/keyboardevent-key.html, and fast/events/key-events-in-input-text.html.

2019-11-25  Zan Dobersek  <zdobersek@igalia.com>  and  Chris Lord <clord@igalia.com>

        Basic OffscreenCanvas functionality
        https://bugs.webkit.org/show_bug.cgi?id=182686

        Reviewed by Antti Koivisto.

        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:

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

        REGRESSION (Safari 13): WebSocket payload is truncated when x-webkit-deflate-frame is used
        https://bugs.webkit.org/show_bug.cgi?id=202401
        <rdar://problem/55922632>

        Reviewed by Alex Christensen.

        * http/tests/websocket/tests/hybi/deflate-extension-expected.txt: Added.
        * http/tests/websocket/tests/hybi/deflate-extension.html: Added.

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

        Mark imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html as Slow
        https://bugs.webkit.org/show_bug.cgi?id=204567

        Unreviewed.

        * TestExpectations:
        Mark above test as slow as it takes at least 20 seconds to run.

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

        [WebGL] Garden dedicated queue (Part 4)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

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

        [WebGL] Garden dedicated queue (Part 3)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

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

        Resource Load Statistics: Allow multiple third-party cookie blocking settings
        https://bugs.webkit.org/show_bug.cgi?id=204389
        <rdar://problem/57344054>

        Reviewed by Brent Fulgham.

        The added tests existed before and are not re-introduced to test their dedicated setting.

        The changed tests have been expanded to cover the new code paths.

        * 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.
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database-expected.txt:
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database.html:
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-expected.txt:
        * http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html:
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database-expected.txt:
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html:
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-expected.txt:
        * http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html:

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

        [WebGL] Garden dedicated queue (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

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

        [WebGL] Garden dedicated queue (Part 1)
        https://bugs.webkit.org/show_bug.cgi?id=204547

        Unreviewed test gardening.

        * webgl/TestExpectations:

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

        Some tests are failing on Win64
        https://bugs.webkit.org/show_bug.cgi?id=204545

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Media queries in img sizes attribute don't evaluate dynamically
        https://bugs.webkit.org/show_bug.cgi?id=204521

        Reviewed by Simon Fraser.

        * fast/images/sizes-dynamic-001-expected.html: Added.
        * fast/images/sizes-dynamic-001.html: Added.
        * fast/images/sizes-dynamic-002-expected.html: Added.
        * fast/images/sizes-dynamic-002.html: Added.

        Copied and modified from imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-*
        because we don't support reftest-wait (webkit.org/b/186045).

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

        Some tests are failing on Win64
        https://bugs.webkit.org/show_bug.cgi?id=204545

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        http/tests/eventloop/queue-task-across-cross-site-frames.html is flaky failure on iOS
        https://bugs.webkit.org/show_bug.cgi?id=204510

        Reviewed by Chris Dumez.

        There are two issues with this test. First, queue-task-across-cross-site-frames.html wasn't waiting
        for the helper file to post logs, and secondly, eventloop-helper.html was relying on setTimeout(~, 0)
        to always happen after queued tasks had run, which is not always true if there had already been
        another 0s timer scheduled.

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

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

        ( r251737 ) media/remoteplayback-prompt.html is a flakey timeout
        https://bugs.webkit.org/show_bug.cgi?id=204362
        <rdar://problem/57327870>

        Reviewed by Jer Noble.

        * media/media-source/only-bcp47-language-tags-accepted-as-valid-expected.txt:
        * media/remoteplayback-prompt.html: Update to make debugging timeouts easier.
        * media/video-test.js:
        (waitForEventWithTimeout):

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

        Regression (r252701): imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-shorthand-2.xht and multicol-rule-fraction-003.xht are failing on iOS
        https://bugs.webkit.org/show_bug.cgi?id=204505

        Unreviewed test gardening.

        Two multicol tests still fail on iOS.

        * platform/ios/TestExpectations:

2019-11-21  Brian Burg  <bburg@apple.com>

        Web Inspector: add support for new kinds of diagnostic events
        https://bugs.webkit.org/show_bug.cgi?id=204430

        Reviewed by Devin Rousso.

        Add new test cases for WI.DiagnosticController.

        * inspector/unit-tests/diagnostic-controller-expected.txt: Added.
        * inspector/unit-tests/diagnostic-controller.html: Added.

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 ==
