2018-03-23  Daniel Bates  <dabates@apple.com>

        Unreviewed, rolling out r229868.

        Caused media controls tests to timeout. Will investigate
        offline.

        Reverted changeset:

        "CSS mask images should be retrieved using potentially CORS-
        enabled fetch"
        https://bugs.webkit.org/show_bug.cgi?id=179983
        https://trac.webkit.org/changeset/229868

2018-03-23  Per Arne Vollan  <pvollan@apple.com>

        Mark accessibility/row-with-aria-role-in-native-table.html as failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=183955

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-03-23  Per Arne Vollan  <pvollan@apple.com>

        Mark some CSS animations tests as failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=183953

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-03-23  Eric Carlson  <eric.carlson@apple.com>

        HTMLElement factory doesn't need to call MediaPlayer::isAvailable
        https://bugs.webkit.org/show_bug.cgi?id=183946
        <rdar://problem/38802687>

        Reviewed by Youenn Fablet.

        * media/media-disabled-expected.txt: Added.
        * media/media-disabled.html: Added.

2018-03-23  Ryan Haddad  <ryanhaddad@apple.com>

        Only enable LayoutTest fast/css/apple-system-control-colors.html on macOS.

        Unreviewed test gardening.

        * TestExpectations:
        * platform/mac/TestExpectations:

2018-03-23  Adrian Perez de Castro  <aperez@igalia.com>

        Unreviewed WPE gardening.

        Removed imported/mathml-in-html5 from WPE test expectations, as the
        path does not exit anymore after r229601

        * platform/wpe/TestExpectations: Removd imported/mathml-in-html5

2018-03-23  Youenn Fablet  <youenn@apple.com>

        Safari WebKitWebRTCAudioModule crash during <video> tag update when audio track present in MediaStream
        https://bugs.webkit.org/show_bug.cgi?id=181180
        <rdar://problem/36302375>

        Reviewed by Eric Carlson.

        * webrtc/video-update-often-expected.txt: Added.
        * webrtc/video-update-often.html: Added.

2018-03-23  Antoine Quint  <graouts@apple.com>

        [Web Animations] infinite repeat counts aren't reflected for CSS Animations
        https://bugs.webkit.org/show_bug.cgi?id=183932

        Reviewed by Dean Jackson.

        One of the Mozilla tests now passes completely and reliably.

        * TestExpectations:

2018-03-22  Antoine Quint  <graouts@apple.com>

        [Web Animations] Correctly cancel animations when a parent gets a "display: none" style or when an element is removed
        https://bugs.webkit.org/show_bug.cgi?id=183919

        Reviewed by Dean Jackson.

        Three of the imported Mozilla tests now pass reliably, removing them from the list of flaky failure and timeout tests.

        * TestExpectations:

2018-03-23  Antoine Quint  <graouts@apple.com>

        [Web Animations] Animated transform styles are ignored when calling getComputedStyle()
        https://bugs.webkit.org/show_bug.cgi?id=183918

        Reviewed by Dean Jackson.

        We obtain a number of progressions by correctly serializing the transform property on getComputedStyle().

        * 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/interpolation-per-property-expected.txt:

2018-03-23  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK+ gardening.

        Add a port-specific baseline for fast/css/apple-system-control.html.

        Mark http/wpt/service-workers tests as a mix of failures and passes,
        since a lot of the tests pass now that service workers were enabled, but
        the passing ones are still in minority and there's additionally flaky
        tests. This should improve after necessary testing SW directories are
        properly specified.

        In contrast, a bunch of SW-reliant tests under
        imported/w3c/web-platform-tests/streams are now passing consistently.
        Failure expectations for these are removed.

        Failue expectations for three compositing tests are also removed after
        r229804 fixed them.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/css/apple-system-control-colors-expected.txt: Added.

2018-03-22  Nan Wang  <n_wang@apple.com>

        AX: Web table row count is incorrect when role row is added to <tr> in DOM
        https://bugs.webkit.org/show_bug.cgi?id=183922

        Reviewed by Chris Fleizach.

        * accessibility/row-with-aria-role-in-native-table-expected.txt: Added.
        * accessibility/row-with-aria-role-in-native-table.html: Added.

2018-03-22  Daniel Bates  <dabates@apple.com>

        CSS mask images should be retrieved using potentially CORS-enabled fetch
        https://bugs.webkit.org/show_bug.cgi?id=179983
        <rdar://problem/35678149>

        Reviewed by Brent Fulgham.

        Add a test to ensure we do not fetch a cross-origin CSS mask image that does
        not allow CORS access.

        * http/tests/security/css-mask-image-expected.html: Added.
        * http/tests/security/css-mask-image.html: Added.
        * http/tests/security/resources/black-square.png: Added.
        * http/tests/security/resources/fail-mask.png: Added.

2018-03-22  Zalan Bujtas  <zalan@apple.com>

        [Simple line layout] Text with letter spacing is not positioned properly.
        https://bugs.webkit.org/show_bug.cgi?id=183079
        <rdar://problem/38762569>

        Reviewed by Antti Koivisto.

        * fast/text/simple-line-layout-dynamic-letter-word-spacing-expected.html: Added.
        * fast/text/simple-line-layout-dynamic-letter-word-spacing.html: Added.

2018-03-22  Adrian Perez de Castro  <aperez@igalia.com>

        [WPE] Enable WOFF2 support
        https://bugs.webkit.org/show_bug.cgi?id=178158

        Reviewed by Frédéric Wang.

        * platform/wpe/TestExpectations: Unskip the fast/text/woff2.html and fast/text/woff2-totalsfntsize.html

2018-03-21  Antoine Quint  <graouts@apple.com>

        [Web Animations] Make imported/mozilla/css-animations/test_event-dispatch.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183845

        Reviewed by Dean Jackson.

        A couple of crashing tests no longer crash and a couple are now reliably passing.

        * TestExpectations:

2018-03-22  Ross Kirsling  <ross.kirsling@sony.com>

        Unreviewed gardening. Update WinCairo TestExpectations and drop the unnecessary suffix.

        * platform/wincairo-win10/TestExpectations: Removed.
        * platform/wincairo/TestExpectations: Added.

2018-03-22  Zalan Bujtas  <zalan@apple.com>

        Unreviewed gardening.

        Unskipping imported/blink/svg/css/path-layout-crash.html (should have been unskipped with r229782). 

        * TestExpectations:

2018-03-22  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r229847.

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/loading/simple-subframe-expected.txt:
        * platform/gtk/http/tests/navigation/redirect-to-fragment2-expected.txt: Added.
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:

2018-03-22  Zalan Bujtas  <zalan@apple.com>

        SVG root is skipped while marking percentage height descendants dirty.
        https://bugs.webkit.org/show_bug.cgi?id=183877

        Reviewed by Antti Koivisto.

        * TestExpectations:

2018-03-22  Frederic Wang  <fwang@igalia.com>

        [MathML] Import WPT test to replace mathml/opentype/large-operators-italic-correction.html
        https://bugs.webkit.org/show_bug.cgi?id=183891

        Reviewed by Manuel Rego Casasnovas.

        Remove large-operators-italic-correction.html. Italic correction is tested more completely by
        a new WPT test that does not require Latin Modern Math to be installed on the try bots.

        * mathml/opentype/large-operators-italic-correction-expected.txt: Removed.
        * mathml/opentype/large-operators-italic-correction.html: Removed.
        * platform/ios/TestExpectations: Remove test expectation.
        * platform/mac/TestExpectations: Ditto.
        * platform/win/TestExpectations: Ditto.

2018-03-21  Chris Dumez  <cdumez@apple.com>

        Regression(r229831): fast/loader/javascript-url-iframe-remove-on-navigate-async-delegate.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=183885

        Unreviewed, temporarily mark the test as flaky while I investigate.

        * TestExpectations:

2018-03-21  Ryan Haddad  <ryanhaddad@apple.com>

        Mark fast/scrolling/latching/scroll-div-no-latching.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183879

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-03-21  Ryan Haddad  <ryanhaddad@apple.com>

        Mark inspector/console/messageAdded-from-named-evaluations.html as slow.
        https://bugs.webkit.org/show_bug.cgi?id=183880

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-03-21  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/modern-media-controls/seek-backward-support/seek-backward-support.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183869

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-03-21  Chris Dumez  <cdumez@apple.com>

        Make policy decisions asynchronous
        https://bugs.webkit.org/show_bug.cgi?id=180568
        <rdar://problem/37131297>

        Reviewed by Alex Christensen.

        Rebaseline tests for WebKit2. The issue is that some tests dump policy delegate calls
        and things now happen in a slightly different order now that those delegates are
        asynchronous.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt:
        * platform/ios/http/tests/loading/simple-subframe-expected.txt:
        * platform/mac-wk2/http/tests/loading/simple-subframe-expected.txt: Copied from LayoutTests/platform/ios/http/tests/loading/simple-subframe-expected.txt.
        * platform/wk2/fast/loader/fragment-navigation-base-blank-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/fast/loader/iframe-meta-refresh-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/iframe-set-location-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/main-document-url-for-non-http-loads-expected.txt: Added.
        * platform/wk2/fast/loader/refresh-iframe-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/subframe-removes-itself-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt: Added.
        * platform/wk2/http/tests/contentextensions/block-everything-unless-domain-expected.txt: Added.
        * platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
        * platform/wk2/http/tests/loading/bad-server-subframe-expected.txt: Added.
        * platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
        * platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt: Added.
        * platform/wk2/http/tests/loading/slow-parsing-subframe-expected.txt: Added.
        * platform/wk2/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt: Added.
        * platform/wk2/http/tests/misc/window-dot-stop-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-preserves-fragment-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-to-fragment-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-to-invalid-url-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/blocked-on-redirect-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/http-0.9/iframe-blocked-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-with-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-form-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/javascript-url-form-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/inspector/page/frameScheduledNavigation-expected.txt: Added.
        * platform/wk2/loader/go-back-cached-main-resource-expected.txt: Added.
        * platform/wk2/webarchive/loading/mainresource-null-mimetype-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/webarchive/loading/test-loading-archive-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/webarchive/loading/video-in-webarchive-expected.txt: Renamed from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.

2018-03-21  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Disconnect the SVGPathSegList items from their SVGPathElement before rebuilding a new list
        https://bugs.webkit.org/show_bug.cgi?id=183723
        <rdar://problem/38517871>

        Reviewed by Daniel Bates.

        * svg/dom/reuse-pathseg-after-changing-d-expected.txt: Added.
        * svg/dom/reuse-pathseg-after-changing-d.html: Added.

2018-03-21  Ryan Haddad  <ryanhaddad@apple.com>

        Skip imported/w3c/web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html.
        https://bugs.webkit.org/show_bug.cgi?id=182176

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-03-21  Ryan Haddad  <ryanhaddad@apple.com>

        Skip http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html.
        https://bugs.webkit.org/show_bug.cgi?id=183093

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-03-21  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/track/track-css-matching-timestamps.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183220

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-03-21  Jer Noble  <jer.noble@apple.com>

        REGRESSION (r226059?): [macOS WK2] Layout Test fast/mediastream/MediaStream-MediaElement-setObject-null.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181069
        <rdar://problem/36188221>

        Reviewed by Youenn Fablet.

        Pass the function into the play() promise handler rather than calling it immediately.

        * fast/mediastream/MediaStream-MediaElement-setObject-null.html:
        * platform/mac-wk2/TestExpectations:

2018-03-21  Antoine Quint  <graouts@apple.com>

        [Web Animations] Dispatch DOM events for CSS Transitions and CSS Animations implemented as Web Animations
        https://bugs.webkit.org/show_bug.cgi?id=183781

        Reviewed by Dean Jackson.

        New attribute-based event handlers are now exposed, update the expectations for those.

        * js/dom/dom-static-property-for-in-iteration-expected.txt:

2018-03-21  Antoine Quint  <graouts@apple.com>

        [Web Animations] Import CSS Animations and CSS Transitions as Web Animations tests from Mozilla
        https://bugs.webkit.org/show_bug.cgi?id=183851

        Reviewed by Jon Lee.

        Mark all imported tests as flaky failures or timeouts while we work on making them pass reliably.
        Each test has a dedicated bug tracking progress.

        * TestExpectations:

2018-03-21  Ms2ger  <Ms2ger@igalia.com>

        [GTK] Mark fast/forms/file/entries-api/webkitdirectory-open-panel.html as passing.
        https://bugs.webkit.org/show_bug.cgi?id=176024

        Unreviewed test gardening.

        It has been passing since the test was changed not to rely on the order
        of files in the list in r229642.

        * platform/gtk/TestExpectations:

2018-03-21  Frederic Wang  <fwang@igalia.com>

        [iOS] Text highlighted by the Find UI overlaps with NBC news header on google.com
        https://bugs.webkit.org/show_bug.cgi?id=183658

        Reviewed by Tim Horton.

        Improve the test added in r224284, so that we test when a result is revealed at
        the center of the overflow node.

        * platform/ios/fast/scrolling/find-text-in-overflow-node.html: Put some content after
        'match 4' so that the overflow node can scroll and make the text appear at the center.
        Perform more accurate testing of the scrollTop of the overflow node.
        * platform/ios/fast/scrolling/find-text-in-overflow-node-expected.txt: Update expectation.

2018-03-20  Zalan Bujtas  <zalan@apple.com>

        RenderTreeNeedsLayoutChecker fails with absolutely positioned svg and <use>
        https://bugs.webkit.org/show_bug.cgi?id=183718

        Reviewed by Antti Koivisto.

        * svg/in-html/path-with-absolute-positioned-svg-and-use-crash-expected.txt: Added.
        * svg/in-html/path-with-absolute-positioned-svg-and-use-crash.html: Added.

2018-03-20  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/appcache/abort-cache-onprogress.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183684

        Unreviewed test gardening.

        * TestExpectations:

2018-03-20  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/wpt/webrtc/third-party-frame-ice-candidate-filtering.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183801

        Unreviewed test gardening.

        * platform/wk2/TestExpectations:

2018-03-20  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r229726 and r229763.

        Caused some API test failures on iOS

        Reverted changesets:

        "Make policy decisions asynchronous"
        https://bugs.webkit.org/show_bug.cgi?id=180568
        https://trac.webkit.org/changeset/229726

        "Rebaseline three webarchive tests for WK2 after r229726."
        https://bugs.webkit.org/show_bug.cgi?id=180568
        https://trac.webkit.org/changeset/229763

2018-03-20  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline three webarchive tests for WK2 after r229726.
        https://bugs.webkit.org/show_bug.cgi?id=180568

        Unreviewed test gardening.

        * platform/wk2/webarchive/loading/missing-data-expected.txt: Added.
        * platform/wk2/webarchive/loading/object-expected.txt: Added.
        * platform/wk2/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt: Added.

2018-03-20  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline three forms tests after r229730.

        Unreviewed test gardening.

        * platform/mac/fast/forms/basic-selects-expected.txt:
        * platform/mac/fast/forms/disabled-select-change-index-expected.txt:
        * platform/mac/fast/forms/select-disabled-appearance-expected.txt:

2018-03-20  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline a test after the case of the 'Strong Password' localized string was changed in r229724.

        Unreviewed test gardening.

        * platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
        * platform/mac/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:

2018-03-20  Ryan Haddad  <ryanhaddad@apple.com>

        Skip http/tests/storageAccess/grant-storage-access-under-opener.html on iOS debug.
        https://bugs.webkit.org/show_bug.cgi?id=183714

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2018-03-19  Brady Eidson  <beidson@apple.com>

        Add a layout test verifying AppCache resource fetches have the document's cookie in place.
        https://bugs.webkit.org/show_bug.cgi?id=183757

        Reviewed by Alex Christensen.

        * http/tests/appcache/document-cookie-expected.txt: Added.
        * http/tests/appcache/document-cookie.php: Added.
        * http/tests/appcache/resources/cookie-protected-script.php: Added.
        * http/tests/appcache/resources/document-cookie.manifest: Added.

2018-03-19  Chris Dumez  <cdumez@apple.com>

        Make policy decisions asynchronous
        https://bugs.webkit.org/show_bug.cgi?id=180568
        <rdar://problem/37131297>

        Reviewed by Alex Christensen.

        Rebaseline tests for WebKit2. The issue is that some tests dump policy delegate calls
        and things now happen in a slightly different order now that those delegates are
        asynchronous.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt:
        * platform/ios/http/tests/loading/simple-subframe-expected.txt:
        * platform/mac-wk2/http/tests/loading/simple-subframe-expected.txt: Copied from LayoutTests/platform/ios/http/tests/loading/simple-subframe-expected.txt.
        * platform/wk2/fast/loader/fragment-navigation-base-blank-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/fast/loader/iframe-meta-refresh-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/iframe-set-location-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/main-document-url-for-non-http-loads-expected.txt: Added.
        * platform/wk2/fast/loader/refresh-iframe-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/subframe-removes-itself-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt: Added.
        * platform/wk2/http/tests/contentextensions/block-everything-unless-domain-expected.txt: Added.
        * platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
        * platform/wk2/http/tests/loading/bad-server-subframe-expected.txt: Added.
        * platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
        * platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt: Added.
        * platform/wk2/http/tests/loading/slow-parsing-subframe-expected.txt: Added.
        * platform/wk2/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt: Added.
        * platform/wk2/http/tests/misc/window-dot-stop-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-preserves-fragment-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-to-fragment-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-to-invalid-url-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/blocked-on-redirect-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/http-0.9/iframe-blocked-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-with-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-form-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/javascript-url-form-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/inspector/page/frameScheduledNavigation-expected.txt: Added.
        * platform/wk2/loader/go-back-cached-main-resource-expected.txt: Added.
        * platform/wk2/webarchive/loading/mainresource-null-mimetype-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/webarchive/loading/test-loading-archive-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/webarchive/loading/video-in-webarchive-expected.txt: Renamed from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.

2018-03-19  Chris Dumez  <cdumez@apple.com>

        WebKit.WebsitePoliciesAutoplayQuirks API test times out with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183702
        <rdar://problem/38566060>

        Reviewed by Alex Christensen.

        Add variant of fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash.html with async navigation
        delegate since the previous iteration of this patch broke this test case.

        * fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-async-delegate-expected.txt: Added.
        * fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-async-delegate.html: Added.

2018-03-17  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement authenticatorMakeCredential
        https://bugs.webkit.org/show_bug.cgi?id=183527
        <rdar://problem/35275886>

        Reviewed by Brent Fulgham.

        * http/wpt/credential-management/credentialscontainer-store-basics.https.html:
        * http/wpt/webauthn/idl.https.html:
        * http/wpt/webauthn/public-key-credential-create-success.https.html:

2018-03-16  Brent Fulgham  <bfulgham@apple.com>

        Correct debug assertion in Range::borderAndTextRects
        https://bugs.webkit.org/show_bug.cgi?id=183710
        <rdar://problem/38466976>

        Reviewed by Ryosuke Niwa.

        * fast/dom/Range/range-selection-empty-body-expected.txt: Added.
        * fast/dom/Range/range-selection-empty-body.html: Added.

2018-03-16  Youenn Fablet  <youenn@apple.com>

        Add a test verifying that an AppCache manifest request includes credentials
        https://bugs.webkit.org/show_bug.cgi?id=183716

        Reviewed by Chris Dumez.

        * http/tests/appcache/appcache-cookies-expected.txt: Added.
        * http/tests/appcache/appcache-cookies.html: Added.
        * http/tests/appcache/resources/appcache-cookies-test.html: Added.
        * http/tests/appcache/resources/manifest-if-cookie.php: Added.

2018-03-15  Ryan Haddad  <ryanhaddad@apple.com>

        Skip editing/pasteboard/data-transfer-get-data-on-pasting-html-uses-blob-url.html on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=183219

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-03-16  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: AccessibilityNodeObject::textForLabelElement() doesn't follow AccName calculation rules
        https://bugs.webkit.org/show_bug.cgi?id=183661

        Reviewed by Chris Fleizach.

        * accessibility/aria-label-on-label-element-expected.txt: Moved from Mac tests to shared tests.
        * accessibility/aria-label-on-label-element.html: Moved from Mac tests to shared tests.
        * accessibility/label-with-pseudo-elements-expected.txt: Added.
        * accessibility/label-with-pseudo-elements.html: Added.
        * platform/gtk/accessibility/aria-label-on-label-element-expected.txt: Added.
        * platform/gtk/accessibility/label-with-pseudo-elements-expected.txt: Added.
        * platform/mac/accessibility/label-with-pseudo-elements-expected.txt: Added.
        * platform/win/accessibility/label-with-pseudo-elements-expected.txt: Added.

2018-03-16  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Rebaseline for web-platform-tests specific test

        Unreviewed gardening.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:

2018-03-16  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][WPE] Remove baselines for FileAPI test.

        Unreviewed gardening. Now with service workers the results in both
        WPE and GTK+ are the same as the default expectation.
        * platform/gtk/imported/w3c/web-platform-tests/FileAPI/historical.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/FileAPI/historical.https-expected.txt: Removed.

2018-03-15  Matt Lewis  <jlewis3@apple.com>

        Rebaselined test on macOS WK1 after r229642.

        Unreviewed test gardening.

        * platform/mac-wk1/fast/forms/file/entries-api/webkitdirectory-open-panel-expected.txt:

2018-03-15  Chris Dumez  <cdumez@apple.com>

        Unreviewed, mark location-protocol-setter-non-broken-async-delegate.html as flaky on all platforms, not just WK1

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

2018-03-15  Youenn Fablet  <youenn@apple.com>

        Bad configuration parameters should make RTCPeerConnection constructor throw
        https://bugs.webkit.org/show_bug.cgi?id=183615

        Reviewed by Eric Carlson.

        Removed tests that are subsumed by WPT ones.

        * fast/mediastream/RTCPeerConnection-expected.txt: Removed.
        * fast/mediastream/RTCPeerConnection-getConfiguration-expected.txt: Removed.
        * fast/mediastream/RTCPeerConnection-getConfiguration.html: Removed.
        * fast/mediastream/RTCPeerConnection.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:

2018-03-15  Youenn Fablet  <youenn@apple.com>

        replaceTrack triggers negotiationneeded
        https://bugs.webkit.org/show_bug.cgi?id=180342
        <rdar://problem/35822426>

        Reviewed by Eric Carlson.

        * webrtc/video-replace-track.html:

2018-03-15  Chris Dumez  <cdumez@apple.com>

        webkitdirectory-open-panel stumbles over unordered results
        https://bugs.webkit.org/show_bug.cgi?id=183643

        Reviewed by Wenson Hsieh.

        Update fast/forms/file/entries-api/webkitdirectory-open-panel.html to not rely on a
        specific file ordering when checking input.files.

        * fast/forms/file/entries-api/webkitdirectory-open-panel-expected.txt:
        * fast/forms/file/entries-api/webkitdirectory-open-panel.html:

2018-03-15  Youenn Fablet  <youenn@apple.com>

        Layout Test http/wpt/service-workers/update-service-worker.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181753
        <rdar://problem/36605091>

        Unreviewed.

        * platform/mac-wk2/TestExpectations: Test is no longer flaky on High Sierra Release.

2018-03-15  Youenn Fablet  <youenn@apple.com>

        MessagePort is not always destroyed on the right thread
        https://bugs.webkit.org/show_bug.cgi?id=183619
        <rdar://problem/38204711>

        Reviewed by Chris Dumez.

        * TestExpectations:
        * http/tests/workers/worker-messageport-2-expected.txt: Added.
        * http/tests/workers/worker-messageport-2.html: Added.

2018-03-15  Ms2ger  <Ms2ger@igalia.com>

        [GTK][WPE] Enable service workers
        https://bugs.webkit.org/show_bug.cgi?id=178576

        Reviewed by Žan Doberšek.

        * platform/wpe/TestExpectations: update remaining expectations to point to another bug.

2018-03-14  Devin Rousso  <webkit@devinrousso.com>

        Web Inspector: Canvas: a recording initiated by the user should be shown immediately on completion
        https://bugs.webkit.org/show_bug.cgi?id=183647
        <rdar://problem/38479187>

        Reviewed by Matt Baker.

        * inspector/canvas/recording-2d.html:
        Reorder the agent calls so that the CanvasManager `_recordingCanvas` state variable has a
        chance to properly update after a recording is stopped.

2018-03-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r229613.

        Caused API test failures

        Reverted changeset:

        "Make policy decisions asynchronous"
        https://bugs.webkit.org/show_bug.cgi?id=180568
        https://trac.webkit.org/changeset/229613

2018-03-14  Youenn Fablet  <youenn@apple.com>

        MessagePort should remove its listeners when being closed
        https://bugs.webkit.org/show_bug.cgi?id=183644

        Reviewed by Chris Dumez.

        * http/tests/workers/resources/messageport-echo-worker.js: Added.
        * http/tests/workers/worker-messageport-expected.txt: Added.
        * http/tests/workers/worker-messageport.html: Added.

2018-03-14  Chris Dumez  <cdumez@apple.com>

        Make policy decisions asynchronous
        https://bugs.webkit.org/show_bug.cgi?id=180568
        <rdar://problem/37131297>

        Reviewed by Alex Christensen.

        Rebaseline tests for WebKit2. The issue is that some tests dump policy delegate calls
        and things now happen in a slightly different order now that those delegates are
        asynchronous.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt:
        * platform/ios/http/tests/loading/simple-subframe-expected.txt:
        * platform/mac-wk2/http/tests/loading/simple-subframe-expected.txt: Copied from LayoutTests/platform/ios/http/tests/loading/simple-subframe-expected.txt.
        * platform/wk2/fast/loader/fragment-navigation-base-blank-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/fast/loader/iframe-meta-refresh-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/iframe-set-location-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/main-document-url-for-non-http-loads-expected.txt: Added.
        * platform/wk2/fast/loader/refresh-iframe-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
        * platform/wk2/fast/loader/subframe-removes-itself-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt: Added.
        * platform/wk2/http/tests/contentextensions/block-everything-unless-domain-expected.txt: Added.
        * platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
        * platform/wk2/http/tests/loading/bad-server-subframe-expected.txt: Added.
        * platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
        * platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt: Added.
        * platform/wk2/http/tests/loading/slow-parsing-subframe-expected.txt: Added.
        * platform/wk2/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt: Added.
        * platform/wk2/http/tests/misc/window-dot-stop-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-preserves-fragment-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-to-fragment-expected.txt: Added.
        * platform/wk2/http/tests/navigation/redirect-to-invalid-url-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt: Added.
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt: Added.
        * platform/wk2/http/tests/security/blocked-on-redirect-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/http-0.9/iframe-blocked-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-css-with-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-form-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/javascript-url-form-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/inspector/page/frameScheduledNavigation-expected.txt: Added.
        * platform/wk2/loader/go-back-cached-main-resource-expected.txt: Added.
        * platform/wk2/webarchive/loading/mainresource-null-mimetype-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/webarchive/loading/test-loading-archive-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
        * platform/wk2/webarchive/loading/video-in-webarchive-expected.txt: Renamed from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.

2018-03-14  Ryan Haddad  <ryanhaddad@apple.com>

        Skip three svg LayoutTests.
        https://bugs.webkit.org/show_bug.cgi?id=183572

        Unreviewed test gardening.

        * TestExpectations:

2018-03-14  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:

2018-03-14  Chris Fleizach  <cfleizach@apple.com>

        AX: Implement accessible dismiss action on iOS
        https://bugs.webkit.org/show_bug.cgi?id=183352
        <rdar://problem/38161500>

        Reviewed by Zalan Bujtas.

        * accessibility/ios-simulator/AOM-dismiss-event-expected.txt: Added.
        * accessibility/ios-simulator/AOM-dismiss-event.html: Added.
        * platform/mac-wk1/TestExpectations:

2018-03-14  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc up to 36af4e9614f707f733eb2340fae66d6325aaac5b
        https://bugs.webkit.org/show_bug.cgi?id=183481

        Reviewed by Eric Carlson.

        * webrtc/video-stats.html:

2018-03-14  Frederic Wang  <fwang@igalia.com>

        Finish migration to MathML WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=183628

        Reviewed by Manuel Rego Casasnovas.

        In r225162, the MathML tests from the WPT repository were imported. They were intended to
        replace the ones in imported/mathml-in-html5 but the migration was not fully possible. The
        main issue was that many MathML tests use Web fonts to test the use of OpenType parameters
        but document.fonts.ready is unreliable in WebKit (bug 174030). A workaround was implemented
        in WPT ( https://github.com/w3c/web-platform-tests/pull/10025 ) so this commit finishes
        the migration. We update the WPT MathML tests and now run them all, we remove
        imported/mathml-in-html5 and the associated TestExpectations failures. Two cases unrelated to
        font loading are still failing: One for the SuperscriptShiftUpCramped parameter (bug 156401)
        and one for the RadicalDegreeBottomRaisePercent parameter (bug 183631).

        * TestExpectations: Unskip MathML WPT tests.
        * imported/mathml-in-html5/LICENSE: Removed.
        * imported/mathml-in-html5/README.md: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-2.html: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/radicals/root-parameters-1.html: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-parameters-1.html: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-1.html: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-2.html: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-3.html: Removed.
        * imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-4.html: Removed.
        * platform/mac-wk2/TestExpectations: Remove the expectation.
        * platform/win/TestExpectations: Remove the expectation.

2018-03-13  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Immediately forward cookie access for domains with previous user interaction when there's an opener document
        https://bugs.webkit.org/show_bug.cgi?id=183620
        <rdar://problem/38431469>

        Reviewed by Brent Fulgham.

        * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt: Added.
        * http/tests/storageAccess/deny-storage-access-under-opener.html: Added.
        * http/tests/storageAccess/grant-storage-access-under-opener-expected.txt: Added.
        * http/tests/storageAccess/grant-storage-access-under-opener.html: Added.
        * http/tests/storageAccess/resources/set-cookie-and-report-back.html: Added.
        * platform/ios/TestExpectations:
            New tests marked as [ Pass ].
        * platform/mac-wk2/TestExpectations:
            New tests marked as [ Pass ].

2018-03-13  Youenn Fablet  <youenn@apple.com>

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182853
        <rdar://problem/37645429>

        Reviewed by Chris Dumez.

        * TestExpectations:
        * platform/ios/TestExpectations:

2018-03-13  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK expectations gardening

        * platform/gtk/TestExpectations:

2018-03-13  Youenn Fablet  <youenn@apple.com>

        Changing link element rel attribute from preload to stylesheet should succeed loading the stylesheet
        https://bugs.webkit.org/show_bug.cgi?id=183601
        <rdar://problem/38309441>

        Reviewed by Antti Koivisto.

        * http/wpt/preload/change-link-rel-attribute-expected.txt: Added.
        * http/wpt/preload/change-link-rel-attribute.html: Added.
        * http/wpt/preload/resources/style.css: Added.
        (body):

2018-03-13  Frederic Wang  <fwang@igalia.com>

        Skip mathml-in-dashboard-expected on Windows
        https://bugs.webkit.org/show_bug.cgi?id=183562

        There is no dashboard compatibility mode on Windows so the test is not necessary.

        Reviewed by Alexey Proskuryakov.

        * platform/win/TestExpectations: Skip test.
        * platform/win/mathml/mathml-in-dashboard-expected.png: Removed.
        * platform/win/mathml/mathml-in-dashboard-expected.txt: Removed.

2018-03-13  Chris Dumez  <cdumez@apple.com>

        fast/loader/javascript-url-iframe-remove-on-navigate.html is flaky with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183588

        Reviewed by Alex Christensen.

        The test was setting the frame's src to a javascript URL in a setTimeout(0), expecting the
        navigation policy delegate to have already completed. However, with asynchronous policy
        delegates, this is not necessarily the case. Therefore, we now wait for the beforeunload
        event to be fired at the window, since this indicates a policy decision has been made and
        we are actually navigating.

        I checked that this test was printing the "FAIL" alert in both Firefox and Chrome before
        this change.

        * fast/loader/javascript-url-iframe-remove-on-navigate-async-delegate-expected.txt: Added.
        * fast/loader/javascript-url-iframe-remove-on-navigate-async-delegate.html: Added.
        * fast/loader/javascript-url-iframe-remove-on-navigate.html:

2018-03-13  Ross Kirsling  <ross.kirsling@sony.com>

        [Win] Layout Test fast/html/menuitem-element.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=179299

        Reviewed by Per Arne Vollan.

        * platform/win/TestExpectations:
        Remove "failure" line.

2018-03-13  Danyao Wang  <danyao@chromium.org>

        LayoutTests/http/tests/navigation/page-cache-iframe-provisional-load.html fails with async policy delegate
        https://bugs.webkit.org/show_bug.cgi?id=183386

        Reviewed by Chris Dumez.

        This test relies on the happenstance that with sync poicy decision, the subframe transitions
        to FrameLoadProvisional before main frame navigation is committed. With async delegate,
        policy checks for the main frame and subframe are interleaved. When the main frame policy
        decision is received, it cancels the subframe check. So the page ends up being cached when
        navigating away. This is working as intended.

        * http/tests/navigation/page-cache-iframe-provisional-load-async-delegates-expected.txt: Added.
        * http/tests/navigation/page-cache-iframe-provisional-load-async-delegates.html: Copied from LayoutTests/http/tests/navigation/page-cache-iframe-provisional-load.html.
        Add a new version of the test that forces async policy delegate.

        * http/tests/navigation/page-cache-iframe-provisional-load.html:
        Update test to sequence main frame navigation after start of provisional navigation in subframe.

2018-03-13  Frederic Wang  <fwang@igalia.com>

        Rewrite frameset-flattening-simple to make expectation clearer
        https://bugs.webkit.org/show_bug.cgi?id=183129

        The description of fast/frames/flattening/frameset-flattening-simple.html says that the
        iframe should be 800px wide and should not have any scrollbars. However, it is a bit
        difficult to know the size when checking the test visually. Moreover, the scrollbars of the
        main frame are visible, which makes things a bit confusing and may be the cause of bug 71655
        on GTK.

        Reviewed by Javier Fernandez.

        * fast/frames/flattening/frameset-flattening-simple.html: Put the frame inside a 200x300
        frameset cell and set its width to 300px. The frame should be a 300x300 square when it is
        flattened (test passes) and a 200x300 rectangle when it is not (test fails). That's easier
        to verify visually. That also avoids scrollbars on the main frame.
        * platform/gtk/TestExpectations: Attempt to remove flacky expectation.
        * platform/gtk/fast/frames/flattening/frameset-flattening-simple-expected.png: Update.
        * platform/gtk/fast/frames/flattening/frameset-flattening-simple-expected.txt: Ditto.
        * platform/ios/fast/frames/flattening/frameset-flattening-simple-expected.txt: Ditto.
        * platform/mac-wk2/fast/frames/flattening/frameset-flattening-simple-expected.txt: Ditto.
        * platform/mac/fast/frames/flattening/frameset-flattening-simple-expected.png: Ditto.
        * platform/mac/fast/frames/flattening/frameset-flattening-simple-expected.txt: Ditto.
        * platform/win/fast/frames/flattening/frameset-flattening-simple-expected.txt: Ditto.

2018-03-12  Chris Dumez  <cdumez@apple.com>

        Load may get committed before receiving policy for the resource response
        https://bugs.webkit.org/show_bug.cgi?id=183579
        <rdar://problem/38268780>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/cache/cachedEntry-waits-for-response-policy-expected.txt: Added.
        * http/tests/cache/cachedEntry-waits-for-response-policy.html: Added.

2018-03-12  Ali Juma  <ajuma@chromium.org>

        http/tests/workers/service/service-worker-download.https.html times out with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183479

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/workers/service/service-worker-download-async-delegates.https-expected.txt: Added.
        * http/tests/workers/service/service-worker-download-async-delegates.https.html: Added.

2018-03-12  Chris Dumez  <cdumez@apple.com>

        http/tests/security/frame-loading-via-document-write-async-delegates.html fails with async delegates
        https://bugs.webkit.org/show_bug.cgi?id=183460

        Reviewed by Alex Christensen.

        The test has 3 frames which all initially load "about:blank". Then using document.write(), it inserts
        HTML in each frame.
        Frame 1: body has an onload event handler, which calls JS is click an anchor link to navigate the frame.
        Frame 2: body has an onload event handler to do some logging
        Frame 3: body has an onload event handler and finishes the test (calls testRunner.notifyDone())

        The issue is that with asynchronous policy delegates, the first frame may not have navigated yet by the
        time the third frame is loaded. Indeed, the onload event of the first frame merely clicks am anchor link
        which will trigger a navigation policy check and then later navigate.

        To make the test more robust, we now count the number of loads and call testRunner.notifyDone() when
        we've reached the expected number of loads.

        * http/tests/security/frame-loading-via-document-write-async-delegates-expected.txt: Added.
        * http/tests/security/frame-loading-via-document-write-async-delegates.html: Copied from LayoutTests/http/tests/security/frame-loading-via-document-write.html.
        * http/tests/security/frame-loading-via-document-write.html:
        * http/tests/security/resources/frame-loading-via-document-write.js:

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

        Mark webanimations/css-animations.html and webanimations/css-transitions.html as failures on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=183569

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-03-12  Frederic Wang  <fwang@igalia.com>

        Do not rely on Latin Modern Math to test fraction/radical bars
        https://bugs.webkit.org/show_bug.cgi?id=183446

        Reviewed by Manuel Rego Casasnovas.

        mathml/opentype/fraction-line.html was added in bug 155639 to test OpenType MATH parameters
        for fraction but relies on the presence of the Latin Modern Math font, which is not available
        on several platforms. Since these features are now already covered by the Web Platform
        tests in Layout/imported/mathml-in-html5/mathml/presentation-markup/fractions/ we just remove
        the test. Similarly, mathml/presentation/fractions-linethickness.html relies on Latin Modern
        Math to ensure correct linethickness and we rewrite that test to use the web font
        fraction-rulethickness10000.woff instead. We perform similar rewriting for
        radical-bar-visibility.html, using a WOFF font with a specified radical line thickness.
        Finally, we update the test expectations accordingly on iOS, macOS and Windows platform.

        * mathml/opentype/fraction-line.html: Removed. Already tested by other tests.
        * mathml/opentype/fraction-line-expected.html: Ditto.
        * mathml/presentation/fractions-linethickness.html: Use fraction-rulethickness10000.woff
        * mathml/presentation/fractions-linethickness-expected.html: Ditto.
        * mathml/presentation/radical-bar-visibility.html: Use radical-degreebottomraisepercent25-rulethickness1000.woff
        * platform/ios/TestExpectations: Update expectations.
        * platform/mac/TestExpectations: Ditto.
        * platform/win/TestExpectations: Ditto.

2018-03-12  Javier Fernandez  <jfernandez@igalia.com>

        Remove GridLayout runtime flag
        https://bugs.webkit.org/show_bug.cgi?id=183484

        Reviewed by Myles C. Maxfield.

        Since the GridLayout runtime flag is removed and the feature
        enabled by default, we don't need the tests verifying the
        codepaths run when the feature is disabled.

        * css3/flexbox/flexbox-lines-must-be-stretched-by-default.html:
        * css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled-expected.txt: Removed.
        * css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html: Removed.
        * fast/css-grid-layout/grid-disable-expected.txt: Removed.
        * fast/css-grid-layout/grid-disable.html: Removed.
        * fast/css/ensure-flexbox-compatibility-with-initial-values-expected.txt: Removed.
        * fast/css/ensure-flexbox-compatibility-with-initial-values.html: Removed.

2018-03-12  Antoine Quint  <graouts@apple.com>

        [Web Animations] Implement CSS Animations and CSS Transitions as Web Animations
        https://bugs.webkit.org/show_bug.cgi?id=183504
        <rdar://problem/38372965>

        Reviewed by Dean Jackson and Jon Lee.

        Add a series of new tests to check CSSAnimation and CSSTransition objects are correctly created
        as CSS animation-* and CSS transition-* properties are used. We also update some existing tests
        to use a more concise API since we've implement Element.animate() since their creation.

        * webanimations/animation-opacity-animation-crash.html:
        * webanimations/css-animations-expected.txt: Added.
        * webanimations/css-animations.html: Added.
        * webanimations/css-transitions-expected.txt: Added.
        * webanimations/css-transitions.html: Added.
        * webanimations/opacity-animation-no-longer-composited-upon-completion.html:
        * webanimations/opacity-animation-yields-compositing.html:

2018-03-09  Zalan Bujtas  <zalan@apple.com>

        Turn off offset*/scroll* optimization for input elements with shadow content
        https://bugs.webkit.org/show_bug.cgi?id=182383
        <rdar://problem/37114190>

        Reviewed by Antti Koivisto.

        * fast/forms/scrollheight-with-mutation-crash-expected.txt: Added.
        * fast/forms/scrollheight-with-mutation-crash.html: Added.

2018-03-10  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Copying a table from the Numbers app and pasting into iCloud Numbers fails
        https://bugs.webkit.org/show_bug.cgi?id=183485
        <rdar://problem/38041984>

        Reviewed by Ryosuke Niwa.

        Rebaseline some pasteboard-related layout tests, in which we now expose text/plain alongside files that were
        written to the DataTransfer by the page itself.

        * editing/pasteboard/data-transfer-item-list-add-file-multiple-times-expected.txt:
        * editing/pasteboard/data-transfer-item-list-add-file-on-copy-expected.txt:
        * editing/pasteboard/data-transfer-item-list-add-file-on-drag-expected.txt:

2018-03-09  Chris Dumez  <cdumez@apple.com>

        inspector/page/frameScheduledNavigation.html has different output with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183469

        Reviewed by Ryosuke Niwa.

        The test tracks 3 internal events:
        1. frameScheduledNavigation
        2. frameStartedLoading
        3. frameClearedScheduledNavigation

        Without async policy delegates, the events happen in this order. However, with asynchronous
        policy delegates, frameStartedLoading happens *after* frameClearedScheduledNavigation. What
        happens *before* frameClearedScheduledNavigation is the navigation policy check. When we
        get the policy response to continue (asynchronously), we then actually start the load and
        frameStartedLoading gets logged.

        * inspector/page/frameScheduledNavigation-async-delegates-expected.txt: Added.
        * inspector/page/frameScheduledNavigation-async-delegates.html: Copied from LayoutTests/inspector/page/frameScheduledNavigation.html.
        * inspector/page/frameScheduledNavigation.html:

2018-03-09  Chris Fleizach  <cfleizach@apple.com>

        AX: WebKit seems to be running spell checker even on non-editable content text
        https://bugs.webkit.org/show_bug.cgi?id=183456
        <rdar://problem/38076042>

        Reviewed by Joanmarie Diggs.

        * accessibility/mac/attributed-string/attributed-string-does-not-includes-misspelled-for-non-editable-expected.txt: Added.
        * accessibility/mac/attributed-string/attributed-string-does-not-includes-misspelled-for-non-editable.html: Added.
        * accessibility/mac/attributed-string/attributed-string-for-range-with-options.html:
        * accessibility/mac/attributed-string/attributed-string-for-range.html:
             Update tests to reflect that only editable content returns misspelled attributes.

2018-03-09  Nan Wang  <n_wang@apple.com>

        AX: AOM: More accessibility events support
        https://bugs.webkit.org/show_bug.cgi?id=183023
        <rdar://problem/37764380>

        Reviewed by Chris Fleizach.

        * accessibility/mac/AOM-events-webarea-crash.html:

2018-03-09  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r229468.

        This change caused http/tests/security/frame-loading-via-
        document-write.html to fail.

        Reverted changeset:

        "http/tests/security/frame-loading-via-document-write-async-
        delegates.html fails with async delegates"
        https://bugs.webkit.org/show_bug.cgi?id=183460
        https://trac.webkit.org/changeset/229468

2018-03-09  Youenn Fablet  <youenn@apple.com>

        ServiceWorker should respect IDB and DOMCache partitioning
        https://bugs.webkit.org/show_bug.cgi?id=183496

        Reviewed by Brady Eidson.

        * http/wpt/service-workers/resources/third-party-registration-frame.html: Added.
        * http/wpt/service-workers/resources/third-party-worker.js: Added.
        * http/wpt/service-workers/third-party-registration-expected.txt: Added.
        * http/wpt/service-workers/third-party-registration.html: Added.

2018-03-09  Jer Noble  <jer.noble@apple.com>

        Add new CSS env constants for use with fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=183498

        Reviewed by Dean Jackson.

        * fullscreen/full-screen-test.js:
        (run):
        * fullscreen/fullscreen-auto-hide-delay-expected.txt: Added.
        * fullscreen/fullscreen-auto-hide-delay.html: Added.
        * fullscreen/fullscreen-inset-top-expected.txt: Added.
        * fullscreen/fullscreen-inset-top.html: Added.

2018-03-09  Zalan Bujtas  <zalan@apple.com>

        RenderTreeBuilder::splitAnonymousBoxesAroundChild should take multicolumn spanners into account.
        https://bugs.webkit.org/show_bug.cgi?id=183493
        <rdar://problem/38030461>

        Reviewed by Antti Koivisto.

        * fast/multicol/adjust-beforeChild-for-spanner-crash-expected.txt: Added.
        * fast/multicol/adjust-beforeChild-for-spanner-crash.html: Added.

2018-03-09  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [webkitpy, WinCairo] Launch Apache HTTPD for HTTP Tests.
        https://bugs.webkit.org/show_bug.cgi?id=183265

        Reviewed by Daniel Bates.

        Launch apache httpd server from python script for WinCairo HTTP LayoutTests. By now, AppleWin uses
        Cygwin to launch httpd server. This patch enables native Windows to run HTTP LayoutTests by starting
        and stopping httpd server from the script.

        * http/conf/win-httpd-2.4-php7.conf: Added.
        For WinCairo from native Windows environment.

2018-03-09  Chris Dumez  <cdumez@apple.com>

        http/tests/security/frame-loading-via-document-write-async-delegates.html fails with async delegates
        https://bugs.webkit.org/show_bug.cgi?id=183460

        Reviewed by Alex Christensen.

        The test has 3 frames which all initially load "about:blank". Then using document.write(), it inserts
        HTML in each frame.
        Frame 1: body has an onload event handler, which calls JS is click an anchor link to navigate the frame.
        Frame 2: body has an onload event handler to do some logging
        Frame 3: body has an onload event handler and finishes the test (calls testRunner.notifyDone())

        The issue is that with asynchronous policy delegates, the first frame may not have navigated yet by the
        time the third frame is loaded. Indeed, the onload event of the first frame merely clicks am anchor link
        which will trigger a navigation policy check and then later navigate.

        To make the test more robust, we now count the number of loads and call testRunner.notifyDone() when
        we've reached the expected number of loads.

        * http/tests/security/frame-loading-via-document-write-async-delegates-expected.txt: Added.
        * http/tests/security/frame-loading-via-document-write-async-delegates.html: Copied from LayoutTests/http/tests/security/frame-loading-via-document-write.html.
        * http/tests/security/frame-loading-via-document-write.html:
        * http/tests/security/resources/frame-loading-via-document-write.js:

2018-03-09  Jer Noble  <jer.noble@apple.com>

        webkitfullscreenchange event not fired at the same time as :-webkit-full-screen pseudo selector changes; causes glitchiness
        https://bugs.webkit.org/show_bug.cgi?id=183383

        Fix a couple tests that depended on non-standard behavior, and skip other tests to be fixed later.

        Reviewed by Eric Carlson.

        * media/fullscreen-video-going-into-pip.html:
        * media/video-fullscreeen-only-playback.html:
        * platform/mac/TestExpectations:

2018-03-09  Frederic Wang  <fwang@igalia.com>

        Unreviewed GTK+ gardening.

        * platform/gtk/TestExpectations: Skip test requiring DASHBOARD_SUPPORT.
        * platform/gtk/mathml/mathml-in-dashboard-expected.txt: Removed.

2018-03-09  Andy Estes  <aestes@apple.com>

        [Mac] WebKit fails to receive file promises when the embedding app is sandboxed
        https://bugs.webkit.org/show_bug.cgi?id=183489
        <rdar://problem/38267517>

        Reviewed by Wenson Hsieh.

        Now that we create a unique temporary directory per drop, this test no longer encounters a
        name conflict for apple.gif.

        * editing/pasteboard/file-input-files-access-promise-expected.txt:
        * editing/pasteboard/file-input-files-access-promise.html:

2018-03-09  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK+ gardening.

        * platform/gtk/TestExpectations: Add a failure expectation for the
        http/tests/preconnect/link-header-rel-preconnect-http.html test.
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
        Update baseline after r229310.

2018-03-08  Nan Wang  <n_wang@apple.com>

        AX: AOM: More accessibility events support
        https://bugs.webkit.org/show_bug.cgi?id=183023
        <rdar://problem/37764380>

        Reviewed by Chris Fleizach.

        * accessibility/mac/AOM-events-webarea-crash-expected.txt: Added.
        * accessibility/mac/AOM-events-webarea-crash.html: Added.

2018-03-08  Chris Dumez  <cdumez@apple.com>

        Safari not handling undefined global variables with same name as element Id correctly.
        https://bugs.webkit.org/show_bug.cgi?id=183087
        <rdar://problem/37927596>

        Reviewed by Ryosuke Niwa.

        * fast/dom/Window/es52-globals-expected.txt:
        Rebaseline test now that we are passing more checks. This covers the code change.

        * fast/forms/listbox-visible-size.html:
        * js/dom/var-declarations-shadowing-expected.txt:
        * js/dom/var-declarations-shadowing.html:
        Tweak existing tests due to behavior change. I have checked that these tests
        were failing in other browsers as well.

2018-03-08  Chris Dumez  <cdumez@apple.com>

        fast/events/before-unload-returnValue.html times out with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183472

        Reviewed by Ryosuke Niwa.

        Delay setting the beforeunload handler on the iframe until after the initial load
        (of resources/onclick.html). With asynchronous policy delegates, the beforeunload
        handler was set too early, during the async policy decision for navigating to
        "resources/onclick.html". As a result, the beforeunload handler would get called
        for the load to "resources/onclick.html", after receiving the navigation policy
        decision, which the test does not expect. The test only expects the beforeunload
        handler to be called for later navigations to "resources/does-not-exist.html".

        * fast/events/before-unload-returnValue-async-delegates-expected.txt: Copied from LayoutTests/fast/events/before-unload-returnValue-expected.txt.
        * fast/events/before-unload-returnValue-async-delegates.html: Copied from LayoutTests/fast/events/before-unload-returnValue.html.
        * fast/events/before-unload-returnValue-expected.txt:
        * fast/events/before-unload-returnValue.html:

2018-03-08  Chris Dumez  <cdumez@apple.com>

        fast/html/marquee-reparent-check.html is flaky with async delegates
        https://bugs.webkit.org/show_bug.cgi?id=183425

        Reviewed by Youenn Fablet.

        The test was missing the "TEST COMPLETE" line at the end of its output.
        When enabling async delegates, the "TEST COMPLETE" line would sometimes
        show. Move the test away from js-test.js and to js-test-pre.js / js-test-post.js
        so that the "TEST COMPLETE" line gets printed out consistently.

        * fast/html/marquee-reparent-check-expected.txt:
        * fast/html/marquee-reparent-check.html:

2018-03-08  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip imported/w3c/web-platform-tests/cors/remote-origin.htm

        This test is timing out via testharness.js, there is no point in running it and
        it slows down running layout tests.

        * TestExpectations:

2018-03-08  Ryan Haddad  <ryanhaddad@apple.com>

        Move a test from fast/DOM to fast/dom and delete the fast/DOM directory.

        Unreviewed test gardening.

        * fast/dom/HTMLInputElement/input-value-and-type-change-crash-expected.txt: Renamed from LayoutTests/fast/DOM/HTMLInputElement/input-value-and-type-change-crash-expected.txt.
        * fast/dom/HTMLInputElement/input-value-and-type-change-crash.html: Renamed from LayoutTests/fast/DOM/HTMLInputElement/input-value-and-type-change-crash.html.

2018-03-08  Frederic Wang  <fwang@igalia.com>

        Add references to bug 160161 for some MathML failures on iOS and macOS.

        Unreviewed test gardening.

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

2018-03-08  Frederic Wang  <fwang@igalia.com>

        [iOS] Unskip MathML tests requiring a font with Mathematical Alphanumeric Symbols
        https://bugs.webkit.org/show_bug.cgi?id=183445

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Unskip the tests.

2018-03-08  Frederic Wang  <fwang@igalia.com>

        [iOS] Update PNG expectations for some MathML pixel tests.

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Remove ImageOnlyFailure for pixel tests, add reference to
        bug 183441 for the reftest.
        * platform/ios/mathml/opentype/opentype-stretchy-expected.png: Update expectation.
        * platform/ios/mathml/presentation/menclose-notation-values-expected.png: Ditto.
        * platform/ios/mathml/presentation/mo-stretch-expected.png: Ditto.
        * platform/ios/mathml/presentation/roots-expected.png: Ditto.
        * platform/ios/mathml/radical-fallback-expected.png: Ditto.

2018-03-07  Zalan Bujtas  <zalan@apple.com>

        Invalid innerTextRenderer in RenderTextControlSingleLine::styleDidChange()
        https://bugs.webkit.org/show_bug.cgi?id=183385
        <rdar://problem/38085397>

        Reviewed by Antti Koivisto.

        * fast/DOM/HTMLInputElement/input-value-and-type-change-crash-expected.txt: Added.
        * fast/DOM/HTMLInputElement/input-value-and-type-change-crash.html: Added.

2018-03-06  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for media/modern-media-controls/fullscreen-support/fullscreen-support-press.html.
        https://bugs.webkit.org/show_bug.cgi?id=173946

        Unreviewed test gardening.

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

2018-03-07  Sihui Liu  <sihui_liu@apple.com>

        replaceState cause back/forward malfunction on html page with <base href="/"> tag
        https://bugs.webkit.org/show_bug.cgi?id=182678
        <rdar://problem/37517821>

        Reviewed by Chris Dumez.

        * http/tests/history/replacestate-no-url-expected.txt: Added.
        * http/tests/history/replacestate-no-url.html: Added.
        Add layout test coverage.

        * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange-expected.txt:
        Rebaseline a layout test as empty string for URL is handled differently.

2018-03-07  Chris Dumez  <cdumez@apple.com>

        http/tests/misc/location-replace-crossdomain.html is failing with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183408

        Reviewed by Alex Christensen.

        The test was trying to navigate a cross-origin iframe via location.replace() and checking
        that the load succeeded in a setTimeout(1). There is no guarantee that the frame has loaded
        by that point. We would normally rely on the 'load' event but it is not feasible here since
        the iframe is cross-origin. Instead, I opted to have the iframe to a page that posts a
        message to its parent window to indicate that the load has succeeded.

        * http/tests/misc/location-replace-crossdomain-async-delegates-expected.txt: Added.
        * http/tests/misc/location-replace-crossdomain-async-delegates.html: Added.
        * http/tests/misc/location-replace-crossdomain-expected.txt: Added.
        * http/tests/misc/location-replace-crossdomain.html:
        * platform/gtk/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.
        * platform/ios/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.
        * platform/mac/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.
        * platform/win/http/tests/misc/location-replace-crossdomain-expected.txt: Removed.

2018-03-07  Per Arne Vollan  <pvollan@apple.com>

        Fix incorrect test expectations for http/wpt/resource-timing/rt-initiatorType-media.html.

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-03-07  Chris Dumez  <cdumez@apple.com>

        http/tests/dom/window-open-about-webkit-org-and-access-document.html is failing with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183394

        Reviewed by Alex Christensen.

        http/tests/dom/window-open-about-webkit-org-and-access-document.html is failing with async policy delegates.
        The issue is that the test calls window.open() with a cross-origin URL and then right away tries to access
        newWindow.document, expecting it to throw. However, there is no guarantee that the cross origin URL has
        started loading at this point. In particular, when the navigation policy decision is made asynchronously,
        the URL is initially "about:blank" and it is OK to access the newWindow's document at this point.

        We would normally rely on the window's load event before doing the check. However, this would not work
        here since the window is cross origin. As a result, I am using a setInterval() in order to wait for the
        cross-origin URL to load and for newWindow.document to start throwing.

        * http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates-expected.txt: Added.
        * http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates.html: Added.
        * http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt:
        * http/tests/dom/window-open-about-webkit-org-and-access-document.html:

2018-03-07  Yusuke Suzuki  <utatane.tea@gmail.com>

        HTML `pattern` attribute should set `u` flag for regular expressions
        https://bugs.webkit.org/show_bug.cgi?id=151598

        Reviewed by Chris Dumez.

        * fast/forms/ValidityState-patternMismatch-expected.txt:
        * fast/forms/ValidityState-patternMismatch.html:

2018-03-07  Frederic Wang  <fwang@igalia.com>

        Relayout frames after AsyncFrameScrolling or FrameFlattening option is changed
        https://bugs.webkit.org/show_bug.cgi?id=183081

        Reviewed by Antonio Gomes.

        Add a test to check whether an iframe changes its flattening status after one of the option
        AsyncFrameScrolling/FrameFlattening is enabled/disabled.

        * platform/ios-simulator/TestExpectations: Remove failure for scrolling-in-object.html.
        * platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic-expected.txt: Added.
        * platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic.html: Added.

2018-03-07  Per Arne Vollan  <pvollan@apple.com>

        Mark http/wpt/resource-timing/rt-initiatorType-media.html as a flaky crash on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=179297

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-03-07  Ms2ger  <Ms2ger@igalia.com>

        [WPE] Test gardening
        https://bugs.webkit.org/show_bug.cgi?id=183402

        Unreviewed test gardening.

        * platform/gtk/TestExpectations: skip some more appcache-sw tests.
        * platform/wpe/TestExpectations:
          - Mark http/tests/appcache/different-https-origin-resource-main.html as passing after r228892.
          - Mark fast/canvas/canvas-createPattern-video-modify.html as passing after r228221.
          - Mark storage/indexeddb/modern/index-3-private.html as passing since r228560.
          - Skip some more appcache - service worker tests.
          - Mark some svg/animations tests as flaky (as they already are on GTK).
          - Mark imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html as passing after r228983.
          - Mark http/tests/appcache/fail-on-update-2.html as flaky.
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added baseline.
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added baseline.
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added baseline.
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt: rebaseline.

2018-03-07  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] fast/animation/request-animation-frame-during-modal.html sometimes crashing

        Unreviewed gardening
        * platform/gtk/TestExpectations:

2018-03-06  Per Arne Vollan  <pvollan@apple.com>

        Skip fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html and related tests on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=183393

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-03-06  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed. Add platform-specific expectations.

        Individual filenames are omitted for brevity.

        * platform/wincairo/accessibility/: Added.
        * platform/wincairo/animations/: Added.
        * platform/wincairo/css1/: Added.
        * platform/wincairo/css2.1/: Added.
        * platform/wincairo/css3/: Added.
        * platform/wincairo/editing/: Added.
        * platform/wincairo/fast/: Added.
        * platform/wincairo/fonts/: Added.
        * platform/wincairo/ietestcenter/: Added.
        * platform/wincairo/js/: Added.
        * platform/wincairo/mathml/: Added.
        * platform/wincairo/media/: Added.
        * platform/wincairo/plugins/: Added.
        * platform/wincairo/printing/: Added.
        * platform/wincairo/scrollbars/: Added.
        * platform/wincairo/svg/: Added.
        * platform/wincairo/tables/: Added.
        * platform/wincairo/transforms/: Added.
        * platform/wincairo/transitions/: Added.

2018-03-06  Youenn Fablet  <youenn@apple.com>

        didReceiveServerRedirectForProvisionalNavigation is not called in case of document redirection with service worker registration change
        https://bugs.webkit.org/show_bug.cgi?id=183299
        <rdar://problem/37547029>

        Reviewed by Alex Christensen.

        * http/wpt/service-workers/navigation-redirect-main-frame-worker.js: Added.
        * http/wpt/service-workers/navigation-redirect-main-frame.https-expected.txt: Added.
        * http/wpt/service-workers/navigation-redirect-main-frame.https.html: Added.

2018-03-06  Chris Dumez  <cdumez@apple.com>

        http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=183390

        Unreviewed, temporarily mark the test as flaky while I investigate.

        * platform/mac-wk1/TestExpectations:

2018-03-06  Per Arne Vollan  <pvollan@apple.com>

        Unreviewed, fixed incorrect name of test expectation file.

        * platform/win/fast/text/combining-enclosing-keycap-expected.txt: Copied from LayoutTests/platform/win/fast/text/combining-enclosing-keycap.txt.
        * platform/win/fast/text/combining-enclosing-keycap.txt: Removed.

2018-03-06  Nan Wang  <n_wang@apple.com>

        AX: Flaky test after r229310
        https://bugs.webkit.org/show_bug.cgi?id=183376
        <rdar://problem/38188685>

        Reviewed by Chris Fleizach.

        * accessibility/mac/AOM-events-all-expected.txt:
        * accessibility/mac/AOM-events-all.html:

2018-03-06  Chris Dumez  <cdumez@apple.com>

        fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html fails with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183345

        Reviewed by Alex Christensen.

        * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates-expected.txt: Added.
        * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates.html: Added.
        Add layout test coverage.

        * fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
        * fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html:
        * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt:
        * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html:
        * fast/loader/window-open-to-invalid-url-disallowed-expected.txt:
        * fast/loader/window-open-to-invalid-url-disallowed.html:
        * platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
        * platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates-expected.txt: Added.
        * platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt:
        * platform/mac-wk1/fast/loader/window-open-to-invalid-url-disallowed-expected.txt:
        Update tests that were relying on a 0-timer to make sure that didCancelClientRedirectForFrame was
        called to rely on our new test infrastructure instead. This is needed so that these tests keep passing
        once we make policy delegates asynchronous by default. Without this, the didCancelClientRedirectForFrame lines
        would be missing in the tests' output.

2018-03-06  Youenn Fablet  <youenn@apple.com>

        Service worker test gardening
        https://bugs.webkit.org/show_bug.cgi?id=183264
        <rdar://problem/38048743>

        Unreviewed.

        * TestExpectations: mark test as slow in Debug.

2018-03-06  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Add new baseline after r229177

        Unreviewed gardening.

        This baseline is needed because our mimetype database recognizes
        the type of the file in the test and therefore the extension gets
        added to the downloaded file.
        * platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt: Added.

2018-03-06  Per Arne Vollan  <pvollan@apple.com>

        Unreviewed, add baseline for fast/text/combining-enclosing-keycap.html.

        * platform/win/fast/text/combining-enclosing-keycap.txt: Added.

2018-03-06  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Mark a few Wayland tests as failing

        Unreviewed gardening
        * platform/gtk-wayland/TestExpectations:

2018-03-06  Dominik Infuehr  <dinfuehr@igalia.com>

        [ARM] Disable tests that run out of memory
        https://bugs.webkit.org/show_bug.cgi?id=182699

        Reviewed by Žan Doberšek.

        Do not run test with LLInt disabled on Linux.

        * js/script-tests/dfg-osr-entry-hoisted-clobbered-structure-check.js:

2018-03-06  Nan Wang  <n_wang@apple.com>

        AX: AOM: More accessibility events support
        https://bugs.webkit.org/show_bug.cgi?id=183023
        <rdar://problem/37764380>

        Reviewed by Chris Fleizach.

        * accessibility/mac/AOM-events-all-expected.txt: Added.
        * accessibility/mac/AOM-events-all.html: Added.
        * js/dom/dom-static-property-for-in-iteration-expected.txt:

2018-03-05  Yoav Weiss  <yoav@yoav.ws>

        Support for preconnect Link headers
        https://bugs.webkit.org/show_bug.cgi?id=181657

        Reviewed by Darin Adler.

        Add test to see Link preconnect headers trigger a connection.

        * http/tests/preconnect/link-header-rel-preconnect-http-expected.txt: Added.
        * http/tests/preconnect/link-header-rel-preconnect-http.html: Added.
        * http/tests/preconnect/resources/header-preconnect.php: Added.
        * platform/win/TestExpectations: Skipped the preconnect test directory, rather than the individual files in it.

2018-03-05  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html as slow.
        https://bugs.webkit.org/show_bug.cgi?id=180982

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-03-05  Chris Dumez  <cdumez@apple.com>

        fast/loader/onload-policy-ignore-for-frame.html is timing out with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183337

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/loader/onload-policy-ignore-for-frame-async-delegates-expected.txt: Added.
        * fast/loader/onload-policy-ignore-for-frame-async-delegates.html: Added.

2018-03-05  Andy Estes  <aestes@apple.com>

        [Mac] Teach WebCore::Pasteboard about file promise drags
        https://bugs.webkit.org/show_bug.cgi?id=183314
        <rdar://problem/38105493>

        Reviewed by Darin Adler.

        Added versions of file dragging tests in editing/pasteboard/ that use
        beginDragWithFilePromises() instead of beginDragWithFiles().

        * TestExpectations: Skipped the new tests.
        * editing/pasteboard/data-transfer-items-drag-drop-file-promise-expected.txt: Added.
        * editing/pasteboard/data-transfer-items-drag-drop-file-promise.html: Added.
        * editing/pasteboard/data-transfer-items-drop-file-promise-expected.txt: Added.
        * editing/pasteboard/data-transfer-items-drop-file-promise.html: Added.
        * editing/pasteboard/datatransfer-items-drop-plaintext-file-promise-expected.txt: Added.
        * editing/pasteboard/datatransfer-items-drop-plaintext-file-promise.html: Added.
        * editing/pasteboard/datatransfer-types-dropping-text-file-promise-expected.txt: Added.
        * editing/pasteboard/datatransfer-types-dropping-text-file-promise.html: Added.
        * editing/pasteboard/drag-file-promises-to-editable-element-as-URLs-expected.txt: Added.
        * editing/pasteboard/drag-file-promises-to-editable-element-as-URLs.html: Added.
        * editing/pasteboard/drag-file-promises-to-editable-element-as-attachment-expected.txt: Added.
        * editing/pasteboard/drag-file-promises-to-editable-element-as-attachment.html: Added.
        * editing/pasteboard/file-input-files-access-promise-expected.txt: Added.
        * editing/pasteboard/file-input-files-access-promise.html: Added.
        * platform/mac-wk1/TestExpectations: Un-skipped the new tests.
        * platform/win/TestExpectations: Skipped the new tests.

2018-03-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, add baseline for fast/text/combining-enclosing-keycap.html.

        * platform/ios/fast/text/combining-enclosing-keycap-expected.txt: Added.
        * platform/mac/fast/text/combining-enclosing-keycap-expected.txt: Added.

2018-03-05  Ali Juma  <ajuma@chromium.org>

        imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html times out with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183297

        Reviewed by Chris Dumez.

        Add layout test coverage. Copy expectations from the existing sync-policy version of the test.

        * http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
        * http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html: Added.
        * http/wpt/html/semantics/text-level-semantics/the-a-element/resources/a-download-404.html: Added.
        * platform/ios-wk2/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
        * platform/mac-wk1/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
        * platform/win/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
        * platform/wpe/TestExpectations:

2018-03-05  Youenn Fablet  <youenn@apple.com>

        Service worker test gardening
        https://bugs.webkit.org/show_bug.cgi?id=183264
        <rdar://problem/38048743>

        Unreviewed.

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

2018-03-05  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] fast/events/blur-focus-window-should-blur-focus-element.html failing

        Unreviewed gardening.

        * platform/gtk/TestExpectations: Move this test to the failing test section.

2018-03-05  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Implement WTR's PlatformWebView::setWindowIsKey()
        https://bugs.webkit.org/show_bug.cgi?id=183143

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations: Unmark the passing tests

2018-03-04  Per Arne Vollan  <pvollan@apple.com>

        Mark http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html as failure on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=183322

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-03-03  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Delete incorrect version of clampTo() function from SVGToOTFFontConversion.cpp
        https://bugs.webkit.org/show_bug.cgi?id=183165

        Reviewed by Darin Adler.

        Re-baseline the results of these two tests since the local version of
        clampTo() was not returning the expected results always.

        * platform/ios/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
        * platform/ios/svg/text/text-altglyph-01-b-expected.txt:

2018-03-03  Zalan Bujtas  <zalan@apple.com>

        [RenderTreeBuilder] Move styleDidChange mutation logic to RenderTreeUpdater
        https://bugs.webkit.org/show_bug.cgi?id=183273
        <rdar://problem/38054892>

        Reviewed by Antti Koivisto.

        This is just a different repaint order.

        * fast/repaint/absolute-position-change-containing-block-expected.txt:

2018-03-03  Yoav Weiss  <yoav@yoav.ws>

        Link headers for subresources are not being processed
        https://bugs.webkit.org/show_bug.cgi?id=181789

        Reviewed by Youenn Fablet.

        Adds tests to make sure Link headers on subresources are being processed.

        * http/tests/preload/link-header-on-subresource-expected.txt: Added.
        * http/tests/preload/link-header-on-subresource.html: Added.
        * http/tests/preload/resources/dummy-preloads-subresource.css.php: Added.

2018-03-02  Youenn Fablet  <youenn@apple.com>

        Service worker test gardening
        https://bugs.webkit.org/show_bug.cgi?id=183264
        <rdar://problem/38048743>

        Unreviewed.

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

2018-03-02  Chris Dumez  <cdumez@apple.com>

        imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html crashes with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183294
        <rdar://problem/38073596>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate-expected.txt: Added.
        * http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html: Added.

2018-03-02  Chris Dumez  <cdumez@apple.com>

        fast/events/before-unload-remove-itself.html crashes with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183290
        <rdar://problem/38069045>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/events/before-unload-remove-itself-async-delegate-expected.txt: Added.
        * fast/events/before-unload-remove-itself-async-delegate.html: Added.

2018-03-02  Chris Dumez  <cdumez@apple.com>

        Converting a load to a download does not work with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183254
        <rdar://problem/38035334>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate.html: Added.

2018-03-02  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Unreviewed gardening

        * platform/gtk/TestExpectations: Add
        imported/w3c/web-platform-tests/css/css-ui/text-overflow-022.html,
        which started failing in the bots.

2018-03-02  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][WPE] Update js/dom static properties after r229112

        Unreviewed gardening.
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:

2018-03-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r222843): [HarfBuzz] Combining enclosed keycap not correctly handled
        https://bugs.webkit.org/show_bug.cgi?id=183246

        Reviewed by Michael Catanzaro.

        * fast/text/combining-enclosing-keycap-expected.txt: Added.
        * platform/gtk/fast/text/combining-enclosing-keycap.html: Added.
        * platform/gtk/TestExpectations:

2018-03-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        [FreeType] Remove FontPlatformData fallbacks
        https://bugs.webkit.org/show_bug.cgi?id=183210

        Reviewed by Michael Catanzaro.

        Rebaseline 3 tests that progressed.

        * platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.png:
        * platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt:
        * platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.png:
        * platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt:
        * platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.png:
        * platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:

2018-03-01  Youenn Fablet  <youenn@apple.com>

        Service worker test gardening
        https://bugs.webkit.org/show_bug.cgi?id=183264

        Unreviewed.

        * TestExpectations: Unflake/Unskip some tests that seem stable now.

2018-03-01  John Wilander  <wilander@apple.com>

        Move resource load statistics tests from js-test-pre.js to js-test.js
        https://bugs.webkit.org/show_bug.cgi?id=183249
        <rdar://problem/38033096>

        Unreviewed test gardening.

        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-expected.txt:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-expected.txt:
        * 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-expected.txt:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-expected.txt:
        * 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-expected.txt:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-expected.txt:
        * 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-expected.txt:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics.html:
        * 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:
        * http/tests/resourceLoadStatistics/grandfathering-expected.txt:
        * http/tests/resourceLoadStatistics/grandfathering.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-expected.txt:
        * 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-expected.txt:
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:

2018-03-01  Youenn Fablet  <youenn@apple.com>

        LayoutTest imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=179248
        <rdar://problem/35377756>

        Reviewed by Chris Dumez.

        * TestExpectations:

2018-03-01  Youenn Fablet  <youenn@apple.com>

        Add API test to validate setting of service worker and cache storage directories
        https://bugs.webkit.org/show_bug.cgi?id=182543

        Reviewed by Chris Dumez.

        Updated tests according new engine representation.

        * http/tests/cache-storage/cache-clearing-origin.https.html:
        * http/tests/cache-storage/cache-origins.https.html:
        * http/tests/cache-storage/cache-representation.https.html:

2018-03-01  Daniel Bates  <dabates@apple.com>

        CSS ::selection stroke-color and stroke-width are not applied to selected text in text fields
        and ::selection:window-inactive stroke-color and stroke-width are never applied
        https://bugs.webkit.org/show_bug.cgi?id=183178

        Reviewed by David Hyatt.

        Add tests to ensure that we paint ::selection stroke-color and stroke-width for selected text
        in text fields. Add tests to ensure that we apply ::selection:window-inactive stroke-color
        and stroke-width to selected text when the page is deactivated.

        * fast/selectors/selection-window-inactive-stroke-color-expected.html: Added.
        * fast/selectors/selection-window-inactive-stroke-color.html: Added.
        * fast/selectors/selection-window-inactive-text-shadow-expected.html: Added.
        * fast/selectors/selection-window-inactive-text-shadow.html: Added.
        * fast/selectors/text-field-selection-stroke-color-expected.html: Added.
        * fast/selectors/text-field-selection-stroke-color.html: Added.
        * fast/selectors/text-field-selection-text-shadow-expected.html: Added.
        * fast/selectors/text-field-selection-text-shadow.html: Added.
        * fast/selectors/text-field-selection-window-inactive-stroke-color-expected.html: Added.
        * fast/selectors/text-field-selection-window-inactive-stroke-color.html: Added.
        * fast/selectors/text-field-selection-window-inactive-text-shadow-expected.html: Added.
        * fast/selectors/text-field-selection-window-inactive-text-shadow.html: Added.
        * platform/gtk/TestExpectations: Skip the ::selection:window-inactive tests until we fix
        <https://bugs.webkit.org/show_bug.cgi?id=183143>.
        * platform/ios/TestExpectations: Mark the tests as won't fix since UIKit draws selection on iOS.
        * platform/win/TestExpectations: Mark tests as image failures an associated with <https://bugs.webkit.org/show_bug.cgi?id=117322>.
        Windows does not seem to be updating selectors when the window is deactivated or window deactivation,
        testRunner.setWindowIsKey() is broken.
        * platform/wpe/TestExpectations: Skip the ::selection:window-inactive tests until we fix
        <https://bugs.webkit.org/show_bug.cgi?id=183144>.

2018-03-01  Ross Kirsling  <ross.kirsling@sony.com>

        [Win][DRT] Implement setSpatialNavigationEnabled.
        https://bugs.webkit.org/show_bug.cgi?id=183166

        Reviewed by Per Arne Vollan.

        * platform/win/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
        * platform/wincairo/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt: Added.
        This test requires an expectation for every platform. AppleWin had one but it must've been a copy-paste job?

        * platform/win/TestExpectations:
        Enable fast/spatial-navigation tests on AppleWin too.

2018-03-01  Chris Dumez  <cdumez@apple.com>

        imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html fails with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183225
        <rdar://problem/38003828>

        Reviewed by Alex Christensen.

        * http/wpt/html/browsers/windows/browsing-context-expected.txt: Added.
        * http/wpt/html/browsers/windows/browsing-context.html: Added.
        Add layout test coverage.

        * fast/loader/iframe-src-invalid-url-expected.txt:
        * fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt:
        * loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt:
        * loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt:
        Rebaseline a few layout tests now that the log lines for the about:blank policy checks are
        gone.

2018-02-28  Nan Wang  <n_wang@apple.com>

        Layout Test accessibility/mac/accessibility-make-first-responder.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=183232

        Reviewed by Chris Fleizach.

        The test is flaky because that the UIProcess might have received the IPC message
        to set the first responder after we check the current state. Added a delay 
        in the test to fix that.

        * accessibility/mac/accessibility-make-first-responder.html:

2018-02-28  Nan Wang  <n_wang@apple.com>

        AX: AOM: Dispatch accessiblesetvalue event
        https://bugs.webkit.org/show_bug.cgi?id=183021
        <rdar://problem/37764242>

        Reviewed by Chris Fleizach.

        * accessibility/mac/AOM-event-accessiblesetvalue-expected.txt: Added.
        * accessibility/mac/AOM-event-accessiblesetvalue.html: Added.
        * js/dom/dom-static-property-for-in-iteration-expected.txt:

2018-02-28  Chris Dumez  <cdumez@apple.com>

        html/browsers/browsing-the-web/navigating-across-documents/006.html fails with async policy delegates
        https://bugs.webkit.org/show_bug.cgi?id=183168
        <rdar://problem/37951341>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * TestExpectations:
        * http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006-expected.txt: Added.
        * http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006.html: Added.
        * http/wpt/html/browsers/browsing-the-web/navigating-across-documents/click.html: Added.
        * http/wpt/html/browsers/browsing-the-web/navigating-across-documents/href.html: Added.

2018-02-28  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:

2018-02-28  John Wilander  <wilander@apple.com>

        Add a second tier of prevalence to facilitate telemetry on very prevalent domains
        https://bugs.webkit.org/show_bug.cgi?id=183218
        <rdar://problem/37992388>

        Reviewed by Brent Fulgham.

        * 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.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.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.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.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-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics.html: Added.
        * platform/wk2/TestExpectations:
            New test marked as [ Pass ].

2018-02-28  Ryan Haddad  <ryanhaddad@apple.com>

        Disable three resourceLoadStatistics tests on iOS Simulator Debug because they frequently time out.
        https://bugs.webkit.org/show_bug.cgi?id=183216

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-02-28  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182983

        Unreviewed test gardening.

        * platform/wk2/TestExpectations:

2018-02-27  Commit Queue  <commit-queue@webkit.org>

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

        This patch causes crashes on two SVG tests (Requested by fredw
        on #webkit).

        Reverted changeset:

        "Relayout frames after AsyncFrameScrolling or FrameFlattening
        option is changed"
        https://bugs.webkit.org/show_bug.cgi?id=183081
        https://trac.webkit.org/changeset/229060

2018-02-27  Youenn Fablet  <youenn@apple.com>

        Do not trigger a service worker match in case of document redirection if it will be already served by AppCache
        https://bugs.webkit.org/show_bug.cgi?id=183185
        <rdar://problem/37693796>

        Reviewed by Chris Dumez.

        * http/tests/appcache/main-resource-redirect-with-sw-expected.txt: Added.
        * http/tests/appcache/main-resource-redirect-with-sw.html: Added.
        * http/tests/appcache/resources/main-resource-redirect-with-sw.manifest: Added.
        * http/tests/appcache/resources/register-resources-service-worker.html: Added.
        * http/tests/appcache/service-worker-proxy.js: Added.
        * platform/gtk/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wpe/TestExpectations:

2018-02-27  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183094

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-02-27  Ryan Haddad  <ryanhaddad@apple.com>

        Mark fast/dom/Window/window-focus-self.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183164

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-02-27  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening

        * TestExpectations:
        * platform/gtk/TestExpectations:

2018-02-27  Doug Russell  <doug@getitdownonpaper.com>

        AX: Spell check and style attributes should be optional when fetching attributed string
        https://bugs.webkit.org/show_bug.cgi?id=160744

        Reviewed by Chris Fleizach.

        The overhead of fetching a spell checked attributed string via AX API is substantial. 
        In some cases on the order of 7/8 of the total time spent fetching the string.

        This change introduces the new attribute AXAttributedStringForTextMarkerRangeWithOptions which accepts an NSDictionary as it's parameter with keys "AXTextMarkerRange" (AXTextMarkerRangeRef) and "AXSpellCheck" (NSNumber(BOOL)).

        AXAttributedStringForTextMarkerRange will remain unchanged.

        * accessibility/mac/attributed-string: Added.
        * accessibility/mac/attributed-string/attributed-string-for-range-expected.txt: Added.
        * accessibility/mac/attributed-string/attributed-string-for-range-with-options-expected.txt: Added.
        * accessibility/mac/attributed-string/attributed-string-for-range-with-options.html: Added.
        * accessibility/mac/attributed-string/attributed-string-for-range.html: Added.
        * accessibility/mac/bounds-for-range-expected.txt:

2018-02-27  Antoine Quint  <graouts@apple.com>

        Unreviewed, marking a number of Web Animations WPT tests non-flaky.

        * TestExpectations:

2018-02-27  Frederic Wang  <fwang@igalia.com>

        Relayout frames after AsyncFrameScrolling or FrameFlattening option is changed
        https://bugs.webkit.org/show_bug.cgi?id=183081

        Reviewed by Antonio Gomes.

        Add a test to check whether an iframe changes its flattening status after one of the option
        AsyncFrameScrolling/FrameFlattening is enabled/disabled.

        * platform/ios-simulator/TestExpectations: Remove failure.
        * platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic-expected.txt: Added.
        * platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic.html: Added.

2018-02-26  Daniel Bates  <dabates@apple.com>

        testRunner.setWindowIsKey() has no effect on the web process side in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=81736
        <rdar://problem/11088268>

        Remove some tests from the platform-independent WebKit2 TestExpectations file that
        now pass on iOS and Mac following r189959 and r211910, respectively. Skip these
        tests on GTK and WPE. For GTK we need to fix <https://bugs.webkit.org/show_bug.cgi?id=183140>
        For WPE we need to fix <https://bugs.webkit.org/show_bug.cgi?id=183144>.

        The test fast/selectors/querySelector-window-inactive.html still fails on WebKit2,
        but for a different reason. See <https://bugs.webkit.org/show_bug.cgi?id=183140>
        for more details.

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

2018-02-26  Commit Queue  <commit-queue@webkit.org>

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

        This is breaking some websites (Requested by youenn on
        #webkit).

        Reverted changeset:

        "Use no-cache fetch mode when loading main documents with
        location.reload()"
        https://bugs.webkit.org/show_bug.cgi?id=181285
        https://trac.webkit.org/changeset/226745

2018-02-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WK2] http/tests/navigation/new-window-redirect-history.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=127683

        Reviewed by Dan Bernstein.

        * platform/ios-wk2/TestExpectations:
        Unmarked http/tests/navigation/new-window-redirect-history.html.
        * platform/wk2/TestExpectations: Ditto.

2018-02-22  Antoine Quint  <graouts@apple.com>

        REGRESSION (r228445): A big pause button shows over YouTube videos if you tap "Tap To Unmute" on iOS
        https://bugs.webkit.org/show_bug.cgi?id=183074
        <rdar://problem/37747028>

        Reviewed by Eric Carlson.

        Add a new test that set controls on the video, then immediately removes them, plays the video and turns the controls
        back on as soon as the video starts to check that the "showsStartButton" property is false on the media controls.
        Prior to this patch this test would fail.

        * media/modern-media-controls/start-support/start-support-disable-controls-and-re-enable-post-play-expected.txt: Added.
        * media/modern-media-controls/start-support/start-support-disable-controls-and-re-enable-post-play.html: Added.
        * platform/ios/TestExpectations:

2018-02-22  Youenn Fablet  <youenn@apple.com>

        CacheStorage::Engine::Caches::writeRecord is not always calling the completion handler
        https://bugs.webkit.org/show_bug.cgi?id=183055

        Reviewed by Chris Dumez.

        * http/tests/cache-storage/resources/cache-persistency-iframe.html:

2018-02-22  Chris Dumez  <cdumez@apple.com>

        Document.open() cancels existing provisional load but not navigation policy check
        https://bugs.webkit.org/show_bug.cgi?id=183012
        <rdar://problem/37755831>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/dom/Document/open-with-pending-load-async-policy-expected.txt: Added.
        * fast/dom/Document/open-with-pending-load-async-policy.html: Added.

2018-02-22  Matt Lewis  <jlewis3@apple.com>

        Updated expectations for http/tests/appcache/404-resource-with-slow-main-resource.php.
        https://bugs.webkit.org/show_bug.cgi?id=153503

        Unreviewed test gardening.

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

2018-02-22  Per Arne Vollan  <pvollan@apple.com>

        Mark http/tests/preload/onerror_event.html as a flaky crash on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=179297

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-02-22  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r228915.

        * platform/gtk/TestExpectations:

2018-02-21  John Wilander  <wilander@apple.com>

        Add delay to make cookie purge catch up when running http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html
        https://bugs.webkit.org/show_bug.cgi?id=183024
        <rdar://problem/37765207>

        Unreviewed test gardening.

        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
            Added a setTimeout() delay.

2018-02-21  Youenn Fablet  <youenn@apple.com>

        Move AppCache loading to the NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=178540
        <rdar://problem/37119346>

        Reviewed by Alex Christensen.

        There is no guarantee that aborting in an event handler will be executed before some loads finish,
        as the events are fired asynchronously.
        Making tests less flaky by waiting some time before fnishing some loads.

        * http/tests/appcache/abort-cache-onchecking.html:
        * http/tests/appcache/resource-redirect-2-expected.txt:
        * http/tests/appcache/resources/abort-cache-onchecking-resource-404.manifest:
        * http/tests/appcache/resources/abort-cache-onchecking.manifest: Removed.
        * http/tests/appcache/resources/abort-cache-onchecking.manifest.php: Added.
        * http/tests/appcache/resources/abort-cache-ondownloading.manifest:
        * http/tests/appcache/resources/abort-cache-ondownloading.text: Removed.
        * http/tests/appcache/resources/abort-cache-ondownloading.text.php: Added.
        * http/tests/appcache/resources/not-exist.vob.php: Added.

2018-02-21  Youenn Fablet  <youenn@apple.com>

        Use ResourceLoader to load appcache manifest
        https://bugs.webkit.org/show_bug.cgi?id=182861

        Reviewed by Alex Christensen.

        * http/tests/appcache/fail-on-update-2-expected.txt:
        * http/tests/appcache/manifest-redirect-2-expected.txt:
        * http/tests/appcache/offline-access-expected.txt:

2018-02-21  Chris Dumez  <cdumez@apple.com>

        VTTCue constructor should use 'double' type for startTime / endTime
        https://bugs.webkit.org/show_bug.cgi?id=182988

        Reviewed by Eric Carlson.

        Update existing test to reflect behavior change.

        * media/track/track-add-remove-cue-expected.txt:
        * media/track/track-add-remove-cue.html:

2018-02-21  Ms2ger  <Ms2ger@gmail.com>

        Test gardening.
        https://bugs.webkit.org/show_bug.cgi?id=183006

        Unreviewed test gardening.

        * TestExpectations: add ietestcenter/css3/valuesandunits/units-000.htm.
        * platform/gtk/TestExpectations: remove ietestcenter/css3/valuesandunits/units-000.htm.
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt: update for r228827.
        * platform/ios/TestExpectations: remove ietestcenter/css3/valuesandunits/units-000.htm.
        * platform/mac/TestExpectations: remove ietestcenter/css3/valuesandunits/units-000.htm.
        * platform/win/TestExpectations: remove ietestcenter/css3/valuesandunits/units-000.htm.
        * platform/wpe/TestExpectations: remove ietestcenter/css3/valuesandunits/units-000.htm.
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt: update for r228827.

2018-02-21  Charlie Turner  <cturner@igalia.com>

        Update test expectations
        https://bugs.webkit.org/show_bug.cgi?id=182973

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2018-02-21  Charlie Turner  <cturner@igalia.com>

        Rebaseline web animations tests after r228717
        https://bugs.webkit.org/show_bug.cgi?id=182970

        Reviewed by Antoine Quint.

        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added.

2018-02-21  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Make system-ui obey the user-installed-font policy
        https://bugs.webkit.org/show_bug.cgi?id=182860
        <rdar://problem/36158249>

        Reviewed by Antti Koivisto.

        FakeHelvetica-ArmenianCharacter.ttf is a font which supports a particular Armenian character which
        isn't supported by any other font on the system. Installing this font will cause it to be added to
        the 'system-ui' font cascade list. When we disable user-installed-fonts, this font should not be
        used to render the character.

        * fast/text/user-installed-fonts/system-ui-expected-mismatch.html:
        * fast/text/user-installed-fonts/system-ui.html:

2018-02-20  Nan Wang  <n_wang@apple.com>

        AX: Keyboard focus not following VoiceOver cursor into web content or within web content.
        https://bugs.webkit.org/show_bug.cgi?id=182752
        <rdar://problem/37518233>

        Reviewed by Ryosuke Niwa.

        * accessibility/mac/accessibility-make-first-responder-expected.txt: Added.
        * accessibility/mac/accessibility-make-first-responder.html: Added.
        * platform/mac-wk1/TestExpectations:

2018-02-20  Chris Dumez  <cdumez@apple.com>

        Crash under JSC::JSCell::toNumber(JSC::ExecState*)
        https://bugs.webkit.org/show_bug.cgi?id=182984
        <rdar://problem/37694346>

        Reviewed by Mark Lam.

        Add layout test coverage.

        * js/dom/webidl-type-mapping-expected.txt:
        * js/dom/webidl-type-mapping.html:

2018-02-20  Ryan Haddad  <ryanhaddad@apple.com>

        Mark two imported/w3c/web-platform-tests/2dcontext/imagebitmap tests as flaky on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=182833

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-02-20  Manuel Rego Casasnovas  <rego@igalia.com>

        Skip tests that need ENABLE_LINK_PREFETCH
        https://bugs.webkit.org/show_bug.cgi?id=182981

        Unreviewed gardening.

        These tests were marked in the different TestExpectations fails of each port,
        when actually none of them were testing this code as ENABLE_LINK_PREFETCH is disabled by default
        (even in development builds).

        The patch just moves the flagged tests from the port specific TestExpectations files
        to the generic TestExpectations file skipping them.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2018-02-20  John Wilander  <wilander@apple.com>

        Make WebResourceLoadStatisticsStore::processStatisticsAndDataRecords() call WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed() in a proper callback
        https://bugs.webkit.org/show_bug.cgi?id=182719
        <rdar://problem/37517370>

        Reviewed by Brent Fulgham.

        * platform/mac-wk2/TestExpectations:
            Marked http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html
            as [ Pass ].
        * platform/wk2/TestExpectations:
            Marked http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html
            as [ Pass ]. This should have been done already in r227223:
            https://bugs.webkit.org/show_bug.cgi?id=181822

2018-02-20  Nan Wang  <n_wang@apple.com>

        AX: AOM: Dispatch accessibleclick event
        https://bugs.webkit.org/show_bug.cgi?id=180898
        <rdar://problem/36086710>

        Reviewed by Ryosuke Niwa.

        * accessibility/mac/AOM-events-expected.txt: Added.
        * accessibility/mac/AOM-events.html: Added.
        * js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/mac-wk1/TestExpectations:

2018-02-19  Dean Jackson  <dino@apple.com>

        Handle all writing-modes in downcast
        https://bugs.webkit.org/show_bug.cgi?id=182949
        <rdar://problem/37710687>

        Reviewed by Myles Maxfield.

        Test all the deprecated SVG writing modes.

        * fast/writing-mode/svg-writing-modes-expected.html: Added.
        * fast/writing-mode/svg-writing-modes.html: Added.

2018-02-20  Manuel Rego Casasnovas  <rego@igalia.com>

        [css3-text] Skip tests that need ENABLE_CSS3_TEXT
        https://bugs.webkit.org/show_bug.cgi?id=182963

        Unreviewed gardening.

        These tests were marked in the different TestExpectations fails of each port,
        when actually none of them were testing this code as ENABLE_CSS3_TEXT is disabled by default
        (even in development builds).

        The patch just moves the flagged tests from the port specific TestExpectations files
        to the generic TestExpectations file skipping them.

        It also removes editing/pasteboard/insert-text-decoration.html from the skipping list
        as it should be passing for Mac an iOs too.

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

2018-02-19  Fujii Hironori  <Hironori.Fujii@sony.com>

        null m_lastNodeInserted dereference at ReplaceSelectionCommand::InsertedNodes::lastLeafInserted
        https://bugs.webkit.org/show_bug.cgi?id=161947

        Reviewed by Ryosuke Niwa.

        * platform/gtk/TestExpectations:
        Unmarked editing/execCommand/crash-replacing-list-by-list.html and editing/inserting/insert-table-in-paragraph-crash.html.

2018-02-19  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Implement a compact set of media controls
        https://bugs.webkit.org/show_bug.cgi?id=182937
        <rdar://problem/37682257>

        Reviewed by Eric Carlson.

        Add new tests that cover the basic properties and layout under different situations of the new CompactMediaControls.

        * media/modern-media-controls/compact-media-controls/compact-media-controls-constructor-expected.txt: Added.
        * media/modern-media-controls/compact-media-controls/compact-media-controls-constructor.html: Added.
        * media/modern-media-controls/compact-media-controls/compact-media-controls-layout-expected.txt: Added.
        * media/modern-media-controls/compact-media-controls/compact-media-controls-layout.html: Added.

2018-02-19  Antoine Quint  <graouts@apple.com>

        [Web Animations] Make KeyframeEffect target nullable and read-write
        https://bugs.webkit.org/show_bug.cgi?id=182741

        Reviewed by Dean Jackson.

        Add some platform-specific results for Sierra where we don't support the "font-variation-settings" property.

        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added.

2018-02-19  Dean Jackson  <dino@apple.com>

        SIGFPE @ int WebCore::SVGToOTFFontConverter::scaleUnitsPerEm<int> const + 45
        https://bugs.webkit.org/show_bug.cgi?id=182944
        <rdar://problem/35369984>

        Reviewed by Myles Maxfield.

        Add a test with a 0 unitsperem SVG font.

        * svg/text/font-bad-unitsperem-expected.txt: Added.
        * svg/text/font-bad-unitsperem.html: Added.
        * svg/text/resources/font-bad-unitsperem.svg: Added.

2018-02-19  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r219342): Touch event coordinates and elementFromPoint coordinates differ
        https://bugs.webkit.org/show_bug.cgi?id=182910
        <rdar://problem/37533950>

        Reviewed by Simon Fraser.

        * fast/dom/elementFromPoint-scaled-scrolled.html:
        Revert changes to this test made in r219342.

        * fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html:
        * fast/dom/elementFromPoint-scaled-scrolled-layout-viewport-expected.txt:
        Add a test that is equivalent to elementFromPoint-scaled-scrolled.html after r219342,
        which turns on the new setting. This test is disabled on iOS (like it was
        in r219342) because it needs window.scrollTo.

        * platform/ios-wk2/fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
        This now passes.

        * platform/ios/TestExpectations:
        Re-mark-failing a test that was un-marked-failing by r219342.

2018-02-19  Daniel Bates  <dabates@apple.com>

        Do not block authentication challenge to navigated resources
        https://bugs.webkit.org/show_bug.cgi?id=182807
        <rdar://problem/37481619>

        Reviewed by Brent Fulgham.

        Update tests based on the new behavior.

        * http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
        * http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
        * http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https-expected.txt: Removed.
        * http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https.html: Removed.
        * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
        * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html:
        * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt:
        * http/tests/security/mixedContent/resources/frame-with-insecure-image-redirects-to-basic-auth-secure-image.html:
        * http/tests/security/mixedContent/resources/subresource/protected-pdf.php: Removed.
        * http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https-expected.txt:
        * http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
        * platform/wk2/http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https-expected.txt: Added.
        * platform/wk2/http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt.

2018-02-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/track/track-css-matching-default.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182932

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-02-19  Ryan Haddad  <ryanhaddad@apple.com>

        Skip editing/pasteboard/data-transfer-set-data-sanitizes-html-when-copying-in-null-origin.html on iOS Release.
        https://bugs.webkit.org/show_bug.cgi?id=182850

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-02-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/cache-storage/cache-representation.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182928

        Unreviewed test gardening.

        * TestExpectations:

2018-02-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark inspector/console/messageRepeatCountUpdated.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=152452

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-02-19  Frederic Wang  <fwang@igalia.com>

        IFrame is resized incorrectly on orientation change
        https://bugs.webkit.org/show_bug.cgi?id=155198

        Reviewed by Antonio Gomes.

        Add a non-regression test to verify that iframes are properly resized after orientation
        changes. This bug happened in iOS 10.0 but not in trunk.

        * fast/events/ios/rotation/resize-iframe-after-orientation-change-expected.txt: Added.
        * fast/events/ios/rotation/resize-iframe-after-orientation-change.html: Added.

2018-02-19  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Update test expectations

        Unreviewed gardening.

        * platform/gtk/TestExpectations: inspector/heap/getPreview.html is
        passing again after r228600.

2018-02-19  Fujii Hironori  <Hironori.Fujii@sony.com>

        REGRESSION(r219298): RELEASE_ASSERT(!m_owningPointerForClose) fails in WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
        https://bugs.webkit.org/show_bug.cgi?id=174354
        <rdar://problem/33294987>

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations:
        Unmarked imported/w3c/IndexedDB-private-browsing/idbfactory_open.html.
        * platform/ios-wk2/TestExpectations:
        Unmarked imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html.
        * platform/mac/TestExpectations: Ditto.
        * platform/wpe/TestExpectations: Unmarked
        imported/w3c/IndexedDB-private-browsing/idbfactory_open.html and
        imported/w3c/IndexedDB-private-browsing/idbfactory_open12.html.

2018-02-18  Philippe Normand  <pnormand@igalia.com>

        [GTK][WPE] Fullscreen video is broken
        https://bugs.webkit.org/show_bug.cgi?id=182740

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations: Unflag now-passing fullscreen tests.

2018-02-18  Zalan Bujtas  <zalan@apple.com>

        [RenderTreeBuilder] REGRESSION(r228238) Detach renderer before destroying its subtree.
        https://bugs.webkit.org/show_bug.cgi?id=182908
        <rdar://problem/37619394>

        Reviewed by Antti Koivisto.

        * fast/block/crash-when-subtree-is-still-attached-expected.txt: Added.
        * fast/block/crash-when-subtree-is-still-attached.html: Added.

2018-02-16  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r228575.

        Introduced LayoutTest crashes under GuardMalloc.

        Reverted changeset:

        "Use ResourceLoader to load appcache manifest"
        https://bugs.webkit.org/show_bug.cgi?id=182861
        https://trac.webkit.org/changeset/228575

2018-02-16  Youenn Fablet  <youenn@apple.com>

        Allow specifying which plug-ins are supported
        https://bugs.webkit.org/show_bug.cgi?id=182748

        Reviewed by Chris Dumez.

        * http/tests/plugins/nounsupported-plugin-expected.txt: Added.
        * http/tests/plugins/nounsupported-plugin.html: Added.
        * http/tests/plugins/supported-plugin-all-origin-visibility-expected.txt: Added.
        * http/tests/plugins/supported-plugin-all-origin-visibility.html: Added.
        * http/tests/plugins/supported-plugin-on-specific-origin-expected.txt: Added.
        * http/tests/plugins/supported-plugin-on-specific-origin.html: Added.
        * http/tests/plugins/supported-plugin-origin-specific-visibility-expected.txt: Added.
        * http/tests/plugins/supported-plugin-origin-specific-visibility.html: Added.
        * http/tests/plugins/unsupported-plugin-on-specific-origin-expected.txt: Added.
        * http/tests/plugins/unsupported-plugin-on-specific-origin.html: Added.
        * plugins/unsupported-plugin-expected.txt: Added.
        * plugins/unsupported-plugin.html: Added.
        * platform/ios-wk1/TestExpectations:
        * platform/mac-wk1/TestExpectations:

2018-02-16  Ryan Haddad  <ryanhaddad@apple.com>

        Mark fast/block/positioning/fixed-container-with-relative-parent.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181834

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-02-16  Youenn Fablet  <youenn@apple.com>

        Use ResourceLoader to load appcache manifest
        https://bugs.webkit.org/show_bug.cgi?id=182861

        Reviewed by Alex Christensen.

        * http/tests/appcache/fail-on-update-2-expected.txt:
        * http/tests/appcache/manifest-redirect-2-expected.txt:
        * http/tests/appcache/offline-access-expected.txt:

2018-02-16  Chris Dumez  <cdumez@apple.com>

        Crash under WebCore::EventTarget::fireEventListeners
        https://bugs.webkit.org/show_bug.cgi?id=182880
        <rdar://problem/20788804>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * webaudio/audiobuffersource-ended-detached-frame-expected.txt: Added.
        * webaudio/audiobuffersource-ended-detached-frame.html: Added.
        * webaudio/resources/audiobuffersource-ended-detached-frame-iframe.html: Added.

2018-02-16  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
        https://bugs.webkit.org/show_bug.cgi?id=182771
        <rdar://problem/36459988>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available-expected.txt: Added.
        * http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available.html: Added.

2018-02-16  Fujii Hironori  <Hironori.Fujii@sony.com>

        fast/frames/sandboxed-iframe-navigation-top-denied.html is crashing in Inspector::createScriptCallStackForConsole::Exec for GTK
        https://bugs.webkit.org/show_bug.cgi?id=172952

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations: Unmarked fast/frames/sandboxed-iframe-navigation-top-denied.html.

2018-02-16  Fujii Hironori  <Hironori.Fujii@sony.com>

        IndexedDB: Several test crash in when destroying a IDBKeyData
        https://bugs.webkit.org/show_bug.cgi?id=167576

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations: Unmarked
        imported/w3c/IndexedDB-private-browsing/idbcursor_iterating.html,
        imported/w3c/IndexedDB-private-browsing/idbcursor_iterating_index.html
        and storage/indexeddb/modern/index-3-private.html.
        * platform/wpe/TestExpectations: Unmarked
        imported/w3c/IndexedDB-private-browsing/idbcursor_iterating.html and
        imported/w3c/IndexedDB-private-browsing/idbcursor_iterating_index.html.

2018-02-16  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Update expectations for a couple of flaky tests

        Unreviewed gardening.

        http/tests/appcache/fail-on-update.html and
        svg/as-image/svg-as-image-canvas.html are flaky.
        * platform/wpe/TestExpectations:

2018-02-16  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] New rebaseline after r228427

        Unreviewed gardening
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt: Remove
        gone AccessibleNode class.

2018-02-16  Claudio Saavedra  <csaavedra@igalia.com>

        Update expectations for a couple of failing tests.

        Unreviewed gardening.
        * platform/gtk/TestExpectations:

2018-02-15  Youenn Fablet  <youenn@apple.com>

        Resources loaded from service workers are not downloadable
        https://bugs.webkit.org/show_bug.cgi?id=182848

        Reviewed by Chris Dumez.

        * http/tests/workers/service/resources/download-binary.php: Added.
        * http/tests/workers/service/resources/service-worker-download-worker.js: Added.
        * http/tests/workers/service/service-worker-download.https-expected.txt: Added.
        * http/tests/workers/service/service-worker-download.https.html: Added.

2018-02-15  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182853

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-02-15  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182849

        Unreviewed test gardening.

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

2018-02-15  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap tests.
        https://bugs.webkit.org/show_bug.cgi?id=182833

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-02-15  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting
        https://bugs.webkit.org/show_bug.cgi?id=181946
        <rdar://problem/37258262>

        Reviewed by Chris Dumez.

        * http/wpt/credential-management/credentialscontainer-store-basics.https.html:
        * http/wpt/webauthn/idl.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-create-success.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-success.https.html:
        * http/wpt/webauthn/resources/util.js:

2018-02-14  Antti Koivisto  <antti@apple.com>

        Do sibling invalidation on mutation
        https://bugs.webkit.org/show_bug.cgi?id=182809

        Reviewed by Zalan Bujtas.

        Sibling invalidation now happens on mutation. Update the tests.

        * fast/css/indirect-adjacent-style-invalidation-1-expected.txt:
        * fast/css/indirect-adjacent-style-invalidation-1.html:
        * fast/css/indirect-adjacent-style-invalidation-2-expected.txt:
        * fast/css/indirect-adjacent-style-invalidation-2.html:
        * fast/css/indirect-adjacent-style-invalidation-3-expected.txt:
        * fast/css/indirect-adjacent-style-invalidation-3.html:

2018-02-14  Daniel Bates  <dabates@apple.com>

        Disallow cross-origin subresources from asking for credentials
        https://bugs.webkit.org/show_bug.cgi?id=182579
        <rdar://problem/36162271>

        Reviewed by Andy Estes.

        Copied existing tests that depended on cross-origin subresources being able prompt for credentials
        to files with suffix allowCrossOriginSubresourcesToAskForCredentials. These copies were modified
        to set allowCrossOriginSubresourcesToAskForCredentials to false so as to opt-into the behavior
        before this change. Updated existing tests to reflect the new behavior and added new tests to
        ensure that we do not regress the new behavior.

        * http/tests/media/video-auth-expected.txt:
        * http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/http/tests/media/video-auth-expected.txt.
        * http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials.html: Copied from LayoutTests/http/tests/media/video-auth.html.
        * http/tests/media/video-auth.html:
        * http/tests/security/basic-auth-subresource-expected.txt: Added.
        * http/tests/security/basic-auth-subresource.html: Added.
        * http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Renamed from LayoutTests/platform/mac-wk1/http/tests/security/credentials-iframes-expected.txt.
        * http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials.html: Added.
        * http/tests/security/credentials-iframes-expected.txt:
        * http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/insecure-basic-auth-image.https-expected.txt.
        * http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
        * http/tests/security/mixedContent/insecure-basic-auth-image.https-expected.txt:
        * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt.
        * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html: Added.
        * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt.
        * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
        * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt.
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Renamed from LayoutTests/platform/mac-wk1/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt.
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html:
        * http/tests/security/resources/basic-auth-subresource.html: Added.
        * http/tests/security/resources/subresource1/protected-image.php: Added.
        * http/tests/security/resources/subresource2/protected-image.php: Added.
        * platform/win/TestExpectations: Skip allowCrossOriginSubresourcesToAskForCredentials-suffixed tests as
        DumpRenderTree on Windows does not support parsing test options. See <https://bugs.webkit.org/show_bug.cgi?id=173281>.
        * platform/win/http/tests/security/basic-auth-subresource-expected.txt: Added Windows-specific result. For some reason
        connections to localhost:8443 are not allowed. See <https://bugs.webkit.org/show_bug.cgi?id=182609> for more details.
        * platform/wk2/http/tests/media/video-auth-expected.txt:
        * platform/wk2/http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/media/video-auth-expected.txt.
        * platform/wk2/http/tests/security/basic-auth-subresource-expected.txt: Added.
        * platform/wk2/http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/http/tests/security/credentials-iframes-expected.txt.
        * platform/wk2/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt.

2018-02-14  Matt Lewis  <jlewis3@apple.com>

        Marked imported/w3c/web-platform-tests/service-workers/cache-storage/worker/cache-storage-match.https.html as flaky on macOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=177198

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-02-14  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:

2018-02-14  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Don't use arrays as values for localisable strings
        https://bugs.webkit.org/show_bug.cgi?id=182791
        <rdar://problem/36007262>

        Reviewed by Dean Jackson.

        * media/modern-media-controls/localized-strings/replaced-string-expected.txt:
        * media/modern-media-controls/localized-strings/replaced-string.html:

2018-02-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r228444.

        Introduced API and Layout test failures.

        Reverted changeset:

        "[WebAuthN] Revisit the whole async model of task dispatching,
        timeout and aborting"
        https://bugs.webkit.org/show_bug.cgi?id=181946
        https://trac.webkit.org/changeset/228444

2018-02-13  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening

        * platform/gtk/TestExpectations:
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:

2018-02-13  Antoine Quint  <graouts@apple.com>

        Removing the controls attribute from a <video> element does not tear down the controls shadow DOM nor cancel event listeners.
        https://bugs.webkit.org/show_bug.cgi?id=182668

        Reviewed by Jer Noble.

        Ensure controls are turned on for a number of tests that would fail otherwise since media events would not be handled by media
        controls without it.

        * http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html:
        * http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast.html:
        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-live-broadcast.html:
        * http/tests/media/modern-media-controls/status-support/status-support-live-broadcast.html:
        * http/tests/media/modern-media-controls/status-support/status-support-loading.html:
        * media/modern-media-controls/airplay-support/airplay-support.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/playback-support/playback-support-autoplay.html:
        * media/modern-media-controls/playback-support/playback-support-media-api.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-lowPowerMode.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/status-support/status-support-error.html:
        * media/modern-media-controls/time-labels-support/elapsed-time.html:
        * media/modern-media-controls/time-labels-support/remaining-time.html:
        * media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html:
        * media/modern-media-controls/tracks-support/tracks-support-text-tracks.html:
        * media/modern-media-controls/volume-support/volume-support-media-api-mute.html:
        * media/modern-media-controls/volume-support/volume-support-media-api.html:

2018-02-13  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting
        https://bugs.webkit.org/show_bug.cgi?id=181946
        <rdar://problem/37258262>

        Reviewed by Chris Dumez.

        * http/wpt/credential-management/credentialscontainer-store-basics.https.html:
        * http/wpt/webauthn/idl.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-create-success.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-success.https.html:
        * http/wpt/webauthn/resources/util.js:

2018-02-13  Antti Koivisto  <antti@apple.com>

        Crash when breakpoint hit in unload handler
        https://bugs.webkit.org/show_bug.cgi?id=169855
        <rdar://problem/28683567>

        Reviewed by Daniel Bates and Joseph Pecoraro.

        * inspector/debugger/reload-paused-expected.txt: Added.
        * inspector/debugger/reload-paused.html: Added.

2018-02-13  Nan Wang  <n_wang@apple.com>

        AX: Remove AccessibleNode class
        https://bugs.webkit.org/show_bug.cgi?id=182724
        <rdar://problem/37486024>

        Reviewed by Chris Fleizach.

        * accessibility/accessibility-object-model-expected.txt: Removed.
        * accessibility/accessibility-object-model.html: Removed.
        * accessibility/mac/AOM-bool-properties-expected.txt: Removed.
        * accessibility/mac/AOM-bool-properties.html: Removed.
        * accessibility/mac/AOM-number-properties-expected.txt: Removed.
        * accessibility/mac/AOM-number-properties.html: Removed.
        * accessibility/mac/AOM-relation-property-expected.txt: Removed.
        * accessibility/mac/AOM-relation-property.html: Removed.
        * accessibility/mac/AOM-string-properties-expected.txt: Removed.
        * accessibility/mac/AOM-string-properties.html: Removed.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2018-02-12  Chris Fleizach  <cfleizach@apple.com>

        AX: defer focusedUIElement notifications
        https://bugs.webkit.org/show_bug.cgi?id=182643
        <rdar://problem/37394310>

        Reviewed by Zalan Bujtas.

        * accessibility/mac/aria-menu-item-selected-notification.html:
             Rewrite test to accomodate that focus changes happen asynchronously.
        * accessibility/mac/selection-notification-focus-change-expected.txt:
        * platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt:
             The order of notifications is different now that focus changes happen later.

2018-02-12  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Classify resources as prevalent based on redirects to other prevalent resources
        https://bugs.webkit.org/show_bug.cgi?id=182664
        <rdar://problem/37372572>

        Reviewed by Brent Fulgham.

        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to-expected.txt: Added.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to.html: Added.
        * platform/wk2/TestExpectations:
            New tests added as [ Pass ].

2018-02-12  Matt Lewis  <jlewis3@apple.com>

        Marked multiple http/tests/resourceLoadStatistics tests as flaky and skip.
        

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-02-12  Matt Lewis  <jlewis3@apple.com>

        Marked http/tests/workers/service/basic-messageport.html as flaky on macOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=182630

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-02-12  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r228376.

        This caused accessibility/mac/selection-notification-focus-
        change.html to become flaky on macOS.

        Reverted changeset:

        "AX: defer focusedUIElement notifications"
        https://bugs.webkit.org/show_bug.cgi?id=182643
        https://trac.webkit.org/changeset/228376

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

        Mark imported/mozilla/svg/conditions-07.svg as a flaky failure on Windows.

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-02-12  Matt Lewis  <jlewis3@apple.com>

        Skipped webgl/1.0.3/conformance/rendering/many-draw-calls.html on iOS Simulator Debug WK2
        https://bugs.webkit.org/show_bug.cgi?id=182144

        Unreviewed test expectations.

        * platform/ios-wk2/TestExpectations:

2018-02-12  Chris Fleizach  <cfleizach@apple.com>

        AX: defer focusedUIElement notifications
        https://bugs.webkit.org/show_bug.cgi?id=182643
        <rdar://problem/37394310>

        Reviewed by Zalan Bujtas.

        * accessibility/mac/aria-menu-item-selected-notification.html:
             Rewrite test to accomodate that focus changes happen asynchronously.
        * accessibility/mac/selection-notification-focus-change-expected.txt:
        * platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt:
             The order of notifications is different now that focus changes happen later.        

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

        Update test expectations for some tests which are failing on only one ews Windows bot.
        https://bugs.webkit.org/show_bug.cgi?id=182694

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        REGRESSION (r223440): Copying & pasting a list from Microsoft Word to TinyMCE fails
        https://bugs.webkit.org/show_bug.cgi?id=182564

        Reviewed by Wenson Hsieh.

        Added a test to make sure special Microsoft Word quirks would not get triggered
        when pasting content copied within WebKit.

        * http/tests/security/clipboard/copy-paste-html-across-origin-strips-mso-list-expected.txt: Added.
        * http/tests/security/clipboard/copy-paste-html-across-origin-strips-mso-list.html: Added.
        * http/tests/security/clipboard/resources/copy-mso-list.html: Added.

2018-02-09  Ryan Haddad  <ryanhaddad@apple.com>

        Mark two service worker LayoutTests as flaky.

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-02-09  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, updated GTK test expectations after r228276

        * platform/gtk/TestExpectations:

2018-02-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        Pasting from Excel no longer provides text/html data
        https://bugs.webkit.org/show_bug.cgi?id=182636
        <rdar://problem/37087060>

        Reviewed by Ryosuke Niwa.

        Rebaseline some existing layout tests. We now expose "text/html" alongside "Files" on DataTransfer.types() in
        some circumstances. This also provides some test coverage for ensuring that the paste codepath iOS allows the
        page to request HTML, even if there are files on the pasteboard. See the WebCore ChangeLog for more detail.

        * editing/pasteboard/data-transfer-item-list-add-file-multiple-times-expected.txt:
        * editing/pasteboard/data-transfer-item-list-add-file-on-copy-expected.txt:
        * editing/pasteboard/data-transfer-item-list-add-file-on-drag-expected.txt:

        Adjust test expectations for the additional "text/html" type.

        * editing/pasteboard/paste-image-does-not-reveal-file-url-expected.txt:
        * editing/pasteboard/paste-image-does-not-reveal-file-url.html:

        Instead of checking that types is [ "Files" ], just check that types contains "Files". On iOS, copying a
        selected image does not also copy HTML, but on macOS it does; this covers both cases.

2018-02-09  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Object.shallowEqual always fails when comparing array property values
        https://bugs.webkit.org/show_bug.cgi?id=182634
        <rdar://problem/37374639>

        Reviewed by Devin Rousso.

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

2018-02-09  Andy Estes  <aestes@apple.com>

        [Payment Request] Crash in PaymentRequest::canMakePayment() when Apple Pay payment method data is missing required fields
        https://bugs.webkit.org/show_bug.cgi?id=182631

        Reviewed by Mark Lam.

        * http/tests/paymentrequest/payment-request-canmakepayment-method.https-expected.txt:
        * http/tests/paymentrequest/payment-request-canmakepayment-method.https.html:

2018-02-09  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for fast/forms/textarea/textarea-state-restore.html
        https://bugs.webkit.org/show_bug.cgi?id=90980

        Unreviewed test gardening.

        * TestExpectations:
        * platform/wk2/TestExpectations:

2018-02-09  Philippe Normand  <pnormand@igalia.com>

        [GStreamer][WebAudio] Winamp2-js woes
        https://bugs.webkit.org/show_bug.cgi?id=182612

        Reviewed by Xabier Rodriguez Calvar and Carlos Alberto Lopez Perez.

        * webaudio/silence-after-playback-expected.wav: Added.
        * webaudio/silence-after-playback.html: Added.

2018-02-09  Javier Fernandez  <jfernandez@igalia.com>

        [css-align] Implement the new behavior of 'legacy' for justify-items
        https://bugs.webkit.org/show_bug.cgi?id=172712

        Reviewed by Antti Koivisto.

        Rebaselined Default Alignment related tests because of the new 'legacy' value.

        * css3/parse-alignment-of-root-elements.html:
        * css3/parse-place-items.html:
        * fast/css/parse-justify-items.html:

2018-02-08  Matt Lewis  <jlewis3@apple.com>

        Marked media/W3C/video/events/event_progress_manual.html as flaky on macOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=177663

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Form submission after navigation fails when decidePolicyForNavigationAction is async
        https://bugs.webkit.org/show_bug.cgi?id=182412
        <rdar://problem/35181099>

        Reviewed by Alex Christensen.

        Import layout test coverage from Alex's earlier patch.

        * http/tests/navigation/resources/a.html: Added.
        * http/tests/navigation/resources/b.html: Added.
        * http/tests/navigation/sync-form-submit-iframe-expected.txt: Added.
        * http/tests/navigation/sync-form-submit-iframe.html: Added.

2018-02-08  Per Arne Vollan  <pvollan@apple.com>

        Mark accessibility/aria-hidden-updates-alldescendants.html as a failure on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=182626

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-02-08  John Wilander  <wilander@apple.com>

        Switch http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html from testRunner.installStatisticsDidModifyDataRecordsCallback() to testRunner.installStatisticsDidScanDataRecordsCallback()
        https://bugs.webkit.org/show_bug.cgi?id=182624
        <rdar://problem/37364749>

        Unreviewed test gardening.

        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
        * platform/mac-wk2/TestExpectations:
            Changed from [ Pass Timeout ] to [ Pass ] for the given test.

2018-02-08  Ryan Haddad  <ryanhaddad@apple.com>

        Mark inspector/console/clearMessages.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182620

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-02-08  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182571

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-02-08  Ryan Haddad  <ryanhaddad@apple.com>

        Mark webanimations/animation-opacity-animation-crash.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181612

        Unreviewed test gardening.

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

2018-02-08  Ryan Haddad  <ryanhaddad@apple.com>

        Mark fast/dom/adopt-node-crash-2.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182589

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-02-08  Chris Fleizach  <cfleizach@apple.com>

        AX: Defer attribute computation until needed.
        https://bugs.webkit.org/show_bug.cgi?id=182386
        <rdar://problem/37115277>

        Reviewed by Zalan Bujtas.

        Update tests to reflect new world of delayed attribute handling for accessibility.

        * accessibility/canvas-fallback-content.html:
             Make test async so attributes can be checked after deferred handling.
        * accessibility/mac/aria-expanded-notifications.html:
             Access elements through AX tree so attribute changes generate notifications.
        * accessibility/mac/aria-listbox-selectedchildren-change.html:
             Make test async so attributes can be checked after deferred handling.
        * accessibility/mac/aria-menu-item-selected-notification.html:
             Access menu item through AX tree so attribute changes generate notifications.
        * accessibility/mac/aria-modal-auto-focus.html:
             Access buttons after delay so attributes have time to be deferred.
        * accessibility/mac/element-busy-changed.html:
             Process second attribute change after delay so we generate two notifications.
        * accessibility/mac/expanded-notification.html:
             Set attributes after a delay so they generate individual notifications.
        * accessibility/notification-listeners.html:
              Access elements through AX tree so attribute changes generate notifications.

2018-02-08  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r228270.

        * platform/gtk/TestExpectations:

2018-02-08  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] LayoutTest webaudio/silent-audio-interrupted-in-background.html makes its subsequent test flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=173916

        Reviewed by Xabier Rodriguez Calvar.

        * platform/gtk/TestExpectations: Unskip fixed test.

2018-02-06  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] Implement Array.prototype.flatMap and Array.prototype.flatten
        https://bugs.webkit.org/show_bug.cgi?id=182440

        Reviewed by Darin Adler.

        * inspector/model/remote-object-get-properties-expected.txt:
        * js/Object-getOwnPropertyNames-expected.txt:
        * js/script-tests/Object-getOwnPropertyNames.js:

2018-01-13  Darin Adler  <darin@apple.com>

        Event improvements
        https://bugs.webkit.org/show_bug.cgi?id=179591

        Reviewed by Chris Dumez.

        * fast/dom/reference-cycle-leaks-expected.txt: Expect success for the
        CustomEvent, MessageEvent, and PopStateEvent cycle leak checks.

2018-02-07  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [iOS] Skip webgl/webgl-texture-image-buffer-reuse.html
        https://bugs.webkit.org/show_bug.cgi?id=182592

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-02-07  Youenn Fablet  <youenn@apple.com>

        Remove www1/www2 URLs from service worker tests
        https://bugs.webkit.org/show_bug.cgi?id=182548

        Reviewed by Chris Dumez.

        * TestExpectations:

2018-02-07  John Wilander  <wilander@apple.com>

        Switch testRunner.installStatisticsDidModifyDataRecordsCallback() to testRunner.installStatisticsDidScanDataRecordsCallback() in two tests
        https://bugs.webkit.org/show_bug.cgi?id=182366
        <rdar://problem/37094805>

        Unreviewed test gardening.

        This change is an attempt to make two flaky test cases stable.
        It also skips http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html
        because the timestamp resolution of 5 seconds is now so short that we run into timing flakiness.

        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
        * platform/mac-wk2/TestExpectations:
            Removed [ Skip ] entry for http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html
            Added [ Skip ] entry for http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html
        * platform/wk2/TestExpectations:
            Now both the above test cases are marked [ Pass ].

2018-02-07  Ryan Haddad  <ryanhaddad@apple.com>

        Skip media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html.
        https://bugs.webkit.org/show_bug.cgi?id=169158

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-02-07  Youenn Fablet  <youenn@apple.com>

        ASSERTION FAILED: m_timeOrigin in Performance::Performance()
        https://bugs.webkit.org/show_bug.cgi?id=182558
        <rdar://problem/37297551>

        Reviewed by Chris Dumez.

        Make use of WPT cors-preflight-star.any.js test in service worker.
        This test should be removed once WPT will run any.js tests in service workers as well as workers and window.

        * http/wpt/service-workers/cors-preflight-star.any.js: Added.
        * http/wpt/service-workers/cors-preflight-star.any.serviceworker-expected.txt: Added.
        * http/wpt/service-workers/cors-preflight-star.any.serviceworker.html: Added.

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

        REGRESSION(r226396): File paths are inserted when dropping image files
        https://bugs.webkit.org/show_bug.cgi?id=182557
        <rdar://problem/37294120>

        Reviewed by Ryosuke Niwa.

        Tweak an existing layout test that drops a file into a contenteditable, to check that no text is inserted into
        the editable element after dropping.

        * editing/pasteboard/drag-files-to-editable-element-as-URLs-expected.txt:
        * editing/pasteboard/drag-files-to-editable-element-as-URLs.html:

2018-02-07  John Wilander  <wilander@apple.com>

        Restrict Referer to just the origin for third parties in private mode and third parties ITP blocks cookies for in regular mode
        https://bugs.webkit.org/show_bug.cgi?id=182559
        <rdar://problem/36990337>

        Reviewed by Andy Estes.

        * TestExpectations:
            New tests marked as [ Skip ]. The change only applies to iOS and Mac.
        * http/tests/resourceLoadStatistics/resources/echo-referrer.php: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-expected.txt: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-expected.txt: Added.
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests.html: Added.
        * http/tests/security/resources/echo-referrer.php: Added.
        * http/tests/security/resources/redirect.php: Added.
        * http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode-expected.txt: Added.
        * http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html: Added.
        * http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode-expected.txt: Added.
        * http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode.html: Added.
        * platform/ios/TestExpectations:
            New tests marked as [ Pass ].
        * platform/mac-wk2/TestExpectations:
            New tests marked as [ Pass ].
        * platform/wk2/TestExpectations:
            New tests marked as [ Skip ].

2018-02-07  Matt Lewis  <jlewis3@apple.com>

        Adjusted test expectations for storage/indexeddb/modern/idbtransaction-objectstore-failures.html.
        https://bugs.webkit.org/show_bug.cgi?id=171862

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-02-07  Daniel Bates  <dabates@apple.com>

        Log error when authentication challenge is blocked due to an insecure request
        https://bugs.webkit.org/show_bug.cgi?id=182358

        Reviewed by Andy Estes.

        Add more tests and update expected results of existing tests now that we emit console messages.

        Also fixed a typo in LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html
        so that it tests what it actually claims to test and made the test programmatically load the image
        to avoid output flakiness caused by the preload scanner preloading it. The preload scanner performs
        mixed content checks and this can cause duplicate mixed content warnings in the test output.

        * http/tests/security/mixedContent/insecure-basic-auth-image.https-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-basic-auth-image.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html.
        * http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https-expected.txt:
        * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt:
        * http/tests/security/mixedContent/resources/subresource/protected-page.php: Added.
        * http/tests/security/mixedContent/resources/subresource2/protected-image.php: Added.
        * http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https-expected.txt: Added.
        * http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https.html: Added.
        * http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https-expected.txt: Added.
        * http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https.html: Added.
        * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html:

2018-02-07  Chris Dumez  <cdumez@apple.com>

        IndexedDB in service workers is using a memory backed store
        https://bugs.webkit.org/show_bug.cgi?id=182574
        <rdar://problem/37316205>

        Reviewed by Youenn Fablet.

        Unskip test that no longer times out.

        * TestExpectations:

2018-02-07  Ms2ger  <Ms2ger@igalia.com>

        [WPE] Enable http/wpt/fetch/response-status-text.html
        https://bugs.webkit.org/show_bug.cgi?id=177872

        Unreviewed test gardening.

        * platform/wpe/TestExpectations: the test appears to pass since r227900.

2018-02-07  Ms2ger  <Ms2ger@igalia.com>

        [WPE] Test gardening
        https://bugs.webkit.org/show_bug.cgi?id=182568

        Unreviewed test gardening.

        * platform/wpe/TestExpectations:
          - imported/w3c/web-platform-tests/css/css-shapes/shape-outside/values/shape-margin-001.html: fixed in r226404.
          - imported/w3c/web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html: fixed in r226404.
          - imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders.htm: fixed in r227900.
          - imported/w3c/web-platform-tests/XMLHttpRequest/status-async.htm: fixed in r227900.
          - imported/w3c/web-platform-tests/XMLHttpRequest/status-basic.htm: fixed in r227900.
          - imported/w3c/web-platform-tests/XMLHttpRequest/status-error.htm: fixed in r227900.
          - svg/custom/filter-update-different-root.html: fixed in r225797.
          - svg/filters/color-space-conversion.svg: fixed in r225797.
          - svg/filters/container-with-filters.svg: fixed in r225797.
          - svg/filters/feComposite-background-rect-control-operators.svg: fixed in r225797.
          - svg/filters/feDisplacementMap-filterUnits.svg: fixed in r225797.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
          update for error message change, probably in r227900.

2018-02-06  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Rename String.prototype.trimEnd to avoid conflicts with native trimEnd
        https://bugs.webkit.org/show_bug.cgi?id=182545

        Reviewed by Brian Burg.

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

2018-02-06  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Rendering SVG images with same size as WebGL texture doesn't work correctly
        https://bugs.webkit.org/show_bug.cgi?id=182367

        Reviewed by Dean Jackson.

        * webgl/webgl-texture-image-buffer-reuse-expected.html: Added.
        * webgl/webgl-texture-image-buffer-reuse.html: Added.

2018-02-06  Matt Lewis  <jlewis3@apple.com>

        Marked transitions/transition-display-property.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182554

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-02-06  Youenn Fablet  <youenn@apple.com>

        imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182541

        Reviewed by Chris Dumez.

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html is a flaky failure on macOS and iOS
        https://bugs.webkit.org/show_bug.cgi?id=181392
        <rdar://problem/36384136>

        Reviewed by Youenn Fablet.

        Unskip test that is no longer flaky.

        * platform/mac-wk2/TestExpectations:

2018-02-06  Andy Estes  <aestes@apple.com>

        [Payment Request] show() should take an optional PaymentDetailsUpdate promise
        https://bugs.webkit.org/show_bug.cgi?id=182538
        <rdar://problem/36754552>

        Reviewed by Tim Horton.

        * http/tests/paymentrequest/payment-request-show-method.https-expected.txt:
        * http/tests/paymentrequest/payment-request-show-method.https.html:

2018-02-06  Daniel Bates  <dabates@apple.com>

        Make mixed content basic auth tests more robust
        https://bugs.webkit.org/show_bug.cgi?id=182537

        Reviewed by Chris Dumez.

        Load the test image programmatically instead of declaratively to avoid output flakiness caused by
        the preload scanner preloading the test image. The preload scanner performs mixed content checks
        and this can cause duplicate mixed content warnings in the test output.

        * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html:
        * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html:

2018-02-06  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Test at media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html fails
        https://bugs.webkit.org/show_bug.cgi?id=182425

        Reviewed by Dean Jackson.

        Turn the test back on now that it works.

        * platform/mac/TestExpectations:

2018-02-06  Antoine Quint  <graouts@apple.com>

        Layout Test media/modern-media-controls/slider/slider-value.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182515

        Reviewed by Dean Jackson.

        Ensure we stop printing messages once the test has completed since the bots show that this could happen,
        although I couldn't reproduce locally.

        * media/modern-media-controls/slider/slider-value.html:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip readable-byte-streams/detached-buffers.serviceworker.https.html as it is no longer flaky

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, add bug number of service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https.html

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip service-worker/about-blank-replacement.https.html as it is no longer flaky

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip service-worker/service-worker-csp-connect.https.html as it is no longer flaky

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip service-worker/uncontrolled-page.https.html as it no longer seems flaky

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, mark service-worker/windowclient-navigate.https.html as slow instead of flaky

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip service-worker/registration-service-worker-attributes.https.html now that it is no longer flaky

        * TestExpectations:

2018-02-06  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip service-worker/update.https.html now that it is no longer flaky

        * TestExpectations:

2018-02-05  Youenn Fablet  <youenn@apple.com>

        Crash in imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html
        https://bugs.webkit.org/show_bug.cgi?id=182422
        <rdar://problem/37182665>

        Reviewed by Alex Christensen.

        * platform/mac/TestExpectations:

2018-02-05  Myles C. Maxfield  <mmaxfield@apple.com>

        Test gardening after r228044
        https://bugs.webkit.org/show_bug.cgi?id=182517

        Unreviewed.

        * platform/ios/fast/css-generated-content/initial-letter-basic-expected.txt:
        * platform/ios/fast/css-generated-content/initial-letter-border-padding-expected.txt:
        * platform/ios/fast/css-generated-content/initial-letter-raised-expected.txt:
        * platform/ios/fast/css-generated-content/initial-letter-sunken-expected.txt:

2018-02-05  Simon Fraser  <simon.fraser@apple.com>

        iOS WK2: fast/visual-viewport/resize-event-fired.html crashes with GuardMalloc
        https://bugs.webkit.org/show_bug.cgi?id=182504
        rdar://problem/36386435

        Reviewed by Wenson Hsieh.
        
        Don't end the test until both the resize handler has been called, and the zoom is complete, to
        avoid leaving dangling zoom completion handlers.

        * fast/visual-viewport/resize-event-fired.html:
        * platform/ios/TestExpectations:

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

        Unreviewed, unskip fetch-event-respond-with-partial-stream.https.html as it no longer times out

        * TestExpectations:

2018-02-05  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK+ gardening.

        * platform/gtk/TestExpectations: Re-skip the modern media controls tests
        on the GTK+ port after they were unskipped in r228097. They're timing
        out in large enough numbers to cause early exits. They should be
        examined in more detail and unskipped once fixed.

2018-02-05  John Wilander  <wilander@apple.com>

        Storage Access API: Add testRunner.getAllStorageAccessEntries() to make testing easier and more explicit
        https://bugs.webkit.org/show_bug.cgi?id=181601
        <rdar://problem/36475837>

        Reviewed by Alex Christensen.

        http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
        was found to be flaky. With the testRunner.hasStorageAccessEntry() getter
        it's possible to check access even if a frame doesn't respond timely to
        postMessage after detach and attach.

        * http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-expected.txt:
        * http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
        * platform/mac-wk2/TestExpectations:
            http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html
            no longer marked as flaky. Note that the wrong test was marked flaky. It should have been
            http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html.

2018-02-05  Matt Lewis  <jlewis3@apple.com>

        Skipped imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html
        https://bugs.webkit.org/show_bug.cgi?id=182422

        Unreviewed test gardening.

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

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

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181166
        <rdar://problem/37169508>

        Reviewed by Youenn Fablet.

        Unskip test that is no longer flaky.

        * platform/mac-wk2/TestExpectations:

2018-02-05  Daniel Bates  <dabates@apple.com>

        Disallow evaluating JavaScript from NPP_Destroy() in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=181889
        <rdar://problem/36674701>

        Reviewed by Brent Fulgham.

        Consolidate all the plugin tests that evaluate JavaScript from NPP_Destroy()
        and mark them as Wont Fix. In a subsequent change we will look to replace
        these tests with tests that ensure that we do not evaluate JavaScript from
        NPP_Destroy().

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

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

        [Modern Media Controls] Turn media/modern-media-controls tests back on by default
        https://bugs.webkit.org/show_bug.cgi?id=182482

        Reviewed by Eric Carlson.

        After updating a significant amount of tests under media/modern-media-controls over the last week, we can stop skipping
        tests in this directory by default, and instead skip tests that do not apply on a per-platform basis. This patch does that
        along with fixing a few remaining tests and adding some more for the new behavior of display 3, 4, 5 or 6 digits for time
        labels depending on the overall video duration.

        * TestExpectations:
        * http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast-expected.txt:
        * http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html:
        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt:
        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * http/tests/media/modern-media-controls/status-support/status-support-loading-expected.txt:
        * http/tests/media/modern-media-controls/status-support/status-support-loading.html:
        * http/tests/media/modern-media-controls/time-control/1-to-10-hours-expected.txt: Added.
        * http/tests/media/modern-media-controls/time-control/1-to-10-hours.html: Added.
        * http/tests/media/modern-media-controls/time-control/10-hours-or-more-expected.txt: Added.
        * http/tests/media/modern-media-controls/time-control/10-hours-or-more.html: Added.
        * http/tests/media/modern-media-controls/time-control/10-minutes-to-1-hour-expected.txt: Added.
        * http/tests/media/modern-media-controls/time-control/10-minutes-to-1-hour.html: Added.
        * http/tests/media/modern-media-controls/time-control/less-than-10-minutes-expected.txt: Renamed from LayoutTests/http/tests/media/modern-media-controls/time-labels-support/long-time-expected.txt.
        * http/tests/media/modern-media-controls/time-control/less-than-10-minutes.html: Renamed from LayoutTests/http/tests/media/modern-media-controls/time-labels-support/long-time.html.
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html: Make this test more reliable by going a little further
        left of the slider's left-most point to ensure we always get a 0-value.
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2018-02-05  Antti Koivisto  <antti@apple.com>

        Crash on sfgate.com because mismatching link preload types
        https://bugs.webkit.org/show_bug.cgi?id=182483
        <rdar://problem/37065331>

        Reviewed by Daniel Bates.

        * http/tests/preload/link-preload-type-mismatch-expected.txt: Added.
        * http/tests/preload/link-preload-type-mismatch.html: Added.

2018-02-05  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-grid] Rename gutter properties to remove "grid-" prefix
        https://bugs.webkit.org/show_bug.cgi?id=180290

        Reviewed by Javier Fernandez.

        * TestExpectations: We're now passing some gutters tests,
        so removing them from TestExpectations.
        * fast/css-grid-layout/grid-gutters-get-set.html: Removed. This is now covered by WPT tests.
        * fast/css-grid-layout/grid-shorthand-get-set-expected.txt: Update results for gutter properties
        as default value is now "normal".
        * fast/css-grid-layout/grid-shorthand-get-set.html: Update checks for gutter properties
        as default value is now "normal".

2018-02-05  Ms2ger  <Ms2ger@igalia.com>

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

        Reviewed by Žan Doberšek.

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

2018-02-02  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, skip fast/visual-viewport/resize-event-fired.html on iOS.

        * platform/ios/TestExpectations:

2018-02-02  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html for iOS.

        Unreviewed test gardening.

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

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

        [Modern Media Controls] Turn media/modern-media-controls/volume-* back on
        https://bugs.webkit.org/show_bug.cgi?id=182438

        Reviewed by Dean Jackson.

        Update tests to match the modern-media-controls design and expectations.
        One test was reworked as a Slider test since VolumeSlider no longer exists.

        * media/modern-media-controls/slider/slider-value-expected.txt: Renamed from LayoutTests/media/modern-media-controls/volume-slider/volume-slider-value-expected.txt.
        * media/modern-media-controls/slider/slider-value.html: Renamed from LayoutTests/media/modern-media-controls/volume-slider/volume-slider-value.html.
        * media/modern-media-controls/volume-down-support/volume-down-support-expected.txt:
        * media/modern-media-controls/volume-down-support/volume-down-support.html:
        * media/modern-media-controls/volume-slider/volume-slider-expected.txt: Removed.
        * media/modern-media-controls/volume-slider/volume-slider-value-expected.txt: Removed.
        * media/modern-media-controls/volume-slider/volume-slider.html: Removed.
        * media/modern-media-controls/volume-support/volume-support-click-expected.txt:
        * media/modern-media-controls/volume-support/volume-support-click.html:
        * media/modern-media-controls/volume-support/volume-support-drag-expected.txt:
        * media/modern-media-controls/volume-support/volume-support-drag.html:
        * media/modern-media-controls/volume-up-support/volume-up-support-expected.txt:
        * media/modern-media-controls/volume-up-support/volume-up-support.html:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

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

        [Modern Media Controls] Turn media/modern-media-controls/tracks-panel and media/modern-media-controls/tracks-support back on
        https://bugs.webkit.org/show_bug.cgi?id=182426

        Reviewed by Dean Jackson.

        Update tests to match the modern-media-controls design and expectations. One test fails currently due to an issue with the
        auto-hide behavior, it is tracked in webkit.org/b/182425.

        * media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it-expected.txt:
        * media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html:
        * media/modern-media-controls/tracks-panel/tracks-panel-position-and-size-expected.txt:
        * media/modern-media-controls/tracks-panel/tracks-panel-position-and-size.html:
        * media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt:
        * media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html:
        * media/modern-media-controls/tracks-support/tracks-support-audio-tracks-expected.txt:
        * media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html:
        * media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar-expected.txt:
        * media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar.html:
        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
        * media/modern-media-controls/tracks-support/tracks-support-text-tracks-expected.txt:
        * media/modern-media-controls/tracks-support/tracks-support-text-tracks.html:
        * platform/mac/TestExpectations:

2018-02-02  Ms2ger  <Ms2ger@igalia.com>

        imagebitmap gardening
        https://bugs.webkit.org/show_bug.cgi?id=182430

        Unreviewed test gardening.

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

2018-02-02  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][Wayland][WPE] fast/canvas/canvas-createPattern-video-modify.html failing
        https://bugs.webkit.org/show_bug.cgi?id=182432

        Unreviewed gardening.
        * platform/gtk-wayland/TestExpectations:
        * platform/wpe/TestExpectations:

2018-02-02  Ms2ger  <Ms2ger@igalia.com>

        Update imagebitmap tests.
        https://bugs.webkit.org/show_bug.cgi?id=182335
        <rdar://problem/37110684>

        Unreviewed test gardening.

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

2018-02-02  Fujii Hironori  <Hironori.Fujii@sony.com>

        [GTK] fast/events/message-channel-gc-4.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182104

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations:
        Unmarked fast/events/message-channel-gc-4.html and fast/workers/worker-cloneport.html.

2018-02-01  Chris Dumez  <cdumez@apple.com>

        When SW install fails, null out registration.installing before setting worker state to "redundant"
        https://bugs.webkit.org/show_bug.cgi?id=182416
        <rdar://problem/37141997>

        Reviewed by Youenn Fablet.

        Add layout test coverage. I have verified that this test is passing in both Firefox and Chrome.

        * http/tests/workers/service/install-fails-expected.txt: Added.
        * http/tests/workers/service/install-fails.html: Added.
        * http/tests/workers/service/resources/install-fails-worker.js: Added.
        (event.event.waitUntil.new.Promise):

2018-02-01  Megan Gardner  <megan_gardner@apple.com>

        Fix race-condition in fast/forms/ios/ipad/select-form-run-twice.html
        https://bugs.webkit.org/show_bug.cgi?id=182370

        Reviewed by Tim Horton.
        
        There is the potential for multiple button clicks, due to looping function calls that can cause timed functions to 
        still be running in the next test, causing crashes. Guarding against repeated clicks, and cancelling the timers should 
        clean up this problem.

        * fast/forms/ios/ipad/select-form-run-twice.html:
        * fast/forms/ios/ipad/unfocus-inside-fixed-hittest.html:

2018-02-01  Matt Lewis  <jlewis3@apple.com>

        Skipped http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html on macOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=182366

        Unreviewed test gardening.

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

2018-02-01  Chris Dumez  <cdumez@apple.com>

        Add missing RETURN_IF_EXCEPTION() after object->get() calls in convertDictionary<>()
        https://bugs.webkit.org/show_bug.cgi?id=182392
        <rdar://problem/37119215>

        Reviewed by Geoffrey Garen.

        Rebaseline existing test now that output is slightly different.

        * fast/events/constructors/message-event-constructor-expected.txt:

2018-02-01  Ryosuke Niwa  <rniwa@webkit.org>

        Some test cases in accessibility/mac/selection-notification-focus-change.html fail
        https://bugs.webkit.org/show_bug.cgi?id=182212
        <rdar://problem/36937147>

        Reviewed by Antti Koivisto and Wenson Hsieh.

        Updated and rebaselined the tests.

        * accessibility/ios-simulator/header-elements.html: Force the layout after each call to element.focus
        now that element.focus no longer updates the layout synchronously. Ordinarily, this will happen next time
        the layout is updated for paint, by JS API, etc... but we have to force the accessibility tree to be
        up-to-date for testing purposes.
        * accessibility/ios-simulator/table-cell-for-row-col.html: Ditto.
        * accessibility/mac/selection-notification-focus-change-expected.txt: Now all the test cases are passing.
        * accessibility/mac/table-with-row-col-of-headers.html: Force the layout after each call to element.focus.
        * accessibility/mac/table-with-zebra-rows.html: Ditto.
        * accessibility/scroll-to-global-point-main-window.html: Ditto.
        * accessibility/scroll-to-make-visible-with-subfocus.html: Ditto.
        * editing/input/caret-at-the-edge-of-input.html: Wait for the focused element to reveal itself by a timer.
        * fast/forms/input-text-scroll-left-on-blur.html: Ditto.
        * fast/forms/textarea-no-scroll-on-blur.html: Ditto.
        * fast/forms/textarea-scrolled-type.html: Ditto.
        * platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt: Rebaselined. We now
        get one less AXTextSelectionChangedFocus notification because selection updates are now coalesced as expected.

2018-02-01  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Turn media/modern-media-controls/ios-inline-media-controls back on
        https://bugs.webkit.org/show_bug.cgi?id=182390

        Reviewed by Eric Carlson.

        Update tests to match the modern-media-controls design and expectations.

        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-button-padding-expected.txt: Removed.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-button-padding.html: Removed.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles-expected.txt: Removed.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles.html: Removed.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor-expected.txt:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor.html:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles-expected.txt:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles.html:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout-expected.txt:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout.html:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-enabled-hidden-controls-bar-expected.txt:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-enabled-hidden-controls-bar.html:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-expected.txt:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label.html:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-tight-padding-expected.txt: Removed.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-tight-padding.html: Removed.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles-expected.txt:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles.html:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls-expected.txt:
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
        * platform/ios/TestExpectations:

2018-02-01  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rebaseline imported/w3c/web-platform-tests/service-workers/service-worker/performance-timeline.https.html

        * TestExpectations:

2018-02-01  Matt Lewis  <jlewis3@apple.com>

        Followup test expectation adjustment from r227947.
        

        Unreviewed test expectations.

        * platform/ios-simulator/TestExpectations:

2018-02-01  Dean Jackson  <dino@apple.com>

        REGRESSION (r219342): Scaled HTML widget is not responding to a clicks outside the body
        https://bugs.webkit.org/show_bug.cgi?id=182394
        <rdar://problem/34840816>

        Reviewed by Simon Fraser.

        Add a test for a scaled down page.

        * fast/dom/elementFromPoint-scaled-scrolled-expected.txt:
        * fast/dom/elementFromPoint-scaled-scrolled.html:

2018-02-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r227958 and r227972.
        https://bugs.webkit.org/show_bug.cgi?id=182393

        This caused a consistent crash on macOS. (Requested by
        mlewis13 on #webkit).

        Reverted changesets:

        "Update imagebitmap tests."
        https://bugs.webkit.org/show_bug.cgi?id=182335
        https://trac.webkit.org/changeset/227958

        "[WPE] Update test expectations for r227958"
        https://bugs.webkit.org/show_bug.cgi?id=182391
        https://trac.webkit.org/changeset/227972

2018-02-01  Ms2ger  <Ms2ger@igalia.com>

        [WPE] Update test expectations for r227958
        https://bugs.webkit.org/show_bug.cgi?id=182391

        Unreviewed test gardening.

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

2018-02-01  Yusuke Suzuki  <utatane.tea@gmail.com>

        Structured cloning a Symbol should throw
        https://bugs.webkit.org/show_bug.cgi?id=182380

        Reviewed by Darin Adler.

        * js/dom/post-message-symbol-expected.txt: Added.
        * js/dom/post-message-symbol.html: Added.

2018-02-01  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Turn media/modern-media-controls/macos-fullscreen-media-controls back on
        https://bugs.webkit.org/show_bug.cgi?id=182385

        Reviewed by Eric Carlson.

        Update tests to match the modern-media-controls design and expectations.

        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:
        * platform/mac/TestExpectations:

2018-02-01  Frederic Wang  <fwang@igalia.com>

        Rewrite fast/events/scroll-in-scaled-page-with-overflow-hidden.html to conform with CSSOM View
        https://bugs.webkit.org/show_bug.cgi?id=182287

        Reviewed by Antonio Gomes.

        Per the CSSOM View specification, it is wrong to use document.body.scrollTop to retrieve the
        vertical offset of the viewport in this test, because the body is potentially scrollable.
        This commit relies on window.scrollY instead so that the test still works after bug 5991.

        * fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt:
        * fast/events/scroll-in-scaled-page-with-overflow-hidden.html:

2018-02-01  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Turn media/modern-media-controls/media-controls back on
        https://bugs.webkit.org/show_bug.cgi?id=182377

        Reviewed by Dean Jackson.

        Update tests to match the modern-media-controls design and expectations, moving 3 tests under
        media/modern-media-controls/macos-inline-media-controls since they are testing functionality
        that is now specific to inline media controls.

        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-bar-always-ltr-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-controls-bar-always-ltr-expected.txt.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-bar-always-ltr.html: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-controls-bar-always-ltr.html.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-placard-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-placard.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-shows-start-button-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-start-button-expected.txt.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-shows-start-button.html: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-start-button.html.
        * media/modern-media-controls/media-controls/media-controls-appear-when-focus-expected.txt:
        * media/modern-media-controls/media-controls/media-controls-appear-when-focus.html:
        * media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
        * media/modern-media-controls/media-controls/media-controls-constructor.html:
        * media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics-expected.txt:
        * media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics.html:
        * media/modern-media-controls/media-controls/media-controls-placard-expected.txt: Removed.
        * media/modern-media-controls/media-controls/media-controls-placard.html: Removed.
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2018-02-01  Ms2ger  <Ms2ger@igalia.com>

        Update imagebitmap tests.
        https://bugs.webkit.org/show_bug.cgi?id=182335

        Unreviewed test gardening.

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

2018-02-01  Antti Koivisto  <antti@apple.com>

        Invalidate style for sibling combinators accurately on class change
        https://bugs.webkit.org/show_bug.cgi?id=182336

        Reviewed by Zalan Bujtas.

        Adapt to progressions.

        * fast/css/direct-adjacent-style-update-optimization-expected.txt:
        * fast/css/direct-adjacent-style-update-optimization.html:
        * fast/css/indirect-adjacent-style-update-optimization-expected.txt:
        * fast/css/indirect-adjacent-style-update-optimization.html:
        * fast/css/nth-last-child-of-style-update-optimization.html:

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

        [Modern Media Controls] Turn media/modern-media-controls/macos-inline-media-controls back on
        https://bugs.webkit.org/show_bug.cgi?id=182338

        Reviewed by Eric Carlson.

        Update tests to match the modern-media-controls designs and expectations. Certain tests didn't make any sense anymore
        and were removed, for instance tests related to the compact mode.

        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-audio-background-expected.txt: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-audio-background.html: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles-expected.txt: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-buttons-styles-expected.txt: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-buttons-styles.html: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-controls-bar-styles-expected.txt: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-controls-bar-styles.html: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-expected.txt: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact.html: Removed.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-resize-with-hidden-controls-bar-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-resize-with-hidden-controls-bar.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-start-button-style-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-start-button-style.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2018-01-31  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/events/beforeunload-dom-manipulation-crash.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=181204
        <rdar://problem/36256274>

        Reviewed by Ryosuke Niwa.

        * fast/events/beforeunload-dom-manipulation-crash.html: Make it clear that the
        frame element is a child of the 'del' element.
        * fast/events/beforeunload-dom-manipulation-crash-expected.html:
        * platform/mac-wk1/TestExpectations: Unskip test.

2018-01-31  Javier Fernandez  <jfernandez@igalia.com>

        inline-block baseline not computed correctly for vertical-lr
        https://bugs.webkit.org/show_bug.cgi?id=170176

        Reviewed by Manuel Rego Casasnovas.

        Tests to evaluate the baseline alignment in vertical modes.
        Additionally, several tests were rebaselined.

        Some of the new tests are marked as Failure for the ios-sim
        platform because of pixel rounding errors in the absolute
        positioned elements used as reference.

        Finally, there are color differences in the border-styles-vertical-lr-expected.png
        caused by changes in the gtk+ platform. Those differences were not noticeable until
        now that the patch causes diffs in the expected.txt files.

        * fast/inline-block/baseline-vertical-01-expected.html: Added.
        * fast/inline-block/baseline-vertical-01.html: Added.
        * fast/inline-block/baseline-vertical-02-expected.html: Added.
        * fast/inline-block/baseline-vertical-02.html: Added.
        * fast/inline-block/baseline-vertical-03-expected.html: Added.
        * fast/inline-block/baseline-vertical-03.html: Added.
        * fast/inline-block/baseline-vertical-04-expected.html: Added.
        * fast/inline-block/baseline-vertical-04.html: Added.
        * fast/inline-block/baseline-vertical-05-expected.html: Added.
        * fast/inline-block/baseline-vertical-05.html: Added.
        * fast/inline-block/baseline-vertical-06-expected.html: Added.
        * fast/inline-block/baseline-vertical-06.html: Added.
        * fast/inline-block/baseline-vertical-07-expected.html: Added.
        * fast/inline-block/baseline-vertical-07.html: Added.
        * fast/inline-block/baseline-vertical-08-expected.html: Added.
        * fast/inline-block/baseline-vertical-08.html: Added.
        * fast/text/emphasis-avoid-ruby-expected.png:
        * fast/text/emphasis-avoid-ruby-expected.txt:
        * fast/text/emphasis-overlap-expected.png:
        * fast/text/emphasis-overlap-expected.txt:
        * platform/gtk/fast/backgrounds/background-leakage-transforms-expected.png:
        * platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt:
        * platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.png:
        * platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt:
        * platform/ios-simulator/TestExpectations:
        * platform/ios/fast/backgrounds/background-leakage-transforms-expected.png: Added.
        * platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt:
        * platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.png:
        * platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt:
        * platform/mac/fast/backgrounds/background-leakage-transforms-expected.png:
        * platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt:
        * platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
        * platform/win/fast/writing-mode/text-orientation-basic-expected.txt:

2018-01-31  Alicia Boya García  <aboya@igalia.com>

        Unreviewed GTK+ test gardening.

        * platform/gtk/TestExpectations:

2018-01-31  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, rolling out r227942.

        r227875 should not have been rolled out.

        Reverted changeset:

        "Unreviewed, rolling out r227875."
        https://bugs.webkit.org/show_bug.cgi?id=182357
        https://trac.webkit.org/changeset/227942

2018-01-31  Michael Catanzaro  <mcatanzaro@igalia.com>

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

        Missing cross-platform TestController implementation

        Reverted changeset:

        "Add callbacks to testRunner.statisticsSetShouldPartitionCookiesForHost() and testRunner.statisticsUpdateCookiePartitioning()"
        https://bugs.webkit.org/show_bug.cgi?id=181958
        https://trac.webkit.org/changeset/227875

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html:
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html:
        * platform/mac-wk2/TestExpectations:

2018-01-31  Said Abou-Hallawa  <sabouhallawa@apple.com>

        BitmapImage::drawPattern() may not draw a complete frame even after all the data is received
        https://bugs.webkit.org/show_bug.cgi?id=182277

        Reviewed by Simon Fraser.

        * http/tests/images/draw-pattern-slow-load-large-image-expected.html: Added.
        * http/tests/images/draw-pattern-slow-load-large-image.html: Added.
        * http/tests/resources/load-and-stall.php: Add a new argument to allow
        repeating the stall till the end of the file. This simulates real slow
        network where sending data and stalling happens constantly and not only
        a single time.

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

        REGRESSION (r227340): Layout Test fast/workers/worker-cloneport.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=182007
        <rdar://problem/37005504>

        Reviewed by Ryosuke Niwa.

        Increase the test's timeout. The test sometimes takes more than 1 second to run and would
        log a FAIL line, even though the test eventually succeeds.

        * fast/workers/worker-cloneport.html:
        * platform/mac-wk2/TestExpectations:

2018-01-31  Michael Catanzaro  <mcatanzaro@igalia.com>

        REGRESSION(r227223): http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html, http/tests/resourceLoadStatistics/grandfathering.html timing out on GTK, WPE
        https://bugs.webkit.org/show_bug.cgi?id=182222

        Reviewed by Alex Christensen.

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

2018-01-31  Ryosuke Niwa  <rniwa@webkit.org>

        Release assertion in Performance::resourceTimingBufferFullTimerFired when the resource timing buffer is shrunk
        https://bugs.webkit.org/show_bug.cgi?id=182319
        <rdar://problem/36904312>

        Reviewed by Chris Dumez.

        Added regression tests for shrinking the resoruce timing buffer and queuing a new resource timing entry while
        resourcetimingbufferfull event is being dispatched.

        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull-queue-resource-entry-expected.txt: Added.
        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull-queue-resource-entry.html: Added.
        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull-shrinking-buffer-crash-expected.txt: Added.
        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull-shrinking-buffer-crash.html: Added.

        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull-shrinking-buffer-crash-expected.txt: Added.
        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull-shrinking-buffer-crash.html: Added.

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

        Adjusted expectations for fast/forms/searchfield-heights.html.
        https://bugs.webkit.org/show_bug.cgi?id=181831

        Unreviewed test gardening.

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

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

        [Modern Media Controls] Turn media/modern-media-controls/start-support tests back on
        https://bugs.webkit.org/show_bug.cgi?id=182297

        Reviewed by Jon Lee and Eric Carlson.

        Update tests to account for the new variable name for the playPauseButton and ensure we only listen to the
        fullscreen event once to avoid flakiness in cases where we might exit fullscreen before the test completes.

        We also update other tests that tested the behavior of ButtonsContainer.

        * media/modern-media-controls/buttons-container/buttons-container-buttons-property-expected.txt:
        * media/modern-media-controls/buttons-container/buttons-container-buttons-property.html:
        * media/modern-media-controls/buttons-container/buttons-container-constructor-expected.txt:
        * media/modern-media-controls/buttons-container/buttons-container-constructor.html:
        * media/modern-media-controls/buttons-container/buttons-container-layout-expected.txt:
        * media/modern-media-controls/buttons-container/buttons-container-layout.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled-expected.txt:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html:
        * media/modern-media-controls/pip-support/pip-support-click.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-lowPowerMode-expected.txt:
        * media/modern-media-controls/start-support/start-support-lowPowerMode.html:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2018-01-31  Saam Barati  <sbarati@apple.com>

        JSC incorrectly interpreting script, sets Global Property instead of Global Lexical variable (LiteralParser / JSONP path)
        https://bugs.webkit.org/show_bug.cgi?id=182074
        <rdar://problem/36846261>

        Reviewed by Mark Lam.

        * http/tests/security/regress-52192-expected.txt:

2018-01-30  John Wilander  <wilander@apple.com>

        Add callbacks to testRunner.statisticsSetShouldPartitionCookiesForHost() and testRunner.statisticsUpdateCookiePartitioning()
        https://bugs.webkit.org/show_bug.cgi?id=181958
        https://bugs.webkit.org/show_bug.cgi?id=182072
        <rdar://problem/36801804>
        <rdar://problem/36845795>

        Reviewed by Brent Fulgham.

        Because of the asynchronous nature of XPC and cookies,
        we need callbacks in these TestRunner functions so that
        the layout tests can wait for state changes to finish
        before checking test conditions.

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html:
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html:
        * platform/mac-wk2/TestExpectations:

2018-01-30  Youenn Fablet  <youenn@apple.com>

        Move http/wpt/service-workers/clone-opaque-being-loaded-response.https.html to use HTTP
        https://bugs.webkit.org/show_bug.cgi?id=182202
        <rdar://problem/36912402>

        Reviewed by Chris Dumez.
        Follow-up to ensure subresource load is also done in HTTP and not HTTPS

        * http/wpt/service-workers/clone-opaque-being-loaded-response-worker.js:

2018-01-30  Matt Lewis  <jlewis3@apple.com>

        Marked fast/workers/worker-cloneport.html as flaky on macOS Release.
        https://bugs.webkit.org/show_bug.cgi?id=182007

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-30  Chris Nardi  <cnardi@chromium.org>

        Use double-quotes when serializing font-feature-settings
        https://bugs.webkit.org/show_bug.cgi?id=182201

        Update tests with double-quotes instead of single-quotes.

        Reviewed by Myles C. Maxfield.

        * css3/font-feature-settings-parsing-expected.txt:
        * css3/font-feature-settings-parsing.html:
        * fast/css/inherited-properties-rare-text-expected.txt:
        * fast/text/font-face-javascript-expected.txt:
        * fast/text/font-face-javascript.html:

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

        Release assert in updateLayout() via AXObjectCache::childrenChanged
        https://bugs.webkit.org/show_bug.cgi?id=182279
        <rdar://problem/36994456>

        Reviewed by Antti Koivisto.

        Added a regression test.

        * accessibility/accessibility-object-update-during-style-resolution-crash-expected.txt: Added.
        * accessibility/accessibility-object-update-during-style-resolution-crash.html: Added.

2018-01-30  Matt Lewis  <jlewis3@apple.com>

        Skipping imported/w3c/web-platform-tests/service-workers/service-worker/navigation-redirect.https.html.
        https://bugs.webkit.org/show_bug.cgi?id=182311

        Unreviewed test expectations.

        * TestExpectations:

2018-01-30  Megan Gardner  <megan_gardner@apple.com>

        Make preserve and restore focus more likely to be symmetrical
        https://bugs.webkit.org/show_bug.cgi?id=182264

        Reviewed by Tim Horton.

        Added new test to verify that opening a selection form twice works.

        * fast/forms/ios/ipad/select-form-run-twice-expected.txt: Added.
        * fast/forms/ios/ipad/select-form-run-twice.html: Added.

2018-01-30  Dean Jackson  <dino@apple.com>

        CrashTracer: com.apple.WebKit.WebContent at WebCore: WebCore::Document::updateStyleIfNeeded
        https://bugs.webkit.org/show_bug.cgi?id=182299
        <rdar://problem/36853088>

        Reviewed by Simon Fraser.

        * svg/animated-svgImage-scroll-expected.txt: Added.
        * svg/animated-svgImage-scroll.html: Added.

2018-01-30  Frederic Wang  <fwang@igalia.com>

        Unreviewed test gardening.

        * TestExpectations: Add Bugzilla references for scrollingElement-quirks-dynamic tests.

2018-01-30  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed WPE test gardening

        This test now has a global flakiness expectation

        * platform/wpe/TestExpectations:

2018-01-30  Frederic Wang  <fwang@igalia.com>

        Use document.scrollingElement to access viewport scroll properties in tests
        https://bugs.webkit.org/show_bug.cgi?id=182241

        Reviewed by Antonio Gomes.

        Many tests use document.body in standard mode in order to access scroll properties of the
        viewport. This is incorrect per the CSSOM View specification but WebKit does not follow the
        spec at the moment (see bug 5991). This replaces several of these instances with
        document.scrollingElement, so that tests will still work when WebKit's behavior is changed.

        * fast/multicol/scrolling-overflow.html:
        * fast/scrolling/latching/iframe_in_iframe.html:
        * fast/scrolling/latching/scroll-div-no-latching.html:
        * fast/scrolling/latching/scroll-latched-nested-div.html:
        * fast/scrolling/latching/scroll-nested-iframe.html:
        * http/tests/navigation/anchor-frames-expected.txt:
        * http/tests/navigation/anchor-frames-gbk-expected.txt:
        * http/tests/navigation/anchor-frames-same-origin-expected.txt:
        * http/tests/navigation/resources/frame-with-anchor-gbk.html:
        * http/tests/navigation/resources/frame-with-anchor-same-origin.html:
        * http/tests/navigation/resources/frame-with-anchor.html:
        * tiled-drawing/resources/scroll-and-load-page.html:
        * tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html:
        * tiled-drawing/scrolling/frames/resources/autoscrolling-frame-with-fixed.html:
        * tiled-drawing/scrolling/iframe_in_iframe.html:
        * tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt:

2018-01-29  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] Implement trimStart and trimEnd
        https://bugs.webkit.org/show_bug.cgi?id=182233

        Reviewed by Mark Lam.

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

2018-01-29  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] Relax line terminators in String to make JSON subset of JS
        https://bugs.webkit.org/show_bug.cgi?id=182232

        Reviewed by Keith Miller.

        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.3-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.3.html:
        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.4-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.3_Line_Terminators/S7.3_A2.4.html:

2018-01-29  Youenn Fablet  <youenn@apple.com>

        ServiceWorkerClientFetch should not consider responses without Location headers as redirection responses
        https://bugs.webkit.org/show_bug.cgi?id=182134

        Reviewed by Chris Dumez.

        * TestExpectations:

2018-01-29  Youenn Fablet  <youenn@apple.com>

        Cache API should make sure to resolve caches.open promises in the same order as called
        https://bugs.webkit.org/show_bug.cgi?id=182193
        <rdar://problem/36930363>

        Reviewed by Chris Dumez.

        * http/wpt/cache-storage/cache-open.https-expected.txt: Added.
        * http/wpt/cache-storage/cache-open.https.html: Added.

2018-01-29  Matt Lewis  <jlewis3@apple.com>

        Marked imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=182177

        Unreviewed test expectations.

        * TestExpectations:

2018-01-29  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Add a compile-time feature flag
        https://bugs.webkit.org/show_bug.cgi?id=182211
        <rdar://problem/36936365>

        Reviewed by Brent Fulgham.

        Skip WebAuthN related tests on certain platforms as they won't
        support it immediately.

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

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

        Mark webrtc/captureCanvas-webrtc.html as flaky on macOS.
        https://bugs.webkit.org/show_bug.cgi?id=181835

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-29  John Wilander  <wilander@apple.com>

        Switch grandfathering layout test to trigger on data record scanning instead of data record modification
        https://bugs.webkit.org/show_bug.cgi?id=181482
        <rdar://problem/36549026>

        Unreviewed test gardening.

        * http/tests/resourceLoadStatistics/grandfathering.html:
            Switched from
            testRunner.installStatisticsDidModifyDataRecordsCallback()
            to
            testRunner.installStatisticsDidScanDataRecordsCallback().
        * platform/mac-wk2/TestExpectations:
            Marked as [ Pass ] again.

2018-01-29  Andy Estes  <aestes@apple.com>

        [iOS] Restrict synthetic clicks to the origin that handled the underlying touch event
        https://bugs.webkit.org/show_bug.cgi?id=182252
        <rdar://problem/21555881>

        Reviewed by Tim Horton.

        * TestExpectations:
        * http/tests/events/touch/ios/cross-frame-single-tap-same-origin.https-expected.txt: Added.
        * http/tests/events/touch/ios/cross-frame-single-tap-same-origin.https.html: Added.
        * http/tests/events/touch/ios/resources/click-target.html: Added.

2018-01-29  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r227731.

        This caused and assertion failure in API tests.

        Reverted changeset:

        "Layout Test fast/events/beforeunload-dom-manipulation-
        crash.html is crashing"
        https://bugs.webkit.org/show_bug.cgi?id=181204
        https://trac.webkit.org/changeset/227731

2018-01-29  Youenn Fablet  <youenn@apple.com>

        Move http/wpt/service-workers/clone-opaque-being-loaded-response.https.html to use HTTP
        https://bugs.webkit.org/show_bug.cgi?id=182202

        Reviewed by Chris Dumez.

        Some bots dislike cross origin HTTPS fetches.

        * http/wpt/service-workers/clone-opaque-being-loaded-response-expected.txt: Renamed from LayoutTests/http/wpt/service-workers/clone-opaque-being-loaded-response.https-expected.txt.
        * http/wpt/service-workers/clone-opaque-being-loaded-response.html: Renamed from LayoutTests/http/wpt/service-workers/clone-opaque-being-loaded-response.https.html.

2018-01-29  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed WPE test gardening

        * platform/wpe/TestExpectations:

2018-01-29  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/events/beforeunload-dom-manipulation-crash.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=181204
        <rdar://problem/36256274>

        Reviewed by Ryosuke Niwa.

        * fast/events/beforeunload-dom-manipulation-crash.html: Make it clear that the
        frame element is a child of the 'del' element.
        * fast/events/beforeunload-dom-manipulation-crash-expected.html:
        * platform/mac-wk1/TestExpectations: Unskip test.

2018-01-29  Per Arne Vollan  <pvollan@apple.com>

        Mark js/dom/array-with-double-assign.html as a failure on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=182239

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-28  Minsheng Liu  <lambda@liu.ms>

        Overflow of formulas is hidden for display mathematics
        https://bugs.webkit.org/show_bug.cgi?id=160547

        Reviewed by Frédéric Wang.

        Add a test to ensure <math> with display="block" will not truncate overflowed contents.

        * mathml/presentation/display-math-horizontal-overflow-expected.txt: Added.
        * mathml/presentation/display-math-horizontal-overflow.html: Added.

2018-01-28  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening.

        * platform/wpe/TestExpectations: Add test failure expectations. Shuffle
        around a few expectations and eliminate duplicate ones, removing overlap
        warnings printed out when invoking run-webkit-tests.

2018-01-28  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK+ gardening.

        * platform/gtk/TestExpectations: Add failure expectations for three tests.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt:
        Added a test baseline due to console messages being output in a slightly different order.

2018-01-26  Ryosuke Niwa  <rniwa@webkit.org>

        Make accessibility/mac/selection-notification-focus-change.html more reliable and re-enable it
        https://bugs.webkit.org/show_bug.cgi?id=182198
        <rdar://problem/36930258>

        Reviewed by Tim Horton.

        Refactored the test by splitting each test case into its own function split by setTimeout by zero seconds
        instead of triggering the next test case when receiving a specific notification to make the test more robust.

        Also moved functions which trigger the focus move into evalAndLog so that they appear in the expected result,
        and added more logging to make the debugging of the test easier.

        Finally, added WebKit2 specific expected result because it has one extra test failure compared to WebKit1.

        * accessibility/mac/selection-notification-focus-change-expected.txt:
        * accessibility/mac/selection-notification-focus-change.html:
        * platform/mac-wk2/accessibility/mac: Added.
        * platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt: Added.
        * platform/mac/TestExpectations: Removed the flaky test failure expectation since this test should now have
        the same expected result everywhere on macOS.

2018-01-26  Chris Dumez  <cdumez@apple.com>

        Layout Test http/wpt/beacon/beacon-async-error-logging.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182184
        <rdar://problem/36929478>

        Reviewed by Youenn Fablet.

        Stop relying on a setTimeout(500) to end the test. Instead rely on the
        internals.setConsoleMessageListener() API to wait for the console message
        we are expecting.

        * http/wpt/beacon/beacon-async-error-logging.html:

2018-01-26  Ricky Mondello  <rmondello@apple.com>

        Use the standard -webkit-autofill color on iOS
        https://bugs.webkit.org/show_bug.cgi?id=182182

        Reviewed by Tim Horton.

        Update test expectations.

        * platform/ios/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt:
        * platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:

2018-01-26  Megan Gardner  <megan_gardner@apple.com>

        Don't retain focus for input peripheral views
        https://bugs.webkit.org/show_bug.cgi?id=182204

        Reviewed by Tim Horton.

        Fixed a spelling error while fixing a bug this test caught.

        * fast/forms/ios/ipad/unfocus-inside-fixed-hittest.html:
        * fast/forms/ios/ipad/unfocus-inside-fixed-hittest-expected.txt:

2018-01-26  Youenn Fablet  <youenn@apple.com>

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182176
        <rdar://problem/36915685>

        Unreviewed.

        * TestExpectations: Skiping test for now.

2018-01-26  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/blink/fast/text/international-iteration-simple-text.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=179853

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-01-26  Per Arne Vollan  <pvollan@apple.com>

        [Win] Update test expectations.

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-25  Ryosuke Niwa  <rniwa@webkit.org>

        Make scrolling to the focused element async
        https://bugs.webkit.org/show_bug.cgi?id=181575
        <rdar://problem/36459767>

        Reviewed by Simon Fraser.

        Updated the tests per the behavioral change and added two more tests for scrolling to the focused element.

        * accessibility/mac/webkit-scrollarea-position.html: Wait for the focus scrolling to take effect.
        * fast/events/reveal-link-when-focused.html: Ditto.
        * fast/images/imagemap-scroll.html: Ditto.
        * fast/overflow/scroll-nested-positioned-layer-in-overflow.html: Ditto.
        * fast/overflow/scrollRevealButton.html: Ditto.
        * fast/transforms/scrollIntoView-transformed.html: Ditto. We need to focus each element in a seperate task
        since only the last focused element will be revealed otherwise.
        * fast/scrolling/scroll-to-focused-element-asynchronously-expected.txt: Added.
        * fast/scrolling/scroll-to-focused-element-asynchronously.html: Added.
        * fast/scrolling/scroll-to-focused-element-canceled-by-fragment-navigation-expected.txt: Added.
        * fast/scrolling/scroll-to-focused-element-canceled-by-fragment-navigation.html: Added.

2018-01-25  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION(r217236): [iOS] PDFDocumentImage does not update its cached ImageBuffer if it has a sub-rectangle of the image
        https://bugs.webkit.org/show_bug.cgi?id=182083

        Reviewed by Simon Fraser.

        PDFDocumentImage renders only on CG platforms. Enable the new test for
        iOS only.

        * TestExpectations:
        * fast/images/pdf-as-image-dest-rect-change-expected.txt: Added.
        * fast/images/pdf-as-image-dest-rect-change.html: Added.
        * platform/ios/TestExpectations:

2018-01-25  Yusuke Suzuki  <utatane.tea@gmail.com>

        imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=181980

        Reviewed by Ryosuke Niwa.

        * TestExpectations:

2018-01-25  Jer Noble  <jer.noble@apple.com>

        Move ImageDecoderAVFObjC from using AVSampleBufferGenerator to AVAssetReaderOutput for parsing
        https://bugs.webkit.org/show_bug.cgi?id=182091

        Reviewed by Eric Carlson.

        * platform/ios/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt: Added.

2018-01-25  Antoine Quint  <graouts@apple.com>

        [Web Animations] Account for provided easings when computing progress and resolving keyframe effect values
        https://bugs.webkit.org/show_bug.cgi?id=182098
        <rdar://problem/36866149>

        Reviewed by Dean Jackson.

        Update an animated value due to more accurate resolution of cubic-bezier() timing functions.

        * platform/mac/transitions/default-timing-function-expected.txt:

2018-01-25  Per Arne Vollan  <pvollan@apple.com>

        [Win] Update test expectations.

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-25  Matt Lewis  <jlewis3@apple.com>

        Adjusted expectation for memory/memory-pressure-simulation.html.
        https://bugs.webkit.org/show_bug.cgi?id=170629

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-25  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r227599.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/overflow/line-clamp-expected.png:
        * platform/gtk/fast/overflow/line-clamp-expected.txt:

2018-01-25  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-multicol] Some test imported in r227600 are failing

        Unreviewed gardening.

        * TestExpectations:

2018-01-25  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-multicol] Update WPT test suite
        https://bugs.webkit.org/show_bug.cgi?id=182087

        Reviewed by Javier Fernandez.

        * TestExpectations:
        * platform/gtk/TestExpectations:

2018-01-25  Antoine Quint  <graouts@apple.com>

        [Web Animations] Update WPT tests and move them to imported/w3c/web-platform-tests
        https://bugs.webkit.org/show_bug.cgi?id=182092

        Unreviewed test gardening.

        * TestExpectations:
        * http/wpt/web-animations/OWNERS: Removed.
        * http/wpt/web-animations/README.md: Removed.
        * http/wpt/web-animations/interfaces/Animatable/animate-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/Animatable/getAnimations.html: Removed.
        * http/wpt/web-animations/interfaces/Animation/constructor.html: Removed.
        * http/wpt/web-animations/interfaces/Animation/finish-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/Animation/finished-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/Animation/playState-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/Animation/playState.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/delay.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/direction-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/direction.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/duration-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/duration.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/fill-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/fill.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations.html: Removed.
        * http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline.html: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/constructor-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/constructor.html: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/copy-constructor-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/copy-constructor.html: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/getComputedTiming-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/getComputedTiming.html: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes.html: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-constructor-expected.txt: Removed.
        * http/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-constructor.html: Removed.
        * http/wpt/web-animations/resources/keyframe-utils.js: Removed.
        * http/wpt/web-animations/timing-model/animation-effects/active-time.html: Removed.
        * http/wpt/web-animations/timing-model/animation-effects/phases-and-states.html: Removed.

2018-01-24  Frederic Wang  <fwang@igalia.com>

        ScrollingStateNode::reconcileLayerPositionForViewportRect is only called on direct children of the root
        https://bugs.webkit.org/show_bug.cgi?id=179946

        Reviewed by Simon Fraser.

        Add a test that verifies the correct update of the graphic layer of a "position: fixed" and
        "position: sticky" nodes inside a non-flat scrolling tree. The test checks recursive call
        on overflow, "position: sticky" and "position: fixed" nodes.

        * fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt: Added.
        * fast/scrolling/ios/reconcile-layer-position-recursive.html: Added.

2018-01-24  Manuel Rego Casasnovas  <rego@igalia.com>

        Move css-color & css-multicol WPT suites to the proper folder
        https://bugs.webkit.org/show_bug.cgi?id=182044

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/win/TestExpectations:

2018-01-24  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement PublicKeyCredential’s [[DiscoverFromExternalSource]] with a dummy authenticator
        https://bugs.webkit.org/show_bug.cgi?id=182032
        <rdar://problem/36459922>

        Reviewed by Brent Fulgham.

        * http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Added.
        * http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https.html: Added.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https-expected.txt:
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt:
        * http/tests/webauthn/resources/last-layer-frame.https.html:
        * http/wpt/credential-management/credentialscontainer-store-basics.https-expected.txt: Added.
        * http/wpt/credential-management/credentialscontainer-store-basics.https.html: Added.
        * http/wpt/webauthn/idl.https-expected.txt:
        * http/wpt/webauthn/idl.https.html:
        * http/wpt/webauthn/public-key-credential-create-success.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-success.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-success.https.html: Added.

2018-01-24  Youenn Fablet  <youenn@apple.com>

        Opaque being-loaded responses should clone their body
        https://bugs.webkit.org/show_bug.cgi?id=182056

        Reviewed by Brady Eidson.

        * http/wpt/service-workers/clone-opaque-being-loaded-response-worker.js: Added.
        * http/wpt/service-workers/clone-opaque-being-loaded-response.html: Added.
        * http/wpt/service-workers/clone-opaque-being-loaded-response.https-expected.txt: Added.
        * http/wpt/service-workers/resources/clone-opaque-being-loaded-response-iframe.html: Added.
        * http/wpt/service-workers/resources/lengthy-pass.py: Added.
        (main):

2018-01-24  David Hyatt  <hyatt@apple.com>

        Implement line clamp for mail.
        https://bugs.webkit.org/show_bug.cgi?id=180818

        Reviewed by Dean Jackson.

        Added parsing tests, basic and advanced clamping examples, and vertical
        writing tests. Revised an iOS clamp test to account for a slight change
        in rendering caused by altering clamping to be consistent with the pagination
        model of breaking beteween lines.

        * fast/block/lines-clamp-advanced-expected.html: Added.
        * fast/block/lines-clamp-advanced-rl-expected.html: Added.
        * fast/block/lines-clamp-advanced-rl.html: Added.
        * fast/block/lines-clamp-advanced.html: Added.
        * fast/block/lines-clamp-basic-expected.html: Added.
        * fast/block/lines-clamp-basic-rl-expected.html: Added.
        * fast/block/lines-clamp-basic-rl.html: Added.
        * fast/block/lines-clamp-basic.html: Added.
        * fast/css/lines-clamp-parsing-expected.txt: Added.
        * fast/css/lines-clamp-parsing.html: Added.
        * platform/ios-simulator-wk2/fast/overflow: Added.
        * platform/ios-simulator-wk2/fast/overflow/line-clamp-expected.txt: Added.

2018-01-24  Matt Lewis  <jlewis3@apple.com>

        Marked http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html as flaky on High Sierra Release.
        https://bugs.webkit.org/show_bug.cgi?id=181601

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-24  Jonathan Bedard  <jbedard@apple.com>

        Fix race-condition in fast/text/click-ellipsis-assertion-failure.html
        https://bugs.webkit.org/show_bug.cgi?id=182055
        <rdar://problem/36830203>

        Reviewed by Simon Fraser.

        * fast/text/click-ellipsis-assertion-failure.html: Wait for promise before ending test.

2018-01-24  Antti Koivisto  <antti@apple.com>

        Assertion failure in RenderMultiColumnSet::requiresBalancing() on fast/multicol/spanner-crash-when-adding-summary.html
        https://bugs.webkit.org/show_bug.cgi?id=179308
        <rdar://problem/34592771>

        Reviewed by Zalan Bujtas.

        Unskip fast/multicol/spanner-crash-when-adding-summary.html

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

2018-01-24  Daniel Bates  <dabates@apple.com>

        [CSP] Check policy for targeted windows when navigating to a JavaScript URL
        https://bugs.webkit.org/show_bug.cgi?id=182018
        <rdar://problem/36795781>

        Reviewed by Brent Fulgham.

        * http/tests/security/contentSecurityPolicy/resources/window-open-javascript-url-with-target-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/window-open-javascript-url-with-target-blocked.js: Added.
        (done):
        * http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked.html: Added.

2018-01-24  Chris Dumez  <cdumez@apple.com>

        Add a IPC::SendSyncOption indicating we should not process incoming IPC while waiting for the sync reply
        https://bugs.webkit.org/show_bug.cgi?id=182021
        <rdar://problem/21629943>

        Reviewed by Ryosuke Niwa.

        Add layout test coverage for the new flag.

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

2018-01-24  Matt Lewis  <jlewis3@apple.com>

        Adjusted expectations for http/tests/cache/disk-cache/memory-cache-revalidation-updates-disk-cache.html.
        https://bugs.webkit.org/show_bug.cgi?id=162975

        Unreviewed test gardening.
        * platform/mac-wk2/TestExpectations:

2018-01-24  Chris Dumez  <cdumez@apple.com>

        Layout Test http/tests/workers/service/basic-unregister-then-register-again-reuse.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182030
        <rdar://problem/36802933>

        Reviewed by Youenn Fablet.

        The service worker was only extending its lifetime using waitUntil() for 10 seconds. On the flakiness
        dashboard, I see that the test sometimes takes more than 10 seconds to run on some bots, which can
        cause the test to fail since the service worker is not keeping the registration alive anymore.
        To address the issue, raise the lifetime to 30 seconds.

        * http/tests/workers/service/resources/basic-unregister-then-register-again-reuse-worker.js:
        (event.waitUntil.new.Promise):

2018-01-24  Alex Christensen  <achristensen@webkit.org>

        Remove El Capitan test expectations.

        * platform/mac-elcapitan: Removed.
        * platform/mac-elcapitan-wk2: Removed.
        * platform/mac-elcapitan-wk2/fast: Removed.
        * platform/mac-elcapitan-wk2/fast/dom: Removed.
        * platform/mac-elcapitan-wk2/fast/dom/HTMLLinkElement: Removed.
        * platform/mac-elcapitan-wk2/fast/dom/HTMLLinkElement/preconnect-support-expected.txt: Removed.
        * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: Removed.
        * platform/mac-elcapitan-wk2/http: Removed.
        * platform/mac-elcapitan-wk2/http/tests: Removed.
        * platform/mac-elcapitan-wk2/http/tests/contentextensions: Removed.
        * platform/mac-elcapitan-wk2/http/tests/contentextensions/make-https-expected.txt: Removed.
        * platform/mac-elcapitan-wk2/imported: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/fetch: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/fetch/api: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/fetch/api/basic: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/fetch/api/cors: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/url: Removed.
        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/url/failure-expected.txt: Removed.
        * platform/mac-elcapitan/TestExpectations: Removed.
        * platform/mac-elcapitan/accessibility: Removed.
        * platform/mac-elcapitan/accessibility/form-control-value-settable-expected.txt: Removed.
        * platform/mac-elcapitan/compositing: Removed.
        * platform/mac-elcapitan/compositing/contents-opaque: Removed.
        * platform/mac-elcapitan/compositing/contents-opaque/control-layer-expected.txt: Removed.
        * platform/mac-elcapitan/compositing/repaint: Removed.
        * platform/mac-elcapitan/compositing/repaint/iframes: Removed.
        * platform/mac-elcapitan/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: Removed.
        * platform/mac-elcapitan/compositing/rtl: Removed.
        * platform/mac-elcapitan/compositing/rtl/rtl-overflow-scrolling-expected.txt: Removed.
        * platform/mac-elcapitan/css2.1: Removed.
        * platform/mac-elcapitan/css3: Removed.
        * platform/mac-elcapitan/css3/selectors3: Removed.
        * platform/mac-elcapitan/css3/selectors3/html: Removed.
        * platform/mac-elcapitan/css3/selectors3/html/css3-modsel-19b-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/html/css3-modsel-23-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/html/css3-modsel-24-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/html/css3-modsel-64-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/html/css3-modsel-68-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/html/css3-modsel-69-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xhtml: Removed.
        * platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-19b-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-23-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-24-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-64-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-68-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-69-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xml: Removed.
        * platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-19b-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-23-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-24-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-64-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-68-expected.txt: Removed.
        * platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-69-expected.txt: Removed.
        * platform/mac-elcapitan/editing: Removed.
        * platform/mac-elcapitan/editing/deleting: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-2-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-3-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-4-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-5-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-6-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-7-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-8-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-9-expected.txt: Removed.
        * platform/mac-elcapitan/editing/deleting/delete-emoji-expected.txt: Removed.
        * platform/mac-elcapitan/editing/input: Removed.
        * platform/mac-elcapitan/editing/input/caret-at-the-edge-of-input-expected.txt: Removed.
        * platform/mac-elcapitan/editing/input/reveal-caret-of-multiline-input-expected.txt: Removed.
        * platform/mac-elcapitan/editing/inserting: Removed.
        * platform/mac-elcapitan/editing/inserting/4960120-1-expected.txt: Removed.
        * platform/mac-elcapitan/editing/inserting/before-after-input-element-expected.txt: Removed.
        * platform/mac-elcapitan/editing/mac: Removed.
        * platform/mac-elcapitan/editing/mac/attributed-string: Removed.
        * platform/mac-elcapitan/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Removed.
        * platform/mac-elcapitan/editing/mac/spelling: Removed.
        * platform/mac-elcapitan/editing/mac/spelling/autocorrection-at-beginning-of-word-1-expected.txt: Removed.
        * platform/mac-elcapitan/editing/mac/spelling/autocorrection-at-beginning-of-word-2-expected.txt: Removed.
        * platform/mac-elcapitan/editing/mac/spelling/delete-autocorrected-word-2-expected.txt: Removed.
        * platform/mac-elcapitan/editing/pasteboard: Removed.
        * platform/mac-elcapitan/editing/pasteboard/4641033-expected.txt: Removed.
        * platform/mac-elcapitan/editing/pasteboard/4806874-expected.txt: Removed.
        * platform/mac-elcapitan/editing/pasteboard/4944770-1-expected.txt: Removed.
        * platform/mac-elcapitan/editing/pasteboard/4944770-2-expected.txt: Removed.
        * platform/mac-elcapitan/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
        * platform/mac-elcapitan/editing/pasteboard/input-field-1-expected.txt: Removed.
        * platform/mac-elcapitan/editing/pasteboard/pasting-tabs-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection: Removed.
        * platform/mac-elcapitan/editing/selection/3690703-2-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/3690703-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/3690719-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/4397952-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/4895428-3-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/4975120-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/5240265-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/drag-select-1-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/replaced-boundaries-3-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/select-across-readonly-input-3-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/select-box-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/select-element-paragraph-boundary-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/select-from-textfield-outwards-expected.txt: Removed.
        * platform/mac-elcapitan/editing/selection/selection-button-text-expected.txt: Removed.
        * platform/mac-elcapitan/fast: Removed.
        * platform/mac-elcapitan/fast/attachment: Removed.
        * platform/mac-elcapitan/fast/attachment/attachment-label-highlight-expected.txt: Removed.
        * platform/mac-elcapitan/fast/attachment/attachment-progress-expected.txt: Removed.
        * platform/mac-elcapitan/fast/attachment/attachment-select-on-click-expected.txt: Removed.
        * platform/mac-elcapitan/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.txt: Removed.
        * platform/mac-elcapitan/fast/attachment/attachment-subtitle-expected.txt: Removed.
        * platform/mac-elcapitan/fast/block: Removed.
        * platform/mac-elcapitan/fast/block/float: Removed.
        * platform/mac-elcapitan/fast/block/float/026-expected.png: Removed.
        * platform/mac-elcapitan/fast/block/float/026-expected.txt: Removed.
        * platform/mac-elcapitan/fast/block/float/028-expected.png: Removed.
        * platform/mac-elcapitan/fast/block/float/028-expected.txt: Removed.
        * platform/mac-elcapitan/fast/block/float/float-avoidance-expected.txt: Removed.
        * platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.png: Removed.
        * platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.txt: Removed.
        * platform/mac-elcapitan/fast/block/margin-collapse: Removed.
        * platform/mac-elcapitan/fast/block/margin-collapse/103-expected.txt: Removed.
        * platform/mac-elcapitan/fast/block/positioning: Removed.
        * platform/mac-elcapitan/fast/block/positioning/inline-block-relposition-expected.txt: Removed.
        * platform/mac-elcapitan/fast/canvas: Removed.
        * platform/mac-elcapitan/fast/canvas/canvas-strokePath-gradient-shadow-expected.txt: Removed.
        * platform/mac-elcapitan/fast/canvas/canvas-strokeRect-gradient-shadow-expected.txt: Removed.
        * platform/mac-elcapitan/fast/css: Removed.
        * platform/mac-elcapitan/fast/css/continuationCrash-expected.txt: Removed.
        * platform/mac-elcapitan/fast/css/focus-ring-exists-for-search-field-expected.txt: Removed.
        * platform/mac-elcapitan/fast/css/line-height-expected.txt: Removed.
        * platform/mac-elcapitan/fast/css/margin-top-bottom-dynamic-expected.txt: Removed.
        * platform/mac-elcapitan/fast/css/text-overflow-input-expected.txt: Removed.
        * platform/mac-elcapitan/fast/css/text-transform-select-expected.txt: Removed.
        * platform/mac-elcapitan/fast/dom: Removed.
        * platform/mac-elcapitan/fast/dom/HTMLInputElement: Removed.
        * platform/mac-elcapitan/fast/dom/HTMLInputElement/input-image-alt-text-expected.txt: Removed.
        * platform/mac-elcapitan/fast/dom/HTMLTableColElement: Removed.
        * platform/mac-elcapitan/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt: Removed.
        * platform/mac-elcapitan/fast/dom/HTMLTextAreaElement: Removed.
        * platform/mac-elcapitan/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
        * platform/mac-elcapitan/fast/dynamic: Removed.
        * platform/mac-elcapitan/fast/dynamic/008-expected.txt: Removed.
        * platform/mac-elcapitan/fast/dynamic/positioned-movement-with-positioned-children-expected.txt: Removed.
        * platform/mac-elcapitan/fast/events: Removed.
        * platform/mac-elcapitan/fast/events/context-no-deselect-expected.txt: Removed.
        * platform/mac-elcapitan/fast/events/shadow-event-path-2-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms: Removed.
        * platform/mac-elcapitan/fast/forms/001-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/004-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/alternative-presentation-button: Removed.
        * platform/mac-elcapitan/fast/forms/alternative-presentation-button/replacement-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/auto-fill-button: Removed.
        * platform/mac-elcapitan/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/basic-buttons-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/basic-inputs-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/basic-selects-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/basic-textareas-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/basic-textareas-quirks-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/blankbuttons-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/box-shadow-override-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-align-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-cannot-be-nested-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-default-title-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-generated-content-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-positioned-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-sizes-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-style-color-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-table-styles-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-text-transform-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/button-white-space-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/control-clip-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/control-clip-overflow-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/control-restrict-line-height-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/disabled-select-change-index-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/encoding-test-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/fieldset-align-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/file: Removed.
        * platform/mac-elcapitan/fast/forms/file/file-input-direction-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/file/file-input-disabled-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/file/input-file-re-render-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/floating-textfield-relayout-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/form-element-geometry-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/hidden-listbox-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-align-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-bkcolor-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-default-bkcolor-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-disabled-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-focus-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-height-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-preventDefault-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-readonly-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-selection-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-spinbutton-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-spinbutton-up-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-visibility-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-appearance-width-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-baseline-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-button-sizes-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-disabled-color-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-double-click-selection-gap-bug-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-field-text-truncated-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-first-letter-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-placeholder-visibility-1-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-placeholder-visibility-3-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-readonly-autoscroll-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-readonly-dimmed-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-readonly-empty-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-spaces-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-table-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-click-inside-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-click-outside-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-double-click-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-drag-down-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-option-delete-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-scroll-left-on-blur-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-self-emptying-click-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-text-word-wrap-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-value-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/input-width-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/listbox-bidi-align-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/listbox-scrollbar-incremental-load-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/listbox-width-change-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/menulist-clip-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/menulist-deselect-update-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/menulist-narrow-width-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/menulist-no-overflow-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/menulist-restrict-line-height-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/menulist-style-color-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/menulist-width-change-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/minWidthPercent-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/number: Removed.
        * platform/mac-elcapitan/fast/forms/number/number-appearance-rtl-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/number/number-appearance-spinbutton-layer-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/option-script-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/option-strip-whitespace-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/option-text-clip-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/placeholder-position-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/placeholder-pseudo-style-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/plaintext-mode-2-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search: Removed.
        * platform/mac-elcapitan/fast/forms/search-cancel-button-style-sharing-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search-display-none-cancel-button-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search-input-rtl-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search-rtl-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search-styled-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search-vertical-alignment-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/search/search-size-with-decorations-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/searchfield-heights-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select: Removed.
        * platform/mac-elcapitan/fast/forms/select-background-none-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-baseline-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-block-background-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-change-listbox-size-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-change-listbox-to-popup-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-change-popup-to-listbox-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-dirty-parent-pref-widths-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-disabled-appearance-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-empty-option-height-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-initial-position-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-item-background-clip-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-list-box-with-height-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-listbox-multiple-no-focusring-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-non-native-rendering-direction-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-overflow-scroll-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-overflow-scroll-inherited-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-selected-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-style-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select-writing-direction-natural-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/select/optgroup-rendering-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/stuff-on-my-optgroup-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/tabbing-input-iframe-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textAreaLineHeight-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-align-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-placeholder-visibility-1-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-placeholder-visibility-2-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-scroll-height-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-scrollbar-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-scrolled-type-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textarea-setinnerhtml-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textfield-focus-ring-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textfield-outline-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/textfield-overflow-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/validation-message-appearance-expected.txt: Removed.
        * platform/mac-elcapitan/fast/forms/visual-hebrew-text-field-expected.txt: Removed.
        * platform/mac-elcapitan/fast/frames: Removed.
        * platform/mac-elcapitan/fast/frames/take-focus-from-iframe-expected.txt: Removed.
        * platform/mac-elcapitan/fast/hidpi: Removed.
        * platform/mac-elcapitan/fast/hidpi/resize-corner-hidpi-expected.txt: Removed.
        * platform/mac-elcapitan/fast/html: Removed.
        * platform/mac-elcapitan/fast/html/details-no-summary4-expected.txt: Removed.
        * platform/mac-elcapitan/fast/html/details-open-javascript-expected.txt: Removed.
        * platform/mac-elcapitan/fast/html/details-open2-expected.txt: Removed.
        * platform/mac-elcapitan/fast/html/details-open4-expected.txt: Removed.
        * platform/mac-elcapitan/fast/html/keygen-expected.txt: Removed.
        * platform/mac-elcapitan/fast/inline: Removed.
        * platform/mac-elcapitan/fast/lists: Removed.
        * platform/mac-elcapitan/fast/lists/dynamic-marker-crash-expected.txt: Removed.
        * platform/mac-elcapitan/fast/overflow: Removed.
        * platform/mac-elcapitan/fast/overflow/overflow-x-y-expected.txt: Removed.
        * platform/mac-elcapitan/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt: Removed.
        * platform/mac-elcapitan/fast/overflow/scrollRevealButton-expected.txt: Removed.
        * platform/mac-elcapitan/fast/overflow/unreachable-overflow-rtl-bug-expected.png: Removed.
        * platform/mac-elcapitan/fast/overflow/unreachable-overflow-rtl-bug-expected.txt: Removed.
        * platform/mac-elcapitan/fast/parser: Removed.
        * platform/mac-elcapitan/fast/parser/document-write-option-expected.txt: Removed.
        * platform/mac-elcapitan/fast/parser/entity-comment-in-textarea-expected.txt: Removed.
        * platform/mac-elcapitan/fast/parser/open-comment-in-textarea-expected.txt: Removed.
        * platform/mac-elcapitan/fast/repaint: Removed.
        * platform/mac-elcapitan/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt: Removed.
        * platform/mac-elcapitan/fast/repaint/search-field-cancel-expected.txt: Removed.
        * platform/mac-elcapitan/fast/repaint/subtree-root-skipped-expected.txt: Removed.
        * platform/mac-elcapitan/fast/replaced: Removed.
        * platform/mac-elcapitan/fast/replaced/replaced-breaking-expected.txt: Removed.
        * platform/mac-elcapitan/fast/replaced/replaced-breaking-mixture-expected.txt: Removed.
        * platform/mac-elcapitan/fast/replaced/width100percent-button-expected.txt: Removed.
        * platform/mac-elcapitan/fast/replaced/width100percent-menulist-expected.txt: Removed.
        * platform/mac-elcapitan/fast/replaced/width100percent-textarea-expected.txt: Removed.
        * platform/mac-elcapitan/fast/selectors: Removed.
        * platform/mac-elcapitan/fast/selectors/064-expected.txt: Removed.
        * platform/mac-elcapitan/fast/spatial-navigation: Removed.
        * platform/mac-elcapitan/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt: Removed.
        * platform/mac-elcapitan/fast/table: Removed.
        * platform/mac-elcapitan/fast/table/003-expected.txt: Removed.
        * platform/mac-elcapitan/fast/table/append-cells2-expected.txt: Removed.
        * platform/mac-elcapitan/fast/table/colspanMinWidth-expected.txt: Removed.
        * platform/mac-elcapitan/fast/table/colspanMinWidth-vertical-expected.txt: Removed.
        * platform/mac-elcapitan/fast/table/remove-td-display-none-expected.txt: Removed.
        * platform/mac-elcapitan/fast/table/spanOverlapRepaint-expected.txt: Removed.
        * platform/mac-elcapitan/fast/table/text-field-baseline-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text: Removed.
        * platform/mac-elcapitan/fast/text/backslash-to-yen-sign-euc-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/crash-complex-text-surrogate-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/drawBidiText-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/emoji-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/font-weights-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/font-weights-zh-expected.png: Removed.
        * platform/mac-elcapitan/fast/text/font-weights-zh-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/international: Removed.
        * platform/mac-elcapitan/fast/text/international/hindi-spacing-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/justify-ideograph-complex-expected.png: Removed.
        * platform/mac-elcapitan/fast/text/justify-ideograph-complex-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/line-initial-and-final-swashes-expected.png: Removed.
        * platform/mac-elcapitan/fast/text/line-initial-and-final-swashes-expected.txt: Removed.
        * platform/mac-elcapitan/fast/text/textIteratorNilRenderer-expected.txt: Removed.
        * platform/mac-elcapitan/fast/transforms: Removed.
        * platform/mac-elcapitan/fast/transforms/transformed-focused-text-input-expected.txt: Removed.
        * platform/mac-elcapitan/http: Removed.
        * platform/mac-elcapitan/http/tests: Removed.
        * platform/mac-elcapitan/http/tests/navigation: Removed.
        * platform/mac-elcapitan/http/tests/navigation/javascriptlink-frames-expected.txt: Removed.
        * platform/mac-elcapitan/http/tests/security: Removed.
        * platform/mac-elcapitan/http/tests/security/mixedContent: Removed.
        * platform/mac-elcapitan/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt: Removed.
        * platform/mac-elcapitan/imported: Removed.
        * platform/mac-elcapitan/imported/w3c: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/fetch: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/fetch/api: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/fetch/api/basic: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/fetch/api/cors: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/media-source: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/resource-timing: Removed.
        * platform/mac-elcapitan/imported/w3c/web-platform-tests/resource-timing/test_resource_timing-expected.txt: Removed.
        * platform/mac-elcapitan/media: Removed.
        * platform/mac-elcapitan/media/controls: Removed.
        * platform/mac-elcapitan/media/controls-after-reload-expected.txt: Removed.
        * platform/mac-elcapitan/media/controls-strict-expected.png: Removed.
        * platform/mac-elcapitan/media/controls-styling-expected.txt: Removed.
        * platform/mac-elcapitan/media/controls-without-preload-expected.png: Removed.
        * platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Removed.
        * platform/mac-elcapitan/media/media-document-audio-repaint-expected.txt: Removed.
        * platform/mac-elcapitan/media/media-fullscreen-inline-expected.txt: Removed.
        * platform/mac-elcapitan/media/media-fullscreen-not-in-document-expected.txt: Removed.
        * platform/mac-elcapitan/media/track: Removed.
        * platform/mac-elcapitan/media/track/video-track-alternate-groups-expected.txt: Removed.
        * platform/mac-elcapitan/media/video-controls-rendering-expected.txt: Removed.
        * platform/mac-elcapitan/media/video-display-toggle-expected.png: Removed.
        * platform/mac-elcapitan/media/video-display-toggle-expected.txt: Removed.
        * platform/mac-elcapitan/media/video-no-audio-expected.txt: Removed.
        * platform/mac-elcapitan/media/video-volume-slider-expected.txt: Removed.
        * platform/mac-elcapitan/platform: Removed.
        * platform/mac-elcapitan/platform/mac: Removed.
        * platform/mac-elcapitan/platform/mac/scrollbars: Removed.
        * platform/mac-elcapitan/platform/mac/scrollbars/key-window-not-first-responder-expected.txt: Removed.
        * platform/mac-elcapitan/plugins: Removed.
        * platform/mac-elcapitan/plugins/mouse-click-plugin-clears-selection-expected.txt: Removed.
        * platform/mac-elcapitan/svg: Removed.
        * platform/mac-elcapitan/svg/custom: Removed.
        * platform/mac-elcapitan/svg/custom/inline-svg-in-xhtml-expected.txt: Removed.
        * platform/mac-elcapitan/svg/hixie: Removed.
        * platform/mac-elcapitan/svg/hixie/mixed: Removed.
        * platform/mac-elcapitan/svg/hixie/mixed/003-expected.txt: Removed.
        * platform/mac-elcapitan/tables: Removed.
        * platform/mac-elcapitan/tables/mozilla: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug1188-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug12384-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug138725-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug18359-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug194024-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug24200-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug2479-2-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug2479-3-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug2479-4-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug26178-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug28928-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug29326-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug30559-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug30692-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug33855-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug39209-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug4382-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug4429-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug4527-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug46368-1-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug46368-2-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug51037-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug51727-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug52505-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug52506-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug55545-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug59354-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug68912-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug7342-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug96334-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/bugs/bug99948-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/collapsing_borders: Removed.
        * platform/mac-elcapitan/tables/mozilla/collapsing_borders/bug41262-4-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/core: Removed.
        * platform/mac-elcapitan/tables/mozilla/core/margins-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/dom: Removed.
        * platform/mac-elcapitan/tables/mozilla/dom/tableDom-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla/other: Removed.
        * platform/mac-elcapitan/tables/mozilla/other/move_row-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/bugs: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug1725-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/collapsing_borders: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt: Removed.
        * platform/mac-elcapitan/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt: Removed.
        * platform/mac-elcapitan/transforms: Removed.
        * platform/mac-elcapitan/transforms/2d: Removed.
        * platform/mac-elcapitan/transforms/2d/zoom-menulist-expected.txt: Removed.
        * platform/mac-elcapitan/transforms/3d: Removed.
        * platform/mac-elcapitan/transforms/3d/general: Removed.
        * platform/mac-elcapitan/transforms/3d/general/perspective-non-layer-expected.txt: Removed.

2018-01-24  Chris Dumez  <cdumez@apple.com>

        Unreviewed, unskip some service worker tests that no longer time out

        * TestExpectations:

2018-01-24  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: SVG AAM mapping trumps ARIA role attribute in the case of SVG root
        https://bugs.webkit.org/show_bug.cgi?id=181994

        Reviewed by Chris Fleizach.

        * accessibility/svg-element-with-aria-role.html: Added.
        * platform/gtk/accessibility/svg-element-with-aria-role-expected.txt: Added.
        * platform/mac/accessibility/svg-element-with-aria-role-expected.txt: Added.
        * platform/win/TestExpectations: Skip test.

2018-01-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] Compute the progress and currentIteration properties on getComputedTiming()
        https://bugs.webkit.org/show_bug.cgi?id=182039
        <rdar://problem/36813568>

        Reviewed by Dean Jackson.

        Update expectations with progressions as we expose more of the API.

        * http/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/current-iteration-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/phases-and-states-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress-expected.txt:
        * http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt:
        * http/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt:

2018-01-24  Daniel Bates  <dabates@apple.com>

        REGRESSION (r226138): Selecting a line that ends with zero-width joiner (ZWJ) may cause text transformation
        https://bugs.webkit.org/show_bug.cgi?id=181993
        <rdar://problem/36421080>

        Reviewed by David Hyatt.

        Add a Mac-specific test to ensure that selecting the last visible character on a line
        that ends with a zero-width joiner (ZWJ) does not cause a text transformation of the
        selected character.

        We need to fix <https://bugs.webkit.org/show_bug.cgi?id=181964> for this test to
        pass on Mac.

        * TestExpectations: Skip the test directory on non-Mac platforms.
        * fast/text/mac/select-character-before-zero-width-joiner-expected.html: Added.
        * fast/text/mac/select-character-before-zero-width-joiner.html: Added.
        * platform/mac/TestExpectations: Mark the test directory as PASS on Mac so that we run
        all containing tests. Mark the test as ImageOnlyFailure until we fix <https://bugs.webkit.org/show_bug.cgi?id=181964>.

2018-01-24  Youenn Fablet  <youenn@apple.com>

        Fetch response should copy its url from the request if null
        https://bugs.webkit.org/show_bug.cgi?id=182048

        Reviewed by Chris Dumez.

        * http/tests/workers/service/basic-fetch.https-expected.txt:
        * http/tests/workers/service/resources/basic-fetch.js:
        (async.test):

2018-01-24  Ms2ger  <Ms2ger@igalia.com>

        WPE-focused test gardening.
        https://bugs.webkit.org/show_bug.cgi?id=182051

        Unreviewed test gardening.

        * TestExpectations:
          - Remove expectation for css3/parse-alignment-of-root-elements.html (rebaselined in r227432).
        * css3/flexbox/csswg/flexbox_flex-natural-mixed-basis-auto.html:
          Started failing in r226404; this applies the change from
          https://github.com/w3c/web-platform-tests/commit/b4fa639477ba204f175fd242a335be888ce91371
          to make it pass again.
        * platform/gtk/TestExpectations:
          - Add expectation for http/wpt/fetch/response-opaque-clone.html (failing since the test change in r227339).
        * platform/wpe/TestExpectations:
          - Remove expectation for fast/canvas/fallback-content.html (started passing in r226814-r226837, inclusive).
          - Override generic failure expectation for imported/w3c/web-platform-tests/2dcontext/transformations/canvas_transformations_reset_001.html
            (it has been passing for as long as it has run).
          - Update path for imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-sizing-alignment-001.html after r225561.
          - Remove expectation for fast/events/tabindex-focus-blur-all.html (started passing in r226814-r226837, inclusive).
          - Add expectation for http/wpt/fetch/response-opaque-clone.html (failing since the test change in r227339).
          - Add expectation for http/wpt/webrtc/third-party-frame-ice-candidate-filtering.html (failing since it was added).
          - Add expectation for fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html (failing since it was added).
          - Skip fast/text/user-installed-fonts/ (the feature is not supported).
          - Remove expectation for imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.html (rebaselined in r226965).
          - Remove expectation for imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.html (rebaselined in r226965).
          - Mark perf/show-hide-table-rows.html as flaky (as was intended).

2018-01-24  Chris Fleizach  <cfleizach@apple.com>

        AX: Provide a way for VoiceOver to uniquely identify a web session
        https://bugs.webkit.org/show_bug.cgi?id=181894

        Reviewed by Joanmarie Diggs.

        * accessibility/mac/document-attributes-expected.txt:
        * accessibility/mac/session-id-expected.txt: Added.
        * accessibility/mac/session-id.html: Added.
        * platform/mac/accessibility/parent-delete-expected.txt: Added.

2018-01-24  Ms2ger  <Ms2ger@igalia.com>

        [GTK] Fix some test failures in ATK selection handling.
        https://bugs.webkit.org/show_bug.cgi?id=168369
        <rdar://problem/30534881>

        Reviewed by Joanmarie Diggs.

        Update test expectations for tests that pass again.

        * platform/gtk/TestExpectations:

2018-01-24  Manuel Rego Casasnovas  <rego@igalia.com>

        Update paths of CSS tests from WPT
        https://bugs.webkit.org/show_bug.cgi?id=182043

        Reviewed by Youenn Fablet.

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

2018-01-24  Frederic Wang  <fwang@igalia.com>

        Use basic-gestures.js for fixed-inside-overflow-inside-iframe.html
        https://bugs.webkit.org/show_bug.cgi?id=182041

        Reviewed by Antonio Gomes.

        * fast/scrolling/ios/fixed-inside-overflow-inside-iframe.html: Insert basic-gestures.js,
        remove definition of getSwipeUIScript(), make runTest() async and use functions from
        basic-gestures.js

2018-01-24  Manuel Rego Casasnovas  <rego@igalia.com>

        Remove unneeded -expected.txt files for reftest

        Unreviewed gardening.

        The test fast/multicol/pagination/RightToLeft-max-width.html was converted
        into a reftest in r217943, however expectations for GTK+ and Win port were not removed.

        * platform/gtk/fast/multicol/pagination/RightToLeft-max-width-expected.txt: Removed.
        * platform/win/fast/multicol/pagination/RightToLeft-max-width-expected.txt: Removed.

2018-01-23  Wenson Hsieh  <wenson_hsieh@apple.com>

        Harden against layout passes triggered when iterating through HTMLFormElement::associatedElements
        https://bugs.webkit.org/show_bug.cgi?id=182037
        <rdar://problem/36747812>

        Reviewed by Ryosuke Niwa.

        Add a new layout test covering these hardening changes. See WebCore ChangeLog for more details.

        * fast/forms/form-data-associated-element-iteration-expected.txt: Added.
        * fast/forms/form-data-associated-element-iteration.html: Added.

2018-01-23  Yusuke Suzuki  <utatane.tea@gmail.com>

        Import WPT for modules
        https://bugs.webkit.org/show_bug.cgi?id=181981

        Reviewed by Sam Weinig.

        * TestExpectations:

2018-01-23  Yusuke Suzuki  <utatane.tea@gmail.com>

        Add more module scope related tests with code evaluation by string
        https://bugs.webkit.org/show_bug.cgi?id=181983

        Reviewed by Sam Weinig.

        * js/dom/modules/module-scope-event-handler-expected.txt: Added.
        * js/dom/modules/module-scope-event-handler.html: Added.
        * js/dom/modules/module-scope-set-interval-expected.txt: Added.
        * js/dom/modules/module-scope-set-interval.html: Added.
        * js/dom/modules/module-scope-set-timeout-expected.txt: Added.
        * js/dom/modules/module-scope-set-timeout.html: Added.

2018-01-23  Matt Lewis  <jlewis3@apple.com>

        Marked http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181958

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-23  Matt Lewis  <jlewis3@apple.com>

        Marked fast/visual-viewport/ios/caret-after-focus-in-fixed.html as flaky
        https://bugs.webkit.org/show_bug.cgi?id=181821

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2018-01-23  Matt Lewis  <jlewis3@apple.com>

        Skipped fast/events/message-port.html on macOS
        https://bugs.webkit.org/show_bug.cgi?id=181969

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-23  Matt Lewis  <jlewis3@apple.com>

        Marked media/W3C/audio/events/event_progress.html and media/W3C/video/events/event_order_loadstart_progress.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181966

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-23  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rollout r227216 as it seems to be causing deadlocks
        https://bugs.webkit.org/show_bug.cgi?id=182013

        * fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply-expected.txt: Removed.
        * fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply.html: Removed.

2018-01-23  Matt Lewis  <jlewis3@apple.com>

        Marked http/tests/misc/resource-timing-resolution.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181957 

        Unreviewed test gardening.

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

2018-01-23  Simon Fraser  <simon.fraser@apple.com>

        feMorphology stops applying if either x or y radius is 0 but should not.
        https://bugs.webkit.org/show_bug.cgi?id=181903

        Reviewed by Dean Jackson.

        * svg/filters/feMorphology-zero-radius-one-axis-expected.svg: Added.
        * svg/filters/feMorphology-zero-radius-one-axis.svg: Added.

2018-01-23  Javier Fernandez  <jfernandez@igalia.com>

        [css-align] 'left' and 'right' should parse as invalid in block/cross-axis alignment
        https://bugs.webkit.org/show_bug.cgi?id=181792

        Reviewed by Antti Koivisto.

        Rebaseline tests because of the removal of the 'left' and right' CSS values.

        * css3/parse-align-content.html:
        * css3/parse-align-items.html:
        * css3/parse-align-self-expected.txt:
        * css3/parse-align-self.html:
        * css3/parse-alignment-of-root-elements-expected.txt:

2018-01-23  Simon Fraser  <simon.fraser@apple.com>

        Element with position:fixed stops scrolling at the bottom of the page, but is painted in the right place on Chacos.com.
        https://bugs.webkit.org/show_bug.cgi?id=181741
        rdar://problem/36593581

        Reviewed by Tim Horton.

        * fast/visual-viewport/ios/min-scale-greater-than-one-expected.txt: Added.
        * fast/visual-viewport/ios/min-scale-greater-than-one.html: Added.

2018-01-23  Antoine Quint  <graouts@apple.com>

        [Web Animations] Expose getKeyframes() and parsing of remaining keyframe properties
        https://bugs.webkit.org/show_bug.cgi?id=181978
        <rdar://problem/36772586>

        Reviewed by Dean Jackson.

        Update expectations with progressions and new failure points now we expose more of the API.

        * http/wpt/web-animations/interfaces/Animatable/animate-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt:
        * http/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt:
        * http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:
        * http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002-expected.txt:
        * http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:

2018-01-23  Ryan Haddad  <ryanhaddad@apple.com>

        Mark inspector/unit-tests/throttle.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181832

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-23  Brady Eidson  <beidson@apple.com>

        Allow passing MessagePorts across processes (e.g. ServiceWorkers).
        https://bugs.webkit.org/show_bug.cgi?id=181178

        Reviewed by Andy Estes.

        * http/tests/workers/service/basic-messageport-expected.txt: Added.
        * http/tests/workers/service/basic-messageport.html: Added.
        * http/tests/workers/service/resources/basic-messageport.js: Added.
        * http/tests/workers/service/resources/messageport-echo-worker.js: Added.

2018-01-23  Ryan Haddad  <ryanhaddad@apple.com>

        Unskip http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html on Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=181833

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-23  Andy Estes  <aestes@apple.com>

        Follow-up layout test fix after r227260.

        I missed a few places that were still using version 3 API requests.

        * http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html:

2018-01-23  Youenn Fablet  <youenn@apple.com>

        Mark some service-worker fetch tests as DumpJSConsoleLogInStdErr
        https://bugs.webkit.org/show_bug.cgi?id=181975

        Unreviewed.

        * TestExpectations:

2018-01-22  Simon Fraser  <simon.fraser@apple.com>

        Optimize building the non-fast scrollable region with multiple iframes
        https://bugs.webkit.org/show_bug.cgi?id=181971

        Reviewed by Zalan Bujtas.

        * platform/mac-wk2/TestExpectations: fast/frames/lots-of-objects.html is no longer always a timeout.

2018-01-22  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement PublicKeyCredential's [[Create]] with a dummy authenticator
        https://bugs.webkit.org/show_bug.cgi?id=181928
        <rdar://problem/36459893>

        Reviewed by Brent Fulgham.

        Test cases are divided into two different folders. One follows wpt style. The other contains tests
        that I don't know how to write them in wpt style.

        * http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Added.
        * http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https.html: Added.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https-expected.txt: Added.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https.html: Added.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Added.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Added.
        * http/tests/webauthn/resources/last-layer-frame.https.html: Added.
        * http/tests/webauthn/resources/second-layer-frame.https.html: Added.
        * http/tests/webauthn/resources/util.js: Added.
        It will be good to convert them into wpt style.
        * http/wpt/webauthn/WebAuthN.idl: Added.
        * http/wpt/webauthn/idl.https-expected.txt: Added.
        * http/wpt/webauthn/idl.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-success.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-success.https.html: Added.
        * http/wpt/webauthn/resources/util.js: Added.

2018-01-22  Ryan Haddad  <ryanhaddad@apple.com>

        Skip http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html on Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=181833

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-22  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r226981): ASSERTION FAILED: startY >= 0 && endY <= height && startY < endY in WebCore::FEMorphology::platformApplyGeneric
        https://bugs.webkit.org/show_bug.cgi?id=181836

        Reviewed by Tim Horton.

        * svg/filters/feLighting-parallel-jobs.svg: Added.
        * svg/filters/feMorphology-invalid-radius.svg: Change the test to detect the bug on non-Retina too.
        * svg/filters/feTurbulence-parallel-jobs-wide.svg: Added.

2018-01-22  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles Redesign: data corruption when updating values quickly
        https://bugs.webkit.org/show_bug.cgi?id=179461
        <rdar://problem/35431882>

        Reviewed by Joseph Pecoraro.

        * inspector/css/modify-css-property-expected.txt: Added.
        * inspector/css/modify-css-property.html: Added.

2018-01-22  Matt Lewis  <jlewis3@apple.com>

        Marked fast/forms/searchfield-heights.html as flaky on High Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=181914

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-22  Matt Lewis  <jlewis3@apple.com>

        Skipped http/tests/resourceLoadStatistics/grandfathering.html.
        https://bugs.webkit.org/show_bug.cgi?id=181482

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-22  Ryan Haddad  <ryanhaddad@apple.com>

        Mark inspector/debugger/tail-deleted-frames-from-vm-entry.html as slow on macOS Debug.
        https://bugs.webkit.org/show_bug.cgi?id=181952

        Unreviewed test gardening.

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

2018-01-22  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/html/browsers/offline/manifest_url_check.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=179851

        Unreviewed test gardening.

        * TestExpectations:

2018-01-22  Matt Lewis  <jlewis3@apple.com>

        Marked http/wpt/service-workers/update-service-worker.https.html as flaky on High Sierra release.
        https://bugs.webkit.org/show_bug.cgi?id=181753

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-22  Youenn Fablet  <youenn@apple.com>

        Safari Tech Preview can't use GitHub login at forums.swift.org
        https://bugs.webkit.org/show_bug.cgi?id=181908
        <rdar://problem/36715111>

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/navigation-redirect-worker.js: Added.
        (async):
        * http/wpt/service-workers/navigation-redirect.https-expected.txt: Added.
        * http/wpt/service-workers/navigation-redirect.https.html: Added.

2018-01-22  Antti Koivisto  <antti@apple.com>

        REGRESSION (Safari 11): Buttons inside a fieldset legend cannot be clicked on in Safari 11
        https://bugs.webkit.org/show_bug.cgi?id=179666
        <rdar://problem/35534292>

        Reviewed by Zalan Bujtas.

        * fast/forms/legend-overflow-hidden-hit-test-expected.txt: Added.
        * fast/forms/legend-overflow-hidden-hit-test.html: Added.
        * platform/ios/TestExpectations:

2018-01-22  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Implement support for Graphics ARIA roles
        https://bugs.webkit.org/show_bug.cgi?id=181796

        Reviewed by Chris Fleizach.

        Add new test cases and update expectations accordingly.

        * 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/accessibility/roles-computedRoleString-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:

2018-01-22  Youenn Fablet  <youenn@apple.com>

        Fetch Headers from an Opaque response should be filtered out
        https://bugs.webkit.org/show_bug.cgi?id=181926

        Reviewed by Chris Dumez.

        * http/wpt/fetch/response-opaque-clone-expected.txt:
        * http/wpt/fetch/response-opaque-clone.html:

2018-01-22  Andy Estes  <aestes@apple.com>

        LayoutTest http/tests/paymentrequest/payment-request-abort-method.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=178107
        <rdar://problem/34901064>

        Reviewed by Brady Eidson.

        Modified the test to call show() with user activation.

        * http/tests/paymentrequest/payment-request-abort-method.https.html:
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2018-01-22  Javier Fernandez  <jfernandez@igalia.com>

        [css-align] 'overflow' keyword must precede the self-position and content-position value
        https://bugs.webkit.org/show_bug.cgi?id=181793

        Reviewed by Antti Koivisto.

        Rebaseline expected results of the test cases affected by this change.

        * css3/parse-align-content.html:
        * css3/parse-align-items.html:
        * css3/parse-align-self.html:
        * css3/parse-justify-content.html:
        * css3/overwrite-self-alignment.html:
        * css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html:
        * css3/overwrite-content-alignment.html:
        * fast/css-grid-layout/grid-content-alignment-overflow.html:
        * fast/css-grid-layout/grid-align-justify-overflow.html:
        * fast/css/parse-justify-items.html:
        * fast/css/parse-justify-self.html:
        * fast/repaint/align-items-overflow-change.html:
        * fast/repaint/align-self-overflow-change.html:
        * fast/repaint/justify-items-overflow-change.html:
        * fast/repaint/justify-self-overflow-change.html:

2018-01-19  Per Arne Vollan  <pvollan@apple.com>

        Mark svg/filters/fePointLight-color.svg as failure on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=181869

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-22  Chris Nardi  <csnardi1@gmail.com>

        Parse calc() in CSS media queries
        https://bugs.webkit.org/show_bug.cgi?id=181716

        Imported CSS mediaqueries tests from WPT, deleting our (old) copy of one test. Updated
        expectations.

        Reviewed by Antti Koivisto.

        * 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:
        * fast/media/w3c/README: Removed.
        * fast/media/w3c/test_media_queries-expected.txt: Removed.
        * platform/ios/TestExpectations:
        * 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:

2018-01-19  Ryosuke Niwa  <rniwa@webkit.org>

        Release assertion in canExecuteScript when executing scripts during page cache restore
        https://bugs.webkit.org/show_bug.cgi?id=181902

        Reviewed by Antti Koivisto.

        Added regression tests for the release assertion and navigating while a document is being restored from the page cache.
        WebKit should not hit any assertions in either situations.

        * fast/history/page-cache-execute-script-during-restore-expected.txt: Added.
        * fast/history/page-cache-execute-script-during-restore.html: Added.
        * fast/history/page-cache-navigate-during-restore-expected.txt: Added.
        * fast/history/page-cache-navigate-during-restore.html: Added.
        * fast/history/resources/navigate-back-with-finish-test-stage.html: Added.

2018-01-21  Jer Noble  <jer.noble@apple.com>

        REGRESSION (macOS 10.13.2): imported/w3c/web-platform-tests/media-source/mediasource-* LayoutTests failing
        https://bugs.webkit.org/show_bug.cgi?id=181891

        Reviewed by Eric Carlson.

        * platform/mac/TestExpectations:

2018-01-21  Andy Estes  <aestes@apple.com>

        [ios] LayoutTest imported/w3c/web-platform-tests/payment-request/rejects_if_not_active.https.html is crashing in JSC::JSONParse
        https://bugs.webkit.org/show_bug.cgi?id=177832
        <rdar://problem/34805315>

        Reviewed by Tim Horton.

        Made a copy of imported/w3c/web-platform-tests/payment-request/rejects_if_not_active.https.html
        and modified it to handle Apple Pay and user gesture requirements.

        * http/tests/paymentrequest/rejects_if_not_active.https-expected.txt: Added.
        * http/tests/paymentrequest/rejects_if_not_active.https.html: Added.
        * http/tests/paymentrequest/resources/page1.html: Added.
        * http/tests/paymentrequest/resources/page2.html: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2018-01-20  Jer Noble  <jer.noble@apple.com>

        Release ASSERT when reloading Vimeo page @ WebCore: WebCore::Document::updateLayout
        https://bugs.webkit.org/show_bug.cgi?id=181840
        <rdar://problem/36186214>

        Reviewed by Simon Fraser.

        * media/video-fullscreen-reload-crash-expected.txt: Added.
        * media/video-fullscreen-reload-crash.html: Added.
        * platform/ios/TestExpectations:

2018-01-20  Youenn Fablet  <youenn@apple.com>

        fetch redirect is incompatible with "no-cors" mode
        https://bugs.webkit.org/show_bug.cgi?id=181866
        <rdar://problem/35827140>

        Reviewed by Chris Dumez.

        * http/tests/fetch/redirectmode-and-preload-expected.txt:
        * http/tests/fetch/redirectmode-and-preload.html:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181901

        Unreviewed test gardening.

        * TestExpectations:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181900

        Unreviewed test gardening.

        * TestExpectations:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181897

        Unreviewed test gardening.

        * TestExpectations:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r227235.

        The test for this change consistently times out on High
        Sierra.

        Reverted changeset:

        "Support for preconnect Link headers"
        https://bugs.webkit.org/show_bug.cgi?id=181657
        https://trac.webkit.org/changeset/227235

2018-01-19  Andy Estes  <aestes@apple.com>

        [Sierra Debug WK2] ASSERTION FAILED: paymentCoordinator().supportsVersion(version)
        https://bugs.webkit.org/show_bug.cgi?id=181833

        Reviewed by Youenn Fablet.

        Moved the version 3 test into its own file that only runs on High Sierra and later.

        * http/tests/ssl/applepay/ApplePayRequestShippingContactV3.https-expected.txt: Added.
        * http/tests/ssl/applepay/ApplePayRequestShippingContactV3.https.html: Added.
        * platform/mac-wk2/TestExpectations:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/wpt/web-animations/timing-model/animation-effects/current-iteration.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181888

        Unreviewed test gardening.

        * TestExpectations:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for webrtc/video-mute.html.
        https://bugs.webkit.org/show_bug.cgi?id=177501

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-* tests as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181565

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-19  Youenn Fablet  <youenn@apple.com>

        Cache storage errors like Quota should trigger console messages
        https://bugs.webkit.org/show_bug.cgi?id=181879
        <rdar://problem/36669048>

        Reviewed by Chris Dumez.

        * http/wpt/cache-storage/cache-quota.any-expected.txt:

2018-01-19  Dean Jackson  <dino@apple.com>

        REGRESSION (r221092): Swipe actions are hard to perform in FastMail app
        https://bugs.webkit.org/show_bug.cgi?id=181817
        <rdar://problem/35274055>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/passive-by-default-on-document-and-window-expected.txt:

2018-01-19  Daniel Bates  <dabates@apple.com>

        Update frame-ancestor directive to match Content Security Policy Level 3
        https://bugs.webkit.org/show_bug.cgi?id=178891
        <rdar://problem/35209458>

        Reviewed by Alex Christensen.

        Derived from Blink e667cc2e501fabab3605b838e4ee0d642a9c4a59:
        <https://chromium.googlesource.com/chromium/src.git/+/e667cc2e501fabab3605b838e4ee0d642a9c4a59>

        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-allow-same-origin-sandboxed-cross-url-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-allow-same-origin-sandboxed-cross-url-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-sandboxed-cross-url-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-sandboxed-cross-url-block.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/frame-ancestors-test.js:
        (injectNestedIframe):
        (window.onload):
        (testNestedIFrame):

2018-01-19  Yoav Weiss  <yoav@yoav.ws>

        Support for preconnect Link headers
        https://bugs.webkit.org/show_bug.cgi?id=181657

        Reviewed by Darin Adler.

        Add test to see Link preconnect headers trigger a connection.

        * http/tests/preconnect/link-header-rel-preconnect-http-expected.txt: Added.
        * http/tests/preconnect/link-header-rel-preconnect-http.html: Added.
        * http/tests/preconnect/resources/header-preconnect.php: Added.
        * platform/ios-simulator/TestExpectations: Skipped the test, as ios-simulator doesn't process Link headers for subresources.
        * platform/win/TestExpectations: Skipped the preconnect test directory, as it doesn't work on Windows.

2018-01-19  Joseph Pecoraro  <pecoraro@apple.com>

        AppCache: Log a Deprecation warning to the Console when AppCache is used
        https://bugs.webkit.org/show_bug.cgi?id=181778

        Reviewed by Alex Christensen.

        * http/tests/appcache/404-manifest-expected.txt:
        * http/tests/appcache/404-resource-expected.txt:
        * http/tests/appcache/404-resource-with-slow-main-resource-expected.txt:
        * http/tests/appcache/abort-cache-onchecking-expected.txt:
        * http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
        * http/tests/appcache/abort-cache-onchecking-resource-404-expected.txt:
        * http/tests/appcache/abort-cache-ondownloading-expected.txt:
        * http/tests/appcache/abort-cache-ondownloading-manifest-404-expected.txt:
        * http/tests/appcache/abort-cache-ondownloading-resource-404-expected.txt:
        * http/tests/appcache/abort-cache-onprogress-expected.txt:
        * http/tests/appcache/access-via-redirect-expected.txt:
        * http/tests/appcache/crash-when-navigating-away-then-back-expected.txt:
        * http/tests/appcache/credential-url-expected.txt:
        * http/tests/appcache/cyrillic-uri-expected.txt:
        * http/tests/appcache/decide-navigation-policy-after-delay-expected.txt:
        * http/tests/appcache/deferred-events-delete-while-raising-expected.txt:
        * http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt:
        * http/tests/appcache/deferred-events-expected.txt:
        * http/tests/appcache/different-https-origin-resource-main-expected.txt:
        * http/tests/appcache/different-origin-manifest-expected.txt:
        * http/tests/appcache/different-scheme-expected.txt:
        * http/tests/appcache/document-write-html-element-2-expected.txt:
        * http/tests/appcache/empty-manifest-expected.txt:
        * http/tests/appcache/fail-on-update-2-expected.txt:
        * http/tests/appcache/fail-on-update-expected.txt:
        * http/tests/appcache/fallback-expected.txt:
        * http/tests/appcache/fallback-namespace-outside-manifest-path-expected.txt:
        * http/tests/appcache/foreign-fallback-expected.txt:
        * http/tests/appcache/foreign-iframe-main-expected.txt:
        * http/tests/appcache/history-test-expected.txt:
        * http/tests/appcache/idempotent-update-expected.txt:
        * http/tests/appcache/identifier-test-expected.txt:
        * http/tests/appcache/interrupted-update-expected.txt:
        * http/tests/appcache/local-content-expected.txt:
        * http/tests/appcache/main-resource-fallback-for-network-error-crash-expected.txt:
        * http/tests/appcache/main-resource-hash-expected.txt:
        * http/tests/appcache/main-resource-redirect-expected.txt:
        * http/tests/appcache/manifest-containing-itself-expected.txt:
        * http/tests/appcache/manifest-parsing-expected.txt:
        * http/tests/appcache/manifest-redirect-2-expected.txt:
        * http/tests/appcache/manifest-redirect-expected.txt:
        * http/tests/appcache/manifest-with-empty-file-expected.txt:
        * http/tests/appcache/max-size-expected.txt:
        * http/tests/appcache/multi-fallback-expected.txt:
        * http/tests/appcache/navigating-away-while-cache-attempt-in-progress-expected.txt:
        * http/tests/appcache/non-html-expected.txt:
        * http/tests/appcache/offline-access-expected.txt:
        * http/tests/appcache/online-fallback-layering-expected.txt:
        * http/tests/appcache/online-whitelist-expected.txt:
        * http/tests/appcache/origin-delete-expected.txt:
        * http/tests/appcache/origin-quota-continued-download-expected.txt:
        * http/tests/appcache/origin-quota-continued-download-multiple-manifests-expected.txt:
        * http/tests/appcache/origin-quota-expected.txt:
        * http/tests/appcache/origin-usage-expected.txt:
        * http/tests/appcache/origins-with-appcache-expected.txt:
        * http/tests/appcache/progress-counter-expected.txt:
        * http/tests/appcache/reload-expected.txt:
        * http/tests/appcache/remove-cache-expected.txt:
        * http/tests/appcache/resource-redirect-2-expected.txt:
        * http/tests/appcache/resource-redirect-expected.txt:
        * http/tests/appcache/simple-expected.txt:
        * http/tests/appcache/simple-video-async-expected.txt:
        * http/tests/appcache/simple-video-sync-expected.txt:
        * http/tests/appcache/top-frame-1-expected.txt:
        * http/tests/appcache/top-frame-2-expected.txt:
        * http/tests/appcache/top-frame-3-expected.txt:
        * http/tests/appcache/top-frame-4-expected.txt:
        * http/tests/appcache/update-cache-expected.txt:
        * http/tests/appcache/video-expected.txt:
        * http/tests/appcache/whitelist-wildcard-expected.txt:
        * http/tests/appcache/wrong-content-type-expected.txt:
        * http/tests/appcache/wrong-signature-2-expected.txt:
        * http/tests/appcache/wrong-signature-expected.txt:
        * http/tests/appcache/x-frame-options-prevents-framing-expected.txt:
        * http/tests/appcache/xhr-foreign-resource-expected.txt:
        * http/tests/contentfiltering/load-substitute-data-from-appcache-expected.txt:
        * http/tests/security/appcache-switching-private-browsing-expected.txt:
        * http/tests/security/cross-origin-appcache-allowed-expected.txt:
        * http/tests/security/cross-origin-appcache-expected.txt:
        * http/tests/security/same-origin-appcache-blocked-expected.txt:
        * http/tests/ssl/upgrade-origin-usage-expected.txt:

2018-01-19  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Implement callback support for removal of WebsiteDataType::ResourceLoadStatistics
        https://bugs.webkit.org/show_bug.cgi?id=181822
        https://bugs.webkit.org/show_bug.cgi?id=175263
        https://bugs.webkit.org/show_bug.cgi?id=178536
        https://bugs.webkit.org/show_bug.cgi?id=181223
        https://bugs.webkit.org/show_bug.cgi?id=181482
        <rdar://problem/33491222>
        <rdar://problem/33805293>
        <rdar://problem/36332683>
        <rdar://problem/36549026>

        Reviewed by Alex Christensen.

        * 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/grandfathering.html:
        * platform/ios/TestExpectations:
            Marked the three updated tests as [ Pass ].
        * platform/mac-wk2/TestExpectations:
            Marked the three updated tests as [ Pass ].

2018-01-19  James Craig  <jcraig@apple.com>

        AX: when invert colors is on, double-invert image and picture elements in UserAgentStyleSheet
        https://bugs.webkit.org/show_bug.cgi?id=181281
        <rdar://problem/36291776>

        Reviewed by Simon Fraser.

        Updated to include img and picture element tests.

        * accessibility/smart-invert-expected.txt:
        * accessibility/smart-invert-reference-expected.html:
        * accessibility/smart-invert.html:

2018-01-19  Chris Dumez  <cdumez@apple.com>

        The WebContent process should not process incoming IPC while waiting for a sync IPC reply
        https://bugs.webkit.org/show_bug.cgi?id=181560

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

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

2018-01-19  Antoine Quint  <graouts@apple.com>

        [Web Animations] Remove http/wpt/wk-web-animations tests
        https://bugs.webkit.org/show_bug.cgi?id=181861

        These tests were written early on during our Web Animations implementation before we had a good sense of the quality
        of the coverage of the W3C WPT suite. That suite is extremely comprehensive and all of the assertions we wrote ourselves
        are redundant and should be removed so that all testing, unless specific to our implementation, is done through the WPT
        suite.

        Reviewed by Dean Jackson.

        * http/wpt/wk-web-animations/interfaces/document-get-animations-expected.txt: Removed.
        * http/wpt/wk-web-animations/interfaces/document-get-animations.html: Removed.
        * http/wpt/wk-web-animations/interfaces/element-get-animations-expected.txt: Removed.
        * http/wpt/wk-web-animations/interfaces/element-get-animations.html: Removed.
        * http/wpt/wk-web-animations/interfaces/keyframe-effect-getComputedStyle-expected.txt: Removed.
        * http/wpt/wk-web-animations/interfaces/keyframe-effect-getComputedStyle.html: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-creation-basic-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-creation-basic.html: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-current-time-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-current-time.html: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-effect-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-effect-timing-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-effect-timing.html: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-effect-unique-relationship-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-effect-unique-relationship.html: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-effect.html: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-interface-effect-property-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-interface-effect-property.html: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property.html: Removed.
        * http/wpt/wk-web-animations/timing-model/document-timeline-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/document-timeline.html: Removed.
        * http/wpt/wk-web-animations/timing-model/keyframe-effect-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration.html: Removed.
        * http/wpt/wk-web-animations/timing-model/keyframe-effect.html: Removed.
        * http/wpt/wk-web-animations/timing-model/timeline-current-time-expected.txt: Removed.
        * http/wpt/wk-web-animations/timing-model/timeline-current-time.html: Removed.

2018-01-19  Antoine Quint  <graouts@apple.com>

        [Web Animations] Expose timing properties (delay, endDelay, fill, iterationStart, iterations, direction) and getComputedTiming()
        https://bugs.webkit.org/show_bug.cgi?id=181857
        <rdar://problem/36660081>

        Reviewed by Dean Jackson.

        Update expectations with progressions and new failure points now we expose more of the API.

        * http/wpt/web-animations/animation-model/animation-types/discrete-animation-expected.txt:
        * http/wpt/web-animations/interfaces/Animatable/animate-expected.txt:
        * http/wpt/web-animations/interfaces/Animation/finish-expected.txt:
        * http/wpt/web-animations/interfaces/Animation/finished-expected.txt:
        * http/wpt/web-animations/interfaces/Animation/pause-expected.txt:
        * http/wpt/web-animations/interfaces/Animation/play-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/direction-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/duration-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/fill-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations-expected.txt:
        * http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/current-iteration-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/local-time-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/phases-and-states-expected.txt:
        * http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress-expected.txt:
        * http/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:
        * http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt:
        * http/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt:
        * http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration.html:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/images/image-supports-video.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181862

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-01-19  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for media/W3C/audio/networkState/networkState_during_loadstart.html.
        https://bugs.webkit.org/show_bug.cgi?id=123010

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-19  Jonathan Bedard  <jbedard@apple.com>

        Move select-out-of-floated-non-editable iOS Simulator expectations to iOS

        Unreviewed test gardening.

        r222317 introduced these test expectations. These expectations should apply to both
        Simulator and device testing.

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

2018-01-19  Frederic Wang  <fwang@igalia.com>

        Use promises for basic-gestures.js and 'await' for the corresponding tests
        https://bugs.webkit.org/show_bug.cgi?id=181841

        Reviewed by Megan Gardner.

        * fast/events/touch/ios/drag-to-autoscroll-in-single-line-editable.html: Remove redundant
        check for testRunner.runUIScript, rewrite runUIScript calls to just await a promise, add the
        async keyword to runTest and reindent.
        Also remove extraneous space after + operator.
        * fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html: Ditto.
        * fast/events/touch/ios/long-press-then-drag-left-to-change-selected-text.html: Ditto.
        * fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html: Ditto.
        * fast/events/touch/ios/long-press-then-drag-to-select-text.html: Ditto.
        * fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html: Ditto.
        * fast/events/touch/ios/long-press-to-select-and-tap-to-clear.html: Ditto.
        * fast/events/touch/ios/long-press-to-select-text.html: Ditto.
        * resources/basic-gestures.js: For all functions in this file, wrap the script source into a
        runUIScript call and a new promise, reindent.

2018-01-19  Per Arne Vollan  <pvollan@apple.com>

        Mark svg/filters/feDiffuseLighting-bottomRightPixel.html as failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=181854

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-19  Antoine Quint  <graouts@apple.com>

        [iOS] LayoutTest media/modern-media-controls/media-controller/ios/media-controller-ios-do-not-hide-controls-when-tapping-button.html fails on Internal bots
        https://bugs.webkit.org/show_bug.cgi?id=181843
        <rdar://problem/36061363>

        The button we were trying to press was outside of the viewable screen area and so the tap wouldn't occur.
        Resizing the video to fit in the window fixes the issue.

        Reviewed by Youenn Fablet.

        * media/modern-media-controls/media-controller/ios/media-controller-ios-do-not-hide-controls-when-tapping-button.html:

2018-01-18  Frederic Wang  <fwang@igalia.com>

        Move helper files for iOS touch gestures into LayoutTests/resources
        https://bugs.webkit.org/show_bug.cgi?id=181798

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/drag-to-autoscroll-in-single-line-editable.html: Change URL of
        basic-gestures.js ; remove gesture-helpers.js it seems unused and has the wrong URL anyway.
        * fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html: Change URL
        of basic-gestures.js.
        * fast/events/touch/ios/long-press-then-drag-left-to-change-selected-text.html: Ditto.
        * fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html: Ditto.
        * fast/events/touch/ios/long-press-then-drag-to-select-text.html: Ditto.
        * fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html: Ditto.
        * fast/events/touch/ios/long-press-to-select-and-tap-to-clear.html: Ditto.
        * fast/events/touch/ios/long-press-to-select-text.html: Ditto.
        * resources/basic-gestures.js: Renamed from LayoutTests/fast/events/touch/ios/resources/basic-gestures.js.
        * resources/ui-debugging.js: Renamed from LayoutTests/fast/events/touch/ios/resources/ui-debugging.js.
        Note that this file was introduced in r222517 but seems unused for now.

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=180171

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark inspector/debugger/breakpoint-action-log.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181839

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark storage/websql/database-lock-after-reload.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=173928

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/IndexedDB/idbdatabase-createObjectStore-exception-order.htm as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=172243

        Unreviewed test gardening.

        * TestExpectations:

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark js/slow-stress/Int32Array-alloc-huge-long-lived.html as slow on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=181838

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/W3C/video/networkState/networkState_during_loadstart.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=179643

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/video-main-content-allow-then-deny.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181830

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for fast/multicol/spanner-crash-when-adding-summary.html.

        Unreviewed test gardening.

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

2018-01-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181499

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-01-18  Chris Dumez  <cdumez@apple.com>

        We should be able to terminate service workers that are unresponsive
        https://bugs.webkit.org/show_bug.cgi?id=181563
        <rdar://problem/35280031>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/workers/service/postmessage-after-terminating-hung-worker-expected.txt: Added.
        * http/tests/workers/service/postmessage-after-terminating-hung-worker.html: Added.
        * http/tests/workers/service/resources/postmessage-after-terminating-hung-worker.js: Added.
        * http/tests/workers/service/resources/postmessage-echo-worker-mayhang.js: Added.

2018-01-18  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: roles-computedRoleString.html layout test should support enabling/disabling individual test cases
        https://bugs.webkit.org/show_bug.cgi?id=181806

        Reviewed by Chris Fleizach.

        Add a "data-platform" attribute to each element so that we can enable or disable
        a given test case on a given platform. Update the platform expectations for GTK
        to reflect changes and new support which happened in the interim. And remove the
        test from the list of expected failures.

        * accessibility/roles-computedRoleString.html:
        * platform/gtk/TestExpectations:
        * platform/gtk/accessibility/roles-computedRoleString-expected.txt:

2018-01-18  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] AX: Two layout tests crash with error 'g_strstr_len: assertion 'haystack != NULL' failed' in Accessibility::UIElement::url
        https://bugs.webkit.org/show_bug.cgi?id=176796

        Reviewed by Chris Fleizach.

        Remove failing tests from Test Expectations. Update expected results of
        xml-roles-exposed to reflect several bug fixes which were made in the
        interim. Modify add-children-pseudo-element.html to account for platform
        differences in the accessibility tree. Add an additional URL test because
        we didn't have coverage for getting the URL of accessible links resulting
        from native anchor elements.

        * accessibility/add-children-pseudo-element.html: Modified.
        * accessibility/gtk/link-url-expected.txt: Added.
        * accessibility/gtk/link-url.html: Added.
        * accessibility/gtk/xml-roles-exposed-expected.txt: Updated.
        * platform/gtk/TestExpectations: Removed failing tests.
        * platform/gtk/accessibility/add-children-pseudo-element-expected.txt: Added.

2018-01-18  Matt Lewis  <jlewis3@apple.com>

        Marked multiple imported/w3c/web-platform-tests/service-workers/ test as flaky
        https://bugs.webkit.org/show_bug.cgi?id=181750

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-18  Antti Koivisto  <antti@apple.com>

        REGRESSION (r223604): Setting :before/after pseudo element on <noscript> asserts
        https://bugs.webkit.org/show_bug.cgi?id=181795
        <rdar://problem/36334524>

        Reviewed by David Kilzer.

        * fast/css-generated-content/noscript-pseudo-anim-crash-expected.txt: Added.
        * fast/css-generated-content/noscript-pseudo-anim-crash.html: Added.

2018-01-18  Chris Fleizach  <cfleizach@apple.com>

        AX: Aria-activedescendant not supported
        https://bugs.webkit.org/show_bug.cgi?id=161734
        <rdar://problem/28202679>

        Reviewed by Joanmarie Diggs.

        * accessibility/aria-combobox-control-owns-elements-expected.txt: Added.
        * accessibility/aria-combobox-control-owns-elements.html: Added.

2018-01-18  Per Arne Vollan  <pvollan@apple.com>

        Mark fast/forms/auto-fill-button/input-strong-password-auto-fill-button.html as failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=181662

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-17  Per Arne Vollan  <pvollan@apple.com>

        REGRESSION (r224780): Text stroke not applied to video captions.
        https://bugs.webkit.org/show_bug.cgi?id=181743
        <rdar://problem/35874338>

        Reviewed by Simon Fraser.

        * media/track/track-css-stroke-cues-expected.txt:
        * media/track/track-css-stroke-cues.html:
        * media/track/track-css-visible-stroke-expected.html: Added.
        * media/track/track-css-visible-stroke.html: Added.

2018-01-18  Andy Estes  <aestes@apple.com>

        [Payment Request] Support a default shipping address for Apple Pay
        https://bugs.webkit.org/show_bug.cgi?id=181754
        <rdar://problem/36009733>

        Reviewed by Brady Eidson.

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

2018-01-18  Ali Juma  <ajuma@chromium.org>

        imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181435

        Reviewed by Frédéric Wang.

        Test gardening. The flakiness was fixed by r227054, so remove the test expectation.

        * TestExpectations:

2018-01-18  Jer Noble  <jer.noble@apple.com>

        Layout Test http/tests/images/image-supports-video.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181008
        <rdar://problem/36143943>

        Reviewed by Youenn Fablet.

        Send a "Cache-control: nocache" header from the HTTP server when the image resource is
        requested.

        * http/tests/resources/redirect-to-video-if-accepted.php:
        * platform/mac-wk1/TestExpectations:

2018-01-17  Jer Noble  <jer.noble@apple.com>

        WebVTT served via HLS never results in cues
        https://bugs.webkit.org/show_bug.cgi?id=181773

        Reviewed by Eric Carlson.

        * http/tests/media/hls/hls-webvtt-tracks-expected.txt: Added.
        * http/tests/media/hls/hls-webvtt-tracks.html: Added.
        * http/tests/media/resources/hls/subtitles/fileSequence0.webvtt: Added.
        * http/tests/media/resources/hls/subtitles/prog_index.m3u8: Added.
        * http/tests/media/resources/hls/test-webvtt.m3u8: Added.

2018-01-17  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Block cookies for prevalent resources without user interaction
        https://bugs.webkit.org/show_bug.cgi?id=177394
        <rdar://problem/34613960>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-expected.txt: Added.
        * http/tests/resourceLoadStatistics/add-blocking-to-redirect.html: Added.
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html: Added.
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt: Added.
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html: Added.
        * http/tests/resourceLoadStatistics/remove-partitioning-from-redirect-expected.txt: Removed.
        * http/tests/resourceLoadStatistics/remove-partitioning-from-redirect.html: Removed.
            Test case reworked and is now remove-partitioning-in-redirect.html.
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt: Added.
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html: Added.
        * platform/ios/TestExpectations:
            New tests marked as [ Pass ] for iOS.
        * platform/mac-wk2/TestExpectations:
            New tests marked as [ Pass ] for High Sierra+.
        * platform/wk2/TestExpectations:
            New tests skipped for WK2 in general.

2018-01-17  Alicia Boya García  <aboya@igalia.com>

        Unreviewed GTK+ gardening

        * platform/gtk/TestExpectations:

2018-01-17  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r227076.

        This breaks internal builds

        Reverted changeset:

        "Resource Load Statistics: Block cookies for prevalent
        resources without user interaction"
        https://bugs.webkit.org/show_bug.cgi?id=177394
        https://trac.webkit.org/changeset/227076

2018-01-17  Matt Lewis  <jlewis3@apple.com>

        Marked http/wpt/resource-timing/rt-resources-per-worker.html as flaky on High Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=180260

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-17  Zalan Bujtas  <zalan@apple.com>

        Multicol: RenderMultiColumnFlow should not inherit the flow state
        https://bugs.webkit.org/show_bug.cgi?id=181762
        <rdar://problem/35448565>

        Reviewed by Simon Fraser.

        * fast/multicol/crash-when-out-of-flow-positioned-becomes-in-flow-expected.txt: Added.
        * fast/multicol/crash-when-out-of-flow-positioned-becomes-in-flow.html: Added.

2018-01-17  Ryan Haddad  <ryanhaddad@apple.com>

        [iOS] Re-enable LayoutTests in the storage/indexeddb directory
        https://bugs.webkit.org/show_bug.cgi?id=180958

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-01-17  Antti Koivisto  <antti@apple.com>

        REGRESSION (r226385?): Crash in com.apple.WebCore: WebCore::MediaQueryEvaluator::evaluate const + 32
        https://bugs.webkit.org/show_bug.cgi?id=181742
        <rdar://problem/36334726>

        Reviewed by David Kilzer.

        * fast/media/mediaqueryevaluator-crash-expected.txt: Added.
        * fast/media/mediaqueryevaluator-crash.html: Added.

2018-01-17  Matt Lewis  <jlewis3@apple.com>

        Marked inspector/worker/worker-recover-if-inspector-close.html as flaky on macOS
        https://bugs.webkit.org/show_bug.cgi?id=181100

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-17  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r226902): fast/events/ios/rotation/layout-viewport-during-rotation.html and fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation.html are timing out
        <rdar://problem/36589755>

        The first argument to a load event listener is an event, which meant that passing scriptCompleteCallback
        didn't work as expected.

        * fast/events/ios/rotation/layout-viewport-during-rotation.html:
        * fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation.html:

2018-01-17  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Block cookies for prevalent resources without user interaction
        https://bugs.webkit.org/show_bug.cgi?id=177394
        <rdar://problem/34613960>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-expected.txt: Added.
        * http/tests/resourceLoadStatistics/add-blocking-to-redirect.html: Added.
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-expected.txt: Added.
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html: Added.
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt: Added.
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html: Added.
        * http/tests/resourceLoadStatistics/remove-partitioning-from-redirect-expected.txt: Removed.
        * http/tests/resourceLoadStatistics/remove-partitioning-from-redirect.html: Removed.
            Test case reworked and is now remove-partitioning-in-redirect.html.
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt: Added.
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html: Added.
        * platform/ios/TestExpectations:
            New tests marked as [ Pass ] for iOS.
        * platform/mac-wk2/TestExpectations:
            New tests marked as [ Pass ] for High Sierra+.
        * platform/wk2/TestExpectations:
            New tests skipped for WK2 in general.

2018-01-17  Daniel Bates  <dabates@apple.com>

        REGRESSION (r222795): Cardiogram never signs in
        https://bugs.webkit.org/show_bug.cgi?id=181693
        <rdar://problem/36286293>

        Reviewed by Ryosuke Niwa.

        Adds a test to ensure that a file URL can set forbidden XHR headers when the setting
        allowSettingAnyXHRHeaderFromFileURLs is enabled.

        * fast/xmlhttprequest/set-dangerous-headers-from-file-when-setting-enabled-expected.txt: Added.
        * fast/xmlhttprequest/set-dangerous-headers-from-file-when-setting-enabled.html: Added.

2018-01-17  Daniel Bates  <dabates@apple.com>

        ASSERTION FAILED: !m_completionHandler in PingHandle::~PingHandle()
        https://bugs.webkit.org/show_bug.cgi?id=181746
        <rdar://problem/36586248>

        Reviewed by Chris Dumez.

        Adds a test to ensure that loading a protected image from a beforeunload handler
        does not cause an assertion failure.

        * http/tests/misc/before-unload-load-image-expected.txt: Added.
        * http/tests/misc/before-unload-load-image.html: Added.
        * http/tests/misc/resources/before-unload-in-subframe-child.html: Added.
        * http/tests/misc/resources/protected/protected-image.php: Added.

2018-01-17  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [EME][GStreamer] Add the full-sample encryption support in the GStreamer ClearKey decryptor
        https://bugs.webkit.org/show_bug.cgi?id=180080

        Reviewed by Xabier Rodriguez-Calvar.

        * platform/wpe/TestExpectations:
        This patch fixes the crash of the test clearKey-cenc-audio-playback-mse.

2018-01-17  Ali Juma  <ajuma@chromium.org>

        Update web platform tests for Visual Viewport API
        https://bugs.webkit.org/show_bug.cgi?id=181689

        Reviewed by Alex Christensen.

        Rename the test directory from 'viewport' to 'visual-viewport', and update
        viewport-resize-event-on-load-overflowing-page.html.

        This corresponds to the following upstream commits:
        1) https://github.com/w3c/web-platform-tests/commit/f878fee4df619e55c7fbfce1a2ff5e5d4d83a03b
        2) https://github.com/w3c/web-platform-tests/commit/03a684d63e62d85cffed38bc942f468692d7d54f

        * TestExpectations: Updated test path.
        * platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt.
        * platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt.
        Updated expectation since tests in a directory named 'viewport' but not 'visual-viewport' get a flexible viewport on iOS.
        * platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt.

2018-01-17  Zan Dobersek  <zdobersek@igalia.com>

        CanvasImageData: createImageData() parameter should not be nullable
        https://bugs.webkit.org/show_bug.cgi?id=181670

        Reviewed by Sam Weinig.

        Update createImageData(null) tests that should now throw a TypeError.

        * canvas/philip/tests/2d.imageData.create1.zero.html:
        * fast/canvas/canvas-createImageData-expected.txt:
        * fast/canvas/canvas-createImageData.html:

2018-01-16  Simon Fraser  <simon.fraser@apple.com>

        Can't scroll iframe after toggling it to display:none and back
        https://bugs.webkit.org/show_bug.cgi?id=181708
        rdar://problem/13234778

        Reviewed by Tim Horton.

        * tiled-drawing/scrolling/non-fast-region/non-fast-scrollable-region-hide-show-iframe-expected.txt: Added.
        * tiled-drawing/scrolling/non-fast-region/non-fast-scrollable-region-hide-show-iframe.html: Added.

2018-01-16  Jer Noble  <jer.noble@apple.com>

        Reset MediaSourcePrivateAVFObjC's m_sourceBufferWithSelectedVideo when the underlying SourceBufferPrivate is removed.
        https://bugs.webkit.org/show_bug.cgi?id=181707
        <rdar://problem/34809474>

        Reviewed by Eric Carlson.

        * media/media-source/media-source-remove-unload-crash-expected.txt: Added.
        * media/media-source/media-source-remove-unload-crash.html: Added.

2018-01-12  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement dummy WebAuthN IDLs
        https://bugs.webkit.org/show_bug.cgi?id=181627
        <rdar://problem/36459864>

        Reviewed by Alex Christensen.

        Modify some tests to reflect the update.

        * http/wpt/credential-management/credentialscontainer-create-basics.https-expected.txt:
        * http/wpt/credential-management/credentialscontainer-create-basics.https.html:
        * http/wpt/credential-management/credentialscontainer-get-basics.https-expected.txt:
        * http/wpt/credential-management/credentialscontainer-get-basics.https.html:

2018-01-16  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r226962.

        The LayoutTest added with this change is a flaky timeout.

        Reverted changeset:

        "Support for preconnect Link headers"
        https://bugs.webkit.org/show_bug.cgi?id=181657
        https://trac.webkit.org/changeset/226962

2018-01-16  Said Abou-Hallawa  <sabouhallawa@apple.com>

        REGRESSION(r221292): svg/animations/animateTransform-pattern-transform.html crashes with security assertion
        https://bugs.webkit.org/show_bug.cgi?id=179986

        Reviewed by Simon Fraser.

        * svg/dom/SVGAnimatedListPropertyTearOff-leak.html:

2018-01-16  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [EME] Add layout test for the MSE playback of ClearKey encrypted audio and video
        https://bugs.webkit.org/show_bug.cgi?id=181594

        Reviewed by Xabier Rodriguez-Calvar.

        Add new layout tests in order to test the playback of ClearKey encrypted content:
        clearKey-cenc-audio-playback-mse : Tests the MSE playback of ClearKey encrypted audio track.
        clearKey-cenc-video-playback-mse : Tests the MSE playback of ClearKey encrypted video track.

        * media/content/encrypted/segments/AudioClearKeyCenc-seg-0.mp4: Added.
        * media/content/encrypted/segments/AudioClearKeyCenc-seg-1.mp4: Added.
        * media/content/encrypted/segments/AudioClearKeyCenc-seg-2.mp4: Added.
        * media/content/encrypted/segments/AudioClearKeyCenc-seg-3.mp4: Added.
            These are a simple encrypted audio fragments used in MSE playback.
            They have been fragmented and encrypted with BENTO4. https://www.bento4.com/
            Use full-sample encryption because they are not NAL Structured.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-1.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-2.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-3.mp4: Added.
            These are a simple encrypted video fragments used in MSE playback.
            They have been fragmented and encrypted with BENTO4. https://www.bento4.com/
            Use sub-sample encryption because they are NAL Structured.
        * media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse.html: Added.
        * media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html: Added.
        * media/encrypted-media/medias-enc.js:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:
            The test clearKey-cenc-audio-playback-mse crashes because the clearKey decryptor plugin doesn't
            support yet the Full-sample encryption, see bug 180080.

2018-01-16  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [WPE] Two clearkey tests failing since r226621
        https://bugs.webkit.org/show_bug.cgi?id=181532

        Reviewed by Xabier Rodriguez-Calvar.

        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin-expected.txt:
            Since r226621 initDataType "cenc" is supported in clearKey, so we should update the expected result of these tests.

2018-01-16  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [EME] some fixes in clearKey-encrypted-cenc-event LayoutTest
        https://bugs.webkit.org/show_bug.cgi?id=181526

        Reviewed by Xabier Rodriguez-Calvar.

        Update the TestExpectation files as it was done with clearKey-message-cenc-event
        LayoutTest, the test should be pass in all platforms except gtk and mac.
        Use const or let instead of var in JS when it's possible.

        * TestExpectations:
        * media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html:
        * media/media-source/media-source-loader-simple.js:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:

2018-01-15  Yoav Weiss  <yoav@yoav.ws>

        Support for preconnect Link headers
        https://bugs.webkit.org/show_bug.cgi?id=181657

        Reviewed by Darin Adler.

        Add test to see Link preconnect headers trigger a connection.

        * http/tests/preconnect/link-header-rel-preconnect-http-expected.txt: Added.
        * http/tests/preconnect/link-header-rel-preconnect-http.php: Added.

2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK layout test gardening

        * TestExpectations:
        * platform/gtk/TestExpectations:

2018-01-15  Konstantin Tokarev  <annulen@yandex.ru>

        image-rendering should affect scaling of border-image
        https://bugs.webkit.org/show_bug.cgi?id=169440

        Reviewed by Michael Catanzaro.

        * fast/borders/border-image-pixelated-expected.html: Added.
        * fast/borders/border-image-pixelated.html: Added.
        * fast/borders/resources/border-image-pixelated.png: Added.

2018-01-15  Philippe Normand  <pnormand@igalia.com>

        Unreviewed GTK gardening

        * platform/gtk/TestExpectations: Skip
        media/media-fullscreen-pause-inline.html as advised by Eric
        Carlson.

2018-01-15  Philippe Normand  <pnormand@igalia.com>

        Prevent useless MediaPlayer mute state notifications
        https://bugs.webkit.org/show_bug.cgi?id=181646

        Reviewed by Carlos Garcia Campos.

        Unflag tests depending on muted state and media session
        restrictions, most of those are now passing.

        * platform/gtk/TestExpectations:
        * platform/gtk/media/video-controls-no-scripting-expected.txt:

2018-01-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [macOS] [WK2] Unskip some consistently-passing tests
        https://bugs.webkit.org/show_bug.cgi?id=181226
        <rdar://problem/23023848>

        Reviewed by Simon Fraser.

        According to the flakiness dashboard, these tests consistently pass now.

        * platform/mac-wk2/TestExpectations:

2018-01-13  Chris Dumez  <cdumez@apple.com>

        Extend testing added in r226842
        https://bugs.webkit.org/show_bug.cgi?id=181634

        Reviewed by Darin Adler.

        I have verified that the behavior is consistent with Chrome and Firefox.

        * fast/dom/Window/window-opener-shadowing-expected.txt:
        * fast/dom/Window/window-opener-shadowing.html:

2018-01-13  Minsheng Liu  <lambda@liu.ms>

        MathML Lengths should take zoom level into account
        https://bugs.webkit.org/show_bug.cgi?id=180029

        Reviewed by Frédéric Wang.

        Add a testcase for MathML lengths where zoom factor is set.

        * mathml/presentation/mspace-units-with-zoom-expected.html: Added.
        * mathml/presentation/mspace-units-with-zoom.html: Added.

2018-01-12  Simon Fraser  <simon.fraser@apple.com>

        Touch events not received with initial-scale=1 viewport
        https://bugs.webkit.org/show_bug.cgi?id=181566
        rdar://problem/36460221

        Reviewed by Tim Horton.

        Add a testcase for this touch event case.

        * fast/events/touch/ios/target-taller-than-view-expected.txt: Added.
        * fast/events/touch/ios/target-taller-than-view.html: Added.

2018-01-12  Myles C. Maxfield  <mmaxfield@apple.com>

        Data URL fonts split in the middle of an alphabet cause random letters to disappear
        https://bugs.webkit.org/show_bug.cgi?id=175845
        <rdar://problem/33996578>

        Reviewed by Brent Fulgham.

        Make sure that the requests for both fonts are sent before either of the responses are received.

        * fast/text/font-load-data-partitioned-alphabet-expected.txt: Added.
        * fast/text/font-load-data-partitioned-alphabet.html: Added.
        * platform/mac-wk1/fast/text/font-load-data-partitioned-alphabet-expected.txt: Added.

2018-01-11  Dean Jackson  <dino@apple.com>

        [WebGL] Simulated vertexAttrib0 can sometimes cause OUT_OF_MEMORY errors
        https://bugs.webkit.org/show_bug.cgi?id=181558
        <rdar://problem/36189833>

        Reviewed by Eric Carlson.

        * fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies-expected.txt: Added.
        * fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html: Added.
        * platform/mac/TestExpectations: Test crashes on Sierra and earlier.

2018-01-12  Dean Jackson  <dino@apple.com>

        drawElements should be invalid if vertexAttrib0 doesn't have data
        https://bugs.webkit.org/show_bug.cgi?id=181609
        <rdar://problem/36392883>

        Reviewed by Antoine Quint.

        * fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt: Added.
        * fast/canvas/webgl/drawElements-empty-vertex-data.html: Added.

2018-01-12  Youenn Fablet  <youenn@apple.com>

        FormDataElement::lengthInBytes should use ThreadableBlobRegistry
        https://bugs.webkit.org/show_bug.cgi?id=181554

        Reviewed by Chris Dumez.

        * http/tests/workers/service/resources/service-worker-cache-api-worker.js:
        (async):
        (event.event.request.url.indexOf): Deleted.
        (event.event.request.url.endsWith): Deleted.
        (event.event.respondWith.promise.then): Deleted.
        * http/tests/workers/service/service-worker-cache-api.https-expected.txt:
        * http/tests/workers/service/service-worker-cache-api.https.html:

2018-01-12  Youenn Fablet  <youenn@apple.com>

        WebProcess should pass the registration identifier and not the worker identifier for fetch events
        https://bugs.webkit.org/show_bug.cgi?id=181591

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/resources/empty.html: Added.
        * http/wpt/service-workers/update-service-worker.https-expected.txt: Added.
        * http/wpt/service-workers/update-service-worker.https.html: Added.
        * http/wpt/service-workers/update-worker.py: Added.
        (main):

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

        fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html is flakey
        https://bugs.webkit.org/show_bug.cgi?id=181569
        rdar://problem/34117680

        Reviewed by Zalan Bujtas.
        
        Wait a tick before starting the rotation, otherwise -[WKWebView _beginAnimatedResizeWithUpdates:]
        can bail because the unobscuredRect is empty.

        Also wait for both the rotation UI script to complete, and the receipt of the 
        orientationchange event.

        * fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html:
        * fast/events/ios/rotation/resources/rotation-utils.js:
        (doTest):

2018-01-12  Matt Lewis  <jlewis3@apple.com>

        Skipped http/tests/resourceLoadStatistics/grandfathering.html on macOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=181482

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-12  Antoine Quint  <graouts@apple.com>

        Add support for the frames() timing function
        https://bugs.webkit.org/show_bug.cgi?id=181585
        <rdar://problem/36463317>

        Reviewed by Dean.

        Add a new test that checks that the frames() timing function applies as expected
        and expand an existing test to check that the frames() timing function is parsed
        correctly. We also mark progressions in imported WPT tests.

        * imported/w3c/web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
        * imported/w3c/web-platform-tests/css-timing-1/frames-timing-functions-syntax-expected.txt:
        * transitions/frames-timing-function-expected.txt: Added.
        * transitions/frames-timing-function.html: Added.
        * transitions/transitions-parsing-expected.txt:
        * transitions/transitions-parsing.html:

2018-01-11  Chris Dumez  <cdumez@apple.com>

        Setting Window.opener to null should disown its opener
        https://bugs.webkit.org/show_bug.cgi?id=181505
        <rdar://problem/36443151>

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/dom/Window/window-opener-set-to-null-expected.txt: Added.
        * fast/dom/Window/window-opener-set-to-null.html: Added.
        * fast/dom/Window/window-opener-shadowing-expected.txt: Added.
        * fast/dom/Window/window-opener-shadowing.html: Added.

2018-01-11  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Star character disappears when bolded
        https://bugs.webkit.org/show_bug.cgi?id=181568
        <rdar://problem/18755569>

        Reviewed by Simon Fraser.

        * fast/text/unknown-font-expected-mismatch.html: Added.
        * fast/text/unknown-font.html: Added.

2018-01-11  James Craig  <jcraig@apple.com>

        AX: when invert colors is on, double-invert video elements in UserAgentStyleSheet
        https://bugs.webkit.org/show_bug.cgi?id=168447
        <rdar://problem/30559874>

        Reviewed by Simon Fraser.

        Double-invert video when platform "invert colors" setting is enabled. Behavior matches 
        current "Smart Invert" feature of Safari Reader on macOS/iOS and other iOS native apps.

        * TestExpectations: Platform setting only available on Mac and iOS.
        * accessibility/smart-invert-expected.txt: Added. 
        * accessibility/smart-invert-reference-expected.html: Added.
        * accessibility/smart-invert-reference.html: Added. Ref to ensure invert and grayscale filters render as expected.
        * accessibility/smart-invert.html: Added. Computed expectatons of filter property text values.
        * platform/ios-wk2/TestExpectations: Runs on iOS WK2.
        * platform/mac-wk2/TestExpectations: Runs on Mac WK2.

2018-01-10  Ryosuke Niwa  <rniwa@webkit.org>

        Make elements of zero width or height focusable
        https://bugs.webkit.org/show_bug.cgi?id=181516

        Reviewed by Chris Dumez.

        Added a regression test.

        * fast/events/focus-zero-size-element-expected.txt: Added.
        * fast/events/focus-zero-size-element.html: Added.

2018-01-11  Alex Christensen  <achristensen@webkit.org>

        REGRESSION(r225003): Loading hangs in environments where dispatch_async does not work
        https://bugs.webkit.org/show_bug.cgi?id=181553

        Reviewed by Eric Carlson.

        * media/video-src-remove.html:

2018-01-11  Dean Jackson  <dino@apple.com>

        Rolling out 226814. It crashes on some bots.

2018-01-11  Dean Jackson  <dino@apple.com>

        [WebGL] Simulated vertexAttrib0 can sometimes cause OUT_OF_MEMORY errors
        https://bugs.webkit.org/show_bug.cgi?id=181558
        <rdar://problem/36189833>

        Reviewed by Eric Carlson.

        * fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies-expected.txt: Added.
        * fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html: Added.

2018-01-11  Chris Dumez  <cdumez@apple.com>

        ASSERTION FAILED: registration in WebCore::SWServerWorker::skipWaiting()
        https://bugs.webkit.org/show_bug.cgi?id=181222
        <rdar://problem/36332686>

        Reviewed by Youenn Fablet.

        Unskip test that is no longer flakily crashing.

        * TestExpectations:

2018-01-11  Youenn Fablet  <youenn@apple.com>

        RTCController should disable ICE candidate filtering in case of getUserMedia based on the RTCPerrConnection origin
        https://bugs.webkit.org/show_bug.cgi?id=180851

        Reviewed by Eric Carlson.

        * http/wpt/webrtc/resources/third-party-frame-ice-candidate-filtering-iframe.html: Added.
        * http/wpt/webrtc/third-party-frame-ice-candidate-filtering-expected.txt: Added.
        * http/wpt/webrtc/third-party-frame-ice-candidate-filtering.html: Added.

2018-01-11  Ali Juma  <ajuma@chromium.org>

        window.visualViewport should behave as [SameObject]
        https://bugs.webkit.org/show_bug.cgi?id=181548

        Reviewed by Chris Dumez.

        * fast/visual-viewport/visual-viewport-same-object-expected.txt: Added.
        * fast/visual-viewport/visual-viewport-same-object.html: Added.

2018-01-11  Youenn Fablet  <youenn@apple.com>

        imported/w3c/web-platform-tests/service-workers/service-worker/multiple-update.https.html is slow on Debug
        https://bugs.webkit.org/show_bug.cgi?id=181541

        Unreviewed.

        * TestExpectations:

2018-01-11  Matt Lewis  <jlewis3@apple.com>

        Rebaseline of media/event-queue-crash.html after r226785
        
        Unreviewed test gardening.

        * media/event-queue-crash-expected.txt:

2018-01-11  Zalan Bujtas  <zalan@apple.com>

        RenderTreeUpdater::current() returns null_ptr when mutation is done through Document::resolveStyle.
        https://bugs.webkit.org/show_bug.cgi?id=181513
        <rdar://problem/36367085>

        Reviewed by Antti Koivisto.

        * fast/forms/button-set-text-crash-expected.txt: Added.
        * fast/forms/button-set-text-crash.html: Added.

2018-01-11  Antoine Quint  <graouts@apple.com>

        Only listen to webkitplaybacktargetavailabilitychanged when media controls are visible to the user
        https://bugs.webkit.org/show_bug.cgi?id=181547
        <rdar://problem/35947650>

        Reviewed by Eric Carlson.

        Add a test that checks that enabling AirPlay routes when the controls are not visible to the user
        does not incur any change, and that making the controls visible again shows the controls in the
        expected state.

        * media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-with-hidden-controls-expected.txt: Added.
        * media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-with-hidden-controls.html: Added.

2018-01-11  Antoine Quint  <graouts@apple.com>

        [iOS] There should be no controls markup generated in fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=181540
        <rdar://problem/35060379>

        Reviewed by Eric Carlson.

        We update this test to simply check that we're removing all child nodes.

        * media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt:
        * media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html:

2018-01-11  Youenn Fablet  <youenn@apple.com>

        Redirected iframe loading with Request.redirect=follow should fail
        https://bugs.webkit.org/show_bug.cgi?id=181491

        Reviewed by Alex Christensen.

        * TestExpectations:

2018-01-10  Simon Fraser  <simon.fraser@apple.com>

        On macOS, getBoundingClientRect gives incorrect values when pinch-zoomed
        https://bugs.webkit.org/show_bug.cgi?id=181511
        rdar://problem/33741427

        Reviewed by Zalan Bujtas.

        New results in tests that get client coordinates after zooming.

        * fast/visual-viewport/client-coordinates-relative-to-layout-viewport-expected.txt:
        * fast/visual-viewport/client-rects-relative-to-layout-viewport-expected.txt:
        * fast/visual-viewport/client-rects-relative-to-layout-viewport-zoomed.html:
        * fast/visual-viewport/zoomed-fixed-expected.txt:
        * fast/visual-viewport/zoomed-fixed-header-and-footer-expected.txt:
        * fast/zooming/client-rect-in-fixed-zoomed-expected.txt:
        * fast/zooming/client-rect-in-fixed-zoomed.html: Change the test to create passing results.

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

        Layout Test media/event-queue-crash.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=180493
        <rdar://problem/35914377>

        Reviewed by Jer Noble.

        * TestExpectations: Add DumpJSConsoleLogInStdErr.
        * media/event-queue-crash.html: Increase the timeout from 10ms to 100ms.

2018-01-11  Ms2ger  <Ms2ger@igalia.com>

        Test gardening for GTK.
        https://bugs.webkit.org/show_bug.cgi?id=181477

        Unreviewed test gardening.

        * http/tests/performance/performance-resource-timing-cached-entries-expected.txt:
        * http/tests/performance/performance-resource-timing-cached-entries.html:
          The code to debug this test's flakiness made it more flaky, as the
          resources are not logged in a consistent order. This ensures they are
          logged only in case of failure.
        * platform/gtk/TestExpectations:
          - svg/custom/non-scaling-stroke.svg was fixed in r226443.
          - imported/w3c/web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-001.html
            was fixed in r226404.

2018-01-11  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ and WPE gardening after r226773.

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

2018-01-11  Ms2ger  <Ms2ger@igalia.com>

        [GTK] Enable css2.1/20110323/vertical-align-boxes-001.htm.
        https://bugs.webkit.org/show_bug.cgi?id=91339

        Unreviewed test gardening.

        It was fixed in r226404.

        * platform/gtk/TestExpectations:

2018-01-11  Youenn Fablet  <youenn@apple.com>

        LayoutTests/http/tests/workers/service/resources/service-worker-importScript.js does not need to register two service workers
        https://bugs.webkit.org/show_bug.cgi?id=181490

        Reviewed by Chris Dumez.

        * http/tests/workers/service/resources/service-worker-importScript.js:
        * http/tests/workers/service/service-worker-importScript-expected.txt:
        * platform/mac-wk2/TestExpectations:

2018-01-11  Philippe Normand  <pnormand@igalia.com>

        [GTK] media/muted-video-is-playing-audio.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=163781

        Reviewed by Carlos Garcia Campos.

        The test should un-mute the page because the IsPlayingAudio flag indirectly depends on this.

        * media/muted-video-is-playing-audio.html: Un-mute the page.
        * platform/gtk/TestExpectations: Unflag now-passing test.

2018-01-10  Andy Estes  <aestes@apple.com>

        [Payment Request] Rename ApplePayMerchantValidationEvent to MerchantValidationEvent
        https://bugs.webkit.org/show_bug.cgi?id=181437
        <rdar://problem/36376481>

        Reviewed by Tim Horton.

        * http/tests/paymentrequest/payment-request-change-shipping-address.https.html:
        * http/tests/paymentrequest/payment-request-change-shipping-option.https.html:
        * http/tests/paymentrequest/payment-request-merchant-validation.https-expected.txt: Added.
        * http/tests/paymentrequest/payment-request-merchant-validation.https.html: Added.
        * http/tests/paymentrequest/resources/helpers.js:
        (async.getPaymentRequestResponse):
        * http/tests/paymentrequest/updateWith-method-pmi-handling.https.html:
        * http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https-expected.txt: Removed.
        * http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https.html: Removed.

2018-01-10  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for http/tests/misc/submit-post-keygen.html.
        https://bugs.webkit.org/show_bug.cgi?id=121331

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-10  Ryan Haddad  <ryanhaddad@apple.com>

        Mark swipe/pushstate-with-manual-scrollrestoration.html as failing.
        https://bugs.webkit.org/show_bug.cgi?id=181502

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-10  Ryan Haddad  <ryanhaddad@apple.com>

        Mark accessibility/mac/aria-multiple-liveregions-notification.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181494

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-10  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/misc/slow-loading-animated-image.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181479

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-10  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Canvas tab: throttle recording slider updates
        https://bugs.webkit.org/show_bug.cgi?id=180839
        <rdar://problem/36057849>

        Reviewed by Joseph Pecoraro

        * inspector/unit-tests/throttle-expected.txt: Added.
        * inspector/unit-tests/throttle.html: Added.
        Added function throttling tests.

2018-01-10  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION(r222507): Composition highlight doesn't render when using IME
        https://bugs.webkit.org/show_bug.cgi?id=181485
        <rdar://problem/35896516>

        Reviewed by Ryosuke Niwa.

        Add a new layout test to ensure that in the absence of custom composition underlines, a marked composition
        string appears different once it is confirmed.

        * editing/marked-text-appearance-expected-mismatch.html: Added.
        * editing/marked-text-appearance.html: Added.

2018-01-10  Chris Dumez  <cdumez@apple.com>

        Multiple http/wpt/beacon/contentextensions/ test are flaky.
        https://bugs.webkit.org/show_bug.cgi?id=179256
        <rdar://problem/35401978>

        Reviewed by Alex Christensen.

        Stop marking content extensions tests as flaky.

        * platform/mac-wk2/TestExpectations:

2018-01-10  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r213590): Swipe from edge to go to previous page is significantly slower than tapping back button on Twitter
        https://bugs.webkit.org/show_bug.cgi?id=181269
        <rdar://problem/35110344>

        Reviewed by Simon Fraser.

        * swipe/pushstate-with-manual-scrollrestoration-expected.txt: Added.
        * swipe/pushstate-with-manual-scrollrestoration.html: Added.
        Add a test (which previously would complain about taking too long)
        that using manual scroll position restoration and pushState together
        doesn't cause swipes to hang until the watchdog fires.

2018-01-10  Ryan Haddad  <ryanhaddad@apple.com>

        Skip http/tests/workers/service/cors-image-fetch.html.
        https://bugs.webkit.org/show_bug.cgi?id=181222

        Unreviewed test gardening.

        * TestExpectations:

2018-01-10  Youenn Fablet  <youenn@apple.com>

        Use no-cache fetch mode when loading main documents with location.reload()
        https://bugs.webkit.org/show_bug.cgi?id=181285
        <rdar://problem/36356831>

        Reviewed by Alex Christensen.

        * http/tests/inspector/network/har/har-page-expected.txt:
        * http/tests/inspector/network/har/har-page.html:

2018-01-10  Per Arne Vollan  <pvollan@apple.com>

        Mark accessibility/table-header-calculation-for-header-rows.html as failure on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=181501

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-10  Matt Lewis  <jlewis3@apple.com>

        Adjusted expectations for webrtc/video-unmute.html.
        https://bugs.webkit.org/show_bug.cgi?id=172879

        Unreviewed test gardening.

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

2018-01-10  Youenn Fablet  <youenn@apple.com>

        Skip http/wpt/service-workers/fetchEvent.https.html in Debug
        https://bugs.webkit.org/show_bug.cgi?id=181481

        Unreviewed.

        * TestExpectations:

2018-01-10  Matt Lewis  <jlewis3@apple.com>

        Marked http/tests/workers/service/service-worker-importScript.html as flaky on macOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=181097

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-10  Matt Lewis  <jlewis3@apple.com>

        Marked imported/w3c/web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html as flaky on macOS and iOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=181392

        Unreviewed test gardening.

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

2018-01-10  Per Arne Vollan  <pvollan@apple.com>

        [Win] Rebaseline test after r225366.

        Unreviewed test gardening.

        * platform/win/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt:

2018-01-10  Chris Dumez  <cdumez@apple.com>

        REGRESSION (r224301?): LayoutTest http/tests/workers/service/registration-task-queue-scheduling-1.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=179342
        <rdar://problem/35478161>

        Reviewed by Youenn Fablet.

        * TestExpectations:
        Unmark the test as flaky.

        * http/tests/workers/service/registration-task-queue-scheduling-1-expected.txt:
        * http/tests/workers/service/resources/registration-task-queue-scheduling-1-second-window.html:
        * http/tests/workers/service/resources/registration-task-queue-scheduling-1.js:
        Update test to register a scriptURL that actually fails. When registration succeeds, the test
        logs lines indicating that registration succeeded unexpectedly. Also, when registration
        succeeds, the registration of the top frame are no longer guaranteed to be resolved before
        the ones of the subframe (because it involves things like network loads).

2018-01-10  Chris Dumez  <cdumez@apple.com>

        Unreviewed, skip http/tests/workers/service/other_resources folder.

        It is a resources folder and does not contain tests.

        * TestExpectations:

2018-01-10  Per Arne Vollan  <pvollan@apple.com>

        [Win] Rebaseline tests after r225366.

        Unreviewed test gardening.

        * platform/win/svg/custom/feComponentTransfer-Discrete-expected.txt:
        * platform/win/svg/custom/feComponentTransfer-Gamma-expected.txt:
        * platform/win/svg/custom/feComponentTransfer-Linear-expected.txt:
        * platform/win/svg/custom/feComponentTransfer-Table-expected.txt:

2018-01-10  Philippe Normand  <pnormand@igalia.com>

        Unreviewed GTK gardening

        * platform/gtk/TestExpectations: Unflag now-passing test and skip
        mediastream tests, useless without any webrtc backend.

2018-01-10  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] REGRESSION(r226629): broke media/video-interruption-with-resume-allowing-play.html
        https://bugs.webkit.org/show_bug.cgi?id=181471
        <rdar://problem/36402323>

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations: These 2 tests shall pass now.

2018-01-10  Ms2ger  <Ms2ger@igalia.com>

        [GTK] Enable css2.1/20110323/c541-word-sp-000.htm.
        https://bugs.webkit.org/show_bug.cgi?id=94009

        Unreviewed test gardening.

        It was fixed in r226404.

        * platform/gtk/TestExpectations:

2018-01-10  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, updating expectations for media test timing out on GTK

        * platform/gtk/TestExpectations:

2018-01-10  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, updating expectations for media test timing out on GTK

        * platform/gtk/TestExpectations:

2018-01-10  Antti Koivisto  <antti@apple.com>

        Invalidate current element style on class change accurately
        https://bugs.webkit.org/show_bug.cgi?id=181210

        Reviewed by Zalan Bujtas.

        * fast/css/set-inline-style-recalc-expected.txt:
        * fast/css/set-inline-style-recalc.html:

2018-01-09  Antoine Quint  <graouts@apple.com>

        [Web Animations] Expose the id property on Animation
        https://bugs.webkit.org/show_bug.cgi?id=181450
        <rdar://problem/36383600>

        Reviewed by Dean Jackson.

        Mark all tests related to the "id" property as passing.

        * http/wpt/web-animations/interfaces/Animatable/animate-expected.txt:
        * http/wpt/web-animations/interfaces/Animation/id-expected.txt:
        * http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt:

2018-01-09  Chris Dumez  <cdumez@apple.com>

        Make service workers behave correctly with regards to Page Cache
        https://bugs.webkit.org/show_bug.cgi?id=181446
        <rdar://problem/36164291>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache-expected.txt: Added.
        * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html: Added.
        * http/tests/workers/service/client-removed-from-clients-while-in-page-cache-expected.txt: Added.
        * http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html: Added.
        * http/tests/workers/service/no-page-cache-when-controlled-expected.txt: Added.
        * http/tests/workers/service/no-page-cache-when-controlled.html: Added.
        * http/tests/workers/service/other_resources/test.html: Added.
        * http/tests/workers/service/resources/getClientCount-worker.js: Added.
        (event.then):

2018-01-09  Chris Dumez  <cdumez@apple.com>

        We should not return undefined for most properties of a detached Window
        https://bugs.webkit.org/show_bug.cgi?id=181416
        <rdar://problem/36162489>

        Reviewed by Ryosuke Niwa.

        Update existing tests to reflect behavior change.

        * fast/dom/Window/orphaned-frame-access-expected.txt:
        * fast/dom/Window/orphaned-frame-access.html:
        * fast/frames/detached-frame-property-expected.txt:
        * fast/frames/detached-frame-property.html:

2018-01-09  Darin Adler  <darin@apple.com>

        Further refinement to list item and counter code after "list-item" counter fix
        https://bugs.webkit.org/show_bug.cgi?id=181426

        Reviewed by Zalan Bujtas.

        * fast/css/counters/counter-list-item.html: Removed an extra newline at the end of
        the file.

2018-01-09  Myles C. Maxfield  <mmaxfield@apple.com>

        font-display:fallback can cause a visual flash (which is supposed to be impossible)
        https://bugs.webkit.org/show_bug.cgi?id=181374

        Reviewed by Simon Fraser.

        Move font-display tests into their common subfolder.

        * fast/text/font-display/block-finish-expected.html: Renamed from LayoutTests/fast/text/loading-block-finish-expected.html.
        * fast/text/font-display/block-finish.html: Renamed from LayoutTests/fast/text/loading-block-finish.html.
        * fast/text/font-display/block-nofinish-expected.html: Renamed from LayoutTests/fast/text/loading-block-nofinish-expected.html.
        * fast/text/font-display/block-nofinish.html: Renamed from LayoutTests/fast/text/loading-block-nofinish.html.
        * fast/text/font-display/failure-finish-expected.html: Renamed from LayoutTests/fast/text/loading-failure-finish-expected.html.
        * fast/text/font-display/failure-finish.html: Renamed from LayoutTests/fast/text/loading-failure-finish.html.
        * fast/text/font-display/failure-nofinish-expected.html: Renamed from LayoutTests/fast/text/loading-failure-nofinish-expected.html.
        * fast/text/font-display/failure-nofinish.html: Renamed from LayoutTests/fast/text/loading-failure-nofinish.html.
        * fast/text/font-display/swap-finish-expected.html: Renamed from LayoutTests/fast/text/loading-swap-finish-expected.html.
        * fast/text/font-display/swap-finish.html: Renamed from LayoutTests/fast/text/loading-swap-finish.html.
        * fast/text/font-display/swap-nofinish-expected.html: Renamed from LayoutTests/fast/text/loading-swap-nofinish-expected.html.
        * fast/text/font-display/swap-nofinish.html: Renamed from LayoutTests/fast/text/loading-swap-nofinish.html.
        * fast/text/font-display/swap-flash-expected.html: Added.
        * fast/text/font-display/swap-flash.html: Added.
        * platform/win/TestExpectations:

2018-01-09  Matt Lewis  <jlewis3@apple.com>

        Fixed test expectaions.

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2018-01-09  Antti Koivisto  <antti@apple.com>

        Blank page except for inner iframes because pending stylesheets cause style.isNotFinal() to be true
        https://bugs.webkit.org/show_bug.cgi?id=180940
        <rdar://problem/36116507>

        Reviewed by Darin Adler.

        * http/tests/local/loading-stylesheet-import-remove.html: Added.
        * http/tests/local/loading-stylesheet-import-remove-expected.html: Added.
        * http/tests/local/resources/slow-import.css: Added.

2018-01-09  Youenn Fablet  <youenn@apple.com>

        Make imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https.html robust to quota error
        https://bugs.webkit.org/show_bug.cgi?id=181404

        Reviewed by Alex Christensen.

        * TestExpectations:

2018-01-09  Youenn Fablet  <youenn@apple.com>

        [iOS Debug WK2] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=181087
        <rdar://problem/36188109>

        Reviewed by Chris Dumez.

        * platform/ios-wk2/TestExpectations: Removed flaky expectation.

2018-01-09  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [EME] Add layout test for clearKey CENC message event
        https://bugs.webkit.org/show_bug.cgi?id=180928

        Reviewed by Xabier Rodriguez-Calvar.

        Tests the reception of clearKey message event after the encrypted event and checks its KeyID.
        There are two tests: one with MSE playback and another with regular playback.

        * media/encrypted-media/clearKey/clearKey-message-cenc-event-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-message-cenc-event-mse-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-message-cenc-event-mse.html: Added.
            Test with MSE playback.
        * media/encrypted-media/clearKey/clearKey-message-cenc-event.html: Added.
            Test with regular playback.
        * media/encrypted-media/clearKey/encrypted-media-clearKey-handler.js: Added.
            This JavaScript file provides a simple clearKey EME implementation, checks the EME support, handles the "encrypted", "message" and 
            "keystatuseschange" events, and updates the CDM session with the right keys.
            This implementation allows to play an encrypted media (video or audio or both), it is used in this test by overloading the "onMessage" callback 
            by an other function that checks the 'message' event and stops the test.
        * media/encrypted-media/medias-enc.js:
            I take this opportunity to introduce some fixes:
            Rename "mimetype" field to "mimeType", this field is only used in "clearKey-encrypted-cenc-event-mse.html",
            thus it is easy to change it now.
            Change the KeyID of the encrypted video with the right value, it is used for first time in this test.
        * media/media-source/media-source-loader-simple.js:
            Use "mimeType" instead of "mimetype" as it is modified in "medias-enc.js".
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:

2018-01-09  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Check Image::m_image is not null in ImageLoader::decode()
        https://bugs.webkit.org/show_bug.cgi?id=180386
        <rdar://problem/34634483>

        Reviewed by Tim Horton.

        Add a new rejected case for decoding an image with an invalid URL.

        * fast/images/decode-static-image-reject-expected.txt:
        * fast/images/decode-static-image-reject.html:

2018-01-09  Ali Juma  <ajuma@chromium.org>

        Mark imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page.html as flaky
        https://bugs.webkit.org/show_bug.cgi?id=181436

        Reviewed by Frédéric Wang.

        Test gardening.

        * TestExpectations:
        Mark test that seems to have timing issues as flaky.

2018-01-09  Ali Juma  <ajuma@chromium.org>

        Implement VisualViewport API events
        https://bugs.webkit.org/show_bug.cgi?id=179386

        Reviewed by Frédéric Wang.

        Add tests for Visual Viewport API events. Test that a resize event is fired after
        pinch zoom and after window resize, and test that a scroll event is fired when the
        visual viewport is scrolled.

        * fast/visual-viewport/resize-event-fired-expected.txt: Added.
        * fast/visual-viewport/resize-event-fired-window-resized-expected.txt: Added.
        * fast/visual-viewport/resize-event-fired-window-resized.html: Added.
        * fast/visual-viewport/resize-event-fired.html: Added.
        * fast/visual-viewport/scroll-event-fired-expected.txt: Added.
        * fast/visual-viewport/scroll-event-fired.html: Added.
        * platform/gtk/TestExpectations:
        Skipped tests that use UIScriptController::zoomToScale, since this isn't implemented on GTK.
        * platform/ios/TestExpectations:
        Skipped test that resizes a window, since this isn't supported on iOS.
        * platform/win/TestExpectations:
        Skipped tests that use UIScriptController::zoomToScale, since this isn't implemented on Windows.

2018-01-09  Ryosuke Niwa  <rniwa@webkit.org>

        Release assert in addResourceTiming when a cache resource is requested during style recalc
        https://bugs.webkit.org/show_bug.cgi?id=181137
        <rdar://problem/35666574>

        Reviewed by Simon Fraser.

        Added a regression test for the crash.

        Also fixed test cases in rt-performance-extensions.js which were incorrectly asserting and assuming that
        resourcetimingbufferfull event will be fired when there are exactly the same number of entries as the buffer size.

        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull -crash-expected.txt: Added.
        * http/tests/performance/performance-resource-timing-resourcetimingbufferfull-crash.html: Added.
        * http/wpt/resource-timing/rt-performance-extensions.js: Fixed the test cases.

2018-01-08  Chris Nardi  <csnardi1@gmail.com>

        ::first-letter incorrectly selects grapheme pairs
        https://bugs.webkit.org/show_bug.cgi?id=181315

        Reviewed by Darin Adler.

        * fast/css/first-letter-punctuation-expected.html: Added.
        * fast/css/first-letter-punctuation.html:
        * platform/gtk/fast/css/first-letter-punctuation-expected.png: Removed.
        * platform/gtk/fast/css/first-letter-punctuation-expected.txt: Removed.
        * platform/ios/fast/css/first-letter-punctuation-expected.txt: Removed.
        * platform/mac/fast/css/first-letter-punctuation-expected.png: Removed.
        * platform/mac/fast/css/first-letter-punctuation-expected.txt: Removed.
        * platform/win/fast/css/first-letter-punctuation-expected.txt: Removed.

2018-01-08  Darin Adler  <darin@apple.com>

        Special list-item counter starts from an incorrect number for ::before and ::after
        https://bugs.webkit.org/show_bug.cgi?id=181084

        Reviewed by Zalan Bujtas.

        * fast/css/counters/counter-list-item-expected.html: Added.
        * fast/css/counters/counter-list-item.html: Added.

2018-01-08  Said Abou-Hallawa  <sabouhallawa@apple.com>

        A canvas should not be tainted if it draws a data URL SVGImage with a <foreignObject>
        https://bugs.webkit.org/show_bug.cgi?id=180301

        Reviewed by Dean Jackson.

        * svg/as-image/svg-canvas-data-url-svg-with-feimage-not-tainted-expected.txt: Added.
        * svg/as-image/svg-canvas-data-url-svg-with-feimage-not-tainted.html: Added.
        * svg/as-image/svg-canvas-data-url-svg-with-foreign-object-not-tainted-expected.txt: Added.
        * svg/as-image/svg-canvas-data-url-svg-with-foreign-object-not-tainted.html: Added.
        * svg/as-image/svg-canvas-data-url-svg-with-image-not-tainted-expected.txt: Added.
        * svg/as-image/svg-canvas-data-url-svg-with-image-not-tainted.html: Added.

2018-01-08  Matt Lewis  <jlewis3@apple.com>

        Marked imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181087

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2018-01-08  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r226385.

        The test introduced with this was a flaky since being added.

        Reverted changeset:

        "AX: when invert colors is on, double-invert certain media
        elements in UserAgentStyleSheet"
        https://bugs.webkit.org/show_bug.cgi?id=168447
        https://trac.webkit.org/changeset/226385

2018-01-08  Ryan Haddad  <ryanhaddad@apple.com>

        Skip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html
        https://bugs.webkit.org/show_bug.cgi?id=181223

        Unreviewed test gardening.

        * platform/wk2/TestExpectations:

2018-01-08  Matt Lewis  <jlewis3@apple.com>

        Marked http/wpt/cache-storage/cache-put-stream.https.any.html as flaky on macOS WK2.
        https://bugs.webkit.org/show_bug.cgi?id=181107

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-08  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [WinCairo] Add default port TestExpectations for wincairo
        https://bugs.webkit.org/show_bug.cgi?id=179221

        Reviewed by Alex Christensen.

        * platform/wincairo-win10/TestExpectations: Added.

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

        Stop exposing fetch and extendable events to window
        https://bugs.webkit.org/show_bug.cgi?id=181325

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/extendableEvent.https-expected.txt:
        * http/wpt/service-workers/extendableEvent.https.html:
        * http/wpt/service-workers/fetchEvent.https-expected.txt:
        * http/wpt/service-workers/fetchEvent.https.html:

2018-01-08  Antti Koivisto  <antti@apple.com>

        REGRESSION (r219145): Toggling layer borders on a static document no longer works immediately
        https://bugs.webkit.org/show_bug.cgi?id=176260
        <rdar://problem/34219966>

        Reviewed by Simon Fraser.

        * compositing/debug-borders-dynamic-expected.html: Added.
        * compositing/debug-borders-dynamic.html: Added.

2018-01-08  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [EME] Add layout test for InitData and InitDataType in CENC encrypted event
        https://bugs.webkit.org/show_bug.cgi?id=180430

        Reviewed by Xabier Rodriguez-Calvar.

        * TestExpectations:
        * media/content/encrypted/VideoClearKeyCenc.mp4: Added.
            This is a simple encrypted video file used for regular playback.
            It has been encrypted with BENTO4. https://www.bento4.com/

        * media/content/encrypted/segments/VideoClearKeyCenc-seg-0.mp4: Added.
            This is a simple encrypted video fragment used in MSE playback.
            It has been fragmented and encrypted with BENTO4. https://www.bento4.com/

        * media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse.html: Added.
            This is a test with MSE.

        * media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html: Added.
            This is a test with a regular playback.

        * media/encrypted-media/medias-enc.js: Added.
            This JavaScrit file lists the encrypted media wich will be used in encrypted-media tests.
            It gives all necessary informations about the encrypted media: path of the file or
            the path of the segments in MSE case, mimeType, initDataType and the encryption keys.

        * media/media-source/media-source-loader-simple.js: Added.
            This JavaScript file provides a simple MSE implementation, reads the segments of the media and appends them
            in the appropriate SourceBuffer.

        * platform/wpe/TestExpectations:

2018-01-08  Ms2ger  <Ms2ger@igalia.com>

        Update imagebitmap tests.
        https://bugs.webkit.org/show_bug.cgi?id=181379

        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-invalid-args-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:

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

        navigator.onLine does not work inside service workers
        https://bugs.webkit.org/show_bug.cgi?id=181079
        <rdar://problem/36178606>

        Reviewed by Darin Adler.

        * http/wpt/service-workers/online-worker.js: Added.
        (async.waitForOnlineEvent):
        (async.doTest):
        * http/wpt/service-workers/online.https-expected.txt: Added.
        * http/wpt/service-workers/online.https.html: Added.

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

        imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html is slow in Debug
        https://bugs.webkit.org/show_bug.cgi?id=181382

        Unreviewed.

        * TestExpectations:

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

        Unreviewed GTK gardening. Rebaseline test again after r226500.

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

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

        Unreviewed GTK gardening. Partially revert r224460.

        Two tests were incorrectly rebaselined in r224460.

        * platform/gtk/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt:
        * platform/gtk/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:

2018-01-07  Ms2ger  <Ms2ger@igalia.com>

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

        Reviewed by Darin Adler.

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

2018-01-07  Ryosuke Niwa  <rniwa@webkit.org>

        Reduce the precision of "high" resolution time to 1ms
        https://bugs.webkit.org/show_bug.cgi?id=180910
        <rdar://problem/36085943>

        Reviewed by Saam Barati.

        Add a flaky test expectation to imported/w3c/web-platform-tests/workers/worker-performance.worker.html
        due to a test bug. The test fix is tracked in https://github.com/w3c/web-platform-tests/pull/8711

        * TestExpectations:

2018-01-06  Simon Fraser  <simon.fraser@apple.com>

        Possible crash computing event regions
        https://bugs.webkit.org/show_bug.cgi?id=181368
        rdar://problem/34847081

        Reviewed by Zalan Bujtas.

        * fast/events/event-handler-regions-layout-expected.txt: Added.
        * fast/events/event-handler-regions-layout.html: Added.

2018-01-06  Simon Fraser  <simon.fraser@apple.com>

        Crash under RenderLayer::scrollTo() with marquee
        https://bugs.webkit.org/show_bug.cgi?id=181349
        rdar://problem/36190168

        Reviewed by Zalan Bujtas.

        * fast/scrolling/marquee-scroll-crash-expected.txt: Added.
        * fast/scrolling/marquee-scroll-crash.html: Added.

2018-01-05  Dean Jackson  <dino@apple.com>

        Accurately clip copyTexImage2D and copyTexSubImage2D
        https://bugs.webkit.org/show_bug.cgi?id=181356
        <rdar://problem/35083877>

        Reviewed by Eric Carlson.

        * fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt: Added.
        * fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input.html: Added.

2018-01-06  Yusuke Suzuki  <utatane.tea@gmail.com>

        Object.getOwnPropertyNames includes "arguments" and "caller" for bound functions
        https://bugs.webkit.org/show_bug.cgi?id=181321

        Reviewed by Saam Barati.

        * inspector/model/remote-object-get-properties-expected.txt:
        * inspector/runtime/getProperties-expected.txt:
        * js/script-tests/strict-throw-type-error.js:
        * js/strict-throw-type-error-expected.txt:

2018-01-05  Youenn Fablet  <youenn@apple.com>

        Implement Cache API partitioning based on ClientOrigin
        https://bugs.webkit.org/show_bug.cgi?id=181240

        Reviewed by Alex Christensen.

        Beefing up test to ensure that client and top origins are taken into consideration.

        * http/tests/cache-storage/cache-origins.https-expected.txt:
        * http/tests/cache-storage/cache-origins.https.html:
        * http/tests/cache-storage/cache-clearing-origin.https-expected.txt:
        * http/tests/cache-storage/cache-clearing-origin.https.html:

2017-12-21  Ryan Haddad  <ryanhaddad@apple.com>

        Mark fast/workers/worker-terminate.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181098

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-01-05  Per Arne Vollan  <pvollan@apple.com>

        Mark mathml/opentype/horizontal-munderover.html as failure on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=181346

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-01-05  Youenn Fablet  <youenn@apple.com>

        Skip LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html
        https://bugs.webkit.org/show_bug.cgi?id=181329

        Unreviewed.
        SharedWorker is not supported.

        * TestExpectations:

2018-01-05  Matt Lewis  <jlewis3@apple.com>

        Marked fast/mediastream/MediaStream-MediaElement-setObject-null.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=181069

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-01-05  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r226401.

        This caused timeouts on multiple platforms.

        Reverted changeset:

        "Implement Cache API partitioning based on ClientOrigin"
        https://bugs.webkit.org/show_bug.cgi?id=181240
        https://trac.webkit.org/changeset/226401

2018-01-05  Joseph Pecoraro  <pecoraro@apple.com>

        ServiceWorkers: Enable UserTiming / ResourceTiming
        https://bugs.webkit.org/show_bug.cgi?id=181297
        <rdar://problem/36307306>

        Reviewed by Youenn Fablet.

        * http/tests/workers/service/resources/data1.txt: Added.
        * http/tests/workers/service/resources/data2.txt: Added.
        Resources to load from a service-worker.

        * http/tests/workers/service/resources/service-worker-resource-timing.js: Added.
        * http/tests/workers/service/service-worker-resource-timing.https-expected.txt: Added.
        * http/tests/workers/service/service-worker-resource-timing.https.html: Added.
        Test that a ServiceWorker can produce resource entries for a few
        different kinds of loads (CacheStorage load, and a fetch).

        * http/tests/workers/service/resources/service-worker-user-timing.js: Added.
        * http/tests/workers/service/service-worker-user-timing.https-expected.txt: Added.
        * http/tests/workers/service/service-worker-user-timing.https.html: Added.
        Test that a ServiceWorker can produce a mark/measure entries.

2018-01-05  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE][GTK] Unreviewed gardening

        Unskip svg/hittest/svg-shapes-non-scale-stroke.html, passing after
        r226443.
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

2018-01-05  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Unreviewed gardening

        * platform/wpe/TestExpectations: Unskip two tests passing after r226404.

2018-01-05  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Rebaseline test expectations after r226404

        Unreviewed gardening.

        * platform/wpe/css1/font_properties/font_size-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_indent-expected.txt:
        * platform/wpe/css1/text_properties/word_spacing-expected.txt:
        * platform/wpe/css1/units/length_units-expected.txt:
        * platform/wpe/css2.1/t040302-c61-ex-len-00-b-a-expected.txt:
        * platform/wpe/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt:
        * platform/wpe/css2.1/t1008-c44-ln-box-02-d-ag-expected.txt:
        * platform/wpe/css2.1/t100801-c544-valgn-01-d-ag-expected.txt:
        * platform/wpe/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
        * platform/wpe/css2.1/t100801-c548-ln-ht-02-b-ag-expected.txt:
        * platform/wpe/css2.1/t1507-c526-font-sz-02-b-a-expected.txt:
        * platform/wpe/css2.1/t1601-c547-indent-00-b-a-expected.txt:
        * platform/wpe/css2.1/t1604-c542-letter-sp-00-b-a-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt:
        * platform/wpe/svg/custom/alignment-baseline-modes-expected.txt:
        * platform/wpe/svg/custom/dominant-baseline-modes-expected.txt:
        * platform/wpe/tables/mozilla/bugs/bug55527-expected.txt:

2018-01-05  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Cairo] Canvas: Path::clear should clear its transform
        https://bugs.webkit.org/show_bug.cgi?id=181320

        Reviewed by Carlos Garcia Campos.

        * fast/canvas/reset-scaling-by-height-change-expected.txt: Added.
        * fast/canvas/reset-scaling-by-height-change.html: Added.

2018-01-04  Joseph Pecoraro  <pecoraro@apple.com>

        REGRESSION (r225709): Web Inspector: CSS Source maps not loading
        https://bugs.webkit.org/show_bug.cgi?id=181314
        <rdar://problem/36177620>

        Reviewed by Brian Burg.

        * http/tests/inspector/network/resources/script-with-sourcemap.js: Added.
        * http/tests/inspector/network/resources/script-with-sourcemap.js.map: Added.
        * http/tests/inspector/network/resources/stylesheet-with-sourcemap.css: Added.
        * http/tests/inspector/network/resources/stylesheet-with-sourcemap.css.map: Added.
        * http/tests/inspector/network/resources/stylesheet-with-sourcemap.scss: Added.
        Add a real script minified with a source map.
        Add a real scss stylesheet compiled to css with a source map.

        * http/tests/inspector/network/source-map-loads-expected.txt: Added.
        * http/tests/inspector/network/source-map-loads.html: Added.
        Test that we load source maps for resources with sourceMappingURL directives.

2018-01-04  Chris Fleizach  <cfleizach@apple.com>

        AX: Implement updated CSS3 Speech for 'speak' and 'speak-as' properties
        https://bugs.webkit.org/show_bug.cgi?id=180361

        Reviewed by Zalan Bujtas.

        * accessibility/mac/css-speech-speak-expected.txt:
        * accessibility/mac/css-speech-speak.html:
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-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/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2018-01-04  Brian Burg  <bburg@apple.com>

        Web Inspector: Capture Element Screenshot looks fuzzy
        https://bugs.webkit.org/show_bug.cgi?id=175734
        <rdar://problem/33803377>

        Reviewed by Joseph Pecoraro and Simon Fraser.

        * inspector/page/hidpi-snapshot-size-expected.txt: Added.
        * inspector/page/hidpi-snapshot-size.html: Added.

2018-01-04  Brian Burg  <bburg@apple.com>

        Web Inspector: add RemoteObject.fetchProperties and some basic tests for RemoteObject API
        https://bugs.webkit.org/show_bug.cgi?id=180945

        Reviewed by Joseph Pecoraro.

        Add new test coverage for existing RemoteObject.prototype.getProperty.
        Add new test coverage for new method RemoteObject.prototype.fetchProperties.
        I didn't add test coverage for callFunction, as I had to stop somewhere.

        * inspector/model/remote-object-api-expected.txt: Added.
        * inspector/model/remote-object-api.html: Added.

2018-01-04  Brian Burg  <bburg@apple.com>

        Web Inspector: add TestPage.debug() to inspect evaluations being sent to Inspector page
        https://bugs.webkit.org/show_bug.cgi?id=181005

        Rubber-stamped by Joseph Pecoraro.

        When TestPage.debug() is called, dump out all code that is sent to be evaluated in
        the inspector page. This is useful for debugging initialization and InspectorTest.awaitEvent.

        * http/tests/inspector/resources/inspector-test.js:
        (runTest):
        (TestPage.debug):
        (TestPage.evaluateInWebInspector):
        (TestPage.dispatchEventToFrontend):

        * http/tests/inspector/network/har/har-page-expected.txt:
        Rebaseline, as this depends on the size of inspector-test.js. Removing this
        fragile test expectation behavior is tracked by https://bugs.webkit.org/show_bug.cgi?id=181300.


2018-01-04  Zalan Bujtas  <zalan@apple.com>

        WebContent process crashes while loading https://www.classicspecs.com
        https://bugs.webkit.org/show_bug.cgi?id=181290
        <rdar://problem/36225906>

        Reviewed by Simon Fraser.

        * fast/block/float/crash-when-intruding-float-has-anonymous-parent-and-detach-expected.txt: Added.
        * fast/block/float/crash-when-intruding-float-has-anonymous-parent-and-detach.html: Added.

2018-01-04  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Add Mock screen capture source
        https://bugs.webkit.org/show_bug.cgi?id=181291
        <rdar://problem/36298164>

        Reviewed by Dean Jackson.

        * http/tests/media/media-stream/get-display-media-prompt-expected.txt: Added.
        * http/tests/media/media-stream/get-display-media-prompt.html: Added.

2018-01-04  John Wilander  <wilander@apple.com>

        Storage Access API: Remove JavaScript confirm() prompt from Document::requestStorageAccess()
        https://bugs.webkit.org/show_bug.cgi?id=181276
        <rdar://problem/36290463>

        Reviewed by Alex Christensen.

        Two test cases are deleted since the user has no way
        to deny access through a prompt anymore. The rest
        are updated to not expect a "CONFIRM:..." text output.

        * http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt: Removed.
        * http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe.html: Removed.
        * http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt: Removed.
        * http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe.html: Removed.
        * http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-expected.txt:
        * http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt:
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt:
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt:
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-recent-user-interaction-expected.txt:
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt:
        * platform/mac-wk2/TestExpectations:
            Removed entries for the deleted test cases.

2018-01-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Issues with Ahem's ex / x-height
        https://bugs.webkit.org/show_bug.cgi?id=180581

        Reviewed by Michael Catanzaro.

        Unskip two tests that are now passing and rebaseline others.

        * platform/gtk/TestExpectations:
        * platform/gtk/css1/font_properties/font_size-expected.png:
        * platform/gtk/css1/font_properties/font_size-expected.txt:
        * platform/gtk/css1/text_properties/letter_spacing-expected.png:
        * platform/gtk/css1/text_properties/letter_spacing-expected.txt:
        * platform/gtk/css1/text_properties/line_height-expected.png:
        * platform/gtk/css1/text_properties/line_height-expected.txt:
        * platform/gtk/css1/text_properties/text_indent-expected.png:
        * platform/gtk/css1/text_properties/text_indent-expected.txt:
        * platform/gtk/css1/text_properties/word_spacing-expected.png:
        * platform/gtk/css1/text_properties/word_spacing-expected.txt:
        * platform/gtk/css1/units/length_units-expected.png:
        * platform/gtk/css1/units/length_units-expected.txt:
        * platform/gtk/css2.1/t040302-c61-ex-len-00-b-a-expected.png:
        * platform/gtk/css2.1/t040302-c61-ex-len-00-b-a-expected.txt:
        * platform/gtk/css2.1/t040302-c61-rel-len-00-b-ag-expected.png:
        * platform/gtk/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt:
        * platform/gtk/css2.1/t1008-c44-ln-box-02-d-ag-expected.png:
        * platform/gtk/css2.1/t1008-c44-ln-box-02-d-ag-expected.txt:
        * platform/gtk/css2.1/t100801-c544-valgn-01-d-ag-expected.png:
        * platform/gtk/css2.1/t100801-c544-valgn-01-d-ag-expected.txt:
        * platform/gtk/css2.1/t100801-c544-valgn-03-d-agi-expected.png:
        * platform/gtk/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
        * platform/gtk/css2.1/t100801-c548-ln-ht-02-b-ag-expected.png:
        * platform/gtk/css2.1/t100801-c548-ln-ht-02-b-ag-expected.txt:
        * platform/gtk/css2.1/t1507-c526-font-sz-02-b-a-expected.png:
        * platform/gtk/css2.1/t1507-c526-font-sz-02-b-a-expected.txt:
        * platform/gtk/css2.1/t1601-c547-indent-00-b-a-expected.png:
        * platform/gtk/css2.1/t1601-c547-indent-00-b-a-expected.txt:
        * platform/gtk/css2.1/t1604-c542-letter-sp-00-b-a-expected.png:
        * platform/gtk/css2.1/t1604-c542-letter-sp-00-b-a-expected.txt:
        * platform/gtk/editing/selection/caret-ltr-2-expected.png:
        * platform/gtk/editing/selection/caret-ltr-2-expected.txt:
        * platform/gtk/editing/selection/caret-ltr-2-left-expected.png:
        * platform/gtk/editing/selection/caret-ltr-2-left-expected.txt:
        * platform/gtk/editing/selection/caret-ltr-expected.png:
        * platform/gtk/editing/selection/caret-ltr-expected.txt:
        * platform/gtk/editing/selection/caret-ltr-right-expected.png:
        * platform/gtk/editing/selection/caret-ltr-right-expected.txt:
        * platform/gtk/editing/selection/caret-rtl-2-expected.png:
        * platform/gtk/editing/selection/caret-rtl-2-expected.txt:
        * platform/gtk/editing/selection/caret-rtl-2-left-expected.png:
        * platform/gtk/editing/selection/caret-rtl-2-left-expected.txt:
        * platform/gtk/editing/selection/caret-rtl-expected.png:
        * platform/gtk/editing/selection/caret-rtl-expected.txt:
        * platform/gtk/editing/selection/caret-rtl-right-expected.png:
        * platform/gtk/editing/selection/caret-rtl-right-expected.txt:
        * platform/gtk/editing/selection/select-across-readonly-input-1-expected.png:
        * platform/gtk/editing/selection/select-across-readonly-input-1-expected.txt:
        * platform/gtk/editing/selection/select-across-readonly-input-2-expected.png:
        * platform/gtk/editing/selection/select-across-readonly-input-2-expected.txt:
        * platform/gtk/editing/selection/select-across-readonly-input-3-expected.png:
        * platform/gtk/editing/selection/select-across-readonly-input-3-expected.txt:
        * platform/gtk/editing/selection/select-across-readonly-input-4-expected.png:
        * platform/gtk/editing/selection/select-across-readonly-input-4-expected.txt:
        * platform/gtk/editing/selection/select-across-readonly-input-5-expected.png:
        * platform/gtk/editing/selection/select-across-readonly-input-5-expected.txt:
        * platform/gtk/editing/selection/vertical-lr-ltr-extend-line-backward-br-expected.png:
        * platform/gtk/editing/selection/vertical-lr-ltr-extend-line-backward-br-expected.txt:
        * platform/gtk/editing/selection/vertical-lr-ltr-extend-line-forward-br-expected.png:
        * platform/gtk/editing/selection/vertical-lr-ltr-extend-line-forward-br-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-backward-br-expected.png:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-backward-br-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-backward-p-expected.png:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-backward-p-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-forward-br-expected.png:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-forward-br-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-forward-p-expected.png:
        * platform/gtk/editing/selection/vertical-rl-ltr-extend-line-forward-p-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.png:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.png:
        * platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt:
        * platform/gtk/fast/css/bidi-override-in-anonymous-block-expected.png:
        * platform/gtk/fast/css/bidi-override-in-anonymous-block-expected.txt:
        * platform/gtk/fast/css/ex-after-font-variant-expected.png:
        * platform/gtk/fast/css/ex-after-font-variant-expected.txt:
        * platform/gtk/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt:
        * platform/gtk/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
        * platform/gtk/fast/forms/minWidthPercent-expected.png:
        * platform/gtk/fast/forms/minWidthPercent-expected.txt:
        * platform/gtk/fast/lists/008-expected.png:
        * platform/gtk/fast/lists/008-expected.txt:
        * platform/gtk/fast/lists/008-vertical-expected.png:
        * platform/gtk/fast/lists/008-vertical-expected.txt:
        * platform/gtk/fast/overflow/overflow-rtl-expected.png:
        * platform/gtk/fast/overflow/overflow-rtl-expected.txt:
        * platform/gtk/fast/overflow/overflow-rtl-vertical-expected.png:
        * platform/gtk/fast/overflow/overflow-rtl-vertical-expected.txt:
        * platform/gtk/fast/text/vertical-rl-rtl-linebreak-expected.png:
        * platform/gtk/fast/text/vertical-rl-rtl-linebreak-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/coords-units-03-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt: Added.
        * platform/gtk/svg/custom/alignment-baseline-modes-expected.png:
        * platform/gtk/svg/custom/alignment-baseline-modes-expected.txt:
        * platform/gtk/svg/custom/dominant-baseline-modes-expected.png:
        * platform/gtk/svg/custom/dominant-baseline-modes-expected.txt:
        * platform/gtk/tables/mozilla/bugs/bug55527-expected.png:
        * platform/gtk/tables/mozilla/bugs/bug55527-expected.txt:

2018-01-04  Minsheng Liu  <lambda@liu.ms>

        Add a test to ensure <mo> paints its leading and trailing space as specified in its attributes.
        https://bugs.webkit.org/show_bug.cgi?id=170272

        Reviewed by Frédéric Wang.

        A reference test is added to ensure <mo> paints its leading and trailing space as specified in its attributes.

        The bug itself is fixed as a part of 179682.
        https://bugs.webkit.org/show_bug.cgi?id=179682

        * mathml/presentation/mo-paint-lspace-rspace-expected.html: Added.
        * mathml/presentation/mo-paint-lspace-rspace.html: Added.

2018-01-04  Youenn Fablet  <youenn@apple.com>

        Implement Cache API partitioning based on ClientOrigin
        https://bugs.webkit.org/show_bug.cgi?id=181240

        Reviewed by Alex Christensen.

        Beefing up test to ensure that client and top origins are taken into consideration.

        * http/tests/cache-storage/cache-origins.https-expected.txt:
        * http/tests/cache-storage/cache-origins.https.html:
        * http/tests/cache-storage/cache-clearing-origin.https-expected.txt:
        * http/tests/cache-storage/cache-clearing-origin.https.html:

2018-01-03  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Attachment Support] Add plumbing for starting a drag with promised blob data
        https://bugs.webkit.org/show_bug.cgi?id=181201

        Reviewed by Tim Horton.

        Remove a WK1 LayoutTest testing drag and drop of an attachment element into a contenteditable. This test no
        longer passes because the implementation of attachment dragging on macOS is not yet implemented. Subsequent
        patches will test this scenario once again, but as a WK2 macOS drag and drop API test.

        * editing/pasteboard/drag-and-drop-attachment-contenteditable-expected.txt: Removed.
        * editing/pasteboard/drag-and-drop-attachment-contenteditable.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/win/TestExpectations:

2018-01-03  John Wilander  <wilander@apple.com>

        Storage Access API: Refactor XPC for access removal to go straight from the web process to the network process
        https://bugs.webkit.org/show_bug.cgi?id=181270
        <rdar://problem/36289544>

        Reviewed by Alex Christensen.

        This change refactors how the web process tells the network process
        to remove storage access. Previously, this was done over the UI process
        just like requests for storage access. But since no further reasoning
        is needed, the message should go straight from the web process to the
        network process for performance reasons and to minimize the risk of a
        race.

        As a consequence, the XPC code for storage access removal in the UI
        process is deleted.

        * platform/mac-wk2/TestExpectations:
            Re-enables the test for this code path.

2018-01-03  Michael Saboff  <msaboff@apple.com>

        Disable SharedArrayBuffers from Web API
        https://bugs.webkit.org/show_bug.cgi?id=181266

        Reviewed by Saam Barati.

        Disabled SharedArrayBuffer tests.

        * TestExpectations:

2018-01-03  James Craig  <jcraig@apple.com>

        AX: when invert colors is on, double-invert certain media elements in UserAgentStyleSheet
        https://bugs.webkit.org/show_bug.cgi?id=168447
        <rdar://problem/30559874>

        Reviewed by Simon Fraser.

        Double-invert video when platform "invert colors" setting is enabled. Behavior matches 
        current "Smart Invert" feature of Safari Reader on macOS/iOS and other iOS native apps.

        * TestExpectations: Platform setting only available on Mac and iOS.
        * accessibility/smart-invert-expected.txt: Added. 
        * accessibility/smart-invert-reference-expected.html: Added.
        * accessibility/smart-invert-reference.html: Added. Ref to ensure invert and blur filters render as expected.
        * accessibility/smart-invert.html: Added. Computed expectatons of filter property text values.
        * platform/ios-wk2/TestExpectations: Runs on iOS.
        * platform/mac-wk2/TestExpectations: Runs on Mac.

2018-01-03  Alexey Proskuryakov  <ap@apple.com>

        Update expectations for some range tests.
        Cf. https://bugs.webkit.org/show_bug.cgi?id=144682 and rdar://problem/34716163

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

2018-01-03  Simon Fraser  <simon.fraser@apple.com>

        feLighting is broken with primitiveUnits="objectBoundingBox"
        https://bugs.webkit.org/show_bug.cgi?id=181197

        Reviewed by Tim Horton.
        
        Ref tests with primitiveUnits=objectBoundingBox for feSpotLight and fePointLight.

        * svg/filters/feDiffuseLighting-fePointLight-primitiveUnits-objectBoundingBox-expected.svg: Added.
        * svg/filters/feDiffuseLighting-fePointLight-primitiveUnits-objectBoundingBox.svg: Added.
        * svg/filters/feDiffuseLighting-feSpotLight-primitiveUnits-objectBoundingBox-expected.svg: Added.
        * svg/filters/feDiffuseLighting-feSpotLight-primitiveUnits-objectBoundingBox.svg: Added.
        * svg/filters/feSpecularLighting-fePointLight-primitiveUnits-objectBoundingBox-expected.svg: Added.
        * svg/filters/feSpecularLighting-fePointLight-primitiveUnits-objectBoundingBox.svg: Added.

2018-01-03  Antti Koivisto  <antti@apple.com>

        Crash beneath CSSValue::equals @ csas.cz
        https://bugs.webkit.org/show_bug.cgi?id=181243
        <rdar://problem/35990826>

        Reviewed by Alex Christensen.

        * fast/text/oblique-degree-equals-crash-expected.txt: Added.
        * fast/text/oblique-degree-equals-crash.html: Added.

2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Slow open time enumerating system fonts (FontCache::systemFontFamilies)
        https://bugs.webkit.org/show_bug.cgi?id=180979
        <rdar://problem/36146670>

        Reviewed by Matt Baker.

        * inspector/css/get-system-fonts.html:
        Cleanup the test a bit.

2018-01-03  Simon Fraser  <simon.fraser@apple.com>

        SVG lighting filter lights are in the wrong coordinate system
        https://bugs.webkit.org/show_bug.cgi?id=181147

        Reviewed by Zalan Bujtas.

        * svg/filters/fePointLight-coordinates-expected.svg: Added.
        * svg/filters/fePointLight-coordinates.svg: Added.
        * svg/filters/feSpotLight-coordinates-expected.svg: Added.
        * svg/filters/feSpotLight-coordinates.svg: Added.
        * svg/filters/hidpi/fePointLight-coordinates-expected.svg: Added.
        * svg/filters/hidpi/fePointLight-coordinates.svg: Added.
        * svg/filters/hidpi/feSpotLight-coordinates-expected.svg: Added.
        * svg/filters/hidpi/feSpotLight-coordinates.svg: Added.

2018-01-03  Youenn Fablet  <youenn@apple.com>

        Select service worker for documents with data/blob URLS
        https://bugs.webkit.org/show_bug.cgi?id=181213

        Reviewed by Alex Christensen.

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

2018-01-03  Ms2ger  <Ms2ger@igalia.com>

        [GTK] Remove crash annotation for createImageBitmap-invalid-args.html.
        https://bugs.webkit.org/show_bug.cgi?id=181238

        Unreviewed test gardening.

        I forgot to remove this when fixing the bug.

        * platform/gtk/TestExpectations:

2018-01-03  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r226352.

        Breaks Sierra and El Capitan builds.

        Reverted changeset:

        "Web Inspector: Slow open time enumerating system fonts
        (FontCache::systemFontFamilies)"
        https://bugs.webkit.org/show_bug.cgi?id=180979
        https://trac.webkit.org/changeset/226352

2018-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Crash destroying WebCore::FileMonitor
        https://bugs.webkit.org/show_bug.cgi?id=181138

        Reviewed by Michael Catanzaro.

        Remove test expectations associated to this bug.

        * platform/gtk/TestExpectations:

2018-01-02  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Slow open time enumerating system fonts (FontCache::systemFontFamilies)
        https://bugs.webkit.org/show_bug.cgi?id=180979
        <rdar://problem/36146670>

        Reviewed by Matt Baker.

        * inspector/css/get-system-fonts.html:
        Cleanup the test a bit.

2018-01-02  Michael Catanzaro  <mcatanzaro@igalia.com>

        REGRESSION(r223253): Broke ResourceLoadStatistics layout tests for non-Cocoa ports
        https://bugs.webkit.org/show_bug.cgi?id=181231

        Reviewed by Alex Christensen.

        Unskip the tests.

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

2018-01-02  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed WPE test gardening.

        * platform/wpe/TestExpectations:

2018-01-02  Youenn Fablet  <youenn@apple.com>

        Memory cache should not reuse resources with different credential fetch option
        https://bugs.webkit.org/show_bug.cgi?id=181212

        Reviewed by Alex Christensen.

        * TestExpectations: Removing test flakiness expectation.

2018-01-02  Jiewen Tan  <jiewen_tan@apple.com>

        Update Credential Management API for WebAuthentication
        https://bugs.webkit.org/show_bug.cgi?id=181082
        <rdar://problem/36055239>

        Reviewed by Brent Fulgham.

        This patch moves original tests for Credential Management API to http/wpt/ to better integrate
        with web-platform-tests infrastructure. Hopefully this will help us later on contribute tests
        back to W3C.

        * credentials/idlharness-expected.txt: Removed.
        * credentials/idlharness.html: Removed.
        * fast/dom/navigator-detached-no-crash-expected.txt:
        * http/wpt/credential-management/credentialscontainer-create-basics.https-expected.txt: Added.
        * http/wpt/credential-management/credentialscontainer-create-basics.https.html: Added.
        * http/wpt/credential-management/credentialscontainer-get-basics.https-expected.txt: Added.
        * http/wpt/credential-management/credentialscontainer-get-basics.https.html: Added.
        * http/wpt/credential-management/credentialscontainer-preventSilentAccess-basics.https-expected.txt: Added.
        * http/wpt/credential-management/credentialscontainer-preventSilentAccess-basics.https.html: Added.
        * http/wpt/credential-management/idl.https-expected.txt: Added.
        * http/wpt/credential-management/idl.https.html: Added.
        * platform/gtk/TestExpectations:
        * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/win/TestExpectations:
        * platform/win/fast/dom/navigator-detached-no-crash-expected.txt:

2018-01-02  Ms2ger  <Ms2ger@igalia.com>

        Remove obsolete expectations for updated imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html.
        https://bugs.webkit.org/show_bug.cgi?id=172255

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:

2018-01-02  Oleksandr Skachkov  <gskachkov@gmail.com>

        WebAssembly: sending module to iframe fails
        https://bugs.webkit.org/show_bug.cgi?id=179263

        Reviewed by JF Bastien.

        * platform/ios-simulator/TestExpectations:
        * platform/win/TestExpectations:
        * resources/wasm-builder.js: Renamed from LayoutTests/workers/wasm-resources/builder.js.
        * wasm/iframe-parent-postmessage-expected.txt: Added.
        * wasm/iframe-parent-postmessage.html: Added.
        * wasm/iframe-postmessage-expected.txt: Added.
        * wasm/iframe-postmessage.html: Added.
        * wasm/resources/frame-parent.html: Added.
        * wasm/resources/frame.html: Added.
        * wasm/resources/load_wasm.js: Added.
        (createWasmModule):
        * wasm/window-postmessage-expected.txt: Added.
        * wasm/window-postmessage.html: Added.
        * workers/wasm-mem-post-message.html:

2018-01-02  Ms2ger  <Ms2ger@igalia.com>

        [WPE] Update some test expectations
        https://bugs.webkit.org/show_bug.cgi?id=181211

        Unreviewed test gardening.

        * platform/wpe/TestExpectations: disable more SW tests.
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
          rebaseline to match the features enabled on the bot.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/encrypted-media-default-feature-policy.https.sub-expected.txt:
          rebaseline for r225963.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
          rebaseline for r226162.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
          rebaseline for r226162.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
          Added: rebaseline to match the features enabled on the bot.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
          Added: rebaseline to match the features enabled on the bot.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
          Added: rebaseline to match the features enabled on the bot.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:
          Added: rebaseline to match the features enabled on the bot.

== Rolled over to ChangeLog-2018-01-01 ==
