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