2018-04-26  Sihui Liu  <sihui_liu@apple.com>

        [iOS] LayoutTest http/tests/quicklook/hide-referer-on-navigation.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=184825
        <rdar://problem/38924997>

        Reviewed by Geoffrey Garen.

        Policy decisions are made asynchronously now, so we need to set the async flag of this test. 

        * http/tests/quicklook/hide-referer-on-navigation.html:

2018-04-25  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/workers/worker-importScripts-banned-mimetype.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184800

        Unreviewed test gardening.

        * TestExpectations:

2018-04-26  Youenn Fablet  <youenn@apple.com>

        CORS preflight checker should add a console message when preflight load is blocked
        https://bugs.webkit.org/show_bug.cgi?id=185021

        Reviewed by Chris Dumez.

        * TestExpectations: Skipping console JS logging for some WPT tests to keep them consistent between WK1 and WK2.
        * http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt:
        * http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Removed.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Removed.
        * platform/mac-wk1/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Removed.
        * platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Removed.
        * platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Removed.
        * platform/win/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Removed.

2018-04-26  Youenn Fablet  <youenn@apple.com>

        Make cross origin redirection error messages consistent between SubresourceLoader and NetworkLoadChecker
        https://bugs.webkit.org/show_bug.cgi?id=185023

        Reviewed by Chris Dumez.

        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt:
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Removed.
        * platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Removed.
        * platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Removed.
        * platform/win/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Removed.
        * platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Removed.
        * platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Removed.

2018-04-25  Megan Gardner  <megan_gardner@apple.com>

        Activate selection when interacting with editable content
        https://bugs.webkit.org/show_bug.cgi?id=185017

        Reviewed by Tim Horton.
        
        Fixed double-tap-on-editable-and-noneditable test, as it was not actually written correctly.
        Should actually double tap on correct content and check for the correct output now.
        Added two more tests to make sure that selections really are happening in editable content. 

        * fast/events/touch/ios/double-tap-on-editable-and-noneditable.html:
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-expected.txt: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection.html: Added.
        
2018-04-25  Brent Fulgham  <bfulgham@apple.com>

        Add port 548 (afpovertcp) to port blacklist
        https://bugs.webkit.org/show_bug.cgi?id=185000
        <rdar://problem/39540481>

        Reviewed by David Kilzer.

        Update test and expectations for new port.

        * platform/gtk/security/block-test-expected.txt:
        * platform/mac/security/block-test-expected.txt:
        * platform/wpe/security/block-test-expected.txt:
        * security/block-test-expected.txt:
        * security/block-test.html:

2018-04-26  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [WPE] Gardening of tests for the WPE Debug bot.

        Mark tests timing out.
        An attempt to make the new WPE debug bot not abort early.

        * platform/gtk/TestExpectations: workers/bomb.html for debug was skipped in the root expectations file,
          but we were overriding it to simply "slow" here because we missed the tag for release.
          Let's put both expectations together to make this clearer.
        * platform/wpe/TestExpectations: Ditto.

2018-04-26  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement Intl.PluralRules
        https://bugs.webkit.org/show_bug.cgi?id=184312

        Reviewed by JF Bastien.

        * js/intl-pluralrules-expected.txt: Added.
        * js/intl-pluralrules.html: Added.
        * js/script-tests/intl-pluralrules.js: Added.
        * platform/win/TestExpectations: Disabled Intl.PluralRules tests on win.

2018-04-25  Youenn Fablet  <youenn@apple.com>

        Use NetworkLoadChecker for all subresource loads except fetch/XHR
        https://bugs.webkit.org/show_bug.cgi?id=184870
        <rdar://problem/39370034>

        Reviewed by Chris Dumez.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
        * http/tests/security/cross-origin-xsl-BLOCKED-expected.txt:
        * http/tests/security/cross-origin-xsl-redirect-BLOCKED-expected.txt:
        * http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt:
        * http/tests/security/worker-cross-origin-expected.txt:
        * http/tests/security/xss-DENIED-xml-external-entity-expected.txt:
        * http/tests/security/xss-DENIED-xsl-document-expected.txt:
        * http/tests/security/xss-DENIED-xsl-external-entity-expected.txt:
        * http/tests/workers/worker-redirect-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt:
        * http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Added.
        * platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Added.
        * platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Added.
        * platform/mac-wk1/http/tests/workers/worker-redirect-expected.txt: Added.
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt: Added.
        * platform/mac-wk1/http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt: Added.
        * platform/mac-wk1/http/tests/security/worker-cross-origin-expected.txt: Added.
        * platform/mac-wk2/TestExpectations:
        * platform/win/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Added.
        * platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Added.
        * platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Added.
        * platform/win/http/tests/workers/worker-redirect-expected.txt: Added.
        * platform/win/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt: Added.
        * platform/win/http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt: Added.
        * platform/win/http/tests/security/worker-cross-origin-expected.txt: Added.


2018-04-25  Chris Dumez  <cdumez@apple.com>

        window.postMessage() / focus() / blur() throw a TypeError when called on a RemoteDOMWindow
        https://bugs.webkit.org/show_bug.cgi?id=184981

        Reviewed by Sam Weinig.

        Add layout test coverage.

        * http/tests/navigation/process-swap-window-open-expected.txt:
        * http/tests/navigation/process-swap-window-open.html:

2018-04-25  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed test gardening

        Mark http/tests/misc/submit-post-keygen.html as 'Skip' in Win because of lacking corresponding
        implementations.

        * platform/win/TestExpectations:

2018-04-25  Simon Fraser  <simon.fraser@apple.com>

        brightness() filter should default to 1, and not allow negative values
        https://bugs.webkit.org/show_bug.cgi?id=184937

        Reviewed by Dean Jackson.
        
        Added negative value tests to filter-property-parsing.html and backdropfilter-property-parsing.html,
        and made these tests more similar.
        
        Fixed expected computed value for brightness() to be brightness(1) in the tests.
        
        The effect-brightness* test results failed because elements with invalid brightness values now
        no longer create a RenderLayer.

        * css3/color-filters/color-filter-parsing-expected.txt:
        * css3/color-filters/color-filter-parsing.html:
        * css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
        * css3/filters/backdrop/backdropfilter-property-computed-style.html:
        * css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
        * css3/filters/backdrop/backdropfilter-property-parsing.html:
        * css3/filters/effect-brightness-expected.txt:
        * css3/filters/filter-property-computed-style-expected.txt:
        * css3/filters/filter-property-computed-style.html:
        * css3/filters/filter-property-parsing-expected.txt:
        * css3/filters/filter-property-parsing.html:
        * css3/filters/unprefixed-expected.txt:
        * css3/filters/unprefixed.html:
        * fast/filter-image/parse-filter-image-expected.txt:
        * fast/filter-image/parse-filter-image.html:
        * platform/mac/css3/filters/effect-brightness-clamping-expected.txt:

2018-04-25  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [WPE][Debug] Test gardening of EME related tests.

        Report and mark the tests crashing on the Debug build.

        * platform/wpe/TestExpectations:

2018-04-25  Jiewen Tan  <jiewen_tan@apple.com>

        Remove access to keychain from the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=184428
        <rdar://problem/13150903>

        Reviewed by Brent Fulgham.

        Alter the layout test to match dummy data supplied by the test runners.
        Modify expectations as well.

        * http/tests/misc/resources/check-keygen-post.php:
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2018-04-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] The search field on www.bing.com is missing label text
        https://bugs.webkit.org/show_bug.cgi?id=184975
        <rdar://problem/39723081>

        Reviewed by Tim Horton.

        Adds a layout test to check that the label text of the focused form control in the input view can be sourced
        from (1) the "placeholder" attribute, (2) the "title" attribute, (3) the "aria-label" attribute, or (4) an
        associated label element.

        * fast/forms/extrazoom/form-control-label-text-expected.txt: Added.
        * fast/forms/extrazoom/form-control-label-text.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.formInputLabel):
        (window.UIHelper):

2018-04-25  Megan Gardner  <megan_gardner@apple.com>

        Don't activate Selection Assistant unless it is actually needed.
        https://bugs.webkit.org/show_bug.cgi?id=184944
        <rdar://problem/39469671>

        Reviewed by Tim Horton.
        
        Turning on previously flakey tests that are fixed with this change.

        * platform/ios-wk2/TestExpectations:

2018-04-25  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Fix js/regexp-unicode.html crash.
        https://bugs.webkit.org/show_bug.cgi?id=184891

        Reviewed by Yusuke Suzuki.

        * platform/wincairo/TestExpectations:

2018-04-25  Brent Fulgham  <bfulgham@apple.com>

        Don't Block First Party Cookies on Redirects
        https://bugs.webkit.org/show_bug.cgi?id=184948
        <rdar://problem/39534099>

        Reviewed by Youenn Fablet.

        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html: Added.

2018-04-25  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, rebaseline tests for iOS.

        * platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/ios/media/modern-media-controls/compact-media-controls/compact-media-controls-constructor-expected.txt: Added.
        * platform/ios/media/modern-media-controls/compact-media-controls/compact-media-controls-layout-expected.txt: Added.

2018-04-25  Youenn Fablet  <youenn@apple.com>

        CachedRawResource is not handling incremental data computation correctly
        https://bugs.webkit.org/show_bug.cgi?id=184936

        Reviewed by Chris Dumez.

        * http/tests/workers/service/resources/service-worker-fetch-worker.js:
        (stringToBuffer):
        (event.event.request.url.endsWith):
        * http/tests/workers/service/resources/service-worker-fetch.js:
        (async.test):
        * http/tests/workers/service/service-worker-fetch.https-expected.txt:

2018-04-25  Youenn Fablet  <youenn@apple.com>

        Ensure DNT is set for redirections handled in NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=184890

        Reviewed by Ryosuke Niwa.

        * http/wpt/fetch/dnt-header-after-redirection-expected.txt: Added.
        * http/wpt/fetch/dnt-header-after-redirection.html: Added.
        * http/wpt/fetch/resources/dnt-status.py: Added.
        * http/wpt/fetch/resources/redirect.py: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2018-04-25  Youenn Fablet  <youenn@apple.com>

        Make DocumentThreadableLoader error logging more consistent
        https://bugs.webkit.org/show_bug.cgi?id=184853

        Reviewed by Chris Dumez.

        Removing JS console log output for some tests.
        Updating tests according modified error logging.

        * TestExpectations:
        * http/tests/security/bypassing-cors-checks-for-extension-urls-expected.txt:
        * http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
        * http/tests/security/cross-origin-cached-images-expected.txt:
        * http/tests/security/cross-origin-cached-images-parallel-expected.txt:
        * http/tests/security/img-with-failed-cors-check-fails-to-load-expected.txt:
        * http/tests/security/load-image-after-redirection-2-expected.txt:
        * http/tests/security/load-image-after-redirection-expected.txt:
        * http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:
        * http/tests/security/video-poster-cross-origin-crash-expected.txt:
        * http/tests/security/video-poster-cross-origin-crash2-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * http/tests/xmlhttprequest/access-control-basic-denied-expected.txt:
        * http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache-expected.txt:
        * http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
        * http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached-expected.txt:
        * http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type-expected.txt:
        * http/tests/xmlhttprequest/access-control-preflight-async-header-denied-expected.txt:
        * http/tests/xmlhttprequest/access-control-preflight-async-method-denied-expected.txt:
        * http/tests/xmlhttprequest/access-control-preflight-async-not-supported-expected.txt:
        * http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
        * http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
        * http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
        * http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
        * http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt:
        * http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
        * http/tests/xmlhttprequest/cross-site-denied-response-sync-2-expected.txt:
        * http/tests/xmlhttprequest/cross-site-denied-response-sync-expected.txt:
        * http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
        * http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
        * http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt:
        * http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
        * http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt:
        * http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-sync-expected.txt:
        * http/tests/xmlhttprequest/simple-cross-origin-denied-events-sync-expected.txt:
        * http/tests/xmlhttprequest/simple-cross-origin-progress-events-expected.txt:
        * http/tests/xmlhttprequest/upload-request-error-event-order-expected.txt:
        * http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
        * http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:
        * http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-and-redirects-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
        * platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
        * platform/win/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
        * platform/win/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:

2018-04-25  Dean Jackson  <dino@apple.com>

        Make a better flag for system preview, and disable it where necessary
        https://bugs.webkit.org/show_bug.cgi?id=184968
        <rdar://problem/39686506>

        Reviewed by Eric Carlson.

        These tests have platform-specific results for the moment.

        * TestExpectations:
        * system-preview/badge-expected.html: Removed.
        * system-preview/detection-expected.txt: Removed.

2018-04-25  Miguel Gomez  <magomez@igalia.com>

        [GTK] fast/repaint/fixed-scale.html failing since r230479 "[TexMap] TextureMapperLayer unnecessarily duplicates state in GraphicsLayerTransform"
        https://bugs.webkit.org/show_bug.cgi?id=184780

        Reviewed by Žan Doberšek.

        * platform/gtk/TestExpectations:

2018-04-25  Ms2ger  <Ms2ger@igalia.com>

        imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-* LayoutTests are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=182833

        Reviewed by Carlos Alberto Lopez Perez.

        * TestExpectations: enable tests
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: update expectations
        * platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: update expectations
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: update expectations

2018-04-24  Simon Fraser  <simon.fraser@apple.com>

        Add a new "color-filter" CSS property as an experimental feature
        https://bugs.webkit.org/show_bug.cgi?id=184940

        Reviewed by Jon Lee.

        * css3/color-filters/color-filter-parsing-expected.txt: Added.
        * css3/color-filters/color-filter-parsing.html: Added.

2018-04-24  Simon Fraser  <simon.fraser@apple.com>

        shape-outside and filter styles occur twice in the result of getComputedStyle
        https://bugs.webkit.org/show_bug.cgi?id=184931

        Reviewed by Antti Koivisto.

        CSSPropertyShapeOutside and CSSPropertyFilter were duplicated in the list of computedProperties[]
        used by getComputedStyle. Remove the duplication.

        * 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-04-24  Youenn Fablet  <youenn@apple.com>

        Throw in case of PeerConnection created for detached documents
        https://bugs.webkit.org/show_bug.cgi?id=184921
        <rdar://problem/39629216>

        Reviewed by Eric Carlson.

        * webrtc/pc-detached-document-expected.txt: Added.
        * webrtc/pc-detached-document.html: Added.

2018-04-24  John Wilander  <wilander@apple.com>

        From-Origin: Support for 'same' and 'same-site' response header, nested frame origin check
        https://bugs.webkit.org/show_bug.cgi?id=184560
        <rdar://problem/38901344>

        Reviewed by Youenn Fablet and Daniel Bates.

        This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
        We consume the From-Origin response header and only load the resource if:
        - The header is non-existent, empty, or invalid.
        - The header specifies 'same' and the resource's origin matches the originating
          document's origin and the origins up the frame tree.
        - The header specifies 'same-site' and the resource's eTLD+1 matches the originating
          document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

        This feature is experimental and off by default.

        * TestExpectations:
            The http/tests/from-origin/ directory marked as [ Skip ].
            Suppressed console output for imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html.
        * http/tests/from-origin: Added.
        * http/tests/from-origin/document-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/document-from-origin-same-accepted.html: Added.
        * http/tests/from-origin/document-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/document-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/document-from-origin-same-site-accepted-expected.txt: Added.
        * http/tests/from-origin/document-from-origin-same-site-accepted.html: Added.
        * http/tests/from-origin/document-from-origin-same-site-blocked-expected.txt: Added.
        * http/tests/from-origin/document-from-origin-same-site-blocked.html: Added.
        * http/tests/from-origin/document-nested-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/document-nested-from-origin-same-accepted.html: Added.
        * http/tests/from-origin/document-nested-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/document-nested-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/fetch-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/fetch-from-origin-same-accepted.html: Added.
        * http/tests/from-origin/fetch-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/fetch-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/fetch-from-origin-same-site-accepted-expected.txt: Added.
        * http/tests/from-origin/fetch-from-origin-same-site-accepted.html: Added.
        * http/tests/from-origin/fetch-from-origin-same-site-blocked-expected.txt: Added.
        * http/tests/from-origin/fetch-from-origin-same-site-blocked.html: Added.
        * http/tests/from-origin/fetch-iframe-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/fetch-iframe-from-origin-same-accepted.html: Added.
        * http/tests/from-origin/fetch-iframe-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/fetch-iframe-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/image-about-blank-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/image-about-blank-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/image-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/image-from-origin-same-accepted.html: Added.
        * http/tests/from-origin/image-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/image-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/image-from-origin-same-site-accepted-expected.txt: Added.
        * http/tests/from-origin/image-from-origin-same-site-accepted.html: Added.
        * http/tests/from-origin/image-from-origin-same-site-blocked-expected.txt: Added.
        * http/tests/from-origin/image-from-origin-same-site-blocked.html: Added.
        * http/tests/from-origin/redirect-document-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/redirect-document-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/redirect-fetch-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/redirect-fetch-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/redirect-image-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/redirect-image-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/redirect-script-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/redirect-script-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/redirect-xhr-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/redirect-xhr-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/resources: Added.
        * http/tests/from-origin/resources/fetch.php: Added.
        * http/tests/from-origin/resources/iframe.php: Added.
        * http/tests/from-origin/resources/iframeIPAddressFetch.html: Added.
        * http/tests/from-origin/resources/iframeLocalhostFetch.html: Added.
        * http/tests/from-origin/resources/image.php: Added.
        * http/tests/from-origin/resources/nestedIPAddressIframe.html: Added.
        * http/tests/from-origin/resources/nestedLocalhostIframe.html: Added.
        * http/tests/from-origin/resources/redirect.php: Added.
        * http/tests/from-origin/resources/script.php: Added.
        * http/tests/from-origin/resources/xhr.php: Added.
        * http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/script-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/script-from-origin-same-accepted.html: Added.
        * http/tests/from-origin/script-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/script-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/script-from-origin-same-site-accepted-expected.txt: Added.
        * http/tests/from-origin/script-from-origin-same-site-accepted.html: Added.
        * http/tests/from-origin/script-from-origin-same-site-blocked-expected.txt: Added.
        * http/tests/from-origin/script-from-origin-same-site-blocked.html: Added.
        * http/tests/from-origin/top-frame-document-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/top-frame-document-from-origin-same-accepted.php: Added.
        * http/tests/from-origin/xhr-from-origin-same-accepted-expected.txt: Added.
        * http/tests/from-origin/xhr-from-origin-same-accepted.html: Added.
        * http/tests/from-origin/xhr-from-origin-same-blocked-expected.txt: Added.
        * http/tests/from-origin/xhr-from-origin-same-blocked.html: Added.
        * http/tests/from-origin/xhr-from-origin-same-site-accepted-expected.txt: Added.
        * http/tests/from-origin/xhr-from-origin-same-site-accepted.html: Added.
        * http/tests/from-origin/xhr-from-origin-same-site-blocked-expected.txt: Added.
        * http/tests/from-origin/xhr-from-origin-same-site-blocked.html: Added.
        * platform/mac-wk2/TestExpectations:
            Suppressed console output for imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html.
        * platform/wk2/TestExpectations:
            The http/tests/from-origin/ directory marked as [ Pass ].

2018-04-24  Tadeu Zagallo  <tzagallo@apple.com>

        REGRESSION(r221839): Fix requests with FormData containing empty files
        https://bugs.webkit.org/show_bug.cgi?id=184490
        <rdar://problem/39385169>

        Reviewed by Geoffrey Garen.

        Verify that the final boundary is present in the request body when submitting FormData containing an empty file.

        * http/tests/local/formdata/send-form-data-with-empty-file-expected.txt: Added.
        * http/tests/local/formdata/send-form-data-with-empty-file.html: Added.

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

        Implement Same-Site cookies
        https://bugs.webkit.org/show_bug.cgi?id=159464
        <rdar://problem/27196358>

        Reviewed by Brent Fulgham.

        Add tests. These tests are skipped on all ports for now, including Mac and iOS. We will
        look to subsequently enable the tests for Mac and iOS once we have CFNetwork support for
        Same-Site cookies.

        The following tests and utilities were taken in whole or in part from Blink:
            http/tests/cookies/resources/echo-json.php
            http/tests/cookies/resources/post-cookies-onmessage.php
            http/tests/cookies/resources/post-cookies-to-opener.php
            http/tests/cookies/resources/testharness-helpers.js
            http/tests/cookies/same-site/popup-cross-site-post.html
            http/tests/cookies/same-site/popup-cross-site.html
            http/tests/cookies/same-site/popup-same-site-post.html
            http/tests/cookies/same-site/popup-same-site.html

        The following files were derived from tests taken from Blink:
            http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
            http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html

        * TestExpectations: Skip on all ports for now.
        * http/tests/cookies/resources/cookie-utilities.js: Added.
        (createCookie):
        (setBaseDocumentWhenFetchingDOMCookies):
        (setDOMCookie):
        * http/tests/cookies/resources/cookie-utility.php:
        * http/tests/cookies/resources/echo-json.php: Added.
        * http/tests/cookies/resources/post-cookies-onmessage.php: Added.
        * http/tests/cookies/resources/post-cookies-to-opener.php: Added.
        * http/tests/cookies/resources/testharness-helpers.js: Added.
        (clearKnownCookies):
        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html: Added.
        * http/tests/cookies/same-site/fetch-in-about-blank-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-about-blank-page.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-worker.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-worker.html: Added.
        * http/tests/cookies/same-site/popup-cross-site-expected.txt: Added.
        * http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Added.
        * http/tests/cookies/same-site/popup-cross-site-post.html: Added.
        * http/tests/cookies/same-site/popup-cross-site.html: Added.
        * http/tests/cookies/same-site/popup-same-site-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-post-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-post.html: Added.
        * http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html: Added.
        * http/tests/cookies/same-site/popup-same-site-via-same-site-redirect-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html: Added.
        * http/tests/cookies/same-site/popup-same-site.html: Added.
        * http/tests/cookies/same-site/resources/click-hyperlink.php: Added.
        * http/tests/cookies/same-site/resources/echo-iframe-src.php: Added.
        * http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php: Added.
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php: Added.
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php: Added.
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-iframe.html: Added.
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html: Added.
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-worker.js: Added.
        (async.checkResult):
        * http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.php: Added.
        * http/tests/cookies/same-site/resources/fetch-in-same-origin-worker.js: Added.
        (async.checkResult):
        * http/tests/cookies/same-site/resources/passthrough-service-worker.js: Added.
        * platform/mac-wk1/TestExpectations: Skip the Service Worker tests as they are not supported in LegacyWebKit.

2018-04-23  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] REGRESSION(230860) Unable to change time input values using UI
        https://bugs.webkit.org/show_bug.cgi?id=184901
        <rdar://problem/39664797>

        Reviewed by Tim Horton.

        Adds a basic test to verify that tapping on an input of type `time` and choosing a time actually changes the
        value of the input. Also adds a new UIHelper function to set the value of the currently focused input of type
        time to the given hours and minutes.

        * fast/forms/extrazoom/time-picker-value-change-expected.txt: Added.
        * fast/forms/extrazoom/time-picker-value-change.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.setTimePickerValue):
        (window.UIHelper):

2018-04-23  Chris Dumez  <cdumez@apple.com>

        Unreviewed, fix a few tests that became flaky after r230919.

        * fast/events/beforeunload-alert-handled-keydown.html:
        * fast/events/beforeunload-alert-no-user-interaction.html:
        * fast/events/beforeunload-alert-user-interaction.html:

2018-04-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r230921, r230923, r230924, r230932,
        and r230934.
        https://bugs.webkit.org/show_bug.cgi?id=184903

        Builds still broken (Requested by ryanhaddad on #webkit).

        Reverted changesets:

        "Implement Same-Site cookies"
        https://bugs.webkit.org/show_bug.cgi?id=159464
        https://trac.webkit.org/changeset/230921

        "Attempt to fix the build after r230921"
        https://bugs.webkit.org/show_bug.cgi?id=159464
        https://trac.webkit.org/changeset/230923

        "Attempt to fix the Mac and iOS build after r230921"
        https://bugs.webkit.org/show_bug.cgi?id=159464
        https://trac.webkit.org/changeset/230924

        "Another attempt to fix the Windows build following r230921"
        https://bugs.webkit.org/show_bug.cgi?id=159464
        https://trac.webkit.org/changeset/230932

        "Attempt to fix the Apple Internal build following r230921"
        https://bugs.webkit.org/show_bug.cgi?id=159464
        https://trac.webkit.org/changeset/230934

2018-04-23  Antti Koivisto  <antti@apple.com>

        REGRESSION (r220112): reCAPTCHA images render off screen on Twitch.tv app Log In or Sign Up
        https://bugs.webkit.org/show_bug.cgi?id=182859
        <rdar://problem/37595065>

        Reviewed by Zalan Bujtas

        * fast/frames/flattening/media-query-growing-content-expected.txt: Removed.
        * fast/frames/flattening/media-query-growing-content.html: Removed.
        * fast/frames/flattening/resources/media-query-min-height-with-flattening.html: Removed.

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

        Implement Same-Site cookies
        https://bugs.webkit.org/show_bug.cgi?id=159464
        <rdar://problem/27196358>

        Reviewed by Brent Fulgham.

        Add tests. These tests are skipped on all ports for now, including Mac and iOS. We will
        look to subsequently enable the tests for Mac and iOS once we have CFNetwork support for
        Same-Site cookies.

        The following tests and utilities were taken in whole or in part from Blink:
            http/tests/cookies/resources/echo-json.php
            http/tests/cookies/resources/post-cookies-onmessage.php
            http/tests/cookies/resources/post-cookies-to-opener.php
            http/tests/cookies/resources/testharness-helpers.js
            http/tests/cookies/same-site/popup-cross-site-post.html
            http/tests/cookies/same-site/popup-cross-site.html
            http/tests/cookies/same-site/popup-same-site-post.html
            http/tests/cookies/same-site/popup-same-site.html

        The following files were derived from tests taken from Blink:
            http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
            http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html

        * TestExpectations: Skip on all ports for now.
        * http/tests/cookies/resources/cookie-utilities.js: Added.
        (createCookie):
        (setBaseDocumentWhenFetchingDOMCookies):
        (setDOMCookie):
        * http/tests/cookies/resources/cookie-utility.php:
        * http/tests/cookies/resources/echo-json.php: Added.
        * http/tests/cookies/resources/post-cookies-onmessage.php: Added.
        * http/tests/cookies/resources/post-cookies-to-opener.php: Added.
        * http/tests/cookies/resources/testharness-helpers.js: Added.
        (clearKnownCookies):
        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html: Added.
        * http/tests/cookies/same-site/fetch-in-about-blank-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-about-blank-page.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-cross-origin-worker.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-page-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-page.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-worker-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-same-origin-worker.html: Added.
        * http/tests/cookies/same-site/popup-cross-site-expected.txt: Added.
        * http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Added.
        * http/tests/cookies/same-site/popup-cross-site-post.html: Added.
        * http/tests/cookies/same-site/popup-cross-site.html: Added.
        * http/tests/cookies/same-site/popup-same-site-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-post-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-post.html: Added.
        * http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html: Added.
        * http/tests/cookies/same-site/popup-same-site-via-same-site-redirect-expected.txt: Added.
        * http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html: Added.
        * http/tests/cookies/same-site/popup-same-site.html: Added.
        * http/tests/cookies/same-site/resources/click-hyperlink.php: Added.
        * http/tests/cookies/same-site/resources/echo-iframe-src.php: Added.
        * http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php: Added.
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php: Added.
        * http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php: Added.
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-iframe.html: Added.
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html: Added.
        * http/tests/cookies/same-site/resources/fetch-in-cross-origin-worker.js: Added.
        (async.checkResult):
        * http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.php: Added.
        * http/tests/cookies/same-site/resources/fetch-in-same-origin-worker.js: Added.
        (async.checkResult):
        * http/tests/cookies/same-site/resources/passthrough-service-worker.js: Added.
        * platform/mac-wk1/TestExpectations: Skip the Service Worker tests as they are not supported in LegacyWebKit.

2018-04-23  Chris Dumez  <cdumez@apple.com>

        HTML String load cannot be prevented by responding 'Cancel' asynchronously in decidePolicyForNavigationAction
        https://bugs.webkit.org/show_bug.cgi?id=184848
        <rdar://problem/39145306>

        Reviewed by Brady Eidson.

        Update layout tests that wrongly expected 'about:blank' to load synchronously even
        when it is not the initial empty document of an iframe. I have checked that our
        behavior is now consistent with Chrome.

        * fast/events/beforeunload-alert-user-interaction2.html:
        * http/tests/security/cross-origin-reified-window-location-setting-expected.txt:
        * http/tests/security/cross-origin-reified-window-location-setting.html:
        * webarchive/loading/javascript-url-iframe-crash-expected.txt:

2018-04-23  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] 100vw is roughly half of the viewport width in extra zoom mode
        https://bugs.webkit.org/show_bug.cgi?id=184871
        <rdar://problem/39477595>

        Reviewed by Andy Estes.

        Add a new layout test to verify that shrink-to-fit works as intended in extra zoom mode:
        1.  The large element should cause the entire viewport to shrink down to fit.
        2.  Removing the large element should adjust the viewport, such that the smaller element now fits the entire
            viewport.
        3.  The smaller element (at 100vw and 100vh) should be the same size as the window.

        * TestExpectations:
        * fast/css/extrazoom/viewport-units-shrink-to-fit-expected.txt: Added.
        * fast/css/extrazoom/viewport-units-shrink-to-fit.html: Added.

2018-04-22  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add a layout test for r230785
        https://bugs.webkit.org/show_bug.cgi?id=184757

        Reviewed by Beth Dakin.

        Adds a new layout test to verify that true screen dimensions in extra zoom mode
        are observable from the page, via window.screen.

        * TestExpectations:
        * fast/dom/Window/extrazoom/window-get-real-screen-dimensions.html: Added.

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

        [Modern Media Controls] Show a loading indicator after pressing the play button in compact mode
        https://bugs.webkit.org/show_bug.cgi?id=184863
        <rdar://problem/38939468>

        Reviewed by Dean Jackson.

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

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

        Activate NetworkLoadChecker for media loads
        https://bugs.webkit.org/show_bug.cgi?id=184841

        Reviewed by Eric Carlson.

        * TestExpectations: Added DumpJSConsoleLogInStdErr to remove console message differences between WK1/WK2.

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

        AX: AOM does not work with DOM Level 1 events
        https://bugs.webkit.org/show_bug.cgi?id=184847

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/AOM-dismiss-event-expected.txt:
        * accessibility/ios-simulator/AOM-dismiss-event.html:
        * accessibility/mac/AOM-event-accessiblesetvalue-expected.txt:
        * accessibility/mac/AOM-event-accessiblesetvalue.html:
        * accessibility/mac/AOM-events-all-expected.txt:
        * accessibility/mac/AOM-events-all.html:
        * accessibility/mac/AOM-events-expected.txt:
        * accessibility/mac/AOM-events.html:

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

        Unreviewed, rebaseline more tests after r230864.

        * fast/frames/sandboxed-iframe-history-denied-expected.txt:
        * fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:

2018-04-20  Daniel Bates  <dabates@apple.com>

        Hide Strong Password label when text field is too narrow
        https://bugs.webkit.org/show_bug.cgi?id=184785
        <rdar://problem/38183939>

        Reviewed by Zalan Bujtas.

        Update existing tests to include narrow text fields.

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

2018-04-20  Dean Jackson  <dino@apple.com>

        Render a badge on system preview images
        https://bugs.webkit.org/show_bug.cgi?id=184854
        <rdar://problem/39615154>

        Reviewed by Tim Horton.

        * system-preview/badge-expected.html: Added.
        * system-preview/badge.html: Added.

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

        Update cross-origin SecurityError messages to not include the target origin
        https://bugs.webkit.org/show_bug.cgi?id=184803
        <rdar://problem/39547724>

        Reviewed by Sam Weinig.

        * http/tests/history/cross-origin-replace-history-object-child-expected.txt:
        * http/tests/history/cross-origin-replace-history-object-expected.txt:
        * http/tests/plugins/cross-frame-object-access-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
        * http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
        * http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
        * http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
        * http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-expected.txt:
        * http/tests/security/cross-frame-access-call-expected.txt:
        * http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt:
        * http/tests/security/cross-frame-access-child-explicit-domain-expected.txt:
        * http/tests/security/cross-frame-access-custom-expected.txt:
        * http/tests/security/cross-frame-access-delete-expected.txt:
        * http/tests/security/cross-frame-access-first-time-expected.txt:
        * http/tests/security/cross-frame-access-get-custom-property-cached-expected.txt:
        * http/tests/security/cross-frame-access-get-expected.txt:
        * http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt:
        * http/tests/security/cross-frame-access-history-get-expected.txt:
        * http/tests/security/cross-frame-access-history-get-override-expected.txt:
        * http/tests/security/cross-frame-access-history-prototype-expected.txt:
        * http/tests/security/cross-frame-access-location-get-expected.txt:
        * http/tests/security/cross-frame-access-location-get-override-expected.txt:
        * http/tests/security/cross-frame-access-location-put-expected.txt:
        * http/tests/security/cross-frame-access-name-getter-expected.txt:
        * http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
        * http/tests/security/cross-frame-access-object-prototype-expected.txt:
        * http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt:
        * http/tests/security/cross-frame-access-port-expected.txt:
        * http/tests/security/cross-frame-access-protocol-expected.txt:
        * http/tests/security/cross-frame-access-protocol-explicit-domain-expected.txt:
        * http/tests/security/cross-frame-access-put-expected.txt:
        * http/tests/security/cross-frame-access-selection-expected.txt:
        * http/tests/security/cross-origin-reified-window-property-access-expected.txt:
        * http/tests/security/cross-origin-window-property-access-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
        * http/tests/security/document-all-expected.txt:
        * http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt:
        * http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open-expected.txt:
        * http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt:
        * http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open-expected.txt:
        * http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
        * http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
        * http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
        * http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
        * http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
        * http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
        * http/tests/security/location-cross-origin-expected.txt:
        * http/tests/security/sandboxed-iframe-blocks-access-from-parent-expected.txt:
        * http/tests/security/sandboxed-iframe-modify-self-expected.txt:
        * http/tests/security/sandboxed-iframe-origin-add-expected.txt:
        * http/tests/security/sandboxed-iframe-origin-remove-expected.txt:
        * http/tests/security/srcdoc-in-sandbox-cannot-access-parent-expected.txt:
        * http/tests/security/symbols-cross-origin-expected.txt:
        * http/tests/security/window-defineProperty-crossOrigin-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-hash-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-host-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-hostname-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-nonstandardProperty-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-pathname-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-protocol-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-reload-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-search-expected.txt:
        * http/tests/security/xss-DENIED-defineProperty-expected.txt:
        * http/tests/security/xss-DENIED-frame-name-expected.txt:
        * http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
        * http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
        * http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document-expected.txt:
        * http/tests/security/xss-DENIED-sandboxed-iframe-expected.txt:
        * http/tests/security/xss-DENIED-synchronous-form-expected.txt:
        * http/tests/security/xss-DENIED-window-name-navigator-expected.txt:
        * http/tests/security/xss-DENIED-xsl-document-securityOrigin-expected.txt:
        * http/tests/security/xssAuditor/block-does-not-leak-location-expected.txt:
        * http/tests/security/xssAuditor/full-block-script-tag-cross-domain-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:

2018-04-20  Chris Nardi  <cnardi@chromium.org>

        Update HSL/HSLA parsing to match CSS Color 4
        https://bugs.webkit.org/show_bug.cgi?id=180528
        <rdar://problem/35926675>

        Reviewed by Simon Fraser.

        This change updates our import of web-platform-tests/css/css-color
        to test the new behavior.

        * TestExpectations:
        * canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-5-expected.txt:

2018-04-20  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] Injected bundle form client should be notified when editing text fields
        https://bugs.webkit.org/show_bug.cgi?id=184822
        <rdar://problem/38807319>

        Reviewed by Tim Horton.

        Add a new layout test that focuses an input field, simulates text entry, and verifies that the injected bundle
        form client's textDidChangeInTextField, textFieldDidBeginEditing and textFieldDidEndEditing functions are called.

        * TestExpectations:

        Skip tests in fast/forms/extrazoom by default.

        * fast/forms/extrazoom/edit-text-field-calls-injected-bundle-expected.txt: Added.
        * fast/forms/extrazoom/edit-text-field-calls-injected-bundle.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.enterText):

        Introduce a new UIHelper method to simulate text entry in the currently focused element.

        (window.UIHelper):

2018-04-20  Youenn Fablet  <youenn@apple.com>

        Refactor NetworkResourceLoader to check for m_networkLoadChecker presence before using it
        https://bugs.webkit.org/show_bug.cgi?id=184755

        Reviewed by Chris Dumez.

        Made specific WK1 expectations as WK2 now has console messages for sync XHR that WK1 does not have.
        Dump JS console log in stderr for redirect-cross-origin-sync-double.html as the test does not rely on it
        and this allows keeping a single expected.txt file for WK1 and WK2.

        * TestExpectations:
        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt: Added.
        * platform/win/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt: Added.

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

        Layout Test accessibility/mac/async-increment-decrement-action.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=184834
        <rdar://problem/39604753>

        Reviewed by Chris Fleizach.

        Changed the test to just make sure the increment/decrement actions are async, that
        they won't block the test by changing the object's value.

        * accessibility/mac/async-increment-decrement-action-expected.txt:
        * accessibility/mac/async-increment-decrement-action.html:

2018-04-20  Daniel Bates  <dabates@apple.com>

        Remove Strong Password decoration when text field type changes
        https://bugs.webkit.org/show_bug.cgi?id=184795
        <rdar://problem/38325108>

        Reviewed by Antti Koivisto.

        Add tests to ensure that we remove the Strong Password decoration when the text field's type changes.

        Extract code to toggle showing the AutoFill button from fast/forms/auto-fill-button/input-{disabled, readonly}-strong-password-and-strong-confirmation-password-auto-fill-buttons.html
        into a new file fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js
        that can be shared.

        * fast/forms/auto-fill-button/hide-strong-password-when-field-type-changes-expected.html: Added.
        * fast/forms/auto-fill-button/hide-strong-password-when-field-type-changes.html: Added.
        * fast/forms/auto-fill-button/input-disabled-strong-password-and-strong-confirmation-password-auto-fill-buttons.html:
        * fast/forms/auto-fill-button/input-readonly-strong-password-and-strong-confirmation-password-auto-fill-buttons.html:
        * fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js: Added.
        (window.onload):

2018-04-20  Chris Nardi  <cnardi@chromium.org>

        Omit default value when serializing font-feature-settings
        https://bugs.webkit.org/show_bug.cgi?id=182382

        Reviewed by Myles C. Maxfield.

        Update tests to omit default value when serializing.

        * 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-04-19  Dirk Schulze  <krit@webkit.org>

        Introduce SVGGeometryElement interface
        https://bugs.webkit.org/show_bug.cgi?id=184768

        Reviewed by Antti Koivisto.

        Start implementing SVGGeometryElement interface from SVG2.

        * svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html: pointAtLength requires value now.
        * svg/dom/path-pointAtLength-expected.txt:
        * svg/dom/path-pointAtLength.html: Added throw tests for pointAtLength.
        * svg/dom/svg2-inheritance-expected.txt: Inheritance fixed for SVGPathElement only for now.

2018-04-19  Tadeu Zagallo  <tzagallo@apple.com>

        REGRESSION(r227340): ArrayBuffers were not being serialized when sent via MessagePorts
        https://bugs.webkit.org/show_bug.cgi?id=184254
        <rdar://problem/39140200>

        Reviewed by Daniel Bates.

        The regression test provided with the bug report verifies that the ArrayBuffer is properly
        serialized - before, the whole data object would be null.
        Test case provided by Yann Cabon <ycabon@esri.com> as part of the bug report.

        * workers/message-port-expected.txt: Added.
        * workers/message-port.html: Added.

2018-04-19  Eric Carlson  <eric.carlson@apple.com>

        Runtime logging during GC can cause crash
        https://bugs.webkit.org/show_bug.cgi?id=184792
        <rdar://problem/39567927>

        Reviewed by Jer Noble.

        * media/destructor-logging-crash-expected.txt: Added.
        * media/destructor-logging-crash.html: Added.

2018-04-19  Youenn Fablet  <youenn@apple.com>

        Web Inspector backend should get headers & cookies from network process separately from resource requests
        https://bugs.webkit.org/show_bug.cgi?id=184396
        <rdar://problem/38877384>

        Reviewed by Brian Burg.

        * http/wpt/service-workers/header-filtering.https-expected.txt:

2018-04-19  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] Add a mechanism to extend the height of the layout viewport in extra zoom mode
        https://bugs.webkit.org/show_bug.cgi?id=184782
        <rdar://problem/38346712>

        Reviewed by Tim Horton.

        Add a new layout test to exercise the following scenarios:
        •   The layout viewport should be fully extended when the document is much taller than the viewport.
        •   Programmatically shrinking the document height to less than the viewport height causes the layout viewport
            to shrink to the viewport height.
        •   Programmatically extending the document height to a little more than the viewport height causes the layout
            viewport to also expand, but this time, only to the new document height.

        * TestExpectations:

        Skip tests in fast/visual-viewport/extrazoom by default.

        * fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing-expected.txt: Added.
        * fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html: Added.

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

        REGRESSION (r229133): decidePolicyForNavigationAction not called for loading an HTML string
        https://bugs.webkit.org/show_bug.cgi?id=184209
        <rdar://problem/39145306>

        Reviewed by Ryosuke Niwa.

        Rebaseline existing layout tests. Their output is back to what it was before r229133.

        * 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:

2018-04-19  Chris Nardi  <cnardi@chromium.org>

        Support calc() in webkit-gradient and cross-fade
        https://bugs.webkit.org/show_bug.cgi?id=182225

        Reviewed by Simon Fraser.

        Add new test cases.

        * css3/calc/cross-fade-calc.html: Added.
        * css3/calc/cross-fade-calc-expected.txt: Added.
        * css3/calc/webkit-gradient-calc.html: Added.
        * css3/calc/webkit-gradient-calc-expected.txt: Added.

2018-04-19  Youenn Fablet  <youenn@apple.com>

        NetworkProcess should use CSP/content blockers for sync XHR
        https://bugs.webkit.org/show_bug.cgi?id=184760

        Reviewed by Chris Dumez.

        * http/tests/contentextensions/sync-xhr-redirection-blocked-expected.txt: Added.
        * http/tests/contentextensions/sync-xhr-redirection-blocked.html: Added.
        * http/tests/contentextensions/sync-xhr-redirection-blocked.html.json: Added.
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-sync-xhr-in-main-frame-window.html: Added.
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-sync-xhr-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-sync-xhr-in-main-frame.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        Unreviewed test gardening for iOS simulator.

        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt: Removed.
        * platform/ios/TestExpectations:

2018-04-19  Nan Wang  <n_wang@apple.com>

        AX: AOM: respect the accessibility setting for dispatching the accessible events
        https://bugs.webkit.org/show_bug.cgi?id=184619

        Reviewed by Ryosuke Niwa.

        * accessibility/ios-simulator/accessibility-events-setting-expected.txt: Added.
        * accessibility/ios-simulator/accessibility-events-setting.html: Added.
        * platform/ios-wk1/TestExpectations:
        * platform/ios-wk2/TestExpectations:

2018-04-19  Tadeu Zagallo  <tzagallo@apple.com>

        Fix flakiness in worker-to-worker test
        https://bugs.webkit.org/show_bug.cgi?id=184769
        <rdar://problem/39552333>

        Reviewed by Alexey Proskuryakov.

        * workers/worker-to-worker-expected.txt:
        * workers/worker-to-worker.html:
        * workers/worker-to-worker.js:

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

        Unreviewed, rebaseline tests for iOS simulator.

        * platform/ios/TestExpectations:
        * platform/ios/editing/deleting/delete-emoji-9-expected.txt:
        * platform/ios/http/tests/blink/sendbeacon/beacon-same-origin-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt: Added.
        * platform/ios/quicklook/excel-expected.txt:
        * platform/ios/quicklook/excel-legacy-expected.txt:
        * platform/ios/quicklook/excel-macro-enabled-expected.txt:

2018-04-18  Ryan Haddad  <ryanhaddad@apple.com>

        Skip legacy-animation-engine/media/track/opera directory on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=184420

        Unreviewed test gardening.

        The media/track/opera directory is already skipped on iOS, so skip this duplicated directory.

        * platform/ios/TestExpectations:

2018-04-18  Ryan Haddad  <ryanhaddad@apple.com>

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

        Unreviewed test gardening.

        * TestExpectations:

2018-04-18  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/video-aspect-ratio.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184457

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-04-19  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r230796.

        * platform/gtk/TestExpectations:

2018-04-19  Manuel Rego Casasnovas  <rego@igalia.com>

        Caret rendered at incorrect location inside empty table cell
        https://bugs.webkit.org/show_bug.cgi?id=85385

        Reviewed by Zalan Bujtas.

        * editing/caret/caret-in-empty-cell-expected.html: Added.
        * editing/caret/caret-in-empty-cell.html: Added.
        * editing/deleting/5206311-2-expected.txt:
        * editing/deleting/5433862-1-expected.txt:
        * platform/gtk/editing/deleting/5126166-expected.png:
        * platform/gtk/editing/deleting/5126166-expected.txt:
        * platform/gtk/editing/deleting/5206311-1-expected.png:
        * platform/gtk/editing/deleting/5206311-1-expected.txt:
        * platform/gtk/editing/deleting/5433862-2-expected.png:
        * platform/gtk/editing/deleting/5433862-2-expected.txt:
        * platform/gtk/editing/deleting/5483370-expected.png:
        * platform/gtk/editing/deleting/5483370-expected.txt:
        * platform/gtk/editing/selection/move-by-line-001-expected.png:
        * platform/gtk/editing/selection/move-by-line-001-expected.txt:
        * platform/gtk/editing/selection/select-all-004-expected.txt:
        * platform/ios-simulator/editing/deleting/5126166-expected.txt:
        * platform/ios-simulator/editing/deleting/5206311-1-expected.txt:
        * platform/ios-simulator/editing/deleting/5433862-2-expected.txt:
        * platform/ios-simulator/editing/deleting/5483370-expected.txt:
        * platform/mac/editing/deleting/5126166-expected.png:
        * platform/mac/editing/deleting/5126166-expected.txt:
        * platform/mac/editing/deleting/5206311-1-expected.png:
        * platform/mac/editing/deleting/5206311-1-expected.txt:
        * platform/mac/editing/deleting/5433862-2-expected.png:
        * platform/mac/editing/deleting/5433862-2-expected.txt:
        * platform/mac/editing/deleting/5483370-expected.png:
        * platform/mac/editing/deleting/5483370-expected.txt:
        * platform/mac/editing/selection/move-by-line-001-expected.txt:
        * platform/mac/editing/selection/select-all-004-expected.txt:
        * platform/win/editing/deleting/5126166-expected.png: Added.
        * platform/win/editing/deleting/5126166-expected.txt:
        * platform/win/editing/deleting/5206311-1-expected.png: Added.
        * platform/win/editing/deleting/5206311-1-expected.txt:
        * platform/win/editing/deleting/5433862-2-expected.png: Added.
        * platform/win/editing/deleting/5433862-2-expected.txt:
        * platform/win/editing/deleting/5483370-expected.png: Added.
        * platform/win/editing/deleting/5483370-expected.txt:

2018-04-18  Youenn Fablet  <youenn@apple.com>

        Allow SameOrigin credentials handling for synchronous XHR
        https://bugs.webkit.org/show_bug.cgi?id=184723

        Reviewed by Alex Christensen.

        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects.html:
        * http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt:
        * http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt.
        * platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt.
        * platform/mac-wk1/http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt.
        * platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * platform/win/http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt.
        * platform/win/http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt.
        * platform/win/http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt.

2018-04-18  Chris Dumez  <cdumez@apple.com>

        Set RemoteDOMWindow's initial opener
        https://bugs.webkit.org/show_bug.cgi?id=184716

        Reviewed by Sam Weinig.

        Rebaseline existing test now that remoteWindow.opener now returns
        its initial opener.

        * http/tests/navigation/process-swap-window-open-expected.txt:

2018-04-18  Dean Jackson  <dino@apple.com>

        Detect system preview links
        https://bugs.webkit.org/show_bug.cgi?id=184753
        <rdar://problem/39500514>

        Reviewed by Antoine Quint.

        * system-preview/detection-expected.txt: Added.
        * system-preview/detection.html: Added.

2018-04-18  Ryan Haddad  <ryanhaddad@apple.com>

        Skip animations/missing-from-to.html on mac-wk1 debug.
        https://bugs.webkit.org/show_bug.cgi?id=184569

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-04-18  Nan Wang  <n_wang@apple.com>

        AX: [macOS] WebKit hangs when triggering an alert from an AOM increment event
        https://bugs.webkit.org/show_bug.cgi?id=184742

        Reviewed by Chris Fleizach.

        * accessibility/mac/async-increment-decrement-action-expected.txt: Added.
        * accessibility/mac/async-increment-decrement-action.html: Added.
        * platform/mac-wk1/TestExpectations:

2018-04-18  Ross Kirsling  <ross.kirsling@sony.com>

        [Win] Layout Test js/date-constructor.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=140945

        Reviewed by Per Arne Vollan.

        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:

2018-04-18  Chris Dumez  <cdumez@apple.com>

        Add support for converting a local window to a remote window
        https://bugs.webkit.org/show_bug.cgi?id=184515
        <rdar://problem/39011318>

        Reviewed by Ryosuke Niwa.

        Add layout test coverage a cross-origin window.open() to check that the
        returned window looks like a regular cross-origin window after being
        navigated cross-origin. We are still failing some of the checks because
        our implementation is still incomplete. However, it mostly works as
        expected.

        * TestExpectations:
        * http/tests/navigation/process-swap-window-open-expected.txt: Added.
        * http/tests/navigation/process-swap-window-open.html: Added.
        * platform/wk2/TestExpectations:

2018-04-18  Ms2ger  <Ms2ger@igalia.com>

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

        Unreviewed test gardening.

        Update expectations.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:

2018-04-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] Programmatically changing focus when an element already has focus is a confusing experience
        https://bugs.webkit.org/show_bug.cgi?id=184635
        <rdar://problem/39440642>

        Reviewed by Tim Horton.

        Add a new layout test to exercise the following sequence of events in extra zoom mode:

        1. Focus select element #1.
        2. Choose an unselected option.
        3. Programmatically focus select element #2 in the "change" event handler.
        4. Choose an unselected option.
        5. Programmatically blur select element #2 in the "change" event handler.

        * fast/events/extrazoom/change-focus-during-change-event-expected.txt: Added.
        * fast/events/extrazoom/change-focus-during-change-event.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.waitForKeyboardToHide.return.new.Promise):
        (window.UIHelper.waitForKeyboardToHide):

2018-04-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] Double tap to zoom should account for text legibility in extra zoom mode
        https://bugs.webkit.org/show_bug.cgi?id=184631
        <rdar://problem/39303706>

        Reviewed by Tim Horton.

        Add a layout test to check that double tap to zoom works in extra zoom mode, even when text spans the entire
        width of the document.

        * TestExpectations:
        * fast/events/extrazoom/double-tap-to-zoom-on-full-width-text-expected.txt: Added.
        * fast/events/extrazoom/double-tap-to-zoom-on-full-width-text.html: Added.
        * resources/basic-gestures.js:

        Add a helper method to double tap at a given location, and wait for zooming to finish.

        (return.new.Promise):

2018-04-17  Tadeu Zagallo  <tzagallo@apple.com>

        Retain MessagePortChannel for transfer when disentangling ports
        https://bugs.webkit.org/show_bug.cgi?id=184502
        <rdar://problem/39372771>

        Reviewed by Geoffrey Garen.

        Check that the MessageChannel does not get eagerly deallocated when transferring both of its
        ports. Original test case provided with the bug report by Ashley Gullen <ashley@scirra.com>

        * workers/worker-to-worker-expected.txt: Added.
        * workers/worker-to-worker.html: Added.
        * workers/worker-to-worker.js: Added.

2018-04-17  Jonathan Bedard  <jbedard@apple.com>

        Unreviewed rollout of r230632. Regression in memory usage.

        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.

        * TestExpectations:
        * animations/animation-direction-alternate-reverse-expected.txt:
        * animations/animation-direction-alternate-reverse.html:
        * animations/animation-hit-test-transform.html:
        * animations/animation-internals-api-expected.txt: Copied from LayoutTests/animations/animation-internals-api-expected.txt.
        * animations/animation-internals-api-multiple-keyframes-expected.txt: Copied from LayoutTests/animations/animation-internals-api-multiple-keyframes-expected.txt.
        * animations/animation-internals-api-multiple-keyframes.html: Copied from LayoutTests/animations/animation-internals-api-multiple-keyframes.html.
        * animations/animation-internals-api.html: Copied from LayoutTests/animations/animation-internals-api.html.
        * animations/big-rotation-expected.txt:
        * animations/big-rotation.html:
        * animations/duplicated-keyframes-name.html:
        * animations/fill-forwards-end-state.html:
        * animations/fill-mode-forwards-zero-duration-expected.txt:
        * animations/fill-mode-forwards-zero-duration.html:
        * fast/css-generated-content/pseudo-animation.html:
        * fast/css-generated-content/pseudo-transition.html:
        * platform/ios/TestExpectations:
        * platform/win/TestExpectations:
        * transitions/remove-transition-style.html:
        * transitions/transition-drt-api-delay-expected.txt: Copied from LayoutTests/transitions/transition-drt-api-delay-expected.txt.
        * transitions/transition-drt-api-delay.html: Copied from LayoutTests/transitions/transition-drt-api-delay.html.
        * transitions/transition-drt-api-expected.txt: Copied from LayoutTests/transitions/transition-drt-api-expected.txt.
        * transitions/transition-drt-api.html: Copied from LayoutTests/transitions/transition-drt-api.html.
        * transitions/transition-hit-test-transform.html:
        * transitions/zero-duration-with-non-zero-delay-end.html:

2018-04-17  Tadeu Zagallo  <tzagallo@apple.com>

        Do not unregister MessagePorts on deallocation if it has been disentangled
        https://bugs.webkit.org/show_bug.cgi?id=184285
        <rdar://problem/39256714>

        Reviewed by Darin Adler.

        Original test provided as part of the bug report by Yann Cabon <ycabon@esri.com>

        * workers/message-port-gc-expected.txt: Added.
        * workers/message-port-gc.html: Added.
        * workers/message-port-gc.js: Added.

2018-04-17  Chris Dumez  <cdumez@apple.com>

        REGRESSION (r229831): CMD-clicking an iCloud web app link unexpectedly opens that link in a new tab and the current tab
        https://bugs.webkit.org/show_bug.cgi?id=184678
        <rdar://problem/39422122>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/navigation/fragment-navigation-policy-ignore-expected.txt: Added.
        * http/tests/navigation/fragment-navigation-policy-ignore.html: Added.

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

        Animated GIF imagery with finite looping are falling one loop short
        https://bugs.webkit.org/show_bug.cgi?id=183153

        Reviewed by Simon Fraser.

        This layout test tests GIF when it has to loop its entire frames a specific
        number of times. There are three cases for the loopCount field:
        -- loopCount is missing: This means the GIF should animate only once. This
           is covered by animated-red-green-blue-repeat-1.gif.
        -- loopCount = 0: This means the image has to animate indefinatly. This
           case is covered by the new GIF animated-red-green-blue-repeat-infinite.gif.
        -- loopCount > 0: This will loop the GIF entire frames for (loopCount + 1)
           times. To fix the test with the extra loop, loopCount in
           animated-red-green-blue-repeat-2.gif was changed to 1 instead of 2.

        * fast/images/animated-image-loop-count-expected.html:
        * fast/images/animated-image-loop-count.html:
        * fast/images/resources/animated-red-green-blue-repeat-2.gif:
        * fast/images/resources/animated-red-green-blue-repeat-infinite.gif:

2018-04-16  Antoine Quint  <graouts@apple.com>

        Layout Test animations/needs-layout.html is a flaky Image Failure.
        https://bugs.webkit.org/show_bug.cgi?id=172397

        Reviewed by Dean Jackson.

        No longer mark this test as flaky.

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

2018-04-16  Keith Rollin  <krollin@apple.com>

        REGRESSION: [mac-wk2 release] LayoutTest http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=184673
        <rdar://problem/39474698>

        Unreviewed test gardening. The test was flaky because the HTTP parser
        would try to preload the Javascript resource. Sometimes this operation
        would complete in time to print its own console message, duplicating a
        subsequent one when the non-preloading resource-load occurs. Updated
        the test to load the Javascript in such a way that it skips the reload
        step.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/script-src-blocked-error-event-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html:

2018-04-16  Ross Kirsling  <ross.kirsling@sony.com>

        Unreviewed. Update WinCairo TestExpectations in preparation for LayoutTests automation.

        * platform/wincairo/TestExpectations:
        Updated current failures for directories A-E. Added temporary skips for everything after.

        * platform/wincairo/accessibility:
        * platform/wincairo/animations/3d:
        * platform/wincairo/css2.1:
        * platform/wincairo/css3:
        * platform/wincairo/editing:
        * platform/wincairo/fast/css-generated-content:
        * platform/wincairo/fast/dom:
        * platform/wincairo/legacy-animation-engine/animations/3d:
        * platform/wincairo/legacy-animation-engine/compositing:
        Added expectation files.

2018-04-16  Megan Gardner  <megan_gardner@apple.com>

        Switch to UIWKTextInteractionAssistant for non-editable text
        https://bugs.webkit.org/show_bug.cgi?id=182834

        Reviewed by Beth Dakin.
        
        Marking tests as flaky and to be fixed later.

        * platform/ios-wk2/TestExpectations:

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

        Use NetworkLoadChecker to handle synchronous HTTP loads
        https://bugs.webkit.org/show_bug.cgi?id=184240

        Reviewed by Chris Dumez.

        * http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
        * http/wpt/beacon/cors/cors-preflight-blob-failure.html: Fix buggy assertion.
        Test should check for actual request header and not header name in Access-Control-Request-Headers.
        * http/wpt/beacon/cors/cors-preflight-blob-success.html: Ditto.
        * platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt: Added.
        * platform/mac-wk1/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt: Added.
        * platform/mac-wk1/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-and-redirects-expected.txt: Added.
        * platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt: Added.
        * platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt: Added.
        * platform/win/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt: Added.
        * platform/mac-highsierra-wk2/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt.
        * platform/mac-highsierra-wk2/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt.
        * platform/mac-wk1/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/cors/request-headers-expected.txt.
        * platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
        * platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt.
        * platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt.
        * platform/win/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/cors/request-headers-expected.txt.

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

        Mark css3/filters/blur-various-radii.html as a crash on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=184649

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-04-13  Carlos Ramalho  <cadubentzen@gmail.com>

        [GTK][Wayland] Unflag test-case fast/canvas/canvas-createPattern-video-modify.html
        https://bugs.webkit.org/show_bug.cgi?id=182432

        Reviewed by Michael Catanzaro.

        * platform/gtk-wayland/TestExpectations: Unmarked fast/canvas/canvas-createPattern-video-modify.html

2018-04-13  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/wpt/service-workers/header-filtering.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184469

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-04-13  Ryan Haddad  <ryanhaddad@apple.com>

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

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-04-13  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/audio-concurrent-supported.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184612

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-04-13  Ryan Haddad  <ryanhaddad@apple.com>

        Mark media/video-volume-slider-drag.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184610

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-04-13  Ryan Haddad  <ryanhaddad@apple.com>

        Skip animations/added-while-suspended.html and transitions/created-while-suspended.html.
        https://bugs.webkit.org/show_bug.cgi?id=184608

        Unreviewed test gardening.

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

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

        [Web Animations] Turn CSS Animations and CSS Transitions as Web Animations on by default
        https://bugs.webkit.org/show_bug.cgi?id=184569
        <rdar://problem/38671301>

        Reviewed by Jon Lee.

        * TestExpectations: A small number of tests regressed with the flag on, so we list them and have raised
        bugs to fix them ASAP.
        * animations/animation-direction-alternate-reverse-expected.txt:
        * animations/animation-direction-alternate-reverse.html: This test was incorrect since it assumes that at the
        end active boundary time we are using the end value whereas we are using the start value. Indeed, since the
        fill-mode is "none", at the end of the active time, the progress is null per the Web Animations spec.
        * animations/animation-hit-test-transform.html: Stop using the internals method.
        * animations/animation-internals-api-expected.txt: Removed.
        * animations/animation-internals-api-multiple-keyframes-expected.txt: Removed.
        * animations/animation-internals-api-multiple-keyframes.html: Removed. This test only tests an internals method
        that is no longer relevant for the new animation engine, but preserved for compatibility with legacy tests.
        * animations/animation-internals-api.html: Removed. This test only tests an internals method that is no longer
        relevant for the new animation engine, but preserved for compatibility with legacy tests.
        * animations/big-rotation-expected.txt:
        * animations/big-rotation.html: Here again we are correcting a test which made the wrong assumption about the
        value generated at the end active boundary time.
        * animations/duplicated-keyframes-name.html: We make the animation fill forwards to check that we are using
        the correct end value for an animation with multiple 100% keyframe.
        * animations/fill-forwards-end-state.html: Same as previous test.
        * animations/fill-mode-forwards-zero-duration-expected.txt:
        * animations/fill-mode-forwards-zero-duration.html: This test should seek after its delay + duration, so we test
        at 3s instead of 1s. This is due to a behavior difference between internals.pauseAnimationAtTimeOnElement() and
        its replacement.
        * fast/css-generated-content/pseudo-animation.html: Use internals.pseudoElement() and the Web Animations API rather
        than internals.pauseAnimationAtTimeOnPseudoElement().
        * fast/css-generated-content/pseudo-transition.html: Use internals.pseudoElement() and the Web Animations API rather
        than internals.pauseTransitionAtTimeOnPseudoElement().
        * platform/ios/TestExpectations:
        * platform/win/TestExpectations: Remove references to tests that we are removing.
        * transitions/remove-transition-style.html: Use document.getAnimations() to figure out how many animations are running.
        * transitions/transition-drt-api-delay-expected.txt: Removed.
        * transitions/transition-drt-api-delay.html: Removed. This test only tests an internals method that is no longer
        relevant for the new animation engine, but preserved for compatibility with legacy tests.
        * transitions/transition-drt-api-expected.txt: Removed.
        * transitions/transition-drt-api.html: Removed. This test only tests an internals method that is no longer
        relevant for the new animation engine, but preserved for compatibility with legacy tests.
        * transitions/transition-hit-test-transform.html: Stop using internals.pauseTransitionAtTimeOnElement().
        * transitions/zero-duration-with-non-zero-delay-end.html: Use the Web Animations API instead of internals.numberOfActiveAnimations().

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

        Mark some legacy-animation-engine tests as failures on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=184482

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-04-13  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][GStreamer] Mark a few crashing tests since playbin3 was made available

        Unreviewed gardening
        * platform/gtk/TestExpectations:

2018-04-12  Keith Rollin  <krollin@apple.com>

        [mac-wk2] LayoutTest http/tests/security/anchor-download-allow-data.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=161745
        <rdar://problem/39391176>

        Unreviewed test gardening. Re-enable this test now that it is
        consistently passing.

        * platform/mac-wk2/TestExpectations:

2018-04-12  Keith Rollin  <krollin@apple.com>

        REGRESSION: [mac-wk2 release] LayoutTest http/tests/security/cross-origin-plugin-allowed.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=161539
        <rdar://problem/39389781>

        Unreviewed test gardening. Re-enabled this test. It passes in local
        testing and the flakiness dashboard doesn't show any problems with it.

        * platform/mac-wk2/TestExpectations:

2018-04-12  Keith Rollin  <krollin@apple.com>

        Address possible "CFNetwork SSLHandshake failed (-9847)" test failure.
        https://bugs.webkit.org/show_bug.cgi?id=184487

        Unreviewed test gardening. Mark
        upgrade-redirect-https-to-http-script-in-iframe.html as no longer
        flaky.

        * platform/mac/TestExpectations:

2018-04-12  Daniel Bates  <dabates@apple.com>

        Content-Type not enforced for <script> allows for XSS
        https://bugs.webkit.org/show_bug.cgi?id=184386
        <rdar://problem/39112268>

        Reviewed by Brady Eidson.

        Add tests to ensure that we block JavaScript scripts with a banned MIME type and update expected results.

        Update tests http/tests/security/{cross-origin-cached-scripts, cross-origin-cached-scripts-parallel}.html
        to load JavaScript scripts with MIME type text/javascript. These tests load JavaScript scripts indirectly
        via the helper script LayoutTests/http/tests/security/resources/allow-if-origin.php. The script
        allow-if-origin.php returns a response with MIME type image/png in absence of query string argument
        contentType. We need to update these tests to pass contentType=text/javascript to allow-if-origin.php.

        * TestExpectations: Mark test web-platform-tests/fetch/api/basic/block-mime-as-script.html DumpJSConsoleLogInStdErr
        to ignore console message output when comparing the actual and expected result because the order the
        sub tests are run is non-deterministic and the blocked MIME error message is specific to the blocked
        response.
        * http/tests/security/contentTypeOptions/invalid-content-type-options-allowed-expected.txt:
        * http/tests/security/contentTypeOptions/invalid-content-type-options-allowed.html:
        * http/tests/security/contentTypeOptions/resources/script-with-header.pl: Modified to only
        set the HTTP header X-Content-Type-Options if the query argument no-content-type-options it
        not present or evaluates to false in a boolean context. This lets us make use of this script
        to test banned JavaScript MIME types.
        * http/tests/security/cross-origin-cached-scripts-expected.txt:
        * http/tests/security/cross-origin-cached-scripts-parallel-expected.txt:
        * http/tests/security/cross-origin-cached-scripts-parallel.html:
        * http/tests/security/cross-origin-cached-scripts.html:
        * http/tests/security/resources/abe-that-increments-scriptsSuccessfullyLoaded.jpg: Added.
        This file is both a valid JPEG image and a valid JavaScript script. When interpreted as a JavaScript
        script it will increment the global variable self.scriptsSuccessfullyLoaded (defining it if
        not already defined).
        * http/tests/security/script-with-banned-mimetype-expected.txt: Added.
        * http/tests/security/script-with-banned-mimetype.html: Added.
        * http/tests/workers/resources/worker-importScripts-banned-mimetype.php: Added.
        * http/tests/workers/worker-importScripts-banned-mimetype-expected.txt: Added.
        * http/tests/workers/worker-importScripts-banned-mimetype.html: Added.

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

        [Web Animations] Fix a host of small CSS Animations and CSS Transitions issues
        https://bugs.webkit.org/show_bug.cgi?id=184555

        Reviewed by Dean Jackson.

        Mark more tests as passing when the CSS Animations and CSS Transitions as Web Animations flag is on.

        * animations/animation-border-overflow.html:
        * animations/lineheight-animation.html:
        * animations/missing-from-to-transforms.html:
        * animations/missing-values-first-keyframe.html:
        * animations/missing-values-last-keyframe.html:
        * animations/transition-and-animation-1.html:
        * animations/transition-and-animation-2.html:
        * animations/transition-and-animation-3.html:
        * animations/width-using-ems.html:
        * compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/scale-rotation-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * css3/filters/filter-animation-from-none-hw.html:
        * css3/filters/filter-animation-from-none-multi-hw.html:
        * css3/filters/filter-animation-from-none-multi.html:
        * css3/filters/filter-animation-from-none.html:
        * imported/blink/transitions/unprefixed-transform.html:
        * transitions/interrupted-all-transition.html:

2018-04-12  Keith Rollin  <krollin@apple.com>

        Fix flakiness in insecure-iframe-in-main-frame.html
        https://bugs.webkit.org/show_bug.cgi?id=184432

        Reviewed by Daniel Bates.

        Mark insecure-iframe-in-main-frame.html as no longer flaky. Tweak it
        so that the frame-load events of the test window do no interleave with
        the frame-load events of the window opened by the test so that any
        non-deterministic behavior doesn't affect the order of the expect
        sequence of messages.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt:

2018-04-12  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r230554.

        The non-ASCII character in the filename causes issues with SVN

        Reverted changeset:

        "input.webkitEntries does not work as expected when folder
        contains accented chars"
        https://bugs.webkit.org/show_bug.cgi?id=184517
        https://trac.webkit.org/changeset/230554

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

        [Web Animations] Suspend animations when required
        https://bugs.webkit.org/show_bug.cgi?id=184541

        Reviewed by Jon Lee.

        Mark more tests as passing when the CSS Animations and CSS Transitions as Web Animations flag is on.

        * animations/animation-controller-drt-api.html:
        * animations/animation-followed-by-transition.html:
        * fast/animation/css-animation-resuming-when-visible-with-style-change.html:
        * fast/animation/css-animation-resuming-when-visible.html:

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

        [Web Animations] Throttle animations when lowPowerMode is on
        https://bugs.webkit.org/show_bug.cgi?id=184540

        Reviewed by Jon Lee.

        Mark one more test as passing when the CSS Animations and CSS Transitions as Web Animations flag is on.

        * fast/animation/css-animation-throttling-lowPowerMode.html:

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

        [Web Animations] Ensure elements overlapping with elements animating also get composited
        https://bugs.webkit.org/show_bug.cgi?id=184539

        Reviewed by Jon Lee.

        Opt more tests in the CSS Animations and CSS Transitions as Web Animations runtime flag since they now pass.

        * compositing/backing/backface-visibility-flip.html:
        * compositing/layer-creation/overlap-animation-clipping.html:
        * compositing/layer-creation/overlap-animation-container.html:
        * compositing/layer-creation/overlap-animation.html:
        * compositing/layer-creation/translate-animation-overlap.html:

2018-04-11  Antoine Quint  <graouts@apple.com>

        [Web Animations] Enable seeking for hardware animations
        https://bugs.webkit.org/show_bug.cgi?id=184518

        Reviewed by Dean Jackson.

        Update current test expectations, some tests have regressed because they weren't probably running their hardware
        animations. Followup patches will make them opt into CSS Animations and CSS Transitions as Web Animations again.

        * animations/3d/transform-origin-vs-functions.html:
        * animations/change-completed-animation-transform.html:
        * animations/missing-values-first-keyframe.html:
        * animations/missing-values-last-keyframe.html:
        * animations/play-state-start-paused.html:
        * compositing/contents-scale/animating.html:
        * compositing/layer-creation/animation-overlap-with-children.html:
        * compositing/overflow/overflow-positioning.html:
        * compositing/visible-rect/animated.html:
        * css3/filters/filter-animation-from-none-hw.html:
        * css3/filters/filter-animation-from-none-multi-hw.html:
        * css3/filters/filter-animation-from-none-multi.html:
        * css3/filters/filter-animation-from-none.html:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:

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

        Skip the test fast/forms/file/entries-api/webkitEntries-nonascii-folder-name.html on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=184537

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-04-12  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Adding or updating more baselines affected by
        web-platform-test syncs in r230330, r230353 and r230445.

        * platform/wpe/imported/w3c/web-platform-tests/FileAPI: Added.
        * platform/wpe/imported/w3c/web-platform-tests/FileAPI/url: Added.
        * platform/wpe/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/request: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-area-element: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-area-element/area-download-click-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/text-level-semantics: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/streams: Added.
        * platform/wpe/imported/w3c/web-platform-tests/streams/readable-byte-streams: Added.
        * platform/wpe/imported/w3c/web-platform-tests/streams/readable-byte-streams/general-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/touch-events: Added.
        * platform/wpe/imported/w3c/web-platform-tests/touch-events/historical-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/webaudio: Added.
        * platform/wpe/imported/w3c/web-platform-tests/webaudio/the-audio-api: Added.
        * platform/wpe/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface: Added.
        * platform/wpe/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt: Added.

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

        input.webkitEntries does not work as expected when folder contains accented chars
        https://bugs.webkit.org/show_bug.cgi?id=184517
        <rdar://problem/39265537>

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/forms/file/entries-api/webkitEntries-nonascii-folder-name-expected.txt: Added.
        * fast/forms/file/entries-api/webkitEntries-nonascii-folder-name.html: Added.

2018-04-11  Youenn Fablet  <youenn@apple.com>

        Preventively expect UTF8 strings from libwebrtc SDP and error messages
        https://bugs.webkit.org/show_bug.cgi?id=184509

        Reviewed by Eric Carlson.

        * webrtc/utf8-sdp-expected.txt: Added.
        * webrtc/utf8-sdp.html: Added.

2018-04-11  Alicia Boya García  <aboya@igalia.com>

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

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-is-type-supported-expected.txt:
        * platform/ios-wk1/TestExpectations:
        * platform/ios-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2018-04-11  Brent Fulgham  <bfulgham@apple.com>

        Show punycode if URL contains Latin dum character
        https://bugs.webkit.org/show_bug.cgi?id=184477
        <rdar://problem/39121999>

        Reviewed by David Kilzer.

        * fast/url/host-expected.txt:
        * fast/url/host.html:

2018-04-11  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] Missing label when focusing a <select> with a title attribute but no associated <label>
        https://bugs.webkit.org/show_bug.cgi?id=184352
        <rdar://problem/39237683>

        Reviewed by Andy Estes.

        Add a new layout test to check that the title of select elements is propagated to the UI process upon focus.
        This title is used for several purposes, one of them being the title of select menus in the table view
        controller presented when tapping on a select on an iPad, so the test checks that the title of the select is
        shown here.

        Also moves a select-related helper into UIHelper from basic-gestures.js (since this doesn't involve user gesture
        simulation in any way) and also introduces a new UIHelper method for querying the title of the select menu that
        is currently being presented.

        * fast/forms/ios/ipad/multiple-select-updates-renderer.html:
        * fast/forms/ios/ipad/select-with-title-expected.txt: Added.
        * fast/forms/ios/ipad/select-with-title.html: Copied from LayoutTests/fast/forms/ios/ipad/multiple-select-updates-renderer.html.
        * resources/basic-gestures.js:
        * resources/ui-helper.js:
        (window.UIHelper.selectFormAccessoryPickerRow):
        (window.UIHelper.selectFormPopoverTitle):
        (window.UIHelper):

2018-04-10  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184456

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-04-11  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Updating expectations and moving baselines
        for EME and WebCryptoAPI tests after W3C sync in r230445.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/: Updated.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/: Updated.

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

        FrameSelection::appearanceUpdateTimerFired should be robust against layout passes underneath it
        https://bugs.webkit.org/show_bug.cgi?id=183395
        <rdar://problem/38055732>

        Reviewed by Zalan Bujtas.

        Add a new layout test that passes if we didn't crash.

        * editing/selection/iframe-update-selection-appearance-expected.txt: Added.
        * editing/selection/iframe-update-selection-appearance.html: Added.

2018-04-10  Nan Wang  <n_wang@apple.com>

        AX: Expose strong password fields on iOS
        https://bugs.webkit.org/show_bug.cgi?id=184465
        <rdar://problem/39325104>

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/strong-password-field-expected.txt: Added.
        * accessibility/ios-simulator/strong-password-field.html: Added.

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

        Mark legacy-animation-engine/compositing tests as failures on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=184482

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-04-10  Ryan Haddad  <ryanhaddad@apple.com>

        Mark legacy-animation-engine/animations/animation-callback-timestamp.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184459

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-04-10  Keith Rollin  <krollin@apple.com>

        http/tests/security/shape-image-cors-redirect-error-message-logging-*.html tests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=155634
        <rdar://problem/39326489>

        Reviewed by Youenn Fablet.

        These tests no longer appear to be flaky. I believe they were
        addressed in <https://trac.webkit.org/changeset/217069/webkit>. After
        enabling the test and rebasing the results, I ran run-webkit-tests
        with --repeat-each=20 --iterations=20, and then I wrapped the
        run-webkit-tests command in a loop that invoked it 20 times.

        * TestExpectations:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-3-expected.txt:
        * http/tests/security/shape-image-cors-redirect-error-message-logging-4-expected.txt:

2018-04-10  Youenn Fablet  <youenn@apple.com>

        Beacon redirect responses should be CORS validated
        https://bugs.webkit.org/show_bug.cgi?id=184378

        Reviewed by Chris Dumez.

        * TestExpectations:
        * http/wpt/beacon/cors/cors-redirect-failure-expected.txt: Added.
        * http/wpt/beacon/cors/cors-redirect-failure.html: Added.
        * http/wpt/beacon/resources/redirect.py:
        (main):

2018-04-10  Youenn Fablet  <youenn@apple.com>

        webrtc/datachannel/bufferedAmountLowThreshold tests are failing on WK1
        https://bugs.webkit.org/show_bug.cgi?id=184427

        Reviewed by Eric Carlson.

        Decrease the size of the string sent as one chunk as it may create timeouts.
        Instead, we will call more often the send method untile reaching the threshold.

        * platform/mac-wk1/TestExpectations:
        * webrtc/datachannel/bufferedAmountLowThreshold-default.html:
        * webrtc/datachannel/bufferedAmountLowThreshold.html:

2018-04-10  Sihui Liu  <sihui_liu@apple.com>

        Loading of multipart response was cancelled because of content policy set in WebFrameLoaderClient::dispatchDecidePolicyForResponse
        https://bugs.webkit.org/show_bug.cgi?id=184268
        <rdar://problem/39144446>

        Reviewed by Chris Dumez.

        * http/tests/multipart/multipart-html-expected.txt:
        * http/tests/multipart/multipart-html.php:

2018-04-10  Ryan Haddad  <ryanhaddad@apple.com>

        Mark imported/w3c/web-platform-tests/workers/name-property.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184453

        Unreviewed test gardening.

        * TestExpectations:

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

        Update test expectations in the new legacy-animation-engine directory.

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-04-09  Antoine Quint  <graouts@apple.com>

        Attempt to fix some test reported test failures in the new legacy-animation-engine directory. 

        Unreviewed test gardening.

        * platform/win/TestExpectations:
        * platform/wpe/TestExpectations:

2018-04-09  Antoine Quint  <graouts@apple.com>

        [Web Animations] Duplicate layout tests exercising CSS Animations and CSS Transitions in a dedicated legacy directory
        https://bugs.webkit.org/show_bug.cgi?id=184420

        Reviewed by Dean Jackson.

        This is the first step towards turning CSS Animations and CSS Transitions as Web Animations on by default. Here, we
        take all existing layout tests using CSS Animations and CSS Transitions and duplicate them in "legacy" directories
        such that we can keep them running with the legacy animation engine once the flag is switched. Future patches will
        update DRT and WKTR to make these tests run with the legacy code path by default.

        * TestExpectations:
        * legacy-animation-engine/accessibility/content-changed-notification-causes-crash-expected.txt: Added.
        * legacy-animation-engine/accessibility/content-changed-notification-causes-crash.html: Added.
        * legacy-animation-engine/accessibility/transformed-bounds-expected.txt: Added.
        * legacy-animation-engine/accessibility/transformed-bounds.html: Added.
        * legacy-animation-engine/animations/3d/change-transform-in-end-event.html: Added.
        * legacy-animation-engine/animations/3d/matrix-transform-type-animation.html: Added.
        * legacy-animation-engine/animations/3d/replace-filling-transform-expected.png: Added.
        * legacy-animation-engine/animations/3d/replace-filling-transform-expected.txt: Added.
        * legacy-animation-engine/animations/3d/replace-filling-transform.html: Added.
        * legacy-animation-engine/animations/3d/state-at-end-event-transform.html: Added.
        * legacy-animation-engine/animations/3d/transform-origin-vs-functions-expected.txt: Added.
        * legacy-animation-engine/animations/3d/transform-origin-vs-functions.html: Added.
        * legacy-animation-engine/animations/3d/transform-perspective-expected.txt: Added.
        * legacy-animation-engine/animations/3d/transform-perspective.html: Added.
        * legacy-animation-engine/animations/CSSKeyframesRule-name-null-expected.txt: Added.
        * legacy-animation-engine/animations/CSSKeyframesRule-name-null.html: Added.
        * legacy-animation-engine/animations/CSSKeyframesRule-parameters-expected.txt: Added.
        * legacy-animation-engine/animations/CSSKeyframesRule-parameters.html: Added.
        * legacy-animation-engine/animations/added-while-suspended-expected.txt: Added.
        * legacy-animation-engine/animations/added-while-suspended.html: Added.
        * legacy-animation-engine/animations/additive-transform-animations-expected.png: Added.
        * legacy-animation-engine/animations/additive-transform-animations.html: Added.
        * legacy-animation-engine/animations/animation-add-events-in-handler-expected.txt: Added.
        * legacy-animation-engine/animations/animation-add-events-in-handler.html: Added.
        * legacy-animation-engine/animations/animation-border-overflow-expected.txt: Added.
        * legacy-animation-engine/animations/animation-border-overflow.html: Added.
        * legacy-animation-engine/animations/animation-callback-timestamp-expected.txt: Added.
        * legacy-animation-engine/animations/animation-callback-timestamp.html: Added.
        * legacy-animation-engine/animations/animation-controller-drt-api-expected.txt: Added.
        * legacy-animation-engine/animations/animation-controller-drt-api.html: Added.
        * legacy-animation-engine/animations/animation-css-rule-types-expected.txt: Added.
        * legacy-animation-engine/animations/animation-css-rule-types.html: Added.
        * legacy-animation-engine/animations/animation-delay-changed-expected.txt: Added.
        * legacy-animation-engine/animations/animation-delay-changed.html: Added.
        * legacy-animation-engine/animations/animation-direction-alternate-reverse-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-alternate-reverse.html: Added.
        * legacy-animation-engine/animations/animation-direction-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-normal-expected.png: Added.
        * legacy-animation-engine/animations/animation-direction-normal-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-normal.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-fill-mode-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-fill-mode-hardware-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-fill-mode-hardware.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-fill-mode.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-hardware-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-hardware-opacity-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-hardware-opacity.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-hardware.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-non-hardware-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-non-hardware.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-timing-functions-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-timing-functions-hardware-expected.txt: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-timing-functions-hardware.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse-timing-functions.html: Added.
        * legacy-animation-engine/animations/animation-direction-reverse.html: Added.
        * legacy-animation-engine/animations/animation-direction.html: Added.
        * legacy-animation-engine/animations/animation-end-event-destroy-renderer-expected.txt: Added.
        * legacy-animation-engine/animations/animation-end-event-destroy-renderer.html: Added.
        * legacy-animation-engine/animations/animation-end-event-short-iterations-expected.txt: Added.
        * legacy-animation-engine/animations/animation-end-event-short-iterations.html: Added.
        * legacy-animation-engine/animations/animation-events-create-expected.txt: Added.
        * legacy-animation-engine/animations/animation-events-create.html: Added.
        * legacy-animation-engine/animations/animation-events-not-cancelable-expected.txt: Added.
        * legacy-animation-engine/animations/animation-events-not-cancelable.html: Added.
        * legacy-animation-engine/animations/animation-followed-by-transition-expected.txt: Added.
        * legacy-animation-engine/animations/animation-followed-by-transition.html: Added.
        * legacy-animation-engine/animations/animation-hit-test-expected.txt: Added.
        * legacy-animation-engine/animations/animation-hit-test-transform-expected.txt: Added.
        * legacy-animation-engine/animations/animation-hit-test-transform.html: Added.
        * legacy-animation-engine/animations/animation-hit-test.html: Added.
        * legacy-animation-engine/animations/animation-initial-inheritance-expected.html: Added.
        * legacy-animation-engine/animations/animation-initial-inheritance.html: Added.
        * legacy-animation-engine/animations/animation-internals-api-expected.txt: Added.
        * legacy-animation-engine/animations/animation-internals-api-multiple-keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/animation-internals-api-multiple-keyframes.html: Added.
        * legacy-animation-engine/animations/animation-internals-api.html: Added.
        * legacy-animation-engine/animations/animation-iteration-event-destroy-renderer-expected.txt: Added.
        * legacy-animation-engine/animations/animation-iteration-event-destroy-renderer.html: Added.
        * legacy-animation-engine/animations/animation-matrix-negative-scale-unmatrix-expected.txt: Added.
        * legacy-animation-engine/animations/animation-matrix-negative-scale-unmatrix.html: Added.
        * legacy-animation-engine/animations/animation-multiple-callbacks-timestamp-expected.txt: Added.
        * legacy-animation-engine/animations/animation-multiple-callbacks-timestamp.html: Added.
        * legacy-animation-engine/animations/animation-offscreen-to-onscreen-expected.png: Added.
        * legacy-animation-engine/animations/animation-offscreen-to-onscreen-expected.txt: Added.
        * legacy-animation-engine/animations/animation-offscreen-to-onscreen.html: Added.
        * legacy-animation-engine/animations/animation-on-inline-crash-expected.txt: Added.
        * legacy-animation-engine/animations/animation-on-inline-crash.html: Added.
        * legacy-animation-engine/animations/animation-shorthand-expected.txt: Added.
        * legacy-animation-engine/animations/animation-shorthand-name-order-expected.txt: Added.
        * legacy-animation-engine/animations/animation-shorthand-name-order.html: Added.
        * legacy-animation-engine/animations/animation-shorthand-overriding-expected.txt: Added.
        * legacy-animation-engine/animations/animation-shorthand-overriding.html: Added.
        * legacy-animation-engine/animations/animation-shorthand-removed-expected.txt: Added.
        * legacy-animation-engine/animations/animation-shorthand-removed.html: Added.
        * legacy-animation-engine/animations/animation-shorthand.html: Added.
        * legacy-animation-engine/animations/animation-start-event-destroy-renderer-expected.txt: Added.
        * legacy-animation-engine/animations/animation-start-event-destroy-renderer.html: Added.
        * legacy-animation-engine/animations/animation-welcome-safari-expected.txt: Added.
        * legacy-animation-engine/animations/animation-welcome-safari.html: Added.
        * legacy-animation-engine/animations/big-rotation-expected.txt: Added.
        * legacy-animation-engine/animations/big-rotation.html: Added.
        * legacy-animation-engine/animations/body-removal-crash-expected.txt: Added.
        * legacy-animation-engine/animations/body-removal-crash.html: Added.
        * legacy-animation-engine/animations/change-completed-animation-expected.txt: Added.
        * legacy-animation-engine/animations/change-completed-animation-transform-expected.html: Added.
        * legacy-animation-engine/animations/change-completed-animation-transform.html: Added.
        * legacy-animation-engine/animations/change-completed-animation.html: Added.
        * legacy-animation-engine/animations/change-keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/change-keyframes-name-expected.txt: Added.
        * legacy-animation-engine/animations/change-keyframes-name.html: Added.
        * legacy-animation-engine/animations/change-keyframes.html: Added.
        * legacy-animation-engine/animations/change-one-anim-expected.txt: Added.
        * legacy-animation-engine/animations/change-one-anim.html: Added.
        * legacy-animation-engine/animations/change-transform-style-during-animation-expected.png: Added.
        * legacy-animation-engine/animations/change-transform-style-during-animation-expected.txt: Added.
        * legacy-animation-engine/animations/change-transform-style-during-animation.html: Added.
        * legacy-animation-engine/animations/combo-transform-rotate+scale-expected.txt: Added.
        * legacy-animation-engine/animations/combo-transform-rotate+scale.html: Added.
        * legacy-animation-engine/animations/combo-transform-translate+scale-expected.txt: Added.
        * legacy-animation-engine/animations/combo-transform-translate+scale.html: Added.
        * legacy-animation-engine/animations/computed-style-expected.txt: Added.
        * legacy-animation-engine/animations/computed-style.html: Added.
        * legacy-animation-engine/animations/crash-on-removing-animation-expected.txt: Added.
        * legacy-animation-engine/animations/crash-on-removing-animation.html: Added.
        * legacy-animation-engine/animations/cross-fade-background-image-expected.html: Added.
        * legacy-animation-engine/animations/cross-fade-background-image.html: Added.
        * legacy-animation-engine/animations/cross-fade-border-image-source.html: Added.
        * legacy-animation-engine/animations/cross-fade-list-style-image.html: Added.
        * legacy-animation-engine/animations/cross-fade-webkit-mask-box-image.html: Added.
        * legacy-animation-engine/animations/cross-fade-webkit-mask-image.html: Added.
        * legacy-animation-engine/animations/duplicate-keys-expected.html: Added.
        * legacy-animation-engine/animations/duplicate-keys.html: Added.
        * legacy-animation-engine/animations/duplicated-keyframes-name-expected.txt: Added.
        * legacy-animation-engine/animations/duplicated-keyframes-name.html: Added.
        * legacy-animation-engine/animations/dynamic-stylesheet-loading-expected.txt: Added.
        * legacy-animation-engine/animations/dynamic-stylesheet-loading.html: Added.
        * legacy-animation-engine/animations/empty-keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/empty-keyframes.html: Added.
        * legacy-animation-engine/animations/fill-forwards-auto-height-expected.html: Added.
        * legacy-animation-engine/animations/fill-forwards-auto-height.html: Added.
        * legacy-animation-engine/animations/fill-forwards-end-state-expected.txt: Added.
        * legacy-animation-engine/animations/fill-forwards-end-state.html: Added.
        * legacy-animation-engine/animations/fill-mode-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-forwards-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-forwards-zero-duration-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html: Added.
        * legacy-animation-engine/animations/fill-mode-forwards.html: Added.
        * legacy-animation-engine/animations/fill-mode-forwards2-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-forwards2.html: Added.
        * legacy-animation-engine/animations/fill-mode-iteration-count-non-integer-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-iteration-count-non-integer.html: Added.
        * legacy-animation-engine/animations/fill-mode-missing-from-to-keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-missing-from-to-keyframes.html: Added.
        * legacy-animation-engine/animations/fill-mode-multiple-keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-multiple-keyframes.html: Added.
        * legacy-animation-engine/animations/fill-mode-removed-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-removed.html: Added.
        * legacy-animation-engine/animations/fill-mode-reverse-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-reverse.html: Added.
        * legacy-animation-engine/animations/fill-mode-transform-expected.txt: Added.
        * legacy-animation-engine/animations/fill-mode-transform.html: Added.
        * legacy-animation-engine/animations/fill-mode.html: Added.
        * legacy-animation-engine/animations/fill-unset-properties-expected.txt: Added.
        * legacy-animation-engine/animations/fill-unset-properties.html: Added.
        * legacy-animation-engine/animations/font-size-using-ems-expected.txt: Added.
        * legacy-animation-engine/animations/font-size-using-ems.html: Added.
        * legacy-animation-engine/animations/font-variations/font-stretch-expected.txt: Added.
        * legacy-animation-engine/animations/font-variations/font-stretch.html: Added.
        * legacy-animation-engine/animations/font-variations/font-style-expected.txt: Added.
        * legacy-animation-engine/animations/font-variations/font-style.html: Added.
        * legacy-animation-engine/animations/font-variations/font-variation-settings-expected.txt: Added.
        * legacy-animation-engine/animations/font-variations/font-variation-settings-order-expected.txt: Added.
        * legacy-animation-engine/animations/font-variations/font-variation-settings-order.html: Added.
        * legacy-animation-engine/animations/font-variations/font-variation-settings-unlike-expected.txt: Added.
        * legacy-animation-engine/animations/font-variations/font-variation-settings-unlike.html: Added.
        * legacy-animation-engine/animations/font-variations/font-variation-settings.html: Added.
        * legacy-animation-engine/animations/font-variations/font-weight-expected.txt: Added.
        * legacy-animation-engine/animations/font-variations/font-weight.html: Added.
        * legacy-animation-engine/animations/font-variations/resources/Boxis-VF.ttf: Added.
        * legacy-animation-engine/animations/generic-from-to-expected.txt: Added.
        * legacy-animation-engine/animations/generic-from-to.html: Added.
        * legacy-animation-engine/animations/import-crash-expected.txt: Added.
        * legacy-animation-engine/animations/import-crash.html: Added.
        * legacy-animation-engine/animations/import-expected.txt: Added.
        * legacy-animation-engine/animations/import.html: Added.
        * legacy-animation-engine/animations/keyframe-autoclose-brace-expected.txt: Added.
        * legacy-animation-engine/animations/keyframe-autoclose-brace.html: Added.
        * legacy-animation-engine/animations/keyframe-multiple-timing-functions-transform-expected.txt: Added.
        * legacy-animation-engine/animations/keyframe-multiple-timing-functions-transform.html: Added.
        * legacy-animation-engine/animations/keyframe-selector-negative-percentage-expected.txt: Added.
        * legacy-animation-engine/animations/keyframe-selector-negative-percentage.html: Added.
        * legacy-animation-engine/animations/keyframe-timing-functions-expected.txt: Added.
        * legacy-animation-engine/animations/keyframe-timing-functions-transform-expected.txt: Added.
        * legacy-animation-engine/animations/keyframe-timing-functions-transform.html: Added.
        * legacy-animation-engine/animations/keyframe-timing-functions.html: Added.
        * legacy-animation-engine/animations/keyframe-timing-functions2-expected.txt: Added.
        * legacy-animation-engine/animations/keyframe-timing-functions2.html: Added.
        * legacy-animation-engine/animations/keyframes-comma-separated-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-comma-separated.html: Added.
        * legacy-animation-engine/animations/keyframes-dynamic-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-dynamic.html: Added.
        * legacy-animation-engine/animations/keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-infinite-iterations-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-infinite-iterations.html: Added.
        * legacy-animation-engine/animations/keyframes-invalid-keys-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-invalid-keys.html: Added.
        * legacy-animation-engine/animations/keyframes-iteration-count-non-integer-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-iteration-count-non-integer.html: Added.
        * legacy-animation-engine/animations/keyframes-out-of-order-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-out-of-order.html: Added.
        * legacy-animation-engine/animations/keyframes-rule-expected.txt: Added.
        * legacy-animation-engine/animations/keyframes-rule.html: Added.
        * legacy-animation-engine/animations/keyframes.html: Added.
        * legacy-animation-engine/animations/large-negative-delay-expected.txt: Added.
        * legacy-animation-engine/animations/large-negative-delay.html: Added.
        * legacy-animation-engine/animations/lineheight-animation-expected.txt: Added.
        * legacy-animation-engine/animations/lineheight-animation.html: Added.
        * legacy-animation-engine/animations/longhand-timing-function-expected.txt: Added.
        * legacy-animation-engine/animations/longhand-timing-function.html: Added.
        * legacy-animation-engine/animations/matrix-anim-expected.txt: Added.
        * legacy-animation-engine/animations/matrix-anim.html: Added.
        * legacy-animation-engine/animations/missing-from-to-expected.txt: Added.
        * legacy-animation-engine/animations/missing-from-to-transforms-expected.txt: Added.
        * legacy-animation-engine/animations/missing-from-to-transforms.html: Added.
        * legacy-animation-engine/animations/missing-from-to.html: Added.
        * legacy-animation-engine/animations/missing-keyframe-properties-expected.txt: Added.
        * legacy-animation-engine/animations/missing-keyframe-properties-repeating-expected.txt: Added.
        * legacy-animation-engine/animations/missing-keyframe-properties-repeating.html: Added.
        * legacy-animation-engine/animations/missing-keyframe-properties-timing-function-expected.txt: Added.
        * legacy-animation-engine/animations/missing-keyframe-properties-timing-function.html: Added.
        * legacy-animation-engine/animations/missing-keyframe-properties.html: Added.
        * legacy-animation-engine/animations/missing-values-first-keyframe-expected.png: Added.
        * legacy-animation-engine/animations/missing-values-first-keyframe.html: Added.
        * legacy-animation-engine/animations/missing-values-last-keyframe-expected.png: Added.
        * legacy-animation-engine/animations/missing-values-last-keyframe.html: Added.
        * legacy-animation-engine/animations/multiple-animations-expected.txt: Added.
        * legacy-animation-engine/animations/multiple-animations-timing-function-expected.txt: Added.
        * legacy-animation-engine/animations/multiple-animations-timing-function.html: Added.
        * legacy-animation-engine/animations/multiple-animations.html: Added.
        * legacy-animation-engine/animations/multiple-backgrounds-expected.html: Added.
        * legacy-animation-engine/animations/multiple-backgrounds.html: Added.
        * legacy-animation-engine/animations/multiple-keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/multiple-keyframes.html: Added.
        * legacy-animation-engine/animations/needs-layout-expected.html: Added.
        * legacy-animation-engine/animations/needs-layout.html: Added.
        * legacy-animation-engine/animations/negative-delay-expected.txt: Added.
        * legacy-animation-engine/animations/negative-delay.html: Added.
        * legacy-animation-engine/animations/opacity-transform-animation-expected.png: Added.
        * legacy-animation-engine/animations/opacity-transform-animation-expected.txt: Added.
        * legacy-animation-engine/animations/opacity-transform-animation.html: Added.
        * legacy-animation-engine/animations/pause-crash-expected.txt: Added.
        * legacy-animation-engine/animations/pause-crash.html: Added.
        * legacy-animation-engine/animations/play-state-expected.txt: Added.
        * legacy-animation-engine/animations/play-state-in-shorthand-expected.txt: Added.
        * legacy-animation-engine/animations/play-state-in-shorthand.html: Added.
        * legacy-animation-engine/animations/play-state-paused-expected.png: Added.
        * legacy-animation-engine/animations/play-state-paused-expected.txt: Added.
        * legacy-animation-engine/animations/play-state-paused.html: Added.
        * legacy-animation-engine/animations/play-state-start-paused-expected.html: Added.
        * legacy-animation-engine/animations/play-state-start-paused.html: Added.
        * legacy-animation-engine/animations/play-state-suspend-expected.txt: Added.
        * legacy-animation-engine/animations/play-state-suspend.html: Added.
        * legacy-animation-engine/animations/play-state.html: Added.
        * legacy-animation-engine/animations/remove-syncing-animation-expected.txt: Added.
        * legacy-animation-engine/animations/remove-syncing-animation.html: Added.
        * legacy-animation-engine/animations/resources/anim.html: Added.
        * legacy-animation-engine/animations/resources/animation-test-helpers.js: Added.
        (isCloseEnough):
        (matrixStringToArray):
        (parseCSSImage):
        (parseCrossFade):
        (parseFilterImage):
        (parseFilterFunctionList):
        (parseBasicShape):
        (compareCSSImages):
        (compareFontVariationSettings):
        (compareFontStyle):
        (compareFilterFunctions):
        (basicShapeParametersMatch):
        (checkExpectedValue):
        (getPropertyValue):
        (comparePropertyValue):
        (endTest):
        (checkExpectedValueCallback):
        (startTest):
        (runAnimationTest):
        (waitForAnimationToStart):
        * legacy-animation-engine/animations/resources/blue-100.png: Added.
        * legacy-animation-engine/animations/resources/crash-on-removing-animation-window.html: Added.
        * legacy-animation-engine/animations/resources/dynamic-stylesheet-insertion-inserted.css: Added.
        * legacy-animation-engine/animations/resources/dynamic-stylesheet-insertion-main.css: Added.
        (body):
        (#splash):
        (@-webkit-keyframes splashdown):
        (30%):
        (40%):
        (90%):
        (100%):
        * legacy-animation-engine/animations/resources/green-100.png: Added.
        * legacy-animation-engine/animations/resources/keyframes.css: Added.
        (@-webkit-keyframes "anim"):
        (20%):
        (40%):
        (60%):
        (80%):
        (to):
        * legacy-animation-engine/animations/resources/page-cache-helper.html: Added.
        * legacy-animation-engine/animations/resources/stop-animation-on-suspend-subframe.html: Added.
        * legacy-animation-engine/animations/resources/stripes-100.png: Added.
        * legacy-animation-engine/animations/restart-after-scroll-expected.txt: Added.
        * legacy-animation-engine/animations/restart-after-scroll-nested-expected.txt: Added.
        * legacy-animation-engine/animations/restart-after-scroll-nested.html: Added.
        * legacy-animation-engine/animations/restart-after-scroll.html: Added.
        * legacy-animation-engine/animations/resume-after-page-cache-expected.txt: Added.
        * legacy-animation-engine/animations/resume-after-page-cache.html: Added.
        * legacy-animation-engine/animations/simultaneous-start-left-expected.txt: Added.
        * legacy-animation-engine/animations/simultaneous-start-left.html: Added.
        * legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Added.
        * legacy-animation-engine/animations/simultaneous-start-transform.html: Added.
        * legacy-animation-engine/animations/spring-computed-style-expected.txt: Added.
        * legacy-animation-engine/animations/spring-computed-style.html: Added.
        * legacy-animation-engine/animations/spring-function-expected.txt: Added.
        * legacy-animation-engine/animations/spring-function.html: Added.
        * legacy-animation-engine/animations/spring-parsing-expected.txt: Added.
        * legacy-animation-engine/animations/spring-parsing.html: Added.
        * legacy-animation-engine/animations/stacking-context-fill-forwards-expected.html: Added.
        * legacy-animation-engine/animations/stacking-context-fill-forwards.html: Added.
        * legacy-animation-engine/animations/stacking-context-not-fill-forwards-expected.html: Added.
        * legacy-animation-engine/animations/stacking-context-not-fill-forwards.html: Added.
        * legacy-animation-engine/animations/stacking-context-unchanged-while-running-expected.html: Added.
        * legacy-animation-engine/animations/stacking-context-unchanged-while-running.html: Added.
        * legacy-animation-engine/animations/stacking-during-opacity-animation-expected.txt: Added.
        * legacy-animation-engine/animations/stacking-during-opacity-animation.html: Added.
        * legacy-animation-engine/animations/state-at-end-event.html: Added.
        * legacy-animation-engine/animations/stop-animation-on-suspend-expected.txt: Added.
        * legacy-animation-engine/animations/stop-animation-on-suspend.html: Added.
        * legacy-animation-engine/animations/suspend-resume-animation-events-expected.txt: Added.
        * legacy-animation-engine/animations/suspend-resume-animation-events.html: Added.
        * legacy-animation-engine/animations/suspend-resume-animation-expected.txt: Added.
        * legacy-animation-engine/animations/suspend-resume-animation.html: Added.
        * legacy-animation-engine/animations/suspend-transform-animation-expected.png: Added.
        * legacy-animation-engine/animations/suspend-transform-animation-expected.txt: Added.
        * legacy-animation-engine/animations/suspend-transform-animation.html: Added.
        * legacy-animation-engine/animations/timing-functions-expected.txt: Added.
        * legacy-animation-engine/animations/timing-functions.html: Added.
        * legacy-animation-engine/animations/transform-non-accelerated-expected.txt: Added.
        * legacy-animation-engine/animations/transform-non-accelerated.html: Added.
        * legacy-animation-engine/animations/transition-and-animation-1-expected.txt: Added.
        * legacy-animation-engine/animations/transition-and-animation-1.html: Added.
        * legacy-animation-engine/animations/transition-and-animation-2-expected.txt: Added.
        * legacy-animation-engine/animations/transition-and-animation-2.html: Added.
        * legacy-animation-engine/animations/transition-and-animation-3-expected.txt: Added.
        * legacy-animation-engine/animations/transition-and-animation-3.html: Added.
        * legacy-animation-engine/animations/trigger-computed-style-expected.txt: Added.
        * legacy-animation-engine/animations/trigger-computed-style.html: Added.
        * legacy-animation-engine/animations/trigger-container-scroll-boundaries-expected.txt: Added.
        * legacy-animation-engine/animations/trigger-container-scroll-boundaries.html: Added.
        * legacy-animation-engine/animations/trigger-container-scroll-empty-expected.txt: Added.
        * legacy-animation-engine/animations/trigger-container-scroll-empty.html: Added.
        * legacy-animation-engine/animations/trigger-container-scroll-simple-expected.txt: Added.
        * legacy-animation-engine/animations/trigger-container-scroll-simple.html: Added.
        * legacy-animation-engine/animations/trigger-parsing-expected.txt: Added.
        * legacy-animation-engine/animations/trigger-parsing.html: Added.
        * legacy-animation-engine/animations/unanimated-style-expected.txt: Added.
        * legacy-animation-engine/animations/unanimated-style.html: Added.
        * legacy-animation-engine/animations/unprefixed-events-expected.txt: Added.
        * legacy-animation-engine/animations/unprefixed-events-mixed-with-prefixed-expected.txt: Added.
        * legacy-animation-engine/animations/unprefixed-events-mixed-with-prefixed.html: Added.
        * legacy-animation-engine/animations/unprefixed-events.html: Added.
        * legacy-animation-engine/animations/unprefixed-keyframes-expected.txt: Added.
        * legacy-animation-engine/animations/unprefixed-keyframes-rule-expected.txt: Added.
        * legacy-animation-engine/animations/unprefixed-keyframes-rule.html: Added.
        * legacy-animation-engine/animations/unprefixed-keyframes.html: Added.
        * legacy-animation-engine/animations/unprefixed-properties-expected.txt: Added.
        * legacy-animation-engine/animations/unprefixed-properties.html: Added.
        * legacy-animation-engine/animations/unprefixed-shorthand-expected.txt: Added.
        * legacy-animation-engine/animations/unprefixed-shorthand.html: Added.
        * legacy-animation-engine/animations/width-using-ems-expected.txt: Added.
        * legacy-animation-engine/animations/width-using-ems.html: Added.
        * legacy-animation-engine/compositing/animation/animated-composited-inside-hidden-expected.txt: Added.
        * legacy-animation-engine/compositing/animation/animated-composited-inside-hidden.html: Added.
        * legacy-animation-engine/compositing/animation/animation-backing-expected.txt: Added.
        * legacy-animation-engine/compositing/animation/animation-backing.html: Added.
        * legacy-animation-engine/compositing/animation/animation-compositing-expected.txt: Added.
        * legacy-animation-engine/compositing/animation/animation-compositing.html: Added.
        * legacy-animation-engine/compositing/animation/busy-indicator-expected.txt: Added.
        * legacy-animation-engine/compositing/animation/busy-indicator-no.png: Added.
        * legacy-animation-engine/compositing/animation/busy-indicator.html: Added.
        * legacy-animation-engine/compositing/animation/busy-indicator.png: Added.
        * legacy-animation-engine/compositing/animation/computed-style-during-delay-expected.txt: Added.
        * legacy-animation-engine/compositing/animation/computed-style-during-delay.html: Added.
        * legacy-animation-engine/compositing/animation/keyframe-order-expected.html: Added.
        * legacy-animation-engine/compositing/animation/keyframe-order.html: Added.
        * legacy-animation-engine/compositing/animation/layer-for-filling-animation-expected.txt: Added.
        * legacy-animation-engine/compositing/animation/layer-for-filling-animation.html: Added.
        * legacy-animation-engine/compositing/animation/matrix-animation-expected.html: Added.
        * legacy-animation-engine/compositing/animation/matrix-animation.html: Added.
        * legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer.html: Added.
        * legacy-animation-engine/compositing/backing/backface-visibility-flip-expected.txt: Added.
        * legacy-animation-engine/compositing/backing/backface-visibility-flip.html: Added.
        * legacy-animation-engine/compositing/backing/transform-transition-from-outside-view-expected.txt: Added.
        * legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html: Added.
        * legacy-animation-engine/compositing/contents-scale/animating-expected.txt: Added.
        * legacy-animation-engine/compositing/contents-scale/animating.html: Added.
        * legacy-animation-engine/compositing/geometry/limit-layer-bounds-opacity-transition-expected.txt: Added.
        * legacy-animation-engine/compositing/geometry/limit-layer-bounds-opacity-transition.html: Added.
        * legacy-animation-engine/compositing/geometry/partial-layout-update.html: Added.
        * legacy-animation-engine/compositing/layer-creation/animation-overlap-with-children-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/animation-overlap-with-children.html: Added.
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-transition-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/mismatched-transform-transition-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/mismatched-transform-transition-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/multiple-keyframes-animation-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/overlap-animation-clipping-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/overlap-animation-clipping.html: Added.
        * legacy-animation-engine/compositing/layer-creation/overlap-animation-container-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/overlap-animation-container.html: Added.
        * legacy-animation-engine/compositing/layer-creation/overlap-animation-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/overlap-animation.html: Added.
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-animation-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-transition-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-transition-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-scale-transition-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-scale-transition-overlap.html: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-transition-overlap-expected.txt: Added.
        * legacy-animation-engine/compositing/layer-creation/translate-transition-overlap.html: Added.
        * legacy-animation-engine/compositing/overflow/overflow-positioning.html: Added.
        * legacy-animation-engine/compositing/reflections/animation-inside-reflection.html: Added.
        * legacy-animation-engine/compositing/reflections/load-video-in-reflection.html: Added.
        * legacy-animation-engine/compositing/reflections/nested-reflection-animated.html: Added.
        * legacy-animation-engine/compositing/reflections/nested-reflection-transition.html: Added.
        * legacy-animation-engine/compositing/repaint-container-assertion-when-toggling-compositing-expected.txt: Added.
        * legacy-animation-engine/compositing/repaint-container-assertion-when-toggling-compositing.html: Added.
        * legacy-animation-engine/compositing/repaint/become-overlay-composited-layer.html: Added.
        * legacy-animation-engine/compositing/repaint/layer-repaint-rects.html: Added.
        * legacy-animation-engine/compositing/repaint/opacity-between-absolute.html: Added.
        * legacy-animation-engine/compositing/repaint/opacity-between-absolute2.html: Added.
        * legacy-animation-engine/compositing/transitions/opacity-on-inline-expected.txt: Added.
        * legacy-animation-engine/compositing/transitions/opacity-on-inline.html: Added.
        * legacy-animation-engine/compositing/transitions/scale-transition-no-start.html: Added.
        * legacy-animation-engine/compositing/transitions/singular-scale-transition.html: Added.
        * legacy-animation-engine/compositing/transitions/transform-on-large-layer-expected.html: Added.
        * legacy-animation-engine/compositing/transitions/transform-on-large-layer.html: Added.
        * legacy-animation-engine/compositing/updates/animation-non-composited-expected.txt: Added.
        * legacy-animation-engine/compositing/updates/animation-non-composited.html: Added.
        * legacy-animation-engine/compositing/visibility/visibility-composited-animation-expected.png: Added.
        * legacy-animation-engine/compositing/visibility/visibility-composited-animation-expected.txt: Added.
        * legacy-animation-engine/compositing/visibility/visibility-composited-animation.html: Added.
        * legacy-animation-engine/compositing/visible-rect/animated-expected.txt: Added.
        * legacy-animation-engine/compositing/visible-rect/animated-from-none-expected.txt: Added.
        * legacy-animation-engine/compositing/visible-rect/animated-from-none.html: Added.
        * legacy-animation-engine/compositing/visible-rect/animated.html: Added.
        * legacy-animation-engine/css1/units/zero-duration-without-units-expected.txt: Added.
        * legacy-animation-engine/css1/units/zero-duration-without-units.html: Added.
        * legacy-animation-engine/css3/calc/cubic-bezier-with-multiple-calcs-crash.html-expected.txt: Added.
        * legacy-animation-engine/css3/calc/cubic-bezier-with-multiple-calcs-crash.html.html: Added.
        * legacy-animation-engine/css3/calc/transition-crash-expected.txt: Added.
        * legacy-animation-engine/css3/calc/transition-crash.html: Added.
        * legacy-animation-engine/css3/calc/transition-crash2-expected.txt: Added.
        * legacy-animation-engine/css3/calc/transition-crash2.html: Added.
        * legacy-animation-engine/css3/calc/transition-crash3-expected.txt: Added.
        * legacy-animation-engine/css3/calc/transition-crash3.html: Added.
        * legacy-animation-engine/css3/calc/transition-crash4-expected.txt: Added.
        * legacy-animation-engine/css3/calc/transition-crash4.html: Added.
        * legacy-animation-engine/css3/calc/transitions-dependent-expected.txt: Added.
        * legacy-animation-engine/css3/calc/transitions-dependent.html: Added.
        * legacy-animation-engine/css3/calc/transitions-expected.txt: Added.
        * legacy-animation-engine/css3/calc/transitions.html: Added.
        * legacy-animation-engine/css3/calculated-word-spacing-expected.txt: Added.
        * legacy-animation-engine/css3/calculated-word-spacing.html: Added.
        * legacy-animation-engine/css3/filters/animation-from-initial-values-with-color-matrix-expected.html: Added.
        * legacy-animation-engine/css3/filters/animation-from-initial-values-with-color-matrix.html: Added.
        * legacy-animation-engine/css3/filters/backdrop/animation-expected.txt: Added.
        * legacy-animation-engine/css3/filters/backdrop/animation.html: Added.
        * legacy-animation-engine/css3/filters/composited-during-animation-expected.txt: Added.
        * legacy-animation-engine/css3/filters/composited-during-animation-layertree-expected.txt: Added.
        * legacy-animation-engine/css3/filters/composited-during-animation-layertree.html: Added.
        * legacy-animation-engine/css3/filters/composited-during-animation.html: Added.
        * legacy-animation-engine/css3/filters/composited-during-transition-layertree.html: Added.
        * legacy-animation-engine/css3/filters/crash-filter-animation-invalid-url-expected.txt: Added.
        * legacy-animation-engine/css3/filters/crash-filter-animation-invalid-url.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none-hw-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none-hw.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none-multi-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none-multi-hw-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none-multi-hw.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none-multi.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation-from-none.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation-hw-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-hw.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation-multi-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-multi-hw-expected.txt: Added.
        * legacy-animation-engine/css3/filters/filter-animation-multi-hw.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation-multi.html: Added.
        * legacy-animation-engine/css3/filters/filter-animation.html: Added.
        * legacy-animation-engine/css3/flexbox/csswg/css-flexbox-height-animation-stretch-expected.html: Added.
        * legacy-animation-engine/css3/flexbox/csswg/css-flexbox-height-animation-stretch.html: Added.
        * legacy-animation-engine/css3/infinite-word-spacing-expected.txt: Added.
        * legacy-animation-engine/css3/infinite-word-spacing.html: Added.
        * legacy-animation-engine/css3/masking/clip-path-animation-expected.txt: Added.
        * legacy-animation-engine/css3/masking/clip-path-animation.html: Added.
        * legacy-animation-engine/css3/supports-crash-expected.txt: Added.
        * legacy-animation-engine/css3/supports-crash.html: Added.
        * legacy-animation-engine/css3/supports-cssom-expected.txt: Added.
        * legacy-animation-engine/css3/supports-cssom.html: Added.
        * legacy-animation-engine/css3/supports-dom-api-expected.txt: Added.
        * legacy-animation-engine/css3/supports-dom-api.html: Added.
        * legacy-animation-engine/css3/supports-expected.txt: Added.
        * legacy-animation-engine/css3/supports-not-selector-cssom-expected.txt: Added.
        * legacy-animation-engine/css3/supports-not-selector-cssom.html: Added.
        * legacy-animation-engine/css3/supports-not-selector-expected.html: Added.
        * legacy-animation-engine/css3/supports-not-selector.html: Added.
        * legacy-animation-engine/css3/supports.html: Added.
        * legacy-animation-engine/cssom/cssvalue-comparison-expected.txt: Added.
        * legacy-animation-engine/cssom/cssvalue-comparison.html: Added.
        * legacy-animation-engine/editing/selection/layout-during-move-selection-crash-expected.txt: Added.
        * legacy-animation-engine/editing/selection/layout-during-move-selection-crash.html: Added.
        * legacy-animation-engine/fast/animation/animation-element-removal-expected.txt: Added.
        * legacy-animation-engine/fast/animation/animation-element-removal.html: Added.
        * legacy-animation-engine/fast/animation/animation-mixed-transform-crash-expected.html: Added.
        * legacy-animation-engine/fast/animation/animation-mixed-transform-crash.html: Added.
        * legacy-animation-engine/fast/animation/animation-style-update-size-expected.txt: Added.
        * legacy-animation-engine/fast/animation/animation-style-update-size.html: Added.
        * legacy-animation-engine/fast/animation/css-animation-resuming-when-visible-expected.txt: Added.
        * legacy-animation-engine/fast/animation/css-animation-resuming-when-visible-with-style-change-expected.txt: Added.
        * legacy-animation-engine/fast/animation/css-animation-resuming-when-visible-with-style-change.html: Added.
        * legacy-animation-engine/fast/animation/css-animation-resuming-when-visible-with-style-change2-expected.txt: Added.
        * legacy-animation-engine/fast/animation/css-animation-resuming-when-visible-with-style-change2.html: Added.
        * legacy-animation-engine/fast/animation/css-animation-resuming-when-visible.html: Added.
        * legacy-animation-engine/fast/animation/css-animation-throttling-lowPowerMode-expected.txt: Added.
        * legacy-animation-engine/fast/animation/css-animation-throttling-lowPowerMode.html: Added.
        * legacy-animation-engine/fast/animation/height-auto-transition-computed-value-expected.html: Added.
        * legacy-animation-engine/fast/animation/height-auto-transition-computed-value.html: Added.
        * legacy-animation-engine/fast/animation/keyframe-with-font-size-in-em-units-expected.txt: Added.
        * legacy-animation-engine/fast/animation/keyframe-with-font-size-in-em-units.html: Added.
        * legacy-animation-engine/fast/animation/request-animation-frame-iframe-expected.txt: Added.
        * legacy-animation-engine/fast/animation/request-animation-frame-iframe.html: Added.
        * legacy-animation-engine/fast/animation/request-animation-frame-iframe2-expected.txt: Added.
        * legacy-animation-engine/fast/animation/request-animation-frame-iframe2.html: Added.
        * legacy-animation-engine/fast/css-generated-content/noscript-pseudo-anim-crash-expected.txt: Added.
        * legacy-animation-engine/fast/css-generated-content/noscript-pseudo-anim-crash.html: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-animation-expected.txt: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-animation.html: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-element-events-expected.txt: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-element-events.html: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-transition-event-expected.txt: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-transition-event.html: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-transition-expected.txt: Added.
        * legacy-animation-engine/fast/css-generated-content/pseudo-transition.html: Added.
        * legacy-animation-engine/fast/css/animation-pseudo-style-change-expected.html: Added.
        * legacy-animation-engine/fast/css/animation-pseudo-style-change.html: Added.
        * legacy-animation-engine/fast/css/animation-steps-calculated-value-expected.txt: Added.
        * legacy-animation-engine/fast/css/animation-steps-calculated-value.html: Added.
        * legacy-animation-engine/fast/css/animation-transition-duration-quirksmode-expected.txt: Added.
        * legacy-animation-engine/fast/css/animation-transition-duration-quirksmode.html: Added.
        * legacy-animation-engine/fast/css/calc-mixed-blend-crash-expected.txt: Added.
        * legacy-animation-engine/fast/css/calc-mixed-blend-crash.html: Added.
        * legacy-animation-engine/fast/css/calc-with-angle-time-frequency-expected.txt: Added.
        * legacy-animation-engine/fast/css/calc-with-angle-time-frequency.html: Added.
        * legacy-animation-engine/fast/css/compare-animation-trigger-expected.txt: Added.
        * legacy-animation-engine/fast/css/compare-animation-trigger.html: Added.
        * legacy-animation-engine/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element-expected.txt: Added.
        * legacy-animation-engine/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html: Added.
        * legacy-animation-engine/fast/css/getComputedStyle/resources/property-names.js: Added.
        * legacy-animation-engine/fast/css/getFloatValueForUnit-expected.txt: Added.
        * legacy-animation-engine/fast/css/getFloatValueForUnit.html: Added.
        * legacy-animation-engine/fast/css/image-set-value-not-removed-crash-expected.txt: Added.
        * legacy-animation-engine/fast/css/image-set-value-not-removed-crash.html: Added.
        * legacy-animation-engine/fast/css/longhand-overrides-shorthand-prefixing-expected.txt: Added.
        * legacy-animation-engine/fast/css/longhand-overrides-shorthand-prefixing.html: Added.
        * legacy-animation-engine/fast/css/number-parsing-crash-2-expected.txt: Added.
        * legacy-animation-engine/fast/css/number-parsing-crash-2.html: Added.
        * legacy-animation-engine/fast/css/onanimation-eventhandlers-expected.txt: Added.
        * legacy-animation-engine/fast/css/onanimation-eventhandlers.html: Added.
        * legacy-animation-engine/fast/css/ontransitionend-eventhandler-expected.txt: Added.
        * legacy-animation-engine/fast/css/ontransitionend-eventhandler.html: Added.
        * legacy-animation-engine/fast/css/parse-timing-function-crash-expected.txt: Added.
        * legacy-animation-engine/fast/css/parse-timing-function-crash.html: Added.
        * legacy-animation-engine/fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt: Added.
        * legacy-animation-engine/fast/css/prefixed-unprefixed-variant-style-declaration.html: Added.
        * legacy-animation-engine/fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt: Added.
        * legacy-animation-engine/fast/css/shorthand-omitted-initial-value-overrides-shorthand.html: Added.
        * legacy-animation-engine/fast/css/transform-inline-style-expected.txt: Added.
        * legacy-animation-engine/fast/css/transform-inline-style-remove-expected.txt: Added.
        * legacy-animation-engine/fast/css/transform-inline-style-remove.html: Added.
        * legacy-animation-engine/fast/css/transform-inline-style.html: Added.
        * legacy-animation-engine/fast/css/transition-color-unspecified-expected.txt: Added.
        * legacy-animation-engine/fast/css/transition-color-unspecified.html: Added.
        * legacy-animation-engine/fast/css/transition-delay-calculated-value-expected.txt: Added.
        * legacy-animation-engine/fast/css/transition-delay-calculated-value.html: Added.
        * legacy-animation-engine/fast/css/transition-timing-function-expected.txt: Added.
        * legacy-animation-engine/fast/css/transition-timing-function.html: Added.
        * legacy-animation-engine/fast/css/transition_shorthand_parsing-expected.txt: Added.
        * legacy-animation-engine/fast/css/transition_shorthand_parsing.html: Added.
        * legacy-animation-engine/fast/dom/event-handler-attributes-expected.txt: Added.
        * legacy-animation-engine/fast/dom/event-handler-attributes.html: Added.
        * legacy-animation-engine/fast/events/constructors/webkit-animation-event-constructor-expected.txt: Added.
        * legacy-animation-engine/fast/events/constructors/webkit-animation-event-constructor.html: Added.
        * legacy-animation-engine/fast/filter-image/filter-image-animation-expected.txt: Added.
        * legacy-animation-engine/fast/filter-image/filter-image-animation.html: Added.
        * legacy-animation-engine/fast/harness/results-expected.txt: Added.
        * legacy-animation-engine/fast/harness/results.html: Added.
        * legacy-animation-engine/fast/images/animate-list-item-image-assertion-expected.txt: Added.
        * legacy-animation-engine/fast/images/animate-list-item-image-assertion.html: Added.
        * legacy-animation-engine/fast/images/crossfade-client-not-removed-crash-expected.txt: Added.
        * legacy-animation-engine/fast/images/crossfade-client-not-removed-crash.html: Added.
        * legacy-animation-engine/fast/images/image-copy-memory-usage-expected.txt: Added.
        * legacy-animation-engine/fast/images/image-copy-memory-usage.html: Added.
        * legacy-animation-engine/fast/inline/quotation-text-changes-dynamically-expected.txt: Added.
        * legacy-animation-engine/fast/inline/quotation-text-changes-dynamically.html: Added.
        * legacy-animation-engine/fast/layers/no-clipping-overflow-hidden-added-after-transform-expected.html: Added.
        * legacy-animation-engine/fast/layers/no-clipping-overflow-hidden-added-after-transform.html: Added.
        * legacy-animation-engine/fast/layers/no-clipping-overflow-hidden-added-after-transition-expected.html: Added.
        * legacy-animation-engine/fast/layers/no-clipping-overflow-hidden-added-after-transition.html: Added.
        * legacy-animation-engine/fast/layers/no-clipping-overflow-hidden-hardware-acceleration-expected.html: Added.
        * legacy-animation-engine/fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html: Added.
        * legacy-animation-engine/fast/media/matchmedium-query-api-expected.txt: Added.
        * legacy-animation-engine/fast/media/matchmedium-query-api.html: Added.
        * legacy-animation-engine/fast/media/media-query-list-01-expected.txt: Added.
        * legacy-animation-engine/fast/media/media-query-list-01.html: Added.
        * legacy-animation-engine/fast/media/mq-animation-expected.html: Added.
        * legacy-animation-engine/fast/media/mq-animation.html: Added.
        * legacy-animation-engine/fast/media/mq-transition-expected.html: Added.
        * legacy-animation-engine/fast/media/mq-transition.html: Added.
        * legacy-animation-engine/fast/multicol/crash-when-spanner-gets-moved-around-expected.txt: Added.
        * legacy-animation-engine/fast/multicol/crash-when-spanner-gets-moved-around.html: Added.
        * legacy-animation-engine/fast/multicol/multicol-fieldset-span-changes-expected.txt: Added.
        * legacy-animation-engine/fast/multicol/multicol-fieldset-span-changes.html: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/crash-when-switching-to-floating-expected.txt: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/crash-when-switching-to-floating.html: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/first-letter-create-expected.html: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/first-letter-create.html: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/spanner-crash-expected.txt: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/spanner-crash-with-embedded-columns-expected.txt: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/spanner-crash-with-embedded-columns.html: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/spanner-crash.html: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/table-section-crash-expected.txt: Added.
        * legacy-animation-engine/fast/multicol/newmulticol/table-section-crash.html: Added.
        * legacy-animation-engine/fast/multicol/svg-inside-multicolumn-expected.txt: Added.
        * legacy-animation-engine/fast/multicol/svg-inside-multicolumn.html: Added.
        * legacy-animation-engine/fast/repaint/list-item-equal-style-change-no-repaint-expected.txt: Added.
        * legacy-animation-engine/fast/repaint/list-item-equal-style-change-no-repaint.html: Added.
        * legacy-animation-engine/fast/shadow-dom/shadow-host-animation-expected.html: Added.
        * legacy-animation-engine/fast/shadow-dom/shadow-host-animation.html: Added.
        * legacy-animation-engine/fast/shadow-dom/shadow-host-transition-expected.html: Added.
        * legacy-animation-engine/fast/shadow-dom/shadow-host-transition.html: Added.
        * legacy-animation-engine/fast/shadow-dom/slot-renderer-teardown-expected.txt: Added.
        * legacy-animation-engine/fast/shadow-dom/slot-renderer-teardown.html: Added.
        * legacy-animation-engine/fast/shapes/shape-outside-floats/shape-outside-animation-expected.txt: Added.
        * legacy-animation-engine/fast/shapes/shape-outside-floats/shape-outside-animation.html: Added.
        * legacy-animation-engine/fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation-expected.txt: Added.
        * legacy-animation-engine/fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html: Added.
        * legacy-animation-engine/fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation-expected.txt: Added.
        * legacy-animation-engine/fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html: Added.
        * legacy-animation-engine/fast/text/crash-complex-text-surrogate.html: Added.
        * legacy-animation-engine/fast/text/text-combine-crash-expected.txt: Added.
        * legacy-animation-engine/fast/text/text-combine-crash.html: Added.
        * legacy-animation-engine/fullscreen/fullscreen-auto-hide-delay-expected.txt: Added.
        * legacy-animation-engine/fullscreen/fullscreen-auto-hide-delay.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-01-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-01.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-02-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-02.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-03-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-03.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-04-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-prefixed-04.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-01-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-01.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-02-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-02.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-03-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-03.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-04-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-04.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-immediate-start-event-after-ondemand-update-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-immediate-start-event-after-ondemand-update.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-iteration-event-short-iterations-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-iteration-event-short-iterations.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-name-none-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-name-none.html: Added.
        * legacy-animation-engine/imported/blink/animations/animation-shorthand-unprefixed-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/animation-shorthand-unprefixed.html: Added.
        * legacy-animation-engine/imported/blink/animations/background-shorthand-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/background-shorthand-crash.html: Added.
        * legacy-animation-engine/imported/blink/animations/base-render-style-body-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/base-render-style-body-crash.html: Added.
        * legacy-animation-engine/imported/blink/animations/base-render-style-font-selector-version-assert-expected.html: Added.
        * legacy-animation-engine/imported/blink/animations/base-render-style-font-selector-version-assert.html: Added.
        * legacy-animation-engine/imported/blink/animations/deleted-image-set-transition-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/deleted-image-set-transition-crash.html: Added.
        * legacy-animation-engine/imported/blink/animations/display-inline-style-adjust-expected.html: Added.
        * legacy-animation-engine/imported/blink/animations/display-inline-style-adjust.html: Added.
        * legacy-animation-engine/imported/blink/animations/display-none-cancels-nested-animations-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/display-none-cancels-nested-animations.html: Added.
        * legacy-animation-engine/imported/blink/animations/display-none-terminates-animation-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/display-none-terminates-animation.html: Added.
        * legacy-animation-engine/imported/blink/animations/empty-keyframe-animation-composited-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/empty-keyframe-animation-composited.html: Added.
        * legacy-animation-engine/imported/blink/animations/empty-keyframes-composited-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/empty-keyframes-composited.html: Added.
        * legacy-animation-engine/imported/blink/animations/events-with-short-duration-and-delay-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/events-with-short-duration-and-delay.html: Added.
        * legacy-animation-engine/imported/blink/animations/inherit-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/inherit-crash.html: Added.
        * legacy-animation-engine/imported/blink/animations/keyframe-timing-function-unset-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/keyframe-timing-function-unset-crash.html: Added.
        * legacy-animation-engine/imported/blink/animations/pseudo-element-animation-with-color-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/pseudo-element-animation-with-color-crash.html: Added.
        * legacy-animation-engine/imported/blink/animations/pseudo-element-animation-with-marker-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/pseudo-element-animation-with-marker-crash.html: Added.
        * legacy-animation-engine/imported/blink/animations/pseudo-element-animation-with-rems-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/pseudo-element-animation-with-rems.html: Added.
        * legacy-animation-engine/imported/blink/animations/wrong-keyframe-name-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/wrong-keyframe-name.html: Added.
        * legacy-animation-engine/imported/blink/animations/zero-duration-infinite-iterations-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/zero-duration-infinite-iterations.html: Added.
        * legacy-animation-engine/imported/blink/animations/zero-duration-large-start-delay-expected.txt: Added.
        * legacy-animation-engine/imported/blink/animations/zero-duration-large-start-delay.html: Added.
        * legacy-animation-engine/imported/blink/compositing/animation/hidden-animated-layer-should-not-have-scrollbars-expected.html: Added.
        * legacy-animation-engine/imported/blink/compositing/animation/hidden-animated-layer-should-not-have-scrollbars.html: Added.
        * legacy-animation-engine/imported/blink/compositing/layer-creation/incremental-destruction-expected.html: Added.
        * legacy-animation-engine/imported/blink/compositing/layer-creation/incremental-destruction.html: Added.
        * legacy-animation-engine/imported/blink/compositing/repaint/end-of-opacity-transition-expected.html: Added.
        * legacy-animation-engine/imported/blink/compositing/repaint/end-of-opacity-transition.html: Added.
        * legacy-animation-engine/imported/blink/compositing/squashing/animation-repaint-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/compositing/squashing/animation-repaint-crash.html: Added.
        * legacy-animation-engine/imported/blink/compositing/squashing/remove-from-grouped-mapping-on-reassignment-expected.txt: Added.
        * legacy-animation-engine/imported/blink/compositing/squashing/remove-from-grouped-mapping-on-reassignment.html: Added.
        * legacy-animation-engine/imported/blink/css3/calc/transition-asan-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/css3/calc/transition-asan-crash.html: Added.
        * legacy-animation-engine/imported/blink/fast/animation/animation-without-parent-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/fast/animation/animation-without-parent-crash.html: Added.
        * legacy-animation-engine/imported/blink/fast/animation/last-child-assert-expected.txt: Added.
        * legacy-animation-engine/imported/blink/fast/animation/last-child-assert.html: Added.
        * legacy-animation-engine/imported/blink/fast/css-generated-content/pseudo-animation-display-expected.txt: Added.
        * legacy-animation-engine/imported/blink/fast/css-generated-content/pseudo-animation-display.html: Added.
        * legacy-animation-engine/imported/blink/fast/text/output-isolate-at-end-of-line-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/fast/text/output-isolate-at-end-of-line-crash.html: Added.
        * legacy-animation-engine/imported/blink/http/tests/webfont/animation-assert-expected.html: Added.
        * legacy-animation-engine/imported/blink/http/tests/webfont/animation-assert.html: Added.
        * legacy-animation-engine/imported/blink/transitions/background-webkit-mask-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/background-webkit-mask-crash.html: Added.
        * legacy-animation-engine/imported/blink/transitions/no-transition-on-implicit-margins-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/no-transition-on-implicit-margins.html: Added.
        * legacy-animation-engine/imported/blink/transitions/remove-accelerated-transition-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/remove-accelerated-transition.html: Added.
        * legacy-animation-engine/imported/blink/transitions/resources/opacity-transform-transitions-inside-iframe-inner.html: Added.
        * legacy-animation-engine/imported/blink/transitions/transition-not-interpolable-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/transition-not-interpolable.html: Added.
        * legacy-animation-engine/imported/blink/transitions/transition-property-explicit-initial-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/transition-property-explicit-initial.html: Added.
        * legacy-animation-engine/imported/blink/transitions/transition-shape-outside-crash-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/transition-shape-outside-crash.html: Added.
        * legacy-animation-engine/imported/blink/transitions/unprefixed-perspective-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/unprefixed-perspective.html: Added.
        * legacy-animation-engine/imported/blink/transitions/unprefixed-transform-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/unprefixed-transform.html: Added.
        * legacy-animation-engine/imported/blink/transitions/zero-duration-should-not-cancel-expected.txt: Added.
        * legacy-animation-engine/imported/blink/transitions/zero-duration-should-not-cancel.html: Added.
        * legacy-animation-engine/imported/blink/virtual/stable/animations-unprefixed/animation-events-prefixed-04-expected.txt: Added.
        * legacy-animation-engine/imported/blink/virtual/stable/animations-unprefixed/animation-events-prefixed-04.html: Added.
        * legacy-animation-engine/imported/blink/virtual/stable/animations-unprefixed/animation-events-unprefixed-04-expected.txt: Added.
        * legacy-animation-engine/imported/blink/virtual/stable/animations-unprefixed/animation-events-unprefixed-04.html: Added.
        * legacy-animation-engine/js/dom/transition-cache-dictionary-crash-expected.txt: Added.
        * legacy-animation-engine/js/dom/transition-cache-dictionary-crash.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/bold_object/bold_animation_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/bold_object/bold_animation_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/bold_object/bold_transition_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/bold_object/bold_transition_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/class_object/class_animation_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/class_object/class_animation_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/class_object/class_transition_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/class_object/class_transition_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/italic_object/italic_animation_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/italic_object/italic_animation_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/italic_object/italic_transition_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/italic_object/italic_transition_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/underline_object/underline_animation_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/underline_object/underline_animation_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/underline_object/underline_transition_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/underline_object/underline_transition_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/voice_object/voice_animation_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/voice_object/voice_animation_with_timestamp.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/voice_object/voice_transition_with_timestamp-ref.html: Added.
        * legacy-animation-engine/media/track/opera/track/webvtt/rendering/reftest/selectors/cue_function/voice_object/voice_transition_with_timestamp.html: Added.
        * legacy-animation-engine/scrollbars/scrollbar-scrollbarparts-repaint-crash-expected.txt: Added.
        * legacy-animation-engine/scrollbars/scrollbar-scrollbarparts-repaint-crash.html: Added.
        * legacy-animation-engine/tables/mozilla/bugs/bug113235-1.html: Added.
        * legacy-animation-engine/tables/table-section-overflow-clip-crash-expected.txt: Added.
        * legacy-animation-engine/tables/table-section-overflow-clip-crash.html: Added.
        * legacy-animation-engine/transitions/3d/interrupted-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/3d/interrupted-transition.html: Added.
        * legacy-animation-engine/transitions/background-position-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/background-position-transitions.html: Added.
        * legacy-animation-engine/transitions/background-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/background-transitions.html: Added.
        * legacy-animation-engine/transitions/bad-transition-shorthand-crash-expected.txt: Added.
        * legacy-animation-engine/transitions/bad-transition-shorthand-crash.html: Added.
        * legacy-animation-engine/transitions/blendmode-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/blendmode-transitions.html: Added.
        * legacy-animation-engine/transitions/border-radius-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/border-radius-transition.html: Added.
        * legacy-animation-engine/transitions/cancel-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/cancel-transition.html: Added.
        * legacy-animation-engine/transitions/change-values-during-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/change-values-during-transition.html: Added.
        * legacy-animation-engine/transitions/clip-path-path-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/clip-path-path-transitions.html: Added.
        * legacy-animation-engine/transitions/clip-path-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/clip-path-transitions.html: Added.
        * legacy-animation-engine/transitions/clip-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/clip-transition.html: Added.
        * legacy-animation-engine/transitions/color-transition-all-expected.txt: Added.
        * legacy-animation-engine/transitions/color-transition-all.html: Added.
        * legacy-animation-engine/transitions/color-transition-premultiplied-expected.txt: Added.
        * legacy-animation-engine/transitions/color-transition-premultiplied.html: Added.
        * legacy-animation-engine/transitions/color-transition-rounding-expected.txt: Added.
        * legacy-animation-engine/transitions/color-transition-rounding.html: Added.
        * legacy-animation-engine/transitions/created-while-suspended-expected.txt: Added.
        * legacy-animation-engine/transitions/created-while-suspended.html: Added.
        * legacy-animation-engine/transitions/cross-fade-background-image-expected.txt: Added.
        * legacy-animation-engine/transitions/cross-fade-background-image.html: Added.
        * legacy-animation-engine/transitions/cross-fade-border-image.html: Added.
        * legacy-animation-engine/transitions/crossfade-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/crossfade-transition.html: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-color-expected.txt: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-color.html: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-length-expected.txt: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-length.html: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-shadow-expected.txt: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-shadow.html: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-svg-length-expected.txt: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-svg-length.html: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-transform-expected.txt: Added.
        * legacy-animation-engine/transitions/cubic-bezier-overflow-transform.html: Added.
        * legacy-animation-engine/transitions/default-timing-function.html: Added.
        * legacy-animation-engine/transitions/delay-expected.txt: Added.
        * legacy-animation-engine/transitions/delay.html: Added.
        * legacy-animation-engine/transitions/equivalent-background-image-no-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/equivalent-background-image-no-transition.html: Added.
        * legacy-animation-engine/transitions/extra-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/extra-transition.html: Added.
        * legacy-animation-engine/transitions/flex-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/flex-transitions.html: Added.
        * legacy-animation-engine/transitions/font-family-during-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/font-family-during-transition.html: Added.
        * legacy-animation-engine/transitions/frames-timing-function-expected.txt: Added.
        * legacy-animation-engine/transitions/frames-timing-function.html: Added.
        * legacy-animation-engine/transitions/hang-with-bad-transition-list-expected.txt: Added.
        * legacy-animation-engine/transitions/hang-with-bad-transition-list.html: Added.
        * legacy-animation-engine/transitions/inherit-expected.txt: Added.
        * legacy-animation-engine/transitions/inherit-other-props-expected.txt: Added.
        * legacy-animation-engine/transitions/inherit-other-props.html: Added.
        * legacy-animation-engine/transitions/inherit.html: Added.
        * legacy-animation-engine/transitions/interrupt-transform-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/interrupt-transform-transition.html: Added.
        * legacy-animation-engine/transitions/interrupt-zero-duration-expected.txt: Added.
        * legacy-animation-engine/transitions/interrupt-zero-duration.html: Added.
        * legacy-animation-engine/transitions/interrupted-accelerated-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/interrupted-accelerated-transition.html: Added.
        * legacy-animation-engine/transitions/interrupted-all-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/interrupted-all-transition.html: Added.
        * legacy-animation-engine/transitions/lengthsize-transition-to-from-auto-expected.txt: Added.
        * legacy-animation-engine/transitions/lengthsize-transition-to-from-auto.html: Added.
        * legacy-animation-engine/transitions/longhand-vs-shorthand-initial-expected.txt: Added.
        * legacy-animation-engine/transitions/longhand-vs-shorthand-initial.html: Added.
        * legacy-animation-engine/transitions/mask-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/mask-transitions.html: Added.
        * legacy-animation-engine/transitions/matched-transform-functions-expected.txt: Added.
        * legacy-animation-engine/transitions/matched-transform-functions.html: Added.
        * legacy-animation-engine/transitions/min-max-width-height-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/min-max-width-height-transitions.html: Added.
        * legacy-animation-engine/transitions/mismatched-shadow-styles-expected.txt: Added.
        * legacy-animation-engine/transitions/mismatched-shadow-styles.html: Added.
        * legacy-animation-engine/transitions/mismatched-shadow-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/mismatched-shadow-transitions.html: Added.
        * legacy-animation-engine/transitions/mixed-type-expected.txt: Added.
        * legacy-animation-engine/transitions/mixed-type.html: Added.
        * legacy-animation-engine/transitions/move-after-transition.html: Added.
        * legacy-animation-engine/transitions/multiple-background-size-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/multiple-background-size-transitions.html: Added.
        * legacy-animation-engine/transitions/multiple-background-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/multiple-background-transitions.html: Added.
        * legacy-animation-engine/transitions/multiple-mask-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/multiple-mask-transitions.html: Added.
        * legacy-animation-engine/transitions/multiple-shadow-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/multiple-shadow-transitions.html: Added.
        * legacy-animation-engine/transitions/multiple-text-shadow-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/multiple-text-shadow-transition.html: Added.
        * legacy-animation-engine/transitions/negative-delay-expected.txt: Added.
        * legacy-animation-engine/transitions/negative-delay.html: Added.
        * legacy-animation-engine/transitions/opacity-transition-zindex-expected.txt: Added.
        * legacy-animation-engine/transitions/opacity-transition-zindex.html: Added.
        * legacy-animation-engine/transitions/override-transition-crash-expected.txt: Added.
        * legacy-animation-engine/transitions/override-transition-crash.html: Added.
        * legacy-animation-engine/transitions/remove-transition-style-expected.txt: Added.
        * legacy-animation-engine/transitions/remove-transition-style.html: Added.
        * legacy-animation-engine/transitions/repeated-firing-background-color-expected.txt: Added.
        * legacy-animation-engine/transitions/repeated-firing-background-color.html: Added.
        * legacy-animation-engine/transitions/resources/Aurora.jpg: Added.
        * legacy-animation-engine/transitions/resources/interrupted-accelerated-transition-final.html: Added.
        * legacy-animation-engine/transitions/resources/transition-end-event-destroy-iframe-inner.html: Added.
        * legacy-animation-engine/transitions/resources/transition-test-helpers.js: Added.
        (roundNumber):
        (isCloseEnough):
        (isShadow):
        (compareRGB):
        (parseCrossFade):
        (extractPathValues):
        (parseClipPath):
        * legacy-animation-engine/transitions/retargetted-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/retargetted-transition.html: Added.
        * legacy-animation-engine/transitions/rounded-rect-becomes-non-renderable-while-transitioning-expected.txt: Added.
        * legacy-animation-engine/transitions/rounded-rect-becomes-non-renderable-while-transitioning.html: Added.
        * legacy-animation-engine/transitions/shadow-expected.txt: Added.
        * legacy-animation-engine/transitions/shadow.html: Added.
        * legacy-animation-engine/transitions/shape-outside-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/shape-outside-transitions.html: Added.
        * legacy-animation-engine/transitions/shorthand-border-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/shorthand-border-transitions.html: Added.
        * legacy-animation-engine/transitions/shorthand-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/shorthand-transitions.html: Added.
        * legacy-animation-engine/transitions/start-transform-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/start-transform-transition.html: Added.
        * legacy-animation-engine/transitions/started-while-suspended-expected.txt: Added.
        * legacy-animation-engine/transitions/started-while-suspended.html: Added.
        * legacy-animation-engine/transitions/steps-timing-function-expected.txt: Added.
        * legacy-animation-engine/transitions/steps-timing-function.html: Added.
        * legacy-animation-engine/transitions/suspend-transform-transition-expected.png: Added.
        * legacy-animation-engine/transitions/suspend-transform-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/suspend-transform-transition.html: Added.
        * legacy-animation-engine/transitions/svg-layout-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/svg-layout-transition.html: Added.
        * legacy-animation-engine/transitions/svg-text-shadow-transition.html: Added.
        * legacy-animation-engine/transitions/svg-transitions-expected.txt: Added.
        * legacy-animation-engine/transitions/svg-transitions.html: Added.
        * legacy-animation-engine/transitions/text-indent-transition-expected.txt: Added.
        * legacy-animation-engine/transitions/text-indent-transition.html: Added.
        * legacy-animation-engine/transitions/transform-op-list-match-expected.txt: Added.
        * legacy-animation-engine/transitions/transform-op-list-match.html: Added.
        * legacy-animation-engine/transitions/transform-op-list-no-match-expected.txt: Added.
        * legacy-animation-engine/transitions/transform-op-list-no-match.html: Added.
        * legacy-animation-engine/transitions/transition-display-property-2-expected.html: Added.
        * legacy-animation-engine/transitions/transition-display-property-2.html: Added.
        * legacy-animation-engine/transitions/transition-display-property-expected.html: Added.
        * legacy-animation-engine/transitions/transition-display-property.html: Added.
        * legacy-animation-engine/transitions/transition-drt-api-delay-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-drt-api-delay.html: Added.
        * legacy-animation-engine/transitions/transition-drt-api-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-drt-api.html: Added.
        * legacy-animation-engine/transitions/transition-duration-cleared-in-transitionend-crash-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-duration-cleared-in-transitionend-crash.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-all-properties-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-all-properties.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-attributes-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-attributes.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-container-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-container.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-create-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-create.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-destroy-iframe-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-destroy-iframe.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-destroy-renderer-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-destroy-renderer.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-helpers.js: Added.
        (recordTransitionEndEvent):
        (processEndEvents.compareEventInfo):
        (processEndEvents.examineResults):
        (processEndEvents):
        (_endFunction):
        (startTest):
        (runTransitionTest):
        * legacy-animation-engine/transitions/transition-end-event-left-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-left.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-01-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-01.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-02-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-02.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-03-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-03.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-04-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-multiple-04.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-nested-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-nested.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-prefixed-01-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-prefixed-01.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-prefixed-02-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-prefixed-02.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-prefixed-03-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-prefixed-03.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-rendering-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-rendering.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-set-none-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-set-none.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-transform-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-transform.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-01-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-01.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-02-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-02.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-03-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-03.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-04-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-unprefixed-04.html: Added.
        * legacy-animation-engine/transitions/transition-end-event-window-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-end-event-window.html: Added.
        * legacy-animation-engine/transitions/transition-hit-test-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-hit-test-transform-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-hit-test-transform.html: Added.
        * legacy-animation-engine/transitions/transition-hit-test.html: Added.
        * legacy-animation-engine/transitions/transition-in-delay-phase-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-in-delay-phase.html: Added.
        * legacy-animation-engine/transitions/transition-on-element-with-content-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-on-element-with-content.html: Added.
        * legacy-animation-engine/transitions/transition-shorthand-delay-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-shorthand-delay.html: Added.
        * legacy-animation-engine/transitions/transition-timing-function-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-timing-function.html: Added.
        * legacy-animation-engine/transitions/transition-to-from-auto-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-to-from-auto.html: Added.
        * legacy-animation-engine/transitions/transition-to-from-undefined-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-to-from-undefined.html: Added.
        * legacy-animation-engine/transitions/transition-transform-translate-calculated-length-crash-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-transform-translate-calculated-length-crash.html: Added.
        * legacy-animation-engine/transitions/transition-unknown-property-ignore-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-unknown-property-ignore.html: Added.
        * legacy-animation-engine/transitions/transition-with-calc-spin-expected.txt: Added.
        * legacy-animation-engine/transitions/transition-with-calc-spin.html: Added.
        * legacy-animation-engine/transitions/transitions-parsing-expected.txt: Added.
        * legacy-animation-engine/transitions/transitions-parsing.html: Added.
        * legacy-animation-engine/transitions/visited-link-color-expected.txt: Added.
        * legacy-animation-engine/transitions/visited-link-color.html: Added.
        * legacy-animation-engine/transitions/zero-duration-in-list-expected.txt: Added.
        * legacy-animation-engine/transitions/zero-duration-in-list.html: Added.
        * legacy-animation-engine/transitions/zero-duration-with-non-zero-delay-end-expected.txt: Added.
        * legacy-animation-engine/transitions/zero-duration-with-non-zero-delay-end.html: Added.
        * legacy-animation-engine/transitions/zero-duration-with-non-zero-delay-start-expected.txt: Added.
        * legacy-animation-engine/transitions/zero-duration-with-non-zero-delay-start.html: Added.
        * legacy-animation-engine/transitions/zero-duration-without-units-expected.txt: Added.
        * legacy-animation-engine/transitions/zero-duration-without-units.html: Added.
        * platform/gtk/TestExpectations:
        * platform/gtk/legacy-animation-engine/animations/3d/change-transform-in-end-event-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/3d/change-transform-in-end-event-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/3d/matrix-transform-type-animation-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/3d/matrix-transform-type-animation-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/3d/replace-filling-transform-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/3d/state-at-end-event-transform-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/3d/state-at-end-event-transform-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/additive-transform-animations-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/animation-offscreen-to-onscreen-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-border-image-source-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-border-image-source-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-list-style-image-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-list-style-image-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-webkit-mask-image-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/cross-fade-webkit-mask-image-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/missing-values-first-keyframe-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/missing-values-first-keyframe-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/missing-values-last-keyframe-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/missing-values-last-keyframe-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/opacity-transform-animation-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/state-at-end-event-expected.png: Added.
        * platform/gtk/legacy-animation-engine/animations/state-at-end-event-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/suspend-transform-animation-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/geometry/partial-layout-update-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/geometry/partial-layout-update-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/layer-creation/overlap-animation-container-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/layer-creation/overlap-animation-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/overflow/overflow-positioning-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/overflow/overflow-positioning-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/become-overlay-composited-layer-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/become-overlay-composited-layer-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/layer-repaint-rects-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/layer-repaint-rects-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/opacity-between-absolute-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/opacity-between-absolute-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/opacity-between-absolute2-expected.png: Added.
        * platform/gtk/legacy-animation-engine/compositing/repaint/opacity-between-absolute2-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/css3/filters/composited-during-transition-layertree-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/fast/css/transition-color-unspecified-expected.png: Added.
        * platform/gtk/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.png: Added.
        * platform/gtk/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/transitions/cross-fade-background-image-expected.png: Added.
        * platform/gtk/legacy-animation-engine/transitions/cross-fade-background-image-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/transitions/cross-fade-border-image-expected.png: Added.
        * platform/gtk/legacy-animation-engine/transitions/cross-fade-border-image-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/transitions/default-timing-function-expected.png: Added.
        * platform/gtk/legacy-animation-engine/transitions/default-timing-function-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/transitions/move-after-transition-expected.png: Added.
        * platform/gtk/legacy-animation-engine/transitions/move-after-transition-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/transitions/opacity-transition-zindex-expected.png: Added.
        * platform/gtk/legacy-animation-engine/transitions/suspend-transform-transition-expected.png: Added.
        * platform/gtk/legacy-animation-engine/transitions/svg-text-shadow-transition-expected.png: Added.
        * platform/gtk/legacy-animation-engine/transitions/svg-text-shadow-transition-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/transitions/transition-end-event-rendering-expected.png: Added.
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios-wk1/legacy-animation-engine/animations/trigger-container-scroll-simple-expected.txt: Added.
        * platform/ios-wk1/legacy-animation-engine/compositing/backing/backface-visibility-flip-expected.txt: Added.
        * platform/ios-wk1/legacy-animation-engine/transitions/default-timing-function-expected.txt: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/legacy-animation-engine/transitions/default-timing-function-expected.png: Added.
        * platform/ios/TestExpectations:
        * platform/ios/legacy-animation-engine/animations/3d/change-transform-in-end-event-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/3d/matrix-transform-type-animation-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/3d/replace-filling-transform-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/3d/state-at-end-event-transform-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/animation-offscreen-to-onscreen-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/cross-fade-border-image-source-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/cross-fade-list-style-image-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/cross-fade-webkit-mask-image-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/missing-values-first-keyframe-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/missing-values-last-keyframe-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/opacity-transform-animation-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/state-at-end-event-expected.txt: Added.
        * platform/ios/legacy-animation-engine/animations/suspend-transform-animation-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/contents-scale/animating-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/geometry/partial-layout-update-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/geometry/partial-layout-update-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/layer-creation/overlap-animation-clipping-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/layer-creation/overlap-animation-container-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/overflow/overflow-positioning-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/overflow/overflow-positioning-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/reflections/animation-inside-reflection-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/reflections/animation-inside-reflection-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/reflections/load-video-in-reflection-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/reflections/nested-reflection-animated-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/reflections/nested-reflection-animated-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/reflections/nested-reflection-transition-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/reflections/nested-reflection-transition-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/become-overlay-composited-layer-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/become-overlay-composited-layer-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/layer-repaint-rects-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/layer-repaint-rects-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/opacity-between-absolute-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/opacity-between-absolute-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/opacity-between-absolute2-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/repaint/opacity-between-absolute2-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/transitions/scale-transition-no-start-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/transitions/scale-transition-no-start-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/transitions/singular-scale-transition-expected.png: Added.
        * platform/ios/legacy-animation-engine/compositing/transitions/singular-scale-transition-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/visible-rect/animated-expected.txt: Added.
        * platform/ios/legacy-animation-engine/compositing/visible-rect/animated-from-none-expected.txt: Added.
        * platform/ios/legacy-animation-engine/css3/filters/composited-during-transition-layertree-expected.txt: Added.
        * platform/ios/legacy-animation-engine/fast/dom/event-handler-attributes-expected.txt: Added.
        * platform/ios/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
        * platform/ios/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.txt: Added.
        * platform/ios/legacy-animation-engine/transitions/cross-fade-border-image-expected.txt: Added.
        * platform/ios/legacy-animation-engine/transitions/default-timing-function-expected.txt: Added.
        * platform/ios/legacy-animation-engine/transitions/move-after-transition-expected.txt: Added.
        * platform/ios/legacy-animation-engine/transitions/svg-text-shadow-transition-expected.txt: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/mac-yosemite/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
        * platform/mac/TestExpectations:
        * platform/mac/legacy-animation-engine/animations/3d/change-transform-in-end-event-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/3d/change-transform-in-end-event-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/3d/matrix-transform-type-animation-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/3d/matrix-transform-type-animation-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/3d/state-at-end-event-transform-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/3d/state-at-end-event-transform-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-border-image-source-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-border-image-source-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-list-style-image-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-list-style-image-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-webkit-mask-image-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/cross-fade-webkit-mask-image-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/missing-values-first-keyframe-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/missing-values-last-keyframe-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/missing-values-last-keyframe-expected.txt: Added.
        * platform/mac/legacy-animation-engine/animations/state-at-end-event-expected.png: Added.
        * platform/mac/legacy-animation-engine/animations/state-at-end-event-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/animation/busy-indicator-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/geometry/partial-layout-update-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/geometry/partial-layout-update-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/layer-creation/overlap-animation-container-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/overflow/overflow-positioning-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/overflow/overflow-positioning-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/animation-inside-reflection-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/animation-inside-reflection-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/load-video-in-reflection-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/load-video-in-reflection-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/nested-reflection-animated-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/nested-reflection-animated-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/nested-reflection-transition-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/reflections/nested-reflection-transition-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/become-overlay-composited-layer-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/become-overlay-composited-layer-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/layer-repaint-rects-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/layer-repaint-rects-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/opacity-between-absolute-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/opacity-between-absolute-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/opacity-between-absolute2-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/repaint/opacity-between-absolute2-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/transitions/scale-transition-no-start-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/transitions/scale-transition-no-start-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/transitions/singular-scale-transition-expected.png: Added.
        * platform/mac/legacy-animation-engine/compositing/transitions/singular-scale-transition-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/visible-rect/animated-expected.txt: Added.
        * platform/mac/legacy-animation-engine/compositing/visible-rect/animated-from-none-expected.txt: Added.
        * platform/mac/legacy-animation-engine/css3/filters/composited-during-animation-layertree-expected.txt: Added.
        * platform/mac/legacy-animation-engine/css3/filters/composited-during-transition-layertree-expected.txt: Added.
        * platform/mac/legacy-animation-engine/fast/css/transition-color-unspecified-expected.png: Added.
        * platform/mac/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
        * platform/mac/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.png: Added.
        * platform/mac/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.txt: Added.
        * platform/mac/legacy-animation-engine/transitions/cross-fade-background-image-expected.png: Added.
        * platform/mac/legacy-animation-engine/transitions/cross-fade-background-image-expected.txt: Added.
        * platform/mac/legacy-animation-engine/transitions/cross-fade-border-image-expected.png: Added.
        * platform/mac/legacy-animation-engine/transitions/cross-fade-border-image-expected.txt: Added.
        * platform/mac/legacy-animation-engine/transitions/default-timing-function-expected.png: Added.
        * platform/mac/legacy-animation-engine/transitions/default-timing-function-expected.txt: Added.
        * platform/mac/legacy-animation-engine/transitions/move-after-transition-expected.png: Added.
        * platform/mac/legacy-animation-engine/transitions/move-after-transition-expected.txt: Added.
        * platform/mac/legacy-animation-engine/transitions/opacity-transition-zindex-expected.png: Added.
        * platform/mac/legacy-animation-engine/transitions/svg-text-shadow-transition-expected.png: Added.
        * platform/mac/legacy-animation-engine/transitions/svg-text-shadow-transition-expected.txt: Added.
        * platform/mac/legacy-animation-engine/transitions/transition-end-event-rendering-expected.png: Added.
        * platform/win/TestExpectations:
        * platform/win/legacy-animation-engine/animations/3d/change-transform-in-end-event-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/3d/matrix-transform-type-animation-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/3d/state-at-end-event-transform-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/cross-fade-border-image-source-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/cross-fade-list-style-image-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/missing-values-first-keyframe-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/missing-values-last-keyframe-expected.txt: Added.
        * platform/win/legacy-animation-engine/animations/state-at-end-event-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/animation/state-at-end-event-transform-layer-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/geometry/partial-layout-update-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/overflow/overflow-positioning-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/reflections/animation-inside-reflection-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/reflections/nested-reflection-animated-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/reflections/nested-reflection-transition-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/repaint/become-overlay-composited-layer-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/repaint/layer-repaint-rects-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/repaint/opacity-between-absolute-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/repaint/opacity-between-absolute2-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/transitions/scale-transition-no-start-expected.txt: Added.
        * platform/win/legacy-animation-engine/compositing/transitions/singular-scale-transition-expected.txt: Added.
        * platform/win/legacy-animation-engine/fast/css/image-set-value-not-removed-crash-expected.txt: Added.
        * platform/win/legacy-animation-engine/fast/harness/results-expected.txt: Added.
        * platform/win/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
        * platform/win/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.txt: Added.
        * platform/win/legacy-animation-engine/transitions/default-timing-function-expected.txt: Added.
        * platform/wincairo/TestExpectations:
        * platform/wincairo/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/animations/cross-fade-border-image-source-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/animations/cross-fade-list-style-image-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/animations/cross-fade-webkit-mask-image-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/animations/missing-values-first-keyframe-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/animations/missing-values-last-keyframe-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/animations/state-at-end-event-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/css3/filters/composited-during-transition-layertree-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/transitions/cross-fade-border-image-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/transitions/default-timing-function-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/transitions/move-after-transition-expected.txt: Added.
        * platform/wincairo/legacy-animation-engine/transitions/svg-text-shadow-transition-expected.txt: Added.
        * platform/wk2/TestExpectations:
        * platform/wpe/TestExpectations:
        * platform/wpe/legacy-animation-engine/animations/3d/change-transform-in-end-event-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/3d/matrix-transform-type-animation-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/3d/state-at-end-event-transform-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/cross-fade-border-image-source-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/cross-fade-list-style-image-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/cross-fade-webkit-mask-box-image-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/cross-fade-webkit-mask-image-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/missing-values-first-keyframe-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/missing-values-last-keyframe-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/state-at-end-event-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/tables/mozilla/bugs/bug113235-1-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/transitions/cross-fade-border-image-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/transitions/default-timing-function-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/transitions/move-after-transition-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/transitions/svg-text-shadow-transition-expected.txt: Added.

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

        Rebaseline WebCryptoAPI tests for High Sierra.

        Unreviewed test gardening.

        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker-expected.txt: Added.

2018-04-09  Brendan McLoughlin  <brendan@bocoup.com>

        sync remaining web-platform-tests to 94b33b573a069ae5170104ca581a354a35762536
        https://bugs.webkit.org/show_bug.cgi?id=184333

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-wk2/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt:
        * platform/mac-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/idlharness.worker-expected.png: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-expected.txt:
        * platform/wpe/TestExpectations:
        * tests-options.json:

2018-04-07  Youenn Fablet  <youenn@apple.com>

        Response headers should be filtered when sent from NetworkProcess to WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=184310

        Unreviewed.
        Fixed bogus const declaration.
        Improved sub test titles.

        * http/wpt/service-workers/header-filtering.https-expected.txt:
        * http/wpt/service-workers/header-filtering.https.html:

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

        Response headers should be filtered when sent from NetworkProcess to WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=184310

        Reviewed by Ryosuke Niwa.

        Rebased tests for WK2 as Server response header is now filtered out for cross-origin and not fetch/XHR loads.

        * http/wpt/service-workers/header-filtering-worker.js: Added.
        * http/wpt/service-workers/header-filtering.https-expected.txt: Added.
        Some tests are failing as navigation loads are not yet filtered and we
        have no good way yet to detect cross origin loads.
        * http/wpt/service-workers/header-filtering.https.html: Added.
        * http/wpt/service-workers/resources/header-filtering-iframe.html: Added.
        * http/wpt/service-workers/resources/response-full-of-headers.py: Added.
        * http/tests/webarchive/cross-origin-stylesheet-crash-expected.txt: Added.
        * http/tests/webarchive/test-preload-resources-expected.txt: Added.
        * platform/mac-wk1/http/tests/webarchive/cross-origin-stylesheet-crash-expected.txt: Added.
        * platform/mac-wk1/http/tests/webarchive/test-preload-resources-expected.txt: Added.
        * platform/win/http/tests/webarchive/cross-origin-stylesheet-crash-expected.txt: Added.
        * platform/win/http/tests/webarchive/test-preload-resources-expected.txt: Added.

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

        Mark fast/loader/submit-form-while-parsing-2.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184051

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Mark three wpt LayoutTests as slow on iOS
        https://bugs.webkit.org/show_bug.cgi?id=184278

        Unreviewed test gardening.

        These tests were marked as slow for macOS debug, but not for iOS.

        * platform/ios/TestExpectations:

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

        Import wpt webaudio tests
        https://bugs.webkit.org/show_bug.cgi?id=184348

        Reviewed by Eric Carlson.

        * TestExpectations:
        * resources/testharnessreport.js: Mock AudioContext with webkitAudioContext for wpt tests only.

2018-04-06  Ms2ger  <Ms2ger@igalia.com>

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

        Reviewed by Dean Jackson.

        Update expectations.

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

2018-04-06  Zalan Bujtas  <zalan@apple.com>

        Flex child does not get repainted when it is inserted back to the render tree.
        https://bugs.webkit.org/show_bug.cgi?id=184361
        <rdar://problem/34528716>

        Reviewed by Antti Koivisto.

        * fast/flexbox/missing-repaint-when-flext-item-never-had-layout-expected.txt: Added.
        * fast/flexbox/missing-repaint-when-flext-item-never-had-layout.html: Added.

2018-04-06  Daniel Bates  <dabates@apple.com>

        Emit a more informative message when a script is blocked due to "X-Content-Type: nosniff"
        https://bugs.webkit.org/show_bug.cgi?id=184359

        Reviewed by Per Arne Vollan.

        Adds a test to ensure we block importing scripts into a Web Worker whose HTTP responses
        include "X-Content-Type: nosniff" and have a non script MIME type.

        Also update existing expected results.

        * http/tests/security/contentTypeOptions/invalid-content-type-options-allowed-expected.txt:
        * http/tests/security/contentTypeOptions/nosniff-dynamic-script-blocked-expected.txt:
        * http/tests/security/contentTypeOptions/nosniff-importScript-blocked-expected.txt: Added.
        * http/tests/security/contentTypeOptions/nosniff-importScript-blocked.html: Added.
        * http/tests/security/contentTypeOptions/nosniff-script-allowed-expected.txt:
        * http/tests/security/contentTypeOptions/nosniff-script-blocked-expected.txt:
        * http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked-expected.txt:
        * http/tests/security/contentTypeOptions/resources/nosniff-importScript-blocked.js: Added.
        (let.mimeType.of.unscriptyMIMETypes.catch):
        * http/tests/security/contentTypeOptions/resources/script-with-header.pl:
        * http/tests/security/module-correct-mime-types-expected.txt:

2018-04-06  Daniel Bates  <dabates@apple.com>

        importScripts() should throw exception with a reason when it fails to load a script from the network
        https://bugs.webkit.org/show_bug.cgi?id=184345

        Reviewed by Alexey Proskuryakov.

        Update expected results.

        * http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
        * http/tests/workers/worker-importScripts-expected.txt:

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

        Remove pass expectation for LayoutTest imported/w3c/web-platform-tests/FileAPI/url/sandboxed-iframe.html
        https://bugs.webkit.org/show_bug.cgi?id=184362

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-04-06  Brendan McLoughlin  <brendan@bocoup.com>

        Sync 2dcontext, FileAPI, IndexedDB, background-fetch, credential-management, custom-elements, dom, encoding, and fetch web-platform-tests to 94b33b573a069ae5170104ca581a354a35762536
        https://bugs.webkit.org/show_bug.cgi?id=184299

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt: Added.
        * platform/mac-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:

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

        Add a test for scoped cookies used to load AppCache resources
        https://bugs.webkit.org/show_bug.cgi?id=184315

        Reviewed by Ryosuke Niwa.

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

2018-04-05  Zalan Bujtas  <zalan@apple.com>

        Folding anonymous blocks should not result in deleting content.
        https://bugs.webkit.org/show_bug.cgi?id=184339
        <rdar://problem/37327428>

        Reviewed by Antti Koivisto.

        * fast/block/crash-when-subtree-is-still-attached-expected.txt: Progressing. This test does not 
        intend to remove "foobar" text at all.
        * fast/block/crash-while-folding-anonymous-blocks-expected.txt: Added.
        * fast/block/crash-while-folding-anonymous-blocks.html: Added.

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

        Rebaseline tests for High Sierra.

        Unreviewed test gardening.

        * platform/mac-sierra/fast/forms/input-table-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-table-expected.txt.
        * platform/mac-sierra/tables/mozilla/bugs/bug30692-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug30692-expected.txt.
        * platform/mac/fast/forms/input-table-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug30692-expected.txt:

2018-04-04  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for http/tests/media/video-buffered-range-contains-currentTime.html.
        https://trac.webkit.org/changeset/223243/webkit

        Unreviewed test gardening.

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

2018-04-04  Youenn Fablet  <youenn@apple.com>

        http/wpt/loading/redirect-headers.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=184317

        Reviewed by Ryosuke Niwa.

        Wait for the completion of the fetch to end the test.

        * http/wpt/loading/redirect-headers.html:

2018-04-04  Youenn Fablet  <youenn@apple.com>

        WebRTC data channel only applications require capture permissions for direct connections
        https://bugs.webkit.org/show_bug.cgi?id=174500
        <rdar://problem/34134281>

        Reviewed by Eric Carlson.

        * webrtc/datachannel/mdns-ice-candidates-expected.txt: Added.
        * webrtc/datachannel/mdns-ice-candidates.html: Added.

2018-04-04  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/ios/TestExpectations:

2018-04-04  Brendan McLoughlin  <brendan@bocoup.com>

        Resync idlharness web-platform-tests up to 94b33b573a069ae5170104ca581a354a35762536
        https://bugs.webkit.org/show_bug.cgi?id=184278

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * http/wpt/webauthn/idl.https.html:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:

2018-04-04  Youenn Fablet  <youenn@apple.com>

        Add a test for HttpOnly cookies used to load AppCache resources
        https://bugs.webkit.org/show_bug.cgi?id=184305
        <rdar://problem/39175648>

        Reviewed by Brady Eidson.

        * http/tests/appcache/document-cookie-http-only-expected.txt: Added.
        * http/tests/appcache/document-cookie-http-only.php: Added.

2018-04-04  Ms2ger  <Ms2ger@igalia.com>

        Test gardening for GTK.
        https://bugs.webkit.org/show_bug.cgi?id=184298

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:
          - update expectations for fast/mediastream tests for the libwebrtc
            integration in r230152
          - skip http/wpt/loading/redirect-headers.html, which was added in
            r230224, because the API it uses is only implemented for cocoa
            (https://bugs.webkit.org/show_bug.cgi?id=184295)
        * platform/wpe/TestExpectations:
          - skip http/wpt/loading/redirect-headers.html, which was added in
            r230224, because the API it uses is only implemented for cocoa
            (https://bugs.webkit.org/show_bug.cgi?id=184295)

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

        NetworkResourceLoader does not need to expose all redirect response headers
        https://bugs.webkit.org/show_bug.cgi?id=184114
        <rdar://problem/39010557>

        Reviewed by Ryosuke Niwa.

        New test verifies that headers are filtered. Witout filtering, 9 headers would be visible to the injected bundle, while 6 headers reamin after filtering.

        * http/wpt/loading/redirect-headers-expected.txt: Added.
        * http/wpt/loading/redirect-headers.html: Added.
        * platform/mac-wk1/TestExpectations: Skipped new test for WK1.

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

        Mark http/tests/appcache/interrupted-update.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184061

        Unreviewed test gardening.

        * TestExpectations:

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

        Mark storage/indexeddb/dont-wedge-private.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184058

        Unreviewed test gardening.

        * TestExpectations:

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

        Mark http/tests/workers/service/service-worker-cache-api.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184245

        Unreviewed test gardening.

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

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

        Followup(r230063): Add test a layout test for https://bugs.webkit.org/show_bug.cgi?id=183972
        https://bugs.webkit.org/show_bug.cgi?id=184162

        Reviewed by Daniel Bates.

        Without r230063, running run-webkit-tests -g for this test will crash.

        * svg/dom/animated-tearoff-list-remove-target-expected.txt: Added.
        * svg/dom/animated-tearoff-list-remove-target.html: Added.

2018-04-02  Jer Noble  <jer.noble@apple.com>

        AudioBufferSourceNode start method causes OfflineAudioContext to start running
        https://bugs.webkit.org/show_bug.cgi?id=181939
        <rdar://problem/36755393>

        Reviewed by Eric Carlson.

        * webaudio/offlineaudiocontext-restriction-expected.txt: Added.
        * webaudio/offlineaudiocontext-restriction.html: Added.

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

        Show punycode if URL contains hyphen character
        https://bugs.webkit.org/show_bug.cgi?id=184221
        <rdar://problem/38044633>

        Reviewed by Darin Adler.

        * fast/url/host-expected.txt:
        * fast/url/host.html:

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

        Web Inspector: tint all pixels drawn by shader program when hovering ShaderProgramTreeElement
        https://bugs.webkit.org/show_bug.cgi?id=175223

        Reviewed by Matt Baker.

        * inspector/canvas/setShaderProgramHighlighted-expected.txt: Added.
        * inspector/canvas/setShaderProgramHighlighted.html: Added.

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

        Skip http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html
        https://bugs.webkit.org/show_bug.cgi?id=178472

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Mark imported/w3c/web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184198

        Unreviewed test gardening.

        * TestExpectations:

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

        Mark inspector/unit-tests/debounce.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184057

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [Web Animations] CSSTransition objects should have fill: backwards to allow seeking prior to start time
        https://bugs.webkit.org/show_bug.cgi?id=184129

        Reviewed by Dean Jackson.

        Make one test opt into CSS Animations and CSS Transitions as Web Animations and fix expectations for a CSSTransition
        test which mistakenly assumes the fill to be "none".

        * transitions/transition-in-delay-phase.html:
        * webanimations/css-transitions.html:

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

        Mark imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex7-event_order.htm as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184116

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [Web Animations] Correctly obtain the timing function for a given keyframe
        https://bugs.webkit.org/show_bug.cgi?id=184146

        Reviewed by Dean Jackson.

        Make 4 tests opt into CSS Animations and CSS Transitions as Web Animations.

        * animations/keyframe-timing-functions-transform.html:
        * animations/keyframe-timing-functions.html:
        * animations/keyframe-timing-functions2.html:
        * animations/missing-keyframe-properties-timing-function.html:

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

        Unreviewed, rolling out r230087.

        Introduced LayoutTest failures.

        Reverted changeset:

        "FrameSelection::appearanceUpdateTimerFired should be robust
        against layout passes underneath it"
        https://bugs.webkit.org/show_bug.cgi?id=183395
        https://trac.webkit.org/changeset/230087

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

        FrameSelection::appearanceUpdateTimerFired should be robust against layout passes underneath it
        https://bugs.webkit.org/show_bug.cgi?id=183395
        <rdar://problem/38055732>

        Reviewed by Zalan Bujtas.

        Add a new layout test that passes if we didn't crash.

        * editing/selection/iframe-update-selection-appearance-expected.txt: Added.
        * editing/selection/iframe-update-selection-appearance.html: Added.

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

        The test http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html is failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=184134

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        The test transitions/opacity-transition-zindex.html is timing out on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=184133

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Web Animations] Stop using internals.pauseTransitionAtTimeOnElement() in favor of Web Animations API for transitions tests
        https://bugs.webkit.org/show_bug.cgi?id=184097

        Reviewed by Dean Jackson.

        Make 55 tests opt into CSS Animations and CSS Transitions as Web Animations. These tests used the internals.pauseTransitionAtTimeOnElement()
        method, but this method should be going away since the Web Animations API allows seeking and pausing. To support this, we make
        transition-test-helpers.js use the Web Animations API instead of internals.pauseTransitionAtTimeOnElement() if the tests has opted
        into CSS Animations and CSS Transitions as Web Animations and we know it's safe to use these APIs.

        Overall, 20 of those tests used to fail with the flag on before this change.

        * compositing/animation/animated-composited-inside-hidden.html:
        * compositing/animation/computed-style-during-delay.html:
        * compositing/reflections/nested-reflection-transition.html:
        * compositing/transitions/scale-transition-no-start.html:
        * compositing/transitions/singular-scale-transition.html:
        * css3/calc/transitions-dependent.html:
        * css3/calc/transitions.html:
        * transitions/background-position-transitions.html:
        * transitions/background-transitions.html:
        * transitions/blendmode-transitions.html:
        * transitions/border-radius-transition.html:
        * transitions/clip-path-path-transitions.html:
        * transitions/clip-transition.html:
        * transitions/color-transition-all.html:
        * transitions/color-transition-rounding.html:
        * transitions/cross-fade-background-image.html:
        * transitions/cubic-bezier-overflow-color.html:
        * transitions/cubic-bezier-overflow-shadow.html:
        * transitions/cubic-bezier-overflow-transform.html:
        * transitions/default-timing-function.html:
        * transitions/delay.html:
        * transitions/flex-transitions.html:
        * transitions/font-family-during-transition.html:
        * transitions/frames-timing-function.html:
        * transitions/mask-transitions.html:
        * transitions/min-max-width-height-transitions.html:
        * transitions/mismatched-shadow-styles.html:
        * transitions/mismatched-shadow-transitions.html:
        * transitions/mixed-type.html:
        * transitions/move-after-transition.html:
        * transitions/multiple-background-size-transitions.html:
        * transitions/multiple-mask-transitions.html:
        * transitions/multiple-shadow-transitions.html:
        * transitions/negative-delay.html:
        * transitions/opacity-transition-zindex.html:
        * transitions/resources/transition-test-helpers.js:
        * transitions/shape-outside-transitions.html:
        * transitions/shorthand-border-transitions.html:
        * transitions/shorthand-transitions.html:
        * transitions/steps-timing-function.html:
        * transitions/svg-layout-transition.html:
        * transitions/svg-text-shadow-transition.html:
        * transitions/svg-transitions.html:
        * transitions/text-indent-transition.html:
        * transitions/transform-op-list-match.html:
        * transitions/transform-op-list-no-match.html:
        * transitions/transition-end-event-rendering.html:
        * transitions/transition-hit-test.html:
        * transitions/transition-on-element-with-content.html:
        * transitions/transition-shorthand-delay.html:
        * transitions/transition-timing-function.html:
        * transitions/transition-to-from-auto.html:
        * transitions/transition-to-from-undefined.html:
        * transitions/visited-link-color.html:
        * transitions/zero-duration-in-list.html:
        * transitions/zero-duration-with-non-zero-delay-start.html:

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

        [Web Animations] Implement more CSSPropertyBlendingClient methods
        https://bugs.webkit.org/show_bug.cgi?id=184077

        Reviewed by Dean Jackson.

        Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.

        * animations/3d/replace-filling-transform.html:
        * animations/additive-transform-animations.html:
        * animations/animation-direction-reverse-fill-mode-hardware.html:
        * animations/combo-transform-rotate+scale.html:
        * animations/simultaneous-start-transform.html:
        * compositing/animation/layer-for-filling-animation.html:
        * compositing/reflections/animation-inside-reflection.html:
        * compositing/reflections/nested-reflection-animated.html:
        * css3/filters/backdrop/animation.html:
        * css3/filters/composited-during-animation.html:
        * css3/filters/filter-animation-from-none-hw.html:
        * css3/filters/filter-animation-from-none-multi-hw.html:
        * css3/filters/filter-animation-from-none-multi.html:
        * css3/filters/filter-animation-from-none.html:
        * css3/filters/filter-animation-hw.html:
        * css3/filters/filter-animation-multi-hw.html:
        * css3/filters/filter-animation-multi.html:
        * css3/filters/filter-animation.html:
        * css3/masking/clip-path-animation.html:
        * fast/filter-image/filter-image-animation.html:
        * fast/shapes/shape-outside-floats/shape-outside-animation.html:
        * fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
        * fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * transitions/clip-path-transitions.html:
        * transitions/color-transition-premultiplied.html:
        * transitions/cross-fade-border-image.html:
        * transitions/cubic-bezier-overflow-length.html:
        * transitions/cubic-bezier-overflow-svg-length.html:
        * transitions/delay.html:
        * transitions/longhand-vs-shorthand-initial.html:
        * transitions/multiple-background-transitions.html:

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

        Align XMLHttpRequest's open() / send() / abort() with the latest specification
        https://bugs.webkit.org/show_bug.cgi?id=184108

        Reviewed by Youenn Fablet.

        * http/tests/xmlhttprequest/onloadend-event-after-abort.html:
        * http/tests/xmlhttprequest/onloadend-event-after-error.html:
        * http/tests/xmlhttprequest/simple-cross-origin-progress-events-expected.txt:
        * http/tests/xmlhttprequest/upload-onloadend-event-after-abort.html:
        * http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:
        Fix tests that expected a progress event before error/abort event. This is not as
        per specification and those tests were also failing in Firefox.

        * http/tests/xmlhttprequest/readystatechange-and-abort.html:
        Fix test that expected abort() to reset state to UNSENT as this is not as per specification.
        This test was failing in both Firefox and Chrome.

        * http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldNotDispatchEvent.html:
        Re-sync test from Blink. The test was wrongly expecting abort() to reset the state to
        UNSENT.

2018-03-28  Timothy Hatcher  <timothy@apple.com>

        Consolidate NSColor to WebCore::Color conversion and fix system colors.

        https://bugs.webkit.org/show_bug.cgi?id=184096
        rdar://problem/38918925

        Reviewed by Tim Horton.

        * fast/css/apple-system-control-colors-expected.txt: Updated with rgba() colors.
        * platform/mac/accessibility/content-editable-as-textarea-expected.txt: Updated with color space.

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

        [iOS] Multiple select appearance doesn't update when selecting or deselecting rows in the picker view
        https://bugs.webkit.org/show_bug.cgi?id=184110
        <rdar://problem/38796648>

        Reviewed by Tim Horton.

        Adds a new layout test to verify that after tapping on a multiple select and choosing an option, the select's
        renderer is updated to reflect its new state.

        * fast/forms/ios/ipad/multiple-select-updates-renderer-expected.txt: Added.
        * fast/forms/ios/ipad/multiple-select-updates-renderer.html: Added.
        * resources/basic-gestures.js:

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

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

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        WebSocket cookie incorrectly stored
        https://bugs.webkit.org/show_bug.cgi?id=184100
        <rdar://problem/37928715>

        Reviewed by Brent Fulgham.

        * http/tests/websocket/tests/hybi/cookie_wsh.py: Added. Downloaded from
        <https://github.com/w3c/pywebsocket/blob/b2e1d11086fdf00b33a0d30c504f227e7d4fa86b/src/example/cookie_wsh.py>.
        (_add_set_cookie):
        (web_socket_do_extra_handshake):
        (web_socket_transfer_data):
        * http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Added.
        * http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html: Added.

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

        Skipped imported/mozilla/css-animations/test_keyframeeffect-getkeyframes.html.
        https://bugs.webkit.org/show_bug.cgi?id=183848

        Unreviewed test gardening.

        * TestExpectations:

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

        Unreviewed, rolling out r230033.

        The LayoutTests modified in this change fail an assertion on
        WK1.

        Reverted changeset:

        "[Web Animations] Implement more CSSPropertyBlendingClient
        methods"
        https://bugs.webkit.org/show_bug.cgi?id=184077
        https://trac.webkit.org/changeset/230033

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

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

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

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

        [Web Animations] Implement more CSSPropertyBlendingClient methods
        https://bugs.webkit.org/show_bug.cgi?id=184077

        Reviewed by Dean Jackson.

        Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.

        * animations/3d/replace-filling-transform.html:
        * animations/additive-transform-animations.html:
        * animations/animation-direction-reverse-fill-mode-hardware.html:
        * animations/combo-transform-rotate+scale.html:
        * animations/simultaneous-start-transform.html:
        * compositing/animation/layer-for-filling-animation.html:
        * compositing/reflections/animation-inside-reflection.html:
        * compositing/reflections/nested-reflection-animated.html:
        * css3/filters/backdrop/animation.html:
        * css3/filters/composited-during-animation.html:
        * css3/filters/filter-animation-from-none-hw.html:
        * css3/filters/filter-animation-from-none-multi-hw.html:
        * css3/filters/filter-animation-from-none-multi.html:
        * css3/filters/filter-animation-from-none.html:
        * css3/filters/filter-animation-hw.html:
        * css3/filters/filter-animation-multi-hw.html:
        * css3/filters/filter-animation-multi.html:
        * css3/filters/filter-animation.html:
        * css3/masking/clip-path-animation.html:
        * fast/filter-image/filter-image-animation.html:
        * fast/shapes/shape-outside-floats/shape-outside-animation.html:
        * fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
        * fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * transitions/clip-path-transitions.html:
        * transitions/color-transition-premultiplied.html:
        * transitions/cross-fade-border-image.html:
        * transitions/cubic-bezier-overflow-length.html:
        * transitions/cubic-bezier-overflow-svg-length.html:
        * transitions/delay.html:
        * transitions/longhand-vs-shorthand-initial.html:
        * transitions/multiple-background-transitions.html:

2018-03-27  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Modernize some utility functions
        https://bugs.webkit.org/show_bug.cgi?id=184047

        Rubber-stamped by Matt Baker.

        * inspector/unit-tests/string-utilities-expected.txt: Updated.
        * inspector/unit-tests/string-utilities.html: Added String.prototype.escapeCharacters test.

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

        Skip http/wpt/service-workers/third-party-registration.html.
        https://bugs.webkit.org/show_bug.cgi?id=183860

        Unreviewed test gardening.

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

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

        Move request checking out of PingLoad for future reuse in NetworkLoad
        https://bugs.webkit.org/show_bug.cgi?id=183865

        Reviewed by Chris Dumez.

        * http/wpt/beacon/cors/cors-preflight-cookie-expected.txt:
        * http/wpt/beacon/cors/cors-preflight-cookie.html:

2018-03-27  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.
        * media/modern-media-controls/resources/media-controls-loader.js: Disable "Anonymous" mode
        fetching of mask images to allow modern media controls to load mask assets from the filesystem.

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

        RenderBox::parent/firstChild/nextSibling/previousSiblingBox() functions should type check.
        https://bugs.webkit.org/show_bug.cgi?id=184032
        <rdar://problem/38384984>

        Reviewed by Antti Koivisto.

        * fast/multicol/parent-box-when-spanner-is-present-expected.txt: Added.
        * fast/multicol/parent-box-when-spanner-is-present.html: Added.


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

        [Web Animations] Stop using internals.pauseAnimationAtTimeOnElement() in favor of Web Animations API for animations tests
        https://bugs.webkit.org/show_bug.cgi?id=184038

        Reviewed by Dean Jackson.

        Make 48 tests opt into CSS Animations and CSS Transitions as Web Animations. These tests used the internals.pauseAnimationAtTimeOnElement()
        method, but this method should be going away since the Web Animations API allows seeking and pausing. To support this, we make
        animation-test-helpers.js use the Web Animations API instead of internals.pauseAnimationAtTimeOnElement() if the tests has opted
        into CSS Animations and CSS Transitions as Web Animations and we know it's safe to use these APIs.

        * animations/3d/matrix-transform-type-animation.html:
        * animations/3d/transform-perspective.html:
        * animations/animation-callback-timestamp.html:
        * animations/animation-direction-reverse-hardware-opacity.html:
        * animations/animation-direction-reverse-hardware.html:
        * animations/animation-direction-reverse-non-hardware.html:
        * animations/animation-direction-reverse-timing-functions-hardware.html:
        * animations/animation-direction-reverse-timing-functions.html:
        * animations/animation-direction.html:
        * animations/animation-hit-test.html:
        * animations/animation-offscreen-to-onscreen.html:
        * animations/change-keyframes-expected.txt:
        * animations/change-keyframes.html:
        * animations/cross-fade-background-image.html:
        * animations/cross-fade-border-image-source.html:
        * animations/cross-fade-list-style-image.html:
        * animations/cross-fade-webkit-mask-box-image.html:
        * animations/duplicate-keys-expected.html:
        * animations/duplicate-keys.html:
        * animations/font-variations/font-stretch.html:
        * animations/font-variations/font-style.html:
        * animations/font-variations/font-variation-settings-order.html:
        * animations/font-variations/font-variation-settings-unlike.html:
        * animations/font-variations/font-variation-settings.html:
        * animations/font-variations/font-weight.html:
        * animations/generic-from-to.html:
        * animations/import.html:
        * animations/keyframe-multiple-timing-functions-transform.html:
        * animations/keyframes-comma-separated.html:
        * animations/keyframes-infinite-iterations.html:
        * animations/keyframes-invalid-keys.html:
        * animations/keyframes-out-of-order.html:
        * animations/keyframes.html:
        * animations/longhand-timing-function.html:
        * animations/matrix-anim.html:
        * animations/missing-keyframe-properties-repeating.html:
        * animations/missing-keyframe-properties.html:
        * animations/missing-values-first-keyframe.html:
        * animations/missing-values-last-keyframe.html:
        * animations/multiple-animations-timing-function.html:
        * animations/multiple-animations.html:
        * animations/multiple-keyframes.html:
        * animations/negative-delay.html:
        * animations/pause-crash.html:
        * animations/resources/animation-test-helpers.js:
        (checkExpectedValue):
        (pauseAnimationAtTimeOnElement):
        (startTest):
        (runAnimationTest):
        * animations/simultaneous-start-left.html:
        * animations/spring-function.html:
        * animations/stacking-context-unchanged-while-running.html:
        * animations/timing-functions.html:
        * animations/unanimated-style.html:
        * animations/unprefixed-keyframes.html:

2018-03-27  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-27  Eric Carlson  <eric.carlson@apple.com>

        Make AVFoundationEnabled preference available on iOS
        https://bugs.webkit.org/show_bug.cgi?id=183876
        <rdar://problem/38726459>

        Reviewed by Youenn Fablet.

        * media/media-error-fired-once-expected.txt: Added.
        * media/media-error-fired-once.html: Added.

2018-03-27  Fujii Hironori  <Hironori.Fujii@sony.com>

        [GTK] Layout test editing/deleting/delete-surrogatepair.html crashing with CRITICAL **: enchant_dict_check: assertion 'g_utf8_validate(word, len, NULL)' failed
        https://bugs.webkit.org/show_bug.cgi?id=176799

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations: Unmarked editing/deleting/delete-surrogatepair.html.

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

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

        Reviewed by Dean Jackson.

        The test imported/mozilla/css-animations/test_animation-currenttime.html now passes reliably.

        * TestExpectations:

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

        [Web Animations] Correctly handle timing functions specified by CSS Animations and CSS Transitions
        https://bugs.webkit.org/show_bug.cgi?id=183935

        Reviewed by Dean Jackson.

        We now pass 2 additional Mozilla tests completely, so they no longer need to be marked as flaky failures or timeouts.
        We also update tests that we wrote ourselves and which incorrectly assumed that the effect's timing would reflect
        the timing function set by CSS.

        * TestExpectations:
        * webanimations/css-animations-expected.txt:
        * webanimations/css-animations.html:
        * webanimations/css-transitions-expected.txt:
        * webanimations/css-transitions.html:

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

        Mark imported/mozilla/css-animations/test_animation-cancel.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184011

        Unreviewed test gardening.

        * TestExpectations:

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