2020-02-13  Kate Cheney  <katherine_cheney@apple.com>

        Expose prevalent domains on a per-page basis
        https://bugs.webkit.org/show_bug.cgi?id=207523
        <rdar://problem/59270758>

        Reviewed by Chris Dumez.

        Added 2 new tests for the resource load statistics database and
        memory stores. Added a basic iframe that both tests can use to test
        if a resource load from a prevalent domain gets reported properly.

        * http/tests/resourceLoadStatistics/prevalent-domains-per-page-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html: Added.
        * http/tests/resourceLoadStatistics/prevalent-domains-per-page-expected.txt: Added.
        * http/tests/resourceLoadStatistics/prevalent-domains-per-page.html: Added.
        * http/tests/resourceLoadStatistics/resources/basic-iframe.html: Added.

2020-02-13  Lauro Moura  <lmoura@igalia.com>

        [GTK] Gardening more flaky crashes
        https://bugs.webkit.org/show_bug.cgi?id=207738

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2020-02-13  Ben Nham  <nham@apple.com>

        Flash of white can occur if JS forces an early layout
        https://bugs.webkit.org/show_bug.cgi?id=207516

        This causes us to wait for the first non-empty layout before we paint on Mac, which we
        already do on all other platforms.

        Reviewed by Antti Koivisto.

        * fast/scrolling/rtl-scrollbars-listbox-scroll.html: Wait for document to load before scrolling.
        * platform/mac/TestExpectations: Skip before-load-001.html as we already do on iOS. This test depends on first paint timing and this patch makes the Mac behave like iOS in terms of first paint.

2020-02-13  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] fast/scrolling/latching/iframe_in_iframe.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207732

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-13  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac Release wk2 ] accessibility/press-targets-center-point.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207728

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-13  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207726

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-13  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac Debug ] http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207723

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-13  Youenn Fablet  <youenn@apple.com>

        REGRESSION: (256381) [ macOS ] http/tests/workers/service/serviceworkerclients-claim.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207653
        <rdar://problem/59396225>

        Reviewed by Chris Dumez.

        console log message output was flaky.
        Make sure to end the fetch and post a message so that the console log message will appear in the expected.txt reliably.

        * http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:
        * http/tests/workers/service/serviceworkerclients-claim.https.html:

2020-02-13  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] fast/images/webp-as-image.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=207718

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-13  Lauro Moura  <lmoura@igalia.com>

        [GTK] Gardening debug mode timeouts.
        https://bugs.webkit.org/show_bug.cgi?id=207714

        Also removed obsolete expectations as the tests are just timeouting in
        debug mode and have not crashed since 2018.

        Unreviewed test gardening.

        * platform/gtk-wayland/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-currentTime.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207046

        Corrected test expectations

        Unreviewed test gardening

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

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] svg/custom/animate-initial-pause-unpause.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207710

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-13  Said Abou-Hallawa  <sabouhallawa@apple.com>

        WebP image format is not supported
        https://bugs.webkit.org/show_bug.cgi?id=192672

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/IndexedDB-private-browsing/close-in-upgradeneeded.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207709

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-13  Nikos Mouchtaris  <nmouchtaris@apple.com>

        Remove ApplePayBillingAddress.html from TestExpectations after fix for flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207704

        Reviewed by Wenson Hsieh.

        * platform/mac-wk2/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [iOS] Layout Test fast/visual-viewport/ios/caret-after-focus-in-fixed.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=181821

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        Flaky Test: imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html
        https://bugs.webkit.org/show_bug.cgi?id=202003

        Unreviewed test gardening

        * platform/ios/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207705

        Unreviewed test gardening

        * platform/ios/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207703

        Unreviewed test gardening

        * platform/ios/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes.any.serviceworker.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207702

        Unreviewed test gardening

        * platform/ios/TestExpectations:

2020-02-13  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
        https://bugs.webkit.org/show_bug.cgi?id=207674
        rdar://problem/59404866

        Reviewed by Antti Koivisto.
        
        Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
        which is expected to work.

        * fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
        * fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
        * platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.

2020-02-13  Said Abou-Hallawa  <said@apple.com>

        Unreviewed, rolling out r255158, 255405 and r255486

        Caused test flakiness and PLT regression.

        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/animation/request-animation-frame-throttle-subframe.html:
        * fast/animation/request-animation-frame-throttling-detached-iframe.html:
        * fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
        * fast/animation/request-animation-frame-throttling-lowPowerMode.html:
        * fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Removed.
        * fast/animation/request-animation-frame-throttling-outside-viewport.html: Removed.
        * fast/animation/resources/frame-with-animation-2.html: Removed.
        * http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
        * platform/mac-wk2/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/return-local-variable.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207700

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [ Mac WK2 ] inspector/canvas/updateShader-webgpu-sharedVertexFragment.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206852

        Unreviewed test gardening

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

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        http/wpt/css/css-animations/start-animation-001.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207337

        Correcting test expectations to include wk2

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-13  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] Layout Test storage/websql/read-transactions-running-concurrently.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=194162

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-13  Chris Lord  <clord@igalia.com>

        Implement OffscreenCanvas.copiedImage
        https://bugs.webkit.org/show_bug.cgi?id=206220

        Reviewed by Žan Doberšek.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt:
        * platform/gtk/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:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-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:

2020-02-13  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, update TestExpectations and rebaselines
        https://bugs.webkit.org/show_bug.cgi?id=207626

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https-expected.txt: Added.
        * platform/gtk/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.

2020-02-12  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>

        [WebCrypto][CommonCrypto] Incorrect AES-CTR with counterLength longer than 64
        https://bugs.webkit.org/show_bug.cgi?id=207238

        Reviewed by Jiewen Tan.

        Add test cases where the counter length is 66 and 128, and the counter capacity
        to overflow is 1 and 2.
        * crypto/subtle/aes-ctr-import-key-encrypt-expected.txt:
        * crypto/subtle/aes-ctr-import-key-encrypt.html:

2020-02-12  Lauro Moura  <lmoura@igalia.com>

        [GTK][WPE] More layout tests gardening
        https://bugs.webkit.org/show_bug.cgi?id=207679

        Unreviewed test gardening.

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

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

        WebP image format is not supported
        https://bugs.webkit.org/show_bug.cgi?id=192672

        Reviewed by Youenn Fablet.

        Disable the tests for all ports and enable it only for [ Catalina+ ].

        * TestExpectations:
        * fast/images/animated-webp-as-image-expected.html: Added.
        * fast/images/animated-webp-as-image.html: Added.
        * fast/images/resources/animated-red-green-blue-repeat-infinite.webp: Added.
        * fast/images/resources/green-400x400.webp: Added.
        * fast/images/webp-as-image-expected.html: Added.
        * fast/images/webp-as-image.html: Added.
        * platform/mac/TestExpectations:

2020-02-12  Pavel Feldman  <pavel.feldman@gmail.com>

        Web Inspector: encode binary web socket frames using base64
        https://bugs.webkit.org/show_bug.cgi?id=207448
        
        Previous representation of binary frames is lossy using fromUTF8WithLatin1Fallback,
        this patch consistently encodes binary data using base64.

        Reviewed by Timothy Hatcher.

        * http/tests/websocket/tests/hybi/inspector/binary-expected.txt:
        * http/tests/websocket/tests/hybi/inspector/binary.html:

2020-02-12  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r256010.

        Introduced ASan crashes

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/r256010

2020-02-12  Jason Lawrence  <lawrence.j@apple.com>

        [Mac wk2 ] fast/dom/attr_dead_doc.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207668

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-12  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS Sim WK2 ] Layout Test fast/visual-viewport/ios/min-scale-greater-than-one.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196300

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        Composition highlight rects should be rounded and inset
        https://bugs.webkit.org/show_bug.cgi?id=207655
        <rdar://problem/59362474>

        Reviewed by Tim Horton.

        Make this existing layout test work with the new composition highlight appearance by covering up the edges of
        the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
        rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
        have a `border-radius`).

        * editing/input/composition-highlights-expected.html:
        * editing/input/composition-highlights.html:

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

        Unreviewed, rolling out r256463.

        Caused major flakiness on Mac wk2

        Reverted changeset:

        "REGRESSION (r255158): http/tests/frame-throttling/raf-
        throttle-in-cross-origin-subframe.html is a flaky failure"
        https://bugs.webkit.org/show_bug.cgi?id=206839
        https://trac.webkit.org/changeset/256463

2020-02-12  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] http/tests/cache-storage/cache-representation.https.html is flaky timing out.
        https://bugs.webkit.org/show_bug.cgi?id=207665

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

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

        Remove CSS_DEVICE_ADAPTATION
        https://bugs.webkit.org/show_bug.cgi?id=203479

        Reviewed by Tim Horton.

        * css3/device-adapt/opera/cascading-001-expected.txt: Removed.
        * css3/device-adapt/opera/cascading-001.xhtml: Removed.
        * css3/device-adapt/opera/cascading-002-expected.txt: Removed.
        * css3/device-adapt/opera/cascading-002.xhtml: Removed.
        * css3/device-adapt/opera/cascading-003-expected.txt: Removed.
        * css3/device-adapt/opera/cascading-003.xhtml: Removed.
        * css3/device-adapt/opera/cascading-004-expected.txt: Removed.
        * css3/device-adapt/opera/cascading-004.xhtml: Removed.
        * css3/device-adapt/opera/constrain-001-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-001.xhtml: Removed.
        * css3/device-adapt/opera/constrain-002-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-002.xhtml: Removed.
        * css3/device-adapt/opera/constrain-003-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-003.xhtml: Removed.
        * css3/device-adapt/opera/constrain-004-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-004.xhtml: Removed.
        * css3/device-adapt/opera/constrain-005-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-005.xhtml: Removed.
        * css3/device-adapt/opera/constrain-006-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-006.xhtml: Removed.
        * css3/device-adapt/opera/constrain-007-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-007.xhtml: Removed.
        * css3/device-adapt/opera/constrain-008-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-008.xhtml: Removed.
        * css3/device-adapt/opera/constrain-009-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-009.xhtml: Removed.
        * css3/device-adapt/opera/constrain-010-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-010.xhtml: Removed.
        * css3/device-adapt/opera/constrain-011-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-011.xhtml: Removed.
        * css3/device-adapt/opera/constrain-012-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-012.xhtml: Removed.
        * css3/device-adapt/opera/constrain-013-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-013.xhtml: Removed.
        * css3/device-adapt/opera/constrain-014-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-014.xhtml: Removed.
        * css3/device-adapt/opera/constrain-015-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-015.xhtml: Removed.
        * css3/device-adapt/opera/constrain-016-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-016.xhtml: Removed.
        * css3/device-adapt/opera/constrain-017-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-017.xhtml: Removed.
        * css3/device-adapt/opera/constrain-018-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-018.xhtml: Removed.
        * css3/device-adapt/opera/constrain-019-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-019.xhtml: Removed.
        * css3/device-adapt/opera/constrain-020-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-020.xhtml: Removed.
        * css3/device-adapt/opera/constrain-021-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-021.xhtml: Removed.
        * css3/device-adapt/opera/constrain-022-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-022.xhtml: Removed.
        * css3/device-adapt/opera/constrain-023-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-023.xhtml: Removed.
        * css3/device-adapt/opera/constrain-024-expected.txt: Removed.
        * css3/device-adapt/opera/constrain-024.xhtml: Removed.
        * css3/device-adapt/opera/cssom-001-expected.txt: Removed.
        * css3/device-adapt/opera/cssom-001.xhtml: Removed.
        * css3/device-adapt/opera/orientation-001-expected.txt: Removed.
        * css3/device-adapt/opera/orientation-001.xhtml: Removed.
        * css3/device-adapt/opera/orientation-002-expected.txt: Removed.
        * css3/device-adapt/opera/orientation-002.xhtml: Removed.
        * css3/device-adapt/opera/syntax-001-expected.txt: Removed.
        * css3/device-adapt/opera/syntax-001.xhtml: Removed.
        * css3/device-adapt/opera/syntax-002-expected.txt: Removed.
        * css3/device-adapt/opera/syntax-002.xhtml: Removed.
        * css3/device-adapt/opera/syntax-003-expected.txt: Removed.
        * css3/device-adapt/opera/syntax-003.xhtml: Removed.
        * css3/device-adapt/resources/check-contents-width.html: Removed.
        * css3/device-adapt/resources/viewport-width-check-inner-width.html: Removed.
        * css3/device-adapt/viewport-at-rule-parsing-expected.txt: Removed.
        * css3/device-adapt/viewport-at-rule-parsing.html: Removed.
        * css3/device-adapt/viewport-properties-validation-expected.txt: Removed.
        * css3/device-adapt/viewport-properties-validation.html: Removed.
        * css3/device-adapt/viewport-width-check-window-innerwidth-correct-expected.txt: Removed.
        * css3/device-adapt/viewport-width-check-window-innerwidth-correct.html: Removed.
        * css3/device-adapt/viewport-width-not-affecting-next-page-expected.txt: Removed.
        * css3/device-adapt/viewport-width-not-affecting-next-page.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2020-02-12  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] crypto/subtle/rsa-indexeddb-non-exportable-private.html is flaky timing out.
        https://bugs.webkit.org/show_bug.cgi?id=207660

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore5.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207652

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore4.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207651

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2020-02-12  Said Abou-Hallawa  <said@apple.com>

        REGRESSION (r255158): http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206839

        Reviewed by Simon Fraser.

        Remove the setting 'RenderingUpdateThrottling'.

        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/animation/request-animation-frame-throttle-subframe.html:
        * fast/animation/request-animation-frame-throttling-detached-iframe.html:
        * fast/animation/request-animation-frame-throttling-lowPowerMode.html:
        * fast/animation/request-animation-frame-throttling-outside-viewport.html:
        * http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
        * platform/mac-wk2/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore3.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207650

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/IndexedDB-private-browsing/idb_webworkers.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207649

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2020-02-12  Nikos Mouchtaris  <nmouchtaris@apple.com>

        [ Mac wk2 ] http/tests/ssl/applepay/ApplePayBillingAddress.html a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207577

        Reviewed by Wenson Hsieh

        Fix for race condition when aborting paymentrequest.

        * http/tests/ssl/applepay/ApplePayBillingAddress.html:

2020-02-12  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Deny mach lookup access to analytics service in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=207482

        Reviewed by Darin Adler.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207647

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2020-02-12  Megan Gardner  <megan_gardner@apple.com>

        Fix highlight text decorations to work with all decoration types and colors
        https://bugs.webkit.org/show_bug.cgi?id=207601

        Reviewed by Dean Jackson.

        * http/wpt/css/css-highlight-api/highlight-text-decorations-expected.html:
        * http/wpt/css/css-highlight-api/highlight-text-decorations.html:

2020-02-12  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Deny mach lookup access to view service in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=207487

        Reviewed by Darin Adler.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] http/tests/security/cross-frame-access-private-browsing.html is a flay timeout
        https://bugs.webkit.org/show_bug.cgi?id=207645

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing.sub.https.html is flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207643

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing
        [ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-12  Rossana Monteriso  <rmonteriso@igalia.com>

        [css-grid] Move grid-item-auto-margins-alignment tests to WPT folder
        https://bugs.webkit.org/show_bug.cgi?id=207534

        Reviewed by Javier Fernandez.

        Remove grid-item-auto-margins-alignment tests and their expected.txt files. These tests
        are being replaced by adapted tests in the corresponding WPT test folder.

        * fast/css-grid-layout/grid-item-auto-margins-alignment-expected.txt: Removed.
        * fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr-expected.txt: Removed.
        * fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl-expected.txt: Removed.
        * fast/css-grid-layout/grid-item-auto-margins-alignment.html: Removed.
        * fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr.html: Removed.
        * fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl.html: Removed.

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/whlsl.html
        https://bugs.webkit.org/show_bug.cgi?id=207638

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/textures-sample-bias.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207636

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] fast/events/before-input-prevent-insert-replacement.html is a flay failure
        https://bugs.webkit.org/show_bug.cgi?id=207635

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: (256400) tiled-drawing/scrolling/fixed/fixed-during-rubberband.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207631

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-12  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: (356400) tiled-drawing/scrolling/sticky/sticky-during-rubberband.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207632

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-12  Sunny He  <sunny_he@apple.com>

        Fix crash due to uninitialized currentStyle in CSSTransition
        https://bugs.webkit.org/show_bug.cgi?id=205959
        <rdar://57073673>

        Reviewed by Antoine Quint.

        Fix crash due to uninitialized currentStyle in CSSTransition

        * legacy-animation-engine/transitions/svg-bad-scale-crash-expected.txt: Added.
        * legacy-animation-engine/transitions/svg-bad-scale-crash.html: Added.

2020-02-11  Tomoki Imai  <Tomoki.Imai@sony.com>

        Add WebCrypto LayoutTests to check if PKCS#7 padding is correctly implemented in AES-CBC
        https://bugs.webkit.org/show_bug.cgi?id=207174

        Reviewed by Jiewen Tan.

        WebCrypto AES-CBC specification requires PKCS#7 padding,

        Add decrypt/encrypt test cases for 0 ~ 33 bytes data.
        It covers the boundary values where the padding size are changed, namely, 0, 1, 15, 16, 17, 31, 32, and 33.

        * crypto/subtle/aes-cbc-import-key-decrypt-expected.txt:
        * crypto/subtle/aes-cbc-import-key-decrypt.html:
        * crypto/subtle/aes-cbc-import-key-encrypt-expected.txt:
        * crypto/subtle/aes-cbc-import-key-encrypt.html:

2020-02-11  Lauro Moura  <lmoura@igalia.com>

        [GTK][WPE] Gardening some tests crashing in debug builds
        https://bugs.webkit.org/show_bug.cgi?id=207607

        Unreviewed test gardening.

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

2020-02-11  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: iteration of cursors skip records if deleted
        https://bugs.webkit.org/show_bug.cgi?id=207437

        Reviewed by Brady Eidson.

        * storage/indexeddb/cursor-update-while-iterating-expected.txt:
        * storage/indexeddb/resources/cursor-update-while-iterating.js:
        (populateObjectStore):
        (onOpenSuccess.request.onsuccess):
        (onOpenSuccess):
        (prepareDatabase): Deleted.

2020-02-11  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] webgpu/whlsl/do-while-loop.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207599

        Unreviewed test gardening.

        Adjusted expectations to reflect image failure.

        * platform/mac-wk2/TestExpectations:

2020-02-11  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] webgpu/whlsl/do-while-loop.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207599

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-11  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207596

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-11  Youenn Fablet  <youenn@apple.com>

        Parent service worker controller should be used for child iframe as per https://w3c.github.io/ServiceWorker/#control-and-use-window-client
        https://bugs.webkit.org/show_bug.cgi?id=207506

        Reviewed by Darin Adler.

        * http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:
        Rebased test since now the frame is doing a fetch that is no longer intercepted by the service worker,
        and is thus failing due to CORS.
        * http/tests/workers/service/serviceworkerclients-claim.https.html:

2020-02-11  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] http/wpt/service-workers/service-worker-spinning-fetch.https.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207515

        Unreviewed test gardening.

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

2020-02-11  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=206934

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-02-11  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Deny mach lookup access to the tccd service in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=207488

        Reviewed by Darin Adler.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-02-11  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207583

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-11  Megan Gardner  <megan_gardner@apple.com>

        Draw underlines when specified in highlights
        https://bugs.webkit.org/show_bug.cgi?id=207319

        Reviewed by Simon Fraser.

        * http/wpt/css/css-highlight-api/highlight-text-decorations-expected.html: Copied from LayoutTests/http/wpt/css/css-highlight-api/highlight-text-expected.html.
        * http/wpt/css/css-highlight-api/highlight-text-decorations.html: Added.
        * http/wpt/css/css-highlight-api/highlight-text-expected.html:

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

        Support in-band VTT captions when loading media in the GPU Process
        https://bugs.webkit.org/show_bug.cgi?id=207467
        <rdar://problem/59312749>

        Reviewed by Jer Noble.

        * gpu-process/TestExpectations:

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

        video.currentTime is not being updated in iOS 13.4 Beta
        https://bugs.webkit.org/show_bug.cgi?id=207489
        <rdar://problem/59322640>

        Reviewed by Youenn Fablet.

        * fast/mediastream/media-element-current-time.html: Added.

2020-02-11  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] http/tests/ssl/applepay/ApplePayBillingAddress.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207577

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] http/tests/IndexedDB/collect-IDB-objects.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207571

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] legacy-animation-engine/animations/3d/transform-origin-vs-functions.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207569

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] inspector/page/overrideUserAgent.html  is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207568

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207566

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-11  Truitt Savell  <tsavell@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207563

        Unreviewed test gardening

        * platform/ios/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS ] animations/animation-callback-timestamp.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207153

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        BOTWATCH: editing/selection/5354455-1.html causes nasty crash
        rdar://problem/13448458

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations: unskip test because it no longer crashes locally

2020-02-11  Youenn Fablet  <youenn@apple.com>

        REGRESSION (r256009): [ Mojave wk2 Debug ] ASSERTION FAILED: Completion handler should always be called under WebKit::WebMDNSRegister::PendingRegistration
        https://bugs.webkit.org/show_bug.cgi?id=207521
        <rdar://problem/59331313>

        Reviewed by Eric Carlson.

        * platform/mac-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] media/airplay-target-availability.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207560

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS ] fast/parser/parser-yield-timing.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207559

        Unreviewed test gardening

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

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_update_objectstore8.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=207555

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] imported/w3c/IndexedDB-private-browsing/abort-in-initial-upgradeneeded.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=207553

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/redirected-response.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=190852

        Updating expectations to include ios 

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-database.html is flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=207552

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207551

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-11  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION (r253312): imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html is super flaky
        https://bugs.webkit.org/show_bug.cgi?id=205216

        Updated test expectations to include ios.

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-02-11  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION: [ Mac ] legacy-animation-engine/fast/animation/request-animation-frame-iframe2.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206624

        Reviewed by Antoine Quint.

        Rewrite test to have a reliable asynchronous execution order.

        * fast/animation/script-tests/request-animation-frame-subframe.html:

2020-02-11  Chris Lord  <clord@igalia.com>

        [GTK][WPE] imported/w3c/web-platform-tests/css/css-lists/counter-* tests consistently pass
        https://bugs.webkit.org/show_bug.cgi?id=207533

        Unreviewed test gardening.

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

2020-02-10  Sihui Liu  <sihui_liu@apple.com>

        REGRESSION: (253807) [ macOS iOS ] storage/indexeddb/intversion-long-queue-private.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206965
        <rdar://problem/59005652>

        Reviewed by Ryosuke Niwa.

        Modify a test to make it less flaky. Based on our current implementation, there is no guarantee that Block event on
        delete request would be fired before Complete event on transaction from connection2 in this test. The events
        sequence we are sure are: 
        1. UpgradeNeeded event on openRequest2 -> VersionChange event on connection2 -> Complete event on VersionChange
        transaction on connection2 -> Success event on openRequest2.
        2. VersionChange event on connection2 -> Block event on delete request.
        Therefore I am changing the test to ensure sequence 1.

        * platform/ios-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * storage/indexeddb/intversion-long-queue-expected.txt:
        * storage/indexeddb/intversion-long-queue-private-expected.txt:
        * storage/indexeddb/resources/intversion-long-queue.js:
        (connection2Blocked):
        (connection2UpgradeNeeded):
        (connection2VersionChangeCallback):
        (deleteDatabaseBlockedCallback): Deleted.

2020-02-10  Jason Lawrence  <lawrence.j@apple.com>

        Regression: (r256009?) [ Mojave wk2 Debug ] webrtc/peerconnection-page-cache-long.html is crashing.
        https://bugs.webkit.org/show_bug.cgi?id=207521

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-10  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] tiled-drawing/simple-document-with-margin-tiles.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207518

        unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-10  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac Debug ] inspector/animation/lifecycle-css-transition.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207517

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-10  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] http/wpt/service-workers/service-worker-spinning-fetch.https.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207515

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-10  Antti Koivisto  <antti@apple.com>

        REGRESSION: [ Win ] ( r254044 ) css1/box_properties/padding_left.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207480
        <rdar://problem/59316463>

        Unreviewed test gardening.

        * platform/win/css1/box_properties/padding_left-expected.txt:

2020-02-10  James Howard  <jameshoward@mac.com>

        Standard gamepad mapping for GameControllerGamepads
        https://bugs.webkit.org/show_bug.cgi?id=206033

        Reviewed by Dean Jackson.

        * gamepad/gamepad-polling-access-expected.txt:
        * gamepad/gamepad-polling-access.html:
        * gamepad/gamepad-timestamp.html:
        * gamepad/gamepad-visibility-1.html:

2020-02-10  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac Debug wk2 ] imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https.html is flaky crashing.
        https://bugs.webkit.org/show_bug.cgi?id=207509

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-10  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] webgpu/whlsl/textures-load.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207508

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-10  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] http/wpt/cache-storage/cache-put-keys.https.any.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207496

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-02-10  Truitt Savell  <tsavell@apple.com>

        Folloup to r256193 to set the proper ImageOnlyFailure expectation.
        https://bugs.webkit.org/show_bug.cgi?id=207477

        unreviewed test gardening.

        * platform/win/TestExpectations:

2020-02-10  Truitt Savell  <tsavell@apple.com>

        [ Win ] (r255593) webanimations/transform-accelerated-animation-finishes-before-removal.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207499

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2020-02-07  Ryosuke Niwa  <rniwa@webkit.org>

        Don't update selection when calling setSelectionRange on a disconnected input element
        https://bugs.webkit.org/show_bug.cgi?id=207357

        Reviewed by Antti Koivisto.

        Rebaselined the test that has progressed with this change.

        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:

2020-02-10  Truitt Savell  <tsavell@apple.com>

        [ Win ] (r255383) webanimations/width-and-opacity-separate-animation-yields-compositing.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207495

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2020-02-10  Kate Cheney  <katherine_cheney@apple.com>

        REGRESSION: (256055) http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207479
        <rdar://problem/59316238>

        Unreviewed test gardening

        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
        * platform/mac-wk2/TestExpectations:

2020-02-10  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Win ] css1/box_properties/padding_left.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207480

        Unreviewed test gardening

        * platform/win/TestExpectations:

2020-02-10  Simon Fraser  <simon.fraser@apple.com>

        WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
        https://bugs.webkit.org/show_bug.cgi?id=207493
        rdar://problem/59020443

        Reviewed by Zalan Bujtas.
        
        Test with an out-of-view transitioning element which should not get backing store.

        * compositing/backing/transition-extent-expected.txt: Added.
        * compositing/backing/transition-extent.html: Added.
        * platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.

2020-02-10  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Win ] animations/stacking-context-not-fill-forwards.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207477

        unreviewed test gardening.

        * platform/win/TestExpectations:

2020-02-10  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Unreachable code hit in WebCore::Shape::createShape
        https://bugs.webkit.org/show_bug.cgi?id=207399

        Reviewed by Darin Adler.

        * css3/shapes/shape-outside-path-no-crash-expected.txt: Added.
        * css3/shapes/shape-outside-path-no-crash.html: Added.

2020-02-10  Daniel Bates  <dabates@apple.com>

        Disallow setting base URL to a data or JavaScript URL
        https://bugs.webkit.org/show_bug.cgi?id=207136

        RReviewed by Brent Fulgham.

        Add some tests. Update others to toggle the setting to apply or unapply the new behavior.

        The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
        included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.

        * fast/url/relative-expected.txt:
        * fast/url/relative.html:
        * fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
        * fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
        * fast/url/resources/utilities.js:
        (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching.
        Otherwise, file URLs could be machine-specific.
        (canonicalizedPathname): Added.
        (segments): Modified to optionally call canonicalizedPathname.
        (canonicalize): Ditto.
        * fast/url/segments-from-data-url-expected.txt:
        * fast/url/segments-from-data-url.html:
        * fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
        * fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
        * fetch/fetch-url-serialization-expected.txt:
        * http/tests/plugins/navigation-during-load-embed.html:
        * http/tests/plugins/navigation-during-load.html:
        * http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
        * http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
        * http/tests/security/denied-base-url-data-url-expected.txt: Added.
        * http/tests/security/denied-base-url-data-url.html: Added.
        * http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
        * http/tests/security/denied-base-url-javascript-url.html: Added.

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/store-to-property-updates-properly.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207476

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-10  Truitt Savell  <tsavell@apple.com>

        Regression (r255961): fast/loader/data-url-load-denied.html is consistently timing out on windows
        https://bugs.webkit.org/show_bug.cgi?id=207373

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] http/tests/cache-storage/cache-records-persistency.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207474

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] imported/w3c/web-platform-tests/workers/WorkerGlobalScope_ErrorEvent_colno.htm is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207470

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] imported/w3c/web-platform-tests/svg/animations/slider-switch.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207469

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-10  Antoine Quint  <graouts@webkit.org>

        There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
        https://bugs.webkit.org/show_bug.cgi?id=207361
        <rdar://problem/59280370>

        Reviewed by Simon Fraser.

        Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
        to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.

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

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS wk2 ] http/wpt/service-workers/service-worker-networkprocess-crash.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207466

        Unreviewed test gardening.

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

2020-02-10  Antoine Quint  <graouts@webkit.org>

        [Web Animations] Fix animations/stop-animation-on-suspend.html
        https://bugs.webkit.org/show_bug.cgi?id=184580
        <rdar://problem/39406014>

        Reviewed by Simon Fraser.

        The expectations of this test were incorrect. The test animates a transform from 0 to 400px across 400ms with a linear timing function. The test suspends
        animations from 100ms to 300ms with timers, and polls animations at 200ms and 400ms. At 200ms, it expects a value of 100px, which is correct since the animation
        is suspended and so the value at 100ms (when it was suspended) is expected.

        However, the test expected the value at 400ms to be 200px, which leads me to think this test assumes that animations, when resumed, account for the time suspended
        and subtracts it from the page time. This is incorrect: when animations resume, they resume at the current time, no matter how long they were suspended. So the expected
        value should be 400px.

        * animations/stop-animation-on-suspend-expected.txt:
        * animations/stop-animation-on-suspend.html:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS wk2 ] storage/indexeddb/intversion-long-queue.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=207465

        Unreviewed test gardening.

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

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207463

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        Regression (~r252261): [ Mac wk2 ] inspector/heap/getPreview.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207209

        Correcting test expectations.

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207461

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/buffer-vertex.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207127

        Correcting test expectations for ImageOnlyFailure

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-10  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207460

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-10  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Gardening, update baselines and synchronize with GTK
        https://bugs.webkit.org/show_bug.cgi?id=207442

        Unreviewed gardening.

        * platform/wpe/TestExpectations:
        * platform/wpe/css3/selectors3/html/css3-modsel-161-expected.txt:
        * platform/wpe/css3/selectors3/xhtml/css3-modsel-161-expected.txt:
        * platform/wpe/css3/selectors3/xml/css3-modsel-161-expected.txt:
        * platform/wpe/fast/block/float/float-avoidance-expected.txt:
        * platform/wpe/fast/block/margin-collapse/103-expected.txt:
        * platform/wpe/fast/box-shadow/inset-box-shadow-radius-expected.txt:
        * platform/wpe/fast/css/text-transform-select-expected.txt:
        * platform/wpe/fast/html/keygen-expected.txt:
        * platform/wpe/fast/invalid/014-expected.txt:
        * platform/wpe/fast/parser/document-write-option-expected.txt:
        * platform/wpe/fast/replaced/replaced-breaking-expected.txt:
        * platform/wpe/fast/replaced/replaced-breaking-mixture-expected.txt:
        * platform/wpe/fast/replaced/three-selects-break-expected.txt:
        * platform/wpe/fast/replaced/width100percent-menulist-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug2479-3-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug2479-4-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug29326-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug33855-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug4382-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug96334-expected.txt:
        * platform/wpe/tables/mozilla/core/margins-expected.txt:
        * platform/wpe/tables/mozilla/dom/tableDom-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
        * platform/wpe/transforms/2d/zoom-menulist-expected.txt:

2020-02-09  Kate Cheney  <katherine_cheney@apple.com>

        [ Mac wk2 ] http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207271
        <rdar://problem/59190346>

        Reviewed by Maciej Stachowiak.

        This patch updates all ITP tests to follow the pattern
        setEnableFeature(true) at test setup and setEnableFeature(false) when
        finished. This enables/disables both ITP and the isRunningTest
        parameter so tests don't have to make two calls. It also ensures that
        each test which relies on statistics processing notifies the testRunner
        so it knows to wait for a callback, and deletes unecessary calls
        to setStatisticsNotifyPagesWhenDataRecordsWereScanned which is called
        in installStatisticsDidScanDataRecordsCallback.

        This will help limit flakiness by processing statistics only for ITP
        tests which require it for their purpose.

        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-database.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-database.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-database.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-database.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent-database.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-database.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-database.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent-database.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to-database.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics-database.html:
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-database.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-database.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-database.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-database.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-database.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-database.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/prune-statistics-database.html:
        * http/tests/resourceLoadStatistics/prune-statistics.html:
        * http/tests/resourceLoadStatistics/resources/util.js:
        (setEnableFeature):
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html:
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html:
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html:
        * http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html:
        * http/tests/resourceLoadStatistics/telemetry-generation.html:
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database.html:
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html:

2020-02-08  Simon Fraser  <simon.fraser@apple.com>

        Extent of a composited animation should not include the untransformed position
        https://bugs.webkit.org/show_bug.cgi?id=207434

        Reviewed by Sam Weinig.
        
        New test that checks backing store attachment and overlap for an element which is positioned in-view,
        but is move offscreen by the animation.

        New baselines for overlap tests, since overlap no longer considers the unanimated position.

        * compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
        * compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
        * compositing/layer-creation/translate-animation-overlap-expected.txt:
        * compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
        * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
        * legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
        * platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
        * platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.

2020-02-08  Doug Kelly  <dougk@apple.com>

        Crash in RenderTreeBuilder::Table::findOrCreateParentForChild with multicol spanner
        https://bugs.webkit.org/show_bug.cgi?id=206917

        Reviewed by Zalan Bujtas.

        * fast/multicol/spanner-crash-when-finding-table-parent-expected.txt: Added.
        * fast/multicol/spanner-crash-when-finding-table-parent.html: Added.

2020-02-07  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Double tapping shouldn't scroll the page when the body has `overflow: hidden`
        https://bugs.webkit.org/show_bug.cgi?id=207390
        <rdar://problem/56960774>

        Reviewed by Tim Horton and Simon Fraser.

        Add a new layout test to verify that double tapping an element doesn't cause the page to scroll if `overflow:
        hidden` is applied to the body.

        * fast/scrolling/ios/double-tap-to-scroll-with-scrolling-disabled-expected.txt: Added.
        * fast/scrolling/ios/double-tap-to-scroll-with-scrolling-disabled.html: Added.

2020-02-07  Kate Cheney  <katherine_cheney@apple.com>

       Regression (r256011): http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access.html is consistently failing
       https://bugs.webkit.org/show_bug.cgi?id=207382
       <rdar://problem/59259844>

        Reviewed by Yusuke Suzuki.

        Updated test expectations to reflect new sorting.

        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt:
        * http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-expected.txt:
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:

2020-02-07  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/zero-initialize-values-2.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207222

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations: this test is an image failure not a text failure.

2020-02-07  Jason Lawrence  <lawrence.j@apple.com>

        [ macOS ] Layout Test legacy-animation-engine/animations/suspend-resume-animation-events.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184617

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-07  Nikos Mouchtaris  <nmouchtaris@apple.com>

        [Apple Pay] Provide a redacted billing contact during payment method selection
        https://bugs.webkit.org/show_bug.cgi?id=207169
        <rdar://problem/42737441>

        Reviewed by Andy Estes.

        Test that billing address field of ApplePayPaymentMethod is properly 
        populated in the PaymentMethodChange callback.

        * http/tests/ssl/applepay/ApplePayBillingAddress-expected.txt: Added.
        * http/tests/ssl/applepay/ApplePayBillingAddress.html: Added.

2020-02-07  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac Debug ] imported/w3c/web-platform-tests/workers/WorkerGlobalScope_ErrorEvent_lineno.htm is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207395

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-07  youenn fablet  <youenn@apple.com>

        Align getDisplayMedia() with spec
        https://bugs.webkit.org/show_bug.cgi?id=207191
        <rdar://problem/59151017>

        Reviewed by Eric Carlson.

        * fast/mediastream/screencapture-user-gesture.html:

2020-02-07  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac Debug ] imported/w3c/web-platform-tests/workers/WorkerGlobalScope_ErrorEvent_message.htm is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207392

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-07  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] imported/w3c/web-platform-tests/css/css-transitions/properties-value-002.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207386

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-07  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] http/tests/paymentrequest/page-cache-completed-payment-response.https.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207385

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-07  youenn fablet  <youenn@apple.com>

        Filter out TURN/STUN .local URLs from a RTCPeerConnection iceServers list
        https://bugs.webkit.org/show_bug.cgi?id=207332

        Reviewed by Eric Carlson.

        * webrtc/stun-server-filtering-expected.txt: Added.
        * webrtc/stun-server-filtering.html: Added.

2020-02-07  Tomoki Imai  <Tomoki.Imai@sony.com>

        [OpenSSL] Implement WebCrypto APIs for AES-CBC, AES-CFB and AES-GCM
        https://bugs.webkit.org/show_bug.cgi?id=207176

        Reviewed by Fujii Hironori.

        Enabled WebCrypto LayoutTests for AES-CBC, AES-CFB and AES-GCM along with the implementation.

        * platform/wincairo/TestExpectations:

2020-02-07  Patrick Griffis  <pgriffis@igalia.com>

        [GTK][WPE] Add same-site cookie support
        https://bugs.webkit.org/show_bug.cgi?id=204137

        Reviewed by Carlos Garcia Campos.

        Updated GTK/WPE test expectations to pass most same-site cookie tests
        matching the Apple ports.

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

2020-02-07  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582

        Reviewed by Eric Carlson.

        Disable tests on all platforms except the ones supporting AVAssetWriterDelegate.

        * TestExpectations:
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
        Remove web audio generation since there seems to be some unstability in web audio -> stream -> media recorder.
        which should be fixed as follow-up specific patches.
        * platform/mac/TestExpectations:
        Enable running tests.

2020-02-07  youenn fablet  <youenn@apple.com>

        Do not process newly gathered ICE candidates if document is suspended
        https://bugs.webkit.org/show_bug.cgi?id=207326
        <rdar://problem/57336453>

        Reviewed by Alex Christensen.

        * fast/history/resources/page-cache-helper-100ms.html: Added.
        * webrtc/peerconnection-new-candidate-page-cache-expected.txt: Added.
        * webrtc/peerconnection-new-candidate-page-cache.html: Added.

2020-02-06  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] authenticatorGetAssertion should be sent without pinAuth if UV = "discouraged"
        https://bugs.webkit.org/show_bug.cgi?id=206547
        <rdar://problem/58768032>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:

2020-02-06  Antti Koivisto  <antti@apple.com>

        Add slot based test for the accelerated animations freezing bug (201048)
        https://bugs.webkit.org/show_bug.cgi?id=207359

        Reviewed by Ryosuke Niwa.

        201048 had a simpler test case but it is good to add one for the original problem too.

        Based on the original test by Tim Guan-tin Chien.

        * webanimations/accelerated-animation-slot-invalidation-expected.html: Added.
        * webanimations/accelerated-animation-slot-invalidation.html: Added.

2020-02-06  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] inspector/css/pseudo-creation.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207363

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-06  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r254534): 1-3% regression on PLT
        https://bugs.webkit.org/show_bug.cgi?id=207244
        <rdar://problem/58821709>

        Reviewed by Simon Fraser.

        Mark the tests as failing on certain OSes.

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

2020-02-06  Devin Rousso  <drousso@apple.com>

        Web Inspector: show JavaScript Worker terminated state as an internal property
        https://bugs.webkit.org/show_bug.cgi?id=207347

        Reviewed by Brian Burg.

        * inspector/worker/worker-create-and-terminate.html:
        Add assertions throughout the test to check that the `terminated` value matches what the
        frontend knows.

2020-02-06  Truitt Savell  <tsavell@apple.com>

        Regression: fast/hidpi/image-srcset-svg-canvas-2x.html is failing consistently on iOS EWS
        https://bugs.webkit.org/show_bug.cgi?id=207038

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-06  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION(r249831): Sources: endless spinner when trying to view a resource
        https://bugs.webkit.org/show_bug.cgi?id=207346
        <rdar://problem/59209016>

        Reviewed by Timothy Hatcher.

        * inspector/formatting/resources/html-tests/attributes.html:
        * inspector/formatting/resources/html-tests/attributes-expected.html:

2020-02-06  Truitt Savell  <tsavell@apple.com>

        Fix my mistakenly landed expectations from r255962
        https://bugs.webkit.org/show_bug.cgi?id=207337

        Unreviewed test gardening


        * platform/mac-wk1/TestExpectations:

2020-02-06  Jacob Uphoff  <jacob_uphoff@apple.com>

        Flaky Test: fast/performance/performance-now-timestamps.html
        https://bugs.webkit.org/show_bug.cgi?id=112939

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-06  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [ macOS wk1 ] ASSERTION FAILED: _notifications.contains(notificationID) imported/w3c/web-platform-tests/notifications/constructor-basic.html is flaky crashing
        https://bugs.webkit.org/show_bug.cgi?id=207307

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-06  Jack Lee  <shihchieh_lee@apple.com>

        Nullptr crash in WebCore::findPlaceForCounter with pseudo element that has display:contents host.
        https://bugs.webkit.org/show_bug.cgi?id=207241

        When the pseudo element's host element does not initiate a renderer
        (e.g. display: contents) we need to look further in the DOM tree 
        for a previous-sibling-or-parent-element candidate.

        Reviewed by Zalan Bujtas.

        * fast/css/counters/findPlaceForCounter-pseudo-element-display-content-host-crash-expected.txt: Added.
        * fast/css/counters/findPlaceForCounter-pseudo-element-display-content-host-crash.html: Added.

2020-02-06  Sukolsak Sakshuwong  <sukolsak@gmail.com> and Alexey Shvayka  <shvaikalesh@gmail.com>

        JavaScript string corruption using RegExp with unicode character
        https://bugs.webkit.org/show_bug.cgi?id=187947

        Reviewed by Yusuke Suzuki.

        Besides adding a regression test, this patch brings back:
        1. An out-of-order character class range test.
        2. Dangling and combined surrogates tests (as webkit.org/b/154863 is now resolved).

        * js/dom/regexp-range-out-of-order-expected.txt:
        * js/dom/script-tests/regexp-range-out-of-order.js:
        * js/regexp-unicode-expected.txt:
        * js/script-tests/regexp-extended-characters-match.js:
        * js/script-tests/regexp-unicode.js:

2020-02-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r255910, r255970, and r255972.
        https://bugs.webkit.org/show_bug.cgi?id=207345

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

        Reverted changesets:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255910

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255970

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255972

2020-02-06  Ali Juma  <ajuma@chromium.org>

        Crash in RenderTableCol::willBeRemovedFromTree()
        https://bugs.webkit.org/show_bug.cgi?id=207031

        Reviewed by Antti Koivisto.

        * tables/table-col-indent-crash-expected.txt: Added.
        * tables/table-col-indent-crash.html: Added.

2020-02-06  Jason Lawrence  <lawrence.j@apple.com>

        Regression: (r255150?) [ Mac wk1 ] http/wpt/css/css-animations/start-animation-001.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207337

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-06  Brent Fulgham  <bfulgham@apple.com>

        Prevent navigating top level frames to Data URLs
        https://bugs.webkit.org/show_bug.cgi?id=206962
        <rdar://problem/56770676>

        Reviewed by Youenn Fablet."

        Revise our loading behavior to match Chrome and Firefox by blocking
        top level frame navigations to Data URLs.

        * fast/loader/data-url-frame-allowed.html: Added.
        * fast/loader/data-url-frame-allowed-expected.txt : Added.
        * fast/loader/data-url-load-denied.html: Added.
        * fast/loader/data-url-load-denied-expected.txt: Added.

2020-02-06  Truitt Savell  <tsavell@apple.com>

        REGRESSION: (r255821) [ iOS Mac wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html
        https://bugs.webkit.org/show_bug.cgi?id=207278

        Unreviewed test gardening.

        Followup to r255859 to add iOS expectations.

        * platform/ios/TestExpectations:

2020-02-06  Ryan Haddad  <ryanhaddad@apple.com>

        Regression (r255810): webanimations/accelerated-animation-canceled-before-commit.html is very flaky on Windows EWS
        https://bugs.webkit.org/show_bug.cgi?id=207327

        Unreviewed test gardening.

        * platform/win/TestExpectations: Skip the test on Windows.

2020-02-06  Cathie Chen  <cathiechen@igalia.com>

        Add support for scroll behavior relies on ScrollAnimation of the Web process
        https://bugs.webkit.org/show_bug.cgi?id=204882

        Reviewed by Frédéric Wang

        Based on the patch by Frédéric Wang.

        * platform/mac-wk1/TestExpectations: Skip these tests on WK1 as they don't work for now.

2020-02-06  Jason Lawrence  <lawrence.j@apple.com>

        Regression (r254399) [ Mac ] imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207333

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-06  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582

        Reviewed by Eric Carlson.

        Disable tests on all platforms except the ones supporting AVAssetWriterDelegate.

        * TestExpectations:
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
        Remove web audio generation since there seems to be some unstability in web audio -> stream -> media recorder.
        which should be fixed as follow-up specific patches.
        * platform/mac/TestExpectations:
        Enable running tests.

2020-02-05  Devin Rousso  <drousso@apple.com>

        REGRESSION (r254428): [ macOS wk1 ] inspector/canvas/recording-2d-full.html became slower, flakily times out
        https://bugs.webkit.org/show_bug.cgi?id=207154
        <rdar://problem/59127935>

        Reviewed by Zalan Bujtas.

        Rather than have a `InspectorTest.log()` for each line of output, collect the content into a
        String/Array and do a single log to avoid lots of sequential layouts.

        * inspector/canvas/resources/create-context-utilities.js:
        (TestPage.registerInitializer.awaitCanvasAdded):

        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer.log): Deleted.
        (TestPage.registerInitializer.logRecording):
        (TestPage.registerInitializer.logRecording.log): Added.

2020-02-05  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Try using 75% load factor for HashTable
        https://bugs.webkit.org/show_bug.cgi?id=207183

        Reviewed by Mark Lam.

        It seems that this test is relying on hash-table's order.

        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:

2020-02-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: Sources: add a special breakpoint for controlling whether `debugger` statements pause
        https://bugs.webkit.org/show_bug.cgi?id=206818

        Reviewed by Timothy Hatcher.

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

2020-02-05  Chris Dumez  <cdumez@apple.com>

        Regression(r248734) StorageAreaMap objects are getting leaked
        https://bugs.webkit.org/show_bug.cgi?id=207073
        <rdar://problem/59168065>

        Reviewed by Darin Adler.

        Add layout test coverage.

        * TestExpectations:
        * http/tests/storage/resources/storage-map-leaking-iframe.html: Added.
        * http/tests/storage/storage-map-leaking-expected.txt: Added.
        * http/tests/storage/storage-map-leaking.html: Added.
        * platform/wk2/TestExpectations:

2020-02-05  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] inspector/animation/lifecycle-css-animation.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207306

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-05  Jacob Uphoff  <jacob_uphoff@apple.com>

        ASSERTION FAILED: !needsLayout() [ macOS wk2 ] loader/stateobjects/pushstate-size-iframe.html is flaky crashing
        https://bugs.webkit.org/show_bug.cgi?id=207303

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-05  Truitt Savell  <tsavell@apple.com>

        REGRESSION: (r255821) [ Mac wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html
        https://bugs.webkit.org/show_bug.cgi?id=207278

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-05  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/dot-expressions.html  is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207294

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-05  Jason Lawrence  <lawrence.j@apple.com>

        Regression: [ Mac Debug wk2 ] http/tests/websocket/tests/hybi/server-close.html is flaky crashing.
        https://bugs.webkit.org/show_bug.cgi?id=207269

        Unreviewed test gardening.

        Updated test expectations.

        * platform/mac-wk2/TestExpectations:

2020-02-05  Jason Lawrence  <lawrence.j@apple.com>

        REGRESSION (r228901): Layout Test http/tests/appcache/abort-cache-onprogress.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=183684

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-05  Chris Fleizach  <cfleizach@apple.com>

        AX: replaceTextInRange should handle when called on the WebArea element
        https://bugs.webkit.org/show_bug.cgi?id=207242
        <rdar://problem/59173196>

        Reviewed by Zalan Bujtas.

        * accessibility/mac/replace-text-with-range-on-webarea-element-expected.txt: Added.
        * accessibility/mac/replace-text-with-range-on-webarea-element.html: Added.

2020-02-05  youenn fablet  <youenn@apple.com>

        Improve stability of webrtc/video-autoplay.html by splitting tests in multiple files
        https://bugs.webkit.org/show_bug.cgi?id=207252

        Reviewed by Eric Carlson.

        webrtc/video-autplay.html is flaky on bots.
        On debug bots, removing the video element from the DOM does not always pause it in a timely manner.
        To improve reliability, we split tests in individual files.
        Removing flakiness expectation from video-autoplay.html since it no longer contains the flaky tests.

        * TestExpectations:
        * webrtc/video-autoplay-expected.txt:
        * webrtc/video-autoplay.html:
        * webrtc/video-autoplay1-expected.txt: Added.
        * webrtc/video-autoplay1.html: Added.
        * webrtc/video-autoplay2-expected.txt: Added.
        * webrtc/video-autoplay2.html: Added.
        * webrtc/video-autoplay3-expected.txt: Added.
        * webrtc/video-autoplay3.html: Added.
        * webrtc/video-autoplay4-expected.txt: Added.
        * webrtc/video-autoplay4.html: Added.

2020-02-05  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, new baselines and update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=207259

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Added.
        * platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Added.
        * platform/gtk/webanimations/opacity-animation-yields-compositing-expected.txt: Added.
        * platform/gtk/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.
        * platform/gtk/webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.

2020-02-05  Jason Lawrence  <lawrence.j@apple.com>

        [ iPadOS wk2 Debug ] compositing/shared-backing/sharing-child-contributes-to-overlap.html is flaky crashing.
        https://bugs.webkit.org/show_bug.cgi?id=207274

        Unreviewed test gardening.

        * platform/ipad/TestExpectations:

2020-02-05  Chris Dumez  <cdumez@apple.com>

        REGRESSION: [ iOS wk2 ] fast/scrolling/ios/scroll-events-back-forward.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207194
        <rdar://problem/59148073>

        Reviewed by Wenson Hsieh.

        Test was flaky because it relied on a 10ms timer.

        * fast/scrolling/ios/scroll-events-back-forward-expected.txt:
        * fast/scrolling/ios/scroll-events-back-forward.html:
        * platform/ios-wk2/TestExpectations:

2020-02-05  Jason Lawrence  <lawrence.j@apple.com>

        [iOS wk2 Debug] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=207077

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-05  Antoine Quint  <graouts@apple.com>

        [Web Animations] Update snapshot of Web Animations, CSS Animations and CSS Transitions WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=207263

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * tests-options.json:

2020-02-05  Jason Lawrence  <lawrence.j@apple.com>

        Regression (r252014?) [ Mac wk2 ] http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207271

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-05  Commit Queue  <commit-queue@webkit.org>

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

        It is breaking some Mac builds (Requested by youenn on
        #webkit).

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255818

2020-02-05  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582

        Reviewed by Eric Carlson.

        Disable tests on all platforms except the ones supporting AVAssetWriterDelegate.

        * TestExpectations:
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
        Remove web audio generation since there seems to be some unstability in web audio -> stream -> media recorder.
        which should be fixed as follow-up specific patches.
        * platform/mac/TestExpectations:

2020-02-05  Jason Lawrence  <lawrence.j@apple.com>

        Regression: [ Mac Debug wk2 ] http/tests/websocket/tests/hybi/server-close.html is flaky crashing.
        https://bugs.webkit.org/show_bug.cgi?id=207269

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-05  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] imported/w3c/web-platform-tests/hr-time/basic.any.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206908

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-05  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] webgpu/whlsl/ensure-proper-variable-lifetime.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207267

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-05  Antoine Quint  <graouts@apple.com>

        [Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
        https://bugs.webkit.org/show_bug.cgi?id=207253
        <rdar://problem/59143624>

        Reviewed by Antti Koivisto.

        Add a new test that checks that an accelerated animation that has been enqueued to start but has
        not yet been committed is correctly canceled when the cancel() method is called. This test fails
        prior to this source change.

        * webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
        * webanimations/accelerated-animation-canceled-before-commit.html: Added.

2020-02-04  Lauro Moura  <lmoura@igalia.com>

        [GTK] Garden some wpt tests failing with harness timeout
        https://bugs.webkit.org/show_bug.cgi?id=207247

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2020-02-04  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r251320): Can't double tap to select word in Notes on iCloud.com
        https://bugs.webkit.org/show_bug.cgi?id=207239
        <rdar://problem/58686015>

        Reviewed by Tim Horton.

        Add a test to verify that performing a double tap on an element with a dblclick handler results in the following
        sequence of events: `[ "pointerdown", "pointerup", "pointerdown", "pointerup", "dblclick" ]`.

        * pointerevents/ios/pointer-events-for-double-tap-expected.txt: Added.
        * pointerevents/ios/pointer-events-for-double-tap.html: Added.
        * pointerevents/utils.js:
        (const.ui.new.UIController.prototype.doubleTap):

        Add a helper method to simulate a double-tap gesture.

2020-02-04  Ryan Haddad  <ryanhaddad@apple.com>

        REGRESSION [ Mac wk2 ] Tests are jetsamming: Unable to shrink memory footprint of process below the kill thresold [sic]
        https://bugs.webkit.org/show_bug.cgi?id=206627

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations: Disable websql tests.
        * platform/mac-wk2/TestExpectations: Ditto.

2020-02-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [ macOS wk1 ] ASSERTION FAILED: http/tests/notifications/event-listener-crash.html is flaky crashing
        https://bugs.webkit.org/show_bug.cgi?id=207237

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] legacy-animation-engine/fast/animation/request-animation-frame-iframe.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207235

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS ] imported/w3c/web-platform-tests/fetch/stale-while-revalidate/fetch.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207230
        
        Unreviewed test gardening.

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

2020-02-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] http/tests/misc/image-blocked-src-change.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207226

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207225

        Unreviewed test gardening.

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

2020-02-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/zero-initialize-values-2.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207222

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-04  Jason Lawrence  <lawrence.j@apple.com>

        Regression: (252273) [ Mac wk2 ] inspector/heap/getPreview.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207209

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-04  Jason Lawrence  <lawrence.j@apple.com>

        [ macOS wk2 ] inspector/canvas/shaderProgram-add-remove-webgl2.html is flaky crashing
        https://bugs.webkit.org/show_bug.cgi?id=206718

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-04  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] webgpu/whlsl/textures-sample-grad.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207202

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-04  youenn fablet  <youenn@apple.com>

        Check for callback being null in Notification.requestPermission
        https://bugs.webkit.org/show_bug.cgi?id=207192
        <rdar://problem/59130804>

        Reviewed by Chris Dumez.

        * http/tests/notifications/notification-in-non-secure-context.html:

2020-02-04  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] webgpu/whlsl/while-loop-continue.html flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207200

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-04  Jason Lawrence  <lawrence.j@apple.com>

        Regression: (252334?) [ iOS wk2 ] http/tests/resourceLoadStatistics/cookie-deletion.html is flaky failing and crashing.
        https://bugs.webkit.org/show_bug.cgi?id=207197

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-04  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION(r248287): Console: function objects saved to a $n will be invoked instead of just referenced when evaluating in the Console
        https://bugs.webkit.org/show_bug.cgi?id=207180
        <rdar://problem/58860268>

        Reviewed by Joseph Pecoraro.

        * inspector/runtime/saveResult.html:
        * inspector/runtime/saveResult-expected.txt:

2020-02-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/loops.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207199

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-04  Jason Lawrence  <lawrence.j@apple.com>

        Regression: (252234?) [ iOS wk2 ] fast/scrolling/ios/scroll-events-back-forward.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207194

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-04  Antti Koivisto  <antti@apple.com>

        CSS Rules with the same selector from several large stylesheets are applied in the wrong order
        https://bugs.webkit.org/show_bug.cgi?id=204687
        <rdar://problem/57522566>

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css/many-rules-expected.html: Added.
        * fast/css/many-rules.html: Added.

2020-02-04  youenn fablet  <youenn@apple.com>

        MediaDevices should handle changes of iframe allow attribute value
        https://bugs.webkit.org/show_bug.cgi?id=207112

        Reviewed by Eric Carlson.

        * TestExpectations:
        * fullscreen/full-screen-enabled-expected.txt:
        * fullscreen/full-screen-enabled-prefixed-expected.txt:
        * fullscreen/full-screen-iframe-not-allowed-expected.txt:
        * fullscreen/full-screen-iframe-without-allow-attribute-allowed-from-parent-expected.txt:
        * fullscreen/full-screen-restrictions-expected.txt:
        * http/tests/fullscreen/fullscreen-feature-policy-expected.txt:
        * http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute-expected.txt:
        * http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
        * http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
        * http/tests/ssl/media-stream/get-user-media-nested-expected.txt:
        * http/tests/webrtc/enumerateDevicesInFrames-expected.txt: Added.
        * http/tests/webrtc/enumerateDevicesInFrames.html: Added.

2020-02-03  Antti Koivisto  <antti@apple.com>

        Accelerated animations freeze on render tree rebuild
        https://bugs.webkit.org/show_bug.cgi?id=201048
        <rdar://problem/54612621>

        Reviewed by Antoine Quint.

        * webanimations/accelerated-animation-renderer-change-expected.html: Added.
        * webanimations/accelerated-animation-renderer-change.html: Added.

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] inspector/unit-tests/server-timing-entry.html is flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=207167

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207166

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html is flaky failing. 
        https://bugs.webkit.org/show_bug.cgi?id=207165

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        LayoutTest inspector/controller/runtime-controller-import.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=168926

        Updating because the test is also flaky failing.

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] inspector/heap/imported-snapshot.html is flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=207163

        Updating to include an exclude for timeouts.

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [iOS wk2 Debug] legacy-animation-engine/animations/play-state-in-shorthand.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207164

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        Regression: (254414?) [ iOS wk2 ] imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html is flaky failing. 
        https://bugs.webkit.org/show_bug.cgi?id=207161

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] css2.1/20110323/replaced-intrinsic-ratio-001.htm is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207160

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [ macOS wk1 ] inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207157

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 Release ] http/tests/websocket/tests/hybi/workers/close.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207156

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] inspector/canvas/recording-2d-full.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207154

        Updating expectations for newer OS

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] animations/animation-callback-timestamp.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207153

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-03  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS 13] Dragging on-screen volume control on a YouTube video selects text around the panel
        https://bugs.webkit.org/show_bug.cgi?id=207140
        <rdar://problem/58852938>

        Reviewed by Tim Horton.

        Add a layout test to verify that we don't allow text selection gestures inside of containers that have both
        `user-drag: element` and `user-select: none`.

        * editing/selection/ios/prefer-drag-over-text-selection-expected.txt: Added.
        * editing/selection/ios/prefer-drag-over-text-selection.html: Added.

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS ] fast/dom/connected-subframe-counter-overflow.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207152

        Unreviewed test gardening.

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

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 Release ] fast/dom/navigator-detached-no-crash.html flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207151

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207150

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ Mojave wk2 ] imported/w3c/web-platform-tests/webrtc/RTCDtlsTransport-state.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207149

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

       [iOS] Layout Test animations/duplicate-keys.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=185332

        Updating on macOS wk1 because the same failure is also seen there

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] legacy-animation-engine/compositing/geometry/partial-layout-update.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207147

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] media/media-source/media-source-seek-redundant-append.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207146

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ Mojave wk2 ] media/media-fragments/TC0087.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207143

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-03  Antoine Quint  <graouts@apple.com>

        [Web Animations] Accelerated animations don't run until their natural completion
        https://bugs.webkit.org/show_bug.cgi?id=207130
        <rdar://problem/59106047>

        Reviewed by Dean Jackson.

        Add two new tests that ensures that an accelerated animation still yields compositing on an element when
        its finished promise is resolved, but that it's no longer the case on the next frame.

        This required an existing test to be updated to wait until the next frame before checking the composited
        status of an element on which an animation had just completed.

        * compositing/geometry/limit-layer-bounds-opacity-transition.html:
        * webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
        * webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
        * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
        * webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] inspector/canvas/recording-webgl-full.html  is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207145

        Updating expectations

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Lauro Moura  <lmoura@igalia.com>

        [WebKitTestRunner] setOpenPanelFiles support in non-local tests
        https://bugs.webkit.org/show_bug.cgi?id=206517

        Reviewed by Carlos Alberto Lopez Perez.

        * platform/gtk/TestExpectations: Update expectations after fix.

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        Layout Test svg/custom/object-sizing-explicit-width.xhtml is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=181058

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] media/modern-media-controls/compact-media-controls/compact-media-controls-constructor.html is flaky failing (192974)
        https://bugs.webkit.org/show_bug.cgi?id=192974

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] requestidlecallback/requestidlecallback-is-called.html flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207142

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [ macOS wk2 ] inspector/canvas/create-context-bitmaprenderer.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207141

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] compositing/backing/page-scale-overlap-in-iframe.html failing.
        https://bugs.webkit.org/show_bug.cgi?id=207116

        Unreviewed test gardening.

        Added an expectation file for iPad.

        * platform/ipad/TestExpectations:
        * platform/ipad/compositing/backing/page-scale-overlap-in-iframe-expected.txt: Added.

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [ macOS wk1 ] css3/selectors3/xml/css3-modsel-d2.xml is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207133

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] inspector/canvas/create-context-2d.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207132

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-03  Truitt Savell  <tsavell@apple.com>

        Fix expectation after r255561 that needed to be just iPad
        https://bugs.webkit.org/show_bug.cgi?id=207116

        Unreviewed test gardening.

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

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        Flaky Test: inspector/worker/debugger-pause.html
        https://bugs.webkit.org/show_bug.cgi?id=206285

        Unreviewed test gardening

        * platform/mac/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        inspector/heap/getRemoteObject.html is a flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=206903

        Updating expectations for an existing bug

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/buffer-vertex.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207127

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] transitions/start-transform-transition.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207125

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] compositing/backing/animate-into-view.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=207124

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-then-proximity.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207120

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/nested-loop.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207117

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-03  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] compositing/backing/page-scale-overlap-in-iframe.html failing.
        https://bugs.webkit.org/show_bug.cgi?id=207116

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-02-03  Jacob Uphoff  <jacob_uphoff@apple.com>

        [macS wk2] LayoutTest/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html is a flaky failure. (171839)
        https://bugs.webkit.org/show_bug.cgi?id=171839

        Removing "debug" as the failure is also happening on release.

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-02-02  Wenson Hsieh  <wenson_hsieh@apple.com>

        editing/input/composition-highlights.html fails on open source Mojave bots
        https://bugs.webkit.org/show_bug.cgi?id=207107

        Reviewed by Tim Horton.

        This test currently fails consistently on non-internal macOS Mojave bots; for some reason, the width of the
        colon character glyph in Times font is 8.4px instead of 4.4px when using CTRunGetAdvancesPtr, causing the
        composition highlights to be shifted right 4px and making the ref comparison fail.

        Debugging shows that only in macOS Mojave, the CoreText framework adjusts the width of the colon glyph by 4px
        in TStorageRange::SetAdvance. This has since been fixed in Catalina, so just work around this for the time being
        by changing the editable text from "Test: " to just "Test ".

        * editing/input/composition-highlights-expected.html:
        * editing/input/composition-highlights.html:

2020-02-02  Antoine Quint  <graouts@apple.com>

        ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
        https://bugs.webkit.org/show_bug.cgi?id=207071
        <rdar://problem/59076249>

        Reviewed by Dean Jackson.

        The crash is fixed, we can start running the test as expected again.

        * platform/ipad/TestExpectations:

2020-02-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        fast/events/touch/ios/long-press-on-link.html consistently times out after r254699
        https://bugs.webkit.org/show_bug.cgi?id=207095

        Reviewed by Darin Adler.

        After <https://trac.webkit.org/r254699>, tests that end without causing presented view controllers to dismiss
        will always cause the subsequent test to time out. This happens all the time with the layout test
        fast/events/touch/ios/long-press-on-link.html, which runs after fast/events/touch/ios/long-press-on-image.html;
        both of these tests long press previewable elements to present a context menu, but don't attempt to dismiss
        these previews.

        Address this by tapping at the web view's origin after ending the long press gesture, which causes the preview
        view controllers that were presented by the test to dismiss.

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

        Modernize these layout tests by adopting helper methods for driving interaction (instead of directly using
        testRunner.runUIScript). Also, use the testing helpers in `js-test.js`, and add descriptions to each test.

        * resources/ui-helper.js:
        (window.UIHelper.longPressAndGetContextMenuContentAt.return.new.Promise):
        (window.UIHelper.longPressAndGetContextMenuContentAt):

        Make this resolve the promise to a parsed JSON object instead of a JSON string. Currently, the result is a JSON
        string that is parsed at each call site.

2020-02-01  Alexey Shvayka  <shvaikalesh@gmail.com>

        Non-alphabetical \c escapes should be syntax errors in Unicode patterns only
        https://bugs.webkit.org/show_bug.cgi?id=207091

        Reviewed by Darin Adler.

        * js/regexp-unicode-expected.txt:
        * js/script-tests/regexp-unicode.js:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        Flaky Test: imported/w3c/web-platform-tests/websockets/cookies/007.html
        https://bugs.webkit.org/show_bug.cgi?id=206484

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-31  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add support for specifying background colors when setting marked text
        https://bugs.webkit.org/show_bug.cgi?id=207065
        <rdar://problem/57876140>

        Reviewed by Tim Horton.

        Add a test to check that highlighting different parts of a composition range results in the same behavior as
        applying background colors using CSS. This test is currently only supported in WebKit2.

        * TestExpectations:
        * editing/input/composition-highlights-expected.html: Added.
        * editing/input/composition-highlights.html: Added.
        * platform/wk2/TestExpectations:

2020-01-31  Justin Fan  <justin_fan@apple.com>

        [WebGL] Revert logging added to investigate 205757
        https://bugs.webkit.org/show_bug.cgi?id=207076

        Unreviewed.
        
        Revert https://trac.webkit.org/changeset/255468.

        * TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webgpu/whlsl/textures-sample-level.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207078

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

       [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206940

        Also is happening on release so I updated the expectation to reflect that.

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-31  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
        https://bugs.webkit.org/show_bug.cgi?id=207071

        Unreviewed test gardening.

        * platform/ipad/TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ Mac wk1 ] fast/images/animated-gif-restored-from-bfcache.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206950

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] editing/execCommand/insert-nested-lists.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207066

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-31  Chris Dumez  <cdumez@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=206934
        <rdar://problem/58991581>

        Unskip test which should no longer be flaky.

        * platform/ios-wk2/TestExpectations:

2020-01-31  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] imported/w3c/web-platform-tests/media-source/mediasource-replay.html flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=207062

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207063

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-31  Jason Lawrence  <lawrence.j@apple.com>

        [ Mojave wk2 Release ] imported/w3c/web-platform-tests/html/webappapis/timers/type-long-setinterval.html flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=207060

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207059

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS ] imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207057

        Unreviewed test gardening.

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

2020-01-31  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] animations/animation-welcome-safari.html is sometimes failing
        https://bugs.webkit.org/show_bug.cgi?id=206604

        Unreviewed test gardening.

        Updated test expectations to align with existing bug.

        * platform/mac/TestExpectations:

2020-01-31  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 release ] media/track/texttrackcue/texttrackcue-displaycue.html
        https://bugs.webkit.org/show_bug.cgi?id=207055

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] inspector/page/setBootstrapScript-sub-frame.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207053

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-31  Alexey Shvayka  <shvaikalesh@gmail.com>

        Unmatched ] or } brackets should be syntax errors in Unicode patterns only
        https://bugs.webkit.org/show_bug.cgi?id=207023

        Reviewed by Darin Adler.

        * js/regexp-unicode-expected.txt:
        * js/script-tests/regexp-unicode.js:

2020-01-31  Antoine Quint  <graouts@apple.com>

        [Web Animations] [WK1] REGRESSION: opacity doesn't animate
        https://bugs.webkit.org/show_bug.cgi?id=207044
        <rdar://problem/59061225>

        Reviewed by Simon Fraser.

        * webanimations/opacity-animation-expected.html: Added.
        * webanimations/opacity-animation.html: Added.

2020-01-31  Matt Lewis  <jlewis3@apple.com>

        Layout Test imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html is a Flaky Failure on mac
        https://bugs.webkit.org/show_bug.cgi?id=201481

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-31  Cathie Chen  <cathiechen@igalia.com>

        Asynchronous scrolling of overflow element can enter a recursive loop
        https://bugs.webkit.org/show_bug.cgi?id=206884

        Reviewed by Frédéric Wang.

        * fast/scrolling/ios/programmatic-scroll-element-crash-expected.txt: Added.
        * fast/scrolling/ios/programmatic-scroll-element-crash.html: Added.

2020-01-31  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOSwk1 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-currentTime.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207046

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: [Mac wk1] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205168
        <rdar://problem/57880452>

        Removed the flaky test expectation now that the test is no longer flaky.

        * platform/mac-wk1/TestExpectations:

2020-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        Regression: http/tests/loading/remove-child-triggers-parser.html is failing consistently on windows
        https://bugs.webkit.org/show_bug.cgi?id=206992

        Reviewed by Simon Fraser.

        Added back html & body elements to make Windows bots happy.

        * http/tests/loading/remove-child-triggers-parser-expected.txt:
        * http/tests/loading/remove-child-triggers-parser.html:

2020-01-30  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS Release wk2 ] imported/w3c/IndexedDB-private-browsing/idbindex_getKey6.html is flaky timing out.
        https://bugs.webkit.org/show_bug.cgi?id=206952

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-01-30  Justin Fan  <justin_fan@apple.com>

        [WebGL] Add logging statements to attempt to catch texture-upload-size.html timeout
        https://bugs.webkit.org/show_bug.cgi?id=207006

        Unreviewed temporary logging additions caused unrelated tests to time out.

        * TestExpectations:

2020-01-30  Ryan Haddad  <ryanhaddad@apple.com>

        Regression: fast/hidpi/image-srcset-relative-svg-canvas-2x.html is consistently failing on iOS EWS
        https://bugs.webkit.org/show_bug.cgi?id=206993

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations: Mark test as failing.

2020-01-30  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Issue mach sandbox extension to the frontboard and icon service when the attachment element is enabled
        https://bugs.webkit.org/show_bug.cgi?id=205443

        Reviewed by Brent Fulgham.

        * fast/sandbox/ios/focus-ring-color-expected.txt: Added.
        * fast/sandbox/ios/focus-ring-color.html: Added.
        * fast/sandbox/ios/sandbox-mach-lookup-attachment-element-expected.txt: Added.
        * fast/sandbox/ios/sandbox-mach-lookup-attachment-element.html: Added.

2020-01-30  Alexey Shvayka  <shvaikalesh@gmail.com>

        Incomplete braced quantifiers should be banned in Unicode patterns only
        https://bugs.webkit.org/show_bug.cgi?id=206776

        Reviewed by Darin Adler.

        An error message test is added for this change and for webkit.org/b/206768.
        Other tests are adjusted for capitalized "Unicode" in error messages.

        * js/regexp-named-capture-groups-expected.txt:
        * js/regexp-unicode-expected.txt:
        * js/regress-158080-expected.txt:
        * js/script-tests/regexp-named-capture-groups.js:
        * js/script-tests/regexp-unicode.js:

2020-01-30  Doug Kelly  <dougk@apple.com>

        Crash in RenderElement::selectionPseudoStyle with detail element set to display: contents
        https://bugs.webkit.org/show_bug.cgi?id=206705

        Reviewed by Zalan Bujtas.

        * fast/css/display-contents-detail-selection-expected.txt: Added.
        * fast/css/display-contents-detail-selection.html: Added.

2020-01-30  Truitt Savell  <tsavell@apple.com>

        [ Mac ] fast/history/page-cache-webdatabase-pending-transaction.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=207010

        unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-30  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r255424.

        Breaks internal builds.

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255424

2020-01-30  Doug Kelly  <dougk@apple.com>

        Crash in RenderBlockFlow::adjustLinePositionForPagination() with complex line without root box
        https://bugs.webkit.org/show_bug.cgi?id=206610

        Reviewed by Zalan Bujtas.

        * fast/text/complex-without-root-box-expected.txt: Added.
        * fast/text/complex-without-root-box.html: Added.

2020-01-30  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207003

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-30  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] imported/w3c/web-platform-tests/FileAPI/historical.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207002

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-01-30  Chris Dumez  <cdumez@apple.com>

        [ Mac ] fast/dom/Window/post-message-crash.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206949
        <rdar://problem/58997453>

        Unreviewed, fix fast/dom/Window/post-message-crash.html test to stop failing if it takes more than 50ms to run
        and unskip on all platforms.

        * fast/dom/Window/post-message-crash.html:
        * platform/ios-wk2/TestExpectations:
        * platform/mac/TestExpectations:

2020-01-30  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] webrtc/video-autoplay.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=207001

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-01-30  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582

        Reviewed by Eric Carlson.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
        Remove web audio generation since there seems to be some unstability in web audio -> stream -> media recorder.
        which should be fixed as follow-up specific patches.

2020-01-30  Antoine Quint  <graouts@apple.com>

        [Web Animations] Changing the delay of an accelerated animation doesn't seek the animation
        https://bugs.webkit.org/show_bug.cgi?id=206990
        <rdar://problem/58675608>

        Reviewed by Antti Koivisto.

        Add a new test which would fail prior to this patch where we pause an animation after it has started playing accelerated and
        change its delay to check that it correctly seeks the animation.

        * webanimations/seeking-by-changing-delay-accelerated-expected.html: Added.
        * webanimations/seeking-by-changing-delay-accelerated.html: Added.
        * platform/win/TestExpectations: Mark the new test as failing.

2020-01-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r253636): [GTK] Mouse cursor changes using onMouseXYZ are erratic
        https://bugs.webkit.org/show_bug.cgi?id=206454

        Reviewed by Tim Horton.

        * platform/gtk/TestExpectations:

2020-01-30  Noam Rosenthal  <noam@webkit.org>

        REGRESSION (r254406): Gmail.com star/favorite icons are not rendering
        https://bugs.webkit.org/show_bug.cgi?id=206909

        Reviewed by Simon Fraser.

        Added empty URLs and new syntax with prefixed image-set to invalid tests.
        Modified valid image-set parsing test to separate prefixed/non-prefixed.

        * fast/css/image-set-parsing-generated.html:
        * fast/css/image-set-parsing-invalid-expected.txt:
        * fast/css/image-set-parsing-invalid.html:
        * fast/css/image-set-parsing.html:

2020-01-30  Rossana Monteriso  <rmonteriso@igalia.com>

        [css-grid] Move grid-item-alignment tests to WPT folder
        https://bugs.webkit.org/show_bug.cgi?id=206831

        Reviewed by Javier Fernandez.

        Remove from css-grid-layout folder some grid-item-alignment tests, that are being replaced by adapted tests in the corresponding WPT test folder.

        * fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-expected.txt: Removed.
        * fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr-expected.txt: Removed.
        * fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html: Removed.
        * fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl-expected.txt: Removed.
        * fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html: Removed.
        * fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html: Removed.

2020-01-29  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: [Mac wk1] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205168

        Reviewed by Simon Fraser.

        * fast/css/font-face-set-ready-after-document-load-expected.txt: Added.
        * fast/css/font-face-set-ready-after-document-load.html: Added.

2020-01-29  Sunny He  <sunny_he@apple.com>

        Clamp paddingBoxWidth/Height to a minimum of zero
        https://bugs.webkit.org/show_bug.cgi?id=206317
        rdar://57102010

        Reviewed by Zalan Bujtas.

        * fast/multicol/crash-negative-paddingBoxWidth-expected.txt: Added.
        * fast/multicol/crash-negative-paddingBoxWidth.html: Added.

2020-01-29  Justin Fan  <justin_fan@apple.com>

        [WebGL] Skip ANGLE-dependent WebGL 2 expected progressions on WebGL bot
        https://bugs.webkit.org/show_bug.cgi?id=206977

        Unreviewed test gardening.

        These tests are expected to progress with ANGLE enabled, but since ANGLE is not enabled,
        expect failure for now.

        * webgl/TestExpectations:

2020-01-29  Ryan Haddad  <ryanhaddad@apple.com>

        imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is timing out on Mojave wk1 debug EWS
        https://bugs.webkit.org/show_bug.cgi?id=206503

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Limit the failure expectation to debug bots.

2020-01-29  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ]http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206974

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-29  Ryan Haddad  <ryanhaddad@apple.com>

        REGRESSION (r255158): http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206839

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Mark test as flaky.

2020-01-29  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS Release wk2 ] animations/change-one-anim.html flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=206973

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-01-29  Devin Rousso  <drousso@apple.com>

        Web Inspector: add instrumentation for showing existing Web Animations
        https://bugs.webkit.org/show_bug.cgi?id=205434
        <rdar://problem/28328087>

        Reviewed by Brian Burg.

        * inspector/animation/effectChanged.html: Added.
        * inspector/animation/effectChanged-expected.txt: Added.
        * inspector/animation/lifecycle-css-animation.html: Added.
        * inspector/animation/lifecycle-css-animation-expected.txt: Added.
        * inspector/animation/lifecycle-css-transition.html: Added.
        * inspector/animation/lifecycle-css-transition-expected.txt: Added.
        * inspector/animation/lifecycle-web-animation.html: Added.
        * inspector/animation/lifecycle-web-animation-expected.txt: Added.
        * inspector/animation/requestEffectTarget.html: Added.
        * inspector/animation/requestEffectTarget-expected.txt: Added.
        * inspector/animation/resolveAnimation.html: Added.
        * inspector/animation/resolveAnimation-expected.txt: Added.
        * inspector/animation/targetChanged.html: Added.
        * inspector/animation/targetChanged-expected.txt: Added.
        * inspector/animation/resources/lifecycle-utilities.js: Added.
        (createAnimation):
        (destroyAnimations):
        (InspectorTest.AnimationLifecycleUtilities.async awaitAnimationCreated):
        (InspectorTest.AnimationLifecycleUtilities.async awaitAnimationDestroyed):
        (InspectorTest.AnimationLifecycleUtilities.async createAnimation):
        (InspectorTest.AnimationLifecycleUtilities.async destroyAnimations):

        * inspector/canvas/create-context-webgpu.html:
        * inspector/canvas/resources/create-context-utilities.js:
        (destroyCanvases):
        (awaitCanvasAdded):
        (InspectorTest.CreateContextUtilities.initializeTestSuite):

        * inspector/canvas/context-attributes.html:
        * inspector/canvas/extensions.html:
        * inspector/canvas/memory.html:
        * inspector/canvas/requestClientNodes.html:
        * inspector/canvas/requestContent-2d.html:
        * inspector/canvas/requestContent-bitmaprenderer.html:
        * inspector/canvas/requestContent-webgl.html:
        * inspector/canvas/requestContent-webgl2.html:
        * inspector/canvas/requestNode.html:
        * inspector/canvas/resolveContext-2d.html:
        * inspector/canvas/resolveContext-bitmaprenderer.html:
        * inspector/canvas/resolveContext-webgl.html:
        * inspector/canvas/resolveContext-webgl2.html:
        * inspector/canvas/resolveContext-webgpu.html:

        * inspector/canvas/recording.html:
        * inspector/canvas/setRecordingAutoCaptureFrameCount.html:
        * inspector/canvas/resources/recording-utilities.js:
        (window.getCanvas):

        * inspector/canvas/shaderProgram-add-remove-webgpu.html:
        * inspector/canvas/updateShader-webgpu-sharedVertexFragment.html:
        * inspector/canvas/resources/shaderProgram-utilities-webgpu.js:
        * inspector/canvas/resources/shaderProgram-utilities-webgl.js:
        (deleteContext):
        (whenProgramAdded):
        (window.initializeTestSuite):
        (window.addParentCanvasRemovedTestCase):

        * inspector/unit-tests/test-harness-expect-functions.html:
        * inspector/unit-tests/test-harness-expect-functions-expected.txt:

2020-01-29  Jason Lawrence  <lawrence.j@apple.com>

        REGRESSION: [ iOS ] scrollingcoordinator/ios/scroll-position-after-reattach.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205309

        Unreviewed test gardening.

        Adjusted test expectations for an existing bug.

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

2020-01-29  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, expected to fail but passing
        https://bugs.webkit.org/show_bug.cgi?id=206943

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/compositing/visibility/visibility-change-in-subframe-expected.txt: Removed.

2020-01-29  Commit Queue  <commit-queue@webkit.org>

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

        Introduced media regressions (Requested by perarne on
        #webkit).

        Reverted changeset:

        "[iOS] Remove used media-related mach services from the
        WebContent process sandbox"
        https://bugs.webkit.org/show_bug.cgi?id=206089
        https://trac.webkit.org/changeset/254379

2020-01-29  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Deny mach lookup access to aggregate service
        https://bugs.webkit.org/show_bug.cgi?id=206710
        <rdar://problem/57914492>

        Reviewed by Darin Adler.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-01-29  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iPadOS] Select popovers on amazon.com sometimes dismiss immediately after appearing
        https://bugs.webkit.org/show_bug.cgi?id=206948
        <rdar://problem/58954516>

        Reviewed by Tim Horton.

        Adds a new layout test to verify that preventing default on elements with slow, active touchstart event handlers
        actually prevents click events from being dispatched.

        * fast/events/touch/ios/prevent-default-with-slow-touchstart-handler-expected.txt: Added.
        * fast/events/touch/ios/prevent-default-with-slow-touchstart-handler.html: Added.

2020-01-29  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: (253807) [ macOS iOS ] storage/indexeddb/intversion-long-queue-private.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206965

        Unreviewed test gardening.

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

2020-01-28  Antoine Quint  <graouts@apple.com>

        [Web Animations] Animations should run accelerated even if other animations targeting the same element are not accelerated
        https://bugs.webkit.org/show_bug.cgi?id=206890
        <rdar://problem/58961750>

        Reviewed by Simon Fraser.

        Update some tests that assumed a mix of accelerated and non-accelerated properties would not yield accelerated animations.
        We also make some WK1-specific expectation due to compositing being disabled when opacity is the only potentially-accelerated
        property to be animated.

        * platform/mac-wk1/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Added.
        * platform/mac-wk1/webanimations/opacity-animation-yields-compositing-expected.txt: Added.
        * platform/mac-wk1/webanimations/opacity-animation-yields-compositing-span-expected.txt: Added.
        * platform/mac-wk1/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.
        * platform/mac-wk1/webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.
        * webanimations/left-and-opacity-animation-yields-no-compositing-expected.txt: Removed.
        * webanimations/partly-accelerated-transition-by-removing-property-expected.txt:
        * webanimations/width-and-opacity-separate-animation-yields-compositing-expected.txt: Added.
        * webanimations/width-and-opacity-separate-animation-yields-compositing.html: Renamed from LayoutTests/webanimations/left-and-opacity-animation-yields-no-compositing.html.
        * webanimations/width-and-opacity-separate-animation-yields-no-compositing-expected.txt: Removed.
        * webanimations/width-and-opacity-separate-animation-yields-no-compositing.html: Removed.

2020-01-29  Jason Lawrence  <lawrence.j@apple.com>

        [ Mojave wk2 ] media/media-fragments/TC0035.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=206961

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

020-01-29  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk2 ] http/tests/media/media-stream/get-display-media-prompt.html is flaky failure & flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=206958
        
        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-29  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS wk1 ] inspector/debugger/breakpoints/resolved-dump-each-line.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206955

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-29  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac ] fast/dom/Window/post-message-crash.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206949

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-29  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ Mac wk1 ] compositing/repaint/become-overlay-composited-layer.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206945

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-29  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] http/tests/security/cookies/third-party-cookie-blocking-main-frame.html is flaky timing out.
        https://bugs.webkit.org/show_bug.cgi?id=206946

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-01-28  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Give up IC when unknown structure transition happens
        https://bugs.webkit.org/show_bug.cgi?id=206846

        Reviewed by Mark Lam.

        * js/dom/put-override-should-not-use-ic-expected.txt: Added.
        * js/dom/put-override-should-not-use-ic.html: Added.

2020-01-29  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206940

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-29  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION (Catalina): webrtc/captureCanvas-webrtc.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205729

        Unreviewed gardening.

        * platform/mac/TestExpectations:

2020-01-29  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=206934

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-01-29  Antti Koivisto  <antti@apple.com>

        REGRESSION: WK1 Accessibility: ASSERTION FAILED: FontCache::singleton().generation() == m_generation
        https://bugs.webkit.org/show_bug.cgi?id=206241
        <rdar://problem/58570085>

        Reviewed by Zalan Bujtas.

        * platform/mac-wk1/TestExpectations:

2020-01-29  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CSS Backgrounds] Gardening after r255351

        Unreviewed gardening.

        * platform/mac/TestExpectations: Update the list of expected failures for Mojave.

2020-01-29  Commit Queue  <commit-queue@webkit.org>

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

        "It breaks some internals builds" (Requested by youenn on
        #webkit).

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255345

2020-01-29  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CSS Fonts] Import css-fonts WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=205866

        Reviewed by Simon Fraser.

        Import css/css-fonts WPT tests.

        * TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/font-size-adjust-005-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/css/css-fonts/font-size-adjust-005-expected.txt: Added.
        * tests-options.json:

2020-01-29  youenn fablet  <youenn@apple.com>

        Blob media loading does not work with GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=206824
        <rdar://problem/58917596>

        Reviewed by Eric Carlson.

        * gpu-process/TestExpectations:

2020-01-29  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582

        Reviewed by Eric Carlson.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
        Remove web audio generation since there seems to be some unstability in web audio -> stream -> media recorder.
        which should be fixed as follow-up specific patches.

2020-01-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Should use light theme unless website declares support for dark themes in color-schemes property
        https://bugs.webkit.org/show_bug.cgi?id=197947

        Reviewed by Michael Catanzaro.

        Rebaseline several tests for the new behavior.

        * platform/gtk/css-dark-mode/color-scheme-priority-expected.txt: Added.
        * platform/gtk/css-dark-mode/default-colors-expected.txt:
        * platform/gtk/css-dark-mode/prefers-color-scheme-expected.txt:

2020-01-29  Megan Gardner  <megan_gardner@apple.com>

        Fix compositing/video/poster.html test by making blending image opque to deal with flakey failures.
        https://bugs.webkit.org/show_bug.cgi?id=206916
        <rdar://problem/58840031>

        Reviewed by Simon Fraser.

        Test was failing due to flakey alpha issues. Alpha isn't what we are testing with this test, so use an opaque image instead.

        * compositing/resources/simple_image_opaque.png: Added.
        * compositing/video/poster-expected.html:
        * compositing/video/poster.html:
        * platform/ios-wk2/TestExpectations:

2020-01-29  Sunny He  <sunny_he@apple.com>

        Nullptr crash when setting custom properties on detached style
        https://bugs.webkit.org/show_bug.cgi?id=206724

        Reviewed by Darin Adler.

        * fast/dom/StyleSheet/detached-style-set-custom-property-expected.txt: Added.
        * fast/dom/StyleSheet/detached-style-set-custom-property.html: Added.

2020-01-28  Pinki Gyanchandani  <pgyanchandani@apple.com>

        Null deref crash in DOMWindow::scrollBy after evoking updateLayoutIgnorePendingStylesheets()
        https://bugs.webkit.org/show_bug.cgi?id=206099

        Reviewed by Ryosuke Niwa

        Added a regression test to verify the fix.

        * fast/dom/Window/window-scroll-ignore-null-frame.html: Added.
        * fast/dom/Window/window-scroll-ignore-null-frame-expected.txt: Added.

2020-01-28  Zalan Bujtas  <zalan@apple.com>

        REGRESSION: [ Mac ] fast/hidpi/image-srcset-relative-svg-canvas-2x.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206254
        <rdar://problem/58580461>

        Reviewed by Simon Fraser.

        The drawImage() and the HTML document layout are racy here and when we
        don't manage to squeeze in a layout before the JS drawImage(), the
        SVG image gets laid out and rendered using the inline replaced box default size
        value of 300x150. This patch only fixes the flakiness issue and
        does not address the underlying bug (see webkit.org/b/206914).

        * fast/hidpi/image-srcset-relative-svg-canvas-2x-expected.html:
        * fast/hidpi/image-srcset-relative-svg-canvas-2x.html:

2020-01-28  Chris Dumez  <cdumez@apple.com>

        REGRESSION (r252064): [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
        https://bugs.webkit.org/show_bug.cgi?id=206291
        <rdar://problem/58606666>

        Reviewed by Maciej Stachowiak.

        Unskip test that is no longer flaky.

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

2020-01-28  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION: ( r255226 ) [ iOS ] compositing/backing/page-scale-overlap-in-iframe.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=206893

        Unreviewed test gardening. I had a local result that was shadowing the actual result, so replace
        the iOS result.

        * platform/ios-wk2/compositing/backing/page-scale-overlap-in-iframe-expected.txt:

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        Discovered some expected timeouts on the test history, changing expectations to expect the timeouts to pass.
        https://bugs.webkit.org/show_bug.cgi?id=90980

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-28  Truitt Savell  <tsavell@apple.com>

        Followup to r255264 to better specify expectation.
        https://bugs.webkit.org/show_bug.cgi?id=206770

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-28  Justin Fan  <justin_fan@apple.com>

        [WebGL2] Implement sub-source texImage2D and texSubImage2D
        https://bugs.webkit.org/show_bug.cgi?id=206782
        <rdar://problem/58886527>

        Reviewed by Dean Jackson.

        Update expected results for ANGLE backend for texImage2D and texSubImage2D.

        * webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source-expected.txt: 
                Test was not fully running due to typo.
                After fixing, 0 regression from running the fixed test on tip of tree with ANGLE enabled.
        * webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt: 
                The 3 additional failures are not regressions, and total number of sub-tests run increased from 65 to 155.
        * webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt:
                Passes all texImage2D and texSubImage2D tests. The "3D" methods are not yet implemented.
        * webgl/2.0.0/resources/webgl_test_files/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html: 
                Fix typo to actually run the test.

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ iOS ] http/tests/workers/service/service-worker-user-timing.https.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=206751

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-01-28  Truitt Savell  <tsavell@apple.com>

        [CSS Backgrounds] Followup test gardening after r255265 due to expectation duplication in LayoutTests/TestExpectations/
        https://bugs.webkit.org/show_bug.cgi?id=205872

        Unreviewed test gardening.

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

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: (r251694) [ ios ] crypto/subtle/rsa-indexeddb-private.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=206749

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        media/track/video-track-addition-and-frame-removal.html is flaky crashing
        https://bugs.webkit.org/show_bug.cgi?id=190830

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-28  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CSS Backgrounds] Gardening of debug crashes after r255239

        Unreviewed gardening.

        * TestExpectations: Mark more crashes on Debug.

2020-01-28  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 Release ] storage/websql/test-authorizer.html flaky timeout.
        https://bugs.webkit.org/show_bug.cgi?id=206770

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-28  Kate Cheney  <katherine_cheney@apple.com>

        REGRESSION: [iOS] http/wpt/cache-storage/quota-third-party.https.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=206681
        <rdar://problem/58842429>

        Logs user interaction for the test origin to avoid clearing website
        data after the frame navigation. This was causing flaky failures if
        the origin's cache was deleted before the test finished.

        Reviewed by Youenn Fablet.

        * http/wpt/cache-storage/quota-third-party.https.html:
        * platform/ios-wk2/TestExpectations:

2020-01-28  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 release and Mac ] imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable.html flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206752

        Unreviewed test gardening.

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

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] http/wpt/resource-timing/rt-resource-errors.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206711

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-28  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS wk2 ] editing/caret/ios/fixed-caret-position-after-scroll.html flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206698

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        fast/animation/request-animation-frame-iframe.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206708

        Unreviewed test gardening.


        * platform/mac-wk2/TestExpectations:

2020-01-28  Commit Queue  <commit-queue@webkit.org>

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

        it is breaking Win build (Requested by youenn on #webkit).

        Reverted changeset:

        "Blob media loading does not work with GPUProcess"
        https://bugs.webkit.org/show_bug.cgi?id=206824
        https://trac.webkit.org/changeset/255237

2020-01-28  Jason Lawrence  <lawrence.j@apple.com>

        [ Mac wk2 Release ] editing/selection/caret-at-bidi-boundary.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=206696

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-28  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, update TestExpectations and add new baseline
        https://bugs.webkit.org/show_bug.cgi?id=206878

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt: Added.

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION?: [ Mac wk1 ] storage/indexeddb/modern/blob-cursor.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=206673

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-28  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS ] imported/w3c/web-platform-tests/beacon/idlharness.any.html is flakey and timing out.
        https://bugs.webkit.org/show_bug.cgi?id=206687

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2020-01-28  Jack Lee  <shihchieh_lee@apple.com>

        Nullptr crash in WebCore::findPlaceForCounter with display: contents sibling
        https://bugs.webkit.org/show_bug.cgi?id=206107

        Reviewed by Antti Koivisto.

        * fast/css/counters/findPlaceForCounter-display-content-sibling-crash-expected.txt: Added.
        * fast/css/counters/findPlaceForCounter-display-content-sibling-crash.html: Added.

2020-01-28  Jacob Uphoff  <jacob_uphoff@apple.com>

        REGRESSION: [MacOS wk1] fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206668

        fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates.html is flaky failing in tandem, I am marking them both as Pass Failure.

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-27  Sergio Villar Senin  <svillar@igalia.com>

        Remove WebVR from the tree
        https://bugs.webkit.org/show_bug.cgi?id=206739

        Reviewed by Darin Adler.

        * webvr/webvr-disabled-expected.txt: Removed.
        * webvr/webvr-disabled.html: Removed.
        * webvr/webvr-enabled-expected.txt: Removed.
        * webvr/webvr-enabled.html: Removed.

2020-01-28  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CSS Backgrounds] Import WPT css-backgrounds tests
        https://bugs.webkit.org/show_bug.cgi?id=205872

        Reviewed by Simon Fraser.

        Import WPT css/css-backgrounds tests.

        * TestExpectations:

2020-01-28  youenn fablet  <youenn@apple.com>

        Blob media loading does not work with GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=206824
        <rdar://problem/58917596>

        Reviewed by Eric Carlson.

        * gpu-process/TestExpectations:

2020-01-27  Noam Rosenthal  <noam@webkit.org>

        -webkit-image-set should support resolution units other than 'x'
        https://bugs.webkit.org/show_bug.cgi?id=100120

        Reviewed by Darin Adler.

        Had to modify several image-set parsing tests because of the behavior change in
        computed style (x => dppx).

        Also added a couple of parsing/rendering tests specifically to test the new behavior
        of dpi/dpcm/dppx.

        * fast/css/cursor-parsing-image-set-expected.txt:
        * fast/css/cursor-parsing-image-set.html:
        * fast/css/image-set-parsing-expected.txt:
        * fast/css/image-set-parsing-invalid-expected.txt:
        * fast/css/image-set-parsing.html:
        * fast/css/image-set-setting-expected.txt:
        * fast/css/image-set-setting.html:
        * fast/css/image-set-unprefixed.html:
        * fast/hidpi/image-set-units-expected.html: Added.
        * fast/hidpi/image-set-units.html: Added.

2020-01-27  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r253634): cricbuzz.com media controls vanish depending on page scale
        https://bugs.webkit.org/show_bug.cgi?id=206788
        rdar://problem/58780584

        Reviewed by Tim Horton.

        Test only really makes sense on iOS where the viewport tag is respected, but include
        macOS results instead of skipping.

        * compositing/backing/page-scale-overlap-in-iframe-expected.txt: Added.
        * compositing/backing/page-scale-overlap-in-iframe.html: Added.
        * platform/ios-wk2/compositing/backing/page-scale-overlap-in-iframe-expected.txt: Added.

2020-01-27  Ryosuke Niwa  <rniwa@webkit.org>

        http/tests/loading/remove-child-triggers-parser.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=103115

        Reviewed by Alexey Proskuryakov.

        Delay the end of the test until the timer fires.

        * http/tests/loading/remove-child-triggers-parser-expected.txt:
        * http/tests/loading/remove-child-triggers-parser.html:

2020-01-27  Peng Liu  <peng.liu6@apple.com>

        REGRSSION: [ High Sierra Catalina ] (r253310) compositing/video/video-border-radius-clipping.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205226

        Reviewed by Simon Fraser.

        Add a special video with only one frame so that the video element in a test page will always render the exact same pixels.

        * compositing/video/video-border-radius-clipping-expected.html:
        * compositing/video/video-border-radius-clipping.html:
        * media/content/pure-color-green.mp4: Added.
        * platform/mac-wk1/TestExpectations:

2020-01-27  Jacob Uphoff  <jacob_uphoff@apple.com>

        animations/animation-direction-reverse.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206671

        Unreviewed test gardening.

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

2020-01-27  Truitt Savell  <tsavell@apple.com>

        REGRESSION: (r253718) [ Mac ] inspector/runtime/executionContextCreated-onEnable.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205956

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-27  Devin Rousso  <drousso@apple.com>

        Web Inspector: unable to evaluate in the isolated world of content scripts injected by safari app extensions
        https://bugs.webkit.org/show_bug.cgi?id=206110
        <rdar://problem/16945643>

        Reviewed by Timothy Hatcher, Joseph Pecoraro, and Brian Burg.

        In addition to evaluating in subframe execution contexts, add the ability for Web Inspector
        to evaluate in non-normal isolated worlds.

        * inspector/runtime/executionContextCreated-isolated-world.html: Added.
        * inspector/runtime/executionContextCreated-isolated-world-expected.txt: Added.

        * inspector/runtime/change-execution-context-identifier.html:
        * inspector/runtime/change-execution-context-identifier-expected.txt:
        Don't expect the active execution context to change when the owner frame is removed, as that
        is now handled by the UI (`WI.QuickConsole`) instead of the `WI.RuntimeManager`.

        * inspector/runtime/executionContextCreated-onEnable.html:
        Ignore internal worlds.

2020-01-27  Jacob Uphoff  <jacob_uphoff@apple.com>

        [macOS iOS ] animations/animation-direction-normal.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206685

        Unreviewed test gardening

        I removed an old crash expectation for animations/animation-direction-normal.html is ios wk2 expectations.

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

2020-01-27  Jason Lawrence  <lawrence.j@apple.com>

        REGRESSION: [iOS] http/wpt/cache-storage/quota-third-party.https.html is flaky failing.
        https://bugs.webkit.org/show_bug.cgi?id=206681

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-01-27  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] inspector/heap/tracking.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206684

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-01-27  Jason Lawrence  <lawrence.j@apple.com>

        [iOS Release] compositing/video/poster.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206678

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-01-27  Truitt Savell  <tsavell@apple.com>

        [Mac wk2 Release] fast/html/marquee-child-wrap.html flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206704

        Reviewed by Jonathan Bedard.

        Added a scrollDelay to the test.

        * fast/html/marquee-child-wrap.html:

2020-01-27  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS iOS ] animations/play-state-paused.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206682

        Unreviewed test gardening

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

2020-01-27  Jason Lawrence  <lawrence.j@apple.com>

        [iOS] legacy-animation-engine/animations/stop-animation-on-suspend.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206667

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-01-27  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS ] fast/frames/sandboxed-iframe-navigation-allowed.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206680

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-01-27  Jason Lawrence  <lawrence.j@apple.com>

        REGRESSION (r254699): [ iOS ] fast/forms/validationMessage.html is flaky and timing out
        https://bugs.webkit.org/show_bug.cgi?id=206630

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-01-27  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ macOS WK1 ] fast/forms/textarea/textarea-state-restore.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206679

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:

2020-01-27  Jason Lawrence  <lawrence.j@apple.com>

        [ iOS Release ] http/tests/security/contentSecurityPolicy/module-eval-blocked-in-external-script.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=206616

        Unreviewed test gardening

        * platform/ios-wk2/TestExpectations:

2020-01-27  Jason Lawrence  <lawrence.j@apple.com>

        [Mac wk2 Release] imported/w3c/web-platform-tests/web-animations/timing-model/animations/updating-the-finished-state.html flaky fail
        https://bugs.webkit.org/show_bug.cgi?id=206746

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

2020-01-27  Jacob Uphoff  <jacob_uphoff@apple.com>

        [ Macos iOS ] http/tests/workers/service/basic-timeout.https.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206834

        Unreviewed test gardening.

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

2020-01-27  Jer Noble  <jer.noble@apple.com>

        Support 'allow="fullscreen"' feature policy
        https://bugs.webkit.org/show_bug.cgi?id=206806
        <rdar://problem/55640448>

        Reviewed by Youenn Fablet.

        * fullscreen/full-screen-enabled-prefixed.html:
        * fullscreen/full-screen-enabled.html:
        * fullscreen/full-screen-frameset-expected.txt: Removed.
        * fullscreen/full-screen-frameset.html: Removed.
        * fullscreen/full-screen-iframe-not-allowed.html:
        * fullscreen/full-screen-restrictions.html:
        * http/tests/fullscreen/fullscreen-feature-policy-expected.txt: Added.
        * http/tests/fullscreen/fullscreen-feature-policy.html: Added.

2020-01-27  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler
        https://bugs.webkit.org/show_bug.cgi?id=204713

        Reviewed by Simon Fraser.

        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/animation/request-animation-frame-throttle-subframe.html:
        * fast/animation/request-animation-frame-throttling-detached-iframe.html:
        Enable RenderingUpdateThrottling for these tests.

        * fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
        * fast/animation/request-animation-frame-throttling-lowPowerMode.html:
        Ensure the actual rAF interval is > 30ms for lowPowerMode.

        * fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Added.
        * fast/animation/request-animation-frame-throttling-outside-viewport.html: Added.
        * fast/animation/resources/frame-with-animation-2.html: Added.
        Test the OutsideViewport throttling case.

        * http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
        Enable RenderingUpdateThrottling for this test.

2020-01-27  Devin Rousso  <drousso@apple.com>

        REGRESSION: [ Mac Debug WK1 ] inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206362
        <rdar://problem/58649476>

        Reviewed by Brian Burg.

        Tentative fix. Modifying the `iceCandidateFilteringEnabled` WebCore setting causes any
        existing/pending ICE candidates to immediately fire `icecandidate` events. Wait to change
        the setting using `Page.overrideSetting` until after the JavaScript has set up the various
        connections so that it's guaranteed to not miss any `icecandidate` events. Additionally
        remove the default 10s timeout in case the debug build is too slow.

        * inspector/page/overrideSetting-ICECandidateFilteringEnabled.html:
        * inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt:
        * platform/mac-wk1/TestExpectations:

2020-01-27  Chris Dumez  <cdumez@apple.com>

        REGRESSION: [Mac wk2] fast/animation/request-animation-frame.html is flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206675
        <rdar://problem/58839955>

        Reviewed by Said Abou-Hallawa.

        Rewrite test to stop relying on ordering between requestAnimationFrame() and setTimeout().

        * fast/animation/request-animation-frame-expected.txt:
        * fast/animation/request-animation-frame.html:

2020-01-27  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Gardening, update baselines and synchronize with GTK
        https://bugs.webkit.org/show_bug.cgi?id=206826

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        * platform/wpe/accessibility/roles-exposed-expected.txt:
        * platform/wpe/css1/text_properties/text_indent-expected.txt:
        * platform/wpe/css2.1/t1601-c547-indent-01-d-expected.txt:
        * platform/wpe/fast/backgrounds/background-leakage-expected.txt:
        * platform/wpe/fast/backgrounds/background-leakage-transforms-expected.txt:
        * platform/wpe/fast/block/basic/fieldset-stretch-to-legend-expected.txt: Added.
        * platform/wpe/fast/block/float/intruding-painted-twice-expected.txt:
        * platform/wpe/fast/borders/mixed-border-styles-expected.txt:
        * platform/wpe/fast/borders/mixed-border-styles-radius-expected.txt:
        * platform/wpe/fast/borders/mixed-border-styles-radius2-expected.txt:
        * platform/wpe/fast/css/hsl-color-expected.txt:
        * platform/wpe/fast/css/hsla-color-expected.txt:
        * platform/wpe/fast/css/percentage-non-integer-expected.txt:
        * platform/wpe/fast/css/shadow-multiple-expected.txt:
        * platform/wpe/fast/css/viewport-units-dynamic-expected.txt:
        * platform/wpe/fast/dom/Range/getBoundingClientRect-expected.txt: Added.
        * platform/wpe/fast/loader/text-document-wrapping-expected.txt:
        * platform/wpe/fast/multicol/client-rects-expected.txt:
        * platform/wpe/fast/multicol/client-rects-spanners-complex-expected.txt:
        * platform/wpe/fast/multicol/client-rects-spanners-expected.txt:
        * platform/wpe/fast/multicol/newmulticol/client-rects-expected.txt:
        * platform/wpe/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
        * platform/wpe/fast/overflow/float-in-relpositioned-expected.txt:
        * platform/wpe/fast/parser/open-comment-in-textarea-expected.txt:
        * platform/wpe/fast/ruby/select-ruby-expected.txt:
        * platform/wpe/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
        * platform/wpe/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
        * platform/wpe/fast/writing-mode/border-styles-vertical-lr-expected.txt:
        * platform/wpe/fast/writing-mode/english-bt-text-expected.txt:
        * platform/wpe/fast/writing-mode/text-orientation-basic-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/editing/editing-0/autocapitalization/autocapitalize-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/abspos-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/grid-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/media_fragment_seek-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.tentative-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt: Added.
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/wpe/js/dom/navigator-maxtouchpoints-expected.txt: Added.
        * platform/wpe/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt: Added.
        * platform/wpe/tables/mozilla/bugs/bug157890-expected.txt:
        * platform/wpe/tables/mozilla/marvin/x_td_nowrap-expected.txt:
        * platform/wpe/tables/mozilla/marvin/x_th_nowrap-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
        * platform/wpe/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer-expected.txt:

2020-01-27  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r255131.

        Caused assertion failures on iOS debug bots.

        Reverted changeset:

        "Throttling requestAnimationFrame should be controlled by
        RenderingUpdateScheduler"
        https://bugs.webkit.org/show_bug.cgi?id=204713
        https://trac.webkit.org/changeset/255131

2020-01-27  Antti Koivisto  <antti@apple.com>

        [Mac wk2 Release] fast/dom/frame-src-javascript-url-async.html flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=206701
        <rdar://problem/58847864>

        Reviewed by Antoine Quint.

        * fast/dom/frame-src-javascript-url-async.html:

        The test assumed that in

        <iframe src=javascript:'foo'></iframe>
        <script>
        …

        the frame javascript could not have run before the body script executes. However parser might yield before the
        script tag or data might come from network in chunks that don't cover the full script. In this case frame load
        may start and src execute before the body script runs.

        Fix by document.writing the iframe tag.

2020-01-26  Said Abou-Hallawa  <said@apple.com>

        Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler
        https://bugs.webkit.org/show_bug.cgi?id=204713

        Reviewed by Simon Fraser.

        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/animation/request-animation-frame-throttle-subframe.html:
        * fast/animation/request-animation-frame-throttling-detached-iframe.html:
        Enable RenderingUpdateThrottling for these tests.

        * fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
        * fast/animation/request-animation-frame-throttling-lowPowerMode.html:
        Ensure the actual rAF interval is > 30ms for lowPowerMode.

        * fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Added.
        * fast/animation/request-animation-frame-throttling-outside-viewport.html: Added.
        * fast/animation/resources/frame-with-animation-2.html: Added.
        Test the OutsideViewport throttling case.

        * http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
        Enable RenderingUpdateThrottling for this test.

2020-01-26  Eric Carlson  <eric.carlson@apple.com>

        media/modern-media-controls/media-controller/media-controller-auto-hide.html is flaky timing out
        https://bugs.webkit.org/show_bug.cgi?id=206629
        <rdar://problem/58816827>

        Reviewed by Dean Jackson.

        Attempt to de-flake this test by decreasing the controller auto-hide interval and
        using a base64 encoded video file to make it load and finish more quickly.

        * media/content/test.mp4.js: Added.
        (base64MP4URL): Base64 encoded five frame, four second long MPEG-4 video.
        * media/modern-media-controls/media-controller/media-controller-auto-hide.html:

2020-01-26  Rob Buis  <rbuis@igalia.com>

        Improve compatibility with hyperlink auditing spec
        https://bugs.webkit.org/show_bug.cgi?id=188852

        Reviewed by Youenn Fablet.

        Update improved test results.

        * http/tests/navigation/ping-attribute/anchor-cross-origin-expected.txt:
        * http/tests/navigation/ping-attribute/area-cross-origin-expected.txt:

2020-01-25  Darin Adler  <darin@apple.com>

        REGRESSION: [ Mac WK2 ] animations/suspend-resume-animation-events.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206615

        Reviewed by Alexey Proskuryakov.

        * animations/suspend-resume-animation-events.html: Make test slightly less timing
        dependent.

2020-01-25  Jer Noble  <jer.noble@apple.com>

        Regression (r255103): media/modern-media-controls/placard-support/placard-support-airplay-fullscreen-no-controls.html
        https://bugs.webkit.org/show_bug.cgi?id=206800

        Unreviewed test gardening; the test which this was copied from, placard-support-airplay-fullscreen.html, is skipped on
        iOS test bots due to a lack of AirPlay test support.

        * platform/ios/TestExpectations:

2020-01-25  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening of media related tests
        https://bugs.webkit.org/show_bug.cgi?id=206796

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/media/audio-repaint-expected.txt:
        * platform/gtk/media/controls-styling-strict-expected.txt:
        * platform/gtk/media/media-controls-play-button-updates-expected.txt:

2020-01-25  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Re-enable line layout integration
        https://bugs.webkit.org/show_bug.cgi?id=206795
        <rdar://problem/58853907>

        Reviewed by Zalan Bujtas.

        * fast/dom/Range/getBoundingClientRect-expected.txt:
        * platform/ios/fast/text/hyphenate-limit-lines-expected.txt:
        * platform/ios/fast/text/whitespace/pre-break-word-expected.txt:
        * platform/ios/fast/text/word-break-expected.txt:
        * platform/mac/fast/text/hyphenate-limit-lines-expected.txt:
        * platform/mac/fast/text/whitespace/pre-break-word-expected.txt:
        * platform/mac/fast/text/word-break-expected.txt:

2020-01-24  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS] REGRESSION(r254699) : fast/forms/interactive-validation-remove-node-in-handler.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=206669

        Reviewed by Wenson Hsieh.

        The timeout was caused by the invalidation bubble in interactive-validation-prevented.html never getting closed.
        Address the issue by explicitly dismissing the invalidation bubble by setting a value to the input element.

        * fast/forms/interactive-validation-prevented.html:

2020-01-24  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Long pressing text inside a selection should update the selection
        https://bugs.webkit.org/show_bug.cgi?id=206769
        <rdar://problem/58704316>

        Reviewed by Tim Horton.

        Add a layout test to verify that it's possible to select text by long pressing inside an existing text
        selection. The test is runnable on both iPad and iPhone, since it programmatically prevents `dragstart`.

        * editing/selection/ios/select-text-in-existing-selection-expected.txt: Added.
        * editing/selection/ios/select-text-in-existing-selection.html: Added.

2020-01-24  Ryosuke Niwa  <rniwa@webkit.org>

        imported/w3c/web-platform-tests/requestidlecallback/callback-xhr-sync.html is flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206676
        <rdar://problem/58839631>

        Add a flaky test expectation.

        * TestExpectations:

2020-01-24  youenn fablet  <youenn@apple.com>

        Add support for MediaRecorder.requestData
        https://bugs.webkit.org/show_bug.cgi?id=206731

        Reviewed by Eric Carlson.

        * http/wpt/mediarecorder/MediaRecorder-dataavailable.html:

2020-01-24  Jack Lee  <shihchieh_lee@apple.com>

        Nullptr deref in WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation when an element is inserted before legend under multi-column layout.
        https://bugs.webkit.org/show_bug.cgi?id=206109

        Reviewed by Antti Koivisto.

        * fast/forms/fieldset/fieldset-crash-insert-before-legend-under-multicol-expected.txt: Added.
        * fast/forms/fieldset/fieldset-crash-insert-before-legend-under-multicol.html: Added.

2020-01-24  Lauro Moura  <lmoura@igalia.com>

        [GTK][WPE] Websockets close-on-x tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=206392

        Unreviewed gardening.

        Rebaseline after libsoup commit 35f1bac5.

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/websocket/tests/hybi/close-on-navigate-new-location-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/close-on-unload-and-force-gc-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/close-on-unload-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/close-on-unload-reference-in-parent-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/send-after-close-on-unload-expected.txt: Added.

2020-01-24  Rob Buis  <rbuis@igalia.com>

        [GTK][WPE] Several WPT fetch tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=206416

        Reviewed by Frédéric Wang.

        It is better to skip these as more tests can be added
        and this feature is not enabled on WPE/GTK.

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

2020-01-24  Lauro Moura  <lmoura@igalia.com>

        [GTK] More unreviewed gardening.
        https://bugs.webkit.org/show_bug.cgi?id=206693

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2020-01-24  Pablo Saavedra  <psaavedra@igalia.com>

        Layout Test animations/no-style-recalc-during-accelerated-animation.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=206733

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2020-01-24  Rossana Monteriso  <rmonteriso@igalia.com>

        Import 2 sets of grid-align-tests from WPT
        https://bugs.webkit.org/show_bug.cgi?id=206492

        Reviewed by Manuel Rego Casasnovas.

        Remove outdated grid-align tests, that are being replaced by newer tests, adapted to the WPT project and imported
        to the corresponding css-grid folder inside WebKit.

        * fast/css-grid-layout/grid-align-content-vertical-lr-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-content-vertical-rl-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-stretching-replaced-items-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-stretching-replaced-items.html: Removed.
        * fast/css-grid-layout/grid-align-content-vertical-lr.html: Removed.
        * fast/css-grid-layout/grid-align-content-vertical-rl.html: Removed.

2020-01-24  Antti Koivisto  <antti@apple.com>

        :matches() doesn't combine correctly with pseudo elements
        https://bugs.webkit.org/show_bug.cgi?id=206654

        Reviewed by Simon Fraser.

        * TestExpectations:

        Unskip fast/css/first-letter-and-float-crash.html which no longer hits assert due to this.

        * fast/selectors/matches-with-pseudo-element-expected.html: Added.
        * fast/selectors/matches-with-pseudo-element.html: Added.
        * fast/css/currentColor-on-before-after-pseudo-elements.html:
        * fast/css/matches-specificity-5.html:
        * fast/selectors/pseudo-element-inside-matches-expected.html:
        * fast/selectors/pseudo-element-inside-matches.html:

        Update the existing tests to match the behavior.

2020-01-24  youenn fablet  <youenn@apple.com>

        Make sure fetch tasks go to network if service worker never gets to activated
        https://bugs.webkit.org/show_bug.cgi?id=206648

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/service-worker-spinning-activate.https-expected.txt:
        * http/wpt/service-workers/service-worker-spinning-activate.https.html:

2020-01-23  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, rebaselines and update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=206660

        Unreviewed gardening.

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

2020-01-23  Matt Lewis  <jlewis3@apple.com>

        Actually fix history link directs on dashboard and results.html
        https://bugs.webkit.org/show_bug.cgi?id=206666

        Reviewed by Jonathan Bedard.

        * fast/harness/results.html:
        * legacy-animation-engine/fast/harness/results.html:

2020-01-23  Antti Koivisto  <antti@apple.com>

        fast/css/first-letter-and-float-crash.html asserts under ComplexLineLayout::createLineBoxes
        https://bugs.webkit.org/show_bug.cgi?id=206651
        <rdar://problem/54889982>

        Reviewed by Anders Carlsson.

        * fast/css/first-letter-and-float-crash.html:

        Force an additional layout in the test to make the issue easily reproducible.

2020-01-23  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, update platform baselines for failing tests
        https://bugs.webkit.org/show_bug.cgi?id=206644

        Unreviewed gardening.

        * platform/gtk/fast/dom/Range/getBoundingClientRect-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:

2020-01-23  Yusuke Suzuki  <ysuzuki@apple.com>

        nomodule scripts are fetched in some cases (with empty cache or in new tab)
        https://bugs.webkit.org/show_bug.cgi?id=194337
        <rdar://problem/49700924>

        Reviewed by Ryosuke Niwa.

        * http/wpt/preload/classic-script-with-nomodule-expected.txt: Added.
        * http/wpt/preload/classic-script-with-nomodule.html: Added.
        * http/wpt/preload/resources/classic.js: Added.
        * http/wpt/preload/resources/module.js: Added.

2020-01-22  Lauro Moura  <lmoura@igalia.com>

        [GTK] Gardening HTTP tests
        https://bugs.webkit.org/show_bug.cgi?id=206640

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt: Added.

2020-01-22  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo] Some of combining family glyphs are replaced by space glyphs
        https://bugs.webkit.org/show_bug.cgi?id=205485

        Reviewed by Myles C. Maxfield.

        * fast/text/emoji-single-parent-family-3-expected-mismatch.html: Added.
        * fast/text/emoji-single-parent-family-3.html: Added.
        * platform/win/TestExpectations: Marked fast/text/emoji-single-parent-family-3.html as ImageOnlyFailure.
        * platform/wincairo/TestExpectations: Changed the bug number for fast/text/stale-TextLayout-from-first-line.html.

2020-01-22  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac WK2 ] webgpu/vertex-buffer-triangle-strip.html is a flakey image failure
        https://bugs.webkit.org/show_bug.cgi?id=198942

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-22  Nikos Mouchtaris  <nmouchtaris@apple.com>

        Automatic link replacement via "Smart links" should emit "insertLink" input events
        https://bugs.webkit.org/show_bug.cgi?id=191306

        Reviewed by Wenson Hsieh.

        Due to webkit.org/b/162081 this test is skipped for WebKit2.

        * fast/events/input-event-insert-link-expected.txt: Added.
        * fast/events/input-event-insert-link.html: Added.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:

2020-01-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] DateMath should accept more ISO-8601 timezone designators even if they are not included in ECMA262 to produce expected results in the wild code
        https://bugs.webkit.org/show_bug.cgi?id=160287

        Reviewed by Ross Kirsling.

        * js/date-parse-test-expected.txt:
        * js/script-tests/date-parse-test.js:

2020-01-22  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=206590

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2020-01-22  Dean Jackson  <dino@apple.com>

        [WebGL] Skip tests on WebGL bot that are skipped on trunk/master
        https://bugs.webkit.org/show_bug.cgi?id=206609

        Reviewed by Antoine Quint.

        These three tests fail when trying to get external resources.

        * webgl/TestExpectations:

2020-01-22  Ryan Haddad  <ryanhaddad@apple.com>

        Flaky Test: svg/wicd/rightsizing-grid.xhtml
        https://bugs.webkit.org/show_bug.cgi?id=203222

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.
        * platform/mac/TestExpectations: Ditto.

2020-01-22  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Disable integration to see performance impact
        https://bugs.webkit.org/show_bug.cgi?id=206576
        <rdar://problem/58562185>

        Reviewed by Zalan Bujtas.

        * fast/dom/Range/getBoundingClientRect-expected.txt:
        * platform/ios/fast/text/whitespace/pre-break-word-expected.txt:
        * platform/ios/fast/text/word-break-expected.txt:
        * platform/mac/fast/text/hyphenate-limit-lines-expected.txt:
        * platform/mac/fast/text/whitespace/pre-break-word-expected.txt:
        * platform/mac/fast/text/word-break-expected.txt:

2020-01-22  youenn fablet  <youenn@apple.com>

        Add logging of the source of a response used to respond a fetch event
        https://bugs.webkit.org/show_bug.cgi?id=206426

        Reviewed by Darin Adler.

        * http/wpt/cache-storage/cache-put-keys.https.any.js:
        (cache_test):

2020-01-21  Fujii Hironori  <Hironori.Fujii@sony.com>

        A partially selected RTL text is placed at a wrong vertical position if it has a vertical initial advance
        https://bugs.webkit.org/show_bug.cgi?id=205990

        Reviewed by Darin Adler.

        * fast/text/initial-advance-selected-text-expected.html: Added.
        * fast/text/initial-advance-selected-text.html: Added.

2020-01-21  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Incorporate more detailed UnknownError messages for LocalAuthenticator
        https://bugs.webkit.org/show_bug.cgi?id=191530

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-create-failure-local.https.html:

2020-01-22  Simon Fraser  <simon.fraser@apple.com>

        Fixed elements no longer stay fixed with elastic overscroll
        https://bugs.webkit.org/show_bug.cgi?id=206227
        rdar://problem/58707084

        Reviewed by Antti Koivisto.

        * tiled-drawing/scrolling/fixed/fixed-during-rubberband-expected.html: Added.
        * tiled-drawing/scrolling/fixed/fixed-during-rubberband.html: Added.
        * tiled-drawing/scrolling/sticky/sticky-during-rubberband-expected.html: Added.
        * tiled-drawing/scrolling/sticky/sticky-during-rubberband.html: Added.

2020-01-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r254807 and r254849.
        https://bugs.webkit.org/show_bug.cgi?id=206559

        Broke page up/page down on macOS (Requested by smfr on
        #webkit).

        Reverted changesets:

        "Add support for scroll behavior relies on ScrollAnimation of
        the Web process"
        https://bugs.webkit.org/show_bug.cgi?id=204882
        https://trac.webkit.org/changeset/254807

        "Add support for scroll behavior relies on ScrollAnimation of
        the Web process"
        https://bugs.webkit.org/show_bug.cgi?id=204882
        https://trac.webkit.org/changeset/254849

2020-01-21  Ryan Haddad  <ryanhaddad@apple.com>

        imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is timing out on Mojave wk1 debug EWS
        https://bugs.webkit.org/show_bug.cgi?id=206503

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Mark the test as failing to speed up EWS while we investigate.

2020-01-21  Daniel Bates  <dabates@apple.com>

        Add Legacy WebKit SPI and WebKit IPI to show and hide placeholder
        https://bugs.webkit.org/show_bug.cgi?id=206459
        <rdar://problem/58700534>

        Reviewed by Wenson Hsieh.

        Adds a new test to ensure that HTMLTextFormControlElement::setCanShowPlaceholder() works.

        * fast/forms/placeholder-show-and-hide-via-setCanShowPlaceholder-expected.txt: Added.
        * fast/forms/placeholder-show-and-hide-via-setCanShowPlaceholder.html: Added.

2020-01-21  Justin Fan  <justin_fan@apple.com>

        [WebGL2] Sampler objects
        https://bugs.webkit.org/show_bug.cgi?id=126941
        <rdar://problem/15002402>

        Reviewed by Dean Jackson.

        Update to passing expectations, though these tests remain skipped until ANGLE backend is enabled.

        * webgl/2.0.0/conformance2/samplers/sampler-drawing-test-expected.txt:
        * webgl/2.0.0/conformance2/samplers/samplers-expected.txt:

2020-01-21  Sunny He  <sunny_he@apple.com>

        Disallow setting SVGElement currentScale to non-finite values
        https://bugs.webkit.org/show_bug.cgi?id=206019

        Align SVGElement currentScale definition to SVG2 section 5.14.2
        (https://www.w3.org/TR/SVG2/struct.html#InterfaceSVGSVGElement)

        Reviewed by Darin Adler.

        * svg/dom/set-currentScale-nonfinite-expected.txt: Added.
        * svg/dom/set-currentScale-nonfinite.html: Added.

2020-01-21  Noam Rosenthal  <noam@webkit.org>

        -webkit-image-set should support all the image functions WebKit supports, not just url()
        https://bugs.webkit.org/show_bug.cgi?id=81941

        Reviewed by Darin Adler.

        * fast/css/cursor-parsing-expected.txt:
        * fast/css/cursor-parsing.html:
                Added parsing test to ensure arrow image-sets disable generated images

        * fast/css/image-set-parsing-generated-expected.txt: Added.
        * fast/css/image-set-parsing-generated.html: Added.
        * fast/css/image-set-parsing-invalid-expected.txt:
        * fast/css/image-set-parsing-invalid.html:
                Added parsing tests for new generated-inside-image-set use cases
                Test that image-set inside image-set is not supported

        * fast/hidpi/image-set-cross-fade-expected.html: Added.
        * fast/hidpi/image-set-cross-fade.html: Added.
        * fast/hidpi/image-set-gradient-expected.html: Added.
        * fast/hidpi/image-set-gradient-multi-expected.html: Added.
        * fast/hidpi/image-set-gradient-multi.html: Added.
        * fast/hidpi/image-set-gradient-single-expected.html: Added.
        * fast/hidpi/image-set-gradient-single.html: Added.
        * fast/hidpi/image-set-gradient.html: Added.
                Added ref-tests for several generated-inside-image-set use-cases

2020-01-21  Chris Dumez  <cdumez@apple.com>

        Regression r254652: fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload.html fails on windows
        https://bugs.webkit.org/show_bug.cgi?id=206474

        Unreviewed, land Windows-specific baseline and unskip the test.

        * platform/win/TestExpectations:
        * platform/win/fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload-expected.txt: Added.

2020-01-21  Diego Pino Garcia  <dpino@igalia.com>

        [GTK][WPE] Gardening, mark remote-playback tests as failure
        https://bugs.webkit.org/show_bug.cgi?id=206529

        Unreviewed gardening.

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

2020-01-21  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=206515

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2020-01-21  Cathie Chen  <cathiechen@igalia.com>

        Add support for scroll behavior relies on ScrollAnimation of the Web process
        https://bugs.webkit.org/show_bug.cgi?id=204882

        Reviewed by Frédéric Wang

        Based on the patch by Frédéric Wang.

        * platform/mac-wk1/TestExpectations: Skip these tests on WK1 as they don't work for now.

2020-01-20  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, update TestExpectations and baselines
        https://bugs.webkit.org/show_bug.cgi?id=206501

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
        * platform/gtk/editing/input/scroll-to-edge-if-line-break-at-end-of-document-contenteditable-expected.txt: Added.
        * platform/gtk/fast/block/basic/fieldset-stretch-to-legend-expected.txt: Added.
        * platform/gtk/js/dom/navigator-maxtouchpoints-expected.txt: Added.
        * platform/gtk/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt: Added.
        * platform/gtk/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt: Added.
        * platform/gtk/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt: Added.
        * platform/gtk/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt: Added.

2020-01-20  Gus Caplan  <me@gus.host>

        Remove own toString from NativeError prototype
        https://bugs.webkit.org/show_bug.cgi?id=204629

        Reviewed by Ross Kirsling.

        NativeError prototypes are expected to inherit toString from
        Error.prototype. See https://github.com/tc39/ecma262/issues/1794
        for additional details.

        * http/tests/security/regress-52192-expected.txt:
        * http/tests/security/regress-52192.html:

2020-01-20  Said Abou-Hallawa  <sabouhallawa@apple.com>

        EXIF orientation is ignored for some CSS images
        https://bugs.webkit.org/show_bug.cgi?id=203355

        Reviewed by Simon Fraser.

        * fast/images/exif-orientation-background-image-no-repeat-expected.html: Added.
        * fast/images/exif-orientation-background-image-no-repeat.html: Added.
        * fast/images/exif-orientation-background-image-repeat-expected.html: Added.
        * fast/images/exif-orientation-background-image-repeat.html: Added.
        * fast/images/exif-orientation-border-image-expected.html: Added.
        * fast/images/exif-orientation-border-image.html: Added.

2020-01-20  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed, rolling out r254807.

        Breaks Apple internal builds.

        Reverted changeset:

        "Add support for scroll behavior relies on ScrollAnimation of
        the Web process"
        https://bugs.webkit.org/show_bug.cgi?id=204882
        https://trac.webkit.org/changeset/254807

2020-01-20  Devin Rousso  <drousso@apple.com>

        inspector/heap/getRemoteObject.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=156077
        <rdar://problem/25469998>

        Reviewed by Darin Adler.

        Instead of blindly assuming that the first object is the `window` global object, iterate all
        the objects found by `WI.HeapSnapshotProxy.prototype.instancesWithClassName` and check that
        we see at least one `window` global object.

        * inspector/heap/getRemoteObject.html:
        * inspector/heap/getRemoteObject-expected.txt:
        * platform/mac-wk2/TestExpectations:

2020-01-20  Devin Rousso  <drousso@apple.com>

        REGRESSION (r250655?): [ Mac Debug ] inspector/runtime/promise-native-getter.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=206303
        <rdar://problem/58612520>

        Reviewed by Darin Adler.

        Rework the test to not be reliant on real world timing.

        * inspector/runtime/promise-native-getter.html:
        * inspector/runtime/promise-native-getter-expected.txt:
        * platform/mac/TestExpectations:

2020-01-20  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add a test to verify that the callout bar appears after selecting a word
        https://bugs.webkit.org/show_bug.cgi?id=206488
        <rdar://problem/58661768>

        Reviewed by Darin Adler.

        * editing/selection/ios/show-callout-bar-after-selecting-word-expected.txt: Added.
        * editing/selection/ios/show-callout-bar-after-selecting-word.html: Added.

        Add the new layout test.

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

        Wrap this UI script in its own function scope, such that it can be used multiple times in the same layout test.

2020-01-20  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, remove expected to fail but pass
        https://bugs.webkit.org/show_bug.cgi?id=206493

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2020-01-20  Rossana Monteriso  <rmonteriso@igalia.com>

        [css-grid] Import grid-align-content-distribution tests to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=205926

        Reviewed by Javier Fernandez.

        Remove align-content-distribution tests that are being replaced by newer tests, adapted to the WPT project and imported
        to the corresponding css-grid folder inside WebKit.

        * fast/css-grid-layout/grid-align-content-distribution-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-content-distribution-vertical-lr-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-content-distribution-vertical-rl-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-content-distribution.html: Removed.
        * fast/css-grid-layout/grid-align-content-distribution-vertical-lr.html: Removed.
        * fast/css-grid-layout/grid-align-content-distribution-vertical-rl.html: Removed.


2020-01-20  youenn fablet  <youenn@apple.com>

        Video sound sometimes keeps playing in page cache
        https://bugs.webkit.org/show_bug.cgi?id=206408
        <rdar://problem/58654047>

        Reviewed by Eric Carlson.

        * http/tests/media/resources/sound_5.mp3: Added.
        File comes from WPT and is 5 seconds long.
        * http/tests/navigation/page-cache-video-expected.txt: Added.
        * http/tests/navigation/page-cache-video.html: Added.
        * http/tests/navigation/resources/page-cache-video-helper.html: Added.

2020-01-19  Cathie Chen  <cathiechen@igalia.com>

        Add support for scroll behavior relies on ScrollAnimation of the Web process
        https://bugs.webkit.org/show_bug.cgi?id=204882

        Reviewed by Frédéric Wang

        Based on the patch by Frédéric Wang.

        * platform/mac-wk1/TestExpectations: Skip these tests on WK1 as they don't work for now.

2020-01-19  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Gardening, rebase lines and lint TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=206482

        Unreviewed gardening.

        * platform/wpe/TestExpectations: Removed duplicated entries and
        references to non-existing files
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/idlharness.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/import/color-prop-03-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/types-dom-08-f-manual-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt:

2020-01-18  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Gardening, synchronize with GTK TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=206473

        Unreviewed gardening.

        * platform/wpe/TestExpectations:

2020-01-17  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r252205?): [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html became very flaky
        https://bugs.webkit.org/show_bug.cgi?id=206296

        Reviewed by Ryosuke Niwa.

        Attempt to de-flake this test. It was using js-test-pre/post, but not jsTestIsAsync/finishJSTest(), and seemed to sometimes
        dump testPassed() a second even after notifyDone() was called. The <pre> is made fixed size so that the length of the layer
        tree dump doesn't change the layer sizes.

        Also clean it up to remove unused CSS and script.

        * platform/mac-wk2/TestExpectations:
        * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
        * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:

2020-01-17  Lauro Moura  <lmoura@igalia.com>

        [GTK] Gardening mouse cursor style change tests
        https://bugs.webkit.org/show_bug.cgi?id=206455

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2020-01-17  Lauro Moura  <lmoura@igalia.com>

        [GTK] Garden webrtc b/f cache tests
        https://bugs.webkit.org/show_bug.cgi?id=206465

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2020-01-17  Simon Fraser  <simon.fraser@apple.com>

        Some iOS tests using UIHelper.dragFromPointToPoint() are flakey
        https://bugs.webkit.org/show_bug.cgi?id=206441

        Reviewed by Wenson Hsieh.

        Unskip tests.

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

2020-01-17  Megan Gardner  <megan_gardner@apple.com>

        Use Visible Position to calculate Positions for highlights
        https://bugs.webkit.org/show_bug.cgi?id=206314

        Reviewed by Ryosuke Niwa.

        * highlight/resources/highlight-frame.html:
        * http/wpt/css/css-highlight-api/highlight-text-across-elements.html:
        * http/wpt/css/css-highlight-api/highlight-text-cascade.html:
        * http/wpt/css/css-highlight-api/highlight-text-replace.html:
        * http/wpt/css/css-highlight-api/highlight-text.html:

2020-01-17  Canhai Chen  <canhai_chen@apple.com>

        AX: Unable to use AccessibilityObject::replaceTextInRange to insert text at first time when the text fields are empty
        https://bugs.webkit.org/show_bug.cgi?id=206093
        <rdar://problem/58491448>

        Reviewed by Chris Fleizach.

        Test text replacement with empty range in editable div, text input, and textarea.

        * accessibility/mac/replace-text-with-empty-range-expected.txt: Added.
        * accessibility/mac/replace-text-with-empty-range.html: Added.

2020-01-17  Jer Noble  <jer.noble@apple.com>

        [MSE] Decode glitches when watching videos on CNN.com
        https://bugs.webkit.org/show_bug.cgi?id=206412
        <rdar://problem/55685630>

        Reviewed by Xabier Rodriguez-Calvar.

        * media/media-source/media-source-samples-out-of-order-expected.txt: Added.
        * media/media-source/media-source-samples-out-of-order.html: Added.

2020-01-17  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION: [iOS 13] svg/custom/glyph-selection-arabic-forms.svg is failing
        https://bugs.webkit.org/show_bug.cgi?id=201901

        Reviewed by Simon Fraser.

        Create a new test expectation for iOS for this test.

        * platform/ios/TestExpectations:
        * platform/ios/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.

2020-01-17  Diego Pino Garcia  <dpino@igalia.com>

        [GTK][WPE] Mark several WPT fetch tests as failure
        https://bugs.webkit.org/show_bug.cgi?id=206417

        Unreviewed gardening.

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

2020-01-17  Diego Pino Garcia  <dpino@igalia.com>

        [GTK][WPE] Update baselines for several CSS tests
        https://bugs.webkit.org/show_bug.cgi?id=206410

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-values/line-break-ch-unit-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-values/minmax-angle-computed-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt: Added.
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-sizing/button-min-width-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-transitions/before-load-001-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-values/line-break-ch-unit-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-values/minmax-angle-computed-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt: Added.

2020-01-17  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Update baselines for SVG tests
        https://bugs.webkit.org/show_bug.cgi?id=206406

        Unreviewed gardening.

        * platform/gtk/imported/w3c/web-platform-tests/svg/geometry/parsing/height-computed-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/geometry/parsing/width-computed-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:

2020-01-17  Lauro Moura  <lmoura@igalia.com>

        [GTK] Gardening websockets close-on-x tests
        https://bugs.webkit.org/show_bug.cgi?id=206393

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2020-01-16  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r251110): Crash on https://developer.apple.com/tutorials/swiftui/creating-and-combining-views
        https://bugs.webkit.org/show_bug.cgi?id=206337

        Reviewed by Geoffrey Garen.

        Added a regression test. The test crashes on trunk and causes an infinite loop before r251110.

        * fast/forms/match-pseudo-on-radio-before-finalizing-tree-insertion-crash-expected.txt: Added.
        * fast/forms/match-pseudo-on-radio-before-finalizing-tree-insertion-crash.html: Added.

2020-01-16  Lauro Moura  <lmoura@igalia.com>

        [GTK] Gardening indexeddb tests
        https://bugs.webkit.org/show_bug.cgi?id=206370

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2020-01-16  Doug Kelly  <dougk@apple.com>

        REGRESSION: [ Mac WK2 ] fast/text/international/unicode-bidi-other-neutrals.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205808

        Reviewed by Maciej Stachowiak.

        Update the testcase for bidi text runs ending with other neutrals to dumpAsText, instead of trying
        to compare visual content.

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

2020-01-16  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Rebaseline several tests
        https://bugs.webkit.org/show_bug.cgi?id=206355

        Unreviewed gardening.

        * platform/gtk/css1/text_properties/text_indent-expected.txt:
        * platform/gtk/css2.1/t1601-c547-indent-01-d-expected.txt:
        * platform/gtk/css3/blending/svg-blend-hard-light-expected.txt:
        * platform/gtk/editing/selection/select-bidi-run-expected.txt: Removed.
        * platform/gtk/fast/dom/Range/getClientRects-expected.txt:
        * platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt:
        * platform/gtk/fast/writing-mode/english-bt-text-expected.txt:
        * platform/gtk/fast/writing-mode/text-orientation-basic-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/tabindex-002-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/types-dom-08-f-manual-expected.txt:
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/gtk/mathml/presentation/bug159513-expected.txt:

2020-01-16  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac Debug WK1 ] inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=206362

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-16  Truitt Savell  <tsavell@apple.com>

        REGRESSION (r250655?): [ Mac Debug ] inspector/runtime/promise-native-getter.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=206303

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-16  Truitt Savell  <tsavell@apple.com>

        Marking storage/indexeddb/modern/objectstore-autoincrement-types.html as flaky on Debug WK1
        https://bugs.webkit.org/show_bug.cgi?id=199117

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-16  Truitt Savell  <tsavell@apple.com>

        REGRESSION: WK1 Accessibility: ASSERTION FAILED: FontCache::singleton().generation() == m_generation
        https://bugs.webkit.org/show_bug.cgi?id=206241

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-16  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Rebaseline of several tests
        https://bugs.webkit.org/show_bug.cgi?id=206351

        Unreviewed gardening.

        * platform/wpe/fast/history/page-cache-webdatabase-pending-transaction-expected.txt: Removed.
        * platform/wpe/fast/visual-viewport/rubberbanding-viewport-rects-extended-background-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-sync-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-sync-expected.txt: Removed.

2020-01-16  Alicia Boya García  <aboya@igalia.com>

        [MSE] Don't enqueue samples that start at a big discontinuity
        https://bugs.webkit.org/show_bug.cgi?id=201323

        Reviewed by Xabier Rodriguez-Calvar.

        * media/media-source/media-source-append-presentation-durations.html: Added.
        * media/media-source/media-source-first-append-not-starting-at-zero.html: Added.
        * media/media-source/media-source-remove-b-frame.html: Added.

2020-01-15  Lauro Moura  <lmoura@igalia.com>

        [GTK] Gardening tests using language override
        https://bugs.webkit.org/show_bug.cgi?id=206333

        Reviewed by Carlos Alberto Lopez Perez.

        * platform/gtk/TestExpectations:

2020-01-15  Pinki Gyanchandani  <pgyanchandani@apple.com>

        Nullptr crash in DocumentLoader::clearMainResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=206204

        Added a NULL pointer check for FrameLoader. If FramLoader is NULL then return instead of
        accessing activeDocumentLoader.

        Reviewed by Ryosuke Niwa.

        * loader/change-src-during-iframe-load-crash-expected.txt: Added.
        * loader/change-src-during-iframe-load-crash.html: Added.

2020-01-15  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [SVG2]: Implement support for the 'pathLength' attribute
        https://bugs.webkit.org/show_bug.cgi?id=72401

        Reviewed by Simon Fraser.

        * TestExpectations:

        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
        'pathLength' is now included in the DRT of the stroke. Other tests will
        need to be rebaselined.

        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/import/paths-dom-01-f-manual-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
        'pathLength' is now included in the DRT of the stroke. These tests were
        rendering incorrectly. With this patch, the rendering matches the rendering
        of other browsers.

        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/line-dasharray-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-001-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-002-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
        'pathLength' is now included in the DRT of the stroke. Other tests will
        need to be rebaselined.

        * svg/custom/stroke-dash-array-pathLength-expected.svg: Added.
        * svg/custom/stroke-dash-array-pathLength.svg: Added.

2020-01-15  Caitlin Potter <caitp@igalia.com>

        [JSC] Add support for public class fields
        https://bugs.webkit.org/show_bug.cgi?id=174212

        Reviewed by Yusuke Suzuki.

        New syntax invalidates some test expectations:

        "async <linefeed> MethodDefinition" is no longer an unexpected "async"
        token. It is now an instance field named "async" with no initializer,
        and an automatic semicolon, followed by MethodDefinition.

        "get|set GeneratorMethodDefinition"'s error message has changed, due to "get"
        being valid class field names.

        Many class-syntax tests relating to automatic semicolon insertion are
        no longer valid, as a line containing nothing but an identifier is now
        a valid class element.

        * js/class-syntax-semicolon-expected.txt:
        * js/script-tests/class-syntax-semicolon.js:

2020-01-15  Chris Dumez  <cdumez@apple.com>

        Regression(r253213) Load hang and high CPU usage when trying to load myuhc.com
        https://bugs.webkit.org/show_bug.cgi?id=206315
        <rdar://problem/58139842>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * fast/xmlhttprequest/resources/xmlhttprequest-multiple-sync-xhr-during-unload-iframe.html: Added.
        * fast/xmlhttprequest/resources/xmlhttprequest-sync-xhr-failure-loop-during-unload-iframe.html: Added.
        * fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload-expected.txt: Added.
        * fast/xmlhttprequest/xmlhttprequest-multiple-sync-xhr-during-unload.html: Added.
        * fast/xmlhttprequest/xmlhttprequest-sync-xhr-failure-loop-during-unload-expected.txt: Added.
        * fast/xmlhttprequest/xmlhttprequest-sync-xhr-failure-loop-during-unload.html: Added.

2020-01-15  Commit Queue  <commit-queue@webkit.org>

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

        Introduced failing test loader/change-src-during-iframe-load-
        crash.html (Requested by aakashja_ on #webkit).

        Reverted changeset:

        "Null Ptr Deref @
        WebCore::DocumentLoader::clearMainResourceLoader"
        https://bugs.webkit.org/show_bug.cgi?id=206204
        https://trac.webkit.org/changeset/254576

2020-01-15  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html is a flaky failure on Mac wk2
        https://bugs.webkit.org/show_bug.cgi?id=206296

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-15  Pinki Gyanchandani  <pgyanchandani@apple.com>

        Null Ptr Deref @ WebCore::DocumentLoader::clearMainResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=206204

        Added a NULL pointer check for FrameLoader. If FramLoader is NULL then return instead of
        accessing activeDocumentLoader.

        Reviewed by Alex Christensen.

        * loader/change-src-during-iframe-load-crash-expected.txt: Added.
        * loader/change-src-during-iframe-load-crash.html: Added.

2020-01-15  Jer Noble  <jer.noble@apple.com>

        Revert fullscreen CSS quirk for reddit.com; add width and height style to fullscreen.css.
        https://bugs.webkit.org/show_bug.cgi?id=206206

        Reviewed by Eric Carlson.

        * fullscreen/full-screen-test.js:
        (waitFor):
        * fullscreen/fullscreen-user-agent-style-expected.txt: Added.
        * fullscreen/fullscreen-user-agent-style.html: Added.

2020-01-15  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac iOS ] storage/websql/statement-error-callback.html is timing out flakily
        https://bugs.webkit.org/show_bug.cgi?id=206291

        Unreviewed test gardening.

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

2020-01-15  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Turn off antialiasing when rendering with Ahem
        https://bugs.webkit.org/show_bug.cgi?id=204671

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations:

2020-01-15  youenn fablet  <youenn@apple.com>

        Add support for MediaStream audio track rendering in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=206175

        Reviewed by Eric Carlson.

        * gpu-process/TestExpectations:

2020-01-15  Oriol Brufau  <obrufau@igalia.com>

        [css-grid] Exclude implicit grid tracks from the resolved value
        https://bugs.webkit.org/show_bug.cgi?id=204588

        Reviewed by Manuel Rego Casasnovas.

        Update tests.

        * fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
        * fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
        * fast/css-grid-layout/grid-columns-rows-get-set.html:
        * fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
        * fast/css-grid-layout/grid-template-shorthand-get-set.html:
        * fast/css-grid-layout/mark-as-infinitely-growable.html:
        * fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt:
        * fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html:
        * fast/css-grid-layout/negative-growth-share-as-infinity-crash.html:

2020-01-14  Zalan Bujtas  <zalan@apple.com>

        Long continuation chain could lead to stack exhaustion
        https://bugs.webkit.org/show_bug.cgi?id=206271
        <rdar://problem/41189798>

        Reviewed by Simon Fraser.

        * fast/inline/long-continuation-crash.html: Added.

2020-01-14  Peng Liu  <peng.liu6@apple.com>

        [Media in GPU process] Implement the remote video layer support
        https://bugs.webkit.org/show_bug.cgi?id=206043

        Reviewed by Youenn Fablet.

        * gpu-process/TestExpectations:

2020-01-14  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: fast/shadow-dom/link-element-in-shadow-tree.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=171784
        <rdar://problem/58123584>

        Reviewed by Antti Koivisto.

        The timeout is likely caused by the stylesheet not loading within 100ms timeout in the very first test case.
        Load and cache the stylesheet before any test cases run to avoid this timeout.

        * fast/shadow-dom/link-element-in-shadow-tree.html:
        * platform/mac-wk2/TestExpectations: Removed the flaky test expectation.

2020-01-14  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Supported mime types for encoding should be supported mime types for loading
        https://bugs.webkit.org/show_bug.cgi?id=206239

        Reviewed by Simon Fraser.

        * fast/canvas/toDataURL-unsupportedTypes-expected.txt: Added.
        * fast/canvas/toDataURL-unsupportedTypes.html: Added.
        Unsupported mime-types for encoding should fall back to 'image/png'.

2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Glyph lookup should be language-sensitive (specifically between Yiddish and Hebrew)
        https://bugs.webkit.org/show_bug.cgi?id=77568
        <rdar://problem/14649193>

        Reviewed by Simon Fraser.

        * fast/text/locale-shaping-complex-expected-mismatch.html: Added.
        * fast/text/locale-shaping-complex.html: Added.
        * fast/text/locale-shaping-expected-mismatch.html: Added.
        * fast/text/locale-shaping.html: Added.
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2020-01-14  Lauro Moura  <lmoura@igalia.com>

        Gardening after r251750
        https://bugs.webkit.org/show_bug.cgi?id=206249

        Reviewed by Žan Doberšek.

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

2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>

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

        Reviewed by Wenson Hsieh.

        * fast/forms/contenteditable-font-optical-size-expected.txt:
        * fast/forms/contenteditable-font-optical-size.html:
        * platform/ios-wk2/TestExpectations:

2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION: [ Catalina wk1 ] editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205814
        <rdar://problem/58347056>

        Unreviewed test gardening.

        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt: Removed.
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt:

2020-01-14  Diego Pino Garcia  <dpino@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/css/css-sizing/button-min-width-expected.txt: Added.

2020-01-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r254505.

        Breaks watchOS/tvOS/Catalyst builds.

        Reverted changeset:

        "Add support for MediaStream audio track rendering in
        GPUProcess"
        https://bugs.webkit.org/show_bug.cgi?id=206175
        https://trac.webkit.org/changeset/254505

2020-01-13  Darin Adler  <darin@apple.com>

        Use even more "shortest form" formatting, and less "fixed precision" and "fixed width"
        https://bugs.webkit.org/show_bug.cgi?id=198918

        Reviewed by Sam Weinig.

        * platform/mac/svg/dom/length-list-parser-expected.png: Removed. Not sure how many other pixel
        results we have like this, but this included an ancient style Aqua scrollbar so hasn't matched
        anything for years and would clearly not have any value for regression testing.

        * svg/dom/length-list-parser-expected.txt: Updated to expect logging of a 7 digit length as an
        integer rather than rounded as "d.ddddd+6".

2020-01-14  Chris Lord  <clord@igalia.com>

        [GTK][WPE] Failures in imported/w3c/web-platform-tests/2dcontext/imagebitmap due to missing OffscreenCanvas.copiedImage
        https://bugs.webkit.org/show_bug.cgi?id=206221

        Unreviewed test gardening.

        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-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-flipY-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-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:

2020-01-14  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Support the feature flag in DumpRenderTree
        https://bugs.webkit.org/show_bug.cgi?id=206218

        Reviewed by Zalan Bujtas.

        * platform/mac-wk1/TestExpectations:

2020-01-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [Freetype] Support for the -webkit-font-smoothing CSS property
        https://bugs.webkit.org/show_bug.cgi?id=54763

        Reviewed by Simon Fraser.

        Add a regression test. This test is specific for platform gtk because
        it depends on the custom fonts.conf file that its used for GTK layout
        tests.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/css/font-smoothing-expected.png:
        * platform/gtk/fonts/webkit-font-smoothing-expected.html: Added.
        * platform/gtk/fonts/webkit-font-smoothing.html: Added.
        * platform/wpe/TestExpectations:
        * platform/wpe/fast/css/font-smoothing-expected.png: Added.

2020-01-14  youenn fablet  <youenn@apple.com>

        Add support for MediaStream audio track rendering in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=206175

        Reviewed by Eric Carlson.

        * gpu-process/TestExpectations:

2020-01-14  Pablo Saavedra  <psaavedra@igalia.com>

        [GTK] Many imported/w3c/web-platform-tests/html/ tests failing after r253791
        https://bugs.webkit.org/show_bug.cgi?id=206127
        <rdar://problem/58555260>

        Unreviewed test gardening.

        * platform/gtk/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/editing/editing-0/autocapitalization/autocapitalize-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/abspos-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/grid-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/media_fragment_seek-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.tentative-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Added.

2020-01-14  Eric Carlson  <eric.carlson@apple.com>

        Expose video tracks for media files in the GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=206209
        <rdar://problem/58553026>

        Reviewed by Jer Noble.

        * gpu-process/TestExpectations:

2020-01-13  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (Catalina) non-scrolling iframe prevents document scrolling
        https://bugs.webkit.org/show_bug.cgi?id=202687

        Reviewed by Tim Horton.

        * tiled-drawing/scrolling/scrolling-no-iframe-latching-expected.txt: Added.
        * tiled-drawing/scrolling/scrolling-no-iframe-latching.html: Added.

2020-01-13  Simon Fraser  <simon.fraser@apple.com>

        Scrollbar hiding on iOS via ::-webkit-scrollbar { display: none } doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=206197

        Reviewed by Tim Horton.
        
        The logic added in r251369 was reversed, causing scrollbar hiding to not work correctly.

        * fast/scrolling/ios/scrollbar-hiding-expected.txt:

2020-01-13  Pablo Saavedra  <psaavedra@igalia.com>

        [GTK] Many imported/w3c/web-platform-tests/html/ tests failing after r253791
        https://bugs.webkit.org/show_bug.cgi?id=206127

        Reviewed by Philippe Normand.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt:
        * 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:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:

2020-01-13  Zalan Bujtas  <zalan@apple.com>

        RenderTreeBuilder::Block::attachIgnoringContinuation should handle inline-block anonymous containers.
        https://bugs.webkit.org/show_bug.cgi?id=202913
        <rdar://problem/56233694>

        Reviewed by Simon Fraser.

        * fast/ruby/before-child-is-block-after-expected.txt: Added.
        * fast/ruby/before-child-is-block-after.html: Added.

2020-01-13  John Wilander  <wilander@apple.com>

        Remove calls to testRunner.installStatisticsDidModifyDataRecordsCallback() in http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins*
        https://bugs.webkit.org/show_bug.cgi?id=206188
        <rdar://problem/58540033>

        Unreviewed test gardening.

        Removed the calls to testRunner.installStatisticsDidModifyDataRecordsCallback()
        to address flakiness.

        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:

2020-01-13  Justin Fan  <justin_fan@apple.com>

        [WebGL 2] Implement transform feedback and pass transform feedback conformance tests
        https://bugs.webkit.org/show_bug.cgi?id=205823

        Reviewed by Dean Jackson.

        Add passing results for transform_feedback, as expected when ANGLE is enabled.

        * webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings-expected.txt:
        * webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero-expected.txt:

2020-01-13  Chris Lord  <clord@igalia.com>

        REGRESSION(r253683): [GTK][WPE] Lots of offscreen-canvas WPT tests failing
        https://bugs.webkit.org/show_bug.cgi?id=205445

        Reviewed by Carlos Alberto Lopez Perez.

        Bug 205445 - Update and re-enable OffscreenCanvas tests

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

2020-01-13  Sunny He  <sunny_he@apple.com>

        Fix computeFloatVisibleRectInContainer to handle non-SVG object parent
        https://bugs.webkit.org/show_bug.cgi?id=205282

        Reviewed by Darin Adler.

        * svg/dom/replaceChild-document-crash-expected.txt: Added.
        * svg/dom/replaceChild-document-crash.html: Added.

2020-01-13  Eric Carlson  <eric.carlson@apple.com>

        Expose audio tracks for media files in the GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=206152
        <rdar://problem/58513227>

        Reviewed by youenn fablet.

        * gpu-process/TestExpectations:

2020-01-13  Zalan Bujtas  <zalan@apple.com>

        Add a simple trailing letter-spacing test case
        https://bugs.webkit.org/show_bug.cgi?id=206185
        <rdar://problem/58535841>

        Reviewed by Antti Koivisto.

        * fast/text/trailing-letter-spacing-long-expected.html: Added.
        * fast/text/trailing-letter-spacing-long.html: Added.

2020-01-13  Truitt Savell  <tsavell@apple.com>

        Flaky Test: imported/w3c/web-platform-tests/svg/import/struct-dom-06-b-manual.svg
        https://bugs.webkit.org/show_bug.cgi?id=204312

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-13  Zalan Bujtas  <zalan@apple.com>

        Explain why we started skipping "insert-span-into-long-text-bug-28245.html" in debug.

        * TestExpectations:

2020-01-13  Zalan Bujtas  <zalan@apple.com>

        [LFC][Integration] Turn off trailing letter-space trimming for the LineBreaker content
        https://bugs.webkit.org/show_bug.cgi?id=206181
        <rdar://problem/58532931>

        Reviewed by Antti Koivisto.

        * platform/ios/css1/text_properties/letter_spacing-expected.txt: Undo the rebaselining.

2020-01-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html times out
        https://bugs.webkit.org/show_bug.cgi?id=206126
        <rdar://problem/58060387>

        Reviewed by Tim Horton.

        This test is intended to verify that when ranged selection UI covers up most of the view, tapping the selection
        will clear the selection instead of toggling the callout bar. However, there are a couple of issues that make
        this test fail:

        - The long press that is intended to select text ends up under the "Sel" in select and above the "ect" that
        wraps to the next line, which causes the word to not be selected. To fix this, I changed the tap location from
        the center of the view to somewhere in the top half of the view, near the middle of "Sel".

        - The callout bar appears in the center of the screen with the "Look up" action in the middle, so tapping the
        center of the view again causes a view controller to be presented when looking up the selected word ("Select").
        We can avoid this by also moving the tap location away from the center of the view.

        - On iPad, the word "Select" isn't big enough to encompass most of the screen even at 250px, so the test fails.
        We fix this by making the "Select" text much bigger (500px), and then make the body `overflow: hidden` so that
        selecting the word on iPhone's smaller screen doesn't cause scrolling.

        * editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html:

2020-01-13  Truitt Savell  <tsavell@apple.com>

        Correct test expectations after r254428
        https://bugs.webkit.org/show_bug.cgi?id=206164

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-13  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Unreviewed gardening after r254409
        https://bugs.webkit.org/show_bug.cgi?id=206150

        * platform/gtk/TestExpectations:

2020-01-13  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] editing/text-iterator/findString.html fails on iOS
        https://bugs.webkit.org/show_bug.cgi?id=206164

        Reviewed by Zalan Bujtas.

        * platform/ios/TestExpectations:

2020-01-13  Antti Koivisto  <antti@apple.com>

        [iOS] Unreviewed test gardening after r254428.

        * platform/ios/css1/text_properties/letter_spacing-expected.txt:

2020-01-13  Zalan Bujtas  <zalan@apple.com>

        [Win] Unreviewed test gardening after r254421.

        * platform/win/css1/text_properties/text_indent-expected.txt:
        * platform/win/css2.1/t1601-c547-indent-01-d-expected.txt:

2020-01-13  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Enable LFC integration
        https://bugs.webkit.org/show_bug.cgi?id=206128

        Reviewed by Zalan Bujtas.

        Rebase for some progressions.

        * fast/dom/Range/getBoundingClientRect-expected.txt:
        * fast/dom/Range/getBoundingClientRect.html:

        Update the test for new results. These match the complex line layout results (simple lines produce wrong results).

        * platform/ios/fast/text/whitespace/pre-break-word-expected.txt:
        * platform/ios/fast/text/word-break-expected.txt:
        * platform/mac/fast/text/hyphenate-limit-lines-expected.txt:
        * platform/mac/fast/text/whitespace/pre-break-word-expected.txt:
        * platform/mac/fast/text/word-break-expected.txt:

        Line breaking and white-space progressions.

        * platform/ios/TestExpectations:

        A subtest of editing/text-iterator/findString.html fails on iOS. This needs futher analysis.

        * platform/win/TestExpectations:

        fast/dom/Range/getBoundingClientRect.html now fails on windows because LFC is not enabled there.

2020-01-13  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Ensure that simple line layout tests stays don't turn into LFC tests
        https://bugs.webkit.org/show_bug.cgi?id=206153

        Reviewed by Zalan Bujtas.

        We have a handful of SLL tests that document non-standard behaviors. Keep these SLL only with LFC enabled.

        * fast/text/embed-at-end-of-pre-wrap-line-simple-lines-expected.html:
        * fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html:
        * fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak-expected.html:
        * fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html:
        * fast/text/whitespace/pre-wrap-long-word-simple-lines-expected.html:
        * fast/text/whitespace/pre-wrap-long-word-simple-lines.html:

2020-01-12  Zalan Bujtas  <zalan@apple.com>

        Text-indent with percentage value should resolve against the available width
        https://bugs.webkit.org/show_bug.cgi?id=206155
        <rdar://problem/58514882>

        Reviewed by Antti Koivisto.

        * platform/mac/css1/text_properties/text_indent-expected.txt:
        * platform/mac/css2.1/t1601-c547-indent-01-d-expected.txt:

2020-01-12  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
        https://bugs.webkit.org/show_bug.cgi?id=200043

        Make iOS bots green until they can be updated.

        Unreviewed.

        * platform/ios/TestExpectations:

2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
        https://bugs.webkit.org/show_bug.cgi?id=200043

        Unreviewed.

        Addressing additional review comments.

        * fast/text/international/system-language/navigator-language/navigator-language-en-GB.html:
        * fast/text/international/system-language/navigator-language/navigator-language-en-US.html:
        * fast/text/international/system-language/navigator-language/navigator-language-en.html:
        * fast/text/international/system-language/navigator-language/navigator-language-es-419.html:
        * fast/text/international/system-language/navigator-language/navigator-language-es-ES.html:
        * fast/text/international/system-language/navigator-language/navigator-language-es-MX.html:
        * fast/text/international/system-language/navigator-language/navigator-language-es.html:
        * fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html:
        * fast/text/international/system-language/navigator-language/navigator-language-fr.html:
        * fast/text/international/system-language/navigator-language/navigator-language-hi.html:
        * fast/text/international/system-language/navigator-language/navigator-language-ja.html:
        * fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html:
        * fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html:
        * fast/text/international/system-language/navigator-language/navigator-language-ru.html:
        * fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html:
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html:
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html:
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
        * fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html:

2020-01-10  Yusuke Suzuki  <ysuzuki@apple.com>

        [WebCore] Fix crash in module loader due to change in fragment reservation
        https://bugs.webkit.org/show_bug.cgi?id=206125

        Reviewed by Dean Jackson.

        * TestExpectations:

2020-01-11  Noam Rosenthal  <noam@webkit.org>

        Support image-set() standard syntax
        https://bugs.webkit.org/show_bug.cgi?id=160934
        <rdar://problem/27891501>

        Reviewed by Dean Jackson.

        * fast/css/image-set-parsing-invalid.html:
        * fast/css/image-set-parsing.html:
                Update parsing to include raw strings
        * fast/hidpi/image-set-as-background-quotes-expected.html: Added.
        * fast/hidpi/image-set-as-background-quotes.html: Added.
                Added ref-test for image-set without url().


2020-01-09  Noam Rosenthal  <noam@webkit.org>

        Support image-set() standard syntax
        https://bugs.webkit.org/show_bug.cgi?id=160934
        <rdar://problem/27891501>

        Reviewed by Simon Fraser.


        * fast/hidpi/image-set-as-background-quotes-expected.html: Added.
        * fast/hidpi/image-set-as-background-quotes.html: Added.
                Ref-test, image with quotes should work the same as image with url()

2020-01-11  Cathie Chen  <cathiechen@igalia.com>

        Import WPT test cases for 2dcontext/imagebitmap
        https://bugs.webkit.org/show_bug.cgi?id=205908

        Reviewed by Manuel Rego Casasnovas

        Update the expected files.

        * 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-serializable-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:

2020-01-11  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] fast/text/simple-lines-float.html should be about simple line layout only
        https://bugs.webkit.org/show_bug.cgi?id=206129

        Reviewed by Zalan Bujtas.

        Explicitly disable LFC in this SLL feature test.

        * fast/text/simple-lines-float-expected.html:
        * fast/text/simple-lines-float.html:

2020-01-10  Eric Carlson  <eric.carlson@apple.com>

        [Media in GPU process] Extend the GPU process sandbox to allow access to local files when necessary
        https://bugs.webkit.org/show_bug.cgi?id=205967
        <rdar://problem/58425020>

        Reviewed by youenn fablet.

        * gpu-process/TestExpectations:

2020-01-10  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
        https://bugs.webkit.org/show_bug.cgi?id=200043

        Temporarily mark the navigator-language tests as flakey until I can figure out what to do with them.

        Unreviewed.

        * platform/mac/TestExpectations:

2020-01-10  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
        https://bugs.webkit.org/show_bug.cgi?id=200043
        <rdar://problem/44119496>

        Reviewed by Dean Jackson.

        Migrate and update tests from TestWebKitAPI to LayoutTests, to match the rest of our system language tests.

        * platform/mac/TestExpectations: Mark these tests as possibly failing on older versions of macOS.
        * fast/text/international/system-language/navigator-language/navigator-language-en-GB-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-en-GB.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-en-US.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-en.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es-419-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es-419.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es-ES.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es-MX.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-es.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-fr-CA-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-fr.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-hi.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-ja-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-ja.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-pt-PT-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-ru.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hans-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-TW-expected.txt: Added.
        * fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html: Added.
        * js/dom/navigator-language-expected.txt:

2020-01-10  John Wilander  <wilander@apple.com>

        Make http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins* use resource/util.js
        https://bugs.webkit.org/show_bug.cgi?id=206100
        <rdar://problem/58492335>

        Unreviewed test gardening.

        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
            These two tests now use setEnableFeature() in resources/util.js which makes sure 
            testRunner.setStatisticsNotifyPagesWhenDataRecordsWereScanned() is called with
            false before ending the test.

2020-01-10  Ryan Haddad  <ryanhaddad@apple.com>

        3 editing/spelling test failures on Mojave Release WK1
        https://bugs.webkit.org/show_bug.cgi?id=206071

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Update test expectations to disable failing tests.

2020-01-10  Brent Fulgham  <bfulgham@apple.com>

        [iOS] Remove used media-related mach services from the WebContent process sandbox
        https://bugs.webkit.org/show_bug.cgi?id=206089
        <rdar://problem/58489478>

        Reviewed by Per Arne Vollan.

        After conducting multiple test passes and large-scale living-on testing with telemetry, we have
        confirmed that the following XPC services are not used by the media logic in WebKit, and can be
        removed:

            com.apple.coremedia.cpeprotector.xpc
            com.apple.coremedia.figcontentkeysession.xpc
            com.apple.coremedia.routingsessionmanager.xpc
            com.apple.coremedia.sts

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-01-10  Antti Koivisto  <antti@apple.com>

        [LFC][Integration] Update style for layout boxes
        https://bugs.webkit.org/show_bug.cgi?id=206074

        Reviewed by Zalan Bujtas.

        * fast/css/simple-color-change-expected.html: Added.
        * fast/css/simple-color-change.html: Added.

2020-01-10  Brent Fulgham  <bfulgham@apple.com>

        [iOS] Remove 'com.apple.awdd' from the WebContent process sandbox
        https://bugs.webkit.org/show_bug.cgi?id=206095
        <rdar://problem/56871147>

        Reviewed by Per Arne Vollan.

        We no longer need access to 'com.apple.awdd' in the iOS WebContent sandbox. We should remove
        it from the sandbox.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-01-09  Per Arne Vollan  <pvollan@apple.com>

        Map CSS value ID to system color in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=204314

        Reviewed by Dean Jackson.

        * TestExpectations:
        * fast/css/ios: Added.
        * fast/css/ios/system-color-for-css-value-expected.txt: Added.
        * fast/css/ios/system-color-for-css-value.html: Added.
        * platform/ios/TestExpectations:

2020-01-10  Pablo Saavedra  <psaavedra@igalia.com>

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

        Unreviewed WPE and GTK+ gardening after r254357.

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

2020-01-10  Brent Fulgham  <bfulgham@apple.com>

        [iOS] Remove 'com.apple.powerlog.plxpclogger.xpc' from the WebContent process sandbox
        https://bugs.webkit.org/show_bug.cgi?id=206086
        <rdar://problem/57195681>

        Reviewed by Per Arne Vollan.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-01-10  Brent Fulgham  <bfulgham@apple.com>

        Remove 'com.apple.iohideventsystem' from the WebContent process sandbox
        https://bugs.webkit.org/show_bug.cgi?id=206085
        <rdar://problem/36085204>

        Reviewed by Alex Christensen.

        After r253357 we no longer need access to 'com.apple.iohideventsystem', and should remove it from
        the WebContent process sandbox.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-01-10  Brent Fulgham  <bfulgham@apple.com>

        [iOS] Remove 'com.apple.cookied' from the WebContent process sandbox
        https://bugs.webkit.org/show_bug.cgi?id=206083
        <rdar://problem/56963865>

        Reviewed by Per Arne Vollan.

        Telemetry and testing have confirmed that we no longer use the 'com.apple.cookied' mach connection
        in the WebContent process on iOS. We should remove this from the WebContent process sandbox

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-01-10  Brent Fulgham  <bfulgham@apple.com>

        Remove com.apple.locationd.registration from the WebContent sandbox
        https://bugs.webkit.org/show_bug.cgi?id=206021
        <rdar://problem/58451384>

        Reviewed by Per Arne Vollan.

        Now that we generate a dynamic extension for 'com.apple.locationd.registration', we should remove
        the blanket allow rule from the sandbox.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2020-01-10  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Support authenticatorGetNextAssertion
        https://bugs.webkit.org/show_bug.cgi?id=203346
        <rdar://problem/56558488>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
        * http/wpt/webauthn/resources/util.js:

2020-01-10  Brent Fulgham  <bfulgham@apple.com>

        Remove 'com.apple.nehelper' from the WebContent sandbox.
        https://bugs.webkit.org/show_bug.cgi?id=206025
        <rdar://problem/58453508>

        Reviewed by Per Arne Vollan.

        Now that we generate a dynamic extension for 'com.apple.nehelper' and 'com.apple.nesessionmanager.content-filter',
        we should remove the blanket allow rules from the sandbox.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:
        * fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/mac/sandbox-mach-lookup.html:

2020-01-10  youenn fablet  <youenn@apple.com>

        [WTR] Use short heart beat timer as a TestOption
        https://bugs.webkit.org/show_bug.cgi?id=205795

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/service-worker-spinning-activate.https.html:
        * http/wpt/service-workers/service-worker-spinning-fetch.https.html:
        * http/wpt/service-workers/service-worker-spinning-install.https.html:
        * http/wpt/service-workers/service-worker-spinning-message.https.html:

2020-01-10  Pablo Saavedra  <psaavedra@igalia.com>

        [GTK] imported/w3c/web-platform-tests/xhr/anonymous-mode-unsupported.htm is flaky
        https://bugs.webkit.org/show_bug.cgi?id=206065

        Unreviewed, mark test as flaky.

        * platform/gtk/TestExpectations:

2020-01-10  Pablo Saavedra  <psaavedra@igalia.com>

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

        Unreviewed WPE and GTK+ gardening after r254335.

        * platform/gtk/TestExpectations:

2020-01-09  Pablo Saavedra  <psaavedra@igalia.com>

        imported/w3c/web-platform-tests/xhr/event-timeout-order.any.html has been flaky since it was imported in r254154
        https://bugs.webkit.org/show_bug.cgi?id=206053

        Unreviewed, mark test as flaky.

        * TestExpectations:

2020-01-09  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win] Use ComplexTextController instead of UniscribeController
        https://bugs.webkit.org/show_bug.cgi?id=204884

        Reviewed by Brent Fulgham.

        * platform/win/TestExpectations:
        * platform/win/fast/text/justify-ideograph-complex-expected.txt: Rebaselined.
        * platform/wincairo/TestExpectations:

2020-01-09  Chris Dumez  <cdumez@apple.com>

        Block cross-site top-frame navigations from untrusted iframes
        https://bugs.webkit.org/show_bug.cgi?id=206027
        <rdar://problem/58320516>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/tests/security/block-top-level-navigations-by-third-party-iframes-expected.txt:
        * http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes-expected.txt: Added.
        * http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes.html: Added.
        * http/tests/security/resources/navigate-top-level-frame-to-failure-page-untrusted-iframe.html: Added.
        * http/tests/security/resources/navigate-top-to-error-page.js: Added.

2020-01-09  Diego Pino Garcia  <dpino@igalia.com>

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

        * platform/gtk/TestExpectations:

2020-01-09  Brent Fulgham  <bfulgham@apple.com>

        REGRESSION (r253662): Large Data URLs are not being handled properly
        https://bugs.webkit.org/show_bug.cgi?id=205979
        <rdar://problem/58346124>

        Reviewed by Youenn Fablet.

        * fast/url/data-url-large-expected.txt: Added.
        * fast/url/data-url-large.html: Added.

2020-01-09  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Add timing information to WebPageProxy::logFrameNavigation() to detect delayed client-side redirects
        https://bugs.webkit.org/show_bug.cgi?id=205522
        <rdar://problem/58125759>

        Reviewed by Chris Dumez.

        Results updated with additional data now that delayed redirects are captured.

        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt:
        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
        * http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database.html: Added.
        * http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-expected.txt: Added.
        * http/tests/resourceLoadStatistics/log-delayed-client-side-redirects.html: Added.
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:

2020-01-09  Pablo Saavedra  <psaavedra@igalia.com>

        Bad baseline for Catalina on xhr web-platform-tests imported in r254154
        https://bugs.webkit.org/show_bug.cgi?id=205991

        Unreviewed, fix some Catalina builds after r254154.

        * platform/mac-highsierra/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt.
        * platform/mac-mojave/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt.

2020-01-09  Justin Fan  <justin_fan@apple.com>

        [WebGL] Skip all webgl/2.0.0 tests, as ANGLE switch obsoletes all old expectated results
        https://bugs.webkit.org/show_bug.cgi?id=205988

        Unreviewed test gardening.

        The WebGL dedicated queue will continue to run failing tests.
        Normal bots will only enable 2.0.0 tests after development work confirms they are passing with ANGLE.

        * TestExpectations:
        * platform/mac/TestExpectations:

2020-01-09  youenn fablet  <youenn@apple.com>

        REGRESSION: [ Mac wk2 ] http/wpt/service-workers/persistent-importScripts.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205886
        <rdar://problem/58387910>

        Reviewed by Chris Dumez.

        Make sure registrations are stored on disk before crashing the network process.

        * http/wpt/service-workers/persistent-importScripts.html:
        * platform/mac-wk2/TestExpectations:

2020-01-09  Youenn Fablet  <youenn@apple.com>

        REGRESSION: [ Mac ] webrtc/video-autoplay.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205893
        <rdar://problem/58391046>

        Reviewed by Eric Carlson.

        * webrtc/video-autoplay.html:
        Speculative fix as I am not able to reproduce locally.
        Hypothesis is that removing from DOM the video element is supposed to asynchronously pause the video element.
        We should therefore ensure that the video element is paused before calling getUserMedia.

2020-01-09  Miguel Gomez  <magomez@igalia.com>

        Unreviewed WPE gardening: rebaseline several tests after r254044.

        * platform/wpe/css1/basic/containment-expected.txt:
        * platform/wpe/css1/basic/contextual_selectors-expected.txt:
        * platform/wpe/css1/basic/grouping-expected.txt:
        * platform/wpe/css1/basic/id_as_selector-expected.txt:
        * platform/wpe/css1/basic/inheritance-expected.txt:
        * platform/wpe/css1/box_properties/border-expected.txt:
        * platform/wpe/css1/box_properties/border_bottom-expected.txt:
        * platform/wpe/css1/box_properties/border_bottom_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_bottom_width-expected.txt:
        * platform/wpe/css1/box_properties/border_bottom_width_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_color-expected.txt:
        * platform/wpe/css1/box_properties/border_color_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_left-expected.txt:
        * platform/wpe/css1/box_properties/border_left_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_left_width-expected.txt:
        * platform/wpe/css1/box_properties/border_left_width_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_right-expected.txt:
        * platform/wpe/css1/box_properties/border_right_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_right_width-expected.txt:
        * platform/wpe/css1/box_properties/border_right_width_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_style-expected.txt:
        * platform/wpe/css1/box_properties/border_style_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_top-expected.txt:
        * platform/wpe/css1/box_properties/border_top_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_top_width-expected.txt:
        * platform/wpe/css1/box_properties/border_top_width_inline-expected.txt:
        * platform/wpe/css1/box_properties/border_width-expected.txt:
        * platform/wpe/css1/box_properties/border_width_inline-expected.txt:
        * platform/wpe/css1/box_properties/clear-expected.txt:
        * platform/wpe/css1/box_properties/clear_float-expected.txt:
        * platform/wpe/css1/box_properties/float-expected.txt:
        * platform/wpe/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/wpe/css1/box_properties/float_margin-expected.txt:
        * platform/wpe/css1/box_properties/height-expected.txt:
        * platform/wpe/css1/box_properties/margin-expected.txt:
        * platform/wpe/css1/box_properties/margin_bottom-expected.txt:
        * platform/wpe/css1/box_properties/margin_bottom_inline-expected.txt:
        * platform/wpe/css1/box_properties/margin_inline-expected.txt:
        * platform/wpe/css1/box_properties/margin_left-expected.txt:
        * platform/wpe/css1/box_properties/margin_left_inline-expected.txt:
        * platform/wpe/css1/box_properties/margin_right-expected.txt:
        * platform/wpe/css1/box_properties/margin_right_inline-expected.txt:
        * platform/wpe/css1/box_properties/margin_top-expected.txt:
        * platform/wpe/css1/box_properties/margin_top_inline-expected.txt:
        * platform/wpe/css1/box_properties/padding-expected.txt:
        * platform/wpe/css1/box_properties/padding_bottom-expected.txt:
        * platform/wpe/css1/box_properties/padding_bottom_inline-expected.txt:
        * platform/wpe/css1/box_properties/padding_inline-expected.txt:
        * platform/wpe/css1/box_properties/padding_left-expected.txt:
        * platform/wpe/css1/box_properties/padding_left_inline-expected.txt:
        * platform/wpe/css1/box_properties/padding_right-expected.txt:
        * platform/wpe/css1/box_properties/padding_right_inline-expected.txt:
        * platform/wpe/css1/box_properties/padding_top-expected.txt:
        * platform/wpe/css1/box_properties/padding_top_inline-expected.txt:
        * platform/wpe/css1/box_properties/width-expected.txt:
        * platform/wpe/css1/cascade/cascade_order-expected.txt:
        * platform/wpe/css1/cascade/important-expected.txt:
        * platform/wpe/css1/classification/display-expected.txt:
        * platform/wpe/css1/classification/list_style-expected.txt:
        * platform/wpe/css1/classification/list_style_image-expected.txt:
        * platform/wpe/css1/classification/list_style_position-expected.txt:
        * platform/wpe/css1/classification/list_style_type-expected.txt:
        * platform/wpe/css1/classification/white_space-expected.txt:
        * platform/wpe/css1/color_and_background/background-expected.txt:
        * platform/wpe/css1/color_and_background/background_attachment-expected.txt:
        * platform/wpe/css1/color_and_background/background_color-expected.txt:
        * platform/wpe/css1/color_and_background/background_image-expected.txt:
        * platform/wpe/css1/color_and_background/background_position-expected.txt:
        * platform/wpe/css1/color_and_background/background_repeat-expected.txt:
        * platform/wpe/css1/color_and_background/color-expected.txt:
        * platform/wpe/css1/conformance/forward_compatible_parsing-expected.txt:
        * platform/wpe/css1/font_properties/font-expected.txt:
        * platform/wpe/css1/font_properties/font_family-expected.txt:
        * platform/wpe/css1/font_properties/font_size-expected.txt:
        * platform/wpe/css1/font_properties/font_style-expected.txt:
        * platform/wpe/css1/font_properties/font_variant-expected.txt:
        * platform/wpe/css1/font_properties/font_weight-expected.txt:
        * platform/wpe/css1/formatting_model/canvas-expected.txt:
        * platform/wpe/css1/formatting_model/floating_elements-expected.txt:
        * platform/wpe/css1/formatting_model/height_of_lines-expected.txt:
        * platform/wpe/css1/formatting_model/inline_elements-expected.txt:
        * platform/wpe/css1/formatting_model/replaced_elements-expected.txt:
        * platform/wpe/css1/formatting_model/vertical_formatting-expected.txt:
        * platform/wpe/css1/pseudo/anchor-expected.txt:
        * platform/wpe/css1/pseudo/firstletter-expected.txt:
        * platform/wpe/css1/pseudo/firstline-expected.txt:
        * platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/wpe/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
        * platform/wpe/css1/text_properties/letter_spacing-expected.txt:
        * platform/wpe/css1/text_properties/line_height-expected.txt:
        * platform/wpe/css1/text_properties/text_align-expected.txt:
        * platform/wpe/css1/text_properties/text_decoration-expected.txt:
        * platform/wpe/css1/text_properties/text_indent-expected.txt:
        * platform/wpe/css1/text_properties/text_transform-expected.txt:
        * platform/wpe/css1/text_properties/vertical_align-expected.txt:
        * platform/wpe/css1/text_properties/word_spacing-expected.txt:
        * platform/wpe/css1/units/color_units-expected.txt:
        * platform/wpe/css1/units/length_units-expected.txt:
        * platform/wpe/css1/units/percentage_units-expected.txt:
        * platform/wpe/css1/units/urls-expected.txt:
        * platform/wpe/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
        * platform/wpe/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
        * platform/wpe/fast/css/empty-pseudo-class-expected.txt:
        * platform/wpe/fast/css/first-child-pseudo-class-expected.txt:
        * platform/wpe/fast/css/last-child-pseudo-class-expected.txt:
        * platform/wpe/fast/css/only-child-pseudo-class-expected.txt:
        * platform/wpe/fast/frames/onlyCommentInIFrame-expected.txt:
        * platform/wpe/fast/html/listing-expected.txt:
        * platform/wpe/fast/invalid/junk-data-expected.txt:
        * platform/wpe/fast/invalid/missing-end-tag-expected.txt:
        * platform/wpe/fast/parser/xhtml-alternate-entities-expected.txt:
        * platform/wpe/fast/table/border-collapsing/004-expected.txt:
        * platform/wpe/fast/table/border-collapsing/004-vertical-expected.txt:
        * platform/wpe/fast/xsl/xslt-extra-content-at-end-expected.txt:
        * platform/wpe/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
        * platform/wpe/svg/custom/bug45331-expected.txt:
        * platform/wpe/svg/custom/junk-data-expected.txt:
        * platform/wpe/svg/custom/missing-xlink-expected.txt:
        * platform/wpe/svg/custom/path-bad-data-expected.txt:
        * platform/wpe/svg/custom/use-font-face-crash-expected.txt:
        * platform/wpe/svg/hixie/error/012-expected.txt:
        * platform/wpe/tables/mozilla/bugs/45621-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug139524-2-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:

2020-01-09  youenn fablet  <youenn@apple.com>

        RemoteVideoSample should be able to support canvas video samples
        https://bugs.webkit.org/show_bug.cgi?id=205922

        Reviewed by Eric Carlson.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
        Remove no longer valid comment and beef up test in case of assertion failure.

2020-01-08  Diego Pino Garcia  <dpino@igalia.com>

        Fix test transferToImageBitmap-empty.html after r253099
        https://bugs.webkit.org/show_bug.cgi?id=205924

        Reviewed by Žan Doberšek.

        * http/wpt/offscreen-canvas/transferToImageBitmap-empty.html:

2020-01-08  Keith Miller  <keith_miller@apple.com>

        [JSC] Introduce JSArrayIterator
        https://bugs.webkit.org/show_bug.cgi?id=204043

        Reviewed by Yusuke Suzuki.

        Change the labels of iteration kinds to match what JS refers to them as.

        * inspector/model/remote-object/iterator-expected.txt:
        * inspector/model/remote-object/iterator-large-expected.txt:
        * inspector/model/remote-object/iterators-mutated-expected.txt:

2020-01-08  Ryan Haddad  <ryanhaddad@apple.com>

        few web-platform-tests are failing on iOS
        https://bugs.webkit.org/show_bug.cgi?id=205927

        Unreviewed test gardening.

        * platform/ios-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/xhr/event-timeout-order.any-expected.txt: Added.

2020-01-08  Myles C. Maxfield  <mmaxfield@apple.com>

        Fix specification violation in Font Loading API
        https://bugs.webkit.org/show_bug.cgi?id=205901
        <rdar://problem/58083743>

        Reviewed by Brent Fulgham.

        Test all the entry points to the CSS Font Loading API that accept CSS keywords.

        * fast/text/font-loading-global-keyword-expected.txt: Added.
        * fast/text/font-loading-global-keyword.html: Added.

2020-01-08  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Unreviewed, update test expectations
        https://bugs.webkit.org/show_bug.cgi?id=205931

        * platform/gtk/TestExpectations:

2020-01-08  Diego Pino Garcia  <dpino@igalia.com>

        [GTK][WPE] Unreviewed gardening for unexpected passes
        https://bugs.webkit.org/show_bug.cgi?id=205854

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

2020-01-08  Antoine Quint  <graouts@apple.com>

        [Web Animations] Stop creating CSS Animations for <noscript> elements
        https://bugs.webkit.org/show_bug.cgi?id=205925
        <rdar://problem/58158479>

        Reviewed by Antti Koivisto.

        Add a new test that checks that setting the `animation` property on a <noscript> element does not yield the creation of a CSSAnimation object.

        * webanimations/no-css-animation-on-noscript-expected.txt: Added.
        * webanimations/no-css-animation-on-noscript.html: Added.

2020-01-08  youenn fablet  <youenn@apple.com>

        Implement MediaRecorder backend in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=205802

        Reviewed by Eric Carlson.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
        Do not use GPUProcess for this test until canvas buffers are IOSurfaces.

2020-01-08  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CSS Font Loading] Import css-font-loading WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=205863

        Reviewed by Manuel Rego Casasnovas.

        Tests failing:

        - https://webkit.org/b/184138 imported/w3c/web-platform-tests/css/css-font-loading/fontfacesetloadevent-constructor.html
        - https://webkit.org/b/184138 imported/w3c/web-platform-tests/css/css-font-loading/idlharness.https.html
        - https://webkit.org/b/205864 imported/w3c/web-platform-tests/css/css-font-loading/font-face-reject.html

        * TestExpectations:

2020-01-08  Fujii Hironori  <Hironori.Fujii@sony.com>

        [HarfBuzz][GTK] fast/text/complex-first-glyph-with-initial-advance.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=118221

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations: Unmarked
        fast/text/complex-first-glyph-with-initial-advance.html and
        fast/text/initial-advance-in-intermediate-run-complex.html.
        * platform/wincairo/TestExpectations: Unmarked
        fast/text/complex-first-glyph-with-initial-advance.html and
        fast/text/complex-initial-advance.html.

2020-01-07  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Implement css3-images image-orientation
        https://bugs.webkit.org/show_bug.cgi?id=89052

        Reviewed by Simon Fraser.

        Test the css image-orientation property.

        * fast/images/image-orientation-dynamic-from-image-expected.html: Added.
        * fast/images/image-orientation-dynamic-from-image.html: Added.
        * fast/images/image-orientation-dynamic-none-expected.html: Added.
        * fast/images/image-orientation-dynamic-none.html: Added.
        * fast/images/image-orientation-none-expected.html: Added.
        * fast/images/image-orientation-none.html: Added.

2020-01-07  Fujii Hironori  <fujii.hironori@gmail.com>

        [GTK] fast/text/atsui-rtl-override-selection.html is failing since r254114
        https://bugs.webkit.org/show_bug.cgi?id=205898

        Unreviewed test gardening.

        * platform/gtk/fast/text/atsui-rtl-override-selection-expected.png:
        * platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt:

2020-01-07  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for GTK port after r252598.

        * platform/gtk/compositing/images/direct-image-background-color-expected.txt:
        * platform/gtk/compositing/webgl/webgl-background-color-expected.txt:
        * platform/gtk/fast/backgrounds/background-leakage-expected.txt:
        * platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt:
        * platform/gtk/fast/block/float/intruding-painted-twice-expected.txt:
        * platform/gtk/fast/borders/mixed-border-styles-expected.txt:
        * platform/gtk/fast/borders/mixed-border-styles-radius-expected.txt:
        * platform/gtk/fast/borders/mixed-border-styles-radius2-expected.txt:
        * platform/gtk/fast/box-shadow/inset-box-shadow-radius-expected.txt:
        * platform/gtk/fast/css/percentage-non-integer-expected.txt:
        * platform/gtk/fast/css/shadow-multiple-expected.txt:
        * platform/gtk/fast/css/viewport-units-dynamic-expected.txt:
        * platform/gtk/fast/multicol/client-rects-expected.txt:
        * platform/gtk/fast/multicol/client-rects-spanners-complex-expected.txt:
        * platform/gtk/fast/multicol/client-rects-spanners-expected.txt:
        * platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt:
        * platform/gtk/fast/overflow/float-in-relpositioned-expected.txt:
        * platform/gtk/fast/ruby/select-ruby-expected.txt:
        * platform/gtk/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
        * platform/gtk/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
        * platform/gtk/fast/text/shadow-no-blur-expected.txt:
        * platform/gtk/fast/text/shadow-translucent-fill-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
        * platform/gtk/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:

2020-01-07  Chris Dumez  <cdumez@apple.com>

        Remove document.origin
        https://bugs.webkit.org/show_bug.cgi?id=205681

        Reviewed by Geoffrey Garen.

        * fast/dom/Document/document-constructor-expected.txt:
        * fast/dom/Document/document-constructor.html:
        * fast/dom/domparser-parsefromstring-origin-expected.txt:
        * fast/dom/domparser-parsefromstring-origin.html:

2020-01-07  Chris Dumez  <cdumez@apple.com>

        Using Web Share API preceded by an AJAX call
        https://bugs.webkit.org/show_bug.cgi?id=197779
        <rdar://problem/50708309>

        Reviewed by Dean Jackson.

        Add layout test coverage.

        * fast/web-share/share-transient-activation-expected.txt: Added.
        * fast/web-share/share-transient-activation-expired-expected.txt: Added.
        * fast/web-share/share-transient-activation-expired.html: Added.
        * fast/web-share/share-transient-activation.html: Added.

2020-01-07  Daniel Bates  <dabates@apple.com>

        Fix up layout tests results following r254160
        <rdar://problem/58383099>

        Revert some results back to pre-r254091. These results were changed because I made
        an accident (corrected in r254160) that made me mistakenly think the new results
        were legitimate. They weren't.

        * fast/dom/Range/getClientRects-expected.txt:
        * fast/dom/Range/getClientRects.html:
        * fast/repaint/text-selection-overflow-hidden-expected.txt:

2020-01-07  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac wk2 ] http/wpt/service-workers/persistent-importScripts.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205886

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-07  Pablo Saavedra  <psaavedra@igalia.com>

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

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
        * platform/mac-wk1/TestExpectations:
        * tests-options.json:

2020-01-07  Simon Fraser  <simon.fraser@apple.com>

        WebKit rejects changes between similar unprefixed & prefixed gradient syntax
        https://bugs.webkit.org/show_bug.cgi?id=171015

        Reviewed by Dean Jackson.

        * fast/css/gradient-prefixed-unprefixed-toggle-expected.html: Added.
        * fast/css/gradient-prefixed-unprefixed-toggle.html: Added.

2020-01-07  Alexey Proskuryakov  <ap@apple.com>

        Mark webexposed/css-properties-behind-flags.html as flaky
        https://bugs.webkit.org/show_bug.cgi?id=197204

        * platform/mac/TestExpectations:

2020-01-07  Antoine Quint  <graouts@apple.com>

        transitions/default-timing-function.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205804
        <rdar://problem/58343509>

        Reviewed by Simon Fraser.

        To pause a Web Animation at a given time, we need to call `pause()` first and set `currentTime` after. Otherwise, the animation's hold
        time will not be set to the provided value and the time may progress between the moment pause() was called and the moment the pending
        pause task it creates is performed.
        
        The reason the behavior changed for this test is because in r254042 we added a call to updateRendering() which updates the timeline time
        which otherwise wouldn't have been updated.

        * animations/resources/animation-test-helpers.js:
        * transitions/resources/transition-test-helpers.js:

2020-01-07  Devin Rousso  <drousso@apple.com>

        REGRESSION: [ Mac Debug ] inspector/page/setBootstrapScript-main-frame.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205807
        <rdar://problem/58344669>

        Reviewed by Dean Jackson.

        * inspector/page/setBootstrapScript-main-frame.html:
        In addition to waiting for `Page.reload`, we should also wait for the page to actually load.
        Set the content of the bootstrap script during its creation instead of as a two step process.
        Avoid an assertion by setting the enabled state after the bootstrap script is initalized.

        * platform/mac/TestExpectations:
        Remove expectation added in r254059.

2020-01-07  Truitt Savell  <tsavell@apple.com>

        Correct some conflicting expectations for fast/text/emoji-gender- tests
        https://bugs.webkit.org/show_bug.cgi?id=204820

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-07  Truitt Savell  <tsavell@apple.com>

        Correct expectations made in r254134, r254135, and r254136
        https://bugs.webkit.org/show_bug.cgi?id=205862
        https://bugs.webkit.org/show_bug.cgi?id=205865
        https://bugs.webkit.org/show_bug.cgi?id=205867

        Unreviewed test gardneing.

        * platform/mac/TestExpectations:

2020-01-07  Commit Queue  <commit-queue@webkit.org>

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

        It is breaking WinCairo build and internal builds. (Requested
        by youenn on #webkit).

        Reverted changeset:

        "Implement MediaRecorder backend in GPUProcess"
        https://bugs.webkit.org/show_bug.cgi?id=205802
        https://trac.webkit.org/changeset/254132

2020-01-07  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mojave+ wk2 ] webgpu/draw-indexed-triangles.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205867

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-07  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mojave+ wk2 ] webgpu/whlsl/ensure-proper-variable-lifetime-2.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205865

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-07  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mojave+ wk2 ] webgpu/whlsl/while-loop-break.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205862

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-07  Pablo Saavedra  <psaavedra@igalia.com>

        Re-sync web-platform-tests/content-security-policy from upstream
        https://bugs.webkit.org/show_bug.cgi?id=205639

        Reviewed by Carlos Alberto Lopez Perez.

        * platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
        * tests-options.json:

2020-01-07  youenn fablet  <youenn@apple.com>

        Implement MediaRecorder backend in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=205802

        Reviewed by Eric Carlson.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
        Do not use GPUProcess for this test until canvas buffers are IOSurfaces.

2020-01-07  Charlie Turner  <mail@charles.plus>

        [GTK][EME] ClearKey encrypted media gardening
        https://bugs.webkit.org/show_bug.cgi?id=205857

        Unreviewed gardening.

        * platform/gtk/TestExpectations: Skip
        mock-MediaKeySession-{generateRequest,remove}.html and update some
        no longer timing out test-cases.

2020-01-07  youenn fablet  <youenn@apple.com>

        Add an option to make video capture in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=205853

        Reviewed by Eric Carlson.

        * fast/mediastream/captureInGPUProcess-expected.txt: Renamed from LayoutTests/fast/mediastream/captureAudioInGPUProcess-expected.txt.
        * fast/mediastream/captureInGPUProcess.html: Renamed from LayoutTests/fast/mediastream/captureAudioInGPUProcess.html.

2020-01-07  Alexey Shvayka  <shvaikalesh@gmail.com>

        Re-sync web-platform-tests/css/cssom-view from upstream
        https://bugs.webkit.org/show_bug.cgi?id=204649

        Reviewed by Chris Dumez.

        Re-sync web-platform-tests/css/cssom-view from upstream 106e0bdf02a1.

        * TestExpectations:
        * tests-options.json:

2020-01-07  Per Arne Vollan  <pvollan@apple.com>

        Layout Test storage/indexeddb/IDBTransaction-page-cache.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=205856

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2020-01-07  Per Arne Vollan  <pvollan@apple.com>

        Layout Test http/wpt/css/css-highlight-api/highlight-text-across-elements.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205855

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2020-01-06  Fujii Hironori  <Hironori.Fujii@sony.com>

        ComplexTextController::offsetForPosition returns a wrong offset for a glyph boundary in a RTL text
        https://bugs.webkit.org/show_bug.cgi?id=205486

        Reviewed by Ross Kirsling.

        * fast/dom/Document/CaretRangeFromPoint/rtl-expected.txt: Added.
        * fast/dom/Document/CaretRangeFromPoint/rtl.html: Added.
        * platform/gtk/TestExpectations: Unmarked imported/blink/editing/selection/offset-from-point-complex-scripts.html.

2020-01-06  Yury Semikhatsky  <yurys@chromium.org>

        REGRESSION: [ Mac wk2 ] http/tests/inspector/target/provisional-load-cancels-previous-load.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205473
        <rdar://problem/58093690>

        Reviewed by Brian Burg.

        Keep provisional page paused until second navigation replaces it and also
        defer output until test page is fully initialized after navigation.

        * http/tests/inspector/target/provisional-load-cancels-previous-load.html:

2020-01-06  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port after r253326 and r250849.

        * platform/wincairo/fast/css/invalidation-errors-2-expected.txt:
        * platform/wincairo/fast/css/invalidation-errors-expected.txt:
        * platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:

2020-01-06  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port after r252598.

        * platform/wincairo/fast/box-shadow/inset-box-shadow-radius-expected.txt:
        * platform/wincairo/fast/css/hsl-color-expected.txt:
        * platform/wincairo/fast/css/hsla-color-expected.txt:
        * platform/wincairo/fast/css/percentage-non-integer-expected.txt:
        * platform/wincairo/fast/css/shadow-multiple-expected.txt:
        * platform/wincairo/fast/css/viewport-units-dynamic-expected.txt:

2020-01-06  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port after r254044.

        * platform/wincairo/css1/basic/containment-expected.txt:
        * platform/wincairo/css1/basic/contextual_selectors-expected.txt:
        * platform/wincairo/css1/basic/grouping-expected.txt:
        * platform/wincairo/css1/basic/id_as_selector-expected.txt:
        * platform/wincairo/css1/basic/inheritance-expected.txt:
        * platform/wincairo/css1/box_properties/border-expected.txt:
        * platform/wincairo/css1/box_properties/border_bottom-expected.txt:
        * platform/wincairo/css1/box_properties/border_bottom_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_bottom_width-expected.txt:
        * platform/wincairo/css1/box_properties/border_bottom_width_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_color-expected.txt:
        * platform/wincairo/css1/box_properties/border_color_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_left-expected.txt:
        * platform/wincairo/css1/box_properties/border_left_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_left_width-expected.txt:
        * platform/wincairo/css1/box_properties/border_left_width_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_right-expected.txt:
        * platform/wincairo/css1/box_properties/border_right_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_right_width-expected.txt:
        * platform/wincairo/css1/box_properties/border_right_width_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_style-expected.txt:
        * platform/wincairo/css1/box_properties/border_style_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_top-expected.txt:
        * platform/wincairo/css1/box_properties/border_top_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_top_width-expected.txt:
        * platform/wincairo/css1/box_properties/border_top_width_inline-expected.txt:
        * platform/wincairo/css1/box_properties/border_width-expected.txt:
        * platform/wincairo/css1/box_properties/border_width_inline-expected.txt:
        * platform/wincairo/css1/box_properties/clear-expected.txt:
        * platform/wincairo/css1/box_properties/clear_float-expected.txt:
        * platform/wincairo/css1/box_properties/float-expected.txt:
        * platform/wincairo/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/wincairo/css1/box_properties/float_margin-expected.txt:
        * platform/wincairo/css1/box_properties/height-expected.txt:
        * platform/wincairo/css1/box_properties/margin-expected.txt:
        * platform/wincairo/css1/box_properties/margin_bottom-expected.txt:
        * platform/wincairo/css1/box_properties/margin_bottom_inline-expected.txt:
        * platform/wincairo/css1/box_properties/margin_inline-expected.txt:
        * platform/wincairo/css1/box_properties/margin_left-expected.txt:
        * platform/wincairo/css1/box_properties/margin_left_inline-expected.txt:
        * platform/wincairo/css1/box_properties/margin_right-expected.txt:
        * platform/wincairo/css1/box_properties/margin_right_inline-expected.txt:
        * platform/wincairo/css1/box_properties/margin_top-expected.txt:
        * platform/wincairo/css1/box_properties/margin_top_inline-expected.txt:
        * platform/wincairo/css1/box_properties/padding-expected.txt:
        * platform/wincairo/css1/box_properties/padding_bottom-expected.txt:
        * platform/wincairo/css1/box_properties/padding_bottom_inline-expected.txt:
        * platform/wincairo/css1/box_properties/padding_inline-expected.txt:
        * platform/wincairo/css1/box_properties/padding_left-expected.txt:
        * platform/wincairo/css1/box_properties/padding_left_inline-expected.txt:
        * platform/wincairo/css1/box_properties/padding_right-expected.txt:
        * platform/wincairo/css1/box_properties/padding_right_inline-expected.txt:
        * platform/wincairo/css1/box_properties/padding_top-expected.txt:
        * platform/wincairo/css1/box_properties/padding_top_inline-expected.txt:
        * platform/wincairo/css1/box_properties/width-expected.txt:
        * platform/wincairo/css1/cascade/cascade_order-expected.txt:
        * platform/wincairo/css1/cascade/important-expected.txt:
        * platform/wincairo/css1/classification/display-expected.txt:
        * platform/wincairo/css1/classification/list_style-expected.txt:
        * platform/wincairo/css1/classification/list_style_image-expected.txt:
        * platform/wincairo/css1/classification/list_style_position-expected.txt:
        * platform/wincairo/css1/classification/list_style_type-expected.txt:
        * platform/wincairo/css1/classification/white_space-expected.txt:
        * platform/wincairo/css1/color_and_background/background-expected.txt:
        * platform/wincairo/css1/color_and_background/background_attachment-expected.txt:
        * platform/wincairo/css1/color_and_background/background_color-expected.txt:
        * platform/wincairo/css1/color_and_background/background_image-expected.txt:
        * platform/wincairo/css1/color_and_background/background_position-expected.txt:
        * platform/wincairo/css1/color_and_background/background_repeat-expected.txt:
        * platform/wincairo/css1/color_and_background/color-expected.txt:
        * platform/wincairo/css1/conformance/forward_compatible_parsing-expected.txt:
        * platform/wincairo/css1/font_properties/font-expected.txt:
        * platform/wincairo/css1/font_properties/font_size-expected.txt:
        * platform/wincairo/css1/font_properties/font_style-expected.txt:
        * platform/wincairo/css1/font_properties/font_variant-expected.txt:
        * platform/wincairo/css1/font_properties/font_weight-expected.txt:
        * platform/wincairo/css1/formatting_model/canvas-expected.txt:
        * platform/wincairo/css1/formatting_model/floating_elements-expected.txt:
        * platform/wincairo/css1/formatting_model/height_of_lines-expected.txt:
        * platform/wincairo/css1/formatting_model/inline_elements-expected.txt:
        * platform/wincairo/css1/formatting_model/replaced_elements-expected.txt:
        * platform/wincairo/css1/formatting_model/vertical_formatting-expected.txt:
        * platform/wincairo/css1/pseudo/anchor-expected.txt:
        * platform/wincairo/css1/pseudo/firstletter-expected.txt:
        * platform/wincairo/css1/pseudo/firstline-expected.txt:
        * platform/wincairo/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/wincairo/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
        * platform/wincairo/css1/text_properties/letter_spacing-expected.txt:
        * platform/wincairo/css1/text_properties/line_height-expected.txt:
        * platform/wincairo/css1/text_properties/text_align-expected.txt:
        * platform/wincairo/css1/text_properties/text_decoration-expected.txt:
        * platform/wincairo/css1/text_properties/text_indent-expected.txt:
        * platform/wincairo/css1/text_properties/text_transform-expected.txt:
        * platform/wincairo/css1/text_properties/vertical_align-expected.txt:
        * platform/wincairo/css1/text_properties/word_spacing-expected.txt:
        * platform/wincairo/css1/units/color_units-expected.txt:
        * platform/wincairo/css1/units/length_units-expected.txt:
        * platform/wincairo/css1/units/percentage_units-expected.txt:
        * platform/wincairo/css1/units/urls-expected.txt:
        * platform/wincairo/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
        * platform/wincairo/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
        * platform/wincairo/editing/selection/designmode-no-caret-expected.txt:
        * platform/wincairo/fast/css/empty-pseudo-class-expected.txt:
        * platform/wincairo/fast/css/first-child-pseudo-class-expected.txt:
        * platform/wincairo/fast/css/last-child-pseudo-class-expected.txt:
        * platform/wincairo/fast/css/only-child-pseudo-class-expected.txt:
        * platform/wincairo/fast/html/listing-expected.txt:
        * platform/wincairo/fast/text/whitespace/024-expected.txt:
        * platform/wincairo/fast/text/whitespace/030-expected.txt:
        * platform/wincairo/fast/text/word-break-expected.txt:

2020-01-06  Daniel Bates  <dabates@apple.com>

        Precision of getClientRects(), getBoundingClientRect() differs depending whether simple line layout or line box layout is used
        https://bugs.webkit.org/show_bug.cgi?id=205563
        <rdar://problem/58165528>

        Reviewed by Zalan Bujtas.

        Update expected result now that simple line layout computes a client rect that matches
        the rect the line layout code computes.

        * fast/dom/Range/getClientRects-expected.txt:
        * fast/dom/Range/getClientRects.html:
        * fast/dom/Range/mac/getClientRects-and-getBoundingClientRect-before-and-after-selection-expected.txt:
        * fast/repaint/text-selection-overflow-hidden-expected.txt:

2020-01-06  Jack Lee  <shihchieh_lee@apple.com>

        ASSERTION FAILED: hasLayer() in RenderLayer::enclosingOverflowClipLayer
        https://bugs.webkit.org/show_bug.cgi?id=205474

        Reviewed by Simon Fraser.

        * fast/css/sticky/sticky-tablecol-crash-expected.txt: Added.
        * fast/css/sticky/sticky-tablecol-crash.html: Added.

2020-01-06  Antoine Quint  <graouts@apple.com>

        REGRESSION: [ iOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205458
        <rdar://problem/58081704>

        Reviewed by Wenson Hsieh.

        Remove the platform-specific expectation since this test now passes reliably on iOS as well.

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

2020-01-06  Chris Dumez  <cdumez@apple.com>

        Regression r254029: imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205819

        Unreviewed, rebaseline test on iOS after r254029 now that one more check is passing.

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

2020-01-06  Chris Dumez  <cdumez@apple.com>

        Regression r254029: imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205817

        Unreviewed, rebaseline test on iOS after r254029 now that more checks are passing.

        * platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:

2020-01-06  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION: [r254042] pageoverlay/overlay- tests are failing in WK1
        https://bugs.webkit.org/show_bug.cgi?id=205810

        Unreviewed test gardening. Page Overlay test in WK1 now dump one or more repaint rects after r254042.

        * platform/mac-wk1/pageoverlay/overlay-installation-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-small-frame-mouse-events-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-small-frame-paints-expected.txt:

2020-01-06  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Catalina wk1 ] editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205814

        unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2020-01-06  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac WK2 ] fast/text/international/unicode-bidi-other-neutrals.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205808

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2020-01-06  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac Debug ] inspector/page/setBootstrapScript-main-frame.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205807

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-06  Zalan Bujtas  <zalan@apple.com>

        REGRESSION: [ Mojave ]  tables/mozilla_expected_failures/bugs/bug2479-5.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205805
        <rdar://problem/58342884>

        Unreviewed.

        Rebaseline after r254044.

        * platform/mac-mojave/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:

2020-01-05  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r252724): Unable to tap on play button on google video 'See the top search trends of 2019'
        https://bugs.webkit.org/show_bug.cgi?id=205694
        <rdar://problem/58062987>

        Reviewed by Zalan Bujtas.

        * animations/z-index-in-keyframe-expected.html: Added.
        * animations/z-index-in-keyframe.html: Added.

2020-01-06  Chris Dumez  <cdumez@apple.com>

        Regression r254029: imported/w3c/web-platform-tests/html/dom/idlharness.https.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205803

        Unreviewed, rebaseline WPT test on iOS after r254029, now that more checks are passing.

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

2020-01-06  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Issue mach lookup extension to launch services daemon for Mail
        https://bugs.webkit.org/show_bug.cgi?id=205316

        Reviewed by Brent Fulgham.

        * fast/sandbox/ios/sandbox-mach-lookup-mail-expected.txt: Added.
        * fast/sandbox/ios/sandbox-mach-lookup-mail.html: Added.

2020-01-05  Zalan Bujtas  <zalan@apple.com>

        [SLL] Generate runs for preserved new lines
        https://bugs.webkit.org/show_bug.cgi?id=205762
        <rdar://problem/58311927>

        Reviewed by Antti Koivisto.

        * platform/mac/css1/basic/containment-expected.txt:
        * platform/mac/css1/basic/contextual_selectors-expected.txt:
        * platform/mac/css1/basic/grouping-expected.txt:
        * platform/mac/css1/basic/id_as_selector-expected.txt:
        * platform/mac/css1/basic/inheritance-expected.txt:
        * platform/mac/css1/box_properties/border-expected.txt:
        * platform/mac/css1/box_properties/border_bottom-expected.txt:
        * platform/mac/css1/box_properties/border_bottom_inline-expected.txt:
        * platform/mac/css1/box_properties/border_bottom_width-expected.txt:
        * platform/mac/css1/box_properties/border_bottom_width_inline-expected.txt:
        * platform/mac/css1/box_properties/border_color-expected.txt:
        * platform/mac/css1/box_properties/border_color_inline-expected.txt:
        * platform/mac/css1/box_properties/border_inline-expected.txt:
        * platform/mac/css1/box_properties/border_left-expected.txt:
        * platform/mac/css1/box_properties/border_left_inline-expected.txt:
        * platform/mac/css1/box_properties/border_left_width-expected.txt:
        * platform/mac/css1/box_properties/border_left_width_inline-expected.txt:
        * platform/mac/css1/box_properties/border_right-expected.txt:
        * platform/mac/css1/box_properties/border_right_inline-expected.txt:
        * platform/mac/css1/box_properties/border_right_width-expected.txt:
        * platform/mac/css1/box_properties/border_right_width_inline-expected.txt:
        * platform/mac/css1/box_properties/border_style-expected.txt:
        * platform/mac/css1/box_properties/border_style_inline-expected.txt:
        * platform/mac/css1/box_properties/border_top-expected.txt:
        * platform/mac/css1/box_properties/border_top_inline-expected.txt:
        * platform/mac/css1/box_properties/border_top_width-expected.txt:
        * platform/mac/css1/box_properties/border_top_width_inline-expected.txt:
        * platform/mac/css1/box_properties/border_width-expected.txt:
        * platform/mac/css1/box_properties/border_width_inline-expected.txt:
        * platform/mac/css1/box_properties/clear-expected.txt:
        * platform/mac/css1/box_properties/clear_float-expected.txt:
        * platform/mac/css1/box_properties/float-expected.txt:
        * platform/mac/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/mac/css1/box_properties/float_margin-expected.txt:
        * platform/mac/css1/box_properties/height-expected.txt:
        * platform/mac/css1/box_properties/margin-expected.txt:
        * platform/mac/css1/box_properties/margin_bottom-expected.txt:
        * platform/mac/css1/box_properties/margin_bottom_inline-expected.txt:
        * platform/mac/css1/box_properties/margin_inline-expected.txt:
        * platform/mac/css1/box_properties/margin_left-expected.txt:
        * platform/mac/css1/box_properties/margin_left_inline-expected.txt:
        * platform/mac/css1/box_properties/margin_right-expected.txt:
        * platform/mac/css1/box_properties/margin_right_inline-expected.txt:
        * platform/mac/css1/box_properties/margin_top-expected.txt:
        * platform/mac/css1/box_properties/margin_top_inline-expected.txt:
        * platform/mac/css1/box_properties/padding-expected.txt:
        * platform/mac/css1/box_properties/padding_bottom-expected.txt:
        * platform/mac/css1/box_properties/padding_bottom_inline-expected.txt:
        * platform/mac/css1/box_properties/padding_inline-expected.txt:
        * platform/mac/css1/box_properties/padding_left-expected.txt:
        * platform/mac/css1/box_properties/padding_left_inline-expected.txt:
        * platform/mac/css1/box_properties/padding_right-expected.txt:
        * platform/mac/css1/box_properties/padding_right_inline-expected.txt:
        * platform/mac/css1/box_properties/padding_top-expected.txt:
        * platform/mac/css1/box_properties/padding_top_inline-expected.txt:
        * platform/mac/css1/box_properties/width-expected.txt:
        * platform/mac/css1/cascade/cascade_order-expected.txt:
        * platform/mac/css1/cascade/important-expected.txt:
        * platform/mac/css1/classification/display-expected.txt:
        * platform/mac/css1/classification/list_style-expected.txt:
        * platform/mac/css1/classification/list_style_image-expected.txt:
        * platform/mac/css1/classification/list_style_position-expected.txt:
        * platform/mac/css1/classification/list_style_type-expected.txt:
        * platform/mac/css1/classification/white_space-expected.txt:
        * platform/mac/css1/color_and_background/background-expected.txt:
        * platform/mac/css1/color_and_background/background_attachment-expected.txt:
        * platform/mac/css1/color_and_background/background_color-expected.txt:
        * platform/mac/css1/color_and_background/background_image-expected.txt:
        * platform/mac/css1/color_and_background/background_position-expected.txt:
        * platform/mac/css1/color_and_background/background_repeat-expected.txt:
        * platform/mac/css1/color_and_background/color-expected.txt:
        * platform/mac/css1/conformance/forward_compatible_parsing-expected.txt:
        * platform/mac/css1/font_properties/font-expected.txt:
        * platform/mac/css1/font_properties/font_family-expected.txt:
        * platform/mac/css1/font_properties/font_size-expected.txt:
        * platform/mac/css1/font_properties/font_style-expected.txt:
        * platform/mac/css1/font_properties/font_variant-expected.txt:
        * platform/mac/css1/font_properties/font_weight-expected.txt:
        * platform/mac/css1/formatting_model/canvas-expected.txt:
        * platform/mac/css1/formatting_model/floating_elements-expected.txt:
        * platform/mac/css1/formatting_model/height_of_lines-expected.txt:
        * platform/mac/css1/formatting_model/inline_elements-expected.txt:
        * platform/mac/css1/formatting_model/replaced_elements-expected.txt:
        * platform/mac/css1/formatting_model/vertical_formatting-expected.txt:
        * platform/mac/css1/pseudo/anchor-expected.txt:
        * platform/mac/css1/pseudo/firstletter-expected.txt:
        * platform/mac/css1/pseudo/firstline-expected.txt:
        * platform/mac/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/mac/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
        * platform/mac/css1/text_properties/letter_spacing-expected.txt:
        * platform/mac/css1/text_properties/line_height-expected.txt:
        * platform/mac/css1/text_properties/text_align-expected.txt:
        * platform/mac/css1/text_properties/text_decoration-expected.txt:
        * platform/mac/css1/text_properties/text_indent-expected.txt:
        * platform/mac/css1/text_properties/text_transform-expected.txt:
        * platform/mac/css1/text_properties/vertical_align-expected.txt:
        * platform/mac/css1/text_properties/word_spacing-expected.txt:
        * platform/mac/css1/units/color_units-expected.txt:
        * platform/mac/css1/units/length_units-expected.txt:
        * platform/mac/css1/units/percentage_units-expected.txt:
        * platform/mac/css1/units/urls-expected.txt:
        * platform/mac/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
        * platform/mac/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
        * platform/mac/fast/css/empty-pseudo-class-expected.txt:
        * platform/mac/fast/css/first-child-pseudo-class-expected.txt:
        * platform/mac/fast/css/last-child-pseudo-class-expected.txt:
        * platform/mac/fast/css/only-child-pseudo-class-expected.txt:
        * platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
        * platform/mac/fast/html/listing-expected.txt:
        * platform/mac/fast/invalid/junk-data-expected.txt:
        * platform/mac/fast/invalid/missing-end-tag-expected.txt:
        * platform/mac/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
        * platform/mac/fast/parser/xhtml-alternate-entities-expected.txt:
        * platform/mac/fast/table/border-collapsing/004-expected.txt:
        * platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
        * platform/mac/fast/text/whitespace/001-expected.txt:
        * platform/mac/fast/text/whitespace/013-expected.txt:
        * platform/mac/fast/text/whitespace/014-expected.txt:
        * platform/mac/fast/text/whitespace/022-expected.txt:
        * platform/mac/fast/text/whitespace/023-expected.txt: Added.
        * platform/mac/fast/text/whitespace/024-expected.txt:
        * platform/mac/fast/text/whitespace/030-expected.txt:
        * platform/mac/fast/text/word-break-expected.txt:
        * platform/mac/fast/xsl/xslt-extra-content-at-end-expected.txt:
        * platform/mac/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
        * platform/mac/svg/custom/bug45331-expected.txt:
        * platform/mac/svg/custom/junk-data-expected.txt:
        * platform/mac/svg/custom/missing-xlink-expected.txt:
        * platform/mac/svg/custom/path-bad-data-expected.txt:
        * platform/mac/svg/custom/use-font-face-crash-expected.txt:
        * platform/mac/svg/hixie/error/012-expected.txt:
        * platform/mac/tables/mozilla/bugs/45621-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug157890-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:

2020-01-05  Rob Buis  <rbuis@igalia.com>

        Tighten up stylesheet loading
        https://bugs.webkit.org/show_bug.cgi?id=189913

        Reviewed by Antti Koivisto.

        Adjust test to new behavior.

        * http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet-expected.txt:
        * http/tests/security/mixedContent/resources/frame-with-insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:

2020-01-05  Ross Kirsling  <ross.kirsling@sony.com>

        JavaScript: Invalid date parse for ISO 8601 strings when no timezone given
        https://bugs.webkit.org/show_bug.cgi?id=89071

        Reviewed by Darin Adler.

        * js/date-parse-test-expected.txt:
        * js/script-tests/date-parse-test.js:
        Update test to match new behavior.

        * storage/indexeddb/modern/resources/date-basic.js:
        * storage/indexeddb/modern/resources/get-keyrange.js:
        * storage/indexeddb/modern/resources/idbobjectstore-delete-1.js:
        Fix tests relying on obsolete behavior.

2020-01-04  Dean Jackson  <dino@apple.com>

        REGRESSION: [ Mac ] webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205756
        <rdar://problem/58309241>

        Marking this as Pass Failure.

        * platform/mac/TestExpectations:

2020-01-03  Rob Buis  <rbuis@igalia.com>

        Make text track loading set same-origin fallback flag
        https://bugs.webkit.org/show_bug.cgi?id=205744

        Reviewed by Darin Adler.

        Adjusts test to same-origin fallback behavior for text track
        loading by using CORS.

        * http/tests/security/contentSecurityPolicy/resources/track.php: Added.
        * http/tests/security/contentSecurityPolicy/track-redirect-allowed.html:
        * http/tests/security/contentSecurityPolicy/track-redirect-allowed2.html:
        * http/tests/security/contentSecurityPolicy/track-redirect-blocked.html:
        * http/tests/security/text-track-crossorigin-expected.txt:
        * http/tests/security/text-track-crossorigin.html:

2020-01-03  Chris Dumez  <cdumez@apple.com>

        Add support for DragEvent
        https://bugs.webkit.org/show_bug.cgi?id=205758

        Reviewed by Darin Adler.

        Extend test coverage.

        * editing/pasteboard/can-read-in-dragstart-event-expected.txt:
        * editing/pasteboard/can-read-in-dragstart-event.html:
        * editing/pasteboard/data-transfer-is-unique-for-dragenter-and-dragleave-expected.txt:
        * editing/pasteboard/data-transfer-is-unique-for-dragenter-and-dragleave.html:
        * fast/events/constructors/mouse-event-constructor-expected.txt:
        * fast/events/constructors/mouse-event-constructor.html:
        * fast/events/init-events-expected.txt:
        * fast/events/init-events.html:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:

2020-01-03  Chris Dumez  <cdumez@apple.com>

        dom/nodes/Document-createElement-namespace.html WPT test is failing
        https://bugs.webkit.org/show_bug.cgi?id=205748

        Reviewed by Sam Weinig.

        Unskip test as it does not appear to be flaky locally.

        * TestExpectations:

2020-01-03  Truitt Savell  <tsavell@apple.com>

        REGRESSION: [ Mac ] webgl/1.0.3/conformance/textures/texture-upload-size.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=205757

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2020-01-03  Peng Liu  <peng.liu6@apple.com>

        Update the RemoteMediaPlayerManagerProxy::Load XPC message to provide the updated RemoteMediaPlayerConfiguration to the web process
        https://bugs.webkit.org/show_bug.cgi?id=205740

        Reviewed by Eric Carlson.

        * gpu-process/TestExpectations:

2020-01-03  Dean Jackson  <dino@apple.com>

        [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
        https://bugs.webkit.org/show_bug.cgi?id=205483
        <rdar://problem/58097701>

        Reverting this from trunk (was r253926) due to the number of
        flakey tests and failures.

        * fast/canvas/webgl/array-bounds-clamping-expected.txt:
        * fast/canvas/webgl/array-bounds-clamping.html:
        * fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt:
        * fast/canvas/webgl/draw-elements-out-of-bounds-uint-index-expected.txt:
        * fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt:
        * fast/canvas/webgl/oes-texture-half-float-uint16-expected.txt: Removed.
        * fast/canvas/webgl/oes-texture-half-float-uint16.html: Removed.
        * fast/canvas/webgl/readPixels-float-expected.txt:
        * fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies-expected.txt:
        * fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html:
        * fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt:
        * fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt:
        * fast/canvas/webgl/webgl-drawarrays-crash-expected.txt:
        * fast/canvas/webgl/webgl2-texture-upload-enums-expected.txt:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * webgl/1.0.3/conformance/context/context-lost-restored-expected.txt:
        * webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt:
        * webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt:
        * webgl/1.0.3/conformance/glsl/misc/shader-struct-scope-expected.txt:
        * webgl/1.0.3/conformance/glsl/misc/shader-with-reserved-words-expected.txt:
        * webgl/1.0.3/conformance/glsl/misc/shaders-with-invariance-expected.txt:
        * webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt:
        * webgl/1.0.3/conformance/misc/webgl-specific-expected.txt:
        * webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt:
        * webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt:
        * webgl/2.0.0/conformance/context/context-lost-restored-expected.txt:
        * webgl/2.0.0/conformance/extensions/ext-sRGB-expected.txt:
        * webgl/2.0.0/conformance/extensions/oes-texture-float-expected.txt:
        * webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt:
        * webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt:
        * webgl/2.0.0/conformance/extensions/webgl-depth-texture-expected.txt:
        * webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/shader-struct-scope-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt:
        * webgl/2.0.0/conformance/limits/gl-line-width-expected.txt:
        * webgl/2.0.0/conformance/misc/webgl-specific-expected.txt:
        * webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002-expected.txt:
        * webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003-expected.txt:
        * webgl/2.0.0/conformance/reading/read-pixels-test-expected.txt:
        * webgl/2.0.0/conformance/rendering/point-no-attributes-expected.txt:
        * webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo-expected.txt:
        * webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops-expected.txt:
        * webgl/2.0.0/conformance2/buffers/get-buffer-sub-data-expected.txt:
        * webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer-expected.txt:
        * webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed-expected.txt:
        * webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt:
        * webgl/2.0.0/conformance2/extensions/promoted-extensions-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
        * webgl/2.0.0/conformance2/rendering/attrib-type-match-expected.txt:
        * webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt:
        * webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
        * webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt:
        * webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer-expected.txt:
        * webgl/2.0.0/conformance2/rendering/clipping-wide-points-expected.txt:
        * webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt:
        * webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type-expected.txt:
        * webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt:
        * webgl/2.0.0/conformance2/rendering/instanced-rendering-bug-expected.txt:
        * webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop-expected.txt:
        * webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt:
        * webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:

2020-01-03  Wenson Hsieh  <wenson_hsieh@apple.com>

        highlight/highlight-world-leak.html frequently times out
        https://bugs.webkit.org/show_bug.cgi?id=205643
        <rdar://problem/58263350>

        Reviewed by Megan Gardner.

        The main logic in this test is executed inside a load event handler to a subframe, which is set in a script
        element. However, in the case where the subframe finishes loading before we execute the inline script, the test
        will never run, since the load event handler won't be called again.

        Fix this by waiting for the load event of the page instead.

        * highlight/highlight-world-leak.html:

2020-01-03  youenn fablet  <youenn@apple.com>

        REGRESSION: [iOS 13] webrtc/datachannel/mdns-ice-candidates.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=201900
        <rdar://problem/55466061>

        Reviewed by Eric Carlson.

        * platform/ios/TestExpectations:
        Reenable test.

2020-01-03  youenn fablet  <youenn@apple.com>

        NetworkResourceLoader::didFinishWithRedirectResponse should not assume the load is coming from network
        https://bugs.webkit.org/show_bug.cgi?id=205715

        Reviewed by Alex Christensen.

        * http/wpt/prefetch/link-prefetch-main-resource-redirect.html:

2020-01-03  Cathie Chen  <cathiechen@igalia.com>

        Import WPT test cases for apect-ratio generated from attribute width and height
        https://bugs.webkit.org/show_bug.cgi?id=205678

        Reviewed by Manuel Rego Casasnovas

        video-aspect-ratio.html passes the test after importing web-platform-tests/media/

        * TestExpectations:

2020-01-02  Chris Dumez  <cdumez@apple.com>

        XMLSerializer doesn't correctly encode entities in <style> element
        https://bugs.webkit.org/show_bug.cgi?id=205635

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/dom/xmlserializer-ampersand-in-style-expected.txt: Added.
        * fast/dom/xmlserializer-ampersand-in-style.html: Added.

2020-01-02  Andy Estes  <aestes@apple.com>

        [Payment Request] Perform payment method data IDL conversion in the PaymentRequest constructor
        https://bugs.webkit.org/show_bug.cgi?id=199225
        <rdar://problem/52217847>

        Reviewed by Darin Adler.

        * http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
        * http/tests/ssl/applepay/PaymentRequest.https.html: Changed some tests to expect exceptions
        from the constructor rather than promise rejections after calling show(). Removed a bogus
        test for applicationData. Cleaned up numerous tests by moving setup code to the correct
        location.

2020-01-02  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed test gardening for iPad

        * platform/ipad/TestExpectations:

        Skip this layout test on iPad, where the zoom scale is not expected to change after focusing a text field.

2020-01-01  youenn fablet  <youenn@apple.com>

        Implement transceiver setCodecPreferences
        https://bugs.webkit.org/show_bug.cgi?id=190840
        <rdar://problem/45496326>

        Reviewed by Eric Carlson.

        * webrtc/video-mute-vp8.html:

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

        Add remote media resource loader for the GPU process
        https://bugs.webkit.org/show_bug.cgi?id=205379

        Reviewed by Youenn Fablet.

        * gpu-process/TestExpectations:
        * media/audio-play-expected.txt: Added.
        * media/audio-play-with-video-element-expected.txt: Added.
        * media/audio-play-with-video-element.html: Added.
        * media/audio-play.html: Added.

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

        Implement RTC VTB decoders in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=205607

        Reviewed by Eric Carlson.

        * webrtc/video-gpuProcess-expected.txt: Added.
        * webrtc/video-gpuProcess.html: Added.

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

        Ignore URL host for schemes that are not using host information
        https://bugs.webkit.org/show_bug.cgi?id=205157

        Reviewed by Darin Adler.

        * http/tests/local/file-url-host-expected.txt: Added.
        * http/tests/local/file-url-host.html: Added.
        * http/tests/security/about-url-host-expected.txt: Added.
        * http/tests/security/about-url-host.html: Added.
        * http/tests/security/data-url-host-expected.txt: Added.
        * http/tests/security/data-url-host.html: Added.
        * http/tests/security/javascript-url-host-expected.txt: Added.
        * http/tests/security/javascript-url-host.html: Added.

2019-12-27  Dean Jackson  <dino@apple.com>

        [WebGL] Add a pure virtual base class for GraphicsContext3D
        https://bugs.webkit.org/show_bug.cgi?id=205604

        Reviewed by Sam Weinig.

        Remove a test that has existing coverage in the WebGL test suite.

        * fast/canvas/webgl/framebuffer-object-attachment-expected.txt: Removed.
        * fast/canvas/webgl/framebuffer-object-attachment.html: Removed.

2019-12-25  Dean Jackson  <dino@apple.com>

        [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
        https://bugs.webkit.org/show_bug.cgi?id=205483
        rdar://56925821

        Reviewed by Simon Fraser.

        Remove some tests that are better covered in the official test
        suite which we already have in the repository.

        Rebaseline a bunch of tests which we now pass. Yay!

        Rebaseline a small number of regressions, which will be fixed
        in a follow-up.

        * fast/canvas/webgl/angle-instanced-arrays-expected.txt: Removed.
        * fast/canvas/webgl/angle-instanced-arrays-out-of-bounds-expected.txt: Removed.
        * fast/canvas/webgl/angle-instanced-arrays-out-of-bounds.html: Removed.
        * fast/canvas/webgl/angle-instanced-arrays.html: Removed.
        * fast/canvas/webgl/array-bounds-clamping-expected.txt:
        * fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-expected.txt: Removed.
        * fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias.html: Removed.
        * fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt:
        * fast/canvas/webgl/draw-elements-out-of-bounds-uint-index-expected.txt:
        * fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt:
        * fast/canvas/webgl/glsl-conformance-expected.txt: Removed.
        * fast/canvas/webgl/glsl-conformance.html: Removed.
        * fast/canvas/webgl/oes-texture-half-float-expected.txt: Removed.
        * fast/canvas/webgl/oes-texture-half-float-linear-expected.txt: Removed.
        * fast/canvas/webgl/oes-texture-half-float-linear.html: Removed.
        * fast/canvas/webgl/oes-texture-half-float-with-canvas-expected.txt: Removed.
        * fast/canvas/webgl/oes-texture-half-float-with-canvas.html: Removed.
        * fast/canvas/webgl/oes-texture-half-float-with-image-expected.txt: Removed.
        * fast/canvas/webgl/oes-texture-half-float-with-image.html: Removed.
        * fast/canvas/webgl/oes-texture-half-float-with-video-expected.txt: Removed.
        * fast/canvas/webgl/oes-texture-half-float-with-video.html: Removed.
        * fast/canvas/webgl/oes-texture-half-float.html: Removed.
        * fast/canvas/webgl/readPixels-float-expected.txt:
        * fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt:
        * fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt:
        * fast/canvas/webgl/webgl-drawarrays-crash-expected.txt:
        * fast/canvas/webgl/webgl2-texture-upload-enums-expected.txt:
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:
        * webgl/1.0.3/conformance/extensions/get-extension-expected.txt:
        * webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt:
        * webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt:
        * webgl/1.0.3/conformance/glsl/bugs/nested-functions-should-not-crash-expected.txt:
        * webgl/1.0.3/conformance/glsl/misc/shader-struct-scope-expected.txt:
        * webgl/1.0.3/conformance/glsl/misc/shaders-with-invariance-expected.txt:
        * webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt:
        * webgl/1.0.3/conformance/misc/type-conversion-test-expected.txt:
        * webgl/1.0.3/conformance/misc/webgl-specific-expected.txt:
        * webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt:
        * webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt:
        * webgl/2.0.0/conformance/context/context-lost-restored-expected.txt:
        * webgl/2.0.0/conformance/extensions/ext-sRGB-expected.txt:
        * webgl/2.0.0/conformance/extensions/get-extension-expected.txt:
        * webgl/2.0.0/conformance/extensions/oes-texture-float-expected.txt:
        * webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt:
        * webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt:
        * webgl/2.0.0/conformance/extensions/webgl-depth-texture-expected.txt:
        * webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported-expected.txt:
        * webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination-expected.txt:
        * webgl/2.0.0/conformance/glsl/bugs/nested-functions-should-not-crash-expected.txt:
        * webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec2-expected.txt:
        * webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat2-expected.txt:
        * webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat3-expected.txt:
        * webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec2-expected.txt:
        * webgl/2.0.0/conformance/glsl/implicit/less_than.vert-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/global-variable-init-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/shader-struct-scope-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-negative-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt:
        * webgl/2.0.0/conformance/glsl/misc/struct-unary-operators-expected.txt:
        * webgl/2.0.0/conformance/limits/gl-line-width-expected.txt:
        * webgl/2.0.0/conformance/misc/type-conversion-test-expected.txt:
        * webgl/2.0.0/conformance/misc/webgl-specific-expected.txt:
        * webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002-expected.txt:
        * webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003-expected.txt:
        * webgl/2.0.0/conformance/reading/read-pixels-test-expected.txt:
        * webgl/2.0.0/conformance/renderbuffers/framebuffer-object-attachment-expected.txt:
        * webgl/2.0.0/conformance/rendering/point-no-attributes-expected.txt:
        * webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo-expected.txt:
        * webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops-expected.txt:
        * webgl/2.0.0/conformance2/buffers/get-buffer-sub-data-expected.txt:
        * webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer-expected.txt:
        * webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed-expected.txt:
        * webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt:
        * webgl/2.0.0/conformance2/extensions/promoted-extensions-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
        * webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt:
        * webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt:
        * webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt:
        * webgl/2.0.0/conformance2/rendering/attrib-type-match-expected.txt:
        * webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
        * webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt:
        * webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer-expected.txt:
        * webgl/2.0.0/conformance2/rendering/clipping-wide-points-expected.txt:
        * webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt:
        * webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type-expected.txt:
        * webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt:
        * webgl/2.0.0/conformance2/rendering/instanced-rendering-bug-expected.txt:
        * webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop-expected.txt:
        * webgl/2.0.0/conformance2/rendering/rgb-format-support-expected.txt:
        * webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
        * webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt:
        * webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero-expected.txt:
        * webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:

2019-12-27  Rossana Monteriso  <rmonteriso@igalia.com>

        [css-grid] Move some alignment tests to the WPT folder
        https://bugs.webkit.org/show_bug.cgi?id=204407

        Reviewed by Javier Fernandez.

        Remove some tests from fast/css-grid/alignment, that are being replaced by adapted tests in the corresponding WPT test folder.

        * fast/css-grid-layout/grid-align-content-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-justify-margin-border-padding-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-justify-overflow-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-justify-stretch-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-justify-stretch-with-orthogonal-flows-expected.txt: Removed.
        * fast/css-grid-layout/grid-align-justify-stretch-with-orthogonal-flows.html: Removed.
        * fast/css-grid-layout/grid-align-content.html: Removed.
        * fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html: Removed.
        * fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html: Removed.
        * fast/css-grid-layout/grid-align-justify-margin-border-padding.html: Removed.
        * fast/css-grid-layout/grid-align-justify-overflow.html: Removed.
        * fast/css-grid-layout/grid-align-justify-stretch-with-orthogonal-flows.html: Removed.
        * fast/css-grid-layout/grid-align-justify-stretch.html: Removed.
        * fast/css-grid-layout/grid-align.html: Removed.
        * resources/import-expectations.json:
        * web-platform-tests/css/css-grid/alignment/w3c-import.log:
        
2019-12-26  Antti Koivisto  <antti@apple.com>

        Remove display:compact
        https://bugs.webkit.org/show_bug.cgi?id=205597

        Reviewed by Anders Carlsson.

        * fast/css/display-compact-ignored-expected.txt: Added.
        * fast/css/display-compact-ignored.html: Added.

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

        REGRESSION: [ Mojave+ Debug ] fast/mediastream/captureStream/canvas2d-heavy-drawing.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205365
        <rdar://problem/58026430>

        Reviewed by Eric Carlson.

        * fast/mediastream/captureStream/canvas2d-heavy-drawing.html:
        Unflake test by comparing the number of frames with the number of printLine calls.
        They should never diverge too much one from the other.
        * platform/mac-wk2/TestExpectations:

2019-12-25  Zalan Bujtas  <zalan@apple.com>

        Run with offset from the content box's logical left paint its tab stop at wrong position.
        https://bugs.webkit.org/show_bug.cgi?id=205595
        <rdar://problem/58194698>

        Reviewed by Antti Koivisto.

        * fast/text/tab-stops-with-offset-from-parent-expected.html: Added.
        * fast/text/tab-stops-with-offset-from-parent.html: Added.

2019-12-24  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION: [ Catalina wk1 ] imported/w3c/web-platform-tests/fetch/content-type/script.window.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205313

        Remove a no longer necessary and incorrect expectation.

        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/content-type/script.window-expected.txt: Removed.

2019-12-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] REGRESSION: Changing the animation-duration of a CSS Animation may not resume it
        https://bugs.webkit.org/show_bug.cgi?id=205580
        <rdar://problem/58127956>

        Reviewed by Dean Jackson.

        Add a new test that, by virtue of changing the animation-duration, transitions a CSS Animation from
        idle, to running, back to idle and back to running. Prior to this change, the test would not perform
        the final play state transition and the it would time out.

        * webanimations/css-animation-dynamic-duration-change-expected.txt: Added.
        * webanimations/css-animation-dynamic-duration-change.html: Added.

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

        Deny Notification API access for non secure contexts
        https://bugs.webkit.org/show_bug.cgi?id=205496
        <rdar://problem/58074660>

        Reviewed by Chris Dumez.

        * http/tests/notifications/notification-in-non-secure-context-expected.txt: Added.
        * http/tests/notifications/notification-in-non-secure-context.html: Added.

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

        Service Worker doesn't terminate after a period of time when thread blocking
        https://bugs.webkit.org/show_bug.cgi?id=202992
        <rdar://problem/56298596>

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/resources/routines.js:
        (async.waitForServiceWorkerNoLongerRunning):
        * http/wpt/service-workers/service-worker-spinning-activate.https-expected.txt: Added.
        * http/wpt/service-workers/service-worker-spinning-activate.https.html: Added.
        * http/wpt/service-workers/service-worker-spinning-fetch.https-expected.txt: Added.
        * http/wpt/service-workers/service-worker-spinning-fetch.https.html: Added.
        * http/wpt/service-workers/service-worker-spinning-install.https-expected.txt: Added.
        * http/wpt/service-workers/service-worker-spinning-install.https.html: Added.
        * http/wpt/service-workers/service-worker-spinning-message.https-expected.txt: Added.
        * http/wpt/service-workers/service-worker-spinning-message.https.html: Added.
        * http/wpt/service-workers/service-worker-spinning-worker.js: Added.

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

        REGRESSION (r212693): getClientRects(), getBoundingClientRect() for range that spans multi-lines differs depending on whether text is selected
        https://bugs.webkit.org/show_bug.cgi?id=205527
        <rdar://problem/58128278>

        Reviewed by Zalan Bujtas.

        For now, add a Mac-specific test. This test is specific to Mac because it depends on text metrics for the
        Times font. I specifically did not use Ahem so that this test could also be used as the test for
        <https://bugs.webkit.org/show_bug.cgi?id=205563>. Currently the test includes expected failure results
        since that bug is not fixed.

        * TestExpectations: Skip 
        * fast/dom/Range/mac/getClientRects-and-getBoundingClientRect-before-and-after-selection-expected.txt: Added.
        * fast/dom/Range/mac/getClientRects-and-getBoundingClientRect-before-and-after-selection.html: Added.
        * platform/mac/TestExpectations: Unskip the test on Mac.

2019-12-23  Alexey Proskuryakov  <ap@apple.com>

        Remove TestExpectations for scrollingcoordinator/ios/fixed-scrolling-with-keyboard.html
        https://bugs.webkit.org/show_bug.cgi?id=202283

        This test has been passing lately.

        * platform/ios/TestExpectations:

2019-12-23  Alexey Proskuryakov  <ap@apple.com>

        Add TestExpectations for http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html
        https://bugs.webkit.org/show_bug.cgi?id=197673

        * TestExpectations:

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

        Very basic <dialog> show/close support
        https://bugs.webkit.org/show_bug.cgi?id=205543

        Reviewed by Antti Koivisto.

        * imported/blink/dialog/element-removed-from-top-layer-has-original-position-expected.html: Removed.
        * imported/blink/dialog/element-removed-from-top-layer-has-original-position.html: Removed. The changes tested by this patch (added in r140075) were later removed,
        then this test got re-imported from blink.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:

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

        [macCatalyst] Mouse clicks dispatch duplicate pointerup and pointerdown events
        https://bugs.webkit.org/show_bug.cgi?id=205551
        <rdar://problem/58058268>

        Reviewed by Tim Horton.

        * pointerevents/ios/pointer-events-with-click-handler-expected.txt: Added.
        * pointerevents/ios/pointer-events-with-click-handler.html: Added.

        Add a layout test to verify that the bug does not occur. While this is a macCatalyst fix, this test needs to be
        in the `ios` directory for now because macCatalyst is still considered "iOS family". This test is also still
        relevant to both platforms (on iOS, synthesizing a tap behaves as expected, and in macCatalyst, it simulates a
        click at the same location).

        * pointerevents/utils.js:
        (EventTracker.prototype.assertMatchesEvents):
        (EventTracker):

        Drive-by fix: flip the order of arguments to `assert_equals`, so that when tests fail, the failure output
        correctly shows how many events were expected, and how many were observed.

2019-12-22  Alexey Proskuryakov  <ap@apple.com>

        Add TextExpectations for flaky whlsl tests.

        * platform/mac/TestExpectations:

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

        [JSC] Improve our bound function implementation
        https://bugs.webkit.org/show_bug.cgi?id=205327

        Reviewed by Keith Miller.

        * inspector/model/remote-object-get-properties-expected.txt:
        * inspector/runtime/getDisplayableProperties-expected.txt:
        * inspector/runtime/getProperties-expected.txt:

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

        Add timeStamp to ITP database
        https://bugs.webkit.org/show_bug.cgi?id=205121
        <rdar://problem/57633021>

        Reviewed by John Wilander.

        This patch updates test expectations which call
        dumpResourceLoadStatistics to reflect the new timestamp parameter that
        is now printed with the ITP data summary.

        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-database-expected.txt:
        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:

2019-12-20  Chris Dumez  <cdumez@apple.com>

        [iOS Debug] imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=205506
        <rdar://problem/58118091>

        Reviewed by Darin Adler.

        * platform/ios-wk2/TestExpectations:
        Remove Crash expectation for this test in iOS Debug.

        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt: Removed.
        Drop iOS-specific baseline now that the behavior is consistent across platforms.

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

        Add some missing skips in LayoutTests/gpu-process/TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=205523

        Reviewed by Eric Carlson.

        * gpu-process/TestExpectations:

2019-12-20  Brent Fulgham  <bfulgham@apple.com>

        Remove access to 'com.apple.cfprefsd.agent' from the macOS sandbox
        https://bugs.webkit.org/show_bug.cgi?id=205478
        <rdar://problem/57915066>

        Reviewed by Darin Adler.

        * fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/mac/sandbox-mach-lookup.html:

2019-12-20  Alexey Proskuryakov  <ap@apple.com>

        Update TestExpectatipons for media/track/track-in-band-cues-added-once.html
        https://bugs.webkit.org/show_bug.cgi?id=142152

        The test no longer times out on bots or in local testing. It is still a flaky failure.

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

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

        REGRESSION: fast/shadow-dom/link-element-in-shadow-tree.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=171784

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Flaky crash in AudioSourceProviderAVFObjC::~AudioSourceProviderAVFObjC on webaudio/silent-audio-interrupted-in-background.html
        https://bugs.webkit.org/show_bug.cgi?id=202064

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Unreviewed, rolling out r253831.

        Inadvertent rollout of r253829

        Reverted changeset:

        "Unreviewed, rolling out r253829."
        https://bugs.webkit.org/show_bug.cgi?id=205502
        https://trac.webkit.org/changeset/253831

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

        Unreviewed, rolling out r253829.

        This is blocking the rollout of r253705

        Reverted changeset:

        "Import web-platform-tests/subresource-integrity tests from
        usptream"
        https://bugs.webkit.org/show_bug.cgi?id=205502
        https://trac.webkit.org/changeset/253829

2019-12-20  Chris Dumez  <cdumez@apple.com>

        imported/w3c/web-platform-tests/beacon/beacon-redirect.window.html has been flaky since it was imported in r253760
        https://bugs.webkit.org/show_bug.cgi?id=205504
        <rdar://problem/58115444>

        Unreviewed, mark test as flaky.

        * TestExpectations:

2019-12-20  Chris Dumez  <cdumez@apple.com>

        Import web-platform-tests/subresource-integrity tests from usptream
        https://bugs.webkit.org/show_bug.cgi?id=205502

        Reviewed by Darin Adler.

        * TestExpectations:

2019-12-20  Chris Dumez  <cdumez@apple.com>

        [iOS Debug] imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=205506

        Unreviewed, mark imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html as crashing
        on iOS Debug. The test has been crashing on this platform since it was imported in r253791.

        * platform/ios-wk2/TestExpectations:

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

        webrtc/video-autoplay.html is flaky on iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=205495

        Reviewed by Eric Carlson.

        * webrtc/video-autoplay-expected.txt:
        * webrtc/video-autoplay.html:
        Do test one video at a time so that one video does not interrupt the other.

2019-12-20  Chris Dumez  <cdumez@apple.com>

        Unreviewed, mark imported/w3c/web-platform-tests/2dcontext/wide-gamut-canvas as flaky.

        Those were recently imported from upstream.

        * TestExpectations:

2019-12-20  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip imported/w3c/web-platform-tests/2dcontext/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html

        This test has been timing out since it was imported and slows down our test runs for no reason.

        * TestExpectations:

2019-12-20  Chris Dumez  <cdumez@apple.com>

        Re-skip imported/w3c/web-platform-tests/service-workers/service-worker/client-navigate.https.html

        I had unskipped this test in r253704 because it no longer appeared to time out on my machine. However,
        it sill appears to time out on the bots (at least flakily).

        * TestExpectations:

2019-12-20  Chris Dumez  <cdumez@apple.com>

        Unreviewed, address flakiness of imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html

        * TestExpectations:

2019-12-20  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html on macOS wk1

        We do not support the download attribute on this platform.

        * platform/mac-wk1/TestExpectations:

2019-12-19  Saam Barati  <sbarati@apple.com>

        Don't cache self customs on dictionaries
        https://bugs.webkit.org/show_bug.cgi?id=205466
        <rdar://problem/58075545>

        Reviewed by Mark Lam.

        * js/dom/custom-function-should-not-cache-as-dictionary-expected.txt: Added.
        * js/dom/custom-function-should-not-cache-as-dictionary.html: Added.

2019-12-19  Jack Lee  <shihchieh_lee@apple.com>

        Nullptr crash in WebCore::RenderTreeBuilder::attach
        https://bugs.webkit.org/show_bug.cgi?id=205476

        Reviewed by Ryosuke Niwa.

        * fast/ruby/crash-insert-duplicate-rt-element-expected.txt: Added.
        * fast/ruby/crash-insert-duplicate-rt-element.html: Added.

2019-12-19  Jack Lee  <shihchieh_lee@apple.com>

        Nullptr crash in WebCore::findPlaceForCounter with display: contents parent
        https://bugs.webkit.org/show_bug.cgi?id=205290

        Reviewed by Ryosuke Niwa.

        * fast/css/counters/findPlaceForCounter-crash-expected.txt: Added.
        * fast/css/counters/findPlaceForCounter-crash.html: Added.

2019-12-19  Charlie Turner  <cturner@igalia.com>

        [GTK] http/tests/media/clearkey/collect-webkit-media-session.html is timing out since added in r235429 "WebKitMediaSession should be GC collectable when its document is being stopped"
        https://bugs.webkit.org/show_bug.cgi?id=189345

        Unreviewed gardening.

        * platform/gtk/TestExpectations: This test is for legacy encrypted media, which we have deprecated, and further uses an EXT-X-KEY URI scheme that will be unsupported by GStreamer (the "clearkey" scheme is not spec'd anywhere I could find).

2019-12-19  Chris Dumez  <cdumez@apple.com>

        REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205164
        <rdar://problem/57879042>

        Reviewed by Ryosuke Niwa.

        * fast/forms/form-double-submission-expected.txt: Added.
        * fast/forms/form-double-submission.html: Added.
        * fast/forms/resources/form-double-submission-frame.html: Added.
        Add layout test for the regression that was introduced the first time this patch landed.

        * http/tests/misc/multiple-submit-expected.txt:
        Rebaseline test due to behavior change. I have verified that our new behavior on this test is
        aligned with Firefox 71 and Chrome 79.

        * platform/mac/TestExpectations:
        Unskip tests that are no longer flaky.

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Unreviewed, land missing iOS baselines from r253791.

        * platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt: Added.

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Unreviewed, land iOS baselines missing from r253791.

        * 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-embedded-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Resync web-platform-tests/html tests from upstream
        https://bugs.webkit.org/show_bug.cgi?id=205424

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * 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-forms-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * tests-options.json:

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

        Make ShadowRoot.delegateFocus work in iOS
        https://bugs.webkit.org/show_bug.cgi?id=202875

        Reviewed by Wenson Hsieh.

        Added a regression test.

        * fast/shadow-dom/delegates-focus-by-activation-expected.txt: Added.
        * fast/shadow-dom/delegates-focus-by-activation.html: Added.

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip fast/workers/worker-cloneport.html on iOS.

        This test appears to run fine on iOS now.

        * platform/ios-wk2/TestExpectations:

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rebaseline imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html on iOS.

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

2019-12-19  Brent Fulgham  <bfulgham@apple.com>

        WebContent process does not need access to 'com.apple.system.logger'
        https://bugs.webkit.org/show_bug.cgi?id=205411
        <rdar://problem/56966080>

        Reviewed by Per Arne Vollan.

        * TestExpectations:
        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:
        * fast/sandbox/mac/sandbox-mach-lookup-expected.txt: Added.
        * fast/sandbox/mac/sandbox-mach-lookup.html: Added.
        * platform/mac-wk2/TestExpectations:

2019-12-19  Brent Fulgham  <bfulgham@apple.com>

        Deny mach lookup access to "com.apple.TextInput" in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=205423
        <rdar://problem/56990842>

        Reviewed by Per Arne Vollan.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Unreviewed tests gardening

        Mark imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit.html as flaky.

        * platform/mac/TestExpectations:

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

        CacheStorageEngine should not clear caches memory representation for ephemeral sessions
        https://bugs.webkit.org/show_bug.cgi?id=205332

        Reviewed by Chris Dumez.

        * TestExpectations:

2019-12-19  Brent Fulgham  <bfulgham@apple.com>

        Deny mach lookup access to "com.apple.pluginkit.pkd" in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=205421
        <rdar://problem/56995585>

        Reviewed by Per Arne Vollan.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Unreviewed, address imported/w3c/web-platform-tests/css/css-properties-values-api/url-resolution.html flakiness

        * TestExpectations:

2019-12-19  Chris Dumez  <cdumez@apple.com>

        Unreviewed, land iOS specific baseline missing from r253738.

        * platform/ios-wk2/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt: Added.

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

        Folloup test expectations cleanup for r253594
        https://bugs.webkit.org/show_bug.cgi?id=205308

        Unreviewed test gardening.

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

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

        REGRESSION: [ Mac Debug wk1 ] accessibility/mac/expanded-notification.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205410

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        REGRESSION: [ Mojave Debug wk1 ] webgl/1.0.3/conformance/rendering/many-draw-calls.html is Timing out
        https://bugs.webkit.org/show_bug.cgi?id=205412

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-12-19  Chris Dumez  <cdumez@apple.com>

        imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=205408

        Reviewed by Youenn Fablet.

        Unskip test.

        * TestExpectations:

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

        REGRESSION (r251015): Hitting return before a space deletes text after the insertion position
        https://bugs.webkit.org/show_bug.cgi?id=205425
        <rdar://problem/57575960>

        Reviewed by Tim Horton.

        Add a layout test to exercise this bug, by executing "insertParagraph" in a text node before a space.

        * editing/inserting/insert-paragraph-before-space-expected.txt: Added.
        * editing/inserting/insert-paragraph-before-space.html: Added.

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

        REGRESSION(r253683): [GTK][WPE] Lots of offscreen-canvas WPT tests failing

        Unreviewed gardening. Skip the tests meanwhile the issue is not fixed.
        See webkit.org/b/205445

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

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

        [WPE] Missing UIScriptController implementation
        https://bugs.webkit.org/show_bug.cgi?id=200295

        Reviewed by Žan Doberšek.

        Remove expectation of a test that is now passing.

        * platform/wpe/TestExpectations:

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

        Safari resumes autoplay audio elements after getUserMedia
        https://bugs.webkit.org/show_bug.cgi?id=197688
        <rdar://problem/57674395>

        Reviewed by Eric Carlson.

        * webrtc/video-autoplay-expected.txt:
        * webrtc/video-autoplay.html:

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

        REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205364
        <rdar://problem/58025862>

        Reviewed by Simon Fraser.

        Fix the test by waiting for rAF and avoid running checkForScroll more than once.

        * platform/mac-wk2/TestExpectations: Removed the flaky expectation.
        * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:

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

        REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205363
        <rdar://problem/58025488>

        Reviewed by Wenson Hsieh.

        Fix the test by waiting for rAF and avoid running checkForScroll more than once.

        * platform/mac-wk2/TestExpectations:
        * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:

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

        Animations stop if new tab opened (and closed)
        https://bugs.webkit.org/show_bug.cgi?id=202360
        <rdar://problem/55923261>

        Reviewed by Dean Jackson.

        Add a ref test that checks that an element with a software animation followed by an animation of a property
        that can be accelerated yields animations in both cases. 

        Also, somehow, the WPT test dom/events/Event-dispatch-on-disabled-elements.html seems to now pass an extra
        test that would fail on iOS and now behaves like macOS, so we remove that platform-specific expectation.

        * platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt
        * webanimations/animation-of-accelerated-property-after-non-accelerated-property-expected.html: Added.
        * webanimations/animation-of-accelerated-property-after-non-accelerated-property.html: Added.

2019-12-18  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: Runtime.enable reports duplicates (non existent) contexts
        https://bugs.webkit.org/show_bug.cgi?id=204859

        Reviewed by Devin Rousso.

        Test that only existing contexts are reported.

        * http/tests/inspector/resources/stable-id-map.js: Added.
        (TestPage.registerInitializer.window.StableIdMap):
        (TestPage.registerInitializer.window.StableIdMap.prototype.get size):
        (TestPage.registerInitializer.window.StableIdMap.prototype.get let):
        (TestPage.registerInitializer):
        * http/tests/inspector/target/provisional-load-cancels-previous-load.html:
        * inspector/runtime/executionContextCreated-onEnable-expected.txt: Added.
        * inspector/runtime/executionContextCreated-onEnable.html: Added.

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

        Add support for Audio Capture in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=205056

        Reviewed by Eric Carlson.

        * fast/mediastream/captureAudioInGPUProcess-expected.txt:

2019-12-18  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rebaseline all service workers tests and unskip 2 that no longer time out.

        * TestExpectations:

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

        REGRESSION: [ Mac ] accessibility/presentation-role-iframe.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205403

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-12-18  Kate Cheney  <katherine_cheney@apple.com>

        Only report prevalent domains in the ResourceLoadStatistics data summary API
        https://bugs.webkit.org/show_bug.cgi?id=205281
        <rdar://problem/57975017>

        Reviewed by Brent Fulgham.

        The tests for the ITP data summary had to be updated to set their
        third party domains to be prevalent to maintain test functionality.

        All http/tests/resourceLoadStatistics/(dont-)count* tests should
        no longer output the ITP data summary because the domains are not
        set as prevalent.

        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-database-expected.txt:
        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-database.html:
        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
        * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access.html:
        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt:
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt:
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database.html:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
        * http/tests/storageAccess/aggregate-sorted-data-with-storage-access.html:

2019-12-18  Diego Pino Garcia  <dpino@igalia.com>

        [GTK][WPE] Renderization of Conic gradients
        https://bugs.webkit.org/show_bug.cgi?id=202739

        Reviewed by Carlos Alberto Lopez Perez.

        * platform/gtk/fast/gradients/conic-gradient-alpha-expected.html: Added.

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

        Layout Test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=176929

        Unreviewed.

        * TestExpectations:
        * platform/mac/TestExpectations:
        Mark it as flaky in all platforms.

2019-12-18  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Frédéric Wang.

        Re-sync web-platform-tests/common from upstream e9d489f3377139a1d54b.

        * canvas/philip/tests/2d.drawImage.incomplete.emptysrc-expected.txt:
        * canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html:
        * canvas/philip/tests/2d.drawImage.incomplete.nosrc-expected.txt:
        * canvas/philip/tests/2d.drawImage.incomplete.nosrc.html:
        * canvas/philip/tests/2d.drawImage.incomplete.removedsrc-expected.txt:
        * canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html:
        * canvas/philip/tests/2d.pattern.image.incomplete.emptysrc-expected.txt:
        * canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html:
        * canvas/philip/tests/2d.pattern.image.incomplete.removedsrc-expected.txt:
        * canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html:
        * http/wpt/2dcontext/imagebitmap/createImageBitmap-sizing.html:
        * http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html:

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

        REGRESSION: animations/leak-document-with-css-animation.html is very flaky
        https://bugs.webkit.org/show_bug.cgi?id=205299

        While this test has proven to be solid running in isolation, it appears that the difference of live documents
        before and after the iframe has been destroyed may be more than one. In fact, in reported failures, there always
        seems to be 2 live documents fewer after than before, instead of the expected single document.

        Since internals.numberOfLiveDocuments() returns the number of live documents throughout the life of the
        Web process, we now force garbage collection every time we query internals.numberOfLiveDocuments(). This
        should ensure that documents pending destruction due to garbage collection to be destroyed before we take
        a snapshort of the number of live documents.

        Reviewed by Antti Koivisto.

        * TestExpectations:
        * animations/leak-document-with-css-animation.html:

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

        [macOS/iOS Debug] Layout Test webanimations/animation-opacity-animation-crash.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=181612

        This test is no longer flaky, removing any specific expectations.

        Reviewed by Dean Jackson.

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

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

        [iOS] Arabic text on Wikipedia is shown as boxes
        https://bugs.webkit.org/show_bug.cgi?id=155129
        <rdar://problem/24919902>

        Unreviewed typo correction.

        * platform/gtk/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        Renamed arabic-blacklisted-expected.html to arabic-blacklisted.html.

2019-12-17  Chris Dumez  <cdumez@apple.com>

        Port service worker code to the HTML5 event loop
        https://bugs.webkit.org/show_bug.cgi?id=205359

        Reviewed by Ryosuke Niwa.

        * http/wpt/service-workers/online-worker.js:
        Drop process name check as it causes flakiness depending on whether or not the service worker runs in process.

        * http/wpt/service-workers/ready.https.window-expected.txt:
        * http/wpt/service-workers/ready.https.window.js:
        Include all subtests from https://github.com/web-platform-tests/wpt/pull/20655 now that they are no longer
        flaky.

2019-12-17  Chris Dumez  <cdumez@apple.com>

        Unreviewed, revert r253493 because it broke an Apple internal site

        * platform/mac/TestExpectations:

2019-12-17  Fujii Hironori  <fujii.hironori@gmail.com>

        [cairo] text-align:justify wrongly expands CJK ideograph characters
        https://bugs.webkit.org/show_bug.cgi?id=205321

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/text/justify-ideograph-complex-expected.png:
        * platform/gtk/fast/text/justify-ideograph-complex-expected.txt: Added.
        * platform/gtk/fast/text/justify-ideograph-leading-expansion-expected.png:
        * platform/gtk/fast/text/justify-ideograph-simple-expected.png:
        * platform/gtk/fast/text/justify-ideograph-simple-expected.txt: Added.
        * platform/gtk/fast/text/justify-ideograph-vertical-expected.png:

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

        REGRESSION: [ Mojave+ Debug ] fast/mediastream/captureStream/canvas2d-heavy-drawing.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205365

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205364

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations:

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

        REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205363

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        REGRESSION: [ Mac Release ] crypto/workers/subtle/aes-indexeddb.html is a flakey timeout
        https://bugs.webkit.org/show_bug.cgi?id=205361

        Unreviewed test gardening.

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

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

        REGRSSION: [ High Sierra Catalina ] (r253310) compositing/video/video-border-radius-clipping.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205226

        Unreviewed test gardening. Mark the test as an image failure on WK1.
        The test fails with a few different pixels in the video frames.

        * platform/mac-wk1/TestExpectations:

2019-12-17  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Frédéric Wang.

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

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

        REGRESSION: ASSERTION FAILED: FontCache::singleton().generation() == m_generation
        https://bugs.webkit.org/show_bug.cgi?id=204933
        <rdar://problem/57458432>

        Reviewed by Zalan Bujtas.

        * fast/shadow-dom/font-cache-invalidation-expected.txt: Added.
        * fast/shadow-dom/font-cache-invalidation.html: Added.

2019-12-17  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Youenn Fablet.

        * http/wpt/entries-api/interfaces-expected.txt:
        * http/wpt/fetch/csp-reports-bypass-csp-checks.html:
        * http/wpt/mediarecorder/MediaRecorder-onremovetrack.html:
        * http/wpt/webauthn/idl.https-expected.txt:
        * http/wpt/workers/promise-unhandled-rejection.any-expected.txt:
        * http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/clipboard-apis/async-interfaces.https-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt:
        * tests-options.json:

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

        Bump the priority of CacheStorageEngine write operations
        https://bugs.webkit.org/show_bug.cgi?id=205329

        Reviewed by Antti Koivisto.

        * http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html:
        Increase timer.

2019-12-17  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer][WPE] Fix regressions related to our 'Fix GStreamer capturer mock' patch
        https://bugs.webkit.org/show_bug.cgi?id=205270

        Skip GPUProcess related tests

        Reviewed by Philippe Normand.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        * webrtc/peer-connection-audio-mute.html:

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

        Resolve dynamic media queries without reconstructing RuleSets
        https://bugs.webkit.org/show_bug.cgi?id=205264

        Reviewed by Zalan Bujtas.

        Add a test verifying that @font-face inside @media works in dynamic scenarios.

        * fast/media/media-query-dynamic-with-font-face-expected.html: Added.
        * fast/media/media-query-dynamic-with-font-face.html: Added.

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

        WebGLRenderingContext.texImage2D() should respect EXIF orientation
        https://bugs.webkit.org/show_bug.cgi?id=205141

        Reviewed by Simon Fraser.

        The test page uses images with different EXIF orientation. The expected
        page uses a single image with no EXIF orientation then it transforms the
        <canvas> elements such that it matches the image in the test page.

        WebGLRenderingContext uses a trick when drawing an SVG image or images 
        with EXIF orientation to a WebGL texture. It draws the Image to an Image-
        Buffer, creates another Image out of the ImageBuffer and then draws the
        other Image to the WebGL texture.

        But there can be small glitches between drawing an Image directly versus
        doing the ImageBuffer trick. So the expected page will use an SVG image 
        to ensure the same code path is used for both the test and the expected
        pages.

        This SVG image includes the jpeg image with no EXIF orientation but as a
        data uri. Also the script has to wait after loading the SVG image till
        the bitmap image is loaded from the data uri encoded data.

        * fast/images/exif-orientation-webgl-texture-expected.html: Added.
        * fast/images/exif-orientation-webgl-texture.html: Added.
        * fast/images/resources/webgl-draw-image.js: Added.
        * platform/win/TestExpectations:
        All webgl tests are skipped on Windows.

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

        REGRESSION: [ Catalina wk1 ] editing/mac/input/firstrectforcharacterrange-styled.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205314

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        REGRESSION: [ iOS ] scrollingcoordinator/ios/scroll-position-after-reattach.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205309

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        REGRESSION: [iOS] accessibility/smart-invert-reference.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205308

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        REGRESSION (r253312): imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html is super flaky
        https://bugs.webkit.org/show_bug.cgi?id=205216

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [ Catalina ] imported/w3c/web-platform-tests/css/css-images/multiple-position-color-stop-conic.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204250

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        REGRESSION: [ Mojave+ WK2 ] inspector/canvas/requestShaderSource-webgpu.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205301

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        [ Catalina ] webaudio/silence-after-playback.html is failing on Catalina
        https://bugs.webkit.org/show_bug.cgi?id=204247

        Unreviewed test gardneing.

        * platform/mac/TestExpectations:

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

        [ Catalina ] editing/mac/selection/context-menu-select-editability.html is failing on Catalina
        https://bugs.webkit.org/show_bug.cgi?id=204246

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-12-16  Alexey Proskuryakov  <ap@apple.com>

        Mark animations/leak-document-with-css-animation.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=205299

        * TestExpectations:

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

        Consider top-level context whose origin is unique as insecure
        https://bugs.webkit.org/show_bug.cgi?id=205111

        Reviewed by Brent Fulgham.

        * http/tests/security/top-level-unique-origin.https-expected.txt: Added.
        * http/tests/security/top-level-unique-origin.https.html: Added.
        * http/tests/security/top-level-unique-origin2.https-expected.txt: Added.
        * http/tests/security/top-level-unique-origin2.https.html: Added.
        * platform/win/TestExpectations: Skipping second test as timing out in windows.

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

        fast/mediastream/change-tracks-media-stream-being-played.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=205277

        Reviewed by Eric Carlson.

        * fast/mediastream/change-tracks-media-stream-being-played.html:
        Make sure unhandled promise rejection messages do not make the test flaky.

2019-12-16  Chris Dumez  <cdumez@apple.com>

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html is a flaky failure (test harness timeout)
        https://bugs.webkit.org/show_bug.cgi?id=200794
        <rdar://problem/54367769>

        Reviewed by Youenn Fablet.

        Skip imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html on all platforms as it contains some subtests
        that are not valid in any browser and which cause flaky timeouts.

        To restore test coverage for the ready promise, import work-in-progress test from:
        https://github.com/web-platform-tests/wpt/pull/20655 (except for the last subtest that is still flaky in Gecko and WebKit)

        * TestExpectations:
        * http/wpt/service-workers/ready.https.window-expected.txt: Added.
        * http/wpt/service-workers/ready.https.window.html: Added.
        * http/wpt/service-workers/ready.https.window.js: Added.
        (test):
        (promise_test.async.t.t.add_cleanup.async):
        * http/wpt/service-workers/resources/empty-worker.js: Added.
        * http/wpt/service-workers/resources/register-iframe.html: Added.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:

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

        Layout test imported/blink/fast/sub-pixel/negative-composited-offset.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=205273

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Layout Test js/integer-division-neg2tothe32-by-neg1.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=205272

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        SecurityOrigin should be unique for null blob URLs that have been unregistered
        https://bugs.webkit.org/show_bug.cgi?id=205169

        Reviewed by Darin Adler.

        * http/tests/security/blob-null-url-location-origin-expected.txt: Added.
        * http/tests/security/blob-null-url-location-origin.html: Added.
        * platform/win/TestExpectations: Skipping test as timing out in windows.

2019-12-15  Emilio Cobos Álvarez  <emilio@crisal.io>

        Remove -webkit-marquee.
        https://bugs.webkit.org/show_bug.cgi?id=117769

        Reviewed by Simon Fraser.

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-length-unit-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-length-unit.html:
        * fast/css/getComputedStyle/getComputedStyle-zoom-and-background-size-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-zoom-and-background-size.html:
        * fast/css/getComputedStyle/resources/property-names.js:
        * fast/css/getPropertyValue-webkit-marquee-expected.txt: Removed.
        * fast/css/getPropertyValue-webkit-marquee.html: Removed.
        * fast/css/inherit-initial-shorthand-values-expected.txt:
        * fast/css/inherit-initial-shorthand-values.html:
        * fast/css/remove-shorthand-expected.txt:
        * fast/css/remove-shorthand.html:
        * legacy-animation-engine/fast/css/getComputedStyle/resources/property-names.js:
        * 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/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/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-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-12-14  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Deny mach lookup access to "*.viewservice" in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=205240

        Reviewed by Brent Fulgham.

        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
        * fast/sandbox/ios/sandbox-mach-lookup.html:

2019-12-13  Myles C. Maxfield  <mmaxfield@apple.com>

        [watchOS] Apple.com is rendered in Times New Roman
        https://bugs.webkit.org/show_bug.cgi?id=205179
        <rdar://problem/57233936>

        Reviewed by Tim Horton.

        * fast/text/smiley-local-font-src-expected.html: Added.
        * fast/text/smiley-local-font-src.html: Added.

2019-12-13  Chris Dumez  <cdumez@apple.com>

        Implement PostMessageOptions for postMessage
        https://bugs.webkit.org/show_bug.cgi?id=191028

        Reviewed by Alex Christensen.

        Update a few existing tests due to the behavior change.

        * TestExpectations:
        * fast/dom/Window/post-message-crash.html:
        * fast/events/message-port-multi-expected.txt:
        * fast/events/resources/message-port-multi.js:
        * fast/workers/resources/worker-context-thread-multi-port.js:
        * fast/workers/resources/worker-multi-port.js:
        * fast/workers/worker-multi-port-expected.txt:
        * http/tests/security/postMessage/target-origin-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:

2019-12-13  Charlie Turner  <cturner@igalia.com>

        [GStreamer][EME] Update expectation for media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html
        https://bugs.webkit.org/show_bug.cgi?id=205215

        Unreviewed gardening.

        * platform/gtk/TestExpectations: Update bug URL to new failure reason.

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

        Add support for WebIDL set-like forEach
        https://bugs.webkit.org/show_bug.cgi?id=204847

        Reviewed by Chris Dumez.

        * js/dom/maplike.html:
        * js/dom/setlike.html:

2019-12-13  Chris Dumez  <cdumez@apple.com>

        REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205164
        <rdar://problem/57879042>

        Reviewed by Alex Christensen.

        Unskip test that should no longer be flaky.

        * platform/mac/TestExpectations:

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

        [iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=205134
        <rdar://problem/56984257>

        Reviewed by Brent Fulgham.

        Add test for mach lookup access to "*.apple-extension-service".

        * TestExpectations:
        * fast/sandbox: Added.
        * fast/sandbox/ios: Added.
        * fast/sandbox/ios/sandbox-mach-lookup-expected.txt: Added.
        * fast/sandbox/ios/sandbox-mach-lookup.html: Added.
        * platform/ios-device-wk2/TestExpectations:

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

        Help debugging flaky http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html
        https://bugs.webkit.org/show_bug.cgi?id=205209

        Reviewed by Chris Dumez.

        In case of error, query the cache representation.
        This will help debugging the flaky tests and ensure that no pending activity is happening in error cases.

        * http/tests/cache-storage/page-cache-domcache-pending-promise.html:
        * http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html:

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

        [Clipboard API] Sanitize HTML and image data written using clipboard.write
        https://bugs.webkit.org/show_bug.cgi?id=205188
        <rdar://problem/57612968>

        Reviewed by Darin Adler.

        * editing/async-clipboard/sanitize-when-reading-markup-expected.txt: Added.
        * editing/async-clipboard/sanitize-when-reading-markup.html: Added.

        Add a test to verify that markup is sanitized when copying and pasting across different security origins.

        * editing/async-clipboard/sanitize-when-writing-image-expected.txt: Added.
        * editing/async-clipboard/sanitize-when-writing-image.html: Added.

        Add a test to verify that "image/png" data is sanitized, and one or more written image data that cannot be
        decoded results in the promise being rejected.

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

2019-12-13  Chris Dumez  <cdumez@apple.com>

        Behavior of [[GetOwnProperty]] for cross-origin windows is not spec-compliant
        https://bugs.webkit.org/show_bug.cgi?id=205184

        Reviewed by Darin Adler.

        * http/tests/security/document-all-expected.txt:
        The test is accessing the "alert" property on a cross-origin window. We used to throw a SecurityError,
        but we now return a Window object since there is a Window whose name is "alert". The test still passes
        as it is not able to call alert() cross-origin. 

        * http/tests/security/xss-DENIED-window-name-navigator-expected.txt:
        * http/tests/security/xss-DENIED-window-name-navigator.html:
        Update test to use console.log() to print the result instead of alert() since alert() is not allowed
        in a sandbox iframe. I updated the expectation so that top.navigator returns the window with the
        name "navigator" instead of undefined, as per the behavior change in this patch. I have verified that
        our behavior on this test is consistent with Firefox and Chrome.

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

        Fix some errors on the TestExpectations files.

        Unreviewed gardening.

        * TestExpectations: Add missing expectation.
        * platform/gtk/TestExpectations: Remove repeated entries

2019-12-13  Chris Dumez  <cdumez@apple.com>

        Unreviewed, address flakiness of fast/scrolling/ios/scroll-event-from-scrollTo.html

        * fast/scrolling/ios/scroll-event-from-scrollTo.html:

2019-12-13  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rebaseline a couple of iOS swiping tests after r253450

        * platform/ios/swipe/main-frame-pinning-requirement-expected.txt:
        * platform/ios/swipe/pushState-cached-back-swipe-expected.txt:

2019-12-13  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip several SharedWorkers tests as we do not support this feature.

        * TestExpectations:

2019-12-13  Ali Juma  <ajuma@chromium.org>

        Crash in RenderLayerBacking::updateCompositedBounds from using cleared WeakPtr from m_backingSharingLayers
        https://bugs.webkit.org/show_bug.cgi?id=204648

        Reviewed by Simon Fraser.

        * compositing/shared-backing/move-sharing-child-expected.txt: Added.
        * compositing/shared-backing/move-sharing-child.html: Added.

2019-12-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Several tests crashing after r247898 "Reorganize UIScriptController into platform-specific subclasses"
        https://bugs.webkit.org/show_bug.cgi?id=200534

        Reviewed by Alejandro G. Castro.

        Update expectations.

        * platform/gtk/TestExpectations:

2019-12-12  Chris Dumez  <cdumez@apple.com>

        Re-sync service-workers web-platform-tests from upstream
        https://bugs.webkit.org/show_bug.cgi?id=205181

        Reviewed by Alex Christensen.

        * tests-options.json:

2019-12-12  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Alex Christensen.

        * TestExpectations:

2019-12-12  Chris Dumez  <cdumez@apple.com>

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

        Reviewed by Alex Christensen.

        * TestExpectations:

2019-12-12  Chris Dumez  <cdumez@apple.com>

        Regression(r253394) swipe/basic-cached-back-swipe.html is timing out on iOS
        https://bugs.webkit.org/show_bug.cgi?id=205173

        Reviewed by Tim Horton.

        * platform/ios/swipe/basic-cached-back-swipe-expected.txt:

2019-12-12  Chris Dumez  <cdumez@apple.com>

        Unreviewed, try to address flakiness of http/tests/cache-storage/page-cache-domcache-pending-promise.html on EWS

        * http/tests/cache-storage/page-cache-domcache-pending-promise.html:

2019-12-12  Chris Dumez  <cdumez@apple.com>

        window.AudioContext / window.OfflineAudioContext should not be enumerable
        https://bugs.webkit.org/show_bug.cgi?id=205163

        Reviewed by Youenn Fablet.

        * resources/testharnessreport.js:

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

        REGRESSION: [Mac wk1] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205168

        Unreviewed test gardneing

        * platform/mac-wk1/TestExpectations:

2019-12-12  Patrick Griffis  <pgriffis@igalia.com>

        [SOUP] Use new API for strict secure cookies
        https://bugs.webkit.org/show_bug.cgi?id=169356

        Reviewed by Michael Catanzaro.

        Remove expected failures for secure cookie tests

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

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

        REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flakey failure
        https://bugs.webkit.org/show_bug.cgi?id=205164

        Unreviewed test gardening

        * platform/mac/TestExpectations:

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

        Unreviewed test gardening for WinCairo

        * platform/wincairo/TestExpectations: Unskip fast/text.

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

        Unreviewed test gardening for WinCairo

        * platform/wincairo/TestExpectations: Skip editing/async-clipboard.

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

        Implement DisplayListRecorder::Recorder::getCTM and DisplayListRecorder::Recorder::setCTM
        https://bugs.webkit.org/show_bug.cgi?id=205139

        Reviewed by Simon Fraser.

        * displaylists/extent-includes-transforms-expected.txt:
        * platform/mac-wk1/displaylists/extent-includes-transforms-expected.txt:

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

        [Bindings] Cross-origin checks happen too late for overloaded methods
        https://bugs.webkit.org/show_bug.cgi?id=205092

        Reviewed by Sam Weinig.

        Extend layout test coverage.

        * http/tests/security/cross-origin-window-property-access-expected.txt:
        * http/tests/security/cross-origin-window-property-access.html:

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

        (r252889) webrtc/peerconnection-page-cache.html is crashing on iOS Debug
        https://bugs.webkit.org/show_bug.cgi?id=205017
        <rdar://problem/57757026>

        Reviewed by Eric Carlson.

        * platform/ios/TestExpectations:

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

        Unreviewed GTK gardening after r253360.

        * platform/gtk/TestExpectations:

2019-12-11  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer][MediaStream] Fix GStreamer capturer mock
        https://bugs.webkit.org/show_bug.cgi?id=205066

        - Presets where wrongly generated based on GStreamer capabilities
        - Audio capturer was not taking into account echo cancellation

        Reviewed by Philippe Normand.

        * platform/gtk/TestExpectations: Updated expectations as required
        * platform/wpe/TestExpectations: Updated expectations as required

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

        Create a TestExpectations file for the GPU process related work
        https://bugs.webkit.org/show_bug.cgi?id=205088

        Reviewed by Tim Horton.

        * gpu-process/TestExpectations: Added.

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

        Mark some WPT test folders as DumpJSConsoleLogInStdErr
        https://bugs.webkit.org/show_bug.cgi?id=204793

        Reviewed by Eric Carlson.

        * TestExpectations:
        Remove no longer needed DumpJSConsoleLogInStdErr expectations.

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

        Remove hack that makes <br> boxes 0-height in quirks mode
        https://bugs.webkit.org/show_bug.cgi?id=205004

        Reviewed by Zalan Bujtas.

        A few changes due to aligning simple line path with complex, rounding, and some vertical text details.

        * fast/multicol/pagination-h-horizontal-bt-expected.txt:
        * fast/multicol/pagination-v-horizontal-bt-expected.txt:
        * fast/ruby/position-after-expected.txt:
        * platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt:
        * platform/ios/fast/writing-mode/english-bt-text-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
        * platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
        * platform/mac/fast/text/svg-font-face-with-kerning-expected.txt:
        * platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
        * platform/mac/fast/writing-mode/english-bt-text-expected.txt:
        * platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
        * platform/win/fast/text/international/bidi-layout-across-linebreak-expected.txt:
        * platform/win/fast/writing-mode/english-bt-text-expected.txt:
        * platform/win/fast/writing-mode/text-orientation-basic-expected.txt:
        * platform/win/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
        
2019-12-09  Patrick Griffis  <pgriffis@igalia.com>

        Import secure cookie tests from WPT
        https://bugs.webkit.org/show_bug.cgi?id=204193

        Reviewed by Carlos Alberto Lopez Perez.

        Mark newly imported test as failing.
        Pending fix for WPE/GTK in webkit.org/b/169356

        * platform/gtk/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/wpe/TestExpectations:
        * platform/ios-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies-expected.txt: Added.

2019-12-09  Megan Gardner  <megan_gardner@apple.com>

        Fill HighlightRangeGroup and HighlightMap with values from JavaScript
        https://bugs.webkit.org/show_bug.cgi?id=204934

        Reviewed by Simon Fraser.

        * highlight/highlight-map-and-group-expected.txt: Added.
        * highlight/highlight-map-and-group.html: Added.

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

        Unreviewed, rolling out r253299.

        Casued 30+ imported/ test failures on Mac wk2

        Reverted changeset:

        "Throttling requestAnimationFrame should be controlled by
        RenderingUpdateScheduler"
        https://bugs.webkit.org/show_bug.cgi?id=204713
        https://trac.webkit.org/changeset/253299

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

        Finish encoding/decoding support for DisplayList::SetState
        https://bugs.webkit.org/show_bug.cgi?id=205018

        Reviewed by Tim Horton.

        Rebaseline several display list layout tests.

        * displaylists/layer-dispay-list-expected.txt:
        * platform/mac-wk1/displaylists/extent-includes-shadow-expected.txt:
        * platform/mac-wk1/displaylists/extent-includes-transforms-expected.txt:

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

        Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler
        https://bugs.webkit.org/show_bug.cgi?id=204713

        Reviewed by Simon Fraser.

        * fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Added.
        * fast/animation/request-animation-frame-throttling-outside-viewport.html: Added.
        * fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
        * fast/animation/request-animation-frame-throttling-lowPowerMode.html:
        * fast/animation/resources/frame-with-animation-2.html: Added.

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

        NetworkResourceLoader should consume its sandbox extensions when starting a fetch through service worker
        https://bugs.webkit.org/show_bug.cgi?id=204883
        <rdar://problem/57568535>

        Reviewed by Alex Christensen.

        * http/tests/resources/create-temp-file-iframe.html: Added.
        * http/tests/resources/delete-temp-file-iframe.html: Added.
        * http/wpt/service-workers/file-upload-check.py: Added.
        * http/wpt/service-workers/file-upload-expected.txt: Added.
        * http/wpt/service-workers/file-upload-worker.js: Added.
        * http/wpt/service-workers/file-upload.html: Added.

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

        compositing/video/video-border-radius-clipping.html is a flaky Image Failure
        https://bugs.webkit.org/show_bug.cgi?id=204951
        rdar://problem/57703078

        Unreviewed test gardening. Make the test seek so we have a higher chance
        of getting a video frame. It's apparently impossible to know when we have
        a frame for ref testing.

        * compositing/video/video-border-radius-clipping-expected.html:
        * compositing/video/video-border-radius-clipping.html:

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

        (r252889) webrtc/peerconnection-page-cache.html is crashing on iOS Debug
        https://bugs.webkit.org/show_bug.cgi?id=205017

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        Add an option to capture audio in GPU process
        https://bugs.webkit.org/show_bug.cgi?id=205007

        Reviewed by Eric Carlson.

        * fast/mediastream/captureAudioInGPUProcess-expected.txt: Added.
        * fast/mediastream/captureAudioInGPUProcess.html: Added.

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

        fast/mediastream/mediastreamtrack-video-clone.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=205006

        Reviewed by Eric Carlson.

        * fast/mediastream/mediastreamtrack-video-clone-expected.txt:
        * fast/mediastream/mediastreamtrack-video-clone.html:
        Add br to spot any potential issue with video elements to text dump.

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

        Support different resolutions for video tracks captured from UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=204945

        Reviewed by Eric Carlson.

        * fast/mediastream/mediastreamtrack-video-clone-expected.txt:
        * fast/mediastream/mediastreamtrack-video-clone.html:

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

        [iOS] WKWebView touch event gesture recognition should not block the application process main thread when possible
        https://bugs.webkit.org/show_bug.cgi?id=204664
        <rdar://problem/38670692>

        Reviewed by Tim Horton.

        * fast/events/touch/ios/prevent-default-on-touch-start-with-slow-event-listener-expected.txt: Added.
        * fast/events/touch/ios/prevent-default-on-touch-start-with-slow-event-listener.html: Added.
        * fast/events/touch/ios/scroll-on-touch-start-with-slow-event-listener-expected.txt: Added.
        * fast/events/touch/ios/scroll-on-touch-start-with-slow-event-listener.html: Added.

        Add new layout tests to cover behaviors when panning over active touchstart handlers that spin for an extended
        length of time (in this case, 400 milliseconds) in overflow scrolling containers. A touchstart handler that
        prevents default should still block scrolling, and a touchstart handler that does not should still allow the
        user to scroll.

        * fast/events/touch/ios/show-modal-alert-during-touch-start.html:
        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:

        Rebaseline these tests by changing some line numbers.

        * resources/ui-helper.js:
        (window.UIHelper.sendEventStream.return.new.Promise):
        (window.UIHelper.sendEventStream):

        Add a new UIHelper method to send a JSON object as an event stream.

        (UIHelper.EventStreamBuilder.prototype._reset):
        (UIHelper.EventStreamBuilder.prototype.begin):
        (UIHelper.EventStreamBuilder.prototype.move):
        (UIHelper.EventStreamBuilder.prototype.end):
        (UIHelper.EventStreamBuilder.prototype.takeResult):

        Add a new helper class to make it easier to construct event streams, for the purposes of sending to
        UIScriptController::sendEventStream.

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

        Unique origin's window must get its own event loop
        https://bugs.webkit.org/show_bug.cgi?id=204978

        Reviewed by Antti Koivisto.

        Added tests to make sure data URI documents continue to use the same event loop but documents of
        unique origin and of different schemes will use distinct event loops using newly added internals
        method (hasSameEventLoopAs). Also added assertions to the existing tests using this new method.

        * fast/eventloop: Added.
        * fast/eventloop/data-uri-document-has-its-own-event-loop-expected.txt: Added.
        * fast/eventloop/data-uri-document-has-its-own-event-loop.html: Added.
        * fast/eventloop/queue-task-across-frames-in-file-uri-expected.txt: Added.
        * fast/eventloop/queue-task-across-frames-in-file-uri.html: Added.
        * fast/eventloop/resources: Added.
        * fast/eventloop/resources/eventloop-helper.html: Added.
        * http/tests/eventloop/documents-with-different-protocols-do-not-share-event-loop-expected.txt: Added.
        * http/tests/eventloop/documents-with-different-protocols-do-not-share-event-loop.html: Added.
        * http/tests/eventloop/queue-task-across-cross-site-frames-expected.txt:
        * http/tests/eventloop/queue-task-across-cross-site-frames.html:
        * http/tests/eventloop/queue-task-across-frames-expected.txt:
        * http/tests/eventloop/queue-task-across-frames.html:

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

        Implementation of additional attribute caching in the IsolatedTree.
        https://bugs.webkit.org/show_bug.cgi?id=204918

        Reviewed by Chris Fleizach.

        The AXStart/EndTextMarker attributes were being computed for
        AccessibilityObjects that had a renderer object. With this change,
        AXStart/EndTextMarker are computed for all AccessibilityObjects. Thus
        the expected output for the following tests changed from null value for
        these attributes to valid object values.

        * accessibility/image-map2-expected.txt:
        * accessibility/mac/document-links-expected.txt:
        * accessibility/table-attributes-expected.txt:
        * accessibility/table-sections-expected.txt:

2019-12-06  Devin Rousso  <drousso@apple.com>

        Web Inspector: Uncaught Exception: Missing node for given nodeId
        https://bugs.webkit.org/show_bug.cgi?id=204519

        Reviewed by Timothy Hatcher.

        * http/tests/inspector/dom/cross-domain-inspected-node-access.html:
        * http/tests/inspector/dom/didFireEvent.html:
        * http/tests/inspector/network/resource-initiatorNode.html:
        * inspector/console/command-line-api.html:
        * inspector/css/add-css-property.html:
        * inspector/css/css-property.html:
        * inspector/css/force-page-appearance.html:
        * inspector/css/generateCSSRuleString.html:
        * inspector/css/matched-style-properties.html:
        * inspector/css/modify-css-property-race.html:
        * inspector/css/modify-css-property.html:
        * inspector/css/modify-inline-style.html:
        * inspector/css/modify-rule-selector.html:
        * inspector/css/overridden-property.html:
        * inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
        * inspector/css/pseudo-element-matches.html:
        * inspector/css/resolve-variable-value.html:
        * inspector/css/selector-dynamic-specificity.html:
        * inspector/css/selector-specificity.html:
        * inspector/css/shadow-scoped-style.html:
        * inspector/css/stylesheet-with-mutations.html:
        * inspector/dom-debugger/attribute-modified-style.html:
        * inspector/dom-debugger/dom-breakpoints.html:
        * inspector/dom/attributeModified.html:
        * inspector/dom/breakpoint-for-event-listener.html:
        * inspector/dom/csp-big5-hash.html:
        * inspector/dom/csp-hash.html:
        * inspector/dom/customElementState.html:
        * inspector/dom/domutilities-csspath.html:
        * inspector/dom/domutilities-path-dump.html:
        * inspector/dom/domutilities-xpath.html:
        * inspector/dom/event-listener-inspected-node.html:
        * inspector/dom/getEventListenersForNode.html:
        * inspector/dom/getOuterHTML.html:
        * inspector/dom/insertAdjacentHTML.html:
        * inspector/dom/pseudo-element-dynamic.html:
        * inspector/dom/pseudo-element-static.html:
        * inspector/dom/setAllowEditingUserAgentShadowTrees.html:
        * inspector/dom/setInspectedNode.html:
        * inspector/dom/setOuterHTML.html:
        * inspector/dom/shadow-and-non-shadow-children.html:
        * inspector/dom/shadowRootType.html:
        * inspector/dom/template-content.html:
        * inspector/model/dom-node.html:
        * inspector/page/hidpi-snapshot-size.html:

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

        Layout Test http/tests/xmlhttprequest/sync-xhr-in-unload.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=204974

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-12-06  Jonathan Bedard  <jbedard@apple.com>

        Unreviewed, rolling out r253148.

        This caused fast/mediastream/stream-switch.html to timeout on
        Mac.

        Reverted changeset:

        "WPT test MediaStream-MediaElement-srcObject.https.html times
        out"
        https://bugs.webkit.org/show_bug.cgi?id=204762
        https://trac.webkit.org/changeset/253148

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

        Prevent synchronous XHR in beforeunload / unload event handlers
        https://bugs.webkit.org/show_bug.cgi?id=204912
        <rdar://problem/57676394>

        Reviewed by Darin Adler.

        Add layout test coverage.

        * http/tests/xmlhttprequest/resources/sync-xhr-in-beforeunload-window.html: Added.
        * http/tests/xmlhttprequest/resources/sync-xhr-in-unload-window.html: Added.
        * http/tests/xmlhttprequest/sync-xhr-in-beforeunload-expected.txt: Added.
        * http/tests/xmlhttprequest/sync-xhr-in-beforeunload.html: Added.
        * http/tests/xmlhttprequest/sync-xhr-in-unload-expected.txt: Added.
        * http/tests/xmlhttprequest/sync-xhr-in-unload.html: Added.

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

        Support for resolving highlight pseudo element style
        https://bugs.webkit.org/show_bug.cgi?id=204937

        Reviewed by Simon Fraser.

        * highlight/highlight-pseudo-element-style-expected.txt: Added.
        * highlight/highlight-pseudo-element-style.html: Added.

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

        Protect WebRTC network monitoring to wait forever in edge cases
        https://bugs.webkit.org/show_bug.cgi?id=204846
        <rdar://problem/57618773>

        Reviewed by Eric Carlson.

        * webrtc/datachannel/gather-candidates-networkprocess-crash-expected.txt: Added.
        * webrtc/datachannel/gather-candidates-networkprocess-crash.html: Added.

2019-12-05  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: http/tests/inspector/target/pause-on-inline-debugger-statement.html is crashing in debug
        https://bugs.webkit.org/show_bug.cgi?id=204901

        Reviewed by Devin Rousso.

        Restructured the test to avoid inadvertent alert() when navigating to a new
        process. New logs are printed after inspected page has navigated.

        * http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt:
        * http/tests/inspector/target/pause-on-inline-debugger-statement.html:

2019-12-05  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: Avoid using Runtime.executionContextCreated to figure out the iframe's contentDocument node.
        https://bugs.webkit.org/show_bug.cgi?id=122764
        <rdar://problem/15222136>

        Reviewed by Devin Rousso.

        Test that execution context is created and reported for pages without JavaScript.

        * inspector/runtime/execution-context-in-scriptless-page-expected.txt: Added.
        * inspector/runtime/execution-context-in-scriptless-page.html: Added.

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

        maplike should define a set method
        https://bugs.webkit.org/show_bug.cgi?id=204877

        Reviewed by Chris Dumez.

        * highlight/highlight-interfaces-expected.txt:
        * highlight/highlight-interfaces.html:
        * js/dom/maplike-expected.txt: Added.
        * js/dom/maplike.html: Added.

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

        inspector/page/overrideSetting-MockCaptureDevicesEnabled.html is failing after removal of internals.setMockMediaCaptureDevicesEnabled API
        https://bugs.webkit.org/show_bug.cgi?id=204849

        Reviewed by Eric Carlson.

        Update test to use center state getters.

        * inspector/page/overrideSetting-MockCaptureDevicesEnabled-expected.txt:
        * inspector/page/overrideSetting-MockCaptureDevicesEnabled.html:

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

        WPT test MediaStream-MediaElement-srcObject.https.html times out
        https://bugs.webkit.org/show_bug.cgi?id=204762
        <rdar://problem/57567671>

        Reviewed by youenn fablet.

        * TestExpectations: Mark imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html
        as expected to fail because the failure message logs media times as floats, so the values
        logged are always different.

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

        getStats() promise never rejects nor resolves when peer connection state is closed.
        https://bugs.webkit.org/show_bug.cgi?id=204842
        <rdar://problem/57617107>

        Reviewed by Eric Carlson.

        * webrtc/video-stats-expected.txt:
        * webrtc/video-stats.html:

2019-12-04  Jack Lee  <shihchieh_lee@apple.com>

        Nullptr crash in RenderLayoutState::pageLogicalHeight const via RenderGrid::computeIntrinsicLogicalWidths inside RenderMarquee::updateMarqueePosition
        https://bugs.webkit.org/show_bug.cgi?id=204527

        Reviewed by Ryosuke Niwa.

        * fast/table/crash-empty-layoutStateStack-expected.txt: Added.
        * fast/table/crash-empty-layoutStateStack.html: Added.

2019-12-04  Alexey Shvayka  <shvaikalesh@gmail.com>

        Non-callable "handleEvent" property is silently ignored
        https://bugs.webkit.org/show_bug.cgi?id=200066

        Reviewed by Ryosuke Niwa.

        * fast/dom/exception-getting-event-handler-expected.txt:

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

        Adopt UIHelper in a few more layout tests in fast/events
        https://bugs.webkit.org/show_bug.cgi?id=204855

        Reviewed by Darin Adler.

        Fixes and cleans up some more layout tests; see below for details.

        * fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html:

        Use async-await here, as well as UIHelper.dragFromPointToPoint.

        * fast/events/ios/viewport-device-width-at-initial-scale-fast-clicks-expected.txt:
        * fast/events/ios/viewport-device-width-at-initial-scale-fast-clicks.html:

        This test sometimes times out when run in rapid succession, due to touches being dispatched while the test is
        finishing. Fix this (and also simplify the test) by using UIHelper instead to synthesize taps, and only finish
        the layout test after the expected number of clicks have been observed and all tap gestures have been sent.

        * fast/events/touch/ios/passive-by-default-overridden-on-document-and-window-expected.txt:
        * fast/events/touch/ios/passive-by-default-overridden-on-document-and-window.html:

        This test currently fails due to finishing too early, before the touchend event is observed; fix this by waiting
        for touchend events before finishing the test.

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

        imported/w3c/web-platform-tests/wasm/jsapi/interface.any.worker.html is a flakey failure, WebAssembly.Global is not implemented
        https://bugs.webkit.org/show_bug.cgi?id=200258

        Reviewed by Saam Barati.

        We implemented WebAssembly.Global now. So let's unmark it.

        * platform/mac/TestExpectations:

2019-12-04  Kate Cheney  <katherine_cheney@apple.com>

        Expose basic ITP data from the database for future API/SPI use
        https://bugs.webkit.org/show_bug.cgi?id=203432
        <rdar://problem/56085040>

        Reviewed John Wilander.

        Added new tests to check if basic ITP data is properly
        collected and sorted for both the database store and the memory store.
        Also edited any tests which use dumpResourceLoadStatistics() to also
        expect the new aggregated data to be displayed.

        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt:
        * http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt:
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt:
        * http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt:
        * http/tests/resourceLoadStatistics/user-interface-data-no-storage-access-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interface-data-no-storage-access-database.html: Added.
        * http/tests/resourceLoadStatistics/user-interface-data-no-storage-access-expected.txt: Added.
        * http/tests/resourceLoadStatistics/user-interface-data-no-storage-access.html: Added.
        * http/tests/storageAccess/user-interface-data-with-storage-access-database-expected.txt: Added.
        * http/tests/storageAccess/user-interface-data-with-storage-access-database.html: Added.
        * http/tests/storageAccess/user-interface-data-with-storage-access-expected.txt: Added.
        * http/tests/storageAccess/user-interface-data-with-storage-access.html: Added.

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

        [LFC][Integration] Paint with TextPainter
        https://bugs.webkit.org/show_bug.cgi?id=204852

        Reviewed by Zalan Bujtas.

        * fast/layoutformattingcontext/flow-integration-basic-paint-expected.html: Added.
        * fast/layoutformattingcontext/flow-integration-basic-paint.html: Added.

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

        Implement the CSS clamp() function
        https://bugs.webkit.org/show_bug.cgi?id=203310
        <rdar://problem/56551088>

        Reviewed by Antti Koivisto.

        Some basic clamp() parsing tests (valid and invalid inputs).

        * fast/css/calc-parsing-expected.txt:
        * fast/css/calc-parsing.html:

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

        Update WPT tools directory
        https://bugs.webkit.org/show_bug.cgi?id=204728

        Reviewed by Simon Fraser.

        * TestExpectations:

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

        WebProcessPool::terminateServiceWorkerProcess should be renamed terminateServiceWorkers
        https://bugs.webkit.org/show_bug.cgi?id=204792

        Reviewed by Chris Dumez.

        * http/tests/workers/service/resources/postmessage-after-sw-process-crash.js:

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

        Add support for WebIDL setlike
        https://bugs.webkit.org/show_bug.cgi?id=159140

        Reviewed by Chris Dumez.

        * js/dom/setlike-expected.txt: Added.
        * js/dom/setlike.html: Added.

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

        Web Inspector: allow inspector to pause provisional page load and restore its state
        https://bugs.webkit.org/show_bug.cgi?id=204170

        Reviewed by Devin Rousso.

        Test that provisional loading which starts before previos provisional loading
        commits will be correctly handled by the insepctor.

        Test that script execution will break on debugger statement in inline scripts in
        case of cross origin navigation and PSON.

        * http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt: Added.
        * http/tests/inspector/target/pause-on-inline-debugger-statement.html: Added.
        * http/tests/inspector/target/provisional-load-cancels-previous-load-expected.txt: Added.
        * http/tests/inspector/target/provisional-load-cancels-previous-load.html: Added.
        * http/tests/inspector/target/resources/inline-debugger-statement.html: Added.
        * http/tests/inspector/target/target-events-for-provisional-page-expected.txt:
        * http/tests/inspector/target/target-events-for-provisional-page.html:

2019-12-03  Megan Gardner  <megan_gardner@apple.com>

        Add disabled highlight API skeleton
        https://bugs.webkit.org/show_bug.cgi?id=204809

        Reviewed by Ryosuke Niwa.

        * highlight/highlight-interfaces-expected.txt: Added.
        * highlight/highlight-interfaces.html: Added.

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

        Perform microtask checkpoint after each task as spec'ed
        https://bugs.webkit.org/show_bug.cgi?id=204546
        <rdar://problem/57449333>

        Reviewed by Chris Dumez.

        Added a regresion test using newly added internals methods.

        * http/tests/eventloop/perform-microtask-checkpoint-at-end-of-task-expected.txt: Added.
        * http/tests/eventloop/perform-microtask-checkpoint-at-end-of-task.html: Added.

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

        Unreviewed test gardening.

        Update legacy-animation-engine/fast/css/calc-with-angle-time-frequency.html to match fast/css/calc-with-angle-time-frequency.html
        for new calc() behavior.

        * legacy-animation-engine/fast/css/calc-with-angle-time-frequency-expected.txt:
        * legacy-animation-engine/fast/css/calc-with-angle-time-frequency.html:

2019-12-03  John Wilander  <wilander@apple.com>

        Resource Load Statistics (experimental): Delete non-cookie website data after 7 days of no user interaction
        https://bugs.webkit.org/show_bug.cgi?id=204779
        <rdar://problem/57578989>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database.html:
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
            Fixed some minor stuff in these two test cases to make any failures more clear.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-expected.txt: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-database-expected.txt: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-database.html: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-expected.txt: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction.html: Added.

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  Simon Fraser  <simon.fraser@apple.com>

        calc() serialization doesn't match the spec
        https://bugs.webkit.org/show_bug.cgi?id=203442

        Reviewed by Dean Jackson.

        New results, mainly because of new simplification rules.

        * css3/calc/cssom-expected.txt:
        * css3/calc/simplification-expected.txt:
        * css3/flexbox/flex-property-parsing-expected.txt:
        * css3/flexbox/flex-property-parsing.html:
        * css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
        * css3/scroll-snap/scroll-snap-property-computed-style.js:
        * css3/scroll-snap/scroll-snap-property-parsing-expected.txt:
        * css3/scroll-snap/scroll-snap-property-parsing.js:
        * css3/shapes/shape-outside/values/support/parsing-utils.js:
        * fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
        * fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
        * fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
        * fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
        * fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
        * fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
        * fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:
        * fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:
        * fast/css/calc-parsing-expected.txt: Added.
        * fast/css/calc-parsing-limits-expected.txt: Added.
        * fast/css/calc-parsing-limits.html: Added.
        * fast/css/calc-parsing.html: Added.
        * fast/css/calc-with-angle-time-frequency-expected.txt:
        * fast/css/calc-with-angle-time-frequency.html:
        * fast/css/column-width-calculated-value-expected.txt:
        * fast/css/column-width-calculated-value.html:
        * fast/css/turn-angle-double-expected.txt:
        * fast/css/turn-angle-double.html:
        * fast/shapes/parsing/parsing-shape-outside-expected.txt:
        * fast/shapes/parsing/parsing-test-utils.js:

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>

        [ MacOS ] 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>

        [ MacOS ] 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 ==
