2018-09-11  Ms2ger  <Ms2ger@igalia.com>

        Update idlharness.js and webidl2.js.
        https://bugs.webkit.org/show_bug.cgi?id=189303

        Reviewed by Youenn Fablet.

        Updated expectations.

        * http/wpt/credential-management/idl.https-expected.txt:
        * http/wpt/entries-api/interfaces-expected.txt:
        * http/wpt/webauthn/idl.https-expected.txt:
        * http/wpt/webauthn/idl.https.html: Fix confusion in untested IDLs.
        * platform/ios-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt: Removed; the platform-neutral file was updated.

2018-09-11  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Polish AuthenticatorManager and rename it to AuthenticatorCoordinator
        https://bugs.webkit.org/show_bug.cgi?id=189277
        <rdar://problem/44115936>

        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/public-key-is-user-verifying-platform-authenticator-available.html:

2018-09-10  Michael Saboff  <msaboff@apple.com>

        Test262 failure with Named Capture Groups - using a reference before the group is defined
        https://bugs.webkit.org/show_bug.cgi?id=189407

        Reviewed by Alex Christensen.

        Updated tests.

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

2018-09-10  Ryosuke Niwa  <rniwa@webkit.org>

        Update shadow DOM and custom elements tests
        https://bugs.webkit.org/show_bug.cgi?id=189494

        Reviewed by Youenn Fablet.

        Skip the test hitting a debug assertion until the bug 189493 is fixed.

        * TestExpectations:

2018-09-10  Truitt Savell  <tsavell@apple.com>

        Rebaseline test after https://trac.webkit.org/changeset/235866/webkit.
        https://bugs.webkit.org/show_bug.cgi?id=189178.

        Unreviewed Test Gardening.

        * platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:

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

        Unreviewed test gardening, rebaseline fast/events/ios/keyup.html after r235818.

        * fast/events/ios/keyup-expected.txt:

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

        ontrack events should be fired even if an existing transceiver exists
        https://bugs.webkit.org/show_bug.cgi?id=189477

        Reviewed by Eric Carlson.

        * webrtc/video-addLegacyTransceiver-expected.txt: Added.
        * webrtc/video-addLegacyTransceiver.html: Copied from LayoutTests/webrtc/video-addTransceiver.html.
        * webrtc/video-addTransceiver.html:

2018-09-10  Megan Gardner  <megan_gardner@apple.com>

        Correctly interpret from angle for conic gradients
        https://bugs.webkit.org/show_bug.cgi?id=189445
        <rdar://problem/44158271>

        Reviewed by Tim Horton.

        Adding a test for a conic gradient that starts at an angle.
        Cover the edges because triangles and conic gradients aren't rendered
        exactly the same.

        * TestExpectations:
        * fast/gradients/conic-from-angle-expected.html: Added.
        * fast/gradients/conic-from-angle.html: Added.
        * platform/ios-12/TestExpectations:
        * platform/mac/TestExpectations:

2018-09-10  James Savage  <james.savage@apple.com>

        Expose -apple-system-container-border color to internal web views.
        https://bugs.webkit.org/show_bug.cgi?id=189178.

        Reviewed by Timothy Hatcher.

        * fast/css/apple-system-control-colors-expected.txt:
        * fast/css/apple-system-control-colors.html:
        * platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
        * platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt:
        * platform/mac/fast/css/apple-system-control-colors-expected.txt:

2018-09-07  Ryosuke Niwa  <rniwa@webkit.org>

        mouseenter and mouseleave events don't get dispatched even when there is a capturing event listener for a slot ancestor
        https://bugs.webkit.org/show_bug.cgi?id=188561

        Reviewed by Darin Adler.

        Added tests for listening to mouseenter and mouseleave events using capturing and bubbling event listeners
        across shadow boundaries.

        * fast/shadow-dom/mouseenter-mouseleave-across-shadow-boundary-expected.txt: Added.
        * fast/shadow-dom/mouseenter-mouseleave-across-shadow-boundary.html: Added.
        * fast/shadow-dom/mouseenter-mouseleave-inside-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/mouseenter-mouseleave-inside-shadow-tree.html: Added.
        * fast/shadow-dom/mouseenter-mouseleave-on-slot-parent-expected.txt: Added.
        * fast/shadow-dom/mouseenter-mouseleave-on-slot-parent.html: Added.
        * platform/ios/TestExpectations: Skip the new tests since mouse events aren't supported on iOS.

2018-09-10  Daniel Bates  <dabates@apple.com>

        [iOS] Arrow keys do not dispatch DOM events to non-editable elements
        https://bugs.webkit.org/show_bug.cgi?id=189389

        Reviewed by Simon Fraser.

        Update expected result now that we compute the correct keyIdentifier, keycode, and which properties
        for DOM keyboard events dispatched when the arrow keys are pressed.

        * fast/events/ios/keydown-keyup-in-non-editable-content-expected.txt:

2018-09-10  Daniel Bates  <dabates@apple.com>

        [iOS] Make WKWebView become the first responder to support testing key presses to non-editable elements
        https://bugs.webkit.org/show_bug.cgi?id=189432

        Reviewed by Simon Fraser.

        Add a test that DOM keyboard events are dispatched to a non-editable <body> when simulating key
        presses using a hardware keyboard.

        * fast/events/ios/keydown-keyup-in-non-editable-content-expected.txt: Added.
        * fast/events/ios/keydown-keyup-in-non-editable-content.html: Added.

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

        [Payment Request] Use JSValueInWrappedObject for PaymentResponse's details attribute
        https://bugs.webkit.org/show_bug.cgi?id=189458

        Reviewed by Youenn Fablet.

        * fast/dom/reference-cycle-leaks.html:
        * http/tests/paymentrequest/payment-response-reference-cycle-leak.https-expected.txt: Added.
        * http/tests/paymentrequest/payment-response-reference-cycle-leak.https.html: Added.

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

        [CSSOM View] Handle the scrollingElement in Element::scroll(Left/Top/Width/Height/To)
        https://bugs.webkit.org/show_bug.cgi?id=182230

        Follow-up patch replacing document.body with document.scrollingElement in
        fast-scroll-iframe-latched-mainframe.html. This fixes flaky behavior.

        Reviewed by Antonio Gomes.

        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html: Replace document.body
        with document.scrollingElement since this document is in standard mode.

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

        [Web Animations] Positive delays of accelerated animations are not respected
        https://bugs.webkit.org/show_bug.cgi?id=189411
        <rdar://problem/44151416>

        Reviewed by Dean Jackson.

        Add a test that checks that positive delays are accounted for during accelerated actions, including a seek.

        * webanimations/accelerated-animation-with-delay-and-seek-expected.html: Added.
        * webanimations/accelerated-animation-with-delay-and-seek.html: Added.

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

        [Windows] Layout Test webanimations/accelerated-transition-interrupted-on-composited-element.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=189468

        Unreviewed test gardening.

        The test is timing out. Skip it on Windows.

        * platform/win/TestExpectations:

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

        [GStreamer] Several media related tests timing out around the same revision
        https://bugs.webkit.org/show_bug.cgi?id=189349

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations: Unflag Timeout from now-unaffected tests.

2018-09-10  Rob Buis  <rbuis@igalia.com>

        XMLHttpRequest: overrideMimeType should not update the response's "Content-Type" header
        https://bugs.webkit.org/show_bug.cgi?id=189465

        Reviewed by Frédéric Wang.

        Change existing test to reflect new behavior.

        * http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-content-type-header-expected.txt:
        * http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-content-type-header.html:

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

        [Web Animations] Interrupting an accelerated CSS transition on a composited element in flight fails
        https://bugs.webkit.org/show_bug.cgi?id=189405
        <rdar://problem/43342639>

        Reviewed by Simon Fraser.

        Add a new test that checks that interrupting a CSS transition targeting an accelerated property for an element
        that is composited outside the duration of the transition correctly interrupts the animation and jumps straight
        to the target value.

        * platform/win/TestExpectations:
        * webanimations/accelerated-transition-interrupted-on-composited-element-expected.html: Added.
        * webanimations/accelerated-transition-interrupted-on-composited-element.html: Added.

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

        REGRESSION (r235153): [iOS] Can't move selection start grabber when selecting text in a subframe
        https://bugs.webkit.org/show_bug.cgi?id=189454
        <rdar://problem/44265956>

        Reviewed by Darin Adler.

        Adds a test that selects a word inside an iframe, moves the selection start handle down past the selection end,
        and then moves the selection end handle up above the selection start. The test verifies that the entire word
        remains selected.

        * editing/selection/ios/selection-handle-clamping-in-iframe-expected.txt: Added.
        * editing/selection/ios/selection-handle-clamping-in-iframe.html: Added.

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

        [Apple Pay] Dispatch a paymentmethodchange event when the payment method changes
        https://bugs.webkit.org/show_bug.cgi?id=189386

        Reviewed by Darin Adler.

        * fast/dom/reference-cycle-leaks-expected.txt:
        * fast/dom/reference-cycle-leaks.html:
        * http/tests/ssl/applepay/ApplePayPaymentMethodChangeEvent.https-expected.txt: Added.
        * http/tests/ssl/applepay/ApplePayPaymentMethodChangeEvent.https.html: Added.
        * platform/ios-wk2/fast/dom/reference-cycle-leaks-expected.txt: Added.
        * platform/mac-wk2/fast/dom/reference-cycle-leaks-expected.txt: Added.

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

        [LayoutTests] Add digest access authentication test.
        https://bugs.webkit.org/show_bug.cgi?id=189286

        Reviewed by Alex Christensen.

        Add digest auth tests

        * http/tests/resources/digest-auth/authorize.php: Added.
        * http/tests/resources/digest-auth/digest.php: Added.
        * http/tests/xmlhttprequest/digest-auth-expected.txt: Added.
        * http/tests/xmlhttprequest/digest-auth.html: Added.

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

        [Curl] Stop sending request with credential if no authorization requested.
        https://bugs.webkit.org/show_bug.cgi?id=189057

        Reviewed by Alex Christensen.

        * http/tests/xmlhttprequest/resources/no-authenticate-header-401.php: Added.
        * http/tests/xmlhttprequest/unauthorized-without-authenticate-header-expected.txt: Added.
        * http/tests/xmlhttprequest/unauthorized-without-authenticate-header.html: Added.

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

        Tests checking document GC in case of ActiveDOMObjects are flaky
        https://bugs.webkit.org/show_bug.cgi?id=189413

        Reviewed by Eric Carlson.

        Instead of calling parent.done() use postMessage.
        The assumption is that GC might not always collect 'parent' as it is in the call stack.
        With postMessage, no flakiness is observed locally.
        Added a related MediaDevices test that was missing from r235438.

        * http/tests/IndexedDB/collect-IDB-objects.https.html:
        * http/tests/IndexedDB/resources/myidbframe.htm:
        * http/tests/media/clearkey/collect-webkit-media-session.html:
        * http/tests/media/clearkey/resources/mywebkitmediasessionframe.htm:
        * http/tests/media/media-stream/collect-media-devices.https-expected.txt: Added.
        * http/tests/media/media-stream/collect-media-devices.https.html: Added.
        * http/tests/media/media-stream/resources/mymediadevicesframe.htm: Added.

2018-09-07  Daniel Bates  <dabates@apple.com>

        [iOS] uiController.typeCharacterUsingHardwareKeyboard("`", ...) dispatches DOM key events for ~
        https://bugs.webkit.org/show_bug.cgi?id=189325

        Reviewed by Wenson Hsieh.

        Add a test to ensure that we dispatch the correct DOM key events when using uiController.typeCharacterUsingHardwareKeyboard("`")
        (by way of UIHelper.typeCharacter()).

        * fast/events/ios/keypress-grave-accent-expected.txt: Added.
        * fast/events/ios/keypress-grave-accent.html: Added.

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

        [Curl][WebKitLegacy] Stop sending credential embedded in the url via XHR.
        https://bugs.webkit.org/show_bug.cgi?id=189198

        Reviewed by Alexey Proskuryakov.

        * http/tests/xmlhttprequest/resources/url-with-credentials/authenticate.php: Added.
        * http/tests/xmlhttprequest/resources/url-with-credentials/authorize.php: Added.
        * http/tests/xmlhttprequest/url-with-credentials-expected.txt: Added.
        * http/tests/xmlhttprequest/url-with-credentials.html: Added.

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

        Add support for unified plan transceivers
        https://bugs.webkit.org/show_bug.cgi?id=189390

        Reviewed by Eric Carlson.

        Update tests using mock to enforce plan B for now until unified plan mocks are supported.

        * fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
        * fast/mediastream/RTCPeerConnection-icecandidate-event.html:
        * fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html:
        * fast/mediastream/RTCPeerConnection-inspect-answer.html:
        * fast/mediastream/RTCPeerConnection-inspect-offer.html:
        * fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
        * fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html:
        * fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
        * fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
        * fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
        * webrtc/calling-peerconnection-once-closed.html:
        Once closed, addTransceiver is expected to throw.
        * webrtc/libwebrtc/release-while-creating-offer.html:
        * webrtc/libwebrtc/release-while-getting-stats.html:
        * webrtc/libwebrtc/release-while-setting-local-description.html:
        * webrtc/video-getParameters.html: sender and receiver parameters are no longer the same.
        Testing them individually.
        * webrtc/video-with-receiver.html:
        Test is working only with legacy mode.

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

        [CSSOM View] Handle the scrollingElement in Element::scroll(Left/Top/Width/Height/To)
        https://bugs.webkit.org/show_bug.cgi?id=182230

        Reviewed by Simon Fraser.

        This commit updates some tests to work when CSSOMViewScrollingAPI is enabled.

        * TestExpectations: Enable web-platform-tests/cssom-view/scrollingElement.html.
        * fast/dom/Document/scrollingElement-quirks-mode.html: Do not enable explictly enable
        CSSOMViewScrollingAPI.
        * fast/dom/Document/scrollingElement-standards-mode.html: Ditto.
        * fast/dom/Element/body-scrollLeft-expected.txt: Updated to follow the CSSOMView spec.
        * fast/dom/Element/body-scrollLeft.html: Ditto.
        * fast/dom/Element/body-scrollTop-expected.txt: Ditto.
        * fast/dom/Element/body-scrollTop.html: Ditto.
        * fast/dom/Element/documentElement-scrollLeft-expected.txt: Ditto.
        * fast/dom/Element/documentElement-scrollLeft.html: Ditto.
        * fast/dom/Element/documentElement-scrollTop-expected.txt: Ditto.
        * fast/dom/Element/documentElement-scrollTop.html: Ditto.
        * fast/dom/Element/scrollLeft-expected.txt: Ditto.
        * fast/dom/Element/scrollLeft.html: Ditto.
        * fast/dom/Element/scrollTop-expected.txt: Ditto.
        * fast/dom/Element/scrollTop.html: Ditto.
        * fast/dom/Element/scrolling-funtions-on-body-expected.txt: Ditto.
        * fast/dom/Element/scrolling-funtions-on-body.html: Ditto.
        * platform/ios/TestExpectations: Add expectation for one WPT test that was already failing
        on iOS.
        * platform/ios/ios/fast/coordinates/page-offsets-expected.txt: Use documentElement instead
        of body for this test when running in standard mode.
        * platform/ios/ios/fast/coordinates/resources/helpers.js: Ditto.
        (verifyScrollOffsets):
        * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html: Use
        document.scrollingElement instead of document.body to access viewport scroll offset.

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

        [iOS] Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        [LFC] Add support for min/max-height percentage values.
        https://bugs.webkit.org/show_bug.cgi?id=189391

        Reviewed by Antti Koivisto.

        * fast/block/block-only/min-max-height-percentage-expected.txt: Added.
        * fast/block/block-only/min-max-height-percentage.html: Added.

2018-09-06  Megan Gardner  <megan_gardner@apple.com>

        Add Support for Conic Gradients
        https://bugs.webkit.org/show_bug.cgi?id=189329
        <rdar://problem/21444701>

        Reviewed by Simon Fraser.

        Simple tests to see if conic gradients are rendered properly.

        * fast/gradients/conic-expected.html: Added.
        * fast/gradients/conic-repeating-expected.html: Added.
        * fast/gradients/conic-repeating.html: Added.
        * fast/gradients/conic.html: Added.

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

        [LFC][BFC] Add support for min(max)-height
        https://bugs.webkit.org/show_bug.cgi?id=189377

        Reviewed by Antti Koivisto.

        * fast/block/block-only/absolute-position-min-max-height-expected.txt: Added.
        * fast/block/block-only/absolute-position-min-max-height.html: Added.
        * fast/block/block-only/float-min-max-height-expected.txt: Added.
        * fast/block/block-only/float-min-max-height.html: Added.
        * fast/block/block-only/inflow-min-max-height-expected.txt: Added.
        * fast/block/block-only/inflow-min-max-height.html: Added.

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

        [iOS] Add a test to ensure that DOM keyup events have the correct details
        https://bugs.webkit.org/show_bug.cgi?id=189327

        Reviewed by Wenson Hsieh.

        Until we fix <rdar://problem/35282761> DOM keyup events will have incorrect details on iOS
        when dispatched in response to a hardware keyboard press. For now, land expected failure results.

        * fast/events/ios/keyup-expected.txt: Added.
        * fast/events/ios/keyup.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.typeCharacter): Escape backslash characters in order to build up
        a well-formed UI script to evaluate.

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

        [Apple Pay] Rename the -apple-pay-button-type value "checkout" to "check-out"
        https://bugs.webkit.org/show_bug.cgi?id=189366
        <rdar://problem/44193218>

        Reviewed by Sam Weinig.

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

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

        [LFC][BFC] Add support for min(max)-width
        https://bugs.webkit.org/show_bug.cgi?id=189358

        Reviewed by Antti Koivisto.

        * fast/block/block-only/absolute-position-min-max-width-expected.txt: Added.
        * fast/block/block-only/absolute-position-min-max-width.html: Added.
        * fast/block/block-only/float-min-max-width-expected.txt: Added.
        * fast/block/block-only/float-min-max-width.html: Added.
        * fast/block/block-only/inflow-min-max-width-expected.txt: Added.
        * fast/block/block-only/inflow-min-max-width.html: Added.

2018-09-06  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r235732.

        * platform/gtk/TestExpectations:

2018-09-06  Ali Juma  <ajuma@chromium.org>

        IntersectionObserver leaks documents
        https://bugs.webkit.org/show_bug.cgi?id=189128

        Reviewed by Simon Fraser.

        * intersection-observer/no-document-leak-expected.txt: Added.
        * intersection-observer/no-document-leak.html: Added.
        * intersection-observer/observer-and-callback-without-js-references-expected.txt: Added.
        * intersection-observer/observer-and-callback-without-js-references.html: Added.
        * intersection-observer/resources/no-document-leak-frame.html: Added.

2018-09-05  Brent Fulgham  <bfulgham@apple.com>

        The width of a nullptr TextRun should be zero
        https://bugs.webkit.org/show_bug.cgi?id=189154
        <rdar://problem/43685926>

        Reviewed by Zalan Bujtas.

        * fast/text/null-string-textrun-expected.txt: Added.
        * fast/text/null-string-textrun.html: Added.

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

        Expose RTCRtpSender.setParameters
        https://bugs.webkit.org/show_bug.cgi?id=189307

        Reviewed by Eric Carlson.

        * webrtc/video-getParameters.html:

2018-09-05  Truitt Savell  <tsavell@apple.com>

        Rebaseline test after changes in https://trac.webkit.org/changeset/235669/webkit deleted the expectation. 
        https://bugs.webkit.org/show_bug.cgi?id=188816

        Unreviewed Test Gardening.

        * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/send-network-error-async-events.sub-expected.txt:

2018-09-05  Ms2ger  <Ms2ger@igalia.com>

        GTK-focused gardening
        https://bugs.webkit.org/show_bug.cgi?id=189305

        Unreviewed test gardening.

        * TestExpectations: Remove passing test.
        * fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html: Speculative fix for r235484.
        * platform/gtk/http/tests/inspector/network/resource-request-headers-expected.txt: Added.
        * platform/gtk/http/tests/loading/oauth-expected.txt: Added.
        * platform/gtk/http/tests/websocket/connection-refusal-in-frame-resource-load-statistics-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/xhr/send-network-error-sync-events.sub-expected.txt: Updated for r235354.
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt: Updated for r235245.

2018-09-04  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [EME] Add a layoutTest for ClearKey WebM video playback
        https://bugs.webkit.org/show_bug.cgi?id=189200

        Reviewed by Xabier Rodriguez-Calvar.

        Add a new layoutTest in order to test the playback of ClearKey encrypted WebM.

        * media/encrypted-media/clearKey/clearKey-webm-video-playback-mse-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html: Added.
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:

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

        Add basic support for ScrollIntoViewOptions
        https://bugs.webkit.org/show_bug.cgi?id=189258

        Reviewed by Simon Fraser.

        Update test expectations for WPT scrollIntoView tests.

        * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-smooth-expected.txt: Removed.

2018-09-04  Michael Saboff  <msaboff@apple.com>

        YARR: Add new RegExp back reference tests to specifically test back reference JIT code
        https://bugs.webkit.org/show_bug.cgi?id=189291

        Reviewed by Saam Barati.

        New tests.

        * fast/regex/backreferences-expected.txt: Added.
        * fast/regex/backreferences.html: Added.
        * fast/regex/script-tests/backreferences.js: Added.

2018-09-04  Ryosuke Niwa  <rniwa@webkit.org>

        slotchange event doesn't get fired when inserting, removing, or renaming slot elements
        https://bugs.webkit.org/show_bug.cgi?id=189144
        <rdar://problem/43871061>

        Reviewed by Antti Koivisto.

        Added a W3C style testharness.js test for inserting, removing, and renaming slot elements.

        It has 62 distinct test cases for closed/open shadow roots in connected and disconnected trees
        for the total of 248 test cases.

        This test presumes the resolution of https://github.com/w3c/webcomponents/issues/764 in our favor.

        Chrome fails 48 test cases because it doesn't follow the tree order when dispatching slotchange event
        on the previously first slot element, and Firefox fails 84 test cases because it fails to fire slotchange
        in the tree order when a node is inserted.

        * fast/shadow-dom/slotchange-for-slot-mutation-expected.txt: Added.
        * fast/shadow-dom/slotchange-for-slot-mutation.html: Added.

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

        CSS reference filter that references a tiled feTurbulence is blank
        https://bugs.webkit.org/show_bug.cgi?id=188950

        Reviewed by Dean Jackson.

        * css3/filters/reference-filter-set-filter-regions-expected.html: Added.
        * css3/filters/reference-filter-set-filter-regions.html: Added.

2018-09-04  Rob Buis  <rbuis@igalia.com>

        Adjust XMLHttpRequest username/password precedence rules
        https://bugs.webkit.org/show_bug.cgi?id=184910

        Reviewed by Chris Dumez.

        Adjust test because now we do set password on the url in
        open(), even if the username is null.

        * http/tests/xmlhttprequest/basic-auth.html:

2018-09-03  Dean Jackson  <dino@apple.com>

        Move SystemPreview code from WebKitAdditions to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=189252
        <rdar://problem/44080245>

        Reviewed by Wenson Hsieh.

        This test no longer needs an internal helper.

        * system-preview/detection.html:

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

        [Modern Media Controls] Disabling both fullscreen and picture-in-picture shows an empty top left container
        https://bugs.webkit.org/show_bug.cgi?id=189259
        <rdar://problem/42026625>

        Reviewed by Dean Jackson.

        Adding a new test that checks that the top left container is hidden when both the fullscreen and picture-in-picture buttons are disabled.

        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip.html: Added.

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

        Add test for fix in https://bugs.webkit.org/show_bug.cgi?id=187922
        https://bugs.webkit.org/show_bug.cgi?id=187925

        Reviewed by Simon Fraser.

        This will test that the function primaryScreenDisplayID() returns a valid display ID.

        * TestExpectations:
        * fast/misc/valid-primary-screen-displayID-expected.txt: Added.
        * fast/misc/valid-primary-screen-displayID.html: Added.
        * platform/mac-wk2/TestExpectations:

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

        Remove redundant inline text boxes for empty combined text
        https://bugs.webkit.org/show_bug.cgi?id=189119

        Reviewed by Zalan Bujtas.

        Update expected result now that we do not create an inline text box associated with combined text
        when we do not have any combined text to render.

        * fast/text/text-combine-surroundContents-crash-expected.txt:

2018-09-04  Zan Dobersek  <zdobersek@igalia.com> and Ms2ger  <Ms2ger@igalia.com>

        Implement support for passing ImageBitmap to texImage2D/texSubImage2D
        https://bugs.webkit.org/show_bug.cgi?id=187584

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/gl-teximage-imagebitmap-expected.txt: Added.
        * fast/canvas/webgl/gl-teximage-imagebitmap.html: Added.

2018-09-04  Yacine Bandou  <yacine.bandou@softathome.com>

        [EME] Add layout test for InitData and InitDataType in WebM encrypted event
        https://bugs.webkit.org/show_bug.cgi?id=189196

        Reviewed by Xabier Rodriguez-Calvar.

        This commit adds a new layoutTest in order to test the reception of the encrypted WebM
        event with an expected initData and initDataType fields.

        * media/content/encrypted/VideoClearKeyWebM.webm: Added.
            This is a simple encrypted video.
            It has been encrypted with webm_crypt see https://github.com/webmproject/webm-tools.
            #webm_crypt  -i VideoWebM.webm -audio false -video true -video_options base_file=bear.key,content_id="0123456789012345" -o VideoClearKeyWebM.webm
        * media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse.html: Added.
        * media/encrypted-media/medias-enc.js:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:

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

        [Payment Request] Remove PaymentAddress.languageCode
        https://bugs.webkit.org/show_bug.cgi?id=189254

        Reviewed by Sam Weinig.

        * http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:
        * http/tests/ssl/applepay/ApplePayRequestShippingContact.https-expected.txt:
        * http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html:

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

        REGRESSION: Layout Test http/tests/security/bypassing-cors-checks-for-extension-urls.html is Flaky
        https://bugs.webkit.org/show_bug.cgi?id=187658
        <rdar://problem/42306442>

        Reviewed by Alexey Proskuryakov.

        * platform/mac-wk2/TestExpectations:

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

        [Payment Request] Implement the MerchantValidationEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=189235

        Reviewed by Daniel Bates.

        Skipped new manual tests.

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

2018-09-03  Frederic Wang  <fwang@free.fr>

        Remove duplicate directory web-platform-tests/cssom-view
        https://bugs.webkit.org/show_bug.cgi?id=189241

        Reviewed by Daniel Bates.

        cssom-view tests were moved into web-platform-tests/css at r232903 but the old
        directory and expectation were left. This patch finishes the migration.

        * TestExpectations:
        * platform/ios-simulator/imported/w3c/web-platform-tests/cssom-view/Screen-pixelDepth-Screen-colorDepth001-expected.txt: Removed.
        * platform/ios-simulator/imported/w3c/web-platform-tests/cssom-view/scrolling-quirks-vs-nonquirks-expected.txt: Removed.
        * platform/ios-wk2/imported/w3c/web-platform-tests/cssom-view/elementFromPoint-expected.txt: Removed.
        * platform/ios-wk2/imported/w3c/web-platform-tests/cssom-view/scrollIntoView-smooth-expected.txt: Removed.
        * platform/ios/TestExpectations:

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

        REGRESSION (r191336): RenderFlexibleBox::adjustChildSizeForMinAndMax crashes in std::optional<>::value()
        https://bugs.webkit.org/show_bug.cgi?id=189232
        <rdar://problem/43886373>

        Reviewed by Brent Fulgham.

        * fast/flexbox/crash-when-min-max-content-is-not-computed-expected.txt: Added.
        * fast/flexbox/crash-when-min-max-content-is-not-computed.html: Added.

2018-09-02  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Implement Object.fromEntries
        https://bugs.webkit.org/show_bug.cgi?id=188481

        Reviewed by Darin Adler.

        * js/Object-getOwnPropertyNames-expected.txt:
        * js/script-tests/Object-getOwnPropertyNames.js:

2018-08-31  Simon Fraser  <simon.fraser@apple.com>

        Clean up TestExpectations so that ./Tools/Scripts/lint-test-expectations
        succeeds now.

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

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

        [ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=183705
        <rdar://problem/42440606>

        Reviewed by Youenn Fablet.

        Update Layout tests to not rely on the total number of clients as this is flaky. Instead, check for specific client
        identifiers to see if they are present or not.

        * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
        * http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
        * http/tests/workers/service/resources/getClientIds-worker.js: Renamed from LayoutTests/http/tests/workers/service/resources/getClientCount-worker.js.
        (event.then):
        * http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
        (async.doTestAfterMessage):
        * http/tests/workers/service/serviceworkerclients-matchAll.https.html:

        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        Unskip tests as they should no longer be flaky.

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

        Storage Access API: Maintain access through same-site navigations
        https://bugs.webkit.org/show_bug.cgi?id=188564
        <rdar://problem/43445160>

        Reviewed by Alex Christensen.

        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-expected.txt:
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
            Added both a same-site and a cross-site navigation to the sub frame to test maintained and cleared access.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-expected.txt: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
        * http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
        * http/tests/storageAccess/resources/get-cookies.php:
            Support for the new test scenarios.
        * http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html:
            Support for the new test scenarios.
        * platform/mac-wk2/TestExpectations:
            Marked the new and the renamed tests as [ Pass ].

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

        slotchange-event-bubbling.html fails in Chrome & Firefox
        https://bugs.webkit.org/show_bug.cgi?id=189183

        Reviewed by Chris Dumez.

        slotchange event is supposed to fire when a slot element is inserted and there are assigned nodes.

        Firefox and Chrome implement this behavior and fail this test since the test doesn't let microstask
        check point run before start mutating the DOM.

        Fixed the test by manually waiting for the current microtask queue to be emptied after constructing
        the test shadow tree so that slotchange event from the initial tree construction doesn't get merged
        with slotchange event fired for the actual DOM mutation being tested.

        Also fixed typos in slotchange-in-fallback.html and a bug that we were removing the slot instead
        of the shadow host at the end of each test case.

        * fast/shadow-dom/slotchange-event-bubbling.html:
        * fast/shadow-dom/slotchange-in-fallback.html:

2018-08-31  Zalan Bujtas  <zalan@apple.com>

        [LFC] Add margin box verification back now that Display::Box has non-computed horizontal margin.
        https://bugs.webkit.org/show_bug.cgi?id=189193

        Reviewed by Antti Koivisto.

        * fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border-expected.txt: Added.
        * fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html: Added.

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

        [Win] Some tests are failing on ews200 after upgrading iTunes.
        https://bugs.webkit.org/show_bug.cgi?id=189194

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Bug 182053 - [CSSOM View] Implement standard behavior for scrollingElement
        https://bugs.webkit.org/show_bug.cgi?id=182053

        Reviewed by Simon Fraser.

        Add a test to check that in Quirks mode, the <body> element returned by
        document.scrollingElement is indeed a child of a <html> root (i.e. in the HTML namespace).
        Adjust scrollingElement*.html tests so that they are executed with the flag
        CSSOMViewScrollingAPI enabled and update expectations now that these tests pass.

        * fast/dom/Document/scrollingElement-quirks-mode.html:
        * fast/dom/Document/scrollingElement-quirks-mode-expected.txt:
        * fast/dom/Document/scrollingElement-standards-mode.html:
        * fast/dom/Document/scrollingElement-standards-mode-expected.txt:

2018-08-30  Zalan Bujtas  <zalan@apple.com>

        CounterMaps should hold a unique_ptr of CounterMap.
        https://bugs.webkit.org/show_bug.cgi?id=189174
        <rdar://problem/43686458>

        Reviewed by Ryosuke Niwa.

        * fast/css/counters/crash-when-cloning-body-expected.txt: Added.
        * fast/css/counters/crash-when-cloning-body.html: Added.

2018-08-30  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r235516.

        Caused 50 Crashes on Sierra

        Reverted changeset:

        "The width of a nullptr TextRun should be zero"
        https://bugs.webkit.org/show_bug.cgi?id=189154
        https://trac.webkit.org/changeset/235516

2018-08-30  Youenn Fablet  <youenn@apple.com>

        Remove WebRTC legacy API implementation
        https://bugs.webkit.org/show_bug.cgi?id=189040
        <rdar://problem/43861361>

        Unreviewed.

        * platform/ios/TestExpectations: Use default expectations for the folder.
        This allows skipping imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html

2018-08-30  Brent Fulgham  <bfulgham@apple.com>

        The width of a nullptr TextRun should be zero
        https://bugs.webkit.org/show_bug.cgi?id=189154
        <rdar://problem/43685926>

        Reviewed by Zalan Bujtas.

        * fast/text/null-string-textrun-expected.txt: Added.
        * fast/text/null-string-textrun.html: Added.

2018-08-30  Eric Carlson  <eric.carlson@apple.com>

        Mock video devices should only support discrete sizes
        https://bugs.webkit.org/show_bug.cgi?id=189000
        <rdar://problem/43766551>

        Reviewed by Youenn Fablet.

        Updated tests and results now that we have better support for width and height constraints.

        * fast/mediastream/MediaDevices-getUserMedia.html:
        * fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
        * fast/mediastream/apply-constraints-advanced-expected.txt:
        * fast/mediastream/apply-constraints-advanced.html:
        * fast/mediastream/apply-constraints-video-expected.txt:
        * fast/mediastream/apply-constraints-video.html:
        * fast/mediastream/getUserMedia-default-expected.txt:
        * fast/mediastream/getUserMedia-default.html:
        * imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https-expected.txt:
        * webrtc/video-interruption.html:
        * webrtc/video.html:

2018-08-30  Youenn Fablet  <youenn@apple.com>

        fast/mediastream/RTCPeerConnection-overloaded-operations.html is flaky after r235484
        https://bugs.webkit.org/show_bug.cgi?id=189155

        Reviewed by Eric Carlson.

        * fast/mediastream/RTCPeerConnection-overloaded-operations.html:
        createOffer/createAnswer will now reject promises if callbacks are passed as parameters.
        Make sure that these promises are handled.

2018-08-30  Zalan Bujtas  <zalan@apple.com>

        [LFC][Floating] Formatting context roots avoid floats.
        https://bugs.webkit.org/show_bug.cgi?id=189150

        Reviewed by Antti Koivisto.

        * fast/block/block-only/float-avoider-multiple-roots-expected.txt: Added.
        * fast/block/block-only/float-avoider-multiple-roots.html: Added.
        * fast/block/block-only/float-avoider-simple-left-expected.txt: Added.
        * fast/block/block-only/float-avoider-simple-left.html: Added.
        * fast/block/block-only/float-avoider-simple-right-expected.txt: Added.
        * fast/block/block-only/float-avoider-simple-right.html: Added.
        * fast/block/block-only/float-avoider-with-margins-expected.txt: Added.
        * fast/block/block-only/float-avoider-with-margins.html: Added.

2018-08-29  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist] Display prefix-matched suggestions first
        https://bugs.webkit.org/show_bug.cgi?id=189106

        Reviewed by Tim Horton.

        Added a test to verify that prefix-matched suggestions are shown before other
        matches.

        * fast/forms/datalist/datalist-textinput-suggestions-order-expected.txt: Added.
        * fast/forms/datalist/datalist-textinput-suggestions-order.html: Added.
        * platform/ios/TestExpectations:

2018-08-29  Olivia Barnett  <obarnett@apple.com>

        Implement the Web Share API
        https://bugs.webkit.org/show_bug.cgi?id=171100
        <rdar://problem/31751734>

        Reviewed by Tim Horton.

        * fast/dom/navigator-detached-no-crash-expected.txt:
        Updated expected results.

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

        Layout Test js/error-should-not-strong-reference-global-object.html is flaky on macOS
        https://bugs.webkit.org/show_bug.cgi?id=187103

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:
        * platform/mac/TestExpectations: Consolidate expectations.

2018-08-29  Daniel Bates  <dabates@apple.com>

        REGRESSION (r226138): WebCore::subdivide() may return an empty vector; Web process can crash when performing find in Epiphany
        https://bugs.webkit.org/show_bug.cgi?id=184390
        <rdar://problem/41804994>
        And
        <rdar://problem/39771867>

        Reviewed by Simon Fraser.

        Add a test to ensure that we do not crash when painting an empty inline text box associated
        with combined text.

        * fast/text/text-combine-surroundContents-crash-expected.txt: Added.
        * fast/text/text-combine-surroundContents-crash.html: Added.

2018-08-29  Youenn Fablet  <youenn@apple.com>

        Remove WebRTC legacy API implementation
        https://bugs.webkit.org/show_bug.cgi?id=189040

        Reviewed by Eric Carlson.

        * TestExpectations:
        * fast/events/constructors/media-stream-event-constructor-expected.txt: Removed.
        * fast/events/constructors/media-stream-event-constructor.html: Removed.
        * fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt: Removed.
        * fast/mediastream/RTCPeerConnection-AddRemoveStream.html: Removed.
        * fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
        * fast/mediastream/RTCPeerConnection-createAnswer.html:
        * fast/mediastream/RTCPeerConnection-createOffer-expected.txt: Removed.
        * fast/mediastream/RTCPeerConnection-createOffer.html: Removed.
        * fast/mediastream/RTCPeerConnection-dtmf.html: Removed.
        * fast/mediastream/RTCPeerConnection-events-expected.txt: Removed.
        * fast/mediastream/RTCPeerConnection-events.html: Removed.
        * fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-local-offer.html:
        * fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
        * fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-remote-offer.html:
        * fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
        * fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Removed.
        * fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html: Removed.
        * fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
        * fast/mediastream/RTCPeerConnection-localDescription.html:
        * fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
        * fast/mediastream/RTCPeerConnection-remoteDescription.html:
        * fast/mediastream/RTCPeerConnection-stable-expected.txt:
        * fast/mediastream/RTCPeerConnection-stable.html:
        * fast/mediastream/RTCPeerConnection-stats.html:
        * fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
        * fast/mediastream/RTCPeerConnection-statsSelector.html:
        * fast/mediastream/argument-types-expected.txt: Removed.
        * fast/mediastream/argument-types.html: Removed.
        * fast/mediastream/getusermedia-expected.txt: Removed.
        * fast/mediastream/getusermedia.html: Removed.
        * fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt: Removed.
        * fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
        * platform/mac/TestExpectations:
        * webrtc/legacy-api-expected.txt:
        * webrtc/legacy-api.html:

2018-08-29  Youenn Fablet  <youenn@apple.com>

        Add a runtime flag for WebRTC unified plan
        https://bugs.webkit.org/show_bug.cgi?id=189068

        Reviewed by Eric Carlson.

        * fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
        * webrtc/peer-connection-audio-mute2.html:
        * webrtc/peer-connection-remote-audio-mute2.html:
        * webrtc/video-addTrack-expected.txt:
        * webrtc/video-addTrack.html:
        * webrtc/video-addTransceiver.html:

2018-08-29  Ali Juma  <ajuma@chromium.org>

        Generalize suppresion for flaky IntersectionObserver web platform tests
        https://bugs.webkit.org/show_bug.cgi?id=189091

        Unreviewed test gardening.

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

2018-08-28  Simon Fraser  <simon.fraser@apple.com>

        Fix crash when reflections and backdrop filter are combined
        https://bugs.webkit.org/show_bug.cgi?id=188504
        rdar://problem/43225590

        Reviewed by Dan Bates.

        * compositing/filters/backdrop-filter-update-rect-expected.txt: Added.
        * compositing/filters/backdrop-filter-update-rect.html: Added.

2018-08-29  Ali Juma  <ajuma@chromium.org>

        [mac-wk1] Mark three IntersectionObserver web platform tests as flaky
        https://bugs.webkit.org/show_bug.cgi?id=189091

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-08-29  Truitt Savell  <tsavell@apple.com>

        Layout Test svg/animations/animate-end-attribute-numeric-precision.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=189087

        Unreviewed test gardening. 

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

2018-08-29  Simon Fraser  <simon.fraser@apple.com>

        Teach webkitpy how to check leaks and treat leaks as test failures
        https://bugs.webkit.org/show_bug.cgi?id=189067

        Reviewed by Darin Adler.
        
        Put some fake leaks in full_results.json, and update results.html to show a table
        of leaks when results are expanded.

        * fast/harness/full_results.json:
        * fast/harness/results-expected.txt:
        * fast/harness/results.html:

2018-08-29  Truitt Savell  <tsavell@apple.com>

        Missed adding expctations to ios for webkit.org/b/188985
        https://bugs.webkit.org/show_bug.cgi?id=188985

        Unreviewed test gardening. 

        * platform/ios-wk2/TestExpectations:

2018-08-29  David Kilzer  <ddkilzer@apple.com>

        Remove empty directories from from svn.webkit.org repository
        <https://webkit.org/b/189081>

        * css3/filters/backdrop/script-tests: Removed.
        * css3/filters/script-tests: Removed.
        * indieui: Removed.
        * legacy-animation-engine/fullscreen: Removed.
        * platform/gtk/editing/pasteboard/script-tests: Removed.
        * platform/gtk/resources: Removed.
        * platform/ios-wk2/fast/backgrounds: Removed.
        * platform/ios-wk2/fast/block/margin-collapse/block-inside-inline: Removed.
        * platform/ios-wk2/fast/block/positioning/auto/vertical-lr: Removed.
        * platform/ios-wk2/fast/body-propagation/background-color: Removed.
        * platform/ios-wk2/fast/body-propagation/background-image: Removed.
        * platform/ios-wk2/fast/borders: Removed.
        * platform/ios-wk2/fast/box-shadow: Removed.
        * platform/ios-wk2/fast/box-sizing: Removed.
        * platform/ios-wk2/fast/canvas: Removed.
        * platform/ios-wk2/fast/compact: Removed.
        * platform/ios-wk2/fast/css/counters: Removed.
        * platform/ios-wk2/fast/css/namespaces: Removed.
        * platform/ios-wk2/fast/css3-text: Removed.
        * platform/ios-wk2/fast/doctypes: Removed.
        * platform/ios-wk2/fast/dom/Element: Removed.
        * platform/ios-wk2/fast/dom/HTMLDocument: Removed.
        * platform/ios-wk2/fast/dom/HTMLElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLHeadElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLImageElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLInputElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLLinkElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLMeterElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLObjectElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLProgressElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLTableColElement: Removed.
        * platform/ios-wk2/fast/dom/HTMLTableElement: Removed.
        * platform/ios-wk2/fast/dom/Range: Removed.
        * platform/ios-wk2/fast/dom/Window: Removed.
        * platform/ios-wk2/fast/events/touch: Removed.
        * platform/ios-wk2/fast/fast-mobile-scrolling: Removed.
        * platform/ios-wk2/fast/forms/color: Removed.
        * platform/ios-wk2/fast/forms/datalist: Removed.
        * platform/ios-wk2/fast/forms/file: Removed.
        * platform/ios-wk2/fast/forms/number: Removed.
        * platform/ios-wk2/fast/forms/range: Removed.
        * platform/ios-wk2/fast/forms/select: Removed.
        * platform/ios-wk2/fast/gradients: Removed.
        * platform/ios-wk2/fast/inspector-support: Removed.
        * platform/ios-wk2/fast/line-grid: Removed.
        * platform/ios-wk2/fast/multicol/span: Removed.
        * platform/ios-wk2/fast/multicol/vertical-lr: Removed.
        * platform/ios-wk2/fast/preloader: Removed.
        * platform/ios-wk2/fast/reflections: Removed.
        * platform/ios-wk2/fast/regions/auto-size: Removed.
        * platform/ios-wk2/fast/replaced/vertical-lr: Removed.
        * platform/ios-wk2/fast/replaced/vertical-rl: Removed.
        * platform/ios-wk2/fast/sub-pixel: Removed.
        * platform/ios-wk2/fast/text/firstline: Removed.
        * platform/ios-wk2/fast/text/shaping: Removed.
        * platform/ios-wk2/fast/tokenizer: Removed.
        * platform/ios-wk2/scrolling: Removed.
        * platform/ios/fast/viewport: Removed.
        * platform/ios/ios/fast/events/touch/script-tests: Removed.
        * platform/ios/ios/fast/html: Removed.
        * platform/ios/ios/scrolling: Removed.
        * platform/mac-sierra-wk2/js: Removed.
        * platform/mac-sierra/http/tests/ssl: Removed.
        * platform/mac-wk2/http/tests/plugins: Removed.
        * platform/mac-wk2/js: Removed.
        * platform/mac-wk2/tiled-drawing: Removed.
        * platform/mac/accessibility/resources: Removed.
        * platform/mac/accessibility/select-text: Removed.
        * platform/mac/editing/attributed-string: Removed.
        * platform/mac/editing/dictionary-lookup: Removed.
        * platform/mac/editing/input/resources: Removed.
        * platform/mac/editing/selection/script-tests: Removed.
        * platform/mac/fast/canvas/resources: Removed.
        * platform/mac/fast/forms/script-tests: Removed.
        * platform/mac/fast/ruby/resources: Removed.
        * platform/mac/fast/scrolling/resources: Removed.
        * platform/mac/http/tests/usercontentfilter: Removed.
        * platform/mac/platform/mac/accessibility: Removed.
        * platform/mac/platform/mac/editing: Removed.
        * platform/win-xp: Removed.
        * platform/win/editing/exeCommand: Removed.
        * platform/win/platform/win/accessibility: Removed.
        * platform/win/sputnik: Removed.
        * platform/wk2/js: Removed.
        * platform/wk2/storage: Removed.
        * proximity: Removed.
        * vibration: Removed.

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

        Changes to slot children should trigger slotchange
        https://bugs.webkit.org/show_bug.cgi?id=169718
        <rdar://problem/43317496>

        Reviewed by Darin Adler.

        Added a W3C style testharness.js test for firing slotchange event for the fallback content change
        since web-platform-tests/shadow-dom/slotchange.html doesn't have adequate set of tests.

        Chrome and Firefox pass all test cases. WebKit used to fail all test cases before this patch.

        * fast/shadow-dom/slotchange-in-fallback-expected.txt: Added.
        * fast/shadow-dom/slotchange-in-fallback.html: Added.

2018-08-28  Don Olmstead  <don.olmstead@sony.com>

        Check for null renderer in canBeScrolledIntoView
        https://bugs.webkit.org/show_bug.cgi?id=188935

        Reviewed by Simon Fraser.

        * fast/spatial-navigation/snav-display-contents-crash-expected.txt: Added.
        * fast/spatial-navigation/snav-display-contents-crash.html: Added.

2018-08-28  Youenn Fablet  <youenn@apple.com>

        WebKitMediaSession should be GC collectable when its document is being stopped
        https://bugs.webkit.org/show_bug.cgi?id=189016
        <rdar://problem/43804904>

        Unreviewed.
        Increasing number of GC and checks to unflake tests on bots.

        * http/tests/IndexedDB/collect-IDB-objects.https.html:
        * http/tests/media/clearkey/collect-webkit-media-session.html:

2018-08-28  Devin Rousso  <drousso@apple.com>

        console.log() shows (anonymous function) instead of the passed string when a certain format is used
        https://bugs.webkit.org/show_bug.cgi?id=188946
        <rdar://problem/43756428>

        Reviewed by Brian Burg.

        * inspector/console/js-isLikelyStackTrace-expected.txt:
        * inspector/console/js-isLikelyStackTrace.html:

2018-08-28  Truitt Savell  <tsavell@apple.com>

        Edditing test expectations from webkit.org/b/188985.
        https://bugs.webkit.org/show_bug.cgi?id=188985

        Unreviewed test gardening.

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

2018-08-28  David Fenton  <david_fenton@apple.com>

        Layout Test imported/w3c/web-platform-tests/service-workers/cache-storage/window/cache-storage-match.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187935

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-08-28  Truitt Savell  <tsavell@apple.com>

        Moving test expectations for webkit.org/b/188985 from mac-wk2 to General test expectations due to failing on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=188985

        Unreviewed test gardening.

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

2018-08-28  Youenn Fablet  <youenn@apple.com>

        MediaDevices should be collectable as soon as its document is stopped
        https://bugs.webkit.org/show_bug.cgi?id=189021

        Reviewed by Eric Carlson.

        * http/tests/media/media-stream/collect-media-devices.https-expected.txt: Added.
        * http/tests/media/media-stream/collect-media-devices.https.html: Added.
        * http/tests/media/media-stream/resources/mymediadevicesframe.htm: Added.

2018-08-28  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Fix issue that extra cookie is added when redirect happens.
        https://bugs.webkit.org/show_bug.cgi?id=187874

        Reviewed by Alex Christensen.

        * http/tests/cookies/multiple-redirect-and-set-cookie-expected.txt: Added.
        * http/tests/cookies/multiple-redirect-and-set-cookie.php: Added.

2018-08-28  Aditya Keerthi  <akeerthi@apple.com>

        [macOS] Color wells should appear rounded and textured
        https://bugs.webkit.org/show_bug.cgi?id=189039

        Reviewed by Tim Horton.

        Rebaseline tests to match new color-well appearance.

        * platform/mac/fast/forms/color/input-appearance-color-expected.png:
        * platform/mac/fast/forms/color/input-appearance-color-expected.txt:

2018-08-28  Youenn Fablet  <youenn@apple.com>

        WebKitMediaSession should be GC collectable when its document is being stopped
        https://bugs.webkit.org/show_bug.cgi?id=189016

        Reviewed by Eric Carlson.

        * http/tests/media/clearkey/collect-webkit-media-session-expected.txt: Added.
        * http/tests/media/clearkey/collect-webkit-media-session.html: Added.
        * http/tests/media/clearkey/resources/mywebkitmediasessionframe.htm: Added.

2018-08-28  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist] Pressing enter without a selected option shouldn't change the input
        https://bugs.webkit.org/show_bug.cgi?id=189010

        Reviewed by Tim Horton.

        Augmented test to verify that pressing enter when there is no selected datalist
        suggestion does not change the value of the input field.

        * fast/forms/datalist/datalist-textinput-keydown-expected.txt:
        * fast/forms/datalist/datalist-textinput-keydown.html:

2018-08-28  Aditya Keerthi  <akeerthi@apple.com>

        [iOS] Support inputmode=none
        https://bugs.webkit.org/show_bug.cgi?id=188896

        Reviewed by Tim Horton.

        Added new test to verify that the system keyboard does not show for inputs with
        inputmode=none. Updated existing inputmode tests to reflect the addition of the
        "none" value.

        * fast/forms/inputmode-attribute-contenteditable-expected.txt:
        * fast/forms/inputmode-attribute-contenteditable.html:
        * fast/forms/inputmode-attribute-input-expected.txt:
        * fast/forms/inputmode-attribute-input.html:
        * fast/forms/inputmode-attribute-textarea-expected.txt:
        * fast/forms/inputmode-attribute-textarea.html:
        * fast/forms/ios/inputmode-none-expected.txt: Added.
        * fast/forms/ios/inputmode-none.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.activateFormControl):
        (window.UIHelper.inputViewBounds):

2018-08-28  Simon Fraser  <simon.fraser@apple.com>

        More results.html cleanup
        https://bugs.webkit.org/show_bug.cgi?id=189038

        Reviewed by Zalan Bujtas.
        
        Use a map of table-id to SectionBuilderClass to drive the table builder class selection,
        rather than hardcoding the builder class; this will allow for SectionBuilders to stay alive
        longer in future, so they can be used to build the expanded state of each row.
        
        Refactor the code that generates the expand link and test name, to de-duplicate some HTML strings,
        and let SectionBuilders control whether their rows are expandable and test names linkifyable.
        
        Put a "data-test-name" attribute on each row so we can easily map from HTML elements to
        TestResults in future.
        
        The test result change is a progression; there is nothing to show for a test with missing results,
        so the row should not be expandable.

        * fast/harness/results-expected.txt:
        * fast/harness/results.html:

2018-08-27  Mark Lam  <mark.lam@apple.com>

        Fix exception throwing code so that topCallFrame and topEntryFrame stay true to their names.
        https://bugs.webkit.org/show_bug.cgi?id=188577
        <rdar://problem/42985684>

        Reviewed by Saam Barati.

        * http/tests/misc/large-js-program-expected.txt:

2018-08-27  Justin Fan  <justin_fan@apple.com>

        WebGL 2 conformance: framebuffer-test
        https://bugs.webkit.org/show_bug.cgi?id=188812

        Reviewed by Jon Lee.

        Update WebGL 2 implementation to handle READ_FRAMEBUFFER and default framebuffer conformance.

        * TestExpectations: Unskipping webgl/2.0.0/conformance2/renderbuffers/framebuffer-test.html.

2018-08-27  Myles C. Maxfield  <mmaxfield@apple.com>

        Null pointer deref in WidthIterator
        https://bugs.webkit.org/show_bug.cgi?id=188993

        Reviewed by Brent Fulgham.

        * fast/text/rtl-justification-expected.html: Added.
        * fast/text/rtl-justification.html: Added.

2018-08-27  Sihui Liu  <sihui_liu@apple.com>

        [ MacOS iOS ] Layout Test storage/indexeddb/modern/opendatabase-after-storage-crash.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187648
        <rdar://problem/42405935>

        Add an early exit so test does not call waitUntilDone after test ends.

        Reviewed by Ryosuke Niwa.

        * platform/wk2/TestExpectations:
        * storage/indexeddb/modern/opendatabase-after-storage-crash.html:

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

        Various IndexDB tests abandon documents
        https://bugs.webkit.org/show_bug.cgi?id=188728
        <rdar://problem/43651095>

        Reviewed by Alex Christensen.

        * http/tests/IndexedDB/collect-IDB-objects.https-expected.txt: Added.
        * http/tests/IndexedDB/collect-IDB-objects.https.html: Added.
        * http/tests/IndexedDB/resources/myidbframe.htm: Added.
        * http/tests/IndexedDB/resources/support.js: Added.

2018-08-27  Simon Fraser  <simon.fraser@apple.com>

        [LayoutTests] results.html shows "no expected results" for text diff failures
        https://bugs.webkit.org/show_bug.cgi?id=188927

        Reviewed by Alexey Proskuryakov.
        
        The results.html rewrite confused "is missing all results" with "is missing one type of result",
        causing tests with a missing image to show as tests with no results.
        
        Fix by clarifying the types of "missing".

        * fast/harness/full_results.json:
        * fast/harness/results-expected.txt:
        * fast/harness/results.html:

2018-08-27  Andy Estes  <aestes@apple.com>

        [Payment Request] Update payment-request web platform tests
        https://bugs.webkit.org/show_bug.cgi?id=188985

        Reviewed by Youenn Fablet.

        * platform/mac-wk2/TestExpectations:

2018-08-27  Devin Rousso  <drousso@apple.com>

        Web Inspector: provide autocompletion for event breakpoints
        https://bugs.webkit.org/show_bug.cgi?id=188717

        Reviewed by Brian Burg.

        * inspector/dom/getSupportedEventNames-expected.txt: Added.
        * inspector/dom/getSupportedEventNames.html: Added.

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

        Update WPT tools to 87329a1
        https://bugs.webkit.org/show_bug.cgi?id=188766

        Reviewed by Ryosuke Niwa.

        The test name (.any.serviceworker.html) is clashing with the new WPT server.

        * http/wpt/service-workers/cors-preflight-star.any-serviceworker-expected.txt: Renamed from LayoutTests/http/wpt/service-workers/cors-preflight-star.any.serviceworker-expected.txt.
        * http/wpt/service-workers/cors-preflight-star.any-serviceworker.html: Renamed from LayoutTests/http/wpt/service-workers/cors-preflight-star.any.serviceworker.html.

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

        Layout Test fast/events/dblclick-event-getModifierState.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=188948

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-08-27  Rob Buis  <rbuis@igalia.com>

        XMLHTTPRequest.send for Document should have same Content-Type processing rules as String
        https://bugs.webkit.org/show_bug.cgi?id=188953

        Reviewed by Darin Adler.

        * platform/gtk/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt:

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

        Update WPT XHR tests to 87329a1
        https://bugs.webkit.org/show_bug.cgi?id=188816

        Reviewed by Ryosuke Niwa.

        Update expectations according renamed XMLHttpRequest to xhr folder.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-get-head-async-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-get-head-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/xhr/send-network-error-sync-events.sub-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/xhr/send-redirect-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt.
        * platform/ios-wk1/imported/w3c/web-platform-tests/xhr/send-network-error-sync-events.sub-expected.txt: Renamed from LayoutTests/platform/ios-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt.
        * platform/ios/imported/w3c/web-platform-tests/xhr/getresponseheader-case-insensitive-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive-expected.txt.
        * platform/ios/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt.
        * platform/ios/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-empty-expected.txt.
        * platform/ios/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-none-expected.txt.
        * platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt.
        * platform/mac-sierra/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Renamed from LayoutTests/platform/mac-sierra/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt.
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/access-control-and-redirects-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-and-redirects-expected.txt.
        * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/late-upload-events-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/late-upload-events-expected.txt.
        * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/send-authentication-basic-cors-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt.
        * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/send-network-error-async-events.sub-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt.
        * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-default-feature-policy.sub-expected.txt.
        * platform/mac-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/xhr/getresponseheader-case-insensitive-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-case-insensitive-expected.txt.
        * platform/mac/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt.
        * platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-empty-expected.txt.
        * platform/mac/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-none-expected.txt.
        * platform/win/imported/w3c/web-platform-tests/xhr/access-control-and-redirects-expected.txt: Renamed from LayoutTests/platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-and-redirects-expected.txt.
        * platform/win/imported/w3c/web-platform-tests/xhr/late-upload-events-expected.txt: Renamed from LayoutTests/platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/late-upload-events-expected.txt.
        * platform/win/imported/w3c/web-platform-tests/xhr/send-authentication-basic-cors-expected.txt: Renamed from LayoutTests/platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt.
        * platform/win/imported/w3c/web-platform-tests/xhr/send-network-error-async-events.sub-expected.txt: Renamed from LayoutTests/platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt.
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-cors-safelisted-request-headers-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-basic-cors-safelisted-request-headers-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-get-fail-non-simple-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-basic-get-fail-non-simple-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-post-with-non-cors-safelisted-content-type-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-basic-post-with-non-cors-safelisted-content-type-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-get-head-async-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-get-head-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-infinite-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-sync-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-infinite-sync-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-content-type-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-network-error-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-sync-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-network-error-sync-expected.txt.

2018-08-26  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Enabling more tests under the fast/ directory.

        * platform/wpe/TestExpectations:
        * platform/wpe/fast/backgrounds: Added 28 baselines.
        * platform/wpe/fast/block: Added 267 baselines.
        * platform/wpe/fast/body-propagation: Added 65 baselines.
        * platform/wpe/fast/borders: Added 69 baselines.
        * platform/wpe/fast/css: Added 193 baselines.
        * platform/wpe/fast/css3-text: Added 2 baselines.
        * platform/wpe/fast/frames: Added 27 baselines.
        * platform/wpe/fast/hidpi: Added 20 baselines.
        * platform/wpe/fast/html: Added 64 baselines.
        * platform/wpe/fast/images: Added 14 baselines.
        * platform/wpe/fast/layers: Added 12 baselines.
        * platform/wpe/fast/multicol: Added 98 baselines.
        * platform/wpe/fast/overflow: Added 43 baselines.
        * platform/wpe/fast/reflections: Added 9 baselines.
        * platform/wpe/fast/selectors: Added 101 baselines.
        * platform/wpe/fast/sub-pixel: Added 6 baselines.
        * platform/wpe/fast/table: Added 162 baselines.
        * platform/wpe/fast/visual-viewport: Added 1 baseline.

2018-08-26  Andy Estes  <aestes@apple.com>

        [Apple Pay] Introduce new values for -apple-pay-button-type
        https://bugs.webkit.org/show_bug.cgi?id=188949
        <rdar://problem/39992228>

        Reviewed by Anders Carlsson.

        * http/tests/ssl/applepay/ApplePayButton.html: Added.
        * http/tests/ssl/applepay/ApplePayButtonV4.html: Added.
        * platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.png:
        * platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt:
        * platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png: Added.
        * platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.
        * platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.png: Added.
        * platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.txt: Added.
        * platform/mac-wk2/TestExpectations:

2018-08-26  Andy Estes  <aestes@apple.com>

        Update test expectations for http/tests/ssl/applepay/ApplePayButton.html on macOS High Sierra.

        * platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.png: Renamed from LayoutTests/platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.png.
        * platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt: Renamed from LayoutTests/platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.txt.

2018-08-26  Andy Estes  <aestes@apple.com>

        [Apple Pay] PaymentRequest.show() should reject when an unsupported ApplePayRequest version is specified
        https://bugs.webkit.org/show_bug.cgi?id=188954

        Reviewed by Darin Adler.

        * http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
        * http/tests/ssl/applepay/PaymentRequest.https.html:

2018-08-26  Andy Estes  <aestes@apple.com>

        [Apple Pay] Add a test for rendering Apple Pay buttons
        https://bugs.webkit.org/show_bug.cgi?id=188947

        Reviewed by Sam Weinig.

        * http/tests/ssl/applepay/ApplePayButton.html: Added.
        * platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.png: Added.
        * platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.
        * platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png: Added.
        * platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.

2018-08-24  Jer Noble  <jer.noble@apple.com>

        Using Touch Bar to scrub video on Youtube results in video playback freeze
        https://bugs.webkit.org/show_bug.cgi?id=188926

        Reviewed by Eric Carlson.

        * media/media-source/media-source-seek-twice-expected.txt: Added.
        * media/media-source/media-source-seek-twice.html: Added.

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

        Remove the flaky test expectation now that the test isn't flaky on bots after r235274.

        * platform/wk2/TestExpectations:

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

        Add getModifierState to MouseEvent
        https://bugs.webkit.org/show_bug.cgi?id=188913
        <rdar://problem/43668772>

        Reviewed by Simon Fraser.

        Added two tests for getModifierState: one manually setting modifier key states in MouseEvent's constructor,
        and another one for dblclick inheriting modifier key states from the click event.

        Also improved the test coverage for KeyboardEvent's getModifierState.

        * fast/events/constructors/keyboard-event-getModifierState-expected.txt:
        * fast/events/constructors/keyboard-event-getModifierState.html: Added more test cases.
        * fast/events/constructors/mouse-event-getModifierState-expected.txt: Added.
        * fast/events/constructors/mouse-event-getModifierState.html: Added.
        * fast/events/dblclick-event-getModifierState-expected.txt: Added.
        * fast/events/dblclick-event-getModifierState.html: Added.
        * fast/events/init-event-clears-capslock-expected.txt:
        * fast/events/init-event-clears-capslock.html: Added tests for MouseEvent. Note that initMouseEvent doesn't
        take altGraphKey boolean unlike initKeyboardEvent.
        * platform/ios/TestExpectations: Skip the dblclick test in iOS since click event isn't supported on iOS.

2018-08-24  Youenn Fablet  <youenn@apple.com>

        libwebrtc PeerConnection::AddTrack sometimes fail
        https://bugs.webkit.org/show_bug.cgi?id=188914

        Reviewed by Eric Carlson.

        * fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:

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

        Mark media/video-load-preload-metadata.html as flaky on iOS
        https://bugs.webkit.org/show_bug.cgi?id=128312

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-08-24  Andy Estes  <aestes@apple.com>

        [Apple Pay] Allow $0 totals
        https://bugs.webkit.org/show_bug.cgi?id=185150
        <rdar://problem/39212331>

        Reviewed by Dan Bernstein.

        * http/tests/ssl/applepay/ApplePaySession-expected.txt:
        * http/tests/ssl/applepay/ApplePaySession.html:
        * http/tests/ssl/applepay/ApplePaySessionV3-expected.txt:
        * http/tests/ssl/applepay/ApplePaySessionV3.html:
        * http/tests/ssl/applepay/ApplePaySessionV4-expected.txt:
        * http/tests/ssl/applepay/ApplePaySessionV4.html:
        * http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
        * http/tests/ssl/applepay/PaymentRequest.https.html:

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

        fast/files/blob-network-process-crash.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=188911

        Reviewed by Saam Barati.

        The flakiness appears to come from the web content process not getting notified of
        the termination of the network process in time. Wait for the network process to
        relaunch after terminating one by continuously fetch'ing itself with an increasing
        time interval until it succeeds.

        * fast/files/blob-network-process-crash.html:

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

        Add a flaky failing test expectation to fast/files/blob-network-process-crash.html
        while we investigate the root cause in webkit.org/b/188911.

        * platform/wk2/TestExpectations:

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

        initKeyboardEvent doesn't clear CapsLock state
        https://bugs.webkit.org/show_bug.cgi?id=188909

        Reviewed by Wenson Hsieh.

        Added a regression test. Note that altGraph is only supported in WebKit
        so Chrome and Firefox would fail to reset it via initKeyboardEvent.

        * fast/events/init-event-clears-capslock-expected.txt: Added.
        * fast/events/init-event-clears-capslock.html: Added.

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

        Store the timer we scheduled in the global object.
        The underlying bug is tracked by https://webkit.org/b/188911.

        * fast/files/blob-network-process-crash.html:

2018-08-23  Andy Estes  <aestes@apple.com>

        [Apple Pay] Introduce Apple Pay JS v4 on iOS 12 and macOS Mojave
        https://bugs.webkit.org/show_bug.cgi?id=188829

        Reviewed by Tim Horton.

        * http/tests/ssl/applepay/ApplePaySession-expected.txt:
        * http/tests/ssl/applepay/ApplePaySession.html:
        * http/tests/ssl/applepay/ApplePaySessionV3-expected.txt:
        * http/tests/ssl/applepay/ApplePaySessionV3.html:
        * http/tests/ssl/applepay/ApplePaySessionV4-expected.txt: Added.
        * http/tests/ssl/applepay/ApplePaySessionV4.html: Added.
        * platform/mac-wk2/TestExpectations:

2018-08-23  Devin Rousso  <drousso@apple.com>

        Web Inspector: support breakpoints for timers and animation-frame events
        https://bugs.webkit.org/show_bug.cgi?id=188778

        Reviewed by Brian Burg.

        * inspector/dom-debugger/event-animation-frame-breakpoints-expected.txt: Added.
        * inspector/dom-debugger/event-animation-frame-breakpoints.html: Added.

        * inspector/dom-debugger/event-breakpoint-with-navigation.html:

        * inspector/dom-debugger/event-timer-breakpoints-expected.txt: Added.
        * inspector/dom-debugger/event-timer-breakpoints.html: Added.

        * inspector/dom-debugger/event-listener-breakpoints-expected.txt: Renamed from LayoutTests/inspector/dom-debugger/event-breakpoints-expected.txt.
        * inspector/dom-debugger/event-listener-breakpoints.html: Renamed from LayoutTests/inspector/dom-debugger/event-breakpoints.html.

        * inspector/dom-debugger/resources/event-breakpoint-utilities.js: Added.
        (TestPage.registerInitializer.window.teardown):
        (TestPage.registerInitializer.window.failOnPause):
        (TestPage.registerInitializer.window.addBreakpoint):
        (TestPage.registerInitializer.window.removeBreakpoint):
        (TestPage.registerInitializer.window.disableBreakpoint):
        (TestPage.registerInitializer.window.awaitEvent):

2018-08-23  Aditya Keerthi  <akeerthi@apple.com>

        [iOS] Support the inputmode attribute on contenteditable elements
        https://bugs.webkit.org/show_bug.cgi?id=188878

        Reviewed by Ryosuke Niwa.

        Added additional tests to verify the inputmode attribute is accessible on
        HTMLElements.

        * fast/forms/inputmode-attribute-contenteditable-expected.txt: Added.
        * fast/forms/inputmode-attribute-contenteditable.html: Added.
        * fast/forms/inputmode-attribute-input-expected.txt: Renamed from LayoutTests/fast/forms/inputmode-attribute-expected.txt.
        * fast/forms/inputmode-attribute-input.html: Renamed from LayoutTests/fast/forms/inputmode-attribute.html.
        * fast/forms/inputmode-attribute-textarea-expected.txt: Added.
        * fast/forms/inputmode-attribute-textarea.html: Added.
        * js/dom/dom-static-property-for-in-iteration-expected.txt: Rebaseline.

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

        Assert in NetworkBlobRegistry::unregisterBlobURL after network process had terminated
        https://bugs.webkit.org/show_bug.cgi?id=188880

        Reviewed by Saam Barati.

        Added a layout test which demonstrates this debug assertion.

        * TestExpectations:
        * fast/files/blob-network-process-crash-expected.txt: Added.
        * fast/files/blob-network-process-crash.html: Added.
        * platform/wk2/TestExpectations:

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

        Update libwebrtc up to 984f1a80c0
        https://bugs.webkit.org/show_bug.cgi?id=188745

        Reviewed by Eric Carlson.

        Updated tests according new webrtc backend.

        * webrtc/libwebrtc/setLocalDescriptionCrash.html:
        * webrtc/video-getParameters.html:

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

        Update iOS selection tests to reflect new behavior introduced by r235153
        https://bugs.webkit.org/show_bug.cgi?id=188888

        Reviewed by Megan Gardner.

        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:

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

        Further adjustments to http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html
        https://bugs.webkit.org/show_bug.cgi?id=188856

        Unreviewed test gardening. Trying to address flakiness I can't reproduce locally.

        * http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html:

2018-08-22  Justin Fan  <justin_fan@apple.com>

        Update webkit-webgl-test-harness.js for more details on WebGL 2 conformance tests
        https://bugs.webkit.org/show_bug.cgi?id=188825

        Reviewed by Simon Fraser.

        Another update to the test-harness specific to the new WebGL 2 tests in our suite. All sub-test messages are 
        now reported by the harness and presented in an ordered list for easier referencing. Sub-test failures are 
        marked accordingly and with their test number for diffing purposes.

        * webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:
        * webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:
        * webgl/2.0.0/resources/webkit-webgl-test-harness.js:
        (list):
        (window.webglTestHarness.reportResults):
        (window.webglTestHarness.notifyFinished):

2018-08-22  Aditya Keerthi  <akeerthi@apple.com>

        [iOS] Add support for the inputmode attribute
        https://bugs.webkit.org/show_bug.cgi?id=183621

        Reviewed by Tim Horton.

        Added test to verify behavior when getting and setting the inputmode attribute.

        * fast/forms/inputmode-attribute-expected.txt: Added.
        * fast/forms/inputmode-attribute.html: Added.

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

        [Win] Some video tests under http/tests/security are crashing on EWS.
        https://bugs.webkit.org/show_bug.cgi?id=188853

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Make ResourceLoadObserver::logWebSocketLoading() handle websockets in detached frames
        https://bugs.webkit.org/show_bug.cgi?id=188856

        Unreviewed test gardening.

        * TestExpectations:
            Skipped test since it's only valid on WK2 platforms.
        * http/tests/websocket/connection-refusal-in-frame-resource-load-statistics-expected.txt: Added.
        * http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html: Renamed from LayoutTests/http/tests/websocket/construct-in-detached-frame-resource-load-statistics.html.
        * http/tests/websocket/construct-in-detached-frame-resource-load-statistics-expected.txt: Removed.
        * http/tests/websocket/resources/construct-in-detached-frame-resource-load-statistics.html: Removed.
        * http/tests/websocket/resources/localhost-websocket-connect.html: Added.
        * platform/wk2/TestExpectations:
            Marked test as [ Pass ].

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

        [iOS] Rebaseline table tests
        https://bugs.webkit.org/show_bug.cgi?id=188833

        Unreviewed test gardening.
`
        * platform/ios/TestExpectations:
        * platform/ios-wk2/TestExpectations:

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

        Focus navigation order in slot fallback contents is wrong
        https://bugs.webkit.org/show_bug.cgi?id=178001
        <rdar://problem/42842997>

        Reviewed by Antti Koivisto.

        Updated the sequential focus navigation test for shadow DOM and its expectation.

        New test passes in Firefox & Chrome other than the fact both browsers fail to focus a slot elemennt.

        * fast/shadow-dom/focus-navigation-across-slots-expected.txt:
        * fast/shadow-dom/focus-navigation-across-slots.html:

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

        [Win] Some video tests under http/tests/security are crashing on EWS.
        https://bugs.webkit.org/show_bug.cgi?id=188853

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Win] Some video tests under http/tests/security are crashing on EWS.
        https://bugs.webkit.org/show_bug.cgi?id=188853

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-08-22  Rob Buis  <rbuis@igalia.com>

        Fetch: Stop checking Request.integrity's value in no-cors mode
        https://bugs.webkit.org/show_bug.cgi?id=188802

        Reviewed by Frédéric Wang.

        Unskip fetch/api/basic/integrity.html and adjust sri-fetch.js.

        * TestExpectations:
        * http/tests/subresource-integrity/sri-fetch.js:

2018-08-22  Ms2ger  <Ms2ger@igalia.com>

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

        Unreviewed test gardening.

        * platform/gtk/TestExpectations: Note failing tests.
        * platform/wpe/TestExpectations: Note failing tests.

2018-08-22  Ms2ger  <Ms2ger@igalia.com>

        [GTK] imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187591

        Unreviewed test gardening.

        Re-enable mediasource-getvideoplaybackquality.html.

        The crash was fixed in r233981, and the failure in r234981-r234983.

        * platform/gtk/TestExpectations:

2018-08-22  Ms2ger  <Ms2ger@igalia.com>

        REGRESSION(r234330): [GTK] svg/as-image/svg-image-with-data-uri-background.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=188220

        Unreviewed test gardening.

        * platform/gtk/TestExpectations: Re-enable svg/as-image/svg-image-with-data-uri-background.html.

2018-08-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Support "name" option for dedicated workers
        https://bugs.webkit.org/show_bug.cgi?id=188779

        Reviewed by Joseph Pecoraro.

        * http/wpt/workers/name-property-enhanced-expected.txt: Added.
        * http/wpt/workers/name-property-enhanced.html: Added.
        * http/wpt/workers/name-property-no-name-expected.txt: Added.
        * http/wpt/workers/name-property-no-name.html: Added.
        * http/wpt/workers/support/name.js: Added.
        (test):
        * http/wpt/workers/support/no-name.js: Added.
        (test):

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

        Unreviewed, rolling out r235128.

        The test added with this change is frequently failing.

        Reverted changeset:

        "Support "name" option for dedicated workers"
        https://bugs.webkit.org/show_bug.cgi?id=188779
        https://trac.webkit.org/changeset/235128

2018-08-21  Megan Gardner  <megan_gardner@apple.com>

        Change Selection modification to not snap the grabber when selecting above or below the selection anchor
        https://bugs.webkit.org/show_bug.cgi?id=188826

        Reviewed by Tim Horton.

        Selecting single lines is sometimes difficult because we currently snap selections to single
        characters if we move past the position of the other anchor in our selection. This patch changes
        this behaviour to reflect the behaviour in the rest of this system, which snaps the selection
        to the position on the line of the other anchor, rather than snapping it all the way a single
        character. This updates the tests to reflect this new behaviour.

        * fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:
        * fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html:

2018-08-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Support "name" option for dedicated workers
        https://bugs.webkit.org/show_bug.cgi?id=188779

        Reviewed by Joseph Pecoraro.

        * http/wpt/workers/name-property-enhanced-expected.txt: Added.
        * http/wpt/workers/name-property-enhanced.html: Added.
        * http/wpt/workers/support/name.js: Added.
        (test):
        * http/wpt/workers/support/no-name.js: Added.
        (test):

2018-08-21  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION(r234993): Test results page ignores TestExpectations, shows 1800 failures
        https://bugs.webkit.org/show_bug.cgi?id=188795

        Reviewed by Tim Horton.
        
        A MISSING result would trigger a code path that hit appendActualOnlyLinks() which had
        a JS error, causing all expected results to be visible. Fix with a change to full_results.json
        which tests the change.

        * fast/harness/full_results.json:
        * fast/harness/results.html:

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

        [WebGL] Contexts are not updated when display configuration changed.
        https://bugs.webkit.org/show_bug.cgi?id=188750

        Reviewed by Brent Fulgham.

        * TestExpectations:
        * fast/canvas/webgl/context-update-on-display-configuration-expected.txt: Added.
        * fast/canvas/webgl/context-update-on-display-configuration.html: Added.
        * platform/mac-wk2/TestExpectations:

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

        Make ResourceLoadObserver::logWebSocketLoading() handle websockets in detached frames
        https://bugs.webkit.org/show_bug.cgi?id=188757
        <rdar://problem/38713390>

        Reviewed by Alex Christensen.

        * TestExpectations:
            Skipped the new test case since it is only supported on WebKit2.
        * http/tests/websocket/construct-in-detached-frame-resource-load-statistics-expected.txt: Added.
        * http/tests/websocket/construct-in-detached-frame-resource-load-statistics.html: Added.
        * http/tests/websocket/resources/construct-in-detached-frame-resource-load-statistics.html: Added.
        * platform/wk2/TestExpectations:
            Marked the new test case as [ Pass ].

2018-08-21  Daniel Bates  <dabates@apple.com>

        Disallow navigations when page cache updates the current document of the frame
        https://bugs.webkit.org/show_bug.cgi?id=188422

        Reviewed by Ryosuke Niwa.

        Add a test case that ensures that we do not hit the assertion ASSERT(ownerFrame || m_frame.isMainFrame())
        in FrameLoader::addExtraFieldsToRequest() when navigating back to a page that loads a nested
        page, whose URL contains a fragment, via an HTML object element. This assertion fails if
        navigations are allowed when restoring a page from the page cache.

        This change does not prevent navigations initiated from a pageshow event handler.

        * fast/history/go-back-to-object-subframe-expected.txt: Added.
        * fast/history/go-back-to-object-subframe.html: Added.

2018-08-21  Daniel Bates  <dabates@apple.com>

        [iOS][WK1] Support toggling continuous spell checking from tests
        https://bugs.webkit.org/show_bug.cgi?id=188763

        Reviewed by Simon Fraser.

        Fix up some spelling tests so that they enable continuous spell checking and unskip them,
        with the exception of fast/writing-mode/english-rl-text-with-spelling-marker.html, now
        that they pass.

        Mark the test fast/writing-mode/english-rl-text-with-spelling-marker.html as an image-only
        failure. See <https://bugs.webkit.org/show_bug.cgi?id=188762> for more details.

        * editing/spelling/spelling-marker-includes-hyphen-expected.html:
        * editing/spelling/spelling-marker-includes-hyphen.html:
        * editing/spelling/spelling-markers-in-overlapping-lines-expected.html:
        * editing/spelling/spelling-markers-in-overlapping-lines-large-font-expected.html:
        * editing/spelling/spelling-markers-in-overlapping-lines-large-font.html:
        * editing/spelling/spelling-markers-in-overlapping-lines.html:
        * fast/writing-mode/english-bt-text-with-spelling-marker-expected.html:
        * fast/writing-mode/english-bt-text-with-spelling-marker.html:
        * fast/writing-mode/english-rl-text-with-spelling-marker-expected.html:
        * fast/writing-mode/english-rl-text-with-spelling-marker.html:
        * platform/ios/TestExpectations:

2018-08-20  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed WinCairo port test gardening

        * platform/wincairo/TestExpectations: Marked some http tests flaky.

2018-08-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: allow breakpoints to be set for specific event listeners
        https://bugs.webkit.org/show_bug.cgi?id=183138

        Reviewed by Joseph Pecoraro.

        * inspector/dom/breakpoint-for-event-listener-expected.txt: Added.
        * inspector/dom/breakpoint-for-event-listener.html: Added.

2018-08-20  Jeremy Jones  <jeremyj@apple.com>

        Enable ios media tests that were blocked on user gesture.
        https://bugs.webkit.org/show_bug.cgi?id=188753

        Reviewed by Jer Noble.

        Enable tests that now work on ios because there is now a way to simulate user gesture.

        * platform/ios/TestExpectations:

2018-08-20  Justin Fan  <justin_fan@apple.com>

        Update webkit-webgl-test-harness.js to provide more info on failing and partially passing tests
        https://bugs.webkit.org/show_bug.cgi?id=188628

        Reviewed by Alexey Proskuryakov.

        Slightly augment the test-harness for the WebGL 2 conformance suite; failing test results now report
        failure messagees and the number of individual reported failures and passes from the wrapped Khronos test. 
        Allow us to track when incremental conformance improvements or regressions occur within the breadth of a 
        single conformance test. 

        * webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
        * webgl/2.0.0/resources/webkit-webgl-test-harness.js:
        (window.webglTestHarness.reportResults):
        (window.webglTestHarness.notifyFinished):

2018-08-20  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Move capture device monitoring to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=188521
        <rdar://problem/43251787>

        Reviewed by Youenn Fablet.

        * fast/mediastream/device-change-event-2-expected.txt: Updated.
        * fast/mediastream/device-change-event-2.html: Updated.

2018-08-20  Rob Buis  <rbuis@igalia.com>

        Throw an exception if window.open() gets passed a URL that cannot be parsed
        https://bugs.webkit.org/show_bug.cgi?id=171656

        Reviewed by Darin Adler.

        * fast/dom/Window/open-invalid-url-expected.txt:
        * fast/dom/Window/open-invalid-url.html:

2018-08-20  Ms2ger  <Ms2ger@igalia.com>

        [SOUP] Check length before calling soup_message_body_append_buffer.
        https://bugs.webkit.org/show_bug.cgi?id=176803

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations: Enable test.

2018-08-20  Rob Buis  <rbuis@igalia.com>

        Relax Request constructor around referrers
        https://bugs.webkit.org/show_bug.cgi?id=168649

        Reviewed by Darin Adler.

        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:

2018-08-18  Ali Juma  <ajuma@chromium.org>

        [IntersectionObserver] Fire an initial dummy notification
        https://bugs.webkit.org/show_bug.cgi?id=188670

        Reviewed by Simon Fraser.

        * intersection-observer/root-element-deleted.html: Add additional assertions.
        * intersection-observer/root-element-moved-expected.txt: Added.
        * intersection-observer/root-element-moved.html: Added.

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

        Resource Load Statistics: Add layout test for web workers importing cross-site scripts
        https://bugs.webkit.org/show_bug.cgi?id=188706
        <rdar://problem/43437050>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-expected.txt: Added.
        * http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.html: Added.
        * http/tests/resourceLoadStatistics/resources/iframe-report-back-loaded.html:
            Fixed typo in URL.
        * http/tests/resourceLoadStatistics/resources/script-revealing-cookies.php: Added.
        * http/tests/resourceLoadStatistics/resources/worker-importing-localhost-script.js: Added.

2018-08-17  Devin Rousso  <drousso@apple.com>

        Marked inspector/dom-debugger/event-breakpoint-with-navigation.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=188708

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-08-17  Simon Fraser  <simon.fraser@apple.com>

        Modernize results.html
        https://bugs.webkit.org/show_bug.cgi?id=188690

        Reviewed by Alexey Proskuryakov.
        
        results.html, which is used to show layout test results, had some very old-school
        HTML string building to create the tables of test results, making it hard to hack on.
        
        Modernize it, using ES6 classes for the major actors, and using DOM API to build most
        of the content.
        
        The page is functionally the same (other than the addition of a missing 'History" column header).

        * fast/harness/results-expected.txt:
        * fast/harness/results.html:

2018-08-16  Devin Rousso  <drousso@apple.com>

        Web Inspector: support breakpoints for arbitrary event names
        https://bugs.webkit.org/show_bug.cgi?id=183118

        Reviewed by Joseph Pecoraro.

        * inspector/dom-debugger/event-breakpoints-expected.txt: Added.
        * inspector/dom-debugger/event-breakpoints.html: Added.

        * inspector/dom-debugger/event-breakpoints-with-navigation-expected.txt: Added.
        * inspector/dom-debugger/event-breakpoints-with-navigation.html: Added.

2018-08-16  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Bug fix on deleting cookies when Max-Age is set to zero.
        https://bugs.webkit.org/show_bug.cgi?id=188617

        Reviewed by Alex Christensen.

        * platform/wincairo/TestExpectations:
          - http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html [ Pass ]

2018-08-16  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Implement deleteAllCookies()
        https://bugs.webkit.org/show_bug.cgi?id=188612

        Reviewed by Alex Christensen.

        * platform/wincairo/TestExpectations:
          - http/tests/cookies/simple-cookies-expired.html [ Pass ]
          - http/tests/cookies/simple-cookies-max-age.html [ Pass ]

2018-08-16  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Fix expectations to match after r234892 landed.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/xmlhttprequest/methods-async-expected.txt: Added
        * platform/wincairo/http/tests/xmlhttprequest/methods-expected.txt:
        * platform/wincairo/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Added
        * platform/wincairo/http/tests/xmlhttprequest/workers/methods-expected.txt: Added

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

        Custom element doesn't invalidate its style when :defined rule starts to apply
        https://bugs.webkit.org/show_bug.cgi?id=188637

        Reviewed by Antti Koivisto.

        Added a regression test.

        * fast/custom-elements/defined-update-style-expected.html: Added.
        * fast/custom-elements/defined-update-style.html: Added.

2018-08-16  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        After r234863 landed, the information in the `LayoutTests/tests-options.json` is effective on WinCairo tests.
        Remove [ Slow ] keywords. Also maintain xmlhttprequest results.

        * platform/wincairo/TestExpectations:

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

        [Win] The layout test editing/pasteboard/drag-and-drop-color-input-events.html is timing out.
        https://bugs.webkit.org/show_bug.cgi?id=188667

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-08-16  Joseph Pecoraro  <pecoraro@apple.com>

        LayoutTest inspector/worker/debugger-pause.html sometimes times out
        https://bugs.webkit.org/show_bug.cgi?id=188580

        Reviewed by Matt Baker.

        * inspector/worker/debugger-pause.html:
        * inspector/worker/resources/worker-utilities.js: Added.
        (TestPage.registerInitializer.window.awaitTargetMainResource):
        (TestPage.registerInitializer):
        Use a more deterministic wait for the main resource.

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

        Perform a microtask checkpoint before creating a custom element
        https://bugs.webkit.org/show_bug.cgi?id=188189
        <rdar://problem/42843022>

        Reviewed by Geoffrey Garen.

        Added a W3C style testharness.js test for perfoming microtask checkpoint before constructing
        a custom element synchronously.

        * fast/custom-elements/perform-microtask-checkpoint-before-construction-expected.txt: Added.
        * fast/custom-elements/perform-microtask-checkpoint-before-construction.html: Added.
        * fast/dom/MutationObserver/parser-mutations.html: Fixed the test per new behavior in Document::finishParsing.
        Because iframe loads synchronously and fires DOMContentLoaded, mutation records are now delivered twice after
        iframe element is encountered in this test and before script element executes. Concatenate the mutation records
        arrays to account for this behavioral change. New WebKit behavior matches that of Chrome; namely this test
        fails both on Chrome Canary 70 and trunk WebKit with this patch without this fix.

2018-08-15  Jer Noble  <jer.noble@apple.com>

        Add Experimental Feature support for SourceBuffer.changeType()
        https://bugs.webkit.org/show_bug.cgi?id=188626

        Reviewed by Eric Carlson.

        * platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Added.

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

        [win-ews] No such file or directory: u'/cygdrive/C/cygwin/home/buildbot/WebKit/WebKitBuild/Release/bin32/layout-test-results/pywebsocket.ws.log-out.txt'
        https://bugs.webkit.org/show_bug.cgi?id=188640

        Unreviewed test gardening.

        For now, skip websocket tests on Windows. Currently, run-webkit-tests is failing to start the websocket server because
        port 8880 is already in use. Port 8880 is being used because the python websocket server process from the previous run
        did not shutdown properly. We still need to understand why this is happening, but disable websocket tests now in order
        for tests to run again.

        * platform/win/TestExpectations:

2018-08-16  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Enable a few subdirectories under fast/ and
        provide platform-specific baselines as well as failure expectations
        where required.

        * platform/wpe/TestExpectations:
        * platform/wpe/fast/box-shadow: Added 10 baselines.
        * platform/wpe/fast/box-sizing: Added 4 baselines.
        * platform/wpe/fast/clip: Added 23 baselines.
        * platform/wpe/fast/compact: Added 3 baselines.
        * platform/wpe/fast/css-generated-content: Added 43 baselines.
        * platform/wpe/fast/doctypes: Added 4 baselines.
        * platform/wpe/fast/flexbox: Added 26 baselines.
        * platform/wpe/fast/inline: Added 32 baselines.
        * platform/wpe/fast/inline-block: Added 9 baselines.
        * platform/wpe/fast/invalid: Added 29 baselines.
        * platform/wpe/fast/line-grid: Added 8 baselines.
        * platform/wpe/fast/lists: Added 27 baselines.
        * platform/wpe/fast/loader: Added 1 baseline.
        * platform/wpe/fast/preloader: Added 2 baselines.
        * platform/wpe/fast/replaced: Added 57 baselines.
        * platform/wpe/fast/ruby: Added 26 baselines.
        * platform/wpe/fast/writing-mode: Added 37 baselines.

2018-08-16  Aditya Keerthi  <akeerthi@apple.com>

        Support drag-and-drop for input[type=color]
        https://bugs.webkit.org/show_bug.cgi?id=188464

        Reviewed by Wenson Hsieh.

        Added tests to verify that dragging from one color input to another behaves as
        expected in WK1. The tests consider disabled and read-only inputs in addition to
        default color inputs. The WK2 implementation is tested through API tests.

        * editing/pasteboard/drag-and-drop-color-input-events-expected.txt: Added.
        * editing/pasteboard/drag-and-drop-color-input-events.html: Added.
        * editing/pasteboard/drag-and-drop-color-input-expected.txt: Added.
        * editing/pasteboard/drag-and-drop-color-input.html: Added.
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wk2/TestExpectations:

2018-08-16  Simon Fraser  <simon.fraser@apple.com>

        Add fake layout test results JSON to exercise the functionality in results.html
        https://bugs.webkit.org/show_bug.cgi?id=188636

        Reviewed by Alexey Proskuryakov.
        
        The results for results.html are mostly blank because the page runs without any JSON
        data, so there's no testing of the functionality of the page. Add some fake JSON
        data which supplies most of the different types of test result, so we're testing
        at least some of the results.html script.

        * fast/harness/full_results.json: Added.
        * fast/harness/results-expected.txt:

2018-08-15  Ansh Shukla  <ansh_shukla@apple.com>

        NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
        https://bugs.webkit.org/show_bug.cgi?id=186870

        Reviewed by Alex Christensen.

        Ensure the exposed authentication type to clients is OAuth.

        * http/tests/loading/oauth-expected.txt: Added.
        * http/tests/loading/oauth.html: Added.
        * http/tests/loading/resources/oauth-subresource.php: Added.

2018-08-15  Christopher Reid  <chris.reid@sony.com>

        [Curl] Implement default cookie path handling correctly as outlined in RFC6265.
        https://bugs.webkit.org/show_bug.cgi?id=188609

        Reviewed by Alex Christensen.

        Curl implementation of default cookie path was wrong so that some cookies cannot be accessible.
        It should be generated as outlined in: https://tools.ietf.org/html/rfc6265#section-5.1.4

        * platform/wincairo/TestExpectations:
          - http/tests/cookies/http-get-cookie-set-in-js.html [ Pass ]


2018-08-15  Ali Juma  <ajuma@chromium.org>

        Disable IntersectionObserver tests on Windows for now
        https://bugs.webkit.org/show_bug.cgi?id=188613

        Unreviewed test gardening.

        The experimental feature for IntersectionObserver is off by default, and
        Windows WebKit API would have to change to enable it, so just skip the
        tests for now.

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

2018-08-15  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist] Add button to TextFieldInputs with a datalist
        https://bugs.webkit.org/show_bug.cgi?id=187741

        Reviewed by Tim Horton.

        Added tests to verify appearance of TextFieldInputs with a datalist.

        * fast/forms/datalist/datalist-searchinput-appearance.html: Added.
        * fast/forms/datalist/datalist-textinput-appearance.html: Added.
        * platform/ios/TestExpectations:
        * platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.png: Added.
        * platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
        * platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.png: Added.
        * platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.

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

        Unreviewed, rolling out r234870.

        The test introduced with this change is a flaky failure.

        Reverted changeset:

        "NSURLAuthenticationMethodOAuth challenges are surfaced to
        clients in -didReceiveAuthenticationChallenge as
        NSURLAuthenticationMethodDefault"
        https://bugs.webkit.org/show_bug.cgi?id=186870
        https://trac.webkit.org/changeset/234870

2018-08-15  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Unskip http/tests/cookies.

        * platform/wincairo/TestExpectations:

2018-08-15  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Don't send Content-Type header for POST request when body is null.
        https://bugs.webkit.org/show_bug.cgi?id=188588

        Reviewed by Youenn Fablet.

        * platform/wincairo/TestExpectations:

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

        Layout Test editing/input/press-tab-during-ime-composition.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=188600

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Attachment SPI] Remove attachment display mode options
        https://bugs.webkit.org/show_bug.cgi?id=188596

        Reviewed by Dan Bernstein.

        Remove a layout test which verified that attachment elements with `-webkit-appearance: none` would render
        child elements. This was only used to implement in-place attachment display modes.

        * fast/attachment/attachment-without-appearance-expected.html: Removed.
        * fast/attachment/attachment-without-appearance.html: Removed.
        * platform/gtk/TestExpectations:

2018-08-15  Ali Juma  <ajuma@chromium.org>

        [IntersectionObserver] Do not hold a strong reference to the root element
        https://bugs.webkit.org/show_bug.cgi?id=188575

        Reviewed by Simon Fraser.

        * intersection-observer/root-element-deleted-expected.txt: Added.
        * intersection-observer/root-element-deleted.html: Added.

2018-08-14  Zalan Bujtas  <zalan@apple.com>

        [LFC][Floating] Add support for negative clearance.
        https://bugs.webkit.org/show_bug.cgi?id=188555

        Reviewed by Simon Fraser.

        * fast/block/block-only/margin-collapse-with-clearance-expected.txt: Added.
        * fast/block/block-only/margin-collapse-with-clearance.html: Added.

2018-08-14  Ansh Shukla  <ansh_shukla@apple.com>

        NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
        https://bugs.webkit.org/show_bug.cgi?id=186870

        Reviewed by Alex Christensen.

        Ensure the exposed authentication type to clients is OAuth.

        * http/tests/loading/oauth-expected.txt: Added.
        * http/tests/loading/oauth.html: Added.
        * http/tests/loading/resources/oauth-subresource.php: Added.

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

        Unreviewed test gardening for mac-wk1.

        * platform/mac-wk1/TestExpectations:

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

        Mark legacy-animation-engine/animations/combo-transform-translate+scale.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=185308

        Unreviewed test gardening.

        * TestExpectations:

2018-08-14  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Added platform dependent expected result.

        * platform/wincairo/http/tests/xmlhttprequest/methods-expected.txt: Added.

2018-08-14  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Implement platform default timeout interval.
        https://bugs.webkit.org/show_bug.cgi?id=188565

        Reviewed by Alex Christensen.

        * platform/wincairo/TestExpectations:
          - xmlhttprequest/on-network-timeout-error-during-preflight.html

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

        Mark svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=188578

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-08-14  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Unhandled Promise Rejection logging in workers should not emit ErrorEvent to host Worker object
        https://bugs.webkit.org/show_bug.cgi?id=188551

        Reviewed by Youenn Fablet.

        * http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt:
        * js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt:

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

        [Web Animations] Crash under AnimationTimeline::cancelOrRemoveDeclarativeAnimation()
        https://bugs.webkit.org/show_bug.cgi?id=188519
        <rdar://problem/43237889>

        Reviewed by Eric Carlson.

        Add a test where we clone the effect to be mutable and set a new target. At this stage the animation is no longer listed in the
        m_elementToCSSAnimationByName map on AnimationTimeline. Then we remove the animation and force a style recalc for this element,
        "anim" will be in the old style but not in the new style and we used to attempt to get an animation matching that name from
        m_elementToCSSAnimationByName but it would be null, which would lead to a crash. Now we check that we indeed have such an animation
        before proceeding.

        * webanimations/css-animation-effect-target-change-and-animation-removal-crash-expected.html: Added.
        * webanimations/css-animation-effect-target-change-and-animation-removal-crash.html: Added.

2018-08-14  Zalan Bujtas  <zalan@apple.com>

        [LFC][Floating] Adjust vertical position with non-collapsing previous sibling margin.
        https://bugs.webkit.org/show_bug.cgi?id=188543

        Reviewed by Antti Koivisto.

        * fast/block/block-only/float-and-siblings-with-margins-expected.txt: Added.
        * fast/block/block-only/float-and-siblings-with-margins.html: Added.

2018-08-14  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Worker should support unhandled promise rejections
        https://bugs.webkit.org/show_bug.cgi?id=188265

        Reviewed by Darin Adler.

        * fast/dom/reference-cycle-leaks-expected.txt:
        * http/wpt/workers/promise-unhandled-rejection.any-expected.txt: Added.
        * http/wpt/workers/promise-unhandled-rejection.any.html: Added.
        * http/wpt/workers/promise-unhandled-rejection.any.js: Added.
        (promise_test):
        * http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt: Added.
        * http/wpt/workers/promise-unhandled-rejection.any.worker.html: Added.
        * js/dom/unhandled-promise-rejection-basic-in-workers-expected.txt: Added.
        * js/dom/unhandled-promise-rejection-basic-in-workers.html: Added.
        * js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt: Added.
        * js/dom/unhandled-promise-rejection-bindings-type-error-in-workers.html: Added.
        * js/dom/unhandled-promise-rejection-handle-during-event-in-workers-expected.txt: Added.
        * js/dom/unhandled-promise-rejection-handle-during-event-in-workers.html: Added.
        * js/dom/unhandled-promise-rejection-handle-in-handler-in-workers-expected.txt: Added.
        * js/dom/unhandled-promise-rejection-handle-in-handler-in-workers.html: Added.
        * js/dom/unhandled-promise-rejection-handle-in-workers-expected.txt: Added.
        * js/dom/unhandled-promise-rejection-handle-in-workers.html: Added.
        * js/dom/unhandled-promise-rejection-order-in-workers-expected.txt: Added.
        * js/dom/unhandled-promise-rejection-order-in-workers.html: Added.
        * js/resources/unhandled-promise-rejection-basic-in-workers.js: Added.
        (global.onunhandledrejection):
        * js/resources/unhandled-promise-rejection-bindings-type-error-in-workers.js: Added.
        (global.onunhandledrejection):
        (catch):
        (setTimeout):
        * js/resources/unhandled-promise-rejection-handle-during-event-in-workers.js: Added.
        (global.onunhandledrejection):
        * js/resources/unhandled-promise-rejection-handle-in-handler-in-workers.js: Added.
        (global.onunhandledrejection):
        (global.onrejectionhandled):
        * js/resources/unhandled-promise-rejection-handle-in-workers.js: Added.
        (global.onunhandledrejection):
        (global.onrejectionhandled):
        * js/resources/unhandled-promise-rejection-order-in-workers.js: Added.
        (global.onunhandledrejection):

2018-08-13  Joseph Pecoraro  <pecoraro@apple.com>

        [macOS debug] LayoutTest inspector/worker/resources-in-worker.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=168091

        Reviewed by Devin Rousso.

        * inspector/worker/resources-in-worker-expected.txt:
        * inspector/worker/resources-in-worker.html:
        * inspector/worker/resources/resource-utilities.js:
        * inspector/worker/resources/worker-resources.js:
        Be a little more careful about proceeding with tests after starting the Worker.
        Fix the resource load from the main target to actually load a real resource.

        * inspector/dom-debugger/resources/dataXHR.json: Added.
        * inspector/dom-debugger/xhr-breakpoints.html:
        Load an actual resource.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        This test always passes for me in Release and Debug. Reset expectations.

2018-08-13  Ali Juma  <ajuma@chromium.org>

        [IntersectionObserver] Validate threshold values
        https://bugs.webkit.org/show_bug.cgi?id=188475

        Reviewed by Simon Fraser.

        Add test coverage for interesting floating point threshold values.

        * intersection-observer/intersection-observer-interface-expected.txt:
        * intersection-observer/intersection-observer-interface.html:

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

        [iOS] Rebaseline and re-enable svg tests
        https://bugs.webkit.org/show_bug.cgi?id=180459

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:
        * platform/ios/TestExpectations:
        [ truncated ]

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

        Followup (r234683): Element::getAttribute() should return the first non-null attribute value
        https://bugs.webkit.org/show_bug.cgi?id=188419

        Reviewed by Darin Adler.

        * svg/custom/href-svg-namespace-empty-expected.txt: Added.
        * svg/custom/href-svg-namespace-empty.html: Added.

2018-08-13  Zalan Bujtas  <zalan@apple.com>

        [LFC][Floating] Add basic clearance support
        https://bugs.webkit.org/show_bug.cgi?id=188492

        Reviewed by Antti Koivisto.

        * fast/block/block-only/floating-left-and-right-with-clearance-expected.txt: Added.
        * fast/block/block-only/floating-left-and-right-with-clearance.html: Added.

2018-08-13  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Cleaned up test expectations for tests under
        fast/dom/, unskipping all tests and then adding the failure or timeout
        test expectations as appropriate. Missing port-specific baselines are
        also included.

        * platform/wpe/TestExpectations:
        * platform/wpe/fast/dom/: Necessary test expectations added.

2018-08-13  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening.

        Removed an unnecessary block of skipped tests that cover WebCrypto API
        support for 521-bit EC keys. All these tests pass.

        Removed unnecessary pass directives for imported WPT tests. Moved
        related flaky or skipped tests into appropriate sections.

        Also adjusted a few other expectations, moving them into the appropriate
        section or just removing them for being outdated or duplicates.

        * platform/wpe/TestExpectations:

2018-08-13  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Adopt test expectation sections similar to the
        GTK+ TestExpectations file. Sort some test expectations accordingly,
        while the rest of the expectations will follow later.

        * platform/wpe/TestExpectations:

2018-08-12  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/forms/color/input-appearance-color-expected.png:
        * platform/gtk/fast/forms/color/input-appearance-color-expected.txt:

2018-08-12  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Break reference cycle in ErrorEvent by using JSValueInWrappedObject
        https://bugs.webkit.org/show_bug.cgi?id=188491

        Reviewed by Darin Adler.

        * fast/dom/reference-cycle-leaks-expected.txt:

2018-08-12  Aditya Keerthi  <akeerthi@apple.com>

        [macOS] Color wells should appear pressed when presenting a color picker
        https://bugs.webkit.org/show_bug.cgi?id=188477

        Reviewed by Tim Horton.

        Rebaseline tests to match new color-well appearance.

        * platform/mac/fast/forms/color/input-appearance-color-expected.png:
        * platform/mac/fast/forms/color/input-appearance-color-expected.txt:

2018-08-12  Zalan Bujtas  <zalan@apple.com>

        [LFC] Float prev/next sibling should prevent top/bottom margin collapsing with parent.
        https://bugs.webkit.org/show_bug.cgi?id=188487

        Reviewed by Antti Koivisto.

        * fast/block/block-only/floating-and-next-previous-inflow-with-margin-expected.txt: Added.
        * fast/block/block-only/floating-and-next-previous-inflow-with-margin.html: Added.

2018-08-10  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: console.log fires getters for deep properties
        https://bugs.webkit.org/show_bug.cgi?id=187542
        <rdar://problem/42873158>

        Reviewed by Saam Barati.

        * inspector/injected-script/avoid-getter-invocation-expected.txt: Added.
        * inspector/injected-script/avoid-getter-invocation.html: Added.

2018-08-10  Joseph Pecoraro  <pecoraro@apple.com>

        LayoutTest inspector/worker/debugger-pause.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=164833
        <rdar://problem/29295404>

        Reviewed by Brian Burg.

        * inspector/worker/debugger-pause.html:
        Add a microtask turn to ensure the workerTarget's mainResource is setup.
        There were times it might not get setup, but a single turn appears
        reliable enough.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        This test always passes for me in Release and Debug. Reset expectations.

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

        Crash under NetworkResourceLoader::convertToDownload()
        https://bugs.webkit.org/show_bug.cgi?id=188479
        <rdar://problem/42201724>

        Reviewed by Alex Christensen.

        Add layout test coverage which reproduces the crash by:
        1. Loading a cacheable plugin while plugins are enabled so that the plugin goes into the disk cache
        2. Load the plugin again with plugins disabled so that we try to convert the load to a download

        * http/tests/download/convert-cached-load-to-download-expected.txt: Added.
        * http/tests/download/convert-cached-load-to-download.html: Added.
        * http/tests/plugins/resources/mock-plugin-cacheable.pl: Added.

2018-08-10  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] More unreviewed gardening.

        * platform/wincairo/TestExpectations:

2018-08-10  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [LayoutTests] Suppress warning messages generated by the test scripts.
        https://bugs.webkit.org/show_bug.cgi?id=188455

        Reviewed by Fujii Hironori.

        The messages such as warnings shouldn't be out on error log if that can be avoidable.

        * http/tests/cookies/resources/cookie-utility.php:
        * http/tests/xmlhttprequest/resources/access-control-allow-lists.php:
        * http/tests/xmlhttprequest/resources/access-control-basic-get-fail-non-simple.cgi:
        * http/tests/xmlhttprequest/resources/post-echo.cgi:
        * http/tests/xmlhttprequest/web-apps/004-test.cgi:

2018-08-10  Daniel Bates  <dabates@apple.com>

        Once <object> is hidden, its content won't be displayed again if its URL has fragment identifier ("#").
        https://bugs.webkit.org/show_bug.cgi?id=187990

        Reviewed by Simon Fraser.

        Add tests to ensure that we repaint an <object>, whose resource URL contains a fragment, when
        its CSS display property changes as well as when its navigated to a different anchor in the same
        document.

        * fast/repaint/object-as-iframe-hide-and-show-document-at-anchor-expected.txt: Added.
        * fast/repaint/object-as-iframe-hide-and-show-document-at-anchor.html: Added.
        * fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint-expected.txt: Added.
        * fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint.html: Added.
        * fast/repaint/resources/red-square-on-top-of-green-square.html: Added.

2018-08-10  Ali Juma  <ajuma@chromium.org>

        [IntersectionObserver] Implement rootMargin parsing
        https://bugs.webkit.org/show_bug.cgi?id=188469

        Reviewed by Darin Adler.

        * intersection-observer/intersection-observer-interface-expected.txt:
        * intersection-observer/intersection-observer-interface.html:

2018-08-10  Joseph Pecoraro  <pecoraro@apple.com>

        Eliminate remaining instances of "ElCapitan" from LayoutTests / Tools
        https://bugs.webkit.org/show_bug.cgi?id=188458

        Reviewed by Alex Christensen.

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

2018-08-10  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed layout test gardening.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/editing/selection/5057506-expected.png: Added.
        * platform/wincairo/editing/selection/caret-ltr-right-expected.txt:
        * platform/wincairo/editing/selection/caret-rtl-right-expected.txt:
        * platform/wincairo/editing/selection/doubleclick-crash-expected.txt: Added.
        * platform/wincairo/editing/selection/editable-links-expected.txt: Added.
        * platform/wincairo/editing/selection/extend-by-character-006-expected.txt: Added.
        * platform/wincairo/editing/selection/extend-by-sentence-001-expected.txt: Added.
        * platform/wincairo/editing/selection/extend-by-word-001-expected.txt: Added.
        * platform/wincairo/editing/selection/extend-inside-transforms-backward-expected.txt: Added.
        * platform/wincairo/editing/selection/extend-inside-transforms-forward-expected.txt: Added.
        * platform/wincairo/editing/selection/extend-selection-bidi-expected.txt: Added.
        * platform/wincairo/editing/selection/focus-body-expected.txt: Added.
        * platform/wincairo/editing/selection/move-by-line-001-expected.txt: Added.
        * platform/wincairo/editing/selection/move-by-word-001-expected.txt: Added.
        * platform/wincairo/editing/selection/select-all-001-expected.txt: Added.
        * platform/wincairo/editing/selection/select-all-002-expected.txt: Added.
        * platform/wincairo/editing/selection/select-all-003-expected.txt: Added.
        * platform/wincairo/editing/selection/select-all-004-expected.txt: Added.
        * platform/wincairo/editing/selection/unrendered-001-expected.txt: Added.
        * platform/wincairo/editing/selection/unrendered-002-expected.txt: Added.
        * platform/wincairo/editing/selection/unrendered-003-expected.txt: Added.
        * platform/wincairo/editing/selection/unrendered-004-expected.txt: Added.
        * platform/wincairo/editing/selection/unrendered-005-expected.txt: Added.

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

        [LayoutTests] Test case which committed on r175053 was wrong.
        https://bugs.webkit.org/show_bug.cgi?id=188454

        Reviewed by Fujii Hironori.

        It was originally committed on https://bugs.webkit.org/show_bug.cgi?id=136938 and has kept unchanged,
        but the test case uses non-existing redirect.php scripts which was removed a few months before than
        this bug. Also result was compared to wrong values.

        * http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt:
        * http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html:

2018-08-09  Joseph Pecoraro  <pecoraro@apple.com>

        Remove ElCapitan specific layout test expectations
        https://bugs.webkit.org/show_bug.cgi?id=188457

        Reviewed by Alex Christensen.

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

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

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

        Unreviewed test gardening.

        Unskip http/xmlhttprequest.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.png: Added.
        * platform/wincairo/http/tests/multipart/invalid-image-data-expected.png: Added.
        * platform/wincairo/http/tests/multipart/invalid-image-data-standalone-expected.png: Added.
        * platform/wincairo/http/tests/uri/css-href-expected.png: Added.

2018-08-09  Truitt Savell  <tsavell@apple.com>

        REGRESSION (r234330): 3 legacy-animation-engine/compositing tests are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=188357

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-08-09  Ali Juma  <ajuma@chromium.org>

        Update IDL for IntersectionObserverEntry and IntersectionObserverEntryInit
        https://bugs.webkit.org/show_bug.cgi?id=188445

        Reviewed by Simon Fraser.

        * intersection-observer/intersection-observer-entry-interface-expected.txt:
        * intersection-observer/intersection-observer-entry-interface.html:

2018-08-08  Keith Miller  <keith_miller@apple.com>

        Array.prototype.sort should call @toLength instead of ">>> 0"
        https://bugs.webkit.org/show_bug.cgi?id=188430

        Reviewed by Saam Barati.

        Remove invalid conformance test expectations. Array.prototype.sort calls toLength, which
        does not truncate integers.

        * sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T1.html:
        * sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T2.html:
        * sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T3.html:

2018-08-09  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r234720.

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/inspector/network/xhr-response-body-expected.txt:

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

        Unreviewed GTK+ and WPE gardening. Add a reftest failure expectation.
        Update a WPT EME test baseline for the WPE port.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:

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

        REGRESSION (r228260): Events handled by input method invoke default event handler
        https://bugs.webkit.org/show_bug.cgi?id=188370

        Reviewed by Wenson Hsieh.

        Added a regression test. Due to the lack of adequate support of textInputController in WebKitTestRunner,
        the test is only enabled in WebKit1. The WTR fix is tracked by https://webkit.org/b/188428.

        * editing/input/press-tab-during-ime-composition-expected.txt: Added.
        * editing/input/press-tab-during-ime-composition.html: Added.
        * platform/ios/TestExpectations:
        * platform/wk2/TestExpectations:

2018-08-08  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Fix test result after r234607 landed. Part 1 for http/tests

        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.txt:
        * platform/wincairo/http/tests/multipart/invalid-image-data-expected.txt:
        * platform/wincairo/http/tests/multipart/invalid-image-data-standalone-expected.txt:
        * platform/wincairo/http/tests/uri/css-href-expected.txt:

2018-08-08  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: XHR content sometimes shows as error even though load succeeded
        https://bugs.webkit.org/show_bug.cgi?id=188385
        <rdar://problem/42646160>

        Reviewed by Devin Rousso.

        * http/tests/inspector/network/xhr-response-body-expected.txt:
        * http/tests/inspector/network/xhr-response-body.html:
        Extend this test to include synchronous XHR for text and non-text resources.

2018-08-08  Truitt Savell  <tsavell@apple.com>

        Adjusting test expectations for imported/blink/fast/text/international-iteration-simple-text.html
        https://bugs.webkit.org/show_bug.cgi?id=179853

        Unreviewed test gardening.

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

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

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

        Unreviewed test gardening.

        * platform/gtk/TestExpectations: Remove expectations for now-passing tests.

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

        [iOS] fast/events/ios/contenteditable-autocapitalize.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=188401
        <rdar://problem/32542300>

        Reviewed by Ryosuke Niwa.

        Minor tweaks to make this test a bit easier to follow. Use async-await for each step of the test, and pass in
        the current autocapitalization type to `runTestWithAutocapitalizeType` rather than the next type. See Tools
        ChangeLog for more details.

        * fast/events/ios/contenteditable-autocapitalize.html:
        * platform/ios/TestExpectations:

        Remove the failing test expecation.

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

        [css-grid] Update behavior of percentage row tracks and gutters
        https://bugs.webkit.org/show_bug.cgi?id=188403

        Reviewed by Sergio Villar Senin.

        Update tests as needed according to the new behavior.

        * TestExpectations: Two grid gutters tests from WPT css-align suite are passing now.
        * fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
        * fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
        * fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
        * fast/css-grid-layout/grid-columns-rows-get-set.html:
        * fast/css-grid-layout/grid-gutters-as-percentage-expected.txt:
        * fast/css-grid-layout/grid-gutters-as-percentage.html:
        * fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows-expected.txt:
        * fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html:
        * fast/css-grid-layout/named-grid-line-get-set-expected.txt:
        * fast/css-grid-layout/named-grid-line-get-set.html:
        * fast/css-grid-layout/nested-grid-expected.html:
        * fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:
        * fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
        * fast/css-grid-layout/resources/grid-columns-rows-get-set.js:

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

        navigator.sendBeacon does not work in pagehide callbacks
        https://bugs.webkit.org/show_bug.cgi?id=188329

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/wpt/beacon/sendBeacon-in-pagehide-expected.txt: Added.
        * http/wpt/beacon/sendBeacon-in-pagehide.html: Added.
        * http/wpt/beacon/support/sendBeacon-onpagehide-window.html: Added.

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

        Allow href attribute without xlink on SVG elements
        https://bugs.webkit.org/show_bug.cgi?id=153854

        Reviewed by Dean Jackson.

        * fast/selectors/any-link-basics-2-expected.txt:
        * fast/selectors/any-link-basics-2.html:
        Re-baseline this test because it was assuming the bare href should not 
        work for the SVG <a> element.
        * svg/custom/href-svg-namespace-animate-expected.svg: Added.
        * svg/custom/href-svg-namespace-animate.svg: Added.
        * svg/custom/href-svg-namespace-dynamic-expected.svg: Added.
        * svg/custom/href-svg-namespace-dynamic.svg: Added.
        * svg/custom/href-svg-namespace-elements-expected.txt: Added.
        * svg/custom/href-svg-namespace-elements.html: Added.
        * svg/custom/href-svg-namespace-static-expected.svg: Added.
        * svg/custom/href-svg-namespace.static-svg: Added.

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

        document.open and document.write must throw while the HTML parser is synchronously constructing a custom element
        https://bugs.webkit.org/show_bug.cgi?id=187319
        <rdar://problem/42843012>

        Reviewed by Frédéric Wang.

        Added W3C style testharness.js tests. The WPT test added by https://github.com/web-platform-tests/wpt/pull/12037
        doesn't test nearly as many edge cases.

        * fast/custom-elements/resources/navigation-destination.html: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct-expected.txt: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions-expected.txt: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html: Added.

2018-08-07  Rob Buis  <rbuis@igalia.com>

        fetch() with subresource integrity crashes on zero length body
        https://bugs.webkit.org/show_bug.cgi?id=184325

        Reviewed by Alex Christensen.

        Add a subtest for zero length resources.

        * http/tests/subresource-integrity/resources/empty-resource.txt: Added.
        * http/tests/subresource-integrity/sri-fetch-expected.txt:
        * http/tests/subresource-integrity/sri-fetch-worker-expected.txt:
        * http/tests/subresource-integrity/sri-fetch.js:

2018-08-07  Commit Queue  <commit-queue@webkit.org>

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

        Didn't commit the actual change (Requested by rniwa on
        #webkit).

        Reverted changeset:

        "document.open and document.write must throw while the HTML
        parser is synchronously constructing a custom element"
        https://bugs.webkit.org/show_bug.cgi?id=187319
        https://trac.webkit.org/changeset/234669

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

        document.open and document.write must throw while the HTML parser is synchronously constructing a custom element
        https://bugs.webkit.org/show_bug.cgi?id=187319
        <rdar://problem/42843012>

        Reviewed by Frédéric Wang.

        Added W3C style testharness.js tests. The WPT test added by https://github.com/web-platform-tests/wpt/pull/12037
        doesn't test nearly as many edge cases.

        * fast/custom-elements/resources/navigation-destination.html: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct-expected.txt: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions-expected.txt: Added.
        * fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html: Added.

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

        REGRESSION (r233778): Text selection sometimes cannot be extended in iframes
        https://bugs.webkit.org/show_bug.cgi?id=188374
        <rdar://problem/42928657>

        Reviewed by Simon Fraser.

        Add 2 new layout tests to cover the original bug that r233778 fixed, as well as the regression in this bug.

        * editing/selection/ios/selection-handles-in-iframe-expected.txt: Added.
        * editing/selection/ios/selection-handles-in-iframe.html: Added.

        Add a test to verify that the user can select text in an iframe by dragging selection handles.

        * editing/selection/ios/selection-handles-in-readonly-input-expected.txt: Added.
        * editing/selection/ios/selection-handles-in-readonly-input.html: Added.

        Add a test to verify that dragging a selection handle outside of a readonly input does not cause the selection
        to jump outside of the input and clear out the selection in the input.

2018-08-07  Alex Christensen  <achristensen@webkit.org>

        Fix things after r234640
        https://bugs.webkit.org/show_bug.cgi?id=188133

        * platform/mac-sierra-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: Added.
        Added test expectation for Sierra, which has no safe browsing framework.

2018-08-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Unreviewed, Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=188246

        Unreviewed test gardening, marked test as flaky because the test is wrong.

        * TestExpectations:

2018-08-06  Simon Fraser  <simon.fraser@apple.com>

        De-flake some animation tests
        https://bugs.webkit.org/show_bug.cgi?id=188356

        Reviewed by Dean Jackson.
        
        The tests in legacy-animation-engine were flakey because the animation can start before
        we get a chance to register the event listener. Fix by starting the animation after the
        load event fires. Make the non-legacy tests match.

        * compositing/visible-rect/animated-from-none.html:
        * compositing/visible-rect/animated.html:
        * legacy-animation-engine/compositing/visible-rect/animated-from-none.html:
        * legacy-animation-engine/compositing/visible-rect/animated.html:

2018-08-06  Alex Christensen  <achristensen@webkit.org>

        Check with SafeBrowsing during navigation in WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=188133

        Reviewed by Andy Estes.

        * platform/wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: Copied from http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt.
        This test verifies that keys cannot be entered during navigation, and the keys seen in WebKitTestRunner
        are before the navigation.  This is seen now because there is a brief moment in time between when
        WebKitTestRunner calls decidePolicyForNavigationAction and when the WebContent receives it.
        * svg/custom/anchor-on-use.svg:
        This test verifies what the page looks like after navigation.  It used to just call testRunner.notifyDone
        when the link was clicked and because of the timing of messages sent with the UIProcess, WebKitTestRunner
        would see the results after the page navigated.  Because we are adding a delay during navigation, the
        message order can no longer be relied on in this way.  To fix this, we are just calling notifyDone in an
        unload handler.

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

        fast/custom-elements/custom-element-registry-wrapper-should-stay-alive.html always timeouts on debug bots
        https://bugs.webkit.org/show_bug.cgi?id=188353

        Remove the timeout expectation now that the test is passing on debug bots.

        * TestExpectations:

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

        Add CEReactions=NotNeeded for reactions only needed for customized builtins
        https://bugs.webkit.org/show_bug.cgi?id=187851

        Reviewed by Chris Dumez.

        Added a regression test for enqueuing a custom element reaction in a DOM API marked as [CEReaction]
        inside another DOM API with [CEReaction=NotNeeded]. WebKit should not hit a debug assertion added
        by this patch.

        * fast/custom-elements/custom-element-reaction-within-disallowed-scope-expected.txt: Added.
        * fast/custom-elements/custom-element-reaction-within-disallowed-scope.html: Added.

2018-08-06  Matt Baker  <mattbaker@apple.com>

        Web Inspector: split-up async stack trace test suite to improve clarity and maintainability
        https://bugs.webkit.org/show_bug.cgi?id=185398
        <rdar://problem/40040289>

        Reviewed by Joseph Pecoraro.

        * inspector/debugger/async-stack-trace-basic-expected.txt: Added.
        * inspector/debugger/async-stack-trace-basic.html: Added.
        Basic tests that check for the existence of an asynchronous stack trace
        when pausing inside an asynchronous callback function.

        * inspector/debugger/async-stack-trace-event-listener-expected.txt: Added.
        * inspector/debugger/async-stack-trace-event-listener.html: Added.
        * inspector/debugger/async-stack-trace-expected.txt: Removed.

        * inspector/debugger/async-stack-trace-truncate-expected.txt: Added.
        * inspector/debugger/async-stack-trace-truncate.html: Added.
        Test scenarios where the number of call frames in the async stack trace
        exceeds the maximum depth and is truncated.

        * inspector/debugger/async-stack-trace.html: Removed.

        * inspector/debugger/resources/async-stack-trace-test.js: Added.
        (TestPage.registerInitializer.window.getAsyncStackTrace):
        (TestPage.registerInitializer.logCallFrame):
        (TestPage.registerInitializer.window.logAsyncStackTrace):
        (TestPage.registerInitializer.window.addAsyncStackTraceTestCase):
        (TestPage.registerInitializer):
        Utility functions used across tests.

        * inspector/debugger/resources/postMessage-echo.html: Removed.
        This was unnecessary. To check that an async stack trace exists when
        pausing in a postMessage handler, all we need is an iframe that posts a
        message to its parent as soon as it is created. The iframe is now created
        inline in async-stack-trace-basic.html.

        * platform/mac/TestExpectations:

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

        Setting table layout to fixed causes incorrect cell width calculations
        https://bugs.webkit.org/show_bug.cgi?id=90068

        Reviewed by Simon Fraser.

        Derived from the test case written by Pravin D.

        Add a test case to ensure we do not regress cell width computation in fixed table layout
        when colspan is greater than the number of columns in the table.

        * fast/table/fixed-table-layout/width-distribution-when-colspan-greater-than-table-columns-expected.html: Added.
        * fast/table/fixed-table-layout/width-distribution-when-colspan-greater-than-table-columns.html: Added.

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

        Add tests to ensure that Same-Site cookies are stored when set as the first party
        https://bugs.webkit.org/show_bug.cgi?id=188080

        Reviewed by Alexey Proskuryakov.

        * http/tests/cookies/resources/cookie-utilities.js:
        (getDOMCookies): Return an empty dictionary when there are no DOM cookies. Currently we
        return {"": undefined}.
        * http/tests/cookies/resources/cookie-utilities.php: Added.
        * http/tests/cookies/resources/echo-http-and-dom-cookies-and-notify-done.php: Added.
        * http/tests/cookies/same-site/set-first-party-cross-site-cookies-expected.txt: Added.
        * http/tests/cookies/same-site/set-first-party-cross-site-cookies.php: Added.
        * http/tests/cookies/same-site/set-first-party-same-site-cookies-expected.txt: Added.
        * http/tests/cookies/same-site/set-first-party-same-site-cookies.php: Added.
        * platform/ios-12/TestExpectations: Skip the tests until the fix for <rdar://problem/42255251>
        is shipped.
        * platform/mac/TestExpectations: Ditto.

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

        fast/custom-elements/custom-element-registry-wrapper-should-stay-alive.html always timeouts on debug bots
        https://bugs.webkit.org/show_bug.cgi?id=188353

        Reviewed by Saam Barati.

        Rely on GCController.collect() instead of allocating 1,000,000 objects in WebKitTestRunner / DumpRenderTree
        so that debug builders won't timeout.

        * fast/custom-elements/custom-element-registry-wrapper-should-stay-alive.html:

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

        fast/custom-elements/custom-element-registry-wrapper-should-stay-alive.html always timeouts on debug bots
        https://bugs.webkit.org/show_bug.cgi?id=188353

        Add a timeout expectation to the test while I verify the fix for the test.

        * TestExpectations:

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

        Unreviewed test gardening for mac-wk1.

        * platform/mac-wk1/TestExpectations:

2018-08-06  Aditya Keerthi  <akeerthi@apple.com>

        [iOS] Indeterminate checkboxes appear unchecked
        https://bugs.webkit.org/show_bug.cgi?id=160484
        <rdar://problem/31143185>

        Reviewed by Wenson Hsieh.

        Added reftest to ensure that the indeterminate checkbox does not appear the same
        as an unchecked checkbox.  

        * fast/forms/ios/render-indeterminate-checkbox-expected-mismatch.html: Added.
        * fast/forms/ios/render-indeterminate-checkbox.html: Added.
        * platform/ios/fast/forms/indeterminate-expected.txt: Rebaseline.

2018-08-06  Truitt Savell  <tsavell@apple.com>

        storage/indexeddb/modern/opendatabase-after-storage-crash.html is causing tests in directory svg/ to timeout at random
        https://bugs.webkit.org/show_bug.cgi?id=187931

        Unreviewed test gardening.

        * platform/wk2/TestExpectations:

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

        [iOS] Tests that try to interact with the QuickType bar time out on iOS 11+
        https://bugs.webkit.org/show_bug.cgi?id=188335
        <rdar://problem/32542437> and <rdar://problem/32542433>

        Reviewed by Tim Horton.

        Refactors a couple of tests that currently rely on the QuickType bar being shown when the hardware keyboard is
        presented in the iOS simulator, so that it can insert text suggestions by tapping QuickType bar buttons; in the
        first place, it was never guaranteed that this bar would show up, or even have more than 1 text suggestion.
        Instead, we use the existing UIScriptController::applyAutocorrection method to trigger text replacement in the
        same way tapping a button on the QuickType bar would replace the current word with the suggested word.

        * fast/events/ios/before-input-events-prevent-candidate-insertion-expected.txt:
        * fast/events/ios/before-input-events-prevent-candidate-insertion.html:
        * fast/events/ios/input-events-insert-replacement-text-expected.txt:
        * fast/events/ios/input-events-insert-replacement-text.html:
        * platform/ios/TestExpectations:

        Removes a [Timeout] expectation.

        * resources/ui-helper.js:
        (window.UIHelper.typeCharacter):

        Add a new UIHelper method to type a character using the keyboard. Sends hardware keyboard events on the WebKit2
        port of iOS, and uses EventSender elsewhere.

        (window.UIHelper.applyAutocorrection):

        Add a new UIHelper method that wraps UIScriptController::applyAutocorrection. Only supported in WebKit2
        currently.

        (window.UIHelper):

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

        [iOS] Caret disappears after resigning and becoming first responder if active focus state is retained
        https://bugs.webkit.org/show_bug.cgi?id=188322
        <rdar://problem/42455270>

        Reviewed by Tim Horton.

        Adds a new layout test to verify that (1) selection handles are not shown when selecting a word by long
        pressing prior to ending the touch, and (2) selection handles are shown after ending the touch.

        * editing/selection/ios/selection-handles-after-touch-end-expected.txt: Added.
        * editing/selection/ios/selection-handles-after-touch-end.html: Added.
        * platform/win/TestExpectations:

        Skip iOS selection tests on Windows.

        * resources/ui-helper.js:

        Introduces new hooks in UIHelper to grab the frames of the start and end selection handle views.

        (window.UIHelper.getSelectionStartGrabberViewRect.return.new.Promise.):
        (window.UIHelper.getSelectionStartGrabberViewRect.return.new.Promise):
        (window.UIHelper.getSelectionStartGrabberViewRect):
        (window.UIHelper.getSelectionEndGrabberViewRect.return.new.Promise.):
        (window.UIHelper.getSelectionEndGrabberViewRect.return.new.Promise):
        (window.UIHelper.getSelectionEndGrabberViewRect):

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

        [WPE] New webgl 2.0 failures.

        Unreviewed gardening.
        * platform/wpe/TestExpectations: Two webgl 2.0 tests are failing,
        mark them.

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

        [GTK] Skip new webgl 2.0 tests. Unreviewed gardening.

        * platform/gtk/TestExpectations: Expanded webgl 2.0 skipped
        test to include all, since there were new failures.

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

        ASSERTION !data.customElementReactionQueue() when creating custom element inside an SVG document
        https://bugs.webkit.org/show_bug.cgi?id=187802

        The assertion has been removed in bug 188327. This patch updates the test expectations and
        add some non-regression test to verify different cases of XML custom element construction.

        Reviewed by Ryosuke Niwa.

        * TestExpectations: This test no longer crashes but times out because of bug 187800.
        * fast/custom-elements/xml-parsing-create-and-element-for-a-token-expected.txt: Added.
        * fast/custom-elements/xml-parsing-create-and-element-for-a-token.svg: Added.

2018-08-05  Yusuke Suzuki  <utatane.tea@gmail.com>

        Implement self.queueMicrotask in Workers
        https://bugs.webkit.org/show_bug.cgi?id=188247

        Reviewed by Ryosuke Niwa.

        * http/wpt/workers/queue-microtask.any-expected.txt: Added.
        * http/wpt/workers/queue-microtask.any.html: Added.
        * http/wpt/workers/queue-microtask.any.js: Added.
        (promise_test):
        (promise_test.):
        (queueMicrotask.promise_test):
        (test):
        * http/wpt/workers/queue-microtask.any.worker-expected.txt: Added.
        * http/wpt/workers/queue-microtask.any.worker.html: Added.

2018-08-05  Rob Buis  <rbuis@igalia.com>

        [GTK][WPE] Fetch tests assert in SubresourceLoader::didReceiveResponse()
        https://bugs.webkit.org/show_bug.cgi?id=188163

        Reviewed by Frédéric Wang.

        Unskip since this will not crash in Debug anymore.

        * platform/wpe/TestExpectations:

2018-08-05  Yusuke Suzuki  <utatane.tea@gmail.com>

        Add support for microtasks in workers
        https://bugs.webkit.org/show_bug.cgi?id=188246

        Reviewed by Darin Adler.

        * http/wpt/workers/microtasks.any-expected.txt: Added.
        * http/wpt/workers/microtasks.any.html: Added.
        * http/wpt/workers/microtasks.any.js: Added.
        (promise_test):
        * http/wpt/workers/microtasks.any.worker-expected.txt: Added.
        * http/wpt/workers/microtasks.any.worker.html: Added.

2018-08-05  Philippe Normand  <pnormand@igalia.com>

        [MediaCapabilities] Platform integration
        https://bugs.webkit.org/show_bug.cgi?id=187850

        Reviewed by Eric Carlson.

        Mock tests for the MediaCapabilities specification.

        * media/mediacapabilities/mock-decodingInfo-expected.txt: Added.
        * media/mediacapabilities/mock-decodingInfo.html: Added.
        * media/mediacapabilities/mock-encodingInfo-expected.txt: Added.
        * media/mediacapabilities/mock-encodingInfo.html: Added.
        * media/video-test.js:
        (checkMediaCapabilitiesInfo):

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

        Properties set on window.customElements can disappear due to GC
        https://bugs.webkit.org/show_bug.cgi?id=172575
        <rdar://problem/32440668>

        Reviewed by Saam Barati.

        Added a regression test.

        * fast/custom-elements/custom-element-registry-wrapper-should-stay-alive-expected.txt: Added.
        * fast/custom-elements/custom-element-registry-wrapper-should-stay-alive.html: Added.

2018-08-03  Justin Fan  <justin_fan@apple.com>

        WebGL 2 conformance: vertex_arrays/vertex_array_object.html
        https://bugs.webkit.org/show_bug.cgi?id=188291
        <rdar://problem/42792709>

        Get https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/vertex_arrays/vertex-array-object.html 
        working on Mac OS and iOS, and check in the new test expectations.

        Reviewed by Dean Jackson.

        * TestExpectations: No longer skipping vertex_arrays tests.
        The following FAILed before this patch but are now expecting PASSes.
        * webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:

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

        Skip imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_abort.html.
        https://bugs.webkit.org/show_bug.cgi?id=187269

        Unreviewed test gardening.

        * TestExpectations:

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

        [LayoutTests][websocket] Return correct value even when cookie is not set.
        https://bugs.webkit.org/show_bug.cgi?id=188317

        Reviewed by Darin Adler.

        > ws://127.0.0.1:8880/websocket/tests/hybi/echo-cookie_wsh.py
        This web socket script throw exception when cookie is not set. That is ended up with
        immediate disconnection and causes timeout for failure tests which makes debugging hard.

        * http/tests/websocket/tests/hybi/echo-cookie_wsh.py:
        (web_socket_transfer_data):
        * platform/wincairo/TestExpectations:

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

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

        Unreviewed test gardening.

        Skip some flaky tests.
        Add comments why we skip for some platform dependent reason.

        * platform/wincairo/TestExpectations:

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

        [LayoutTests][PHP] Fix old-style script which uses function name as a keyword.
        https://bugs.webkit.org/show_bug.cgi?id=188289

        Reviewed by Alex Christensen.

        Function name should be passed as a string literal. In PHP, named function is
        not the first class citizen.

        * http/tests/cookies/resources/echo-cookies.php:

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

        [LayoutTests] Suppress PHP Error message by removing an execution time limit.
        https://bugs.webkit.org/show_bug.cgi?id=188288

        Reviewed by Alex Christensen.

        Remove execution timeout.

        * http/tests/multipart/resources/multipart.php:

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

        Release assert when throwing exceptions in custom element reactions
        https://bugs.webkit.org/show_bug.cgi?id=187805
        <rdar://problem/42432714>

        Reviewed by Saam Barati.

        Unskipped the previously crashing test.

        * TestExpectations:

2018-08-02  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Unskip some http tests.

        * platform/wincairo/TestExpectations:
          - contentextensions
          - events
          - favicon.ico
          - fullscreen
          - globalhistory
          - gzip-content-encoding
          - history
          - local
          - messaging
          - mime
          - multipart
          - performance
          - permissionclient
          - referrer-policy
          - resourceLoadStatistics
        * platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.txt: Added.
        * platform/wincairo/http/tests/multipart/invalid-image-data-expected.txt: Added.
        * platform/wincairo/http/tests/multipart/invalid-image-data-standalone-expected.txt: Added.
        * platform/wincairo/http/tests/uri/css-href-expected.txt: Added.

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

        Control center controls disappear when pausing, locking device.
        https://bugs.webkit.org/show_bug.cgi?id=188282
        <rdar://problem/42497809>

        Reviewed by Eric Carlson.

        * platform/mac/media/audio-session-category-video-paused-expected.txt: Added.
        * platform/mac/media/audio-session-category-video-paused.html: Added.
        * platform/ios/TestExpectations:

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

        AX: [iOS] add support to return the attributed string under the element
        https://bugs.webkit.org/show_bug.cgi?id=188276
        <rdar://problem/42872357>

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/attributed-string-for-element-expected.txt: Added.
        * accessibility/ios-simulator/attributed-string-for-element.html: Added.

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

        REGRESSION (r234488): Layout test fast/events/ios/keyboard-scrolling-repeat.html is timing out
        <rdar://problem/42878480>

        * fast/events/ios/keyboard-scrolling-repeat-expected.txt: Removed.
        * fast/events/ios/keyboard-scrolling-repeat.html: Removed.
        Remove a test that can't work anymore.
        If we need to re-write it it will probably need to be an API test.

2018-08-02  Megan Gardner  <megan_gardner@apple.com>

        Reformat editable selection tests to remove potential flakeyness due to autoscroll
        https://bugs.webkit.org/show_bug.cgi?id=188263
        <rdar://problem/40565375>

        Reviewed by Wenson Hsieh

        Change the format of these editable selection tests to put the editable content at the top of the page so
        that when selecting we do not run into the page trying to autoscroll while selecting, which makes the tests more
        flakey, and more difficult to get accurate and consistent answers.

        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-left-to-change-selected-text.html:
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html:
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text.html:
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text.html:
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text.html:
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:

2018-08-01  Yusuke Suzuki  <utatane.tea@gmail.com>

        Add self.queueMicrotask(f) on DOMWindow
        https://bugs.webkit.org/show_bug.cgi?id=188212

        Reviewed by Ryosuke Niwa.

        * js/dom/queue-microtask-window-expected.txt: Added.
        * js/dom/queue-microtask-window.html: Added.

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

        REGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182589

        Rebaseline the test and remove the flaky test expectation.

        * fast/dom/adopt-node-crash-2-expected.txt:
        * platform/ios-wk2/TestExpectations:
        * platform/mac/TestExpectations:

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

        AX: AOM: Add ARIA IDL Attribute Reflection
        https://bugs.webkit.org/show_bug.cgi?id=184676
        <rdar://problem/39476882>

        Reviewed by Chris Fleizach.

        * accessibility/ARIA-reflection-expected.txt: Added.
        * accessibility/ARIA-reflection.html: Added.
        * js/dom/dom-static-property-for-in-iteration.html:
        * platform/win/TestExpectations:

2018-08-01  David Fenton  <david_fenton@apple.com>

        Layout Test editing/selection/update-selection-by-style-change.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=187649

        Unreviewed test gardening, re-marked test as flaky.

        * platform/mac-wk2/TestExpectations:

2018-08-01  Andy VanWagoner  <andy@vanwagoner.family>

        [INTL] Implement hourCycle in DateTimeFormat
        https://bugs.webkit.org/show_bug.cgi?id=188006

        Reviewed by Darin Adler.

        Added tests for hourCycle.

        * js/intl-datetimeformat-expected.txt:
        * js/script-tests/intl-datetimeformat.js:

2018-08-01  Andy VanWagoner  <andy@vanwagoner.family>

        number-toLocaleString.js test fails on ARM Linux buildbots
        https://bugs.webkit.org/show_bug.cgi?id=154533

        Reviewed by Yusuke Suzuki.

        Removed assumed default locale in Intl tests. The default is tested to
        verify that it is a string, and a canonicalized language tag. All other
        test cases explicitly use a locale when they expect a localized value.

        * js/intl-collator-expected.txt:
        * js/intl-datetimeformat-expected.txt:
        * js/intl-default-locale-expected.txt:
        * js/intl-default-locale.html:
        * js/intl-numberformat-expected.txt:
        * js/intl-pluralrules-expected.txt:
        * js/script-tests/intl-collator.js:
        * js/script-tests/intl-datetimeformat.js:
        * js/script-tests/intl-numberformat.js:
        * js/script-tests/intl-pluralrules.js:

2018-08-01  Timothy Hatcher  <timothy@apple.com>

        Hardcode some system colors to avoid fingerprinting exposure.
        https://bugs.webkit.org/show_bug.cgi?id=188203
        rdar://problem/42781630

        Reviewed by Tim Horton.

        * fast/css/apple-system-control-colors-expected.txt: Updated.
        * fast/css/test-setting-canvas-color.html: Fixed for colors with alpha.
        * platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
        * platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Updated.
        * platform/mac/TestExpectations: Removed fast/css/test-setting-canvas-color.html.
        * platform/mac/fast/css/apple-system-control-colors-expected.txt: Updated.

2018-08-01  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:

2018-07-31  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed test gardening.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/css2.1/20110323/replaced-intrinsic-ratio-001-expected.png: Added.
        * platform/wincairo/css3/masking/clip-path-circle-margin-box-expected.txt: Removed.

2018-07-31  Wenson Hsieh  <wenson_hsieh@apple.com>

        Tidy up a layout test introduced in r234436.
        https://bugs.webkit.org/show_bug.cgi?id=188107
        <rdar://problem/42354250>

        Reviewed by Daniel Bates.

        The expected output of a test that uses js-test.js should include a description, plus a line that states that
        there will be a series of PASS messages, PASS/FAIL output, a successfully parsed line and finally a TEST
        COMPLETE line. This patch adjusts a newly introduced test to follow this convention.

        * fast/forms/ios/click-should-not-suppress-misspelling-expected.txt:
        * fast/forms/ios/click-should-not-suppress-misspelling.html:

2018-07-31  Ryan Haddad  <ryanhaddad@apple.com>

        Layout Test svg/animations/smil-leak-element-instances-noBaseValRef.svg is flaky
        https://bugs.webkit.org/show_bug.cgi?id=180997

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Remove flaky expectation.

2018-07-31  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Remove partitioned cookies for reduced complexity, lower memory footprint, and ability to support more platforms
        https://bugs.webkit.org/show_bug.cgi?id=188109
        <rdar://problem/42664391>

        Reviewed by Brent Fulgham, Chris Dumez, and Alex Christensen.

        This patch removes cookie partitioning which reduces the model to just
        blocked cookies (in third-party contexts) and first-party cookie access.

        Several of the changes are renaming to reflect that there are no more
        cookie partitions.

        The changes to the Storage Access API tests also involve fixes for potential
        flakiness by adopting several completion handlers in test functions.

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect-expected.txt: Removed.
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html: Removed.
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics.html:
        * http/tests/resourceLoadStatistics/cookie-deletion-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt.
        * http/tests/resourceLoadStatistics/cookie-deletion.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html.
        * http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html.
        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html:
        * http/tests/resourceLoadStatistics/enable-debug-mode.html:
        * http/tests/resourceLoadStatistics/grandfathering.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-expected.txt:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt: Removed.
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html: Removed.
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt: Removed.
        * 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: Removed.
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html: Removed.
        * http/tests/resourceLoadStatistics/resources/get-cookies.php:
        * http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.php: Added.
        * http/tests/resourceLoadStatistics/resources/util.js: Added.
        (setEnableFeature):
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode.html:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests.html:
        * http/tests/resourceLoadStatistics/telemetry-generation.html:
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction-expected.txt: Removed.
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html: Removed.
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html:
        * http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html:
        * http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html:
        * http/tests/storageAccess/deny-storage-access-under-opener.html:
        * http/tests/storageAccess/grant-storage-access-under-opener-expected.txt:
        * http/tests/storageAccess/grant-storage-access-under-opener.html:
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction-expected.txt: Removed.
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction.html: Removed.
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction.html: Removed.
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction-expected.txt.
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window.html: Added.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-expected.txt: Renamed from LayoutTests/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-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html: Renamed from LayoutTests/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.html.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame-expected.txt: Renamed from LayoutTests/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-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html: Renamed from LayoutTests/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.html.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-expected.txt: Renamed from LayoutTests/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-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-recent-user-interaction.html.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe.html.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe-expected.txt.
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe.html.
        * 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:
        * http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html:
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window.html: Removed.
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html:
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html:
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture.html:
        * http/tests/storageAccess/request-storage-access-same-origin-iframe.html:
        * http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html:
        * http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe.html:
        * http/tests/storageAccess/request-storage-access-top-frame.html:
        * http/tests/storageAccess/resources/nesting-iframe.html:
        * platform/ios/TestExpectations:
            Test case renaming.
            webkit.org/b/183216 removed since it's resolved.
        * platform/mac-wk2/TestExpectations:
            Test case renaming.
        * platform/wk2/TestExpectations:
            Test case renaming.

2018-07-31  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Spelling suggestions cannot be selected in focused form controls when zoomed in
        https://bugs.webkit.org/show_bug.cgi?id=188107
        <rdar://problem/42354250>

        Reviewed by Tim Horton.

        Adds a new test to verify that tapping in a misspelled word to bring up the spelling correction callout and
        selection view does not immediately cause the selection to dismiss.

        * fast/forms/ios/click-should-not-suppress-misspelling-expected.txt: Added.
        * fast/forms/ios/click-should-not-suppress-misspelling.html: Added.

2018-07-31  Alex Christensen  <achristensen@webkit.org>

        Remove Yosemite test results.

        We haven't run these tests in over a year.  They're not needed.

        * platform/mac-yosemite: Removed.

2018-07-31  Ryan Haddad  <ryanhaddad@apple.com>

        Layout Test media/video-add-autoplay-user-gesture.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=174591

        Reviewed by Darin Adler.

        Remove the 1000ms restriction for this test to complete in order to eliminate flakiness.

        * media/video-add-autoplay-user-gesture.html:

2018-07-31  Miguel Gomez  <magomez@igalia.com>

        [WPE] webanimations/partly-accelerated-transition-by-removing-property.html is failing since added in r234250 "[Web Animations] REGRESSION: transition added immediately after element creation doesn't work"
        https://bugs.webkit.org/show_bug.cgi?id=188058

        Unreviewed. Adding custom test expectation for WPE, as it never leaves AC mode.

        * platform/wpe/TestExpectations:
        * platform/wpe/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.

2018-07-30  Justin Fan  <justin_fan@apple.com>

        [WebGL2] Support compilation of GLSL ES version 300 shaders
        https://bugs.webkit.org/show_bug.cgi?id=187982
        <rdar://problem/42564229>

        Reviewed by Dean Jackson.

        New simple test added to ensure that GLSL ES version 300 shaders compile.
        Updated other test results in glsl3 to match new functionality.

        * fast/canvas/webgl/webgl2-glsl3-compile-expected.txt: Added.
        * fast/canvas/webgl/webgl2-glsl3-compile.html: Added.
        * platform/ios/TestExpectations: Skipping ios for now. 
        * webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt:

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

        Rebaseline fast/forms/file/input-file-re-render.html for Mojave.

        Unreviewed test gardening.

        * platform/mac-highsierra/fast/forms/file/input-file-re-render-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/file/input-file-re-render-expected.txt.
        * platform/mac/fast/forms/file/input-file-re-render-expected.txt:

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

        Update TestExpectations for mac-wk1.

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Nullptr crash accessing Document in GenericEventQueue::dispatchOneEvent()
        https://bugs.webkit.org/show_bug.cgi?id=187284

        Unreviewed, roll r233496 and r233571 now that all known issues have been fixed via
        dependency bugs.

        * media/track/video-track-addition-and-frame-removal-expected.txt: Added.
        * media/track/video-track-addition-and-frame-removal.html: Added.

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

        [Win] Layout test http/tests/security/canvas-remote-read-remote-video-hls.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=188169

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Win] Layout test fast/text/complex-first-glyph-with-initial-advance.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=188168

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Win] Layout test fast/repaint/canvas-object-fit.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=188167

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Win] Layout test webanimations/accessing-current-time-after-clearing-css-animation-effect.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=188166

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-07-30  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Adding and adjusting a bunch of expectations
        to cover various ASSERT crashers.

        * platform/wpe/TestExpectations:

2018-07-30  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening.

        Adding two WPE-specific test baselines. Adjusting or adding a few
        additional test expectations.

        * platform/wpe/TestExpectations:
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt: Added.

2018-07-29  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        * platform/wincairo/TestExpectations:

2018-07-29  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Fix the bug when client reject the redirect on WebKitLegacy.
        https://bugs.webkit.org/show_bug.cgi?id=188130

        Reviewed by Darin Adler.

        * platform/wincairo/TestExpectations:
        - xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt: Pass

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

        Animation stops with object-fit:contain on an animated 2d canvas
        https://bugs.webkit.org/show_bug.cgi?id=187840

        Reviewed by Zalan Bujtas.

        * fast/repaint/canvas-object-fit-expected.txt: Added.
        * fast/repaint/canvas-object-fit.html: Added.

2018-07-27  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt: Added.

2018-07-27  Simon Fraser  <simon.fraser@apple.com>

        Adjust the color matrix for the inverse apple-invert-lightness() transformation
        https://bugs.webkit.org/show_bug.cgi?id=188131
        rdar://problem/42673070

        Reviewed by Zalan Bujtas.

        Rebaseline tests that use the filter inversion. Add a new test that does inversion
        for a whole range of colors, to get good coverage of the inversion matrix.

        * editing/style/inverse-color-filter-expected.txt: Added.
        * editing/style/inverse-color-filter.html: Added.
        * editing/style/set-backColor-with-color-filter-expected.txt:
        * editing/style/set-foreColor-with-color-filter-expected.txt:
        * platform/win/TestExpectations:

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

        More unreviewed GTK test gardening

        * TestExpectations:

2018-07-27  David Fenton  <david_fenton@apple.com>

        LayoutTest http/tests/cache/disk-cache/disk-cache-204-status-code.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=162685

        Unreviewed test gardening, marked as flaky on iOS Release.

        * platform/ios-wk2/TestExpectations:

2018-07-27  Simon Fraser  <simon.fraser@apple.com>

        Be more conservative with compositing layer creation when memory is low
        https://bugs.webkit.org/show_bug.cgi?id=187866
        rdar://problem/42366345

        Reviewed by Zalan Bujtas.
        
        * compositing/layer-creation/compositing-policy-expected.txt: Added.
        * compositing/layer-creation/compositing-policy.html: Added.

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

        [WK1] ASSERTION FAILED: renderer().repaintLayoutRects().m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) in WebCore::RenderLayer::updateLayerPositionsAfterScroll
        https://bugs.webkit.org/show_bug.cgi?id=188122
        <rdar://problem/42584790>

        Reviewed by Simon Fraser.

        * platform/mac-wk1/TestExpectations:

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

        Unreviewed GTK test gardening

        * TestExpectations:
        * platform/gtk/TestExpectations:

2018-07-27  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Crash on synchronous request via ResourceHandle.
        https://bugs.webkit.org/show_bug.cgi?id=188033

        Reviewed by Alex Christensen.

        bug/188033 Crash sync xmlhttprequest

        * platform/wincairo/TestExpectations:

2018-07-27  David Fenton  <david_fenton@apple.com>

        Layout Test tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky text failure.
        https://bugs.webkit.org/show_bug.cgi?id=188096

        Unreviewed test gardening, marked test as flaky.

        * platform/mac-wk2/TestExpectations:

2018-07-27  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Set correct source info to ResourceResponse.
        https://bugs.webkit.org/show_bug.cgi?id=188069

        Reviewed by Fujii Hironori.

        * platform/wincairo/TestExpectations:
          - http/tests/cache/disk-cache/disk-cache-302-status-code.html: Pass

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

        [WinCairo] Unreviewed test gardening

        * platform/wincairo/TestExpectations:
        Enable test cases under http/tests/css.

2018-07-26  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.
        Rearrange http test section.

        * platform/wincairo/TestExpectations:

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

        [Fullscreen] Do not create composited layers for renderers unless they are part of the fullscreen subtree.
        https://bugs.webkit.org/show_bug.cgi?id=188087
        <rdar://problem/42632124>

        Reviewed by Simon Fraser.

        * compositing/no-compositing-when-fulll-screen-is-present-expected.txt: Added.
        * compositing/no-compositing-when-fulll-screen-is-present.html: Added.

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

        Unreviewed, rolling out r234281.

        Broke internal builds.

        Reverted changeset:

        "[Datalist] Add button to TextFieldInputs with a datalist"
        https://bugs.webkit.org/show_bug.cgi?id=187741
        https://trac.webkit.org/changeset/234281

2018-07-26  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist] Add button to TextFieldInputs with a datalist
        https://bugs.webkit.org/show_bug.cgi?id=187741

        Reviewed by Tim Horton.

        Added tests to verify appearance of TextFieldInputs with a datalist.

        * fast/forms/datalist/datalist-searchinput-appearance.html: Added.
        * fast/forms/datalist/datalist-textinput-appearance.html: Added.
        * platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.png: Added.
        * platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
        * platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.png: Added.
        * platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.

2018-07-26  Antoine Quint  <graouts@apple.com>

        [Web Animations] Accelerated animations don't respect a positive delay value
        https://bugs.webkit.org/show_bug.cgi?id=186930
        <rdar://problem/41393393>

        Reviewed by Dean Jackson.

        Creating a new test that runs an accelerated animation on a non-positioned element with a small
        positive delay. Prior to this patch, the element would move slightly when the delay elapses but
        wouldn't animate towards the target value. With this patch, it animatea correctly. To check
        that it does animate, we add a cache over the element except for the first 25px which is the area
        within which it might have moved prior to this patch. This way the test only passes if the element
        is fully hidden by the cache.

        * webanimations/accelerated-animation-with-delay-expected.html: Added.
        * webanimations/accelerated-animation-with-delay.html: Added.

2018-07-26  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Mark diskcache test "Failure" for upcoming fix:
        - https://bugs.webkit.org/show_bug.cgi?id=188069.

        * platform/wincairo/TestExpectations:
          - http/tests/cache/disk-cache/disk-cache-302-status-code.html [ Failure ]

2018-07-26  Nan Wang  <n_wang@apple.com>

        AX: nothing returned for various previous text marker APIs from one div/p node to another
        https://bugs.webkit.org/show_bug.cgi?id=188071

        Reviewed by Chris Fleizach.

        * accessibility/mac/text-marker-p-tags-expected.txt: Added.
        * accessibility/mac/text-marker-p-tags.html: Added.
        * accessibility/mac/text-marker-string-for-document-range-expected.txt:

2018-07-26  David Fenton  <david_fenton@apple.com>

        Layout Test webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination.html is timing out on mac Debug
        https://bugs.webkit.org/show_bug.cgi?id=188061

        Unreviewed test gardening.

        Marked test as [ Slow ].

        * platform/mac/TestExpectations:

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

        Unreviewed, update TestExpectations for macOS WK1.

        * platform/mac-wk1/TestExpectations:

2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>

        JSC: Intl API should ignore encoding when parsing BCP 47 language tag from ISO 15897 locale string (passed via LANG)
        https://bugs.webkit.org/show_bug.cgi?id=167991

        Reviewed by Michael Catanzaro.

        Replaced expecting throwing a runtime error to avoid a crash, with testing for good default locale fallback behavior.

        * js/intl-default-locale-expected.txt: Added.
        * js/intl-default-locale.html: Added.
        * js/intl-invalid-locale-crash-expected.txt: Removed.
        * js/intl-invalid-locale-crash.html: Removed.
        * platform/win/TestExpectations:

2018-07-26  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ and WPE gardening after r234252.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/overflow/line-clamp-expected.png:
        * platform/gtk/fast/overflow/line-clamp-expected.txt:
        * platform/wpe/TestExpectations:

2018-07-26  Antoine Quint  <graouts@apple.com>

        [Web Animations] REGRESSION: transition added immediately after element creation doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=187942

        Reviewed by Dean Jackson.

        Creating a new test that runs a transition based on an explicit value being removed in favor
        of the implicit value of a property that can be accelerated. To check that we indeed run the
        animation, we have a cache that covers the entire range of interpolated values except for the
        start and end values and wait 100ms after creating the transition to end the test. Prior to this
        patch, the element would be at its start value and a 1px red line would show to the right of the
        cache. With this patch, the red line is hidden by the cache as it's animated.

        We also add a test that checks that we do not create a composited layer when several transitions,
        with only one being potentially accelerated, target the same element.

        * webanimations/accelerated-transition-by-removing-property-expected.html: Added.
        * webanimations/accelerated-transition-by-removing-property.html: Added.
        * webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.
        * webanimations/partly-accelerated-transition-by-removing-property.html: Added.

2018-07-26  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed WinCairo gardening.

        Add expected file.

        * http/tests/xmlhttprequest/resources/print-referer.php: Added.
        * http/tests/xmlhttprequest/simple-sync-expected.txt: Added.
        * http/tests/xmlhttprequest/simple-sync.html:

2018-07-25  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed WinCairo gardening.

        * httpxmlhttprequest/simple-sync.html: Added.
        * platform/wincairo/TestExpectations:

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

        REGRESSION(r227577) Text on TV & Movies page doesn't wrap properly in iTunes
        https://bugs.webkit.org/show_bug.cgi?id=188018
        <rdar://problem/42517520>

        Reviewed by Dean Jackson.

        * fast/block/lines-clamp-advanced-expected.html: Removed.
        * fast/block/lines-clamp-advanced-rl-expected.html: Removed.
        * fast/block/lines-clamp-advanced-rl.html: Removed.
        * fast/block/lines-clamp-advanced.html: Removed.
        * fast/block/lines-clamp-basic-expected.html: Removed.
        * fast/block/lines-clamp-basic-rl-expected.html: Removed.
        * fast/block/lines-clamp-basic-rl.html: Removed.
        * fast/block/lines-clamp-basic.html: Removed.
        * fast/css/lines-clamp-parsing-expected.txt: Removed.
        * fast/css/lines-clamp-parsing.html: Removed.
        * fast/overflow/line-clamp-with-text-shadow-expected.html: Added.
        * fast/overflow/line-clamp-with-text-shadow.html: Added.
        * platform/ios-simulator-wk2/fast/overflow/line-clamp-expected.txt: Removed.

2018-07-25  David Fenton  <david_fenton@apple.com>

        Layout Test media/audio-concurrent-supported.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=188017

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2018-07-25  David Fenton  <david_fenton@apple.com>

        Unreviewed, rolling out r234187.

        the layout test added with this change is flaky on the bots

        Reverted changeset:

        "Animation stops with object-fit:contain on an animated 2d
        canvas"
        https://bugs.webkit.org/show_bug.cgi?id=187840
        https://trac.webkit.org/changeset/234187

2018-07-25  Andy VanWagoner  <andy@vanwagoner.family>

        [INTL] Intl constructor lengths should be configurable
        https://bugs.webkit.org/show_bug.cgi?id=187960

        Reviewed by Saam Barati.

        Expect DateTimeFormat formatToParts length to be 1.

        * js/intl-datetimeformat-expected.txt:
        * js/script-tests/intl-datetimeformat.js:

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

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

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:
          - webgl/2.0.0/conformance2/glsl3/: skip while we disable WebGL2 support
          - media/video-restricted-invisible-autoplay-allowed-when-visible.html: mark as flaky
          - compositing/backing/backing-store-attachment-fill-forwards-animation.html: mark as failing
          - http/tests/security/canvas-remote-read-remote-video-hls.html: mark as failing
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
          Update for r233935.

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

        REGRESSION (r219757): Accessing response getter of XHR instance from IFRAME sets constructor to Object from the IFRAME
        https://bugs.webkit.org/show_bug.cgi?id=187411
        <rdar://problem/41920593>

        Reviewed by Sam Weinig.

        Add layout test coverage. I have verified locally that it passes in Chromium as well.

        * http/tests/xmlhttprequest/resources/data.json: Added.
        * http/tests/xmlhttprequest/resources/xhr-response-constructor-iframe.html: Added.
        * http/tests/xmlhttprequest/xhr-response-constructor-subframe-expected.txt: Added.
        * http/tests/xmlhttprequest/xhr-response-constructor-subframe.html: Added.

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

        Animation stops with object-fit:contain on an animated 2d canvas
        https://bugs.webkit.org/show_bug.cgi?id=187840

        Reviewed by Zalan Bujtas.

        * fast/repaint/canvas-object-fit-expected.txt: Added.
        * fast/repaint/canvas-object-fit.html: Added.

2018-07-24  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Add support for wss:// websockets
        https://bugs.webkit.org/show_bug.cgi?id=172630

        Reviewed by Fujii Hironori.

        Pass simple-wss.html.

        * platform/wincairo/TestExpectations:

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

        Unreviewed, rolling out r233496 and r233571.

        Likely cause of <rdar://problem/42160890> and
        <rdar://problem/42329658> as ActiveDOMObjects can now be
        constructed / destroyed while we are iterating over them.

        Reverted changesets:

        "Nullptr crash accessing Document in
        GenericEventQueue::dispatchOneEvent()"
        https://bugs.webkit.org/show_bug.cgi?id=187284
        https://trac.webkit.org/changeset/233496

        "REGRESSION(r233496): macOS Sierra hits debug assertions in
        TrackListBase::suspend"
        https://bugs.webkit.org/show_bug.cgi?id=187378
        https://trac.webkit.org/changeset/233571

2018-07-24  Thibault Saunier  <tsaunier@igalia.com>

        Unreviewed WPE/GTK gardening.

        Disabled newly added webrtc tests that depend on implementing WebAudioSourceProviderGStreamer.

        Namely:
          webrtc/peer-connection-createMediaStreamDestination.html

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

2018-07-24  Ryan Haddad  <ryanhaddad@apple.com>

        Mark http/tests/workers/service/serviceworkerclients-matchAll.https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183705

        Unreviewed test gardening.

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

2018-07-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] Crash when setting an animation style on an existing animation that had its effect set to null
        https://bugs.webkit.org/show_bug.cgi?id=187953

        Reviewed by Dean Jackson.

        Add a new test that sets an animation property via style after setting the initial animation's effect to null.

        * webanimations/setting-css-animation-timing-property-via-style-after-clearing-effect-expected.txt: Added.
        * webanimations/setting-css-animation-timing-property-via-style-after-clearing-effect.html: Added.

2018-07-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] Crash when setting "animation: none" after clearing an animation's effect
        https://bugs.webkit.org/show_bug.cgi?id=187952

        Reviewed by Dean Jackson.

        Add a new test that checks that setting "animation: none" on an element that previously had a valid
        CSS animation and for which the effect was set to null does not crash.

        * webanimations/setting-css-animation-none-after-clearing-effect-expected.txt: Added.
        * webanimations/setting-css-animation-none-after-clearing-effect.html: Added.

2018-07-24  Antoine Quint  <graouts@apple.com>

        [Web Animations] Crash accessing CSSAnimation::bindingsCurrentTime when effect has been set to null
        https://bugs.webkit.org/show_bug.cgi?id=187950
        <rdar://problem/42515747>

        Reviewed by Dean Jackson.

        Add a new test where we check that the current time of a CSSAnimation can be accessed after setting its effect to null.

        * webanimations/accessing-current-time-after-clearing-css-animation-effect-expected.txt: Added.
        * webanimations/accessing-current-time-after-clearing-css-animation-effect.html: Added.

2018-07-24  Daniel Bates  <dabates@apple.com>

        Cannot view PDF's on my.gov.au: "Refused to load https://my.gov.au/attachment/viewAttachment because it
        appears in neither the object-src directive nor the default-src directive of the Content Security Policy"
        https://bugs.webkit.org/show_bug.cgi?id=187870
        <rdar://problem/41190880>

        Reviewed by Dean Jackson.

        Add new tests and fix up the existing test http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html
        so that still tests a scenario where a same-origin plugin document loaded in a child window is blocked from
        loading its plugin now that that "object-src: 'none'" is no longer inherited by the plugin document.

        * http/tests/plugins/resources/plugin-document-alert-and-notify-done.pl:
        * http/tests/security/contentSecurityPolicy/resources/checkDidSameOriginChildWindowLoad.js: Added.
        (checkDidSameOriginChildWindowLoadAndNotifyDone):
        (checkDidLoad):
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-allowed-in-child-window-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-allowed-in-child-window.html: Added.
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-expected.txt:
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.php: Added.
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html:
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-with-csp-blocked-in-child-window-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/same-origin-plugin-document-with-csp-blocked-in-child-window.html: Added.
        * platform/ios/TestExpectations: Skip the included tests as we do not support plugins on iOS.
        * platform/win/TestExpectations: Skip the included tests as plugins do not seem to work on Windows. We currently skip many
        (if not all) plugin tests on Windows despite <rdar://problem/5074411> being marked as Closed (why?). 

2018-07-24  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening.

        Adding WPE-specific baselines for WebGL2 conformance tests that are
        already passing on this port.

        * platform/wpe/webgl: Added.
        * platform/wpe/webgl/2.0.0: Added.
        * platform/wpe/webgl/2.0.0/conformance2: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt: Added.

2018-07-24  Thibault Saunier  <tsaunier@igalia.com>

        [WPE][GTK] Implement PeerConnection API on top of libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=186932

        Reviewed by Philippe Normand.

        * platform/gtk/TestExpectations: Enable webrtc tests.

2018-07-24  Dirk Schulze  <krit@webkit.org>

        [css-masking] Black backdrop on -webkit-clip-path on SVG root
        https://bugs.webkit.org/show_bug.cgi?id=187880

        Avoid duplicated clip in RenderLayer.

        Reviewed by Simon Fraser.

        * svg/clip-path/clip-path-on-svg-005-expected.svg: Added.
        * svg/clip-path/clip-path-on-svg-005.svg: Added.

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

        The test webanimations/accessing-current-time-after-finished-css-animation-target-removal.html is failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=187943

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-07-23  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-grid] Add support for calc() in gutter properties
        https://bugs.webkit.org/show_bug.cgi?id=187902

        Reviewed by Simon Fraser.

        Two tests are now passing thanks to this change.

        * TestExpectations:

2018-07-23  Andy VanWagoner  <andy@vanwagoner.family>

        [INTL] Language tags are not canonicalized
        https://bugs.webkit.org/show_bug.cgi?id=185836

        Reviewed by Keith Miller.

        Use gregory instead of gregorian, matching test262/intl402 and other engines.
        Remove tests for algorithmic numbering systems. Add NumberFormat numbering system tests.

        * js/intl-datetimeformat-expected.txt:
        * js/intl-numberformat-expected.txt:
        * js/script-tests/intl-datetimeformat.js:
        * js/script-tests/intl-numberformat.js:
        (string_appeared_here):

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

        CrashTracer: com.apple.WebKit.Storage at WebCore: WebCore::encodeKey
        https://bugs.webkit.org/show_bug.cgi?id=187927
        <rdar://problem/42516426>

        Reviewed by Chris Dumez.

        Add a new test case in existing test file to cover the crash case and update the expecation accordingly.

        * storage/indexeddb/index-multientry-expected.txt:
        * storage/indexeddb/index-multientry-private-expected.txt:
        * storage/indexeddb/resources/index-multientry.js:
        (addData):

2018-07-23  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Enable Secure WebSocket tests.

        * platform/wincairo/TestExpectations:

2018-07-23  Justin Fan  <justin_fan@apple.com>

        Enable WebGL2 glsl3 tests with expected FAIL results
        https://bugs.webkit.org/show_bug.cgi?id=187929
        <rdar://problem/42516498>

        Reviewed by Dean Jackson.

        Before enabling glsl ES 3 for WebGL2 work, enable corresponding webgl2 conformance tests.

        * TestExpectations:
        * webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:

2018-07-23  Nan Wang  <n_wang@apple.com>

        AX: Press tab to highlight items on a webpage is not working with voiceover enabled
        https://bugs.webkit.org/show_bug.cgi?id=187824

        Reviewed by Zalan Bujtas.

        * accessibility/mac/tab-focus-post-notification-expected.txt: Added.
        * accessibility/mac/tab-focus-post-notification.html: Added.

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

        [Web Animations] Querying the current time of a finished CSSAnimation after removing its target leads to a crash
        https://bugs.webkit.org/show_bug.cgi?id=187906

        Reviewed by Dean Jackson.

        Add a new test that checks the behavior of a CSSAnimation instance after its completion and removal of its target.

        * webanimations/accessing-current-time-after-finished-css-animation-target-removal-expected.txt: Added.
        * webanimations/accessing-current-time-after-finished-css-animation-target-removal.html: Added.

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

        REGRESSION(PSON?): [ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=183705
        <rdar://problem/42440606>

        Unreviewed, attempting a better fix for http/tests/workers/service/serviceworkerclients-matchAll.https.html.
        If it fixes the flakiness I'll do the same for the 2 page cache tests.

        * http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
        (waitFor):
        (matchAllPromise2):
        (async.doTestAfterMessage):
        (matchAllPromise1): Deleted.
        (then): Deleted.
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

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

        Layout test webanimations/empty-keyframes-crash.html is failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=187912

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Skip crypto tests on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=165090

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Mark http/tests/security/bypassing-cors-checks-for-extension-urls.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=187658

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Mark three service worker clients tests as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183705

        Unreviewed test gardening.

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

2018-07-22  Dean Jackson  <dino@apple.com>

        fullscreen env() variables should have initial values
        https://bugs.webkit.org/show_bug.cgi?id=187897
        <rdar://problem/42485682>

        Reviewed by Sam Weinig.

        * fullscreen/fullscreen-env-initial-expected.html: Added.
        * fullscreen/fullscreen-env-initial.html: Added.

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

        Resource Load Statistics: Enable basic functionality in experimental debug mode
        https://bugs.webkit.org/show_bug.cgi?id=187835
        <rdar://problem/42408590>

        Reviewed by Chris Dumez.

        This patch makes the experimental ITP Debug Mode feature work, at least
        to a basic level.

        * http/tests/resourceLoadStatistics/enable-debug-mode-expected.txt: Added.
        * http/tests/resourceLoadStatistics/enable-debug-mode.html: Added.
        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-expected.txt: Added.
        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode.html: Added.

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

        [ MacOS iOS ] Layout Test storage/indexeddb/modern/opendatabase-after-storage-crash.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187648
        <rdar://problem/42405935>

        Reviewed by Brady Eidson.

        Make test wait until requests finish to get correct result, because indexedDB operations are asynchronous.

        * storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt:
        * storage/indexeddb/modern/opendatabase-after-storage-crash.html:

2018-07-19  Simon Fraser  <simon.fraser@apple.com>

        Remove completed animations from GraphicsLayer, thus avoiding excessive backing store allocation
        https://bugs.webkit.org/show_bug.cgi?id=187844
        rdar://problem/40387294

        Reviewed by Dean Jackson.

        * compositing/backing/backing-store-attachment-fill-forwards-animation-expected.txt: Added.
        * compositing/backing/backing-store-attachment-fill-forwards-animation.html: Added.

2018-07-20  Ryosuke Niwa  <rniwa@apple.com>

        Picking a color from the color panel for typing attributes needs to inverse transform through color-filter
        https://bugs.webkit.org/show_bug.cgi?id=187846

        Reviewed by Simon Fraser.

        Added tests to make sure foreground or background colors specified in execCommand don't get inverted.

        Fixed the test which was asserting that textInputController.attributedSubstringFromRange doesn't invert the color
        since that's exactly what WebKit embedders uses to compute the style for color pickers.

        Added new tests for copy & paste case using textInputController.legacyAttributedString.

        * editing/execCommand/set-backColor-with-color-filter-from-scripts-expected.txt: Added.
        * editing/execCommand/set-backColor-with-color-filter-from-scripts.html: Added.
        * editing/execCommand/set-foreColor-with-color-filter-from-scripts-expected.txt: Added.
        * editing/execCommand/set-foreColor-with-color-filter-from-scripts.html: Added.
        * editing/mac/attributed-string/attrib-string-range-with-color-filter-expected.txt:
        * editing/mac/attributed-string/attrib-string-range-with-color-filter.html: This test uses attributedSubstringFromRange,
        which implemented using editingAttributedStringFromRange in WebCore. Since this is exactly what WebKit embedders uses
        to compute the current style of the selected text, we need to invert the color here. This API's main clinet is input methods
        so this shouldn't affect other editing operations, in particular, copy and paste, which uses HTMLConverter.
        * editing/mac/attributed-string/attribute-string-for-copy-with-color-filter-expected.txt: Added.
        * editing/mac/attributed-string/attribute-string-for-copy-with-color-filter.html: Added. Make sure the attributed string
        generated for copy & paste does not invert foreground or background colors via textInputController.legacyAttributedString.
        This is testing HTMLConverter, not editingAttributedStringFromRange, used by WebKit embedders and input methods.
        * editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt:
        * editing/mac/attributed-string/attributed-string-for-typing-with-color-filter.html: Added background color in the test.
        * editing/style/set-backColor-with-color-filter-expected.txt: Added.
        * editing/style/set-backColor-with-color-filter.html: Added.
        * editing/style/set-foreColor-with-color-filter-expected.txt: Renamed from exec-command-foreColor-with-color-filter-expected.txt.
        * editing/style/set-foreColor-with-color-filter.html: Renamed from exec-command-foreColor-with-color-filter.html.
        Updated the test to use testRunner.execCommand which uses CommandFromMenuOrKeyBinding in applyCommandToFrame since we're
        trying to test the code path taken by WebKit embedders and font panel here.

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

        REGRESSION(PSON?): [ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=183705

        Reviewed by Youenn Fablet.

        At the beginning of the tests, wait for the client count to reach the expected value instead of
        expecting it to be the right value right away. Clients unregister themselves asynchronously so
        it is flaky otherwise.

        * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
        * http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
        * http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
        (async.doTestAfterMessage):

2018-07-20  Basuke Suzuki  <Basuke.Suzuki@sony.com>

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

        Unreviewed test gardening.

        Enable WebSocket tests.

        * platform/wincairo/TestExpectations:

2018-07-19  Jer Noble  <jer.noble@apple.com>

        HLS resources with remote subresources will not taint canvasses.
        https://bugs.webkit.org/show_bug.cgi?id=187731
        <rdar://problem/42290703>

        Reviewed by Brady Eidson.

        * http/tests/media/resources/hls/test-vod-localhost.m3u8: Added.
        * http/tests/security/canvas-remote-read-remote-video-hls-expected.txt: Added.
        * http/tests/security/canvas-remote-read-remote-video-hls.html: Added.

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

        Rebaseline editing/mac/attributed-string/attributed-string-for-typing-with-color-filter.html for Sierra.

        Unreviewed test gardening.

        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt: Added.

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

        Import new WPT tests for custom elements
        https://bugs.webkit.org/show_bug.cgi?id=187806

        Reviewed by Javier Fernandez.

        Some tests crashing or timing out are skipped. Also, one test depending on the availability
        of the @capture attribute of the HTMLInputElement element has a specific expectation on iOS.

        * TestExpectations: Skip some tests crashing or timing out.
        * platform/ios/imported/w3c/web-platform-tests/custom-elements/reactions/HTMLInputElement-expected.txt: Added.

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

        Flaky crash in AnimationTimeline::cancelOrRemoveDeclarativeAnimation
        https://bugs.webkit.org/show_bug.cgi?id=187530
        <rdar://problem/42095186>

        Reviewed by Dean Jackson.

        Adjust an existing test which assumes an animation might be running when it's not really, so we test the animation is
        not running using an alternate method.

        * animations/keyframes-dynamic-expected.txt:
        * animations/keyframes-dynamic.html:

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

        Mark storage/indexeddb/modern/opendatabase-after-storage-crash.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=187648

        Unreviewed test gardening.

        * platform/wk2/TestExpectations:

2018-07-19  Simon Fraser  <simon.fraser@apple.com>

        Fix the test.

        * editing/mac/attributed-string/attributed-string-for-typing-with-color-filter.html:

2018-07-18  Simon Fraser  <simon.fraser@apple.com>

        Setting foreground color when editing should take color-filter into account, and report the correct foreground color for collapsed selections
        https://bugs.webkit.org/show_bug.cgi?id=187778

        Reviewed by Ryosuke Niwa.

        * editing/mac/attributed-string/attrib-string-colors-with-color-filter-expected.txt: Added.
        * editing/mac/attributed-string/attrib-string-colors-with-color-filter.html: Added.
        * editing/mac/attributed-string/attrib-string-range-with-color-filter-expected.txt: Added.
        * editing/mac/attributed-string/attrib-string-range-with-color-filter.html: Added.
        * editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-for-typing-with-color-filter.html: Added.
        * editing/style/exec-command-foreColor-with-color-filter-expected.txt: Added.
        * editing/style/exec-command-foreColor-with-color-filter.html: Added.

2018-07-19  Truitt Savell  <tsavell@apple.com>

        [ win-ews ] http/tests/preload/onload_event.html is flakey crash on win-ews
        https://bugs.webkit.org/show_bug.cgi?id=187809

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Fix message of NotSupportedError exception thrown during custom element creation
        https://bugs.webkit.org/show_bug.cgi?id=187757

        Reviewed by Yusuke Suzuki.

        * fast/custom-elements/exceptions-for-synchronous-custom-element-creation-expected.txt: Added.
        * fast/custom-elements/exceptions-for-synchronous-custom-element-creation.html: Added.

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

        Rebaseline fast/css/apple-system-colors.html.

        Unreviewed test gardening.

        * platform/mac/fast/css/apple-system-colors-expected.txt:

2018-07-18  Antoine Quint  <graouts@apple.com>

        [Web Animations] Interpolation between font-styles with a keyword value should be discrete
        https://bugs.webkit.org/show_bug.cgi?id=187722

        Reviewed by Myles Maxfield.

        Mark some WPT progressions.

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

2018-07-18  Jer Noble  <jer.noble@apple.com>

        PiP from Element Fullscreen should match AVKit's behavior
        https://bugs.webkit.org/show_bug.cgi?id=187623

        Reviewed by Jon Lee.

        * TestExpectations:
        * media/fullscreen-video-going-into-pip-expected.txt: Removed.
        * media/fullscreen-video-going-into-pip.html: Removed.
        * media/video-contained-in-fullscreen-element-going-into-pip-expected.txt: Removed.
        * media/video-contained-in-fullscreen-element-going-into-pip.html: Removed.
        * platform/mac-wk2/TestExpectations:

2018-07-18  Truitt Savell  <tsavell@apple.com>

       [ WK2 ] Layout Test http/wpt/service-workers/update-service-worker.https.html is a flaky Timeout
        https://bugs.webkit.org/show_bug.cgi?id=187766

        Unreviewed test gardening.

        * platform/wk2/TestExpectations:

2018-07-18  Alicia Boya García  <aboya@igalia.com>

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

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

2018-07-18  Simon Fraser  <simon.fraser@apple.com>

        Fix the parsing of colors in attributed string tests, and make it possible to dump the typing attributes
        https://bugs.webkit.org/show_bug.cgi?id=187747

        Reviewed by Ryosuke Niwa.
        
        Fix the parsing of color properties in dump-attributed-string.js, and treat NSStrokeColor as
        a color. Rebase all the affected tests. Give macOS Sierra its own expectations with the legacy NSCustomColorSpace.
        
        Add attributed-string-for-typing.html which tests typingAttributes.

        * editing/mac/attributed-string/anchor-element-expected.txt:
        * editing/mac/attributed-string/attributed-string-for-typing-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-for-typing.html: Added.
        * editing/mac/attributed-string/basic-expected.txt:
        * editing/mac/attributed-string/comment-cdata-section-expected.txt:
        * editing/mac/attributed-string/font-size-expected.txt:
        * editing/mac/attributed-string/font-style-variant-effect-expected.txt:
        * editing/mac/attributed-string/font-weight-expected.txt:
        * editing/mac/attributed-string/letter-spacing-expected.txt:
        * editing/mac/attributed-string/resources/dump-attributed-string.js:
        (dumpAttributedString):
        (formatNonParagraphAttributeValue):
        (parseNSColorDescription):
        (window.onload):
        (serializeAttributedString.log): Deleted.
        (serializeAttributedString.): Deleted.
        (serializeAttributedString): Deleted.
        * editing/mac/attributed-string/text-decorations-expected.txt:
        * editing/mac/attributed-string/vertical-align-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/anchor-element-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-expected.txt: Added.
        * platform/mac-sierra/editing/mac/attributed-string/basic-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/comment-cdata-section-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/font-size-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/font-style-variant-effect-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/font-weight-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/letter-spacing-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/text-decorations-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/vertical-align-expected.txt:
        * platform/mac/editing/mac/attributed-string/anchor-element-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/basic-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/comment-cdata-section-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/font-size-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/font-weight-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/letter-spacing-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/text-decorations-expected.txt: Removed.
        * platform/mac/editing/mac/attributed-string/vertical-align-expected.txt: Removed.

2018-07-17  Antoine Quint  <graouts@apple.com>

        Ensure timingFunctionForKeyframeAtIndex() can be used from setAnimatedPropertiesInStyle().
        https://bugs.webkit.org/show_bug.cgi?id=187637
        <rdar://problem/42157915>

        Reviewed by Dean Jackson.

        Add a new test that would crash prior to this change.

        * webanimations/empty-keyframes-crash-expected.txt: Added.
        * webanimations/empty-keyframes-crash.html: Added.

2018-07-17  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.html for Sierra after r233898.

        Unreviewed test gardening.

        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker-expected.txt: Added.

2018-07-17  Truitt Savell  <tsavell@apple.com>

        Layout Test compositing/iframes/display-none-subframe.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=186406

        Unreviewed test gardening

        * platform/wk2/TestExpectations:

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

        Unreviewed, test gardening after r233898.

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

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

        [WebCrypto] Crypto operations should copy their parameters before hoping to another thread
        https://bugs.webkit.org/show_bug.cgi?id=187501
        <rdar://problem/41438160>

        Reviewed by Youenn Fablet.

        crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html is an exception of this series of tests as
        it only aims to test the correct behavoir of suggested algorithms. This patch aslo does some test
        gardening.

        * TestExpectations:
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key-expected.txt: Added.
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html: Added.
        * http/wpt/crypto/aes-cbc-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-cbc-crash.any.html: Added.
        * http/wpt/crypto/aes-cbc-crash.any.js: Added.
        * http/wpt/crypto/aes-cbc-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-cbc-crash.any.worker.html: Added.
        * http/wpt/crypto/aes-ctr-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-ctr-crash.any.html: Added.
        * http/wpt/crypto/aes-ctr-crash.any.js: Added.
        * http/wpt/crypto/aes-ctr-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-ctr-crash.any.worker.html: Added.
        * http/wpt/crypto/aes-gcm-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-gcm-crash.any.html: Added.
        * http/wpt/crypto/aes-gcm-crash.any.js: Added.
        * http/wpt/crypto/aes-gcm-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-gcm-crash.any.worker.html: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.html: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.js: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker.html: Added.
        * http/wpt/crypto/ecdsa-crash.any-expected.txt: Added.
        * http/wpt/crypto/ecdsa-crash.any.html: Added.
        * http/wpt/crypto/ecdsa-crash.any.js: Added.
        * http/wpt/crypto/ecdsa-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/ecdsa-crash.any.worker.html: Added.
        * http/wpt/crypto/hkdf-crash.any-expected.txt: Added.
        * http/wpt/crypto/hkdf-crash.any.html: Added.
        * http/wpt/crypto/hkdf-crash.any.js: Added.
        * http/wpt/crypto/hkdf-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/hkdf-crash.any.worker.html: Added.
        * http/wpt/crypto/pbkdf2-crash.any-expected.txt: Added.
        * http/wpt/crypto/pbkdf2-crash.any.html: Added.
        * http/wpt/crypto/pbkdf2-crash.any.js: Added.
        * http/wpt/crypto/pbkdf2-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/pbkdf2-crash.any.worker.html: Added.
        * http/wpt/crypto/resources/common.js: Added.
        * http/wpt/crypto/rsa-oaep-crash.any-expected.txt: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.html: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.js: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.worker.html: Added.
        * http/wpt/crypto/rsa-pss-crash.any-expected.txt: Added.
        * http/wpt/crypto/rsa-pss-crash.any.html: Added.
        * http/wpt/crypto/rsa-pss-crash.any.js: Added.
        * http/wpt/crypto/rsa-pss-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/rsa-pss-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.html: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.js: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.js: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker-expected.txt: Added.

2018-07-17  Ryan Haddad  <ryanhaddad@apple.com>

        Unskip LayoutTest imported/w3c/web-platform-tests/css/css-display/display-contents-first-letter-002.html.
        https://bugs.webkit.org/show_bug.cgi?id=186901

        Unreviewed test gardening.

        * TestExpectations:

2018-07-17  Antoine Quint  <graouts@apple.com>

        [Web Animations] Interpolation between lengths with an "auto" value should be discrete
        https://bugs.webkit.org/show_bug.cgi?id=187721

        Reviewed by Dean Jackson.

        Make two more tests opt into the new animation engine since they pass and they're not in the legacy-animation-engine directory.
        A third test now has some logging due to transitions not actually running, which is expected and correct.

        * fast/animation/height-auto-transition-computed-value.html:
        * imported/blink/transitions/transition-not-interpolable.html:
        * legacy-animation-engine/transitions/transition-to-from-auto-expected.txt:

2018-07-17  John Wilander  <wilander@apple.com>

        Add completion handlers to TestRunner functions setStatisticsLastSeen(), setStatisticsPrevalentResource(), setStatisticsVeryPrevalentResource(), setStatisticsHasHadUserInteraction(), and setStatisticsHasHadNonRecentUserInteraction()
        https://bugs.webkit.org/show_bug.cgi?id=187710
        <rdar://problem/42252757>

        Reviewed by Chris Dumez.

        These changes are to update all test cases that make use of
        TestRunner functions:
        - setStatisticsLastSeen(),
        - setStatisticsPrevalentResource(),
        - setStatisticsVeryPrevalentResource(),
        - setStatisticsHasHadUserInteraction(), and
        - setStatisticsHasHadNonRecentUserInteraction().

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html:
        * 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.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.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-redirect-to-prevalent.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.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html:
        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html:
        * http/tests/resourceLoadStatistics/grandfathering.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.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-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
        * 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-timeout.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/prune-statistics.html:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests.html:
        * http/tests/resourceLoadStatistics/telemetry-generation.html:
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html:

2018-07-17  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline displaylists/extent-includes-* tests for mac-wk1 after r233869.
        https://bugs.webkit.org/show_bug.cgi?id=187574

        Unreviewed test gardening.

        * platform/mac-wk1/displaylists/extent-includes-shadow-expected.txt:
        * platform/mac-wk1/displaylists/extent-includes-transforms-expected.txt:

2018-07-17  Dirk Schulze  <krit@webkit.org>

        [clip-path] Implement support for margin-box as reference box and box shape
        https://bugs.webkit.org/show_bug.cgi?id=127984

        Reviewed by Simon Fraser.

        Compute the margin-box rectangle as needed for clip-path based on the actual
        computed values for the margin-top, *-left, *-bottom, *-right properties.

        * css3/masking/clip-path-circle-margin-box-expected.html: Added.
        * css3/masking/clip-path-margin-box-expected.html: Added.
        * css3/masking/clip-path-margin-box.html: Added.
        * platform/mac/css3/masking/clip-path-circle-margin-box-expected.png: Removed.
        * platform/mac/css3/masking/clip-path-circle-margin-box-expected.txt: Removed.

2018-07-17  Javier Fernandez  <jfernandez@igalia.com>

        Delete content of a single cell table should not delete the whole table
        https://bugs.webkit.org/show_bug.cgi?id=173117

        Reviewed by Ryosuke Niwa.

        Tests to verify that single-cell tables are not deleted when their
        last character is deleted, unless it was previously selected by
        the user.

        Changes two expected files to adapt them to the new logic.

        * LayoutTests/editing/deleting/deleting-relative-positioned-special-element-expected.txt: The paragraph is not deleted, even if it's empty. The paragraphs above are not merged, which was the goal of the test.
        * editing/deleting/delete-last-char-in-table-expected.txt: The table is not removed, even if it's empty. The formatted elements are deleted, which was the goal of the test.
        * editing/deleting/backspace-delete-last-char-in-table-expected.txt: Added.
        * editing/deleting/backspace-delete-last-char-in-table.html: Added.
        * editing/deleting/forward-delete-last-char-in-table-expected.txt: Added.
        * editing/deleting/forward-delete-last-char-in-table.html: Added.
        * editing/deleting/select-and-delete-last-char-in-table-expected.txt: Added.
        * editing/deleting/select-and-delete-last-char-in-table.html: Added.

2018-07-16  Simon Fraser  <simon.fraser@apple.com>

        Roll out r233873 and r233875 since they caused 8 new layout test crashes.

        * TestExpectations:
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key-expected.txt: Removed.
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html: Removed.
        * http/wpt/crypto/aes-cbc-crash.any-expected.txt: Removed.
        * http/wpt/crypto/aes-cbc-crash.any.html: Removed.
        * http/wpt/crypto/aes-cbc-crash.any.js: Removed.
        * http/wpt/crypto/aes-cbc-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/aes-cbc-crash.any.worker.html: Removed.
        * http/wpt/crypto/aes-ctr-crash.any-expected.txt: Removed.
        * http/wpt/crypto/aes-ctr-crash.any.html: Removed.
        * http/wpt/crypto/aes-ctr-crash.any.js: Removed.
        * http/wpt/crypto/aes-ctr-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/aes-ctr-crash.any.worker.html: Removed.
        * http/wpt/crypto/aes-gcm-crash.any-expected.txt: Removed.
        * http/wpt/crypto/aes-gcm-crash.any.html: Removed.
        * http/wpt/crypto/aes-gcm-crash.any.js: Removed.
        * http/wpt/crypto/aes-gcm-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/aes-gcm-crash.any.worker.html: Removed.
        * http/wpt/crypto/derive-hmac-key-crash.any-expected.txt: Removed.
        * http/wpt/crypto/derive-hmac-key-crash.any.html: Removed.
        * http/wpt/crypto/derive-hmac-key-crash.any.js: Removed.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker.html: Removed.
        * http/wpt/crypto/ecdsa-crash.any-expected.txt: Removed.
        * http/wpt/crypto/ecdsa-crash.any.html: Removed.
        * http/wpt/crypto/ecdsa-crash.any.js: Removed.
        * http/wpt/crypto/ecdsa-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/ecdsa-crash.any.worker.html: Removed.
        * http/wpt/crypto/hkdf-crash.any-expected.txt: Removed.
        * http/wpt/crypto/hkdf-crash.any.html: Removed.
        * http/wpt/crypto/hkdf-crash.any.js: Removed.
        * http/wpt/crypto/hkdf-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/hkdf-crash.any.worker.html: Removed.
        * http/wpt/crypto/pbkdf2-crash.any-expected.txt: Removed.
        * http/wpt/crypto/pbkdf2-crash.any.html: Removed.
        * http/wpt/crypto/pbkdf2-crash.any.js: Removed.
        * http/wpt/crypto/pbkdf2-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/pbkdf2-crash.any.worker.html: Removed.
        * http/wpt/crypto/resources/common.js: Removed.
        * http/wpt/crypto/rsa-oaep-crash.any-expected.txt: Removed.
        * http/wpt/crypto/rsa-oaep-crash.any.html: Removed.
        * http/wpt/crypto/rsa-oaep-crash.any.js: Removed.
        * http/wpt/crypto/rsa-oaep-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/rsa-oaep-crash.any.worker.html: Removed.
        * http/wpt/crypto/rsa-pss-crash.any-expected.txt: Removed.
        * http/wpt/crypto/rsa-pss-crash.any.html: Removed.
        * http/wpt/crypto/rsa-pss-crash.any.js: Removed.
        * http/wpt/crypto/rsa-pss-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/rsa-pss-crash.any.worker.html: Removed.
        * http/wpt/crypto/unwrap-ec-key-crash.any-expected.txt: Removed.
        * http/wpt/crypto/unwrap-ec-key-crash.any.html: Removed.
        * http/wpt/crypto/unwrap-ec-key-crash.any.js: Removed.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker.html: Removed.
        * http/wpt/crypto/unwrap-rsa-key-crash.any-expected.txt: Removed.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.html: Removed.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.js: Removed.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker-expected.txt: Removed.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker.html: Removed.

2018-07-16  Ryosuke Niwa  <rniwa@webkit.org>

        [ WK2 ] Layout Test editing/selection/update-selection-by-style-change.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187649

        Reviewed by Wenson Hsieh.

        Force update the selection before ending the test.

        * editing/selection/update-selection-by-style-change.html:

2018-07-16  Simon Fraser  <simon.fraser@apple.com>

        Add color filter for transforming colors in Dark Mode
        https://bugs.webkit.org/show_bug.cgi?id=187717
        rdar://problem/41146650

        Reviewed by Dean Jackson.

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

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

        [WebCrypto] Crypto operations should copy their parameters before hoping to another thread
        https://bugs.webkit.org/show_bug.cgi?id=187501
        <rdar://problem/41438160>

        Reviewed by Youenn Fablet.

        crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html is an exception of this series of tests as
        it only aims to test the correct behavoir of suggested algorithms. This patch aslo does some test
        gardening.

        * TestExpectations:
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key-expected.txt: Added.
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html: Added.
        * http/wpt/crypto/aes-cbc-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-cbc-crash.any.html: Added.
        * http/wpt/crypto/aes-cbc-crash.any.js: Added.
        * http/wpt/crypto/aes-cbc-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-cbc-crash.any.worker.html: Added.
        * http/wpt/crypto/aes-ctr-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-ctr-crash.any.html: Added.
        * http/wpt/crypto/aes-ctr-crash.any.js: Added.
        * http/wpt/crypto/aes-ctr-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-ctr-crash.any.worker.html: Added.
        * http/wpt/crypto/aes-gcm-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-gcm-crash.any.html: Added.
        * http/wpt/crypto/aes-gcm-crash.any.js: Added.
        * http/wpt/crypto/aes-gcm-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-gcm-crash.any.worker.html: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.html: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.js: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker.html: Added.
        * http/wpt/crypto/ecdsa-crash.any-expected.txt: Added.
        * http/wpt/crypto/ecdsa-crash.any.html: Added.
        * http/wpt/crypto/ecdsa-crash.any.js: Added.
        * http/wpt/crypto/ecdsa-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/ecdsa-crash.any.worker.html: Added.
        * http/wpt/crypto/hkdf-crash.any-expected.txt: Added.
        * http/wpt/crypto/hkdf-crash.any.html: Added.
        * http/wpt/crypto/hkdf-crash.any.js: Added.
        * http/wpt/crypto/hkdf-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/hkdf-crash.any.worker.html: Added.
        * http/wpt/crypto/pbkdf2-crash.any-expected.txt: Added.
        * http/wpt/crypto/pbkdf2-crash.any.html: Added.
        * http/wpt/crypto/pbkdf2-crash.any.js: Added.
        * http/wpt/crypto/pbkdf2-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/pbkdf2-crash.any.worker.html: Added.
        * http/wpt/crypto/resources/common.js: Added.
        * http/wpt/crypto/rsa-oaep-crash.any-expected.txt: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.html: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.js: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.worker.html: Added.
        * http/wpt/crypto/rsa-pss-crash.any-expected.txt: Added.
        * http/wpt/crypto/rsa-pss-crash.any.html: Added.
        * http/wpt/crypto/rsa-pss-crash.any.js: Added.
        * http/wpt/crypto/rsa-pss-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/rsa-pss-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.html: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.js: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.js: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker-expected.txt: Added.

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

        [iOS] When bringing MobileSafari to the foreground, images, which are pending decoding, won't be drawn into the immediate-paint transaction
        https://bugs.webkit.org/show_bug.cgi?id=187375

        Reviewed by Simon Fraser.

        The Internals API paintControlTints() is now renamed to invalidateControlTints()
        to be consistent with the new enum values and with the new name of the
        C++ function.

        * fast/css/webkit-mask-crash-fieldset-legend.html:
        * fast/css/webkit-mask-crash-figure.html:
        * fast/css/webkit-mask-crash-table.html:
        * fast/css/webkit-mask-crash-td-2.html:
        * fast/css/webkit-mask-crash-td.html:

2018-07-16  Truitt Savell  <tsavell@apple.com>

        [ MacOS WK1 Debug ] Layout Test svg/custom/linking-uri-01-b.svg is flakey
        https://bugs.webkit.org/show_bug.cgi?id=187711

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-07-16  David Fenton  <david_fenton@apple.com>

        Unreviewed, rolling out r233867.

        caused build failures on High Sierra, Sierra and iOS

        Reverted changeset:

        "[WebCrypto] Crypto operations should copy their parameters
        before hoping to another thread"
        https://bugs.webkit.org/show_bug.cgi?id=187501
        https://trac.webkit.org/changeset/233867

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

        [WebCrypto] Crypto operations should copy their parameters before hoping to another thread
        https://bugs.webkit.org/show_bug.cgi?id=187501
        <rdar://problem/41438160>

        Reviewed by Youenn Fablet.

        crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html is an exception of this series of tests as
        it only aims to test the correct behavoir of suggested algorithms. This patch aslo does some test
        gardening.

        * TestExpectations:
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key-expected.txt: Added.
        * crypto/subtle/aes-gcm-import-key-unwrap-ec-raw-key.html: Added.
        * http/wpt/crypto/aes-cbc-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-cbc-crash.any.html: Added.
        * http/wpt/crypto/aes-cbc-crash.any.js: Added.
        * http/wpt/crypto/aes-cbc-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-cbc-crash.any.worker.html: Added.
        * http/wpt/crypto/aes-ctr-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-ctr-crash.any.html: Added.
        * http/wpt/crypto/aes-ctr-crash.any.js: Added.
        * http/wpt/crypto/aes-ctr-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-ctr-crash.any.worker.html: Added.
        * http/wpt/crypto/aes-gcm-crash.any-expected.txt: Added.
        * http/wpt/crypto/aes-gcm-crash.any.html: Added.
        * http/wpt/crypto/aes-gcm-crash.any.js: Added.
        * http/wpt/crypto/aes-gcm-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/aes-gcm-crash.any.worker.html: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.html: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.js: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/derive-hmac-key-crash.any.worker.html: Added.
        * http/wpt/crypto/ecdsa-crash.any-expected.txt: Added.
        * http/wpt/crypto/ecdsa-crash.any.html: Added.
        * http/wpt/crypto/ecdsa-crash.any.js: Added.
        * http/wpt/crypto/ecdsa-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/ecdsa-crash.any.worker.html: Added.
        * http/wpt/crypto/hkdf-crash.any-expected.txt: Added.
        * http/wpt/crypto/hkdf-crash.any.html: Added.
        * http/wpt/crypto/hkdf-crash.any.js: Added.
        * http/wpt/crypto/hkdf-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/hkdf-crash.any.worker.html: Added.
        * http/wpt/crypto/pbkdf2-crash.any-expected.txt: Added.
        * http/wpt/crypto/pbkdf2-crash.any.html: Added.
        * http/wpt/crypto/pbkdf2-crash.any.js: Added.
        * http/wpt/crypto/pbkdf2-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/pbkdf2-crash.any.worker.html: Added.
        * http/wpt/crypto/resources/common.js: Added.
        * http/wpt/crypto/rsa-oaep-crash.any-expected.txt: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.html: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.js: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/rsa-oaep-crash.any.worker.html: Added.
        * http/wpt/crypto/rsa-pss-crash.any-expected.txt: Added.
        * http/wpt/crypto/rsa-pss-crash.any.html: Added.
        * http/wpt/crypto/rsa-pss-crash.any.js: Added.
        * http/wpt/crypto/rsa-pss-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/rsa-pss-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.html: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.js: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker-expected.txt: Added.
        * http/wpt/crypto/unwrap-ec-key-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any-expected.txt: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.js: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker.html: Added.
        * http/wpt/crypto/unwrap-rsa-key-crash.any.worker-expected.txt: Added.

2018-07-16  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist][macOS] Add suggestions UI for TextFieldInputTypes
        https://bugs.webkit.org/show_bug.cgi?id=186531

        Reviewed by Tim Horton.

        Added tests to verify that the suggestions are correctly shown and hidden, and that
        suggestions can be selected and inserted into an input field.

        * fast/forms/datalist/datalist-show-hide-expected.txt: Added.
        * fast/forms/datalist/datalist-show-hide.html: Added.
        * fast/forms/datalist/datalist-textinput-keydown-expected.txt: Added.
        * fast/forms/datalist/datalist-textinput-keydown.html: Added.
        * platform/ios/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.isShowingDataListSuggestions):

2018-07-16  Jeremy Jones  <jeremyj@apple.com>

        Fullscreen requires active document.
        https://bugs.webkit.org/show_bug.cgi?id=186226
        rdar://problem/36187413

        Reviewed by Jer Noble.

        This change guarantees the document to be visible for both element fullscreen and video fullscreen.

        User gesture is not enough to guarantee that the document is visible when fullscreen is initiated
        because JavaScript can spin wait before initiating fullscreen. During that spin the page or window might
        be hidden.

        Document::hidden() can't be relied upon because it won't update while JavaScript spins.

        This change adds a sync call to the UI process to get the current UI visibility state.

        * media/no-fullscreen-when-hidden.html: Added.
        * media/video-test.js:
        (eventName.string_appeared_here.thunk):
        (runWithKeyDown):
        * platform/ios-wk1/TestExpectations:
        * platform/mac-wk1/TestExpectations:

2018-07-16  Aaron Chu  <aaron_chu@apple.com>

        AX: Audit Tab should have an Audit Manager
        https://bugs.webkit.org/show_bug.cgi?id=184071
        <rdar://problem/38946364>

        Reviewed by Brian Burg.

        Test cases for AuditManager, AuditTestCase, AuditTestSuite, AuditResult and AuditReport.

        * inspector/audit/audit-manager-expected.txt: Added.
        * inspector/audit/audit-manager.html: Added.
        * inspector/audit/audit-report-expected.txt: Added.
        * inspector/audit/audit-report.html: Added.
        * inspector/audit/audit-test-case-expected.txt: Added.
        * inspector/audit/audit-test-case.html: Added.
        * inspector/audit/audit-test-suite-expected.txt: Added.
        * inspector/audit/audit-test-suite.html: Added.
        * inspector/audit/resources/audit-test-fixtures.js: Added.
        (TestPage.registerInitializer.window.testSuiteFixture1):
        (TestPage.registerInitializer.window.testSuiteFixture1.testCaseDescriptors):
        (TestPage.registerInitializer.window.testSuiteFixture2):
        (TestPage.registerInitializer.window.testSuiteFixture2.testCaseDescriptors):
        (TestPage.registerInitializer):

2018-07-16  Truitt Savell  <tsavell@apple.com>

        [ iOS ] Layout Test fast/forms/submit-change-fragment.html is a flaky Timeout
        https://bugs.webkit.org/show_bug.cgi?id=187699

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2018-07-16  Truitt Savell  <tsavell@apple.com>

        [ EWS ] http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html is Crashing on Win-EWS
        https://bugs.webkit.org/show_bug.cgi?id=187700

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-07-14  Dirk Schulze  <krit@webkit.org>

        [css-masking] Fully support -webkit-clip-path on SVG elements
        https://bugs.webkit.org/show_bug.cgi?id=185829

        Reviewed by Simon Fraser.

        Test -webkit-clip-path element references on SVG elements. Make sure, -webkit-clip-path
        contributes to hit testing for element references and basic shapes.

        * svg/clip-path/webkit-clip-path-after-expected.svg: Added.
        * svg/clip-path/webkit-clip-path-after.svg: Added.
        * svg/clip-path/webkit-clip-path-before-expected.svg: Added.
        * svg/clip-path/webkit-clip-path-before.svg: Added.
        * svg/dynamic-updates/SVGClipPath-prefixed-influences-hitTesting-expected.txt: Added.
        * svg/dynamic-updates/SVGClipPath-prefixed-influences-hitTesting.html: Added.
        * svg/dynamic-updates/SVGClipPath-prefixed-path-influences-hitTesting-expected.txt: Added.
        * svg/dynamic-updates/SVGClipPath-prefixed-path-influences-hitTesting.html: Added.
        * svg/dynamic-updates/SVGClipPathElement-prefixed-css-transform-influences-hitTesting-expected.txt: Added.
        * svg/dynamic-updates/SVGClipPathElement-prefixed-css-transform-influences-hitTesting.html: Added.
        * svg/dynamic-updates/SVGClipPathElement-prefixed-transform-influences-hitTesting-expected.txt: Added.
        * svg/dynamic-updates/SVGClipPathElement-prefixed-transform-influences-hitTesting.html: Added.

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

        Add TestExpectations and baselines for iOS 12
        https://bugs.webkit.org/show_bug.cgi?id=187628

        Reviewed by Alexey Proskuryakov.

        * platform/ios-12/TestExpectations: Added.

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

        Add TestExpectations and baselines for Mojave.
        https://bugs.webkit.org/show_bug.cgi?id=187620

        Reviewed by Alexey Proskuryakov.

        * platform/mac/TestExpectations:

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

        Flesh out WebSocket cookie tests to cover cookie policy for third-party resources
        https://bugs.webkit.org/show_bug.cgi?id=187541
        <rdar://problem/42048729>

        Reviewed by Alex Christensen.

        * http/tests/cookies/resources/cookie-utilities.js:
            Added a function for setting a cookie in a WebSocket handshake.
        * http/tests/websocket/tests/hybi/cookie_wsh.py:
        (web_socket_do_extra_handshake):
            Now sets the root path for new cookies so that they can be seen by
            for example cookies/resources/echo-cookies.php.
        * http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party-expected.txt: Added.
        * http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party.html: Added.
        * http/tests/websocket/tests/hybi/websocket-blocked-from-setting-cookie-as-third-party-expected.txt: Added.
        * http/tests/websocket/tests/hybi/websocket-blocked-from-setting-cookie-as-third-party.html: Added.
        * http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt:
        * http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html:
            Now tests under the condition where localhost as third-party is
            allowed to set a new cookie as third party. It also makes sure to use
            cookies with the path set to the root so that all cookies are visible.

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

        Support connecting a MediaStreamAudioDestinationNode to RTCPeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=187627
        <rdar://problem/35334400>

        Reviewed by Jer Noble.

        * webrtc/peer-connection-createMediaStreamDestination-expected.txt: Added.
        * webrtc/peer-connection-createMediaStreamDestination.html: Added.

2018-07-13  Truitt Savell  <tsavell@apple.com>

        [ MacOS WK1 ] Layout Tests in media/media-fragments/ are flaky
        https://bugs.webkit.org/show_bug.cgi?id=187557

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-07-13  Truitt Savell  <tsavell@apple.com>

        [ WK2 ] Layout Test editing/selection/update-selection-by-style-change.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187649

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-07-13  Truitt Savell  <tsavell@apple.com>

        [ MacOS Debug ] Layout Test inspector/view/asynchronous-layout.html is a Flaky Timeout
        https://bugs.webkit.org/show_bug.cgi?id=187622

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Add a FrameLoaderClient willInjectUserScriptForFrame callback
        https://bugs.webkit.org/show_bug.cgi?id=187565

        Reviewed by Alex Christensen.

        * http/tests/contentextensions/injected-script-callback-expected.txt: Added.
        * http/tests/contentextensions/injected-script-callback.html: Added.

2018-07-11  Ross Kirsling  <ross.kirsling@sony.com>

        UTF-16 XHTML files need svn:mime-type to be handled correctly by Windows SVN
        https://bugs.webkit.org/show_bug.cgi?id=187571

        Reviewed by Alex Christensen.

        * dom/xhtml/level3/core/documentgetinputencoding03.xhtml:
        * dom/xhtml/level3/core/entitygetinputencoding02.xhtml:
        * dom/xhtml/level3/core/entitygetxmlversion02.xhtml:
        * dom/xhtml/level3/core/external_foo.ent:
        Added property svn:mime-type and removed property svn:eol-style (to align with documentgetxmlencoding03.xhtml).

2018-07-12  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ and WPE gardening after r233765.

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

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

        Newly added float should trigger full layout on the block.
        https://bugs.webkit.org/show_bug.cgi?id=187251
        <rdar://problem/41726137>

        Reviewed by David Kilzer.

        * fast/inline/new-float-needs-layout-when-line-is-dirty-expected.txt: Added.
        * fast/inline/new-float-needs-layout-when-line-is-dirty.html: Added.

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

        MediaDevices should derive from EventTarget in its IDL
        https://bugs.webkit.org/show_bug.cgi?id=187575

        Reviewed by Chris Dumez.

        * fast/mediastream/MediaDevices-addEventListener-expected.txt: Added.
        * fast/mediastream/MediaDevices-addEventListener.html: Added.

2018-07-11  Ryosuke Niwa  <rniwa@webkit.org>

        Layout Test editing/selection/navigation-clears-editor-state.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187389

        Reviewed by Wenson Hsieh.

        Use 200 iterations like we did before r233701 and mark it as SLOW.

        * TestExpectations:
        * editing/selection/navigation-clears-editor-state.html:

2018-07-11  Aditya Keerthi  <akeerthi@apple.com>

        REGRESSION (231276): Attempting to copy an image fails
        https://bugs.webkit.org/show_bug.cgi?id=187212
        <rdar://problem/41540074>

        Reviewed by Ryosuke Niwa.

        Added test to ensure that we can copy a URL without a title, and the URL's
        lastPathComponent appears like a file URL.

        * editing/mac/pasteboard/can-copy-url-without-title-expected.txt: Added.
        * editing/mac/pasteboard/can-copy-url-without-title.html: Added.
        * platform/mac-wk1/TestExpectations: The added test is WK2-only due to webkit.org/b/187230.

2018-07-11  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed test gardening.

        * platform/wincairo/TestExpectations:

2018-07-11  Truitt Savell  <tsavell@apple.com>

        Layout Test media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187420

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Fix remaining Cross-Origin-Resource-Policy failures, if any
        https://bugs.webkit.org/show_bug.cgi?id=186761
        <rdar://problem/41209829>

        Reviewed by Alex Christensen.

        Remove redundant tests with WPT.

        * http/wpt/cross-origin-resource-policy/fetch-expected.txt: Removed.
        * http/wpt/cross-origin-resource-policy/fetch-in-iframe-expected.txt: Removed.
        * http/wpt/cross-origin-resource-policy/fetch-in-iframe.html: Removed.
        * http/wpt/cross-origin-resource-policy/fetch.html: Removed.
        * http/wpt/cross-origin-resource-policy/iframe-loads-expected.txt: Removed.
        * http/wpt/cross-origin-resource-policy/iframe-loads.html: Removed.
        * http/wpt/cross-origin-resource-policy/image-loads-expected.txt: Removed.
        * http/wpt/cross-origin-resource-policy/image-loads.html: Removed.
        * http/wpt/cross-origin-resource-policy/resources/hello.py: Removed.
        * http/wpt/cross-origin-resource-policy/resources/iframe.py: Removed.
        * http/wpt/cross-origin-resource-policy/resources/iframeFetch.html: Removed.
        * http/wpt/cross-origin-resource-policy/resources/redirect.py: Removed.
        * http/wpt/cross-origin-resource-policy/resources/script.py: Removed.
        * http/wpt/cross-origin-resource-policy/script-loads-expected.txt: Removed.
        * http/wpt/cross-origin-resource-policy/script-loads.html: Removed.

2018-07-11  Jer Noble  <jer.noble@apple.com>

        Disable all network caching for HLS streams.
        https://bugs.webkit.org/show_bug.cgi?id=187544
        <rdar://problem/41863600>

        Reviewed by Chris Dumez.

        * http/tests/cache/disk-cache/disk-cache-media-small-expected.txt:
        * http/tests/cache/disk-cache/disk-cache-media-small.html:

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

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

        Unreviewed gardening.

        * platform/gtk/TestExpectations: Mark new test as failing: it depends on mac-only code.

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

        Make fetch() use "same-origin" credentials by default
        https://bugs.webkit.org/show_bug.cgi?id=176023

        Reviewed by Chris Dumez.

        Resource timing does not work properly on WK1 when stopping fetch/XHR load to restart it without credentials.
        Updated expected results accordingly.

        * http/tests/inspector/network/resource-mime-type.html:
        Update resource-mime-type.html to ensure we go to the network for every load.
        * http/wpt/resource-timing/rt-cors.js:
        (assertRedirectWithDisallowedTimingData):
        Updated test according https://www.w3.org/TR/resource-timing-1/#performanceresourcetiming.
        * platform/mac-wk1/http/wpt/resource-timing/rt-cors-expected.txt: Added.
        * platform/mac-wk1/http/wpt/resource-timing/rt-cors.worker-expected.txt: Added.
        * platform/win/http/wpt/resource-timing/rt-cors-expected.txt: Added.
        * platform/win/http/wpt/resource-timing/rt-cors.worker-expected.txt: Added.

2018-07-10  Saam Barati  <sbarati@apple.com>

        Layout Test editing/selection/navigation-clears-editor-state.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187389
        <rdar://problem/41898822>

        Rubber-stamped by Ryosuke Niwa.

        Make this test less susceptible to timing out on debug builds by:
        - lowering the number of iframes we add by a factor of two
        - removing the tests own internal 18 second timeout

        * editing/selection/navigation-clears-editor-state.html:

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

        FragmentInterval, FragmentIntervalTree and FragmentSearchAdapter should hold not hold raw pointers to renderers.
        https://bugs.webkit.org/show_bug.cgi?id=187249
        <rdar://problem/41725869>

        Reviewed by Simon Fraser.

        * fast/multicol/crash-in-vertical-writing-mode-expected.txt: Added.
        * fast/multicol/crash-in-vertical-writing-mode.html: Added.

2018-07-10  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Make testRunner.statisticsResetToConsistentState() take a completion handler
        https://bugs.webkit.org/show_bug.cgi?id=187499
        <rdar://problem/41999431>

        Reviewed by Chris Dumez.

        These changes are to adopt and make use of the new completion handler in
        testRunner.statisticsResetToConsistentState().

        * http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html:
        * 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.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent.html:
        * http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.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-redirect-to-prevalent.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.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html:
        * http/tests/resourceLoadStatistics/grandfathering.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.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.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-timeout.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/prune-statistics.html:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html:
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests.html:
        * http/tests/resourceLoadStatistics/telemetry-generation.html:
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html:
        * http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html:
        * http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html:
        * http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html:

2018-07-10  Truitt Savell  <tsavell@apple.com>

        [ MacOS Debug ] Layout Test media/media-fragments/TC0015.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187522

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-07-09  Dean Jackson  <dino@apple.com>

        Remove fullscreen-auto-hide-delay
        https://bugs.webkit.org/show_bug.cgi?id=187493
        <rdar://problem/41830852>

        Reviewed by Antoine Quint.

        Update the existing test that partially used the delay, and remove the ones that
        used only the delay.

        * fullscreen/fullscreen-auto-hide-delay-expected.txt: Removed.
        * fullscreen/fullscreen-auto-hide-delay.html: Removed.
        * fullscreen/fullscreen-env-expected.txt:
        * fullscreen/fullscreen-env.html:
        * legacy-animation-engine/fullscreen/fullscreen-auto-hide-delay-expected.txt: Removed.
        * legacy-animation-engine/fullscreen/fullscreen-auto-hide-delay.html: Removed.

2018-07-09  Truitt Savell  <tsavell@apple.com>

        Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187484

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-07-09  Truitt Savell  <tsavell@apple.com>

        [macOS] Layout Test fast/hidpi/filters-and-image-buffer-resolution.html is flaky, but no longer Flaky on [iOS]
        https://bugs.webkit.org/show_bug.cgi?id=187491

        Unreviewed test gardening

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

2018-07-09  Brady Eidson  <beidson@apple.com>

        Continued unreviewed hacking on this test because that's my full time job now.

        * storage/indexeddb/modern/opendatabase-after-storage-crash.html:

2018-07-09  Brady Eidson  <beidson@apple.com>

        This test is *still* flaky. This unreviewed patch is my attempt to make it less so.

        * storage/indexeddb/modern/opendatabase-after-storage-crash.html:

2018-07-09  Brian Burg  <bburg@apple.com>

        REGRESSION: Web Inspector no longer pauses in internal injected scripts like WDFindNodes.js
        https://bugs.webkit.org/show_bug.cgi?id=187350
        <rdar://problem/41728249>

        Reviewed by Matt Baker.

        Add a new test to demonstrate a difference in behavior when Debugger.setPauseForInternalScripts(true)
        is sent to the backend. There's no way to correctly stringify the current call frame when stepping into
        console.log because the injected script was blackboxed at the time that the scripts were parsed.
        Instead, the stepping output just shows that the debugger is paused somewhere inside console.log.

        * inspector/debugger/pause-for-internal-scripts-expected.txt: Added.
        * inspector/debugger/pause-for-internal-scripts.html: Added.
        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.window.addSteppingTestCase):
        (TestPage.registerInitializer):

2018-07-09  Truitt Savell  <tsavell@apple.com>

        Layout Test media/video-background-playback.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187476

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Mark animations/needs-layout.html as flaky on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=187388

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2018-07-08  David Kilzer  <ddkilzer@apple.com>

        DOMMatrix.invertSelf() returns garbage values for a non-invertible matrix
        <https://webkit.org/b/187446>
        <rdar://problem/41853187>

        Reviewed by Daniel Bates.

        * http/wpt/css/geometry/DOMMatrix-invertSelf-expected.txt: Add.
        * http/wpt/css/geometry/DOMMatrix-invertSelf.html: Add.
        * http/wpt/css/geometry/support/dommatrix-test-util.js: Copy from
          LayoutTests/imported/w3c/web-platform-tests/css/geometry/support/dommatrix-test-util.js.

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

        AX: add a subrole for meter elements on macOS
        https://bugs.webkit.org/show_bug.cgi?id=187409
        <rdar://problem/41905702>

        Reviewed by Chris Fleizach.

        * accessibility/mac/meter-subrole-expected.txt: Added.
        * accessibility/mac/meter-subrole.html: Added.
        * platform/mac/accessibility/roles-exposed-expected.txt:

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

        WebRTC MediaStreamTrack Enable / Disable causes video delay / lag
        https://bugs.webkit.org/show_bug.cgi?id=186889
        <rdar://problem/41370285>

        Reviewed by Eric Carlson.

        Test is no longer valid since we are now sending 0 bytes for audio tracks.

        * webrtc/audio-muted-stats2-expected.txt: Removed.
        * webrtc/audio-muted-stats2.html: Removed.

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

        Skip imported/w3c/web-platform-tests/infrastructure/assumptions/html-elements.html on debug.
        https://bugs.webkit.org/show_bug.cgi?id=187093

        Unreviewed test gardening.

        * TestExpectations:

2018-07-06  Brady Eidson  <beidson@apple.com>

        This test is flaky. This unreviewed patch is my attempt to make it less so.

        * storage/indexeddb/modern/opendatabase-after-storage-crash.html:

2018-07-06  David Fenton  <david_fenton@apple.com>

        Layout Test imported/w3c/web-platform-tests/IndexedDB/interfaces.any.worker.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=187372

        Unreviewed test gardening.

        Added [ Slow ] to the existing [ Pass Timeout ] expectation.

        * platform/mac-wk1/TestExpectations:

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

        Rebaseline accessibility/ios-simulator/strong-password-field.html after r233578.

        Unreviewed test gardening.

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

2018-07-06  David Fenton  <david_fenton@apple.com>

        Layout Test imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker.html is flaky timeout.
        https://bugs.webkit.org/show_bug.cgi?id=187408

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-07-06  Antoine Quint  <graouts@apple.com>

        [Web Animations] Using a Web Animation leaks the Document
        https://bugs.webkit.org/show_bug.cgi?id=187088
        <rdar://problem/41392046>

        Reviewed by Darin Adler.

        * webanimations/leak-document-with-web-animation-expected.txt: Added.
        * webanimations/leak-document-with-web-animation.html: Added.
        * webanimations/resources/web-animation-leak-iframe.html: Added.

2018-07-06  Saam Barati  <sbarati@apple.com>

        Layout Test editing/selection/navigation-clears-editor-state.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187389

        Reviewed by Mark Lam.

        * editing/selection/navigation-clears-editor-state.html:
        Make the test's internal time out mechanism longer since
        it's being hit on the bots.

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

        AX: setValue on text controls should send out key events
        https://bugs.webkit.org/show_bug.cgi?id=186690
        <rdar://problem/41169985>

        Reviewed by Chris Fleizach.

        Editor's clearText function will also dispatch the InputEvent. In the test, 
        we need to make sure each test case finishes handling all the input events
        before moving to the next test case.

        * accessibility/mac/set-value-editable-dispatch-events-expected.txt:
        * accessibility/mac/set-value-editable-dispatch-events.html:

2018-07-06  Truitt Savell  <tsavell@apple.com>

        Layout Test imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187393

        Unreviewed test gardening.

        * TestExpectations:

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

        Remove Strong Confirmation Password button
        https://bugs.webkit.org/show_bug.cgi?id=187306
        <rdar://problem/41795185>

        Reviewed by Sam Weinig.

        Remove support for the Strong Confirmation Password button because we never made use of it.

        * accessibility/ios-simulator/strong-password-field-expected.txt:
        * accessibility/ios-simulator/strong-password-field.html:
        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes-expected.html:
        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes.html:
        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes-expected.html:
        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes.html:
        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset-expected.html:
        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset.html:
        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes-expected.html:
        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes.html:
        * fast/forms/auto-fill-button/hide-strong-password-when-field-type-changes-expected.html:
        * fast/forms/auto-fill-button/hide-strong-password-when-field-type-changes.html:
        * fast/forms/auto-fill-button/input-autofilled-disabled-strong-password-auto-fill-button-expected.html: Removed.
        * fast/forms/auto-fill-button/input-autofilled-disabled-strong-password-auto-fill-button.html: Removed.
        * fast/forms/auto-fill-button/input-autofilled-readonly-strong-password-auto-fill-button-expected.html: Removed.
        * fast/forms/auto-fill-button/input-autofilled-readonly-strong-password-auto-fill-button.html: Removed.
        * fast/forms/auto-fill-button/input-disabled-strong-password-and-strong-confirmation-password-auto-fill-buttons-expected.html:
        * 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-expected.html:
        * fast/forms/auto-fill-button/input-readonly-strong-password-and-strong-confirmation-password-auto-fill-buttons.html:
        * fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button.html: Removed.
        * fast/forms/auto-fill-button/last-auto-fill-button-type-expected.txt:
        * fast/forms/auto-fill-button/last-auto-fill-button-type.html:
        * platform/gtk/TestExpectations:
        * platform/gtk/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt: Removed.
        * platform/ios/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt: Removed.
        * platform/mac/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt: Removed.
        * platform/win/TestExpectations:
        * platform/win/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt: Removed.
        * platform/wincairo/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt: Removed.

2018-07-05  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK gardening. Remove platform expectations for imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context.html

        Since r233512 we are getting the same results as other ports.

        * platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt: Removed.

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

        REGRESSION (r230843): Flash doesn't work; Produces blue box on page
        https://bugs.webkit.org/show_bug.cgi?id=187346
        <rdar://problem/41773974>

        Reviewed by Ryosuke Niwa.

        Skip new test on WK1 since it does not have the ability to block plugins.

        * http/tests/plugins/plugin-allow-then-reload-expected.txt: Added.
        * http/tests/plugins/plugin-allow-then-reload.html: Added.
        * platform/mac-wk1/TestExpectations:

2018-07-05  Brady Eidson  <beidson@apple.com>

        IndexedDB operations in a Page fail after a StorageProcess crash.
        <rdar://problem/41626526> and https://bugs.webkit.org/show_bug.cgi?id=187123

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/opendatabase-after-storage-crash.html: Added.

2018-07-05  Ryosuke Niwa  <rniwa@webkit.org>

        Youtube video pages crash after a couple of minutes
        https://bugs.webkit.org/show_bug.cgi?id=187316

        Reviewed by Antti Koivisto.

        Added a regression test to remove an iframe with a video while there is a main content
        which is eligible to be shown in the Touch Bar.

        * media/remove-video-best-media-element-in-main-frame-crash-expected.txt: Added.
        * media/remove-video-best-media-element-in-main-frame-crash.html: Added.

2018-07-05  Fujii Hironori  <Hironori.Fujii@sony.com>

        REGRESSION(r233495) [cairo] drawGlyphsShadow should use the fast path for zero blur-radius
        https://bugs.webkit.org/show_bug.cgi?id=187336

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations: Unmarked fast/text/multiple-text-shadow-overflow-layout-rect.html.

2018-07-05  Saam Barati  <sbarati@apple.com>

        [mac-wk1] Layout Test editing/selection/navigation-clears-editor-state.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=187309

        Reviewed by Mark Lam.

        Try to make this test less flaky by making percents threshold of freed
        objects smaller.

        * editing/selection/navigation-clears-editor-state-expected.txt:
        * editing/selection/navigation-clears-editor-state.html:

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

        Layout Test http/tests/workers/service/basic-messageport.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182630

        Reviewed by Alex Christensen.

        Test is flaky due to a race between serviceWorkerClient.postMessage and MessagePort.postMessage.
        Both are going through UIProcess but MessagePort events are grabbed asynchronously.
        Fixed the test to not expect order between these two message exchange channels.

        * http/tests/workers/service/basic-messageport-expected.txt:
        * http/tests/workers/service/resources/basic-messageport.js:
        (channel.port1.onmessage):
        (then):
        * platform/mac-wk2/TestExpectations:

2018-07-05  David Fenton  <david_fenton@apple.com>

        LayoutTest imported/w3c/web-platform-tests/IndexedDB/interfaces.any.worker.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=187372

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-07-05  Commit Queue  <commit-queue@webkit.org>

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

        Changes made for youtube crashes has caused 15 api failures
        (Requested by Truitt on #webkit).

        Reverted changeset:

        "Youtube video pages crash after a couple of minutes"
        https://bugs.webkit.org/show_bug.cgi?id=187316
        https://trac.webkit.org/changeset/233539

2018-07-04  Ryosuke Niwa  <rniwa@webkit.org>

        Youtube video pages crash after a couple of minutes
        https://bugs.webkit.org/show_bug.cgi?id=187316

        Reviewed by Antti Koivisto.

        Added a regression test to remove an iframe with a video while there is a main content
        which is eligible to be shown in the Touch Bar.

        * media/remove-video-best-media-element-in-main-frame-crash-expected.txt: Added.
        * media/remove-video-best-media-element-in-main-frame-crash.html: Added.

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

        Do not assume that hypen's width can be computed using the simplified text measure codepath.
        https://bugs.webkit.org/show_bug.cgi?id=187352
        <rdar://problem/40821283>

        Reviewed by Simon Fraser.

        * fast/text/hyphen-is-complex-crash-expected.txt: Added.
        * fast/text/hyphen-is-complex-crash.html: Added.

2018-07-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        [WK1] editing/spelling/markers.html times out on High Sierra after r233439
        https://bugs.webkit.org/show_bug.cgi?id=187351

        Reviewed by Tim Horton.

        This is currently timing out on High Sierra, because the `verifyUnexpectedMarkers` portion of the
        test fails to actually make use of the override spell checking results. Fix this by passing the
        results when calling the function.

        * editing/spelling/markers.html:

2018-07-05  Nan Wang  <n_wang@apple.com>

        AX: setValue on text controls should send out key events
        https://bugs.webkit.org/show_bug.cgi?id=186690
        <rdar://problem/41169985>

        Reviewed by Chris Fleizach.

        * accessibility/mac/set-value-editable-dispatch-events-expected.txt: Added.
        * accessibility/mac/set-value-editable-dispatch-events.html: Added.

2018-07-05  Truitt Savell  <tsavell@apple.com>

        Layout Test svg/animations/animateMotion-additive-2c.svg and svg/animations/animateMotion-additive-2d.svg is flaky 
        https://bugs.webkit.org/show_bug.cgi?id=187345

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-07-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r233325): [GTK] Broke 40 animations tests
        https://bugs.webkit.org/show_bug.cgi?id=187264

        Reviewed by Žan Doberšek.

        Remove expectations for tests that are passing now.

        * platform/gtk/TestExpectations:

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

        Reparse user stylesheets when _useSystemAppearance changes
        https://bugs.webkit.org/show_bug.cgi?id=187312
        <rdar://problem/38565834>

        Reviewed by Tim Horton.

        * fast/media/use-system-appearance-user-stylesheet-parsing-expected.txt: Added.
        * fast/media/use-system-appearance-user-stylesheet-parsing.html: Added.

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

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

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

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

        [Web Animations] Make WPT test at timing-model/timelines/timelines.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=186508
        <rdar://problem/41000260>

        Reviewed by Dean Jackson.

        We're now passing this test reliably.

        * TestExpectations:

2018-07-03  Ryosuke Niwa  <rniwa@webkit.org>

        Nullptr crash accessing Document in GenericEventQueue::dispatchOneEvent()
        https://bugs.webkit.org/show_bug.cgi?id=187284

        Reviewed by Eric Carlson.

        Added a regression test which reliably hits the newly added debug assertion.

        * media/track/video-track-addition-and-frame-removal-expected.txt: Added.
        * media/track/video-track-addition-and-frame-removal.html: Added.

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

        [cairo] Doesn't paint box-shadow with zero blur-radius
        https://bugs.webkit.org/show_bug.cgi?id=187244

        Reviewed by Žan Doberšek.

        * platform/gtk/fast/box-shadow/inset-expected.png: Updated.

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

        Crash in  WebKit::CacheStorage::Cache::toRecordInformation when running http/tests/cache-storage/cache-persistency.https.html
        https://bugs.webkit.org/show_bug.cgi?id=187243

        Reviewed by Chris Dumez.

        * TestExpectations:

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

        performance-api/performance-observer-no-document-leak.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=186938
        <rdar://problem/41379336>

        Reviewed by Simon Fraser.

        Update test to stop relying on internals.numberOfLiveDocuments() and instead rely on the new
        internals.documentIdentifier() / internals.isDocumentAlive(documentIdentifier) API in order
        to address the flakiness. Relying on the number of live documents to check if a particular
        document was destroyed is unreliable and flaky given that WebKit constructs documents for
        various reasons.

        * TestExpectations:
        * performance-api/performance-observer-no-document-leak-expected.txt:
        * performance-api/performance-observer-no-document-leak.html:

2018-07-03  Truitt Savell  <tsavell@apple.com>

        Re-enabling canvas tests for canvas/philip/tests/initial.reset.gradient.html
        https://bugs.webkit.org/show_bug.cgi?id=187307

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-07-03  Truitt Savell  <tsavell@apple.com>

        re-enable some canvas tests that are now consistently passing
        https://bugs.webkit.org/show_bug.cgi?id=187305

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-07-03  Jonathan Bedard  <jbedard@apple.com>

        Unreviewed, rolling out r233461.

        Assertions triggered during iOS 11 debug layout and API tests

        Reverted changeset:

        "[iOS] Add assert to catch improper use of WebCore::Timer in
        UI Process"
        https://bugs.webkit.org/show_bug.cgi?id=185330
        https://trac.webkit.org/changeset/233461

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

        Import WPT infrastructure tests
        https://bugs.webkit.org/show_bug.cgi?id=187095

        Reviewed by Youenn Fablet.

        * TestExpectations: Mark known failures.

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

        REGRESSION (r232186): Hardware-accelerated CSS animations using steps() timing function no longer work
        https://bugs.webkit.org/show_bug.cgi?id=186129

        Reviewed by Antoine Quint.

        Add a test to ensure that accelerated and non-accelerated animations are properly started
        when WebAnimationsCSSIntegration is enabled. In particular, consider the case of animated
        transform using steps() timing function.

        * http/wpt/css/css-animations/start-animation-001-expected.html: Added.
        * http/wpt/css/css-animations/start-animation-001.html: Added.

2018-07-03  Frederic Wang  <fred.wang@free.fr>

        [iOS] Animations with Bézier timing function not suspended on UI process when animation-play-state is set to "paused"
        https://bugs.webkit.org/show_bug.cgi?id=170784

        Add a reftest to visually check pausing of transform animations.

        Reviewed by Antoine Quint.

        * http/wpt/css/css-animations/set-animation-play-state-to-paused-001-expected.html: Added.
        * http/wpt/css/css-animations/set-animation-play-state-to-paused-001.html: Added.

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

        Crash in WebCore::WebAnimation::timeToNextRequiredTick when running imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context.html
        https://bugs.webkit.org/show_bug.cgi?id=187145

        Unreviewed. Forgot to remove the expectation change when fixing the bug in r233430.

        * TestExpectations:

2018-07-02  Sukolsak Sakshuwong  <sukolsak@gmail.com>

        Regular expressions with ".?" expressions at the start and the end match the entire string
        https://bugs.webkit.org/show_bug.cgi?id=119191

        Reviewed by Michael Saboff.

        * fast/regex/dotstar-expected.txt:
        * fast/regex/script-tests/dotstar.js:

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

        Tighter limit for canvas memory use on iOS
        https://bugs.webkit.org/show_bug.cgi?id=187279
        <rdar://problem/38420562>

        Reviewed by Simon Fraser.

        * platform/ios-simulator/fast/canvas/canvas-crash-expected.txt:
        * platform/ios-simulator/fast/canvas/canvas-skia-excessive-size-expected.txt:

2018-07-02  Sukolsak Sakshuwong  <sukolsak@gmail.com>

        RegExp.exec returns wrong value with a long integer quantifier
        https://bugs.webkit.org/show_bug.cgi?id=187042

        Reviewed by Saam Barati.

        * fast/regex/overflow-expected.txt:
        * fast/regex/script-tests/overflow.js:

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

        [Cocoa] Google Fonts doesn't work if the user has the requested font locally-installed
        https://bugs.webkit.org/show_bug.cgi?id=187228
        <rdar://problem/40967280>

        Reviewed by Brent Fulgham.

        * fast/text/user-installed-fonts/local-expected.html: Added.
        * fast/text/user-installed-fonts/local.html: Added.

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

        [WK1] editing/spelling/markers.html is failing on recent builds of macOS Mojave
        https://bugs.webkit.org/show_bug.cgi?id=187253

        Reviewed by Tim Horton.

        In recent builds of macOS Mojave, NSSpellChecker returns both grammar and spelling errors when asked to analyze
        the string "I have a issue.". While arguably correct, the change causes this existing layout test to fail due
        to one of the calls to `verifyUnexpectedMarkers` expecting either grammar markers and not spelling markers, or
        vice versa.

        To fix this, we can leverage the mechanism added in r233412 to simulate different results from the platform
        spellchecker, such that the test now exercises all combinations of grammar and spelling corrections observed on
        each macOS platform, regardless of the actual platform where the test is being run.

        This patch also enhances the capabilities of `LayoutTestSpellChecker`. See `Tools/ChangeLog` for more details.

        * editing/spelling/markers-expected.txt:
        * editing/spelling/markers.html:
        * editing/spelling/text-replacement-after-typing-to-word.html:

        Adjusted for a renamed TestRunner method.

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

        Unreviewed GTK gardening

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt: Added.

2018-07-02  Eric Carlson  <eric.carlson@apple.com>

        Video sometimes flickers when playing to AppleTV
        https://bugs.webkit.org/show_bug.cgi?id=187193
        <rdar://problem/40153865>

        Reviewed by Jer Noble and Youenn Fablet.

        * platform/mac/media/audio-session-category-audio-autoplay.html: Update as audio category
        doesn't change immediately.

2018-07-02  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening.

        Adjust or add a few test expectations. Remove a bad text baseline for
        one W3C Fetch test, add a proper text baseline for another.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/headers: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/headers/header-values-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/security: Removed.

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

        WTF's internal std::optional implementation should abort() on bad optional access
        https://bugs.webkit.org/show_bug.cgi?id=186536

        Unreviewed test gardening.

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

        WTF's internal std::optional implementation should abort() on bad optional access
        https://bugs.webkit.org/show_bug.cgi?id=186536

        Reviewed by Michael Catanzaro.

        * TestExpectations: Mark two tests as crashing (bug #187145 and bug #187243).

2018-07-01  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WK2] fast/parser/document-open-in-unload.html makes the following test crash
        https://bugs.webkit.org/show_bug.cgi?id=98345
        <rdar://problem/12474923>

        Reviewed by Ryosuke Niwa.

        * platform/wk2/TestExpectations: Unskipped fast/parser/document-open-in-unload.html.

2018-07-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] LastResort in the font family list causes emoji with joiners to be rendered as multiple .notdef characters
        https://bugs.webkit.org/show_bug.cgi?id=187209
        <rdar://problem/40920785>

        Reviewed by Darin Adler.

        * fast/text/emoji-with-joiner-expected.txt: Added.
        * fast/text/emoji-with-joiner.html: Added.

2018-07-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Text replacements that end with symbols are expanded immediately
        https://bugs.webkit.org/show_bug.cgi?id=187225
        <rdar://problem/41112433>

        Reviewed by Darin Adler.

        Adds a layout test to check that if a user has configured a text replacement that ends with punctuation, then:
        1. Typing that text replacement won't immediately trigger replacement.
        2. Text replacement is triggered after pressing enter.

        * editing/spelling/text-replacement-after-typing-to-word-expected.txt: Added.
        * editing/spelling/text-replacement-after-typing-to-word.html: Added.
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:

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

        [Web Animations] Make WPT test at timing-model/timelines/document-timelines.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=186507
        <rdar://problem/41000257>

        Reviewed by Dean Jackson.

        This test now passes reliably.

        * TestExpectations:

2018-06-30  Antoine Quint  <graouts@apple.com>

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

        Unreviewed.

        This test is no longer flaky, the fix for webkit.org/b/183834 fixed the issue.

        * platform/ios/TestExpectations:

2018-06-30  Commit Queue  <commit-queue@webkit.org>

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

        This patch broke Windows ports (Requested by fredw on
        #webkit).

        Reverted changeset:

        "WTF's internal std::optional implementation should abort() on
        bad optional access"
        https://bugs.webkit.org/show_bug.cgi?id=186536
        https://trac.webkit.org/changeset/233391

2018-06-29  Frederic Wang  <fwang@igalia.com>

        WTF's internal std::optional implementation should abort() on bad optional access
        https://bugs.webkit.org/show_bug.cgi?id=186536

        Reviewed by Michael Catanzaro.

        * TestExpectations: Mark one WebAnimations test as crashing (bug #187145).

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

        Crash under WebCore::AXObjectCache::handleMenuItemSelected
        https://bugs.webkit.org/show_bug.cgi?id=186918
        <rdar://problem/41365984>

        Reviewed by Chris Fleizach.

        * accessibility/accessibility-crash-focused-element-change-expected.txt: Added.
        * accessibility/accessibility-crash-focused-element-change.html: Added.

2018-06-29  Antti Koivisto  <antti@apple.com>

        REGRESSION (r232806): Facebook login fields have blue fill background instead of white
        https://bugs.webkit.org/show_bug.cgi?id=187207

        Reviewed by Tim Horton.

        * fast/forms/input-background-ua-media-query-expected.html: Added.
        * fast/forms/input-background-ua-media-query.html: Added.

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

        REGRESSION (r230921): Cannot log in to forums.swift.org using GitHub account
        https://bugs.webkit.org/show_bug.cgi?id=187197
        <rdar://problem/40420821>

        Reviewed by Brent Fulgham.

        Add tests to ensure that Same-Site cookies are sent in a subsequent same-origin form submission
        from a child window that is cross-origin with its opener. Also add a test to ensure that Same-Site
        cookies are visible to an about:blank pop-up window (as about:blank is Same-Site with its opener
        by definition of being same-origin with it).

        * http/tests/cookies/same-site/fetch-in-about-blank-popup-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-in-about-blank-popup.html: Added.
        * http/tests/cookies/same-site/post-from-cross-site-popup-expected.txt: Added.
        * http/tests/cookies/same-site/post-from-cross-site-popup.html: Added.
        * http/tests/cookies/same-site/resources/post-from-popup.html: Added.

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

        Skip media/picture-in-picture-interruption.html on iOS since it relies on 'runWithKeyDown'.
        https://bugs.webkit.org/show_bug.cgi?id=187181

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-06-29  Aditya Keerthi  <akeerthi@apple.com>

        [macOS] Do not crash if there is an attempt to copy a file URL to the clipboard
        https://bugs.webkit.org/show_bug.cgi?id=187183

        Reviewed by Wenson Hsieh.

        Added a test to ensure that the WebProcess does not crash if we attempt to copy a
        file URL to the clipboard. The test also ensures the clipboard content remains
        unchanged.

        * TestExpectations:
        * http/tests/security/pasteboard-file-url-expected.txt: Added.
        * http/tests/security/pasteboard-file-url.html: Added.
        * platform/mac-wk2/TestExpectations:

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

        AX: [iOS] VoiceOver scroll position is jumpy in frames
        https://bugs.webkit.org/show_bug.cgi?id=186956

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/iframe-scroll-into-view-expected.html: Added.
        * fast/scrolling/ios/iframe-scroll-into-view.html: Added.

2018-06-29  Truitt Savell  <tsavell@apple.com>

        Layout Test webrtc/datachannel/mdns-ice-candidates.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187180

        Unreviewed test gardening.

        * TestExpectations:

2018-06-29  Truitt Savell  <tsavell@apple.com>

        Layout Test js/error-should-not-strong-reference-global-object.html is flaky on macOS
        https://bugs.webkit.org/show_bug.cgi?id=187103

        Unreviewed test gardening

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

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

        Infinite loop if a <use> element references its ancestor and the DOMNodeInserted event handler of one its ancestor's descents updates the document style
        https://bugs.webkit.org/show_bug.cgi?id=186925

        Reviewed by Antti Koivisto.

        * svg/dom/svg-use-infinite-loop-cloning-expected.txt: Added.
        * svg/dom/svg-use-infinite-loop-cloning.html: Added.

2018-06-29  Manuel Rego Casasnovas  <rego@igalia.com>

        [WPE] Three CSS Grid Layout tests crash due to valueless std::optional access
        https://bugs.webkit.org/show_bug.cgi?id=186752

        Reviewed by Frédéric Wang.

        * platform/wpe/TestExpectations: Remove tests from TestExpectations file
        as they're passing now.

2018-06-29  Thibault Saunier  <tsaunier@igalia.com>

        [GTK][WPE]: Add a way to setup our development environment inside flatpak
        https://bugs.webkit.org/show_bug.cgi?id=186771

        Reviewed by Carlos Alberto Lopez Perez.

        * http/conf/flatpak-httpd.conf: Added. Apache configuration file to be used inside flaptak.

2018-06-29  David Fenton  <david_fenton@apple.com>

        Unreviewed, rolling out r233349.

        caused 42 crashes on iOS GuardMalloc and iOS ASan tests

        Reverted changeset:

        "[Web Animations] Using a Web Animation leaks the Document"
        https://bugs.webkit.org/show_bug.cgi?id=187088
        https://trac.webkit.org/changeset/233349

2018-06-29  Jer Noble  <jer.noble@apple.com>

        Returning PiP'd video to fullscreen while playing leaves video muted.
        https://bugs.webkit.org/show_bug.cgi?id=187181
        <rdar://problem/41408335>

        Reviewed by Eric Carlson.

        * media/picture-in-picture-interruption-expected.txt: Added.
        * media/picture-in-picture-interruption.html: Added.

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

        Layout Test imported/mozilla/css-animations/test_animation-starttime.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=186807

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Layout Test fast/text/mark-matches-broken-line-rendering.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=187177

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Layout Test compositing/animation/layer-for-filling-animation.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=187163

        Unreviewed.

        This test needed to be modified to account for the pending state being updated at a different time,
        so we just wait a frame to ensure the animation is ended. See r233325.

        * compositing/animation/layer-for-filling-animation.html:

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

        [mac][wk2] REGRESSION (Tiled Drawing): Some css3/ tests fail with fringing around tiled background-images that intersect tile boundaries
        https://bugs.webkit.org/show_bug.cgi?id=122235

        Unreviewed. This test has not been flaky on all ports by GTK for a long time.

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

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

        [Web Animations] Using a Web Animation leaks the Document
        https://bugs.webkit.org/show_bug.cgi?id=187088
        <rdar://problem/41392046>

        Reviewed by Dean Jackson.

        Add a new test that creates an Animation object in JS within an iframe and checks that removing
        the iframe clears its Document. 

        * webanimations/leak-document-with-web-animation-expected.txt: Added.
        * webanimations/leak-document-with-web-animation.html: Added.
        * webanimations/resources/web-animation-leak-iframe.html: Added.

2018-06-28  Olivia Barnett  <obarnett@apple.com>
        
        Find in page for typographic quotes does not find low (German) quotes
        https://bugs.webkit.org/show_bug.cgi?id=187164
        <rdar://problem/29612785>
       
        Reviewed by Tim Horton.

        Added additional test for German quotes.

        * fast/text/find-quotes.html:

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

        [iOS] Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        [LFC] Add block formatting only test cases
        https://bugs.webkit.org/show_bug.cgi?id=187162

        Reviewed by Antti Koivisto.

        These tests are expected to generate the same tree output on every platform (no text, strictly block only). 

        * fast/block/block-only/absolute-auto-with-sibling-margin-bottom-expected.txt: Added.
        * fast/block/block-only/absolute-auto-with-sibling-margin-bottom.html: Added.
        * fast/block/block-only/absolute-height-stretch-expected.txt: Added.
        * fast/block/block-only/absolute-height-stretch.html: Added.
        * fast/block/block-only/absolute-left-auto-expected.txt: Added.
        * fast/block/block-only/absolute-left-auto.html: Added.
        * fast/block/block-only/absolute-left-right-top-bottom-auto-expected.txt: Added.
        * fast/block/block-only/absolute-left-right-top-bottom-auto.html: Added.
        * fast/block/block-only/absolute-nested-expected.txt: Added.
        * fast/block/block-only/absolute-nested.html: Added.
        * fast/block/block-only/absolute-nested2-expected.txt: Added.
        * fast/block/block-only/absolute-nested2.html: Added.
        * fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context-expected.txt: Added.
        * fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html: Added.
        * fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2-expected.txt: Added.
        * fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html: Added.
        * fast/block/block-only/absolute-simple-expected.txt: Added.
        * fast/block/block-only/absolute-simple.html: Added.
        * fast/block/block-only/absolute-width-shrink-to-fit-expected.txt: Added.
        * fast/block/block-only/absolute-width-shrink-to-fit.html: Added.
        * fast/block/block-only/absolute-width-stretch-expected.txt: Added.
        * fast/block/block-only/absolute-width-stretch.html: Added.
        * fast/block/block-only/absolute-with-static-block-position-nested-expected.txt: Added.
        * fast/block/block-only/absolute-with-static-block-position-nested.html: Added.
        * fast/block/block-only/almost-intruding-left-float-simple-expected.txt: Added.
        * fast/block/block-only/almost-intruding-left-float-simple.html: Added.
        * fast/block/block-only/border-simple-expected.txt: Added.
        * fast/block/block-only/border-simple.html: Added.
        * fast/block/block-only/fixed-nested-expected.txt: Added.
        * fast/block/block-only/fixed-nested.html: Added.
        * fast/block/block-only/float-left-when-container-has-padding-margin-expected.txt: Added.
        * fast/block/block-only/float-left-when-container-has-padding-margin.html: Added.
        * fast/block/block-only/floating-box-clear-both-simple-expected.txt: Added.
        * fast/block/block-only/floating-box-clear-both-simple.html: Added.
        * fast/block/block-only/floating-box-clear-right-simple-expected.txt: Added.
        * fast/block/block-only/floating-box-clear-right-simple.html: Added.
        * fast/block/block-only/floating-box-left-and-right-multiple-expected.txt: Added.
        * fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset-expected.txt: Added.
        * fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset.html: Added.
        * fast/block/block-only/floating-box-left-and-right-multiple.html: Added.
        * fast/block/block-only/floating-box-right-simple-expected.txt: Added.
        * fast/block/block-only/floating-box-right-simple.html: Added.
        * fast/block/block-only/floating-box-with-clear-siblings-expected.txt: Added.
        * fast/block/block-only/floating-box-with-clear-siblings.html: Added.
        * fast/block/block-only/floating-box-with-clear-simple-expected.txt: Added.
        * fast/block/block-only/floating-box-with-clear-simple.html: Added.
        * fast/block/block-only/floating-box-with-new-formatting-context-expected.txt: Added.
        * fast/block/block-only/floating-box-with-new-formatting-context.html: Added.
        * fast/block/block-only/floating-box-with-relative-positioned-sibling-expected.txt: Added.
        * fast/block/block-only/floating-box-with-relative-positioned-sibling.html: Added.
        * fast/block/block-only/floating-left-right-simple-expected.txt: Added.
        * fast/block/block-only/floating-left-right-simple.html: Added.
        * fast/block/block-only/floating-left-right-with-all-margins-expected.txt: Added.
        * fast/block/block-only/floating-left-right-with-all-margins.html: Added.
        * fast/block/block-only/floating-lefts-and-rights-simple-expected.txt: Added.
        * fast/block/block-only/floating-lefts-and-rights-simple.html: Added.
        * fast/block/block-only/floating-multiple-lefts-expected.txt: Added.
        * fast/block/block-only/floating-multiple-lefts-in-body-expected.txt: Added.
        * fast/block/block-only/floating-multiple-lefts-in-body.html: Added.
        * fast/block/block-only/floating-multiple-lefts-multiple-lines-expected.txt: Added.
        * fast/block/block-only/floating-multiple-lefts-multiple-lines.html: Added.
        * fast/block/block-only/floating-multiple-lefts.html: Added.
        * fast/block/block-only/floating-with-new-block-formatting-context-expected.txt: Added.
        * fast/block/block-only/floating-with-new-block-formatting-context.html: Added.
        * fast/block/block-only/margin-collapse-bottom-bottom-expected.txt: Added.
        * fast/block/block-only/margin-collapse-bottom-bottom.html: Added.
        * fast/block/block-only/margin-collapse-bottom-nested-expected.txt: Added.
        * fast/block/block-only/margin-collapse-bottom-nested.html: Added.
        * fast/block/block-only/margin-collapse-first-last-are-floating-expected.txt: Added.
        * fast/block/block-only/margin-collapse-first-last-are-floating.html: Added.
        * fast/block/block-only/margin-collapse-simple-expected.txt: Added.
        * fast/block/block-only/margin-collapse-simple.html: Added.
        * fast/block/block-only/margin-collapse-top-nested-expected.txt: Added.
        * fast/block/block-only/margin-collapse-top-nested.html: Added.
        * fast/block/block-only/margin-collapse-when-child-has-padding-border-expected.txt: Added.
        * fast/block/block-only/margin-collapse-when-child-has-padding-border.html: Added.
        * fast/block/block-only/margin-collapse-with-block-formatting-context-expected.txt: Added.
        * fast/block/block-only/margin-collapse-with-block-formatting-context.html: Added.
        * fast/block/block-only/margin-collapse-with-block-formatting-context2-expected.txt: Added.
        * fast/block/block-only/margin-collapse-with-block-formatting-context2.html: Added.
        * fast/block/block-only/margin-left-right-sizing-expected.txt: Added.
        * fast/block/block-only/margin-left-right-sizing-out-of-flow-expected.txt: Added.
        * fast/block/block-only/margin-left-right-sizing-out-of-flow.html: Added.
        * fast/block/block-only/margin-left-right-sizing.html: Added.
        * fast/block/block-only/margin-propagation-simple-content-height-expected.txt: Added.
        * fast/block/block-only/margin-propagation-simple-content-height.html: Added.
        * fast/block/block-only/margin-sibling-collapse-propagated-expected.txt: Added.
        * fast/block/block-only/margin-sibling-collapse-propagated.html: Added.
        * fast/block/block-only/margin-simple-expected.txt: Added.
        * fast/block/block-only/margin-simple.html: Added.
        * fast/block/block-only/negative-margin-simple-expected.txt: Added.
        * fast/block/block-only/negative-margin-simple.html: Added.
        * fast/block/block-only/padding-nested-expected.txt: Added.
        * fast/block/block-only/padding-nested.html: Added.
        * fast/block/block-only/padding-simple-expected.txt: Added.
        * fast/block/block-only/padding-simple.html: Added.
        * fast/block/block-only/relative-auto-expected.txt: Added.
        * fast/block/block-only/relative-auto-with-parent-offset-expected.txt: Added.
        * fast/block/block-only/relative-auto-with-parent-offset.html: Added.
        * fast/block/block-only/relative-auto.html: Added.
        * fast/block/block-only/relative-bottom-expected.txt: Added.
        * fast/block/block-only/relative-bottom.html: Added.
        * fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context-expected.txt: Added.
        * fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html: Added.
        * fast/block/block-only/relative-right-expected.txt: Added.
        * fast/block/block-only/relative-right.html: Added.
        * fast/block/block-only/relative-siblings-expected.txt: Added.
        * fast/block/block-only/relative-siblings.html: Added.
        * fast/block/block-only/relative-simple-expected.txt: Added.
        * fast/block/block-only/relative-simple.html: Added.

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

        Find on page selection color isn't adapted for dark mode.
        https://bugs.webkit.org/show_bug.cgi?id=187072
        rdar://problem/40354841

        Unreviewed test gardening.

        * fast/css/apple-system-control-colors-expected.txt: Use pure yellow for find.
        * fast/text/mark-matches-broken-line-rendering-expected.html:
        * fast/text/mark-matches-rendering-expected.html:
        Use -apple-system-find-highlight-background to work on all macOS versions.
        * platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Use pure yellow for find.

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

        [Web Animations] Make imported/mozilla/css-animations/test_animation-starttime.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183834
        <rdar://problem/40997932>

        Reviewed by Dean Jackson.

        This test now passes reliably so we remove any specific expectation. Another test needed to be modified to account for 
        the pending state being updated at a different time, so we just wait a frame to ensure the animation is started.

        * TestExpectations:
        * compositing/visible-rect/animated.html:

2018-06-28  Jer Noble  <jer.noble@apple.com>

        Unreviewed gardening; media/video-buffering-allowed.html is flakey due to not completing in time.

        Remove the artificial early timeout (1s) in this test.

        * media/video-buffering-allowed.html:

2018-06-28  Aditya Keerthi  <akeerthi@apple.com>

        REGRESSION (r232040): Cursor jumping in Safari text fields
        https://bugs.webkit.org/show_bug.cgi?id=187142
        <rdar://problem/41397577>

        Reviewed by Tim Horton.

        Added test to ensure that the 'selectionchange' event is only fired once per
        click in an editable node.

        * fast/events/ios/click-selectionchange-once-expected.txt: Added.
        * fast/events/ios/click-selectionchange-once.html: Added.

2018-06-28  Dirk Schulze  <krit@webkit.org>

        [css-masking] Update clip-path box mapping to unified box
        https://bugs.webkit.org/show_bug.cgi?id=185797

        Reviewed by Simon Fraser.

        Update existing tests and add new tests to check the slightly different behavior.

        * fast/masking/parsing-clip-path-shape-expected.txt:
        * fast/masking/parsing-clip-path-shape.html:
        * svg/clip-path/clip-path-shape-border-box-expected.svg: Added.
        * svg/clip-path/clip-path-shape-border-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-stroke.svg.
        * svg/clip-path/clip-path-shape-content-box-expected.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg.
        * svg/clip-path/clip-path-shape-content-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg.
        * svg/clip-path/clip-path-shape-fill.svg:
        * svg/clip-path/clip-path-shape-margin-box-expected.svg: Added.
        * svg/clip-path/clip-path-shape-margin-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-stroke.svg.
        * svg/clip-path/clip-path-shape-padding-box-expected.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg.
        * svg/clip-path/clip-path-shape-padding-box.svg: Copied from LayoutTests/svg/clip-path/clip-path-shape-fill.svg.
        * svg/clip-path/clip-path-shape-stroke.svg:

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

        Mark imported/blink/storage/indexeddb/blob-delete-objectstore-db.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=172864

        Unreviewed test gardening.

        * TestExpectations:

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

        Rebase LayoutTests/http/tests/contentextensions/subresource-redirect-blocked-expected.txt after r233269
        https://bugs.webkit.org/show_bug.cgi?id=187125

        Unreviewed.

        * http/tests/contentextensions/subresource-redirect-blocked-expected.txt:

2018-06-27  Dirk Schulze  <krit@webkit.org>

        -webkit-clip-path wrong offset for clipPath references
        https://bugs.webkit.org/show_bug.cgi?id=129246

        Reviewed by Simon Fraser.

        Add test for reference clip-path offset. Correct a broken test.
        All tests in the repo for references are interoperable between Gecko, Blink
        and WebKit now.

        * css3/masking/clip-path-reference-2-expected.html: Added.
        * css3/masking/clip-path-reference-2.html: Added.
        * css3/masking/clip-path-reference-userSpaceOnUse-expected.html:
        * css3/masking/clip-path-reference-userSpaceOnUse.html:

2018-06-27  Antti Koivisto  <antti@apple.com>

        Don't invoke post resolution callbacks when resolving computed style
        https://bugs.webkit.org/show_bug.cgi?id=187113
        <rdar://problem/41365766>

        Reviewed by Geoff Garen.

        * fast/dom/object-computed-style-event-expected.txt: Added.
        * fast/dom/object-computed-style-event.html: Added.

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

        Find on page selection color isn't adapted for dark mode.
        https://bugs.webkit.org/show_bug.cgi?id=187072
        rdar://problem/40354841

        Reviewed by Tim Horton.

        * fast/css/apple-system-control-colors-expected.txt: Updated.
        * fast/text/mark-matches-broken-line-rendering-expected.html: Ditto.
        * fast/text/mark-matches-rendering-expected.html: Ditto.

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

        Disable content blockers in NetworkLoadChecker except for ping loads
        https://bugs.webkit.org/show_bug.cgi?id=187083
        <rdar://problem/41440083>

        Reviewed by Chris Dumez.

        * http/tests/contentextensions/reload-without-contentextensions-expected.txt: Added.
        * http/tests/contentextensions/reload-without-contentextensions.html: Added.
        * http/tests/contentextensions/reload-without-contentextensions.html.json: Added.

2018-06-27  Simon Fraser  <simon.fraser@apple.com>

        https://hackernoon.com/ uses lots of layer backing store
        https://bugs.webkit.org/show_bug.cgi?id=186909
        rdar://problem/40257540

        Reviewed by Tim Horton.
        
        New test.

        * compositing/backing/backing-store-attachment-outside-viewport-expected.txt: Added.
        * compositing/backing/backing-store-attachment-outside-viewport.html: Added.

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

        AX: [iOS] Remove the ability to set keyboard focus when VoiceOver takes focus
        https://bugs.webkit.org/show_bug.cgi?id=187076

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/accessibility-focus-do-not-set-focus-expected.txt: Added.
        * accessibility/ios-simulator/accessibility-focus-do-not-set-focus.html: Added.
        * accessibility/ios-simulator/dom-focus-fires-on-correct-element-expected.txt: Removed.
        * accessibility/ios-simulator/dom-focus-fires-on-correct-element.html: Removed.

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

        Import wpt CORP tests
        https://bugs.webkit.org/show_bug.cgi?id=187027

        Reviewed by Chris Dumez.

        Skipping tests for WK1.

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

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

        REGRESSION (r231479): Unable to buy Odeon cinema tickets in STP (bogus 'X-Frame-Options' to 'SAMEORIGIN')
        https://bugs.webkit.org/show_bug.cgi?id=186090
        <rdar://problem/40692595>

        Reviewed by Andy Estes.

        Add a test to ensure that we allow a same-origin page with "X-Frame-Options: SAMEORIGIN" to
        load as a result of a redirected cross-origin POST request.

        * http/tests/security/XFrameOptions/cross-origin-iframe-post-form-to-parent-same-origin-x-frame-options-page-allow-expected.txt: Added.
        * http/tests/security/XFrameOptions/cross-origin-iframe-post-form-to-parent-same-origin-x-frame-options-page-allow.html: Added.
        * http/tests/security/XFrameOptions/resources/post-form-to-x-frame-options-parent-same-origin-allow.html: Added.
        * http/tests/security/XFrameOptions/resources/x-frame-options-parent-same-origin-allow.cgi:

2018-06-26  Saam Barati  <sbarati@apple.com>

        JSImmutableButterfly can't be allocated from a subspace with HeapCell::Kind::Auxiliary
        https://bugs.webkit.org/show_bug.cgi?id=186878
        <rdar://problem/40568659>

        Reviewed by Filip Pizlo.

        Make these test not susceptible to conservative scan leaks by ensuring at least
        one object gets collected when we allocate many of them. Before, these were just
        testing that a fixed number of objects were collected.

        * editing/selection/navigation-clears-editor-state-expected.txt:
        * editing/selection/navigation-clears-editor-state.html:
        * fast/dom/reference-cycle-leaks.html:
        * fast/misc/resources/test-observegc.js:
        * fast/misc/test-observegc-expected.txt:
        * platform/mac-wk2/plugins/refcount-leaks-expected.txt:
        * plugins/refcount-leaks-expected.txt:
        * plugins/refcount-leaks.html:

2018-06-26  Truitt Savell  <tsavell@apple.com>

        [iOS] Rebaseline two webanimations tests after r233164
        https://bugs.webkit.org/show_bug.cgi?id=187071

        Unreviewed gardening

        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/ios/webanimations/opacity-animation-yields-compositing-span-expected.txt: Added.

2018-06-26  Truitt Savell  <tsavell@apple.com>

        REGRESSION (r232314): Flaky Test: imported/w3c/web-platform-tests/streams/piping/error-propagation-forward.html
        https://bugs.webkit.org/show_bug.cgi?id=186161

        Unreviewed gardening.

        * TestExpectations:

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

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

        "It regressed JetStream between 5-8%" (Requested by saamyjoon
        on #webkit).

        Reverted changeset:

        "JSImmutableButterfly can't be allocated from a subspace with
        HeapCell::Kind::Auxiliary"
        https://bugs.webkit.org/show_bug.cgi?id=186878
        https://trac.webkit.org/changeset/233184

2018-06-26  Charlie Turner  <cturner@igalia.com>

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

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2018-06-26  Truitt Savell  <tsavell@apple.com>

        Layout Test http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=187053

        Unreviewed test gardening.

        * platform/wk2/TestExpectations:

2018-06-26  Eric Carlson  <eric.carlson@apple.com>

        Enable mock capture devices on the iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=186846
        <rdar://problem/41289134>

        Reviewed by Youenn Fablet.

        * platform/ios/TestExpectations: Unskip fast/mediastream/getUserMedia-default.html.

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

        Layout Test imported/mozilla/css-animations/test_animation-pausing.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=187041

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-06-26  Frederic Wang  <fwang@igalia.com>

        Import WPT tests for webmessaging
        https://bugs.webkit.org/show_bug.cgi?id=187001

        Reviewed by Javier Fernandez.

        Skip some webmessaging tests timing out.

        * TestExpectations:

2018-06-26  Zan Dobersek  <zdobersek@igalia.com>

        Crash in WebAnimation::runPendingPlayTask
        https://bugs.webkit.org/show_bug.cgi?id=186189

        Reviewed by Carlos Garcia Campos.

        * platform/wpe/TestExpectations: Remove crashing expectations for fixed tests.

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

        Import WPT fetch destination tests
        https://bugs.webkit.org/show_bug.cgi?id=186984

        Reviewed by Chris Dumez.

        Skipping tests for WK1 since they use service worker.

        * TestExpectations: Skipping timing out tests.
        * platform/ios-wk1/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2018-06-25  David Fenton  <david_fenton@apple.com>

        LayoutTest imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=187025

        Unreviewed test gardening, update Test Expectations to [Pass Failure Slow]

        * TestExpectations:

2018-06-25  Saam Barati  <sbarati@apple.com>

        JSImmutableButterfly can't be allocated from a subspace with HeapCell::Kind::Auxiliary
        https://bugs.webkit.org/show_bug.cgi?id=186878
        <rdar://problem/40568659>

        Reviewed by Mark Lam.

        Make these test not susceptible to conservative scan leaks by ensuring at least
        one object gets collected when we allocate many of them. Before, these were just
        testing that a fixed number of objects were collected.

        * editing/selection/navigation-clears-editor-state-expected.txt:
        * editing/selection/navigation-clears-editor-state.html:
        * fast/dom/reference-cycle-leaks.html:
        * fast/misc/resources/test-observegc.js:
        * fast/misc/test-observegc-expected.txt:
        * platform/mac-wk2/plugins/refcount-leaks-expected.txt:
        * plugins/refcount-leaks-expected.txt:
        * plugins/refcount-leaks.html:

2018-06-25  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Make WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains() wait for the network process before calling its callback
        https://bugs.webkit.org/show_bug.cgi?id=186903
        <rdar://problem/41350182>

        Reviewed by Chris Dumez.

        * http/tests/storageAccess/grant-storage-access-under-opener-expected.txt:
        * http/tests/storageAccess/grant-storage-access-under-opener.html:
            Moved the code block to the page's body instead of its head.
            Added an initial console log statement. The reason for these
            changes is that we're seeing flaky timeouts with no output.

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

        performance-api/performance-observer-no-document-leak.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=186938
        <rdar://problem/41379336>

        Unreviewed, skip test again as it is apparently still flaky.

        * TestExpectations:

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

        performance-api/performance-observer-no-document-leak.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=186938
        <rdar://problem/41379336>

        Unreviewed, move the call to gc() inside the setInterval() so we keep
        trying to gc() until the frame / document are destroyed (instead of
        only doing a single garbage collection).

        * TestExpectations:
        * performance-api/performance-observer-no-document-leak.html:

2018-06-25  Antoine Quint  <graouts@apple.com>

        REGRESSION: hardware-accelerated animation fails on inline element
        https://bugs.webkit.org/show_bug.cgi?id=186981
        <rdar://problem/41418697>

        Reviewed by Dean Jackson.

        * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * webanimations/opacity-animation-yields-compositing-expected.txt:
        * webanimations/opacity-animation-yields-compositing-span-expected.txt:
        * webanimations/opacity-animation-yields-compositing-span.html: Added.
        * webanimations/opacity-animation-yields-compositing.html:

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

        Add API to control mock media devices
        https://bugs.webkit.org/show_bug.cgi?id=186958

        Reviewed by Eric Carlson.

        * fast/mediastream/device-change-event-2-expected.txt: Added.
        * fast/mediastream/device-change-event-2.html: Added.

2018-06-25  Antoine Quint  <graouts@apple.com>

        [Web Animations] Make imported/mozilla/css-animations/test_animation-pausing.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183826
        <rdar://problem/40997412>

        Reviewed by Dean Jackson.

        This test now passes reliably.

        * TestExpectations:

2018-06-25  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Zero-prefix (if necessary) RSA-OAEP encryption, RSA-PSS signing output
        https://bugs.webkit.org/show_bug.cgi?id=186967

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations: Remove flaky failures for RSA-OAEP and RSA-PSS tests.
        * platform/wpe/TestExpectations: Ditto.

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

        Fix the composition underline to be transformed by -apple-color-filter
        https://bugs.webkit.org/show_bug.cgi?id=186983
        rdar://problem/40515558

        Reviewed by Zalan Bujtas.
        
        * css3/color-filters/color-filter-composition-underline-color-expected.html: Added.
        * css3/color-filters/color-filter-composition-underline-color.html: Added.

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

        [Mail] Use the Mail Viewer width as the base for resolving horizontal viewport units
        https://bugs.webkit.org/show_bug.cgi?id=186585
        <rdar://problem/30685325>

        Reviewed by Tim Horton.

        * fast/dynamic/mail-autosize-viewport-unit-expected.txt: Added.
        * fast/dynamic/mail-autosize-viewport-unit.html: Added.

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

        Layout Test imported/mozilla/css-animations/test_animation-ready.html is failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=186807

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Disable WebSocket in WatchOS
        https://bugs.webkit.org/show_bug.cgi?id=186931
        <rdar://problem/39584458>

        Reviewed by Wenson Hsieh.

        * TestExpectations:
        * fast/dom/Window/watchos/no-websocket-in-watchos-expected.txt: Added.
        * fast/dom/Window/watchos/no-websocket-in-watchos.html: Added.

2018-06-22  Tim Horton  <timothy_horton@apple.com>

        Make it possible to add a border around loading or failed-to-load images
        https://bugs.webkit.org/show_bug.cgi?id=186614
        <rdar://problem/39050152>

        Reviewed by Zalan Bujtas.

        * http/tests/images/loading-image-border-expected.html: Added.
        * http/tests/images/loading-image-border.html: Added.
        * http/tests/images/loading-image-no-border-expected.html: Added.
        * http/tests/images/loading-image-no-border.html: Added.
        * platform/wk2/TestExpectations:
        Add a test ensuring that the setting works correctly.
        These and similar tests do not currently work in WebKitTestRunner, so they are skipped there.

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

        [WinCairo] Unreviewed test gardening.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/css3/selectors3/html/css3-modsel-175a-expected.png: Added.
        * platform/wincairo/editing/style/apply-style-iframe-crash-expected.txt: Added.

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

        Incoming G722 doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=186307
        <rdar://problem/40809745>

        Reviewed by Eric Carlson.

        * webrtc/audio-peer-connection-g722-expected.txt: Added.
        * webrtc/audio-peer-connection-g722.html: Added.
        * webrtc/routines.js:

2018-06-22  David Fenton  <david_fenton@apple.com>

         LayoutTests imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.html and imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.html are flaky.
        https://bugs.webkit.org/show_bug.cgi?id=186940

        Unreviewed test gardening.

        * TestExpectations:

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

        performance-api/performance-observer-no-document-leak.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=186938

        Unreviewed, temporarily skip it while I investigate.

        * TestExpectations:

2018-06-22  Michael Catanzaro  <mcatanzaro@igalia.com>

        REGRESSION(r230950): [GTK] WebKit::CoordinatedBackingStoreTile::setBackBuffer(): WebKitWebProcess killed by SIGSEGV (ASSERTION FAILED: it != m_tiles.end())
        https://bugs.webkit.org/show_bug.cgi?id=186206

        Unreviewed, remove crash expectations for crashes introduced by r230950.

        * platform/gtk/TestExpectations:

2018-06-21  David Fenton  <david_fenton@apple.com>

        Skip imported/w3c/web-platform-tests/css/css-display/display-contents-first-letter-002.html.
        https://bugs.webkit.org/show_bug.cgi?id=186901

        Unreviewed test gardening.

        * TestExpectations:

2018-06-15  Jer Noble  <jer.noble@apple.com>

        Address fullscreen api CSS env feedback
        https://bugs.webkit.org/show_bug.cgi?id=186684

        Reviewed by Simon Fraser.

        * fullscreen/fullscreen-env-expected.txt: Added.
        * fullscreen/fullscreen-env.html: Added.
        * fullscreen/fullscreen-inset-top-expected.txt: Removed.
        * fullscreen/fullscreen-inset-top.html: Removed.

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

        RenderSVGInline has to be inline always regardless of its css display value
        https://bugs.webkit.org/show_bug.cgi?id=186656

        Reviewed by Zalan Bujtas.

        * svg/dom/svg-inline-text-display-block-crash-expected.txt: Added.
        * svg/dom/svg-inline-text-display-block-crash.html: Added.

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

        Do not reuse generated inline renderer for the first letter.
        https://bugs.webkit.org/show_bug.cgi?id=186657
        <rdar://problem/41157892>

        Reviewed by Simon Fraser.

        * fast/text/first-letter-with-display-contents-crash-expected.txt: Added.
        * fast/text/first-letter-with-display-contents-crash.html: Added.

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

        JSPerformanceObserverCallback creates a GC strongly-referenced Function that is never cleaned up
        https://bugs.webkit.org/show_bug.cgi?id=186873
        <rdar://problem/41271574>

        Reviewed by Simon Fraser.

        * performance-api/performance-observer-callback-after-gc-expected.txt: Added.
        * performance-api/performance-observer-callback-after-gc.html: Added.
        Add layout test to make sure that a performance observer's callback still gets called, even if
        the JS does not keep the performance observer alive.

        * performance-api/performance-observer-no-document-leak-expected.txt: Added.
        * performance-api/performance-observer-no-document-leak.html: Added.
        * performance-api/resources/performance-observer-no-document-leak-frame.html: Added.
        Add layout test coverage to make sure the document does not leak if PerformanceObserver was
        used.

2018-06-20  Antoine Quint  <graouts@apple.com>

        [Web Animations] Make imported/mozilla/css-animations/test_animation-ready.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183830
        <rdar://problem/40997539>

        Reviewed by Dean Jackson.

        This test now passes reliably.

        * TestExpectations:

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

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

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations: Mark as a flaky timeout.

2018-06-21  Fujii Hironori  <Hironori.Fujii@sony.com>

        [GStreamer] ASSERTION FAILED: end.isValid() in PlatformTimeRanges::add
        https://bugs.webkit.org/show_bug.cgi?id=186880

        Reviewed by Xabier Rodriguez-Calvar.

        * platform/gtk/TestExpectations: Removed Crash marks of
        compositing/geometry/clipped-video-controller.html,
        fast/canvas/webgl/oes-texture-half-float-with-video.html,
        fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565.html,
        fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html,
        fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html,
        fast/events/media-focus-in-standalone-media-document.html,
        fullscreen/video-controls-timeline.html,
        http/tests/appcache/video.html, and compositing/video/poster.html.

2018-06-21  Fujii Hironori  <Hironori.Fujii@sony.com>

        [GTK] http/tests/misc/bubble-drag-events.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=182352

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations:
        Marked http/tests/misc/bubble-drag-events.html as [ Failure ] not
        [ Failure Timeout Crash ].
        Unmarked http/tests/misc/cached-scripts.html.

2018-06-21  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Handle various timeouts by adjusting or
        adding the appropriate test expectations.

        * platform/wpe/TestExpectations:

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

        Layout Test imported/mozilla/css-animations/test_pseudoElement-get-animations.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=186868

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-06-20  David Fenton  <david_fenton@apple.com>

        rebaseline WebCryptoAPI tests for High Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=186863

        Unreviewed test gardening.

        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.

2018-06-20  Alicia Boya García  <aboya@igalia.com>

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

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

2018-06-20  Antoine Quint  <graouts@apple.com>

        [Web Animations] Make imported/mozilla/css-transitions/test_element-get-animations.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183841
        <rdar://problem/40998101>

        Reviewed by Dean Jackson.

        This test now passes reliably.

        * TestExpectations:

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

        [Web Animations] Make imported/mozilla/css-animations/test_pseudoElement-get-animations.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183818
        <rdar://problem/40997015>

        Reviewed by Dean Jackson.

        This test now passes reliably.

        * TestExpectations:

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

        Layout Test imported/mozilla/css-animations/test_animation-playstate.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=186807

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Unpainted area while scrolling in Reader is white
        https://bugs.webkit.org/show_bug.cgi?id=186541
        <rdar://problem/40471363>

        Reviewed by Timothy Hatcher.

        * tiled-drawing/background-transparency-toggle-expected.txt:
        This is a progression; the extended background color now matches the color
        of the page at this point (#CCCCCC is the specified body background, black
        with 0.2 alpha, blended with the root's white background).

        * tiled-drawing/simple-document-with-dynamic-background-color-expected.txt: Added.
        * tiled-drawing/simple-document-with-dynamic-background-color.html: Added.
        Added a test that ensures that dynamically changing the background color
        actually applies to the RenderView background. Previously, the second layer
        tree dump would have a black background where it should be red.

2018-06-19  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, revert some bad gardening.

        I should not have added image results for a reftest.

        * platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/directory-knowntags-001-expected.png: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-expected.png: Removed.

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

        [Web Animations] Make imported/mozilla/css-animations/test_animation-playstate.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183828
        <rdar://problem/40997469>

        Reviewed by Dean Jackson.

        This test now passes reliably.

        * TestExpectations:

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

        [WebKit on watchOS] Vend username text content type when using scribble in login fields
        https://bugs.webkit.org/show_bug.cgi?id=186791
        <rdar://problem/41226935>

        Reviewed by Beth Dakin.

        Add a new layout test verifying that:
        1. There is no text content type for a lone plain text input.
        2. The text content type for a plain text input preceding a password field is "username".
        3. The text content type for a lone plain text input with `autocomplete="username"` is "username".

        * fast/forms/watchos/username-text-content-type-expected.txt: Added.
        * fast/forms/watchos/username-text-content-type.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.textContentType):

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

        Layout Test imported/mozilla/css-transitions/test_animation-cancel.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=186807

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Network Preflights do not show in WebInspector after moving CORS checks to NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=186312
        <rdar://problem/40495434>

        Reviewed by Chris Dumez.

        * http/wpt/fetch/inspect-preflight-expected.txt: Added.
        * http/wpt/fetch/inspect-preflight.html: Added.
        * http/wpt/fetch/resources/preflight.py: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        Layout Test imported/mozilla/css-animations/test_animation-cancel.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184011

        Unreviewed.

        This test should pass reliably as of r232960 thanks to the fix to webkit.org/b/183821.

        * TestExpectations:

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

        [Web Animations] Make imported/mozilla/css-transitions/test_animation-cancel.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183821
        <rdar://problem/40997034>

        Reviewed by Dean Jackson.

        This test now passes reliably.

        * TestExpectations:

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

        RTCRtpSender.replaceTrack(null) ends current track
        https://bugs.webkit.org/show_bug.cgi?id=184911
        <rdar://problem/40758138>

        Reviewed by Eric Carlson.

        Added checks for readyState to ensure the track remains live.
        Split the main test into several tests to ease readability.

        * webrtc/video-replace-track-to-null-expected.txt:
        * webrtc/video-replace-track-to-null.html:

2018-06-18  Antoine Quint  <graouts@apple.com>

        [Web Animations] Implement "Starting of transitions" section from CSS Transitions
        https://bugs.webkit.org/show_bug.cgi?id=186517
        <rdar://problem/41000798>

        Reviewed by Dean Jackson.

        Implementing the CSS Transitions spec for starting transitions highlighted a couple of issues with existing tests.

        * TestExpectations: The test imported/mozilla/css-transitions/test_animation-ready.html now passes reliably.
        * animations/transition-and-animation-3-expected.txt:
        * animations/transition-and-animation-3.html: This test was mistakenly expecting a retargeted transition to pick
        up from the underlying value (100px) rather than the interrupted transition's value (~0px). We update the test
        to be more obvious about what it is testing and with the correct behavior per the spec.
        * transitions/background-position-transitions-expected.txt:
        * transitions/background-position-transitions.html: Shorthand properties are expected to yield a transitiong for
        each shorthand property, so we update this test to check the background-position shorthand properties.
        * transitions/resources/transition-test-helpers.js: We uncovered a crash, which is not new to this patch, that forces
        us to work around using the background-position longhand properties. So we work around this by reading from the shorthand
        background-position property and manually parsing the value. Fixing this crash is tracked by webkit.org/b/186766.
        * transitions/transition-to-from-auto-expected.txt:
        * transitions/transition-to-from-auto.html: Update the test to check that we only yield transitions when interpolating
        between non-auto values, as mandated by the spec.

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

        Document should not be mutated under SMILTimeContainer::updateAnimations()
        https://bugs.webkit.org/show_bug.cgi?id=186658

        Reviewed by Simon Fraser.

        * svg/dom/css-animate-input-foucs-crash-expected.txt: Added.
        * svg/dom/css-animate-input-foucs-crash.html: Added.

2018-06-18  Wenson Hsieh  <wenson_hsieh@apple.com>

        fast/forms/button-set-display-flex-justifyContent-center.html is failing on macOS Mojave
        https://bugs.webkit.org/show_bug.cgi?id=186776
        <rdar://problem/41104962>

        Fix a failing layout test by making the reference markup robust for changes to system button text color. This
        system color is different in macOS Mojave, which causes this layout test to fail.

        Reviewed by Beth Dakin.

        * fast/forms/button-set-display-flex-justifyContent-center-expected.html:

2018-06-18  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/directory-knowntags-001-expected.png: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/woff2/directory-knowntags-001-expected.png.
        * platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-expected.png: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/woff2/tabledata-glyf-origlength-003-expected.png.

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

        Validate Cross-Origin-Resource-Policy for resources cached in the MemoryCache
        https://bugs.webkit.org/show_bug.cgi?id=186639
        <rdar://problem/41106984>

        Reviewed by Geoffrey Garen.

        * http/wpt/cross-origin-resource-policy/image-in-iframe-loads-expected.txt: Added.
        * http/wpt/cross-origin-resource-policy/image-in-iframe-loads.html: Added.
        * http/wpt/cross-origin-resource-policy/resources/iframeImage.html: Added.
        * http/wpt/cross-origin-resource-policy/resources/image.py:
        (main):

2018-06-18  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Manage the current set of CSS3 Filters and
        legacy animation engine failures. Add the necessary failure expectations
        and missing layout test baselines.

        * platform/wpe/TestExpectations:
        * platform/wpe/legacy-animation-engine/css3/filters/composited-during-animation-layertree-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/css3/filters/composited-during-transition-layertree-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
        * platform/wpe/legacy-animation-engine/media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition-expected.txt: Added.

2018-06-18  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Updating or adding baselines for a quadruple
        of tests that are otherwise failing with a text-only failure.

        * platform/wpe/fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt: Added.
        * platform/wpe/fast/canvas/webgl/webgl-draw-buffers-expected.txt:
        * platform/wpe/fullscreen/full-screen-layer-dump-expected.txt: Added.
        * platform/wpe/js/dom/constructor-length-expected.txt:

2018-06-18  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Adding platform-specific baselines for
        WebCrypto tests whose baselines were changed in r232903.

        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.

2018-06-17  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Manage the 8 crashing tests that are failing
        due to improper std::optional handling.

        * platform/wpe/TestExpectations:

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

        Anonymous block collapsing can destroy the renderer's parent.
        https://bugs.webkit.org/show_bug.cgi?id=186655
        <rdar://problem/41157554>

        Reviewed by Antti Koivisto.

        * fast/text/first-letter-with-anon-wrapper-crash-expected.txt: Added.
        * fast/text/first-letter-with-anon-wrapper-crash.html: Added.

2018-06-17  Michael Catanzaro  <mcatanzaro@igalia.com>

        More unreviewed GTK test gardening.

        * platform/gtk/TestExpectations:

2018-06-17  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening.

        This primarily adds new expected results after the last WPT import.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/woff2/directory-knowntags-001-expected.png: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/woff2/tabledata-glyf-origlength-003-expected.png: Added.

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

        [WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 3)
        https://bugs.webkit.org/show_bug.cgi?id=186442
        <rdar://problem/40879364>

        Reviewed by Darin Adler.

        Rename extrazoom layout test directories to watchos.

        * TestExpectations:
        * fast/css/watchos/viewport-units-shrink-to-fit-expected.txt: Renamed from LayoutTests/fast/css/extrazoom/viewport-units-shrink-to-fit-expected.txt.
        * fast/css/watchos/viewport-units-shrink-to-fit.html: Renamed from LayoutTests/fast/css/extrazoom/viewport-units-shrink-to-fit.html.
        * fast/dom/Window/watchos/window-get-real-screen-dimensions-expected.txt: Renamed from LayoutTests/fast/dom/Window/extrazoom/window-get-real-screen-dimensions-expected.txt.
        * fast/dom/Window/watchos/window-get-real-screen-dimensions.html: Renamed from LayoutTests/fast/dom/Window/extrazoom/window-get-real-screen-dimensions.html.
        * fast/events/watchos/change-focus-during-change-event-expected.txt: Renamed from LayoutTests/fast/events/extrazoom/change-focus-during-change-event-expected.txt.
        * fast/events/watchos/change-focus-during-change-event.html: Renamed from LayoutTests/fast/events/extrazoom/change-focus-during-change-event.html.
        * fast/events/watchos/double-tap-to-zoom-on-full-width-text-expected.txt: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-on-full-width-text-expected.txt.
        * fast/events/watchos/double-tap-to-zoom-on-full-width-text.html: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-on-full-width-text.html.
        * fast/events/watchos/double-tap-to-zoom-with-large-text-expected.txt: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-with-large-text-expected.txt.
        * fast/events/watchos/double-tap-to-zoom-with-large-text.html: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-with-large-text.html.
        * fast/forms/watchos/delete-content-in-text-field-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/delete-content-in-text-field-expected.txt.
        * fast/forms/watchos/delete-content-in-text-field.html: Renamed from LayoutTests/fast/forms/extrazoom/delete-content-in-text-field.html.
        * fast/forms/watchos/edit-text-field-calls-injected-bundle-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/edit-text-field-calls-injected-bundle-expected.txt.
        * fast/forms/watchos/edit-text-field-calls-injected-bundle.html: Renamed from LayoutTests/fast/forms/extrazoom/edit-text-field-calls-injected-bundle.html.
        * fast/forms/watchos/form-control-label-text-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/form-control-label-text-expected.txt.
        * fast/forms/watchos/form-control-label-text.html: Renamed from LayoutTests/fast/forms/extrazoom/form-control-label-text.html.
        * fast/forms/watchos/time-picker-value-change-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/time-picker-value-change-expected.txt.
        * fast/forms/watchos/time-picker-value-change.html: Renamed from LayoutTests/fast/forms/extrazoom/time-picker-value-change.html.
        * fast/viewport/watchos/viewport-adaptations-after-navigation-expected.txt: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-adaptations-after-navigation-expected.txt.
        * fast/viewport/watchos/viewport-adaptations-after-navigation.html: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-adaptations-after-navigation.html.
        * fast/viewport/watchos/viewport-disable-extra-zoom-adaptations-expected.txt: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations-expected.txt.
        * fast/viewport/watchos/viewport-disable-extra-zoom-adaptations.html: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html.
        * fast/visual-viewport/watchos/layout-viewport-after-scrolling-and-resizing-expected.txt: Renamed from LayoutTests/fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing-expected.txt.
        * fast/visual-viewport/watchos/layout-viewport-after-scrolling-and-resizing.html: Renamed from LayoutTests/fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html.

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

        Rename Document::hasHadActiveMediaStreamTrack to Document::hasHadCaptureMediaStreamTrack
        https://bugs.webkit.org/show_bug.cgi?id=186743
        rdar://problem/41151193

        Reviewed by Eric Carlson.

        * fast/mediastream/media-devices-enumerate-devices.html:

2018-06-17  Carlos Eduardo Ramalho  <cadubentzen@gmail.com>

        [GTK] Correct behavior for dark themes
        https://bugs.webkit.org/show_bug.cgi?id=186219

        Update expectations in reftests expected to fail due to not
        styling text inputs with GTK when color is different than default color.

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations:

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

        Sync additional web-platform-tests directories up to 197cdad
        https://bugs.webkit.org/show_bug.cgi?id=186356

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/ios-wk2/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/Screen-pixelDepth-Screen-colorDepth001-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/elementFromPoint-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-smooth-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrolling-quirks-vs-nonquirks-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/cors/client-hint-request-headers-expected.txt: Added.
        * tests-options.json:

2018-06-15  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, temporarily(?) revert some GTK crash expectations

        These tests are not crashing on the GTK release bot, only on EWS. I want to see backtraces
        and make sure they weren't just victims of our memory pressure handler. We can restore
        these expectations again if they continue to crash on the EWS, in which case we need to
        acquire backtraces for them.

        * platform/gtk/TestExpectations:

2018-06-15  Antti Koivisto  <antti@apple.com>

        Semantic colors should not be transformed by color-filter
        https://bugs.webkit.org/show_bug.cgi?id=186566
        <rdar://problem/40705739>

        Reviewed by Simon Fraser.

        * css3/color-filters/color-filter-ignore-semantic-expected.html: Added.
        * css3/color-filters/color-filter-ignore-semantic.html: Added.

2018-06-15  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Mark tests that are failing on the EWS test queue (v3)

        Unreviewed GTK gardening.

        * platform/gtk/TestExpectations:

2018-06-15  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening

        * platform/gtk/TestExpectations:

2018-06-15  Timothy Hatcher  <timothy@apple.com>

        Update results for fast/css/apple-system-control-colors.html

        https://bugs.webkit.org/show_bug.cgi?id=186668

        Unreviewed test gardening.

        * fast/css/apple-system-control-colors-expected.txt: Updated for 10.13.
        * platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Copied from LayoutTests/fast/css/apple-system-control-colors-expected.txt.

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

        Layout Test platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=180171

        Unreviewed.

        As per dashboard, test is no longer flaky.
        There might be a need to update it when bots have VCP support enabled.

        * platform/mac/TestExpectations:
        Removed flaky expectation.

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

        imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html is flaky due to the order of some console log messages
        https://bugs.webkit.org/show_bug.cgi?id=186661

        Unreviewed.

        * TestExpectations: Stop outputting console log lines.

2018-06-15  Michael Catanzaro  <mcatanzaro@igalia.com>

        [WPE][GTK][WebGL] Layout test fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=181659
        <rdar://problem/39175593>

        Unreviewed. Miguel has verified that it's OK for this test to fail, so skip it.

        * platform/gtk/TestExpectations:

2018-06-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Mark tests that are failing on the EWS test queue (v2)

        Unreviewed GTK gardening.

        * platform/gtk/TestExpectations:

2018-06-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Mark tests that are failing on the EWS test queue

        Unreviewed GTK gardening.

        * platform/gtk/TestExpectations:

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

        Unreviewed, rolling out r232823.

        This caused both test timeouts and api failures.

        Reverted changeset:

        "[Mail] Use the Mail Viewer width as the base for resolving
        horizontal viewport units"
        https://bugs.webkit.org/show_bug.cgi?id=186585
        https://trac.webkit.org/changeset/232823

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

        AX: Crash in AccessibilityNodeObject::textUnderElement(WebCore::AccessibilityTextUnderElementMode) const + 536
        https://bugs.webkit.org/show_bug.cgi?id=186629

        Reviewed by Chris Fleizach.

        * accessibility/hidden-object-text-value-crash-expected.txt: Added.
        * accessibility/hidden-object-text-value-crash.html: Added.

2018-06-14  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Shortcut classification for redirect to prevalent resource
        https://bugs.webkit.org/show_bug.cgi?id=186627
        <rdar://problem/41132308>

        Reviewed by Brent Fulgham.

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

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

        Apply CSP checks before Content blocker checks in NetworkLoadChecker as done by CachedResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=186550

        Reviewed by Alex Christensen.

        * http/tests/contentextensions/fetch-redirect-blocked-expected.txt: Added.
        * http/tests/contentextensions/fetch-redirect-blocked.html: Added.
        * http/tests/contentextensions/fetch-redirect-blocked.html.json: Added.
        * http/tests/contentextensions/resources/subresource-redirect.php:

2018-06-14  Timothy Hatcher  <timothy@apple.com>

        Expose more semantic system colors.

        https://bugs.webkit.org/show_bug.cgi?id=186609
        rdar://problem/39287277

        Reviewed by Tim Horton.

        * fast/css/apple-system-control-colors.html: Updated for new colors.
        * fast/css/apple-system-control-colors-expected.txt: Ditto.

2018-06-14  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r232834.

        * platform/gtk/TestExpectations:

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

        [Mail] Use the Mail Viewer width as the base for resolving horizontal viewport units
        https://bugs.webkit.org/show_bug.cgi?id=186585
        <rdar://problem/30685325>

        Reviewed by Tim Horton.

        * fast/dynamic/mail-autosize-viewport-unit-expected.txt: Added.
        * fast/dynamic/mail-autosize-viewport-unit.html: Added.

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

        PSON: http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html ASSERTS with process swap enabled
        https://bugs.webkit.org/show_bug.cgi?id=186545

        Reviewed by Brady Eidson.

        Attempt to mark the test as non-flaky now that it no longer relies on sync'ing from the WebProcess
        to the UIProcess.

        * platform/wk2/TestExpectations:

2018-06-13  David Fenton  <david_fenton@apple.com>

        [macOS Debug WK1] LayoutTest fast/parser/xml-error-adopted.xml is a flaky timeout.
        https://bugs.webkit.org/show_bug.cgi?id=186581

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-06-13  Mark Lam  <mark.lam@apple.com>

        Gardening: Layout Test js/error-should-not-strong-reference-global-object.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=186372

        Not reviewed.

        Speculative fix to green the bots plus improved the error message logging to get
        more info if this fails again. 

        * js/error-should-not-strong-reference-global-object.html:

2018-06-13  Timothy Hatcher  <timothy@apple.com>

        Input form controls have a white background in dark mode, when they should not.

        https://bugs.webkit.org/show_bug.cgi?id=186577
        rdar://problem/39258325

        Reviewed by Tim Horton.

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

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

        Add console logging to test case to help investigate flaky timeouts
        https://bugs.webkit.org/show_bug.cgi?id=186603
        <rdar://problem/41096614>

        Unreviewed test gardening.

        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
            Now has step-by-step console logging so that (hopefully) the flaky timeouts don't produce empty output.

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

        TileFirstPaint strategy for async image decoding should be disabled for non root RenderLayers
        https://bugs.webkit.org/show_bug.cgi?id=186336
        <rdar://problem/40808099>

        Reviewed by Simon Fraser.

        * fast/images/async-image-composited-show-expected.html: Added.
        * fast/images/async-image-composited-show.html: Added.

2018-06-13  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Mark some flaky tests and expected failures.

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2018-06-13  Thibault Saunier  <tsaunier@igalia.com>

        [WPE] Build getUserMedia support
        https://bugs.webkit.org/show_bug.cgi?id=186547

        Reviewed by Alejandro G. Castro.

        * platform/gtk/TestExpectations: Mark some tests as potentially passing (they fail only
        when built in debug mode).
        * platform/wpe/TestExpectations: Enable MediaStream tests.

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

        Update expectations for WebCryptoAPI generateKey tests
        https://bugs.webkit.org/show_bug.cgi?id=186591

        Unreviewed test gardening.

        These tests were split and moved around several times, and expectation
        files for old names stuck around.

        * TestExpectations: Remove reference to long-removed test.
        * platform/gtk/TestExpectations: Remove reference to long-removed test.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt: Copied from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt: Copied from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Copied from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker-expected.txt.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.https.worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.https.worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed.

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

        A few layout tests are failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=186562

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Complex text handling should opt out of bounded text layout.
        https://bugs.webkit.org/show_bug.cgi?id=186571
        <rdar://problem/41060908>

        Reviewed by Tim Horton.

        * fast/text/complex-long-text-crash-expected.txt: Added.
        * fast/text/complex-long-text-crash.html: Added.

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

        Unreviewed, rolling out r232774.

        Breaks internal builds.

        Reverted changeset:

        "Complex text handling should opt out of bounded text layout."
        https://bugs.webkit.org/show_bug.cgi?id=186571
        https://trac.webkit.org/changeset/232774

2018-06-07  Justin Fan  <justin_fan@apple.com>

        Import the 2.0.0 version of Khronos WebGL conformance suite
        https://bugs.webkit.org/show_bug.cgi?id=181293
        <rdar://problem/40654103>

        Reviewed by Dean Jackson.

        Original description and patch by Zan Dobersek <zdobersek@igalia.com>. 
        Retrying patch with up-to-date revision of conformance suite:

        "Import the 2.0.0 version of the WebGL conformance suite that's
        maintained under the Khronos organization on GitHub:
        https://github.com/KhronosGroup/WebGL.git

        The following revision of this repository has been used for importing:
        8ea92581353d18f50d25159489897ae634eb23b1

        For importing purposes, the generate-webgl-tests.py script is modified
        to import tests at version 2.0.0 or below. 2.0 is now used as the
        default version for importing purposes. Additionally, the
        GreaterThanOrEqualToVersion function is fixed to correctly compare 2.x
        versions against 1.x.

        The following generate-webgl-tests.py invocation was used:
        $ python generate-webgl-tests.py -e -w ~/WebGL/conformance-suites/2.0.0

        The 2.0.0 version of the conformance suite is composed of three parts:
        - tests under conformance/ cover WebGL1 functionality,
        - tests under conformance2/ cover WebGL2 functionality,
        - tests under deqp/ are a port of the dEQP suite.
        webkit-webgl-test-harness.js file is added under webgl/2.0.0/resources/
        to properly integrate the imported tests with the WebKit testing
        facilities.

        The complete suite is for now skipped on all platforms. WebGL1 tests
        should be passing in majority, with failures in that part of the suite
        mirroring the ones experienced in the current 1.0.2 and 1.0.3 suites.
        The WebGL2 support is still incomplete, and the conformance2/ pass rate
        will reflect that. dEQP in majority utilizes WebGL2, so the pass rate
        is similarly poor.

        List of imported conformance suite files is omitted for brevity."

        * TestExpectations: Skip the WebGL 1 (conformance) and WebGL 2 (conformance2) tests
        * webgl/2.0.0/conformance: Added.
        * webgl/2.0.0/conformance2: Added.
        * webgl/2.0.0/deqp: Added.
        * webgl/2.0.0/resources: Added.
        * webgl/2.0.0/resources/webkit-webgl-test-harness.js:
        (window.layoutTestController.window.console.log):
        (window.layoutTestController.window.console.error):
        (log):
        (window.webglTestHarness.reportResults):
        (window.webglTestHarness.notifyFinished):
        * webgl/generate-webgl-tests.py:
        (GreaterThanOrEqualToVersion):
        * webgl/resources/js-test-pre.js:
        (window.console.log):
        (window.console.error):
        (initNonKhronosFramework):
        (this.initTestingHarness):
        (nonKhronosFrameworkNotifyDone):
        (reportTestResultsToHarness):
        (notifyFinishedToHarness):
        (_logToConsole):
        (enableJSTestPreVerboseLogging):
        (description):
        (_addSpan):
        (debug):
        (escapeHTML):
        (testPassed):
        (testFailed):
        (areArraysEqual):
        (isMinusZero):
        (isResultCorrect):
        (stringify):
        (evalAndLog):
        (shouldBe):
        (shouldNotBe):
        (shouldBeTrue):
        (shouldBeFalse):
        (shouldBeNaN):
        (shouldBeNull):
        (shouldBeEqualToString):
        (shouldEvaluateTo):
        (shouldBeNonZero):
        (shouldBeNonNull):
        (shouldBeUndefined):
        (shouldBeDefined):
        (shouldBeGreaterThanOrEqual):
        (expectTrue):
        (shouldThrow):
        (assertMsg):
        (gc.gcRec):
        (gc):
        (finishTest):
        * webgl/resources/webgl-test-harness.js:
        (log):
        (try.request.onreadystatechange):
        (loadTextFileAsynchronous):
        (getMajorVersion):
        (getURLWithOptions):
        (greaterThanOrEqualToVersion):
        (copyObject):
        (toCamelCase):
        (getFileListImpl):
        (getFileList):
        (FilterURL):
        (TestFile):
        (Test):
        (TestHarness):
        (TestHarness.prototype.addFiles_):
        (TestHarness.prototype.runTests):
        (TestHarness.prototype.setTimeout):
        (TestHarness.prototype.clearTimeout):
        (TestHarness.prototype.startNextTest):
        (TestHarness.prototype.startTest):
        (TestHarness.prototype.getTest):
        (TestHarness.prototype.reportResults):
        (TestHarness.prototype.dequeTest):
        (TestHarness.prototype.notifyFinished):
        (TestHarness.prototype.timeout):
        (TestHarness.prototype.setTimeoutDelay):
        (WebGLTestHarnessModule):

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

        Unreviewed, rebaseline RSA-PSS tests for High Sierra.

        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Add missing whitespace.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Ditto.

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

        Unreviewed followup for r232736
        https://bugs.webkit.org/show_bug.cgi?id=185698

        Consider the case when the SVG animation starts before requestAnimationFrame()
        is called. Store the value of animItem and compare it later with the value
        of animItem after detaching it from the animated animList.

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

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

        Mark inspector/console/webcore-logging.html as flaky on mac-wk2 debug.
        https://bugs.webkit.org/show_bug.cgi?id=186425

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Mark media/video-buffering-allowed.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=186574

        Unreviewed test gardening.

        * TestExpectations:

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

        Complex text handling should opt out of bounded text layout.
        https://bugs.webkit.org/show_bug.cgi?id=186571
        <rdar://problem/40801429>

        Reviewed by Tim Horton.

        * fast/text/complex-long-text-crash-expected.txt: Added.
        * fast/text/complex-long-text-crash.html: Added.

2018-06-12  David Fenton  <david_fenton@apple.com>

        Rebaseline WebCrypto API tests for High Sierra after r232641.
        https://bugs.webkit.org/show_bug.cgi?id=186565

        Unreviewed test gardening.

        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Added.
        * platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Added.

2018-06-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        [WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=186442
        <rdar://problem/40879364>

        Reviewed by Tim Horton.

        Upstream a couple of internal test expectations on watchOS.

        * fast/viewport/extrazoom/viewport-adaptations-after-navigation-expected.txt: Added.
        * fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations-expected.txt: Added.

2018-06-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION(r228724): Occasional crash when executing ReplaceSelectionCommand at the end of the document
        https://bugs.webkit.org/show_bug.cgi?id=186555
        <rdar://problem/39703004>

        Reviewed by Ryosuke Niwa.

        Add a new layout test demonstrating the crash. The test passes if the right text is inserted into the DOM, and
        we don't hit a crash.

        * editing/execCommand/insert-apple-style-span-at-document-end-expected.txt: Added.
        * editing/execCommand/insert-apple-style-span-at-document-end.html: Added.

2018-06-12  Jianjun Zhu  <jianjun.zhu@intel.com>

        Hash deviceId and groupId of MediaTrackCapabilities.
        https://bugs.webkit.org/show_bug.cgi?id=186471

        Reviewed by Eric Carlson.

        This change makes the identifier for the source of the MediaStreamTrack
        has the same value returned by enumerateDevices(). It also prevents real
        device ID being leaked.

        * fast/mediastream/MediaStreamTrack-getCapabilities.html:

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

        A few layout tests are failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=186562

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Improve error messages in case FetchEvent.respondWith has a rejected promise
        https://bugs.webkit.org/show_bug.cgi?id=186368

        Reviewed by Chris Dumez.

        * TestExpectations:
        * http/tests/workers/service/basic-fetch.https-expected.txt:

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

        http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html times out with PSON enabled
        https://bugs.webkit.org/show_bug.cgi?id=186546

        Reviewed by Brady Eidson.

        Add layout test coverage.

        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson-expected.txt: Added.
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html: Added.

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

        Layout Test svg/dom/animated-tearoff-list-remove-target.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=185698
        <rdar://problem/40341200>

        Reviewed by Daniel Bates.

        The test is flaky because we get the animVal.getItem(0) of the 'x' attribute
        from the target element without initializing this attribute with a base value.

        The test assumes the animator would set the animVal of the 'x' attribute
        from the 'from' attribute of the <animate> element before animVal.getItem(0)
        is executed. But this may not always happen. Therefore the test will get 
        the 'IndexSizeError' exception and it will time out.

        The fix is:
        -- Initialize the attribute of the target element by a base value.
        -- Use requestAnimationFrame() instead of using setTimeout() to make the
           test deterministic.
        -- Allow the animation to advance one more step after kicking off the GC
           to ensure the variable 'animItem' is detached from animVal.getItem(0).

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

2018-06-11  Jer Noble  <jer.noble@apple.com>

        Unreviewed gardening; add a late endTest(), in case none of the other events fire in time.

        * media/track/track-delete-during-setup.html:

2018-06-11  Mark Lam  <mark.lam@apple.com>

        Add support for webkit-test-runner jscOptions in DumpRenderTree and WebKitTestRunner.
        https://bugs.webkit.org/show_bug.cgi?id=186451
        <rdar://problem/40875792>

        Reviewed by Tim Horton.

        * js/intl-numberformat-format-to-parts.html:
        * js/intl-pluralrules.html:
        * js/script-tests/intl-numberformat-format-to-parts.js:

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

        http/tests/security/cors-post-redirect-307.html fails with PSON enabled
        https://bugs.webkit.org/show_bug.cgi?id=186441

        Reviewed by Brady Eidson.

        Add layout test coverage.

        * http/tests/security/cors-post-redirect-307-pson-expected.txt: Added.
        * http/tests/security/cors-post-redirect-307-pson.html: Added.

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

        Allow enabling PSON in layout tests without window.open support
        https://bugs.webkit.org/show_bug.cgi?id=186537

        Reviewed by Geoffrey Garen.

        Update layout test which requires window.open support in addition to PSON.

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

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

        Accept request header values should be more tightly checked after r232572 in case of CORS load
        https://bugs.webkit.org/show_bug.cgi?id=186533
        <rdar://problem/40933880>

        Reviewed by Darin Adler.

        Added test to check Accept header value preflight.
        Updated test to check that a preflight really happens if expected.

        * http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt:
        * http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html:
        * http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.php:

2018-06-11  Antti Koivisto  <antti@apple.com>

        Fix spelling.

        * http/tests/cache/disk-cache/disk-cache-media-small.html:

2018-06-11  Brady Eidson  <beidson@apple.com>

        http/tests/navigation/https-in-page-cache.html fails with process swapping on.
        https://bugs.webkit.org/show_bug.cgi?id=186532

        Reviewed by Geoffrey Garen.

        * http/tests/navigation/resources/https-in-page-cache-1.php:
        * http/tests/navigation/resources/https-in-page-cache-2.php:
        * http/tests/navigation/resources/https-in-page-cache-3.html:

2018-06-11  Antti Koivisto  <antti@apple.com>

        REGRESSION (Mojave): LayoutTest http/tests/cache/disk-cache/disk-cache-media-small.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=186482
        <rdar://problem/40924056>

        Reviewed by Zalan Bujtas.

        The test was sensitive to which exact ranges the system media framework would request.

        * http/tests/cache/disk-cache/disk-cache-media-small-expected.txt:
        * http/tests/cache/disk-cache/disk-cache-media-small.html:

        Don't print out the ranges, just check they are all coming from the right source.

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

        Some CSS animations tests are failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=186522

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-06-11  Philippe Normand  <pnormand@igalia.com>

        [webkitpy] PHP7.2 support on Debian platforms
        https://bugs.webkit.org/show_bug.cgi?id=186521

        Reviewed by Michael Catanzaro.

        * http/conf/debian-httpd-2.4-php7.2.conf: Added.

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

        [Web Animations] Make imported/mozilla/css-transitions/test_setting-effect.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183850

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

        [Web Animations] Make imported/mozilla/css-transitions/test_csstransition-transitionproperty.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183835

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test has been passing reliably on the bots.

        * TestExpectations:

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

        [Web Animations] Make imported/mozilla/css-transitions/test_animation-computed-timing.html pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=183823

        Unreviewed.

        This test is now passing.

        * TestExpectations:

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

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

        Unreviewed.

        This test has been passing reliably on the bots.

        * TestExpectations:

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

        REGRESSION (r230480): Cannot adjust photo position on LinkedIn's profile page
        https://bugs.webkit.org/show_bug.cgi?id=186464
        <rdar://problem/40369448>

        Reviewed by Simon Fraser.

        * fast/images/positioned-image-when-transform-is-present-expected.html: Added.
        * fast/images/positioned-image-when-transform-is-present.html: Added.

2018-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(macOS Mojave): move-by-word-visually-multi-line.html fails
        https://bugs.webkit.org/show_bug.cgi?id=186454

        Reviewed by Darin Adler.

        Added a multi-line test case which causes a failure under Mac editing behavior. The test case is symmetric to ml_1.

        * editing/selection/move-by-word-visually-mac-expected.txt:
        * editing/selection/move-by-word-visually-mac.html:
        * editing/selection/move-by-word-visually-multi-line-expected.txt:
        * editing/selection/move-by-word-visually-multi-line.html:

2018-06-07  Jer Noble  <jer.noble@apple.com>

        REGRESSION:  Cannot listen to audio on Google Translate with side switch set to "vibrate"
        https://bugs.webkit.org/show_bug.cgi?id=186415
        <rdar://problem/40584651>

        Reviewed by Eric Carlson.

        * platform/mac/media/audio-session-category-audio-autoplay-expected.txt: Added.
        * platform/mac/media/audio-session-category-audio-autoplay.html: Added.

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

        Sync web-platform-tests repo to 197cdad
        https://bugs.webkit.org/show_bug.cgi?id=186267

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt:
        * platform/mac-wk2/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Removed.
        * platform/mac/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt:

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

        http/tests/navigation/https-no-store-subframe-in-page-cache.html fails with PSON enabled
        https://bugs.webkit.org/show_bug.cgi?id=186440

        Reviewed by Geoffrey Garen.

        Override the PageCache setting *after* the cross-origin navigation. It was previously
        overriden before the navigation and thus would not persist with process swap on navigation
        enabled.

        * http/tests/navigation/https-no-store-subframe-in-page-cache.html:
        * http/tests/navigation/resources/https-no-store-subframe-in-page-cache.html:

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

        http/tests/cache/partitioned-cache.html fails with PSON enabled
        https://bugs.webkit.org/show_bug.cgi?id=186438

        Reviewed by Geoffrey Garen.

        http/tests/cache/partitioned-cache.html was overriding a setting then navigating
        cross-origin, expecting the setting override to persist. However, with process
        swap on navigation enabled, the setting does not persist. To address the issue,
        we override the setting again in the document we navigate to.

        * http/tests/cache/partitioned-cache-expected.txt:
        * http/tests/cache/resources/partitioned-cache-loader.html:

2018-06-07  Mark Lam  <mark.lam@apple.com>

        Enhance run-jsc-stress-tests to allow a test to specify test specific options required for it to run.
        https://bugs.webkit.org/show_bug.cgi?id=186409
        <rdar://problem/40909007>

        Reviewed by Saam Barati.

        * js/script-tests/intl-pluralrules.js:

2018-06-07  Ryosuke Niwa  <rniwa@webkit.org>

        Release assert in Document::updateLayout() in WebPage::determinePrimarySnapshottedPlugIn()
        https://bugs.webkit.org/show_bug.cgi?id=186383
        <rdar://problem/40849498>

        Reviewed by Jon Lee.

        Added a regression test.

        * plugins/snapshotting/determine-primary-snapshotted-plugin-crash-expected.txt: Added.
        * plugins/snapshotting/determine-primary-snapshotted-plugin-crash.html: Added.

2018-06-07  Thibault Saunier  <tsaunier@igalia.com>

        [GTK][WPE] Start implementing MediaStream API
        https://bugs.webkit.org/show_bug.cgi?id=185787

        Reviewed by Philippe Normand.

        * platform/gtk/TestExpectations: Reactivate MediaStream tests and enable all tests
        related to the mediaDevice.enumerateDevices and MediaStream (not RTCPeerConnection nor
        webaudio).

2018-06-07  Brent Fulgham  <bfulgham@apple.com>

        Remove unused debug mode conditions
        https://bugs.webkit.org/show_bug.cgi?id=186358
        <rdar://problem/39117121>

        Reviewed by Zalan Bujtas.

        Rebase test expectations after behavior change.

        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-expected.txt:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.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/third-party-cookie-with-and-without-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html:
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction-expected.txt
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction.html

2018-06-07  Brent Fulgham  <bfulgham@apple.com>

        Handle Storage Access API calls in the absence of an attached frame
        https://bugs.webkit.org/show_bug.cgi?id=186373
        <rdar://problem/40028265>

        Reviewed by Daniel Bates.

        * http/tests/storageAccess/has-storage-access-crash-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-crash.html: Added.
        * http/tests/storageAccess/request-storage-access-crash-expected.txt: Added.
        * http/tests/storageAccess/request-storage-access-crash.html: Added.
        * platform/mac-wk2/TestExpectations: Add the two new tests for HighSierra+

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

        HTTP Header values validation is too strict
        https://bugs.webkit.org/show_bug.cgi?id=167112

        Reviewed by Alex Christensen.

        * http/tests/xmlhttprequest/set-bad-headervalue.html:

2018-06-06  David Fenton  <david_fenton@apple.com>

        Layout Test imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=184060

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-06-06  David Fenton  <david_fenton@apple.com>

        Layout Test http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html is flaky on macOS WK2 [ Release ]
        https://bugs.webkit.org/show_bug.cgi?id=186362

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-06-06  Antoine Quint  <graouts@apple.com>

        Rename color-filter to -apple-color-filter and do not expose it to Web content
        https://bugs.webkit.org/show_bug.cgi?id=186306
        <rdar://problem/39874167>

        Reviewed by Simon Fraser.

        Update tests for color-filter to test -apple-color-filter and explicitly turn the feature on since it's disabled by default.
        We also update a test to not use the colorFilter accessor and setter on CSSStyleDeclaration because using an -apple- prefix
        will no longer expose such a getter or setter, using getPropertyValue() and setProperty() instead.

        * animations/resources/animation-test-helpers.js:
        (getPropertyValue):
        (comparePropertyValue):
        * css3/color-filters/color-filter-animation-expected.txt:
        * css3/color-filters/color-filter-animation.html:
        * css3/color-filters/color-filter-backgrounds-borders-expected.html:
        * css3/color-filters/color-filter-backgrounds-borders.html:
        * css3/color-filters/color-filter-box-shadow-expected.html:
        * css3/color-filters/color-filter-box-shadow.html:
        * css3/color-filters/color-filter-brightness-expected.html:
        * css3/color-filters/color-filter-brightness.html:
        * css3/color-filters/color-filter-caret-color-expected.html:
        * css3/color-filters/color-filter-caret-color.html:
        * css3/color-filters/color-filter-color-property-expected.html:
        * css3/color-filters/color-filter-color-property-list-item-expected.html:
        * css3/color-filters/color-filter-color-property-list-item.html:
        * css3/color-filters/color-filter-color-property.html:
        * css3/color-filters/color-filter-color-text-decorations-expected.html:
        * css3/color-filters/color-filter-color-text-decorations.html:
        * css3/color-filters/color-filter-column-rule-expected.html:
        * css3/color-filters/color-filter-column-rule.html:
        * css3/color-filters/color-filter-contrast-expected.html:
        * css3/color-filters/color-filter-contrast.html:
        * css3/color-filters/color-filter-current-color-expected.html:
        * css3/color-filters/color-filter-current-color.html:
        * css3/color-filters/color-filter-filter-list-expected.html:
        * css3/color-filters/color-filter-filter-list.html:
        * css3/color-filters/color-filter-gradients-expected.html:
        * css3/color-filters/color-filter-gradients.html:
        * css3/color-filters/color-filter-grayscale-expected.html:
        * css3/color-filters/color-filter-grayscale.html:
        * css3/color-filters/color-filter-hue-rotate-expected.html:
        * css3/color-filters/color-filter-hue-rotate.html:
        * css3/color-filters/color-filter-inherits-expected.html:
        * css3/color-filters/color-filter-inherits.html:
        * css3/color-filters/color-filter-invert-expected.html:
        * css3/color-filters/color-filter-invert.html:
        * css3/color-filters/color-filter-opacity-expected.html:
        * css3/color-filters/color-filter-opacity.html:
        * css3/color-filters/color-filter-outline-expected.html:
        * css3/color-filters/color-filter-outline.html:
        * css3/color-filters/color-filter-parsing-expected.txt:
        * css3/color-filters/color-filter-parsing.html:
        * css3/color-filters/color-filter-saturate-expected.html:
        * css3/color-filters/color-filter-saturate.html:
        * css3/color-filters/color-filter-sepia-expected.html:
        * css3/color-filters/color-filter-sepia.html:
        * css3/color-filters/color-filter-text-decoration-shadow-expected.html:
        * css3/color-filters/color-filter-text-decoration-shadow.html:
        * css3/color-filters/color-filter-text-emphasis-expected.html:
        * css3/color-filters/color-filter-text-emphasis.html:
        * css3/color-filters/color-filter-text-shadow-expected.html:
        * css3/color-filters/color-filter-text-shadow.html:
        * css3/color-filters/color-filter-text-stroke-expected.html:
        * css3/color-filters/color-filter-text-stroke.html:
        * css3/color-filters/svg/color-filter-inline-svg-expected.html:
        * css3/color-filters/svg/color-filter-inline-svg.html:

2018-06-06  David Fenton  <david_fenton@apple.com>

        [macOS WK2 Release] Layout Test media/video-trackmenu-selection.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=186055

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        REGRESSION (r231817?): Layout Test media/track/track-delete-during-setup.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=185889
        <rdar://problem/40583180>

        Reviewed by Eric Carlson.

        Modify the track-delete-during-setup.html test to end on video element suspend in
        addition to canplaythrough.

        * media/track/track-delete-during-setup.html:

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

        Regions outside of the fullscreen window are exposed during zoom operations
        https://bugs.webkit.org/show_bug.cgi?id=186330
        <rdar://problem/34698009>

        Reviewed by Simon Fraser.

        * fullscreen/full-screen-layer-dump-expected.txt: Added.
        * fullscreen/full-screen-layer-dump.html: Added.

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

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

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

2018-06-05  Jer Noble  <jer.noble@apple.com>

        REGRESSION (231817): Videos permanently blank out after switching out of a tab and back in
        https://bugs.webkit.org/show_bug.cgi?id=186326
        <rdar://problem/40778157>

        Reviewed by Eric Carlson.

        * media/video-buffering-allowed-expected.txt:
        * media/video-buffering-allowed.html:

2018-06-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Spelling errors in the middle of an inserted paragraph are not displayed
        https://bugs.webkit.org/show_bug.cgi?id=185584
        <rdar://problem/38676081>

        Reviewed by Ryosuke Niwa.

        Adds 2 new spellchecking tests, and refactors some existing tests.

        * editing/spelling/grammar-expected.txt:
        * editing/spelling/grammar.html:
        * editing/spelling/markers-expected.txt:
        * editing/spelling/markers.html:

        Tweaked so that these tests pass regardless of whether sentence retro correction is enabled or disabled.

        * editing/spelling/retro-correction-spelling-markers-expected.txt: Added.
        * editing/spelling/retro-correction-spelling-markers.html: Added.

        Tests that typing at the end of a sentence will mark other parts of the sentence as misspellings, if retro
        sentence correction is enabled.

        * editing/spelling/spelling-changed-text-expected.txt:
        * editing/spelling/spelling-changed-text.html:

        Tweaked to correctly wait for the marker range to become the expected value.

        * editing/spelling/spelling-markers-after-pasting-sentence-expected.txt: Added.
        * editing/spelling/spelling-markers-after-pasting-sentence.html: Added.

        Tests that after pasting a sentence with misspelled words, those misspelled words will be marked as misspellings.

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

2018-06-05  Brent Fulgham  <bfulgham@apple.com>

        Adjust compile and runtime flags to match shippable state of features
        https://bugs.webkit.org/show_bug.cgi?id=186319
        <rdar://problem/40352045>

        Reviewed by Maciej Stachowiak, Jon Lee, and others.

        * platform/mac/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt: Added.

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

        ServiceWorker registration should store any script fetched through importScripts
        https://bugs.webkit.org/show_bug.cgi?id=182444
        <rdar://problem/37164835>

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/persistent-importScripts-expected.txt: Added.
        * http/wpt/service-workers/persistent-importScripts.html: Added.
        * http/wpt/service-workers/resources/persistent-importScripts-script.py: Added.
        * http/wpt/service-workers/resources/persistent-importScripts-worker.js: Added.
        * http/wpt/service-workers/resources/routines.js: Added.

2018-06-05  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Implement support for new blockquote, caption, and paragraph ARIA roles
        https://bugs.webkit.org/show_bug.cgi?id=186274

        Reviewed by Chris Fleizach.

        Add the three ARIA roles to the existing role-exposure tests and update
        expectations accordingly. Also update several additional GTK tests because
        the mapping of these ARIA roles results in new object attributes appearing
        for native HTML blockquote, paragraph, and caption elements.

        * accessibility/gtk/object-attributes-expected.txt:
        * accessibility/gtk/xml-roles-exposed-expected.txt:
        * accessibility/gtk/xml-roles-exposed.html:
        * accessibility/roles-computedRoleString-expected.txt:
        * accessibility/roles-computedRoleString.html:
        * accessibility/roles-exposed.html:
        * inspector/dom/hideHighlight-expected.txt:
        * platform/gtk/accessibility/roles-computedRoleString-expected.txt:
        * platform/gtk/accessibility/roles-exposed-expected.txt:
        * platform/gtk/accessibility/table-one-cell-expected.txt:
        * platform/mac/accessibility/roles-computedRoleString-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:

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

        Rename "Cross-Origin-Options" HTTP header to "Cross-Origin-Window-Policy"
        https://bugs.webkit.org/show_bug.cgi?id=186287
        <rdar://problem/40783352>

        Reviewed by Youenn Fablet.

        * http/wpt/cross-origin-options/allow-postmessage-expected.txt: Removed.
        * http/wpt/cross-origin-options/allow-postmessage-from-deny-expected.txt: Removed.
        * http/wpt/cross-origin-options/allow-postmessage-from-deny.html.headers: Removed.
        * http/wpt/cross-origin-options/cross-origin-options-header-expected.txt: Removed.
        * http/wpt/cross-origin-options/navigation-from-opener-via-open-target-expected.txt: Removed.
        * http/wpt/cross-origin-options/navigation-from-subframe-via-anchor-target-expected.txt: Removed.
        * http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html.headers: Removed.
        * http/wpt/cross-origin-window-policy/allow-postmessage-expected.txt: Added.
        * http/wpt/cross-origin-window-policy/allow-postmessage-from-deny-expected.txt: Added.
        * http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html: Renamed from LayoutTests/http/wpt/cross-origin-options/allow-postmessage-from-deny.html.
        * http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html.headers: Added.
        * http/wpt/cross-origin-window-policy/allow-postmessage.html: Renamed from LayoutTests/http/wpt/cross-origin-options/allow-postmessage.html.
        * http/wpt/cross-origin-window-policy/cross-origin-window-policy-header-expected.txt: Added.
        * http/wpt/cross-origin-window-policy/cross-origin-window-policy-header.html: Renamed from LayoutTests/http/wpt/cross-origin-options/cross-origin-options-header.html.
        * http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target-expected.txt: Added.
        * http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target.html: Renamed from LayoutTests/http/wpt/cross-origin-options/navigation-from-opener-via-open-target.html.
        * http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target-expected.txt: Added.
        * http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target.html: Renamed from LayoutTests/http/wpt/cross-origin-options/navigation-from-subframe-via-anchor-target.html.
        * http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html: Renamed from LayoutTests/http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html.
        * http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html.headers: Added.
        * http/wpt/cross-origin-window-policy/resources/destination.html: Renamed from LayoutTests/http/wpt/cross-origin-options/resources/destination.html.
        * http/wpt/cross-origin-window-policy/resources/navigate-parent-via-anchor.html: Renamed from LayoutTests/http/wpt/cross-origin-options/resources/navigate-parent-via-anchor.html.
        * http/wpt/cross-origin-window-policy/resources/navigation-from-subframe-frame.py: Renamed from LayoutTests/http/wpt/cross-origin-options/resources/navigation-from-subframe-frame.py.
        (main):
        * http/wpt/cross-origin-window-policy/resources/serve-cross-origin-window-policy-header.py: Renamed from LayoutTests/http/wpt/cross-origin-options/resources/serve-cross-origin-options-header.py.
        (main):
        * http/wpt/cross-origin-window-policy/resources/utils.js: Renamed from LayoutTests/http/wpt/cross-origin-options/resources/utils.js.

2018-06-04  Ryosuke Niwa  <rniwa@webkit.org>

        Moved the corresponding expected results for the tests moved in r232430.

        * platform/ios/editing/selection/simple-line-layout-caret-is-gone-expected.txt: Moved from LayoutTests/platform/ios/editing/simple-line-layout-caret-is-gone-expected.txt.
        * platform/wincairo/editing/selection/simple-line-layout-caret-is-gone-expected.txt: Moved from LayoutTests/platform/wincairo/editing/simple-line-layout-caret-is-gone-expected.txt.

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

        AR Badging on transparent thumbnail images makes the glyph look really dark
        https://bugs.webkit.org/show_bug.cgi?id=186289
        <rdar://problem/40627111>

        Reviewed by Anders Carlsson.

        Update the test to exercise more background colors. Include the results for the AR badge.

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

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

        Update Fetch code to provide more useful exception messages
        https://bugs.webkit.org/show_bug.cgi?id=186156

        Reviewed by Youenn Fablet.

        Rebaseline tests that have different output.

        * http/tests/workers/service/basic-fetch.https-expected.txt:

2018-06-04  Alexey Proskuryakov  <ap@apple.com>

        Add Mojave support to WebKit tools
        https://bugs.webkit.org/show_bug.cgi?id=186282

        Reviewed by Daniel Bates.

        * platform/mac-mojave: Added an empty directory to avoid breaking scripts.

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

        Update Strong Password appearance
        https://bugs.webkit.org/show_bug.cgi?id=186239
        <rdar://problem/38183795>

        Reviewed by Brent Fulgham.

        Update expected results as necessary for the change in appearance.

        * 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:
        * 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-06-04  Per Arne Vollan  <pvollan@apple.com>

        Rebaseline editing/style/apply-style-iframe-crash.html on Windows.

        Unreviewed test gardening.

        * platform/win/editing/style/apply-style-iframe-crash-expected.txt: Added.

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

        Unreviewed WPE gardening.

        Adding platform-specific baselines for three http/tests/cache/ tests.
        Updating baseline for the security/block-test.html test.
        Adding failure expectations for a few other failures, linking to existing bugs.

        * platform/wpe/TestExpectations:
        * platform/wpe/http/tests/cache: Added.
        * platform/wpe/http/tests/cache/disk-cache: Added.
        * platform/wpe/http/tests/cache/disk-cache/redirect-chain-limits-expected.txt: Added.
        * platform/wpe/http/tests/cache/iframe-304-crash-expected.txt: Added.
        * platform/wpe/http/tests/cache/network-error-during-revalidation-expected.txt: Added.
        * platform/wpe/security/block-test-expected.txt:

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

        Unreviewed WPE gardening.

        Manage the W3C test failures by rebaselining what can be rebaselined, and adding
        failing expectations for the rest of the failures. This mostly addresses the
        new CSS Text tests that were imported lately, as well as changes in console logging.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/FileAPI/url/sandboxed-iframe-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-basic-cors-safelisted-request-headers-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-basic-get-fail-non-simple-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-basic-post-with-non-cors-safelisted-content-type-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-infinite-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-infinite-sync-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-network-error-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-network-error-sync-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-001-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-004-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-016-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-017-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapse-002-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/security: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:

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

        More unreviewed GTK test gardening

        * platform/gtk/TestExpectations:

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

        Unreviewed GTK test expectations gardening

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/editing/selection/simple-line-layout-caret-is-gone-expected.txt: Renamed from LayoutTests/platform/gtk/editing/simple-line-layout-caret-is-gone-expected.txt.
        * platform/gtk/editing/style/apply-style-iframe-crash-expected.txt: Renamed from LayoutTests/platform/gtk/editing/apply-style-iframe-crash-expected.txt.

2018-06-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] The user should always be able to double tap to zoom to a scale of at least 1
        https://bugs.webkit.org/show_bug.cgi?id=186209
        <rdar://problem/40529255>

        Reviewed by Tim Horton.

        Add a test to verify that double tapping zooms in on a page where all the text is large enough to be legible at
        initial scale.

        * fast/events/extrazoom/double-tap-to-zoom-with-large-text-expected.txt: Added.
        * fast/events/extrazoom/double-tap-to-zoom-with-large-text.html: Added.

2018-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        Editor can hold references to Documents after you navigate away
        https://bugs.webkit.org/show_bug.cgi?id=186215

        Reviewed by Simon Fraser.

        Added a regression test.

        * editing/selection/navigation-clears-editor-state-expected.txt: Added.
        * editing/selection/navigation-clears-editor-state.html: Added.

2018-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        Move tests in LayoutTests/editing to appropriate subdirectories
        https://bugs.webkit.org/show_bug.cgi?id=186212

        Rubber-stamped by Wenson Hsieh.

        Moved the following four tests in LayoutTests/editing to its subdirectories.

        * editing/input/composition-underline-color-expected-mismatch.html: Moved from editing/composition-underline-color-expected-mismatch.html.
        * editing/input/composition-underline-color.html: Move from editing/composition-underline-color.html.
        * editing/input/marked-text-appearance-expected-mismatch.html: Copied from LayoutTests/editing/marked-text-appearance-expected-mismatch.html.
        * editing/input/marked-text-appearance.html: Moved from editing/marked-text-appearance.html.
        * editing/selection/rtl-to-ltr-editing-word-move-spin-expected.txt: Moved from editing/rtl-to-ltr-editing-word-move-spin-expected.txt.
        * editing/selection/rtl-to-ltr-editing-word-move-spin.html: Moved from editing/rtl-to-ltr-editing-word-move-spin.html.
        * editing/selection/simple-line-layout-caret-is-gone-expected.txt: Moved from editing/simple-line-layout-caret-is-gone-expected.txt.
        * editing/selection/simple-line-layout-caret-is-gone.html: Moved from editing/simple-line-layout-caret-is-gone.html.
        * editing/style/apply-style-iframe-crash-expected.txt: Moved from editing/apply-style-iframe-crash-expected.txt.
        * editing/style/apply-style-iframe-crash.html: Moved from editing/apply-style-iframe-crash.html.

2018-06-01  David Fenton  <david_fenton@apple.com>

        Skip fetch/api/redirect/redirect-method.html and fetch/api/redirect/redirect-method-worker.html on macOS debug.
        https://bugs.webkit.org/show_bug.cgi?id=184365

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        ResourceLoader::cancel() shouldn't synchronously fire load event on document
        https://bugs.webkit.org/show_bug.cgi?id=185284
        <rdar://problem/39994507>

        Reviewed by Antti Koivisto.

        Fixed the tests as needed, and skipped more drag & drop tests in WebKitTestRunner as drag & drop isn't supported.

        * editing/pasteboard/drag-image-to-contenteditable-in-iframe.html: Fixed the test. Explicitly invoke
        testRunner.waitUntilDone() to wait until the iframe is loaded. Because "load" event in DOM only fires after
        all subframes are loaded but the load delegate callback fires as long as subresources in the main frame
        had finished loading, DumpRenderTree would finish the test prematurely otherwise. The old code happens to
        work before this patch because we happen to not invoke FrameLoader::checkComplete at the "right" moment.
        The WebCore change now triggers such a check and prematurely end the test without this fix to the test.
        * http/tests/xmlhttprequest/reentrant-cancel-expected.txt:
        * http/tests/xmlhttprequest/reentrant-cancel.html: Canceling XHR inside addElement is no longer
        firing load event synchronously as expected. Added a code to end the test after the load event.
        * http/wpt/service-workers/clone-opaque-being-loaded-response.html:
        * platform/mac-wk2/TestExpectations:
        * platform/wk2/TestExpectations:

2018-05-31  Ryosuke Niwa  <rniwa@webkit.org>

        Some tests for webkitdirectory API fail when tests are in an APFS file system
        https://bugs.webkit.org/show_bug.cgi?id=186184

        Reviewed by Chris Dumez.

        On an APFS volume, files may not be listed in the lexicologically order and the size of a directory
        may defer from that of HFS+. To make the test results consistent on either file systems,
        sort file entries lexicologically by the name and list two possible directory sizes as the expectation.

        Added a new helper function, shouldBeOneOfValues, which takes an array of values as the expectation.

        * editing/pasteboard/entries-api/datatransfer-items-drop-directoryReader.html:
        * editing/pasteboard/entries-api/datatransfer-items-drop-getAsEntry-expected.txt:
        * editing/pasteboard/entries-api/datatransfer-items-drop-getAsEntry.html:
        * fast/forms/file/entries-api/drag-folder-webkitEntries-expected.txt:
        * fast/forms/file/entries-api/drag-folder-webkitEntries.html:
        * fast/forms/file/entries-api/webkitdirectory-drag-folder.html:
        * resources/js-test.js:
        (shouldBeOneOfValues): Added.

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

        http/tests/inspector/network/har/har-page.html should actually sort dumped cookies by name
        https://bugs.webkit.org/show_bug.cgi?id=186137

        Reviewed by Joseph Pecoraro.

        JavaScript does not support comparison of String data types using the minus operator. Instead
        implement the string comparator using relational operators and the identity operator.

        * http/tests/inspector/network/har/har-page-expected.txt:
        * http/tests/inspector/network/har/har-page.html:
        * platform/gtk/TestExpectations: Unskip test.

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

        http/tests/appcache/deferred-events.html is flaky due to console log messages
        https://bugs.webkit.org/show_bug.cgi?id=185543

        Reviewed by Chris Dumez.

        Update the test to wait for the onerror callback.
        At that time, all console logging should be done.

        * http/tests/appcache/deferred-events-expected.txt:
        * http/tests/appcache/deferred-events.html:

2018-05-29  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] Add Symbol.prototype.description getter
        https://bugs.webkit.org/show_bug.cgi?id=186053

        Reviewed by Keith Miller.

        * js/Object-getOwnPropertyNames-expected.txt:
        * js/script-tests/Object-getOwnPropertyNames.js:

2018-06-01  Brent Fulgham  <bfulgham@apple.com>

        Unskip fast/html/marquee-reparent-check.html on macOS debug.
        https://bugs.webkit.org/show_bug.cgi?id=178465
        <rdar://problem/35052953>

        Reviewed by Geoffrey Garen.

        Unskipping test since the debug assertion is no longer reproducible in
        current sources on shipping software.

        * platform/mac/TestExpectations:

2018-05-31  Per Arne Vollan  <pvollan@apple.com>

        Skip http/tests/security/referrer-policy-header.html on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=186183

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-05-31  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-text] Update test suite
        https://bugs.webkit.org/show_bug.cgi?id=186145

        Reviewed by Youenn Fablet.

        These tests used to have problems in Mac and iOS platforms,
        but they were reworked in WPT upstream:
        https://github.com/web-platform-tests/wpt/pull/10860

        Importing the new version of the tests in this patch.

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

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

        Update http/wpt/service-workers/header-filtering.https.html to use a valid Referrer-Policy
        https://bugs.webkit.org/show_bug.cgi?id=186148

        Reviewed by Youenn Fablet.

        Update http/wpt/service-workers/header-filtering.https.html to use a valid Referrer-Policy to
        avoid logging a console message.

        * http/wpt/service-workers/header-filtering.https-expected.txt:
        * http/wpt/service-workers/resources/response-full-of-headers.py:
        (main):

2018-05-31  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [wpe] update the TestExpectations for encrypted-media after some investigations
        https://bugs.webkit.org/show_bug.cgi?id=185593

        Reviewed by Xabier Rodriguez-Calvar.

        After the fix 185725 and some investigations, the WPE platform TestExpectations should be updated

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https-expected.txt:

2018-05-31  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r232336.

        * platform/gtk/TestExpectations:

2018-05-30  Nan Wang  <n_wang@apple.com>

        AX: VoiceOver on macOS does not announce fieldset description from aria-describedby when focussing inputs
        https://bugs.webkit.org/show_bug.cgi?id=185246
        <rdar://problem/39939028>

        Reviewed by Chris Fleizach.

        * accessibility/mac/aria-describedby-fieldset-expected.txt: Added.
        * accessibility/mac/aria-describedby-fieldset.html: Added.

2018-05-30  Chris Fleizach  <cfleizach@apple.com>

        AX: Expose link rel type to voiceover
        https://bugs.webkit.org/show_bug.cgi?id=186084
        <rdar://problem/40640871>

        Reviewed by Sam Weinig.

        * accessibility/image-link-expected.txt:
        * accessibility/image-map2-expected.txt:
        * accessibility/mac/document-links-expected.txt:
        * accessibility/mac/linkrel-expected.txt: Added.
        * accessibility/mac/linkrel.html: Added.

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

        Rebaseline http/wpt/service-workers/header-filtering.https.html after r232310.

        Unreviewed test gardening.

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

2018-05-30  Brady Eidson  <beidson@apple.com>

        REGRESSION (r224684): User-agent seen by page does not change when modified by the develop menu options after reloading.
        <rdar://problem/34918109> and https://bugs.webkit.org/show_bug.cgi?id=186111

        Reviewed by Andy Estes.

        * TestExpectations: Skip in WK1
        * platform/wk2/TestExpectations: Enable in WK2

        * http/tests/navigation/resources/user-agent-script.php: Added.
        * http/tests/navigation/useragent-reload-expected.txt: Added.
        * http/tests/navigation/useragent-reload.php: Added.

2018-05-30  Daniel Bates  <dabates@apple.com>

        Web Inspector: Annotate Same-Site cookies
        https://bugs.webkit.org/show_bug.cgi?id=184897
        <rdar://problem/35178209>

        Reviewed by Brian Burg.

        Update an existing test to ensure we include cookie details in the HTTP Archive (HAR) report.

        * http/tests/inspector/network/har/har-page-expected.txt:
        * http/tests/inspector/network/har/har-page.html:

2018-05-30  John Wilander  <wilander@apple.com>

        Add console logging to grant-storage-access-under-opener.html to assess its flakiness
        https://bugs.webkit.org/show_bug.cgi?id=183714
        <rdar://problem/38666060>

        Unreviewed test gardening.

        * http/tests/storageAccess/grant-storage-access-under-opener-expected.txt:
        * http/tests/storageAccess/grant-storage-access-under-opener.html:
            Now outputs console log entries, step by step, to see where the timeouts happen.
        * platform/ios-wk2/TestExpectations:
            Switched to [ Pass ] on iOS Debug to maximize chance of seeing the flakiness.

2018-05-29  Keith Miller  <keith_miller@apple.com>

        Error instances should not strongly hold onto StackFrames
        https://bugs.webkit.org/show_bug.cgi?id=185996

        Reviewed by Mark Lam.

        * js/error-should-not-strong-reference-global-object-expected.txt: Added.
        * js/error-should-not-strong-reference-global-object.html: Added.

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

        Referrer-Policy response header is ignored
        https://bugs.webkit.org/show_bug.cgi?id=186037
        <rdar://problem/40600335>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * http/tests/security/referrer-policy-header-and-meta-tag-emptyString-expected.txt: Added.
        * http/tests/security/referrer-policy-header-and-meta-tag-emptyString.html: Added.
        * http/tests/security/referrer-policy-header-and-meta-tag-expected.txt: Added.
        * http/tests/security/referrer-policy-header-and-meta-tag.html: Added.
        * http/tests/security/referrer-policy-header-expected.txt: Added.
        * http/tests/security/referrer-policy-header.html: Added.
        * http/tests/security/referrer-policy-invalid-expected.txt:
        * http/tests/security/referrer-policy-invalid.html:
        * http/tests/security/resources/postReferrer.php: Added.
        * http/tests/security/resources/serve-referrer-policy-and-meta-tag.php: Added.
        * http/tests/security/resources/serve-referrer-policy-and-test.php: Added.

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

        Rename CrossOriginResourcePolicy same to same-origin
        https://bugs.webkit.org/show_bug.cgi?id=186080

        Reviewed by Chris Dumez.

        * http/wpt/cross-origin-resource-policy/fetch-expected.txt:
        * http/wpt/cross-origin-resource-policy/fetch-in-iframe-expected.txt:
        * http/wpt/cross-origin-resource-policy/fetch-in-iframe.html:
        * http/wpt/cross-origin-resource-policy/fetch.html:
        * http/wpt/cross-origin-resource-policy/iframe-loads-expected.txt:
        * http/wpt/cross-origin-resource-policy/iframe-loads.html:
        * http/wpt/cross-origin-resource-policy/image-loads-expected.txt:
        * http/wpt/cross-origin-resource-policy/image-loads.html:
        * http/wpt/cross-origin-resource-policy/script-loads-expected.txt:
        * http/wpt/cross-origin-resource-policy/script-loads.html:

2018-05-30  Jer Noble  <jer.noble@apple.com>

        Media elements outside fullscreen should not be considered main content.
        https://bugs.webkit.org/show_bug.cgi?id=186063
        <rdar://problem/40630437>

        Reviewed by Eric Carlson.

        * platform/mac/media/video-best-element-for-playback-controls-purpose-expected.txt: Added.
        * platform/mac/media/video-best-element-for-playback-controls-purpose.html: Added.

2018-05-30  Ms2ger  <Ms2ger@igalia.com>

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

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
          - css3/blending/blend-mode-clip-accelerated-transformed-blending.html: passing since r230479, failing again since 230991.
          - fast/text/font-collection.html: fails due to a lack of font collection support
          - editing/caret/caret-in-empty-cell.html: fails since it was added
          - css3/color-filters/color-filter-color-property-list-item.html: fails since it was added
          - css3/color-filters/color-filter-opacity.html: fails since it was added
          - fast/hidpi/filters-turbulence.html: fails since it was added

2018-05-30  Stephen McGruer  <smcgruer@chromium.org>

        iOS: setting 'defaultValue' of input type=date from script should cause a UI update
        https://bugs.webkit.org/show_bug.cgi?id=185982

        Reviewed by Darin Adler.

        * fast/forms/date/date-appearance-defaultValue-expected.html: Added.
        * fast/forms/date/date-appearance-defaultValue.html: Added.

2018-05-29  Frederic Wang  <fwang@igalia.com>

        Import WPT tests for CSS animations
        https://bugs.webkit.org/show_bug.cgi?id=186046

        Reviewed by Youenn Fablet.

        * TestExpectations: Mark some tests requiring support for reftest-wait as failing/flacky.
        * tests-options.json: Mark animationevent-types.html as slow.

2018-05-29  Nan Wang  <n_wang@apple.com>

        AX: macOS VoiceOver doesn't announce when details element is expanded when using role group
        https://bugs.webkit.org/show_bug.cgi?id=180866
        <rdar://problem/36074338>

        Reviewed by Chris Fleizach.

        * accessibility/mac/details-summary-expected.txt:
        * accessibility/mac/details-summary.html:

2018-05-29  Tadeu Zagallo  <tzagallo@apple.com>

        Don't assert on m_actionsStart when setting actions on DFA nodes
        https://bugs.webkit.org/show_bug.cgi?id=185979
        <rdar://problem/39669458>

        Reviewed by Geoffrey Garen.

        DFANode::setActions is called immediately after the node is created, and once again to set
        the actions of catch-all regular expressions (.*) on the root node. That works because
        m_actionsStart is initially 0, since the root was the first node to be created, but may fail
        after minimizing the DFA, when the root may no longer be the first node, and therefore
        m_actionsStart would not be 0, even if there are no actions attached to that node.

        * http/tests/contentextensions/root-actions-expected.txt: Added.
        * http/tests/contentextensions/root-actions.html: Added.
        * http/tests/contentextensions/root-actions.html.json: Added.

2018-05-29  Nan Wang  <n_wang@apple.com>

        AX: setValue on contenteditable should preserve whitespace
        https://bugs.webkit.org/show_bug.cgi?id=185897

        Reviewed by Ryosuke Niwa.

        * accessibility/mac/AOM-event-accessiblesetvalue-expected.txt:
        * accessibility/mac/AOM-event-accessiblesetvalue.html:
        * accessibility/mac/set-value-editable-types-expected.txt:
        * accessibility/mac/set-value-editable-types.html:

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

        [Web Animations] Handle relative length units
        https://bugs.webkit.org/show_bug.cgi?id=186047

        Reviewed by Dean Jackson.

        Record WPT test progressions and updated failures.

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

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

        [GTK][WPE] AppCache test gardening

        Some appcache tests were flaky due to console output, see
        https://bugs.webkit.org/show_bug.cgi?id=185431 for more info.
        Fixing those by dumping the output to stderr instead.

        At the same time, clean up the expectations for appcache tests,
        many were now passing, so several old bugs got closed now.

        Unreviewed gardening.
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

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

        [GTK][WPE] transitions/interrupted-transition-hardware.html failing

        Unreviewed gardening, image-only failure.
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

2018-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] Rename Array#flatten to flat
        https://bugs.webkit.org/show_bug.cgi?id=186012

        Reviewed by Saam Barati.

        * inspector/model/remote-object-get-properties-expected.txt:
        * js/Object-getOwnPropertyNames-expected.txt:
        * js/script-tests/Object-getOwnPropertyNames.js:

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

        Migrate From-Origin to Cross-Origin-Resource-Policy
        https://bugs.webkit.org/show_bug.cgi?id=185840

        Reviewed by Chris Dumez.

        Migrating From-Origin tests to Cross-Origin-Resource-Policy tests.
        Given the scope of the header is reduced to no-cors and no ancestor checks,
        We cover the new header with fetch/image/script loads.

        * TestExpectations:
        * http/tests/from-origin: Removed.
        * http/wpt/cross-origin-resource-policy/fetch-expected.txt: Added.
        * http/wpt/cross-origin-resource-policy/fetch-in-iframe-expected.txt: Added.
        * http/wpt/cross-origin-resource-policy/fetch-in-iframe.html: Added.
        * http/wpt/cross-origin-resource-policy/fetch.html: Added.
        * http/wpt/cross-origin-resource-policy/iframe-loads-expected.txt: Added.
        * http/wpt/cross-origin-resource-policy/iframe-loads.html: Added.
        * http/wpt/cross-origin-resource-policy/image-loads-expected.txt: Added.
        * http/wpt/cross-origin-resource-policy/image-loads.html: Added.
        * http/wpt/cross-origin-resource-policy/resources/green.png: Added.
        * http/wpt/cross-origin-resource-policy/resources/hello.py: Added.
        * http/wpt/cross-origin-resource-policy/resources/iframe.py: Added.
        * http/wpt/cross-origin-resource-policy/resources/iframeFetch.html: Added.
        * http/wpt/cross-origin-resource-policy/resources/image.py: Added.
        * http/wpt/cross-origin-resource-policy/resources/redirect.py: Added.
        * http/wpt/cross-origin-resource-policy/resources/script.py: Added.
        * http/wpt/cross-origin-resource-policy/script-loads-expected.txt: Added.
        * http/wpt/cross-origin-resource-policy/script-loads.html: Added.
        * platform/wk2/TestExpectations:

2018-05-25  David Fenton  <david_fenton@apple.com>

        fast/text/user-installed-fonts/shadow-family.html and fast/text/user-installed-fonts/shadow-postscript-family.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=185994

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Unreviewed, rebaseline two fast/forms/ios/ipad tests.

        * fast/forms/ios/ipad/select-form-run-twice-expected.txt:
        * fast/forms/ios/ipad/unfocus-inside-fixed-hittest-expected.txt:

2018-05-25  Antoine Quint  <graouts@apple.com>

        [Web Animations] WebAnimation objects never get destroyed
        https://bugs.webkit.org/show_bug.cgi?id=185917
        <rdar://problem/39539371>

        Reviewed by Dean Jackson and Antti Koivisto.

        Add a new test that would fail before this fix since the Document would leak. We also remove a homegrown test that was not correct
        and is no longer relevant thanks to the tests under imported/mozilla.

        * animations/leak-document-with-css-animation-expected.txt: Added.
        * animations/leak-document-with-css-animation.html: Added.
        * animations/resources/animation-leak-iframe.html: Added.
        * platform/win/TestExpectations:
        * webanimations/css-transitions-expected.txt: Removed.
        * webanimations/css-transitions.html: Removed.

2018-05-24  Frederic Wang  <fwang@igalia.com>

        Import Web Platform Tests for WOFF2
        https://bugs.webkit.org/show_bug.cgi?id=179108

        Reviewed by Youenn Fablet.

        Layout/fast/text contains only two tests for WOFF2. This commit imports the WPT tests in
        order to improve test coverage. However, for now we only run them on the GTK port because
        they don't pass on other platforms (bug 185939) and because WPT tests are slow (bug 178277).
        Maintainers for other platforms can decide whether they want to unskip them later.

        * TestExpectations: By default skip the WOFF2 test on all platforms.
        * platform/gtk/TestExpectations: Run tests on the GTK port and mark failures for 4 of them.

2018-05-24  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: performance-api/performance-observer-entry-sort.html is flaky
        ​https://bugs.webkit.org/show_bug.cgi?id=185385

        Rubber-stamped by Joseph Pecoraro.

        Add back some assertions in r232033 reverted in r232166.

        * performance-api/performance-observer-entry-sort.html:

2018-05-24  David Fenton  <david_fenton@apple.com>

        media/video-play-require-user-gesture.html and media/video-play-audio-require-user-gesture.html are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=185962

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-05-24  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: performance-api/performance-observer-entry-sort.html is flaky
        ​https://bugs.webkit.org/show_bug.cgi?id=185385

        Reviewed by Saam Barati.

        Partially revert r232033 to see if the flaky failure comes back.

        * performance-api/performance-observer-entry-sort.html:

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

        [iOS WK2] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=181499
        <rdar://problem/36443428>

        Reviewed by Youenn Fablet.

        Unskip test that should no longer be flaky.

        * platform/ios/TestExpectations:

2018-05-24  Jinho Bang  <zino@chromium.org>

        [PaymentRequest] Remove currencySystem member
        https://bugs.webkit.org/show_bug.cgi?id=185860

        Reviewed by Andy Estes.

        * http/tests/inspector/paymentrequest/payment-request-internal-properties.https-expected.txt:
        * http/tests/inspector/paymentrequest/payment-request-internal-properties.https.html:

2018-05-23  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
        <rdar://problem/38733968>

        Reviewed by Youenn Fablet.

        Stop loading an external URL as this is not what the test is testing and since the error message for
        the external load causes flakiness.

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

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

        RenderLayer::scrollRectToVisible() should not propagate a subframe's scroll to its cross-origin parent
        https://bugs.webkit.org/show_bug.cgi?id=185664
        <rdar://problem/36185260>

        Reviewed by Simon Fraser.

        Add layout test coverage.

        * http/tests/navigation/fragment-navigation-cross-origin-subframe-no-scrolling-parent-expected.txt: Added.
        * http/tests/navigation/fragment-navigation-cross-origin-subframe-no-scrolling-parent.html: Added.
        * http/tests/navigation/resources/clear-fragment.html: Added.

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

        NetworkLoadChecker should check cached redirections
        https://bugs.webkit.org/show_bug.cgi?id=185849

        Reviewed by Chris Dumez.

        * TestExpectations:
        * http/tests/fetch/redirectmode-and-preload-expected.txt:
        * http/tests/fetch/redirectmode-and-preload.html:
        Removed tests that mix manual/error redirect mode with no-cors since this is no longer a valid possibility.
        * http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt: Removed.

2018-05-23  Nan Wang  <n_wang@apple.com>

        AX: setValue on contenteditable should preserve whitespace
        https://bugs.webkit.org/show_bug.cgi?id=185897

        Reviewed by Chris Fleizach.

        * accessibility/mac/set-value-editable-types-expected.txt:
        * accessibility/mac/set-value-editable-types.html:

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

        Increase the simulated memory size on PLATFORM(IOS_SIMULATOR) from 512MB to 1024MB
        https://bugs.webkit.org/show_bug.cgi?id=185908

        Reviewed by Geoffrey Garen.

        * platform/ios-simulator/fast/canvas/canvas-crash-expected.txt:
        * platform/ios-simulator/fast/canvas/canvas-skia-excessive-size-expected.txt:

2018-05-23  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/accessibility/table-roles-hierarchy-expected.txt:

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

        Page keeps reloading when viewing photos in google drive (due to too high canvas memory limits)
        https://bugs.webkit.org/show_bug.cgi?id=185903
        <rdar://problem/38420562>

        Reviewed by Simon Fraser.

        * platform/ios-simulator/fast/canvas/canvas-crash-expected.txt:
        * platform/ios-simulator/fast/canvas/canvas-skia-excessive-size-expected.txt: Added.

2018-05-22  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-text] W3C test suite gardening
        https://bugs.webkit.org/show_bug.cgi?id=185879

        Some more gardening on the css-text test suite.

        Unreviewed test gardening.

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

2018-05-22  Myles C. Maxfield  <mmaxfield@apple.com>

        Text can wrap between hyphens and commas
        https://bugs.webkit.org/show_bug.cgi?id=185899
        <rdar://problem/40118983>

        Reviewed by Zalan Bujtas.

        * fast/text/line-break-hyphen-comma-expected.html: Added.
        * fast/text/line-break-hyphen-comma.html: Added.

2018-05-22  David Fenton  <david_fenton@apple.com>

        Update test expectations for newly imported css-text layout tests
        https://bugs.webkit.org/show_bug.cgi?id=185872

        Unreviewed test gardening.

        * TestExpectations:

2018-05-22  David Fenton  <david_fenton@apple.com>

        Update test expectations for newly imported css-text layout tests
        https://bugs.webkit.org/show_bug.cgi?id=185872

        Unreviewed test gardening.

        * TestExpectations: Flag tests that are not passing right now.

2018-05-22  Keith Miller  <keith_miller@apple.com>

        We should have a CoW storage for NewArrayBuffer arrays.
        https://bugs.webkit.org/show_bug.cgi?id=185003

        Reviewed by Filip Pizlo.

        Test should have a real error that gives you the stack.

        * js/slow-stress/script-tests/variadic-closure-call.js:

2018-05-22  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-text] W3C test suite gardening
        https://bugs.webkit.org/show_bug.cgi?id=185862

        Test suite landed in r232057 but some of the tests marked as failure
        are actually passing.

        Unreviewed test gardening.

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

2018-05-22  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-text] Import WPT test suite
        https://bugs.webkit.org/show_bug.cgi?id=183258

        Reviewed by Youenn Fablet.

        * TestExpectations: Flag tests that are not passing right now.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-001-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-004-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-016-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-017-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-collapse-002-expected.txt: Added.
        * platform/ios-simulator/TestExpectations: Flag tests that are not passing right now.

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

        File's structured serialization should serialize lastModified attribute
        https://bugs.webkit.org/show_bug.cgi?id=185773

        Reviewed by Youenn Fablet.

        Unskip structured serialization tests that no longer fail / time out.

        * TestExpectations:

2018-05-21  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, update crypto/subtle/ecdh-import-jwk-private-key-p384.html to correct input

        * crypto/subtle/ecdh-import-jwk-private-key-p384.html:

2018-05-21  Aditya Keerthi  <akeerthi@apple.com>

        Added test to verify behaviour when tapping multiple times on an editable node.
        https://bugs.webkit.org/show_bug.cgi?id=185777

        Reviewed by Tim Horton.

        * fast/events/ios/click-event-while-editing-node-expected.txt: Added.
        * fast/events/ios/click-event-while-editing-node.html: Added.

2018-05-21  Commit Queue  <commit-queue@webkit.org>

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

        "Caused
        TestWebKitAPI.IndexedDB.StructuredCloneBackwardCompatibility
        API test to fail" (Requested by cdumez on #webkit).

        Reverted changeset:

        "File's structured serialization should serialize lastModified
        attribute"
        https://bugs.webkit.org/show_bug.cgi?id=185773
        https://trac.webkit.org/changeset/232030

2018-05-11  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: performance-api/performance-observer-entry-sort.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=185385

        Reviewed by Saam Barati.

        Add diagnostic assertions to test the hypothesis that performance.now is drifting backwards.

        * performance-api/performance-observer-entry-sort.html:

2018-05-21  Daniel Bates  <dabates@apple.com>

        REGRESSION (r231107): CSP report-only policies are ignored for beacon, importScripts, fetch(), EventSource, and XHR
        https://bugs.webkit.org/show_bug.cgi?id=185789
        <rdar://problem/40380175>

        Reviewed by Andy Estes.

        Add some new tests and updated the expected results of other tests.

        The tests connect-src-beacon-{allowed, blocked} are derived from the Blink test:
        <https://chromium.googlesource.com/chromium/src/+/5c265c1a56a60533a1957589d33eabc201e2e8b6/third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/connect-src-beacon-allowed.html>

        * http/tests/quicklook/same-origin-xmlhttprequest-allowed-expected.txt: Update expected result. Note that these results are
        a continuation of a regression caused by r231107. See <https://bugs.webkit.org/show_bug.cgi?id=185807> for more details.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/connect-src-beacon-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/connect-src-beacon-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/connect-src-beacon-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/connect-src-beacon-blocked.html: Added.
        * 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/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.php: Added.
        * http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php: Added.
        * http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
        * http/wpt/beacon/connect-src-beacon-redirect-blocked.sub-expected.txt:
        * platform/mac-wk1/TestExpectations: Skip the beacon tests because we do not support beacon in WebKit1.
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt: Added.
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt: Added.
        * platform/win/TestExpectations: Skip the beacon tests because we do not support beacon in WebKit1.
        * platform/win/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
        * platform/win/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
        * platform/win/http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt: Added.
        * platform/win/http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt: Added.

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

        File's structured serialization should serialize lastModified attribute
        https://bugs.webkit.org/show_bug.cgi?id=185773

        Reviewed by Youenn Fablet.

        Unskip structured serialization tests that no longer fail / time out.

        * TestExpectations:

2018-05-21  Eric Carlson  <eric.carlson@apple.com>

        Improve NowPlaying "title"
        https://bugs.webkit.org/show_bug.cgi?id=185680
        <rdar://problem/40296700>

        Unreviewed test fix.

        * http/tests/media/now-playing-info-expected.txt:
        * http/tests/media/now-playing-info.html: Don't test .elapsedTime before seeking because
        the time value can take a while to "settle" when a file has just loaded.

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

        Complete fix for enabling modern EME by default
        https://bugs.webkit.org/show_bug.cgi?id=185770
        <rdar://problem/40368220>

        Reviewed by Eric Carlson.

        * platform/mac/TestExpectations:
        * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: 
        * platform/mac/fast/dom/navigator-detached-no-crash-expected.txt:

2018-05-20  Emilio Cobos Álvarez  <emilio@crisal.io>

        Update CSSOM WPT tests.
        https://bugs.webkit.org/show_bug.cgi?id=185805

        Reviewed by Frédéric Wang.

        Update CSSOM WPT tests.

        * TestExpectations:

2018-05-18  Commit Queue  <commit-queue@webkit.org>

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

        Caused layout test failures (Requested by realdawei on
        #webkit).

        Reverted changeset:

        "Complete fix for enabling modern EME by default"
        https://bugs.webkit.org/show_bug.cgi?id=185770
        https://trac.webkit.org/changeset/231982

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

        NetworkLoadChecker should cancel its content extension retrieval task when being destroyed
        https://bugs.webkit.org/show_bug.cgi?id=185661
        <rdar://problem/39985509>

        Reviewed by Chris Dumez.

        * http/tests/contentextensions/crash-xhr-expected.txt: Added.
        * http/tests/contentextensions/crash-xhr.html: Added.
        * http/tests/contentextensions/crash-xhr.html.json: Added.

2018-05-18  Jer Noble  <jer.noble@apple.com>

        Complete fix for enabling modern EME by default
        https://bugs.webkit.org/show_bug.cgi?id=185770
        <rdar://problem/40368220>

        Reviewed by Eric Carlson.

        * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:

2018-05-18  Antoine Quint  <graouts@apple.com>

        [Web Animations] Turn Web Animations with CSS integration on for test runners
        https://bugs.webkit.org/show_bug.cgi?id=184819
        <rdar://problem/39597337>

        Unreviewed. Rolling out the patch for this bug, it caused some flaky timeouts for animation suspension tests.

        * TestExpectations:
        * animations/3d/matrix-transform-type-animation.html:
        * animations/3d/replace-filling-transform.html:
        * animations/3d/transform-origin-vs-functions.html:
        * animations/3d/transform-perspective.html:
        * animations/additive-transform-animations.html:
        * animations/animation-border-overflow.html:
        * animations/animation-callback-timestamp.html:
        * animations/animation-controller-drt-api.html:
        * animations/animation-direction-alternate-reverse-expected.txt:
        * animations/animation-direction-alternate-reverse.html:
        * animations/animation-direction-reverse-fill-mode-hardware.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-followed-by-transition.html:
        * animations/animation-hit-test-transform.html:
        * animations/animation-hit-test.html:
        * animations/animation-internals-api-expected.txt: Added.
        * animations/animation-internals-api-multiple-keyframes-expected.txt: Added.
        * animations/animation-internals-api-multiple-keyframes.html: Added.
        * animations/animation-internals-api.html: Added.
        * animations/animation-offscreen-to-onscreen.html:
        * animations/big-rotation-expected.txt:
        * animations/big-rotation.html:
        * animations/change-completed-animation-transform.html:
        * animations/change-keyframes.html:
        * animations/combo-transform-rotate+scale.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/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:
        * 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/keyframe-timing-functions-transform.html:
        * animations/keyframe-timing-functions.html:
        * animations/keyframe-timing-functions2.html:
        * animations/keyframes-comma-separated.html:
        * animations/keyframes-dynamic.html:
        * animations/keyframes-infinite-iterations.html:
        * animations/keyframes-invalid-keys.html:
        * animations/keyframes-out-of-order.html:
        * animations/keyframes.html:
        * animations/lineheight-animation.html:
        * animations/longhand-timing-function.html:
        * animations/matrix-anim.html:
        * animations/missing-from-to-transforms.html:
        * animations/missing-from-to.html:
        * animations/missing-keyframe-properties-repeating.html:
        * animations/missing-keyframe-properties-timing-function.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/play-state-start-paused.html:
        * animations/simultaneous-start-left.html:
        * animations/simultaneous-start-transform.html:
        * animations/spring-function.html:
        * animations/stacking-context-unchanged-while-running.html:
        * animations/timing-functions.html:
        * animations/transition-and-animation-1.html:
        * animations/transition-and-animation-2.html:
        * animations/transition-and-animation-3.html:
        * animations/unanimated-style.html:
        * animations/unprefixed-keyframes.html:
        * animations/width-using-ems.html:
        * compositing/animation/animated-composited-inside-hidden.html:
        * compositing/animation/computed-style-during-delay.html:
        * compositing/animation/layer-for-filling-animation.html:
        * compositing/backing/backface-visibility-flip.html:
        * compositing/contents-scale/animating.html:
        * compositing/layer-creation/animation-overlap-with-children.html:
        * compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/overlap-animation-clipping.html:
        * compositing/layer-creation/overlap-animation-container.html:
        * compositing/layer-creation/overlap-animation.html:
        * compositing/layer-creation/scale-rotation-animation-overlap.html:
        * compositing/layer-creation/translate-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * compositing/overflow/overflow-positioning.html:
        * compositing/reflections/animation-inside-reflection.html:
        * compositing/reflections/nested-reflection-animated.html:
        * compositing/reflections/nested-reflection-transition.html:
        * compositing/transitions/scale-transition-no-start.html:
        * compositing/transitions/singular-scale-transition.html:
        * compositing/visible-rect/animated.html:
        * css3/calc/transitions-dependent.html:
        * css3/calc/transitions.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/animation/css-animation-resuming-when-visible-with-style-change.html:
        * fast/animation/css-animation-resuming-when-visible.html:
        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/css-generated-content/pseudo-animation.html:
        * fast/css-generated-content/pseudo-transition.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:
        * imported/blink/transitions/unprefixed-transform.html:
        * platform/ios/TestExpectations:
        * platform/win/TestExpectations:
        * 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-path-transitions.html:
        * transitions/clip-transition.html:
        * transitions/color-transition-all.html:
        * transitions/color-transition-premultiplied.html:
        * transitions/color-transition-rounding.html:
        * transitions/cross-fade-background-image.html:
        * transitions/cross-fade-border-image.html:
        * transitions/cubic-bezier-overflow-color.html:
        * transitions/cubic-bezier-overflow-length.html:
        * transitions/cubic-bezier-overflow-shadow.html:
        * transitions/cubic-bezier-overflow-svg-length.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/interrupted-all-transition.html:
        * transitions/longhand-vs-shorthand-initial.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-background-transitions.html:
        * transitions/multiple-mask-transitions.html:
        * transitions/multiple-shadow-transitions.html:
        * transitions/negative-delay.html:
        * transitions/opacity-transition-zindex.html:
        * transitions/remove-transition-style.html:
        * 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-drt-api-delay-expected.txt: Added.
        * transitions/transition-drt-api-delay.html: Added.
        * transitions/transition-drt-api-expected.txt: Added.
        * transitions/transition-drt-api.html: Added.
        * transitions/transition-end-event-rendering.html:
        * transitions/transition-hit-test-transform.html:
        * transitions/transition-hit-test.html:
        * transitions/transition-in-delay-phase.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-end.html:
        * transitions/zero-duration-with-non-zero-delay-start.html:
        * webanimations/css-animations.html:
        * webanimations/css-transitions.html:

2018-05-18  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Curl] Bug fix on suspend/resume behavior.
        https://bugs.webkit.org/show_bug.cgi?id=183089

        The flag was not set correctly. Also wrong method was called.

        Reviewed by Youenn Fablet.

        * platform/wincairo/TestExpectations: Enable loader/ tests for WinCairo.

2018-05-18  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] Clearing text fields should dispatch input events of type "deleteContent"
        https://bugs.webkit.org/show_bug.cgi?id=185769
        <rdar://problem/40368261>

        Reviewed by Tim Horton.

        Adds a new test to inspect the input events dispatched as a result of inserting and deleting text in a form
        control. The inputTypes should be "insertText" and "deleteContent", respectively; the data values should be the
        inserted string and null, respectively.

        * fast/forms/extrazoom/delete-content-in-text-field-expected.txt: Added.
        * fast/forms/extrazoom/delete-content-in-text-field.html: Added.

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

        Layout Test http/wpt/service-workers/header-filtering.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184469
        <rdar://problem/39428226>

        Unreviewed.

        * platform/mac-wk2/TestExpectations: Removed flaky expectation that was added back inadvertently.

2018-05-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Password fields obscure the text with rectangles instead of circles
        https://bugs.webkit.org/show_bug.cgi?id=185760
        <rdar://problem/38644697>

        Reviewed by Zalan Bujtas.

        * fast/text/black-circle-expected.html: Added.
        * fast/text/black-circle.html: Added.

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

        Unreviewed, rolling out r231935.

        Caused an accessibility test to fail

        Reverted changeset:

        "RenderLayer::scrollRectToVisible() should not propagate a
        subframe's scroll to its cross-origin parent"
        https://bugs.webkit.org/show_bug.cgi?id=185664
        https://trac.webkit.org/changeset/231935

2018-05-18  Dirk Schulze  <krit@webkit.org>

        Make all SVG shape interfaces inherit from SVGGeometryElement
        https://bugs.webkit.org/show_bug.cgi?id=185600

        Reviewed by Antti Koivisto.

        Update test for inheritance of SVG shape interfaces (more passes).
        Add individual tests for SVGGeometryElement interfaces for each
        SVG shape. There already are more detailed tests for the methods
        and the SVGPathElement interface.

        * svg/dom/SVGGeometry-circle-expected.txt: Added.
        * svg/dom/SVGGeometry-circle.xhtml: Added.
        * svg/dom/SVGGeometry-ellipse-expected.txt: Added.
        * svg/dom/SVGGeometry-ellipse.xhtml: Added.
        * svg/dom/SVGGeometry-line-expected.txt: Added.
        * svg/dom/SVGGeometry-line.xhtml: Added.
        * svg/dom/SVGGeometry-polygon-expected.txt: Added.
        * svg/dom/SVGGeometry-polygon.xhtml: Added.
        * svg/dom/SVGGeometry-polyline-expected.txt: Added.
        * svg/dom/SVGGeometry-polyline.xhtml: Added.
        * svg/dom/SVGGeometry-rect-expected.txt: Added.
        * svg/dom/SVGGeometry-rect.xhtml: Added.
        * svg/dom/svg2-inheritance-expected.txt:

2018-05-18  Per Arne Vollan  <pvollan@apple.com>

        The test fast/images/animated-image-mp4-crash.html is failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=185765

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-05-18  Antoine Quint  <graouts@apple.com>

        [modern-media-controls] AirPlaySupport should be disabled by default
        https://bugs.webkit.org/show_bug.cgi?id=185658
        <rdar://problem/40272213>

        Reviewed by Simon Fraser.

        Add a new test that checks that we create an AirplaySupport object only after media has started playing.
        We also modify a couple of existing tests so they are no longer flaky, as a first pass of this patch
        revealed some flakiness.

        * media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play-expected.txt: Added.
        * media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play.html: Added.
        * media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt:
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
        * media/modern-media-controls/volume-support/volume-support-click-expected.txt:
        * media/modern-media-controls/volume-support/volume-support-click.html:

2018-05-18  Antoine Quint  <graouts@apple.com>

        [Web Animations] Turn Web Animations with CSS integration on for test runners
        https://bugs.webkit.org/show_bug.cgi?id=184819
        <rdar://problem/39597337>

        Reviewed by Jon Lee.

        Since Web Animations with CSS integration is on by default on test runners, we no longer need
        the special HTML comment to turn the flag on for select tests.

        * TestExpectations:
        * animations/3d/matrix-transform-type-animation.html:
        * animations/3d/replace-filling-transform.html:
        * animations/3d/transform-origin-vs-functions.html:
        * animations/3d/transform-perspective.html:
        * animations/additive-transform-animations.html:
        * animations/animation-border-overflow.html:
        * animations/animation-callback-timestamp.html:
        * animations/animation-controller-drt-api.html:
        * animations/animation-direction-alternate-reverse-expected.txt:
        * animations/animation-direction-alternate-reverse.html:
        * animations/animation-direction-reverse-fill-mode-hardware.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-followed-by-transition.html:
        * animations/animation-hit-test-transform.html:
        * animations/animation-hit-test.html:
        * animations/animation-internals-api-expected.txt: Removed.
        * animations/animation-internals-api-multiple-keyframes-expected.txt: Removed.
        * animations/animation-internals-api-multiple-keyframes.html: Removed.
        * animations/animation-internals-api.html: Removed.
        * animations/animation-offscreen-to-onscreen.html:
        * animations/big-rotation-expected.txt:
        * animations/big-rotation.html:
        * animations/change-completed-animation-transform.html:
        * animations/change-keyframes.html:
        * animations/combo-transform-rotate+scale.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/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:
        * 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/keyframe-timing-functions-transform.html:
        * animations/keyframe-timing-functions.html:
        * animations/keyframe-timing-functions2.html:
        * animations/keyframes-comma-separated.html:
        * animations/keyframes-dynamic.html:
        * animations/keyframes-infinite-iterations.html:
        * animations/keyframes-invalid-keys.html:
        * animations/keyframes-out-of-order.html:
        * animations/keyframes.html:
        * animations/lineheight-animation.html:
        * animations/longhand-timing-function.html:
        * animations/matrix-anim.html:
        * animations/missing-from-to-transforms.html:
        * animations/missing-from-to.html:
        * animations/missing-keyframe-properties-repeating.html:
        * animations/missing-keyframe-properties-timing-function.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/play-state-start-paused.html:
        * animations/simultaneous-start-left.html:
        * animations/simultaneous-start-transform.html:
        * animations/spring-function.html:
        * animations/stacking-context-unchanged-while-running.html:
        * animations/timing-functions.html:
        * animations/transition-and-animation-1.html:
        * animations/transition-and-animation-2.html:
        * animations/transition-and-animation-3.html:
        * animations/unanimated-style.html:
        * animations/unprefixed-keyframes.html:
        * animations/width-using-ems.html:
        * compositing/animation/animated-composited-inside-hidden.html:
        * compositing/animation/computed-style-during-delay.html:
        * compositing/animation/layer-for-filling-animation.html:
        * compositing/backing/backface-visibility-flip.html:
        * compositing/contents-scale/animating.html:
        * compositing/layer-creation/animation-overlap-with-children.html:
        * compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/overlap-animation-clipping.html:
        * compositing/layer-creation/overlap-animation-container.html:
        * compositing/layer-creation/overlap-animation.html:
        * compositing/layer-creation/scale-rotation-animation-overlap.html:
        * compositing/layer-creation/translate-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * compositing/overflow/overflow-positioning.html:
        * compositing/reflections/animation-inside-reflection.html:
        * compositing/reflections/nested-reflection-animated.html:
        * compositing/reflections/nested-reflection-transition.html:
        * compositing/transitions/scale-transition-no-start.html:
        * compositing/transitions/singular-scale-transition.html:
        * compositing/visible-rect/animated.html:
        * css3/calc/transitions-dependent.html:
        * css3/calc/transitions.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/animation/css-animation-resuming-when-visible-with-style-change.html:
        * fast/animation/css-animation-resuming-when-visible.html:
        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/css-generated-content/pseudo-animation.html:
        * fast/css-generated-content/pseudo-transition.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:
        * imported/blink/transitions/unprefixed-transform.html:
        * platform/ios/TestExpectations:
        * platform/win/TestExpectations:
        * 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-path-transitions.html:
        * transitions/clip-transition.html:
        * transitions/color-transition-all.html:
        * transitions/color-transition-premultiplied.html:
        * transitions/color-transition-rounding.html:
        * transitions/cross-fade-background-image.html:
        * transitions/cross-fade-border-image.html:
        * transitions/cubic-bezier-overflow-color.html:
        * transitions/cubic-bezier-overflow-length.html:
        * transitions/cubic-bezier-overflow-shadow.html:
        * transitions/cubic-bezier-overflow-svg-length.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/interrupted-all-transition.html:
        * transitions/longhand-vs-shorthand-initial.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-background-transitions.html:
        * transitions/multiple-mask-transitions.html:
        * transitions/multiple-shadow-transitions.html:
        * transitions/negative-delay.html:
        * transitions/opacity-transition-zindex.html:
        * transitions/remove-transition-style.html:
        * 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-drt-api-delay-expected.txt: Removed.
        * transitions/transition-drt-api-delay.html: Removed.
        * transitions/transition-drt-api-expected.txt: Removed.
        * transitions/transition-drt-api.html: Removed.
        * transitions/transition-end-event-rendering.html:
        * transitions/transition-hit-test-transform.html:
        * transitions/transition-hit-test.html:
        * transitions/transition-in-delay-phase.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-end.html:
        * transitions/zero-duration-with-non-zero-delay-start.html:
        * webanimations/css-animations.html:
        * webanimations/css-transitions.html:

2018-05-17  Michael Saboff  <msaboff@apple.com>

        We don't throw SyntaxErrors for runtime generated regular expressions with errors
        https://bugs.webkit.org/show_bug.cgi?id=185755

        Reviewed by Keith Miller.

        Updated test and results from reporting a SyntaxError to an Out of memory error.

        * js/script-tests/stack-overflow-regexp.js:
        (shouldThrow.recursiveCall):
        (shouldThrow):
        (recursiveCall):
        * js/stack-overflow-regexp-expected.txt:

2018-05-17  Nan Wang  <n_wang@apple.com>

        AX: [macOS] Expose the primary screen height through AX API
        https://bugs.webkit.org/show_bug.cgi?id=185742

        Reviewed by Chris Fleizach.

        * accessibility/mac/primary-screen-height-expected.txt: Added.
        * accessibility/mac/primary-screen-height.html: Added.

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

        RenderLayer::scrollRectToVisible() should not propagate a subframe's scroll to its cross-origin parent
        https://bugs.webkit.org/show_bug.cgi?id=185664
        <rdar://problem/36185260>

        Reviewed by Simon Fraser.

        Add layout test coverage.

        * http/tests/navigation/fragment-navigation-cross-origin-subframe-no-scrolling-parent-expected.txt: Added.
        * http/tests/navigation/fragment-navigation-cross-origin-subframe-no-scrolling-parent.html: Added.
        * http/tests/navigation/resources/clear-fragment.html: Added.

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

        Unreviewed, rolling out r231899.

        Caused flakiness in two existing modern-media-controls tests.

        Reverted changeset:

        "[modern-media-controls] AirPlaySupport should be disabled by
        default"
        https://bugs.webkit.org/show_bug.cgi?id=185658
        https://trac.webkit.org/changeset/231899

2018-05-17  Jer Noble  <jer.noble@apple.com>

        CRASH in ImageDecoderAVFObjC::sampleAtIndex()
        https://bugs.webkit.org/show_bug.cgi?id=185734
        <rdar://problem/40295094>

        Reviewed by Eric Carlson.

        * fast/images/animated-image-mp4-crash-expected.txt: Added.
        * fast/images/animated-image-mp4-crash.html: Added.
        * fast/images/resources/two-samples-with-same-pts.mp4: Added.

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

        REGRESSION (r229831?): Layout Test http/tests/appcache/interrupted-update.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184061
        <rdar://problem/38975570>

        Reviewed by Alexey Proskuryakov.

        Test is flaky as it sometimes reload twice.
        Make sure it reloads only once by not relying on localStorage.
        Make sure the appcache has not enough time to finish before reloading is done.
        This is done by adding more entries to the appcache.
        Add a test that sets an item in local storage, reloads and verifies the item is there.

        * TestExpectations:
        * http/tests/appcache/interrupted-update.html:
        * http/tests/appcache/resources/interrupted-update.manifest:
        * http/tests/storage/setItem-and-reload-expected.txt: Added.
        * http/tests/storage/setItem-and-reload.html: Added.

2018-05-17  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [WPE] Implement and enable FULLSCREEN_API
        https://bugs.webkit.org/show_bug.cgi?id=185676

        Reviewed by Žan Doberšek.

        Enable all the 58 fullscreen related tests.
        Are all passing but 3.

        * platform/wpe/TestExpectations:
        * platform/wpe/fullscreen/full-screen-placeholder-expected.txt: Added. Copied baseline from WebKitGTK+ port.

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

        [Extra zoom mode] Disabled adaptations are not reset upon mainframe navigation
        https://bugs.webkit.org/show_bug.cgi?id=185735
        <rdar://problem/40335311>

        Reviewed by Tim Horton.

        Adds a new layout test that disables extra zoom mode adaptations, navigates to a new document, and checks that
        the innerWidth and innerHeight are reset to their expected (default) values.

        * fast/viewport/extrazoom/viewport-adaptations-after-navigation.html: Added.

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

        Cross-Origin-Options: deny/allow-postmessage should prevent getting navigated by cross-origin scripts
        https://bugs.webkit.org/show_bug.cgi?id=185681
        <rdar://problem/40296313>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/wpt/cross-origin-options/navigation-from-opener-via-open-target-expected.txt: Added.
        * http/wpt/cross-origin-options/navigation-from-opener-via-open-target.html: Added.
        * http/wpt/cross-origin-options/navigation-from-subframe-via-anchor-target-expected.txt: Added.
        * http/wpt/cross-origin-options/navigation-from-subframe-via-anchor-target.html: Added.
        * http/wpt/cross-origin-options/resources/destination.html: Added.
        * http/wpt/cross-origin-options/resources/navigate-parent-via-anchor.html: Added.
        * http/wpt/cross-origin-options/resources/navigation-from-subframe-frame.py: Added.
        (main):
        * http/wpt/cross-origin-options/resources/utils.js:

2018-05-17  Brent Fulgham  <bfulgham@apple.com>

        Storage Access API: Allow documents that have been granted storage access to also do a popup
        https://bugs.webkit.org/show_bug.cgi?id=185615
        <rdar://problem/39105791>

        Reviewed by Chris Dumez.

        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt: Added.
        * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window.html: Added.
        * http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html: Added.
        * http/tests/storageAccess/resources/request-storage-access-second-window.html: Added.

2018-05-17  Antoine Quint  <graouts@apple.com>

        [modern-media-controls] AirPlaySupport should be disabled by default
        https://bugs.webkit.org/show_bug.cgi?id=185658
        <rdar://problem/40272213>

        Reviewed by Simon Fraser.

        Add a new test that checks that we create an AirplaySupport object only after media has started playing.

        * media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play-expected.txt: Added.
        * media/modern-media-controls/airplay-support/airplay-support-disable-event-listeners-until-play.html: Added.

2018-05-17  Rob Buis  <rbuis@igalia.com>

        Remove cssom-remove-shorthand-property.html test
        https://bugs.webkit.org/show_bug.cgi?id=185727

        Reviewed by Frédéric Wang.

        Exact same test is contained in WPT:
        cssom/cssom-setProperty-shorthand.html

        * fast/css/cssom-remove-shorthand-property-expected.txt: Removed.
        * fast/css/cssom-remove-shorthand-property.html: Removed.

2018-05-17  Ms2ger  <Ms2ger@igalia.com>

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

        Unreviewed test gardening.

        * accessibility/gtk/spans-expected.txt: rebaseline for r231717.
        * accessibility/gtk/spans-paragraphs-and-divs-expected.txt: rebaseline for r231717.
        * js/script-tests/intl-numberformat-format-to-parts.js: skip (bug 185714).
        * js/script-tests/intl-pluralrules.js: skip (bug 185714).
        * platform/gtk/TestExpectations: skip new Intl tests (bug 185714).
        * platform/gtk/editing/deleting/delete-emoji-1-expected.txt: rebaseline for r231630.
        * platform/gtk/editing/deleting/delete-emoji-expected.txt: rebaseline for r231630.
        * platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt:
          Removed (platform-neutral expectation file applies since r231000).
        * platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt:
          Removed (platform-neutral expectation file applies since r231000).

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

        [WinCairo] Unreviewed gardening after WinCairoRequirements update.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/editing/deleting/delete-emoji-1-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-2-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-3-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-4-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-5-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-6-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-7-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-8-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-9-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-expected.txt:
        * platform/wincairo/editing/deleting/regional-indicators-expected.txt: Removed.
        * platform/wincairo/editing/style/create-block-for-style-006-expected.png: Added.

2018-05-16  Brady Eidson  <beidson@apple.com>

        LayoutTest storage/indexeddb/dont-wedge-private.html is a flaky failure
        <rdar://problem/38975304> and https://bugs.webkit.org/show_bug.cgi?id=184058

        Reviewed by Andy Estes.

        Make the asynchronous IDB part of this test take way, way longer to always give the location change a chance to happen.

        * TestExpectations:
        * storage/indexeddb/dont-wedge-expected.txt:
        * storage/indexeddb/dont-wedge-private-expected.txt:
        * storage/indexeddb/resources/dont-wedge.js:
        (openDatabase1.request.onupgradeneeded.openOnUpgradeNeeded1.putter):
        (openDatabase1.request.onupgradeneeded):

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

        [WinCairo] Unreviewed gardening before WinCairoRequirements update.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/fast/dom/adopt-node-crash-2-expected.txt: Added.

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

        Mark imported/mozilla/css-transitions/test_event-dispatch.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=183843

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>

        Add support for Intl NumberFormat formatToParts
        https://bugs.webkit.org/show_bug.cgi?id=185375

        Reviewed by Yusuke Suzuki.

        Add tests for NumberFormat formatToParts. Tests are expected to fail on
        macOS until ICU is updated to v59 or newer.

        * js/intl-numberformat-format-to-parts-expected.txt: Added.
        * js/intl-numberformat-format-to-parts.html: Added.
        * js/script-tests/intl-numberformat-format-to-parts.js: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2018-05-16  Eric Carlson  <eric.carlson@apple.com>

        Improve NowPlaying "title"
        https://bugs.webkit.org/show_bug.cgi?id=185680
        <rdar://problem/40296700>

        Reviewed by Jer Noble.

        * http/tests/media/now-playing-info-expected.txt: Added.
        * http/tests/media/now-playing-info-private-browsing-expected.txt: Added.
        * http/tests/media/now-playing-info-private-browsing.html: Added.
        * http/tests/media/now-playing-info.html: Added.
        * platform/gtk/TestExpectations:

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

        Layout Test webrtc/addICECandidate-closed.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=185384
        <rdar://problem/40035167>

        Reviewed by Eric Carlson.

        * webrtc/addICECandidate-closed.html:
        Handle sometimes rejected promise to remove a line
        in the -expected.txt file that is sometimes added.

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

        REGRESSION (r229735): LayoutTest http/wpt/service-workers/third-party-registration.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=183860
        <rdar://problem/38975251>

        Reviewed by Geoffrey Garen.

        Make test more robust by introducing a timeout and better failure reporting.
        Mark test as Pass/Fail to start gathering results on test stability.

        * http/wpt/service-workers/resources/third-party-registration-frame.html:
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2018-05-16  David Fenton  <david_fenton@apple.com>

        Mark LayoutTest animations/needs-layout.html as Flaky on macOS debug.
        https://bugs.webkit.org/show_bug.cgi?id=185659

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [Web Animations] Turn Web Animations with CSS integration on for test runners
        https://bugs.webkit.org/show_bug.cgi?id=184819

        Unreviewed. Another attempt to make this test more robust.

        * transitions/interrupted-transition-hardware.html:

2018-05-16  Chris Nardi  <cnardi@chromium.org>

        Remove Document#selectedStylesheetSet/preferredStylesheetSet
        https://bugs.webkit.org/show_bug.cgi?id=185381

        Reviewed by Darin Adler.

        Update tests to remove selectedStylesheetSet/preferredStylesheetSet.

        * fast/css/link-disabled-attr-expected.txt:
        * fast/css/link-disabled-attr.html:
        * fast/dom/assign-to-prototype-accessor-on-prototype-should-throw-expected.txt:
        * fast/dom/assign-to-prototype-accessor-on-prototype-should-throw.html:
        * fast/dom/document-attribute-js-null-expected.txt:
        * fast/dom/document-attribute-js-null.html:
        * fast/shadow-dom/link-element-in-shadow-tree-expected.txt:
        * fast/shadow-dom/link-element-in-shadow-tree.html:
        * fast/shadow-dom/selected-stylesheet-in-shadow-tree-expected.txt: Removed.
        * fast/shadow-dom/selected-stylesheet-in-shadow-tree.html: Removed.

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

        Mark animations/keyframes-dynamic.html and related tests as failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=185678

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
        https://bugs.webkit.org/show_bug.cgi?id=185299

        Unreviewed. Attempt to make this test more robust.

        * transitions/interrupted-transition-hardware.html:

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

        REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
        https://bugs.webkit.org/show_bug.cgi?id=185299
        <rdar://problem/39630230>

        Reviewed by Simon Fraser.

        Add a new test where we interrupt a transition and check that upon returning to the original value,
        an animated value is still used and not the initial value. This test fails prior to this patch.

        * transitions/interrupted-transition-hardware-expected.html: Added.
        * transitions/interrupted-transition-hardware.html: Added.

2018-05-15  Commit Queue  <commit-queue@webkit.org>

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

        the layout test added with this change is very flaky
        (Requested by realdawei on #webkit).

        Reverted changeset:

        "REGRESSION (r230574): Interrupted hardware transitions don't
        behave correctly"
        https://bugs.webkit.org/show_bug.cgi?id=185299
        https://trac.webkit.org/changeset/231765

2018-05-15  Tadeu Zagallo  <tzagallo@apple.com>

        Update touch event tracking types on every touch
        https://bugs.webkit.org/show_bug.cgi?id=184250
        <rdar://problem/39145092>

        Reviewed by Geoffrey Garen.

        The tracking types for touch events were only update on touchstart, which meant that event
        listeners added after the touchstart would always be treated as passive, even if explicitly
        setting passive to false.

        * fast/events/touch/ios/touchmove-cancelable-after-touchstart-expected.txt: Added.
        * fast/events/touch/ios/touchmove-cancelable-after-touchstart.html: Added.

2018-05-15  Jer Noble  <jer.noble@apple.com>

        Media continues loading after rendered invisible (removed from DOM; scrolled off screen)
        https://bugs.webkit.org/show_bug.cgi?id=185487

        Reviewed by Eric Carlson.

        * media/video-buffering-allowed-expected.txt: Added.
        * media/video-buffering-allowed.html: Added.
        * media/video-test.js:
        (compare):
        (testExpected):
        (sleepFor):
        (testArraysEqual): Deleted.

2018-05-15  Charles Vazac  <cvazac@gmail.com>

        Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser.
        https://bugs.webkit.org/show_bug.cgi?id=175569

        Reviewed by Youenn Fablet.

        Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/*

        * imported/w3c/web-platform-tests/server-timing/cross_origin-expected.txt: Added.
        * imported/w3c/web-platform-tests/server-timing/resource_timing_idl-expected.txt: Added.
        * imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https-expected.txt: Added.
        * imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing-expected.txt: Added.
        * imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https-expected.txt: Added.

2018-05-15  Brady Eidson  <beidson@apple.com>

        Fix crash after a Worker terminates but there are still IDB transactions the server is trying to open for it.
        <rdar://problem/33744241> and https://bugs.webkit.org/show_bug.cgi?id=185653

        Reviewed by Andy Estes.

        * storage/indexeddb/modern/resources/worker-transaction-open-after-worker-stop.js: Added.
        (const.errorHandler):
        (openRequest.onupgradeneeded):
        (tx.oncomplete):
        (openRequest.onsuccess):
        (deleteRequest.onerror.deleteRequest.onblocked.deleteRequest.onsuccess):
        * storage/indexeddb/modern/worker-transaction-open-after-worker-stop-expected.txt: Added.
        * storage/indexeddb/modern/worker-transaction-open-after-worker-stop.html: Added.

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

        Unreviewed, rolling out r231763.

        The test added with this change is failing an assertion.

        Reverted changeset:

        "NSEvent event trackers don't work from WebKitTestRunner"
        https://bugs.webkit.org/show_bug.cgi?id=185383
        https://trac.webkit.org/changeset/231763

2018-05-15  Aditya Keerthi  <akeerthi@apple.com>

        Add test to verify behavior of -webkit-text-fill-color when inherited.
        https://bugs.webkit.org/show_bug.cgi?id=185427

        Reviewed by Daniel Bates.

        * fast/css/webkit-text-fill-color-inherit-expected.html: Added.
        * fast/css/webkit-text-fill-color-inherit.html: Added.

2018-05-15  Dirk Schulze  <krit@webkit.org>

        Add new SVGDOM SVGFEBLEND constants
        https://bugs.webkit.org/show_bug.cgi?id=185581

        Reviewed by Simon Fraser.

        Provide new SVG DOM constants for the new blend modes added to feBlend.

        https://drafts.fxtf.org/filter-effects-1/#InterfaceSVGFEBlendElement

        * svg/custom/js-svg-constructors-expected.txt:
        * svg/custom/js-svg-constructors.svg:
        * svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement-expected.txt:
        * svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement.html:
        * svg/dom/SVGAnimatedEnumeration-case-sensitive-expected.txt:
        * svg/dom/SVGAnimatedEnumeration-case-sensitive.html:

2018-05-15  Antoine Quint  <graouts@apple.com>

        [Web Animations] Expose Web Animations CSS integration as an experimental feature
        https://bugs.webkit.org/show_bug.cgi?id=185647

        Reviewed by Dean Jackson.

        Change the name of the Web Animations CSS integration flag so that tests can opt into this feature.

        * animations/3d/matrix-transform-type-animation.html:
        * animations/3d/replace-filling-transform.html:
        * animations/3d/transform-origin-vs-functions.html:
        * animations/3d/transform-perspective.html:
        * animations/additive-transform-animations.html:
        * animations/animation-border-overflow.html:
        * animations/animation-callback-timestamp.html:
        * animations/animation-controller-drt-api.html:
        * animations/animation-direction-reverse-fill-mode-hardware.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-followed-by-transition.html:
        * animations/animation-hit-test-transform.html:
        * animations/animation-hit-test.html:
        * animations/animation-offscreen-to-onscreen.html:
        * animations/change-completed-animation-transform.html:
        * animations/change-keyframes.html:
        * animations/combo-transform-rotate+scale.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/keyframe-timing-functions-transform.html:
        * animations/keyframe-timing-functions.html:
        * animations/keyframe-timing-functions2.html:
        * animations/keyframes-comma-separated.html:
        * animations/keyframes-dynamic.html:
        * animations/keyframes-infinite-iterations.html:
        * animations/keyframes-invalid-keys.html:
        * animations/keyframes-out-of-order.html:
        * animations/keyframes.html:
        * animations/lineheight-animation.html:
        * animations/longhand-timing-function.html:
        * animations/matrix-anim.html:
        * animations/missing-from-to-transforms.html:
        * animations/missing-from-to.html:
        * animations/missing-keyframe-properties-repeating.html:
        * animations/missing-keyframe-properties-timing-function.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/play-state-start-paused.html:
        * animations/resources/animation-test-helpers.js:
        (pauseAnimationAtTimeOnElement):
        * animations/simultaneous-start-left.html:
        * animations/simultaneous-start-transform.html:
        * animations/spring-function.html:
        * animations/stacking-context-unchanged-while-running.html:
        * animations/timing-functions.html:
        * animations/transition-and-animation-1.html:
        * animations/transition-and-animation-2.html:
        * animations/transition-and-animation-3.html:
        * animations/unanimated-style.html:
        * animations/unprefixed-keyframes.html:
        * animations/width-using-ems.html:
        * compositing/animation/animated-composited-inside-hidden.html:
        * compositing/animation/computed-style-during-delay.html:
        * compositing/animation/layer-for-filling-animation.html:
        * compositing/backing/backface-visibility-flip.html:
        * compositing/contents-scale/animating.html:
        * compositing/layer-creation/animation-overlap-with-children.html:
        * compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/overlap-animation-clipping.html:
        * compositing/layer-creation/overlap-animation-container.html:
        * compositing/layer-creation/overlap-animation.html:
        * compositing/layer-creation/scale-rotation-animation-overlap.html:
        * compositing/layer-creation/translate-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * compositing/overflow/overflow-positioning.html:
        * compositing/reflections/animation-inside-reflection.html:
        * compositing/reflections/nested-reflection-animated.html:
        * compositing/reflections/nested-reflection-transition.html:
        * compositing/transitions/scale-transition-no-start.html:
        * compositing/transitions/singular-scale-transition.html:
        * compositing/visible-rect/animated.html:
        * css3/calc/transitions-dependent.html:
        * css3/calc/transitions.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/animation/css-animation-resuming-when-visible-with-style-change.html:
        * fast/animation/css-animation-resuming-when-visible.html:
        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/css-generated-content/pseudo-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:
        * imported/blink/transitions/unprefixed-transform.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-path-transitions.html:
        * transitions/clip-transition.html:
        * transitions/color-transition-all.html:
        * transitions/color-transition-premultiplied.html:
        * transitions/color-transition-rounding.html:
        * transitions/cross-fade-background-image.html:
        * transitions/cross-fade-border-image.html:
        * transitions/cubic-bezier-overflow-color.html:
        * transitions/cubic-bezier-overflow-length.html:
        * transitions/cubic-bezier-overflow-shadow.html:
        * transitions/cubic-bezier-overflow-svg-length.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/interrupted-all-transition.html:
        * transitions/longhand-vs-shorthand-initial.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-background-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-transform.html:
        * transitions/transition-hit-test.html:
        * transitions/transition-in-delay-phase.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:
        * webanimations/css-animations.html:
        * webanimations/css-transitions.html:

2018-05-15  Antti Koivisto  <antti@apple.com>

        animation-play-state: paused causes very high cpu load because of style invalidation loop
        https://bugs.webkit.org/show_bug.cgi?id=182436
        <rdar://problem/37182562>

        Reviewed by Dean Jackson.

        * animations/animation-playstate-paused-style-resolution-expected.txt: Added.
        * animations/animation-playstate-paused-style-resolution.html: Added.

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

        readableStreamDefaultControllerError should return early if stream is not readable
        https://bugs.webkit.org/show_bug.cgi?id=185602

        Reviewed by Chris Dumez.

        * TestExpectations:

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

        imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-6.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=185549

        Reviewed by Chris Dumez.

        * TestExpectations:

2018-05-14  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Extra zoom mode] Google search results are excessively zoomed in
        https://bugs.webkit.org/show_bug.cgi?id=185347
        <rdar://problem/39999778>

        Reviewed by Tim Horton.

        Refactor an existing layout test to exercise disabled adaptations in extra zoom mode.

        * fast/viewport/extrazoom/viewport-change-min-device-width.html: Removed.
        * fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html: Added.

2018-05-14  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Listbox and Combobox roles embedded in labels should participate in name calculation
        https://bugs.webkit.org/show_bug.cgi?id=185521

        Reviewed by Chris Fleizach.

        * accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.
        * accessibility/text-alternative-calculation-from-listbox-expected.txt: Added.
        * accessibility/text-alternative-calculation-from-listbox.html: Added.
        * platform/mac/accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.
        * platform/win/accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.

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

        [Web Animations] Tests using the new animation engine may crash under WebCore::FrameView::didDestroyRenderTree when using internals methods
        https://bugs.webkit.org/show_bug.cgi?id=185612
        <rdar://problem/39579344>

        Reviewed by Dean Jackson.

        Some tests that were opting into the new animation engine were using internals methods (pauseAnimationAtTimeOnElement, pauseTransitionAtTimeOnElement, etc.)
        that enforce the creation of animations in the old animation engine. Meanwhile, the code that toggles the animation engine used based on HTML comments is run
        prior to teardown of the previous test and so a test running with the new engine would run with the legacy engine during teardown. These two factors would
        cause `ASSERT(!frame().animation().hasAnimations())` to fail under FrameView::didDestroyRenderTree().

        We update tests that use these internals method to use the Web Animations API instead and opt into the new animation engine if they didn't already do that.

        * animations/animation-hit-test-transform.html:
        * animations/keyframes-dynamic-expected.txt:
        * animations/keyframes-dynamic.html:
        * animations/missing-from-to-expected.txt:
        * animations/missing-from-to-transforms-expected.txt:
        * animations/missing-from-to-transforms.html:
        * animations/missing-from-to.html:
        * fast/css-generated-content/pseudo-animation.html:
        * transitions/transition-hit-test-transform.html:

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

        REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
        https://bugs.webkit.org/show_bug.cgi?id=185299
        <rdar://problem/39630230>

        Reviewed by Simon Fraser.

        Add a new test where we interrupt a transition and check that upon returning to the original value,
        an animated value is still used and not the initial value. This test fails prior to this patch.

        * transitions/interrupted-transition-hardware-expected.html: Added.
        * transitions/interrupted-transition-hardware.html: Added.

2018-05-14  Jeremy Jones  <jeremyj@apple.com>

        NSEvent event trackers don't work from WebKitTestRunner
        https://bugs.webkit.org/show_bug.cgi?id=185383
        rdar://problem/40025045

        Reviewed by Simon Fraser.

        This test initiates back navigation with wheel events.

        * swipe/wheel-event-initiated-back-navigation-expected.txt: Added.
        * swipe/wheel-event-initiated-back-navigation.html: Added.

2018-05-14  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] timeClip(-0) should produce +0
        https://bugs.webkit.org/show_bug.cgi?id=185589

        Reviewed by Saam Barati.

        * sputnik/Implementation_Diagnostics/S15.9.1.14_D1-expected.txt:

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

        Enable service-worker/navigation-redirect-body.https.html and service-worker/postmessage.https.html
        https://bugs.webkit.org/show_bug.cgi?id=185605

        Unreviewed.

        * TestExpectations:

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

        Mark imported/w3c/web-platform-tests/service-workers/service-worker/redirected-response.https.html as slow in debug
        https://bugs.webkit.org/show_bug.cgi?id=185604

        Unreviewed.

        * TestExpectations:

2018-05-13  Andy VanWagoner  <andy@vanwagoner.family>

        [INTL] Improve spec & test262 compliance for Intl APIs
        https://bugs.webkit.org/show_bug.cgi?id=185578

        Reviewed by Yusuke Suzuki.

        Update Intl tests for prototype changes.

        * js/intl-collator-expected.txt:
        * js/intl-datetimeformat-expected.txt:
        * js/intl-numberformat-expected.txt:
        * js/script-tests/intl-collator.js:
        * js/script-tests/intl-datetimeformat.js:
        * js/script-tests/intl-numberformat.js:

2018-05-13  Dirk Schulze  <krit@webkit.org>

        Implement SVGGeometryElement's isPointInFill and isPointInStroke
        https://bugs.webkit.org/show_bug.cgi?id=185580

        Reviewed by Antti Koivisto.

        Implement isPointInFill and isPointInStroke methods for
        SVGGeometryElement interface from SVG2.

        https://svgwg.org/svg2-draft/types.html#InterfaceSVGGeometryElement

        * svg/dom/SVGGeometry-isPointInFill-expected.txt: Added.
        * svg/dom/SVGGeometry-isPointInFill.xhtml: Added.
        * svg/dom/SVGGeometry-isPointInStroke-expected.txt: Added.
        * svg/dom/SVGGeometry-isPointInStroke.xhtml: Added.

2018-05-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, rebaseline a layout test after r231717

        * fast/events/extrazoom/change-focus-during-change-event-expected.txt:

2018-05-11  Daniel Bates  <dabates@apple.com>

        X-Frame-Options: SAMEORIGIN needs to check all ancestor frames
        https://bugs.webkit.org/show_bug.cgi?id=185567
        <rdar://problem/40175008>

        Reviewed by Brent Fulgham.

        Add tests to ensure that "X-Frame-Options: SAMEORIGIN" checks ancestor frames.

        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html:
        * http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html:
        * http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html:
        * http/tests/resources/echo-iframe-src.php: Copied from LayoutTests/http/tests/cookies/same-site/resources/echo-iframe-src.php.
        * http/tests/security/XFrameOptions/resources/x-frame-options-ancestors-same-origin-deny.html: Added.
        * http/tests/security/XFrameOptions/resources/x-frame-options-frame-ancestors-same-origin-allow.cgi: Added.
        * http/tests/security/XFrameOptions/resources/x-frame-options-frame-ancestors-same-origin-deny.cgi: Added.
        * http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-allow-expected.txt: Added.
        * http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-allow.html: Added.
        * http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-deny-expected.txt: Added.
        * http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-deny.html: Renamed from LayoutTests/http/tests/cookies/same-site/resources/echo-iframe-src.php.

2018-05-11  Nan Wang  <n_wang@apple.com>

        AX: In role=dialog elements with aria-modal=true VoiceOver iOS/macOS can't manually focus or read dialog paragraph description text inside the modal.
        https://bugs.webkit.org/show_bug.cgi?id=185219
        <rdar://problem/39920009>

        Reviewed by Chris Fleizach.

        * accessibility/aria-modal-text-descendants-expected.txt: Added.
        * accessibility/aria-modal-text-descendants.html: Added.

2018-05-11  Ryosuke Niwa  <rniwa@webkit.org>

        Tapping after CSS-based table casues an infinite loop in wordRangeFromPosition
        https://bugs.webkit.org/show_bug.cgi?id=185465
        <rdar://problem/35263057>

        Reviewed by Antti Koivisto.

        Rebaselined the tests. Most of these are due to new extra line breaks being generated after table and
        header elements as expected. See inline comments for some newly discovered bugs and rebaselines due to
        other non-obvious reasons.

        * accessibility/internal-link-anchors2-expected.txt: This test now demonstrates a bug that WebKit doesn't
        generate an extra line break before h3 when it has a large margin-top since an extra line break is only
        generated after a node at the moment.
        * accessibility/mac/mathml-elements-expected.txt:
        * accessibility/table-headers-expected.txt:
        * compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt:
        * css3/flexbox/box-orient-button-expected.txt:
        * css3/flexbox/flexitem-expected.txt:
        * editing/execCommand/19087-expected.txt: The second blockquote which has the height of 0px no longer
        generates an extra new line.
        * editing/inserting/insert-list-in-table-cell-08-expected.txt: Selection is now being restored properly
        using TextIterator in InsertListCommand.
        * editing/selection/tapping-in-table-at-end-of-document-expected.txt: Added.
        * editing/selection/tapping-in-table-at-end-of-document.html: Added.
        * editing/text-iterator/table-at-end-of-document-expected.txt: Added.
        * editing/text-iterator/table-at-end-of-document.html: Added.
        * fast/block/positioning/insert-positioned-in-anonymous-crash-expected.txt:
        * fast/css/css3-ch-unit-expected.txt: Line breaks are generated between block & inline-block elements
        as expected.
        * fast/css/percent-min-width-img-src-change-expected.txt:
        * fast/css/percent-width-img-src-change-expected.txt:
        * fast/css/pseudo-empty-display-none-expected.txt:
        * fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash-expected.txt:
        * fast/dom/HTMLDivElement/align/getset-expected.txt:
        * fast/dom/HTMLSelectElement/listbox-select-reset-expected.txt:
        * fast/dom/HTMLTableElement/table-with-invalid-border-expected.txt:
        * fast/forms/option-mouseevents-expected.txt:
        * fast/history/multiple-classes-visited-expected.txt:
        * fast/history/self-is-visited-expected.txt:
        * fast/html/marquee-reparent-check-expected.txt:
        * fast/inline-block/anonymous-block-crash-expected.txt: This test now demonstrates a bug that we're not
        generating an empty line before a block in some cases.
        * fast/inline/inline-position-top-align-expected.txt:
        * fast/invalid/test-case-tr-th-td-should-not-close-dl-list-expected.txt:
        * fast/overflow/scrollbar-click-retains-focus-expected.txt:
        * fast/parser/comments-expected.txt:
        * fast/parser/fragment-parser-doctype-expected.txt:
        * fast/ruby/ruby-base-merge-block-children-crash-2-expected.txt:
        * fast/spatial-navigation/snav-radio-group-expected.txt: A line break is generated after a nested table.
        * fast/sub-pixel/table-cells-have-stable-width-expected.txt:
        * fast/table/table-row-oveflow-crash-expected.txt: A line break is generated after a table as expected,
        which is followed by a BR which creates a blank line.
        * fast/table/table-with-borderattr-null-expected.txt:
        * fast/table/table-with-borderattr-set-to-null-expected.txt:
        * fast/text/international/dynamic-text-combine-crash-expected.txt:
        * fast/xsl/mozilla-tests-expected.txt:
        * http/tests/misc/large-js-program-expected.txt:
        * imported/blink/plugins/empty-per-context-data-expected.txt:
        * inspector/console/js-isLikelyStackTrace-expected.txt:
        * inspector/console/js-source-locations-expected.txt:
        * mathml/out-of-flow-in-token-crash-expected.txt:
        * mathml/presentation/stretchy-depth-height-expected.txt:
        * platform/mac/accessibility/table-cells-roles-expected.txt: Line breaks are generated after a block
        followed by two two consecutive BRs.
        * platform/mac/accessibility/table-roles-hierarchy-expected.txt: Ditto.
        * svg/foreignObject/fO-fixed-position-crash-expected.txt:
        * tiled-drawing/scrolling/non-fast-region/wheel-handler-region-basic-expected.txt:
        * transforms/3d/hit-testing/coplanar-with-camera-expected.txt:

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

        REGRESSION (async policy delegate): Revoking an object URL immediately after triggering download breaks file download
        https://bugs.webkit.org/show_bug.cgi?id=185531
        <rdar://problem/39909589>

        Reviewed by Geoffrey Garen.

        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-then-revoke-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-then-revoke.html: Added.
        Add layout test coverage.

        * platform/ios-wk1/TestExpectations:
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        Skip new test on platforms that do not support the download attribute.

2018-05-11  Antti Koivisto  <antti@apple.com>

        LinkLoader fails to remove CachedResourceClient in some cases
        https://bugs.webkit.org/show_bug.cgi?id=185553
        <rdar://problem/36879656>

        Reviewed by Geoffrey Garen.

        * http/tests/preload/link-preload-client-remove-expected.txt: Added.
        * http/tests/preload/link-preload-client-remove.html: Added.

2018-05-11  Charles Vazac  <cvazac@gmail.com>

        Runtime feature flag for Server-Timing
        https://bugs.webkit.org/show_bug.cgi?id=184758

        Reviewed by Youenn Fablet.

        * imported/w3c/resources/import-expectations.json: Import server-timing tests.
        * imported/w3c/web-platform-tests/server-timing/resource_timing_idl.html: Added.
        * imported/w3c/web-platform-tests/server-timing/resource_timing_idl-expected.txt: Added.
        * platform/ios-wk1/TestExpectations: Skip service-worker test.
        * platform/mac-wk1/TestExpectations: Skip service-worker test.
        * platform/win/TestExpectations: Skip service-worker test.

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

        Layout Test webrtc/addICECandidate-closed.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=185384
        <rdar://problem/40035167>

        Reviewed by Eric Carlson.

        * webrtc/addICECandidate-closed.html: Move more pc calls inside the try/catch.
        This ensures that the test will be consistent as the pc might be closed sooner for some runs.

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

        [GTK][a11y] Newly added accessibility/scroll-to-make-visible-iframe-offscreen.html fails

        Unreviewed gardening. Added the failure.
        * platform/gtk/TestExpectations:

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

        [GTK] media/video-playbackrate.html intermittently crashing
        https://bugs.webkit.org/show_bug.cgi?id=185546

        Mark thet test, unreviewed gardening.
        * platform/gtk/TestExpectations:

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

        Rebase some fetch API tests
        https://bugs.webkit.org/show_bug.cgi?id=185544

        Unreviewed.

        * http/tests/fetch/fetching-same-resource-with-different-options-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:

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

        Skip http/tests/appcache/load-from-appcache-defer-resume-crash.html for iOS sim WK2
        https://bugs.webkit.org/show_bug.cgi?id=185430
        <rdar://problem/40065118>

        Unreviewed.

        * platform/ios-wk2/TestExpectations: Precising the WK1 testRunner API used by the test.

2018-05-10  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=182589

        Reviewed by Wenson Hsieh.

        This is a speculative fix for the test since I can't reproduce the flakiness locally. Because r227983 makes
        the layout update async, I suspect the focus change which occurs to the keygen having autofocus attribute
        isn't updating the layout in time for notifyDone call. Manually update the layout before/after the test.

        Also wait for the load event to figure before starting the test since layout, etc... may not be updated
        immediately after DOMContentLoaded.

        * fast/dom/adopt-node-crash-2.html:

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

        [Extra zoom mode] fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html sometimes fails
        https://bugs.webkit.org/show_bug.cgi?id=185517
        <rdar://problem/40112983>

        Reviewed by Tim Horton.

        Adjusts some existing layout tests — see below for more detail.

        * fast/css/extrazoom/viewport-units-shrink-to-fit.html:

        Remove calls to wait for the next presentation update which are no longer necessary after r231606.

        * fast/viewport/extrazoom/viewport-change-min-device-width.html:

        Wait for the next visible content rect update, when the unobscured content rect is guaranteed to be up to date.

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

        Wait for the next visible content rect update rather than the next presentation update (i.e. remote layer tree
        commit). This is because the layout viewport's custom fixed position rect is propagated in the visible content
        rect update flow, and ensuring a presentation update is insufficient to guarantee that the layout viewport is up
        to date.

        * resources/ui-helper.js:
        (window.UIHelper.ensureVisibleContentRectUpdate):

        Add a new test helper to wait for the next presentation update.

2018-05-10  Matt Baker  <mattbaker@apple.com>

        Web Inspector: ASSERT_NOT_REACHED in PageDebuggerAgent::didAddEventListener when page adds attribute event listener
        https://bugs.webkit.org/show_bug.cgi?id=181580
        <rdar://problem/36461309>

        Reviewed by Brian Burg.

        Add new test covering the case where adding an attribute event listener
        causes an existing attribute event listener to be replaced.

        * inspector/debugger/async-stack-trace-expected.txt:
        * inspector/debugger/async-stack-trace.html:

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

        'Cross-Origin-Options header implementation follow-up
        https://bugs.webkit.org/show_bug.cgi?id=185520

        Reviewed by Ryosuke Niwa.

        Extend layout testing to cover mixed case, multiple values and no value.

        * http/wpt/cross-origin-options/cross-origin-options-header-expected.txt:
        * http/wpt/cross-origin-options/cross-origin-options-header.html:

2018-05-10  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed gardening.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/editing/deleting/delete-emoji-expected.txt:

2018-05-10  Yacine Bandou  <yacine.bandou_ext@softathome.com>

        [wpe] update the TestExpectations for encrypted-media after some fixes
        https://bugs.webkit.org/show_bug.cgi?id=185277

        Reviewed by Xabier Rodriguez-Calvar.

        Once the decryptor moved from AppendPipeline to Playbackpipeline and the patches 185242, 185244
        are fixed, the encrypted-media WPT LayoutTests will no longer crash and some one will pass.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https-expected.txt:

2018-05-09  Ryosuke Niwa  <rniwa@webkit.org>

        Markup.dump should dump selection focus & anchor at the root node
        https://bugs.webkit.org/show_bug.cgi?id=185497

        Reviewed by Wenson Hsieh.

        Added the support for logging selection end points (anchor & focus) for when they're
        anchored against the root node passed to Markup.dump.

        * editing/deleting/delete-across-editable-content-boundaries-1-expected.txt:
        * editing/deleting/delete-image-followed-by-two-br-expected.txt:
        * editing/deleting/delete-start-block-expected.txt:
        * editing/deleting/delete-word-from-unstyled-div-expected.txt:
        * editing/deleting/deleting-relative-positioned-special-element-expected.txt:
        * editing/deleting/smart-delete-across-editable-boundaries-2-expected.txt:
        * editing/deleting/smart-delete-across-editable-boundaries-expected.txt:
        * editing/execCommand/break-non-editable-blockquote-expected.txt:
        * editing/execCommand/format-block-table-expected.txt:
        * editing/execCommand/indent-img-twice-expected.txt:
        * editing/execCommand/remove-format-textdecoration-in-iframe-expected.txt:
        * editing/inserting/5607069-2-expected.txt:
        * editing/inserting/5994480-2-expected.txt:
        * editing/inserting/insert-list-in-table-cell-03-expected.txt:
        * editing/inserting/insert-list-in-table-cell-04-expected.txt:
        * editing/inserting/insert-list-in-table-cell-07-expected.txt:
        * editing/inserting/insert-list-in-table-cell-08-expected.txt:
        * editing/inserting/insert-table-in-paragraph-crash-expected.txt:
        * editing/pasteboard/copy-null-characters-expected.txt:
        * editing/pasteboard/copy-paste-content-starting-and-ending-canvas-expected.txt:
        * editing/pasteboard/paste-blockquote-and-paragraph-break-expected.txt:
        * editing/pasteboard/paste-table-with-unrendered-text-nodes-expected.txt:
        * editing/pasteboard/pasting-into-h6-should-not-nest-h6-expected.txt:
        * editing/pasteboard/pasting-into-p-should-not-nest-p-expected.txt:
        * editing/style/apply-style-atomic-expected.txt:
        * fast/events/5056619-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-1-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-2-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-3-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-4-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-5-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-6-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-7-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-8-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-9-expected.txt:
        * platform/ios/editing/deleting/delete-emoji-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-1-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-2-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-3-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-4-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-5-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-6-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-7-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-8-expected.txt:
        * platform/mac-sierra/editing/deleting/delete-emoji-9-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-1-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-2-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-3-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-4-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-5-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-6-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-7-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-8-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-9-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-1-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-2-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-3-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-4-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-5-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-6-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-7-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-8-expected.txt:
        * platform/wincairo/editing/deleting/delete-emoji-9-expected.txt:
        * resources/dump-as-markup.js:
        (Markup): Added the logging of selection markers to the root node.ß∑
        (Markup._get):
        (Markup._getSelectionMarkerWithIdentation): Extracted out of Markup._get.

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

        AX: VoiceOver iframe scrolling focus jumping bug
        https://bugs.webkit.org/show_bug.cgi?id=176615
        <rdar://problem/34333067>

        Reviewed by Chris Fleizach.

        * accessibility/resources/iframe.html: Added.
        * accessibility/scroll-to-make-visible-iframe-offscreen-expected.txt: Added.
        * accessibility/scroll-to-make-visible-iframe-offscreen.html: Added.
        * platform/win/TestExpectations:

2018-05-09  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: accessibleNameForNode should simplify whitespace when using innerText
        https://bugs.webkit.org/show_bug.cgi?id=185498

        Reviewed by Chris Fleizach.

        * accessibility/text-alternative-calculation-from-unrendered-table-expected.txt: Added.
        * accessibility/text-alternative-calculation-from-unrendered-table.html: Added.

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

        Add initial support for 'Cross-Origin-Options' HTTP response header
        https://bugs.webkit.org/show_bug.cgi?id=184996
        <rdar://problem/39664620>

        Reviewed by Geoff Garen.

        Add layout test coverage.

        * http/wpt/cross-origin-options/allow-postmessage-expected.txt: Added.
        * http/wpt/cross-origin-options/allow-postmessage-from-deny-expected.txt: Added.
        * http/wpt/cross-origin-options/allow-postmessage-from-deny.html: Added.
        * http/wpt/cross-origin-options/allow-postmessage-from-deny.html.headers: Added.
        * http/wpt/cross-origin-options/allow-postmessage.html: Added.
        * http/wpt/cross-origin-options/cross-origin-options-header-expected.txt: Added.
        * http/wpt/cross-origin-options/cross-origin-options-header.html: Added.
        * http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html: Added.
        * http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html.headers: Added.
        * http/wpt/cross-origin-options/resources/serve-cross-origin-options-header.py: Added.

2018-05-09  Ryosuke Niwa  <rniwa@webkit.org>

        Release assert in TreeScopeOrderedMap::remove via HTMLImageElement::removedFromAncestor
        https://bugs.webkit.org/show_bug.cgi?id=185493

        Reviewed by Brent Fulgham.

        Added a regression test.

        * fast/images/imagemap-in-shadow-tree-removed-expected.txt: Added.
        * fast/images/imagemap-in-shadow-tree-removed.html: Added.

2018-05-09  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Hidden nodes which are not directly referenced should not participate name/description from content
        https://bugs.webkit.org/show_bug.cgi?id=185478

        Reviewed by Chris Fleizach.

        * accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.
        * accessibility/text-alternative-calculation-hidden-nodes.html: Added.
        * platform/gtk/accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.

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

        LayoutTests/http/tests/appcache/abort-cache-onchecking-manifest-404.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=185494

        Reviewed by Geoffrey Garen.

        Return the 404 to the manifest request after a delay so that aborting is done first.

        * http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
        * http/tests/appcache/abort-cache-onchecking-manifest-404.html:

2018-05-09  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer] Never call updateTracks if running on legacy pipeline
        https://bugs.webkit.org/show_bug.cgi?id=184581

        Reviewed by Philippe Normand.

        https://bugs.webkit.org/show_bug.cgi?id=185252

        * platform/gtk/TestExpectations:

2018-05-09  Ross Kirsling  <ross.kirsling@sony.com>

        Unreviewed gardening for WinCairo LayoutTests.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/css3/filters/effect-brightness-clamping-expected.txt:
        * platform/wincairo/css3/filters/effect-brightness-expected.txt:
        * platform/wincairo/editing/deleting/5126166-expected.txt:
        * platform/wincairo/editing/deleting/5206311-1-expected.txt:
        * platform/wincairo/editing/deleting/5433862-2-expected.txt:
        * platform/wincairo/editing/deleting/5483370-expected.txt:

2018-05-09  Daniel Bates  <dabates@apple.com>

        REGRESSION (r231479): http/tests/appcache/x-frame-options-prevents-framing.php is timing out
        https://bugs.webkit.org/show_bug.cgi?id=185443
        <rdar://problem/40100660>

        Reviewed by Andy Estes.

        Unskip test now that it no longer times out.

        * platform/wk2/TestExpectations:

2018-05-09  Justin Fan  <justin_fan@apple.com>

        Added Khronos conformance test for ASTC compressed texture support.
        https://bugs.webkit.org/show_bug.cgi?id=185272
        <rdar://problem/15745737>
        
        Reviewed by Dean Jackson.

        This requires OpenGL ES 3 context for WebKit to detect proper support.

        * fast/canvas/webgl/resources/js-test-post.js: Added.
        * fast/canvas/webgl/resources/js-test-pre.js: Added.
        * fast/canvas/webgl/resources/js-test-style.css: Added.
        * fast/canvas/webgl/resources/webgl-test-utils-khr.js: Added.
        * fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Added.
        * fast/canvas/webgl/webgl-compressed-texture-astc.html: Added.

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

        Unflake some additional AppCache tests
        https://bugs.webkit.org/show_bug.cgi?id=185467

        Reviewed by Alex Christensen.

        Remove JS console logging for two tests that are testing crash scenarios.
        Increase the time it takes to load appcache entries so that aborting
        is done prior entry loading completion for two other tests.

        * TestExpectations:
        * http/tests/appcache/deferred-events-delete-while-raising-expected.txt:
        * http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt:
        * http/tests/appcache/resources/abort-cache-onprogress.manifest:
        * http/tests/appcache/resources/not-exist.vob.php:

2018-05-09  Per Arne Vollan  <pvollan@apple.com>

        [Win] The test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html is timing out.
        https://bugs.webkit.org/show_bug.cgi?id=185471

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-05-09  Dominik Infuehr  <dinfuehr@igalia.com>

        [ARM] Disable test on Linux due to lack of executable memory
        https://bugs.webkit.org/show_bug.cgi?id=185466

        Reviewed by Yusuke Suzuki.

        Do not run tests with LLInt disabled, otherwise test runs out of executable memory.

        * js/script-tests/dfg-uint32array-overflow-values.js:
        * js/script-tests/dfg-uint8clampedarray.js:

2018-05-09  Ms2ger  <Ms2ger@igalia.com>

        Update fast/events/constructors/(mouse|wheel)-event-constructor.html and expectations.
        https://bugs.webkit.org/show_bug.cgi?id=115025

        Reviewed by Michael Catanzaro.

        clientX/Y values are clamped to a signed 26 bit-integer by using LayoutPoint.
        I updated the test to expect that. (Alternatively, we could keep the
        current expectations in the test and leave FAIL lines in the test
        expectation file.)

        Expectation files are updated or removed to match the test change, as
        well as a number of code changes since the last time they were accurate.

        * fast/events/constructors/mouse-event-constructor-expected.txt:
        * fast/events/constructors/mouse-event-constructor.html:
        * fast/events/constructors/wheel-event-constructor-expected.txt:
        * fast/events/constructors/wheel-event-constructor.html:
        * platform/gtk/TestExpectations:
        * platform/gtk/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
        * platform/gtk/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
        * platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
        * platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
        * platform/wpe/TestExpectations:

2018-05-08  Daniel Bates  <dabates@apple.com>

        Do not apply X-Frame-Options and CSP frame-ancestors to Quick Look-applicable responses in NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=185442
        <rdar://problem/40067209>

        Reviewed by Andy Estes.

        Remove test http/tests/quicklook/csp-header-ignored.html from TestExpectations now that it passes.

        * platform/ios/TestExpectations:

2018-05-08  Daniel Bates  <dabates@apple.com>

        Add tests to ensure that the Strong Password appearance is removed on form reset
        https://bugs.webkit.org/show_bug.cgi?id=185440

        Reviewed by Ryosuke Niwa.

        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset-expected.html: Added.
        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset.html: Added.

2018-05-08  Daniel Bates  <dabates@apple.com>

        Resign Strong Password appearance when text field value changes
        https://bugs.webkit.org/show_bug.cgi?id=185433
        <rdar://problem/39958508>

        Reviewed by Ryosuke Niwa.

        Add a test to ensure we remove the Strong Password appearance when the value of the text field value changes.

        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes-expected.html: Added.
        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes.html: Added.
        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes-expected.html: Added.
        * fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes.html: Added.
        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes-expected.html: Added.
        * fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes.html: Added.
        * fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js: Add support for
        setting the autofilled state of a field.
        (window.onload):

2018-05-08  Eric Carlson  <eric.carlson@apple.com>

        Consecutive messages logged as JSON are coalesced
        https://bugs.webkit.org/show_bug.cgi?id=185432

        Reviewed by Joseph Pecoraro.

        * inspector/console/webcore-logging-expected.txt:
        * inspector/console/webcore-logging.html:

2018-05-08  Jer Noble  <jer.noble@apple.com>

        Mute MediaElementSourceNode when tainted.
        https://bugs.webkit.org/show_bug.cgi?id=184866

        Reviewed by Eric Carlson.

        * http/tests/media/resources/1000Hz-sin.wav: Added.
        * http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-expected.txt: Added.
        * http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html: Added.
        * http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-expected.txt: Added.
        * http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html: Added.

2018-05-08  Daniel Bates  <dabates@apple.com>

        Skip test http/tests/appcache/x-frame-options-prevents-framing.php for now in WebKit2.

        Will address in <https://bugs.webkit.org/show_bug.cgi?id=185443>.

        * platform/wk2/TestExpectations:

2018-05-08  Daniel Bates  <dabates@apple.com>

        Mark test http/tests/quicklook/csp-header-ignored.html as Failure.

        Will fix in <https://bugs.webkit.org/show_bug.cgi?id=185442>.

        * platform/ios/TestExpectations:

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

        Some appcache crash tests are flaky due to console messages
        https://bugs.webkit.org/show_bug.cgi?id=185431

        Reviewed by Geoffrey Garen.

        Mark 3 tests that were written to test crashes as DumpJSConsoleLogInStdErr.
        It is better to mark them as such than to changing them since they might no longer cover the crash reasons.
        Rebase two other tests that might need further work to stop being flaky.

        * TestExpectations:
        * http/tests/appcache/404-resource-with-slow-main-resource-expected.txt:
        * http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
        * http/tests/appcache/deferred-events-expected.txt:
        * http/tests/appcache/fail-on-update-2-expected.txt:
        * http/tests/appcache/fail-on-update-expected.txt:
        * platform/mac/TestExpectations:

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

        Skip http/tests/appcache/load-from-appcache-defer-resume-crash.html for iOS sim WK2
        https://bugs.webkit.org/show_bug.cgi?id=185430

        Unreviewed.

        Skip the test as it is using WK1-only test runner API.
        * platform/ios-wk2/TestExpectations:

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

        feTurbulence is not rendered correctly on Retina display
        https://bugs.webkit.org/show_bug.cgi?id=183798

        Reviewed by Simon Fraser.

        * fast/hidpi/filters-turbulence-expected.html: Added.
        * fast/hidpi/filters-turbulence.html: Added.

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

        Unreviewed, add frame name in form-iframe-target-before-load-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=185408

        The test started causing flakiness after r231456 because it would submit
        the form in the main frame instead of the test frame.

        * fast/events/form-iframe-target-before-load-crash.html:

2018-05-07  Simon Fraser  <simon.fraser@apple.com>

        CSS filters which reference SVG filters fail to respect the "color-interpolation-filters" of the filter
        https://bugs.webkit.org/show_bug.cgi?id=185343

        Reviewed by Dean Jackson.

        * css3/filters/color-interpolation-filters-expected.html: Added.
        * css3/filters/color-interpolation-filters.html: Added.

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

        Update TestExpectations for imported/w3c/web-platform-tests/html/dom/interfaces.worker.html.
        https://bugs.webkit.org/show_bug.cgi?id=185407

        Unreviewed test gardening.

        * TestExpectations:

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

        Mark http/tests/security/contentTypeOptions/nosniff-importScript-blocked.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184802

        Unreviewed test gardening.

        * TestExpectations:

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

        Mark http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=185404

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2018-05-07  Daniel Bates  <dabates@apple.com>

        CSP status-code incorrect for document blocked due to violation of its frame-ancestors directive
        https://bugs.webkit.org/show_bug.cgi?id=185366
        <rdar://problem/40035116>

        Reviewed by Brent Fulgham.

        Update existing test results now that we send the HTTP status code for the correct document.

        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-expected.txt:

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

        Update TestExpectations for inspector/sampling-profiler/named-function-expression.html.
        https://bugs.webkit.org/show_bug.cgi?id=170830

        Unreviewed test gardening.

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

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

        Mark platform/mac/media/audio-session-category-video-track-change.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184609

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-05-07  Daniel Bates  <dabates@apple.com>

        CSP referrer incorrect for document blocked due to violation of its frame-ancestors directive
        https://bugs.webkit.org/show_bug.cgi?id=185380

        Reviewed by Brent Fulgham.

        Update existing test results now that we send the referrer for the correct document.

        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-https-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-https-expected.txt:

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

        Stop using an iframe's id as fallback if its name attribute is not set
        https://bugs.webkit.org/show_bug.cgi?id=11388

        Reviewed by Geoff Garen.

        * fast/dom/Window/named-getter-frame-id-expected.txt: Added.
        * fast/dom/Window/named-getter-frame-id.html: Added.
        Add layout test coverage.

        * fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt:
        * fast/dom/Geolocation/srcdoc-watchPosition-expected.txt:
        * fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html:
        * fast/dom/Window/window-special-properties-expected.txt:
        * fast/frames/iframe-no-name-expected.txt:
        * fast/frames/iframe-no-name.html:
        * fast/layers/prevent-hit-test-during-layout.html:
        * fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
        * http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html:
        * http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt:
        * http/tests/security/cross-origin-reified-window-property-access.html:
        * 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/webrtc/filtering-ice-candidate-same-origin-frame.html:
        * http/wpt/beacon/keepalive-after-navigation-expected.txt:
        * http/wpt/cache-storage/cache-remove-twice.html:
        Update some layout tests that relied on our old (non-standard) behavior.

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

        Layout Test webrtc/addICECandidate-closed.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=185384

        Reviewed by Eric Carlson.

        Given that we are calling addIceCandidate and close the peer connection,
        addIceCandidate might throw an error sometimes.
        Catch the exception to make the test output stable.

        * webrtc/addICECandidate-closed.html:

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

        ASSERT(!childItemWithTarget(child->target())) is hit in HistoryItem::addChildItem()
        https://bugs.webkit.org/show_bug.cgi?id=185322

        Reviewed by Geoff Garen.

        Rebaseline layout tests due to frame name changes.

        * applicationmanifest/display-mode-subframe-expected.txt:
        * contentfiltering/allow-after-add-data-expected.txt:
        * contentfiltering/allow-after-finished-adding-data-expected.txt:
        * contentfiltering/allow-after-response-expected.txt:
        * contentfiltering/allow-after-will-send-request-expected.txt:
        * contentfiltering/allow-never-expected.txt:
        * contentfiltering/block-after-add-data-expected.txt:
        * contentfiltering/block-after-add-data-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-add-data-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-finished-adding-data-expected.txt:
        * contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-response-expected.txt:
        * contentfiltering/block-after-response-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-response-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-will-send-request-expected.txt:
        * contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt:
        * contentfiltering/block-never-expected.txt:
        * fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
        * fast/dom/Geolocation/disconnected-frame-expected.txt:
        * fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
        * fast/dom/Window/messageevent-source-postmessage-expected.txt:
        * fast/dom/Window/messageevent-source-postmessage-reified-expected.txt:
        * fast/dom/javascript-url-crash-function-expected.txt:
        * fast/encoding/meta-overrules-auto-expected.txt:
        * fast/events/before-unload-forbidden-navigation-expected.txt:
        * fast/events/before-unload-in-subframe-expected.txt:
        * fast/events/before-unload-with-subframes-expected.txt:
        * fast/events/focusingUnloadedFrame-expected.txt:
        * fast/events/onloadFrameCrash-expected.txt:
        * fast/events/onunload-not-on-body-expected.txt:
        * fast/events/pageshow-pagehide-expected.txt:
        * fast/events/stop-load-in-unload-handler-using-document-write-expected.txt:
        * fast/events/stop-load-in-unload-handler-using-window-stop-expected.txt:
        * fast/forms/form-and-frame-interaction-retains-values-expected.txt:
        * fast/frames/crash-when-child-iframe-forces-layout-during-unload-and-sibling-frame-has-mediaquery-expected.txt:
        * fast/frames/frame-element-name-expected.txt:
        * fast/frames/frame-src-attribute-expected.txt:
        * fast/frames/frame-unload-crash-expected.txt:
        * fast/frames/iframe-reparenting-unique-name-expected.txt:
        * fast/frames/iframe-set-inner-html-expected.txt:
        * fast/frames/layout-after-destruction-expected.txt:
        * fast/frames/long-names-in-nested-subframes-expected.txt:
        * fast/frames/page-unload-document-open-expected.txt:
        * fast/frames/reparent-in-unload-contentdocument-expected.txt:
        * fast/frames/sandboxed-iframe-noscript-expected.txt:
        * fast/frames/sandboxed-iframe-storage-expected.txt:
        * fast/frames/srcdoc/setting-src-does-nothing-expected.txt:
        * fast/frames/srcdoc/srcdoc-can-navigate-expected.txt:
        * fast/frames/srcdoc/srcdoc-loads-content-expected.txt:
        * fast/history/back-from-page-with-focused-iframe-expected.txt:
        * fast/history/history-back-initial-vs-final-url-expected.txt:
        * fast/history/redirect-via-iframe-expected.txt:
        * fast/loader/child-frame-add-after-back-forward-expected.txt:
        * fast/loader/dynamic-iframe-extra-back-forward-item-expected.txt:
        * fast/loader/fragment-navigation-base-blank-expected.txt:
        * fast/loader/frame-location-change-not-added-to-history-expected.txt:
        * fast/loader/frame-src-change-added-to-history-expected.txt:
        * fast/loader/frame-src-change-not-added-to-history-expected.txt:
        * fast/loader/frames-with-unload-handlers-in-page-cache-expected.txt:
        * fast/loader/grandparent-completion-starts-redirect-expected.txt:
        * fast/loader/iframe-meta-refresh-base-blank-expected.txt:
        * fast/loader/iframe-set-location-base-blank-expected.txt:
        * fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-async-delegate-expected.txt:
        * fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-expected.txt:
        * fast/loader/page-dismissal-modal-dialogs-expected.txt:
        * fast/loader/ping-error-expected.txt:
        * fast/loader/plain-text-document-expected.txt:
        * fast/loader/refresh-iframe-base-blank-expected.txt:
        * fast/loader/stateobjects/pushstate-frequency-iframe-expected.txt:
        * fast/loader/stateobjects/pushstate-in-iframe-expected.txt:
        * fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt:
        * fast/loader/stateobjects/replacestate-in-iframe-expected.txt:
        * fast/loader/stop-provisional-loads-expected.txt:
        * fast/loader/subframe-removes-itself-expected.txt:
        * fast/loader/subframe-self-close-expected.txt:
        * fast/loader/unload-hyperlink-targeted-expected.txt:
        * fast/parser/double-write-from-closed-iframe-expected.txt:
        * fast/parser/iframe-sets-parent-to-javascript-url-expected.txt:
        * fast/parser/javascript-url-compat-mode-expected.txt:
        * fast/parser/move-during-parsing-expected.txt:
        * fast/parser/noscript-with-javascript-disabled-expected.txt:
        * fast/parser/pre-html5-parser-quirks-expected.txt:
        * fast/preloader/iframe-srcdoc-expected.txt:
        * fast/tokenizer/text-plain-expected.txt:
        * fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
        * fast/xsl/xslt-text-expected.txt:
        * http/tests/appcache/x-frame-options-prevents-framing-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url-expected.txt:
        * http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt:
        * http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt:
        * http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt:
        * http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt:
        * http/tests/from-origin/document-from-origin-same-accepted-expected.txt:
        * http/tests/from-origin/document-from-origin-same-blocked-expected.txt:
        * http/tests/from-origin/document-from-origin-same-site-accepted-expected.txt:
        * http/tests/from-origin/document-from-origin-same-site-blocked-expected.txt:
        * http/tests/from-origin/document-nested-from-origin-same-accepted-expected.txt:
        * http/tests/from-origin/document-nested-from-origin-same-blocked-expected.txt:
        * http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked-expected.txt:
        * http/tests/from-origin/fetch-iframe-from-origin-same-accepted-expected.txt:
        * http/tests/from-origin/fetch-iframe-from-origin-same-blocked-expected.txt:
        * http/tests/from-origin/redirect-document-from-origin-same-blocked-expected.txt:
        * http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked-expected.txt:
        * http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked-expected.txt:
        * http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked-expected.txt:
        * http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
        * http/tests/loading/basic-auth-remove-credentials-expected.txt:
        * http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
        * http/tests/loading/basic-credentials-sent-automatically-expected.txt:
        * http/tests/loading/pdf-commit-load-callbacks-expected.txt:
        * http/tests/loading/redirect-with-no-location-crash-expected.txt:
        * http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
        * http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin-expected.txt:
        * http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin-expected.txt:
        * http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt:
        * http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url-expected.txt:
        * http/tests/misc/last-modified-parsing-expected.txt:
        * http/tests/misc/policy-delegate-called-twice-expected.txt:
        * http/tests/misc/redirect-to-external-url-expected.txt:
        * http/tests/misc/webtiming-origins-expected.txt: Removed.
        * http/tests/navigation/back-to-slow-frame-expected.txt:
        * http/tests/navigation/forward-and-cancel-expected.txt:
        * http/tests/navigation/image-load-in-subframe-unload-handler-expected.txt:
        * http/tests/navigation/lockedhistory-iframe-expected.txt:
        * http/tests/navigation/post-frames-expected.txt:
        * http/tests/navigation/reload-subframe-frame-expected.txt:
        * http/tests/navigation/reload-subframe-iframe-expected.txt:
        * http/tests/navigation/reload-subframe-object-expected.txt:
        * http/tests/preload/download_resources_from_header_iframe-expected.txt:
        * http/tests/preload/download_resources_from_invalid_headers-expected.txt:
        * http/tests/quicklook/at-import-stylesheet-blocked-expected.txt:
        * http/tests/quicklook/cross-origin-iframe-blocked-expected.txt:
        * http/tests/quicklook/document-domain-is-empty-string-expected.txt:
        * http/tests/quicklook/external-stylesheet-blocked-expected.txt:
        * http/tests/quicklook/hide-referer-on-navigation-expected.txt:
        * http/tests/quicklook/rtf-document-domain-is-empty-string-expected.txt:
        * http/tests/quicklook/same-origin-xmlhttprequest-allowed-expected.txt:
        * http/tests/quicklook/top-navigation-blocked-expected.txt:
        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/add-partitioning-to-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt:
        * http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-expected.txt:
        * http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-expected.txt:
        * http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-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-invalid-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-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-allow-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/appcache-in-private-browsing-expected.txt:
        * http/tests/security/appcache-switching-private-browsing-expected.txt:
        * http/tests/security/canvas-cors-with-two-hosts-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-in-meta-element-ignored-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-in-report-only-ignored-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-allow-same-origin-sandboxed-cross-url-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-star-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-star-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-sandboxed-cross-url-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-star-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-none-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-self-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-star-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-none-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-protocolless-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-crossorigin-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-sameorigin-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/plugintypes-invalid-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-01-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-02-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-https-expected.txt:
        * http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/directive-parsing-01-expected.txt:
        * http/tests/security/contentSecurityPolicy/directive-parsing-02-expected.txt:
        * http/tests/security/contentSecurityPolicy/directive-parsing-03-expected.txt:
        * http/tests/security/contentSecurityPolicy/directive-parsing-04-expected.txt:
        * http/tests/security/contentSecurityPolicy/directive-parsing-05-expected.txt:
        * http/tests/security/contentSecurityPolicy/directive-parsing-multiple-headers-expected.txt:
        * http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/object-src-none-allowed-expected.txt:
        * http/tests/security/contentSecurityPolicy/object-src-none-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-loads-with-img-src-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-none-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-none-inline-event-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-parsing-implicit-and-explicit-port-number-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-redirect-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-self-blocked-01-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-self-blocked-02-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-self-blocked-03-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-self-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-star-cross-scheme-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-01-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-02-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-03-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-04-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-05-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-06-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-07-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-08-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-09-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-10-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-nonascii-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-none-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02-expected.txt:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/xsl-redirect-allowed-expected.txt:
        * http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2-expected.txt:
        * http/tests/security/cookies/first-party-cookie-allow-xslt-expected.txt:
        * http/tests/security/cookies/third-party-cookie-blocking-redirect-expected.txt:
        * http/tests/security/cookies/third-party-cookie-blocking-xslt-expected.txt:
        * http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt:
        * http/tests/security/cross-frame-access-delete-expected.txt:
        * http/tests/security/cross-frame-access-frameelement-expected.txt:
        * http/tests/security/cross-frame-access-history-put-expected.txt: Removed.
        * http/tests/security/cross-frame-access-location-put-expected.txt:
        * http/tests/security/cross-frame-access-private-browsing-expected.txt:
        * http/tests/security/cross-origin-appcache-allowed-expected.txt:
        * http/tests/security/cross-origin-appcache-expected.txt:
        * http/tests/security/cross-origin-css-primitive-expected.txt:
        * http/tests/security/cross-origin-indexeddb-allowed-expected.txt:
        * http/tests/security/cross-origin-indexeddb-expected.txt:
        * http/tests/security/cross-origin-plugin-allowed-expected.txt:
        * http/tests/security/cross-origin-plugin-expected.txt:
        * http/tests/security/cross-origin-plugin-private-browsing-toggled-allowed-expected.txt:
        * http/tests/security/cross-origin-plugin-private-browsing-toggled-expected.txt:
        * http/tests/security/cross-origin-session-storage-allowed-expected.txt:
        * http/tests/security/cross-origin-session-storage-third-party-blocked-expected.txt:
        * http/tests/security/cross-origin-websql-allowed-expected.txt:
        * http/tests/security/cross-origin-websql-expected.txt:
        * http/tests/security/cross-origin-worker-indexeddb-allowed-expected.txt:
        * http/tests/security/cross-origin-worker-indexeddb-expected.txt:
        * http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-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-sub-frame-2-level-expected.txt:
        * http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change-expected.txt:
        * http/tests/security/frameNavigation/xss-DENIED-plugin-navigation-expected.txt:
        * http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation-expected.txt:
        * http/tests/security/history-pushState-replaceState-from-sandboxed-iframe-expected.txt:
        * http/tests/security/http-0.9/default-port-plugin-blocked-expected.txt:
        * http/tests/security/http-0.9/default-port-script-blocked-expected.txt:
        * http/tests/security/http-0.9/iframe-blocked-expected.txt:
        * http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed-expected.txt:
        * http/tests/security/http-0.9/image-on-HTTP-0.9-page-blocked-expected.txt:
        * http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation-expected.txt:
        * http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame-2-level-expected.txt:
        * http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-to-javscript-url-expected.txt:
        * http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-from-javscript-url-expected.txt:
        * http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame-2-level-expected.txt:
        * http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt:
        * http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt:
        * http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt:
        * http/tests/security/mixedContent/blob-url-in-iframe-expected.txt:
        * http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt:
        * http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt:
        * http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt:
        * http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt:
        * http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt:
        * http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt:
        * http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt:
        * http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt:
        * http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt:
        * http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt:
        * http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt:
        * http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt:
        * http/tests/security/private-browsing-http-auth-expected.txt:
        * http/tests/security/referrer-policy-always-expected.txt:
        * http/tests/security/referrer-policy-default-expected.txt:
        * http/tests/security/referrer-policy-https-always-expected.txt:
        * http/tests/security/referrer-policy-https-default-expected.txt:
        * http/tests/security/referrer-policy-https-never-expected.txt:
        * http/tests/security/referrer-policy-https-no-referrer-expected.txt:
        * http/tests/security/referrer-policy-https-no-referrer-when-downgrade-expected.txt:
        * http/tests/security/referrer-policy-https-origin-expected.txt:
        * http/tests/security/referrer-policy-https-unsafe-url-expected.txt:
        * http/tests/security/referrer-policy-invalid-expected.txt:
        * http/tests/security/referrer-policy-never-expected.txt:
        * http/tests/security/referrer-policy-no-referrer-expected.txt:
        * http/tests/security/referrer-policy-no-referrer-when-downgrade-expected.txt:
        * http/tests/security/referrer-policy-origin-expected.txt:
        * http/tests/security/referrer-policy-redirect-expected.txt:
        * http/tests/security/referrer-policy-rel-noreferrer-expected.txt:
        * http/tests/security/same-origin-appcache-blocked-expected.txt:
        * http/tests/security/same-origin-document-domain-storage-allowed-expected.txt:
        * http/tests/security/same-origin-storage-blocked-expected.txt:
        * http/tests/security/same-origin-websql-blocked-expected.txt:
        * http/tests/security/sandboxed-iframe-document-cookie-expected.txt:
        * http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
        * http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
        * http/tests/security/srcdoc-inherits-referrer-expected.txt:
        * http/tests/security/srcdoc-inherits-referrer-for-forms-expected.txt:
        * http/tests/security/storage-blocking-loosened-local-storage-expected.txt:
        * http/tests/security/storage-blocking-loosened-plugin-expected.txt:
        * http/tests/security/storage-blocking-loosened-private-browsing-plugin-expected.txt:
        * http/tests/security/storage-blocking-loosened-websql-expected.txt:
        * http/tests/security/storage-blocking-strengthened-local-storage-expected.txt:
        * http/tests/security/storage-blocking-strengthened-plugin-expected.txt:
        * http/tests/security/storage-blocking-strengthened-private-browsing-plugin-expected.txt:
        * http/tests/security/storage-blocking-strengthened-websql-expected.txt:
        * http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode-expected.txt:
        * http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode-expected.txt:
        * http/tests/security/window-properties-clear-domain-expected.txt:
        * http/tests/security/window-properties-clear-port-expected.txt:
        * http/tests/security/window-properties-pass-expected.txt:
        * http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt:
        * http/tests/security/xss-DENIED-defineProperty-expected.txt:
        * http/tests/security/xssAuditor/faux-script1-expected.txt:
        * http/tests/security/xssAuditor/faux-script2-expected.txt:
        * http/tests/security/xssAuditor/faux-script3-expected.txt:
        * http/tests/security/xssAuditor/malformed-HTML-expected.txt:
        * http/tests/security/xssAuditor/non-block-javascript-url-frame-expected.txt:
        * http/tests/security/xssAuditor/reflection-in-path-expected.txt:
        * http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt:
        * http/tests/security/xssAuditor/svg-animate-expected.txt:
        * http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
        * http/tests/ssl/media-stream/get-user-media-nested-expected.txt:
        * http/tests/ssl/media-stream/get-user-media-secure-connection-expected.txt:
        * http/tests/ssl/ping-with-unsafe-redirect-expected.txt:
        * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
        * http/tests/storageAccess/grant-storage-access-under-opener-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/xmlhttprequest/access-control-sandboxed-iframe-allow-expected.txt:
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-origin-null-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/frame-load-cancelled-abort-expected.txt:
        * http/tests/xmlhttprequest/frame-unload-abort-crash-expected.txt:
        * http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
        * http/tests/xmlhttprequest/uri-resolution-opera-open-004-expected.txt:
        * http/tests/xmlhttprequest/uri-resolution-opera-open-005-expected.txt:
        * http/tests/xmlhttprequest/uri-resolution-opera-open-006-expected.txt:
        * http/tests/xmlhttprequest/uri-resolution-opera-open-007-expected.txt:
        * http/tests/xmlhttprequest/uri-resolution-opera-open-008-expected.txt:
        * http/tests/xmlhttprequest/uri-resolution-opera-open-009-expected.txt:
        * http/tests/xmlhttprequest/uri-resolution-opera-open-010-expected.txt:
        * http/tests/xsl/xslt-transform-with-javascript-disabled-expected.txt:
        * imported/blink/fast/plugins/empty-url-object-expected.txt:
        * loader/stateobjects/pushstate-size-iframe-expected.txt:
        * loader/stateobjects/replacestate-size-iframe-expected.txt:
        * media/auto-play-in-sandbox-with-allow-scripts-expected.txt:
        * platform/ios-wk1/http/tests/quicklook/top-navigation-blocked-expected.txt:
        * platform/ios-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/001-expected.txt:
        * platform/ios/http/tests/quicklook/at-import-stylesheet-blocked-expected.txt:
        * platform/ios/http/tests/quicklook/cross-origin-iframe-blocked-expected.txt:
        * platform/ios/http/tests/quicklook/document-domain-is-empty-string-expected.txt:
        * platform/ios/http/tests/quicklook/external-stylesheet-blocked-expected.txt:
        * platform/ios/http/tests/quicklook/hide-referer-on-navigation-expected.txt:
        * platform/ios/http/tests/quicklook/top-navigation-blocked-expected.txt:
        * platform/ios/quicklook/excel-expected.txt:
        * platform/ios/quicklook/excel-legacy-expected.txt:
        * platform/ios/quicklook/excel-macro-enabled-expected.txt:
        * platform/ios/quicklook/powerpoint-expected.txt:
        * platform/ios/quicklook/powerpoint-legacy-expected.txt:
        * platform/ios/quicklook/word-expected.txt:
        * platform/ios/quicklook/word-legacy-expected.txt:
        * platform/ios/webarchive/loading/cache-expired-subresource-expected.txt:
        * platform/mac-wk2/http/tests/security/cross-origin-plugin-expected.txt:
        * platform/mac-wk2/http/tests/security/cross-origin-plugin-private-browsing-toggled-expected.txt:
        * platform/mac-wk2/http/tests/security/storage-blocking-strengthened-plugin-expected.txt:
        * platform/mac-wk2/http/tests/security/storage-blocking-strengthened-private-browsing-plugin-expected.txt:
        * platform/mac-wk2/plugins/resize-from-plugin-expected.txt:
        * platform/mac/fast/loader/webarchive-encoding-respected-expected.txt:
        * platform/mac/webarchive/adopt-attribute-styled-body-webarchive-expected.txt:
        * platform/mac/webarchive/loading/cache-expired-subresource-expected.txt:
        * platform/mac/webarchive/test-duplicate-resources-expected.txt:
        * platform/win/plugins/resize-from-plugin-expected.txt:
        * platform/win/webarchive/loading/cache-expired-subresource-expected.txt:
        * platform/wk2/fast/loader/fragment-navigation-base-blank-expected.txt:
        * platform/wk2/fast/loader/iframe-meta-refresh-base-blank-expected.txt:
        * platform/wk2/fast/loader/iframe-set-location-base-blank-expected.txt:
        * platform/wk2/fast/loader/refresh-iframe-base-blank-expected.txt:
        * platform/wk2/fast/loader/subframe-removes-itself-expected.txt:
        * platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
        * platform/wk2/http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
        * platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt:
        * platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
        * platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
        * platform/wk2/http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin-expected.txt:
        * platform/wk2/http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin-expected.txt:
        * platform/wk2/http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials-expected.txt:
        * platform/wk2/http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-allowall-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-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-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-invalid-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-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-allow-expected.txt:
        * platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/http-0.9/iframe-blocked-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt:
        * platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt:
        * platform/wk2/http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt:
        * platform/wk2/webarchive/loading/javascript-url-iframe-crash-expected.txt:
        * platform/wk2/webarchive/loading/mainresource-null-mimetype-crash-expected.txt:
        * platform/wk2/webarchive/loading/missing-data-expected.txt:
        * platform/wk2/webarchive/loading/object-expected.txt:
        * platform/wk2/webarchive/loading/test-loading-archive-expected.txt:
        * platform/wk2/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt:
        * platform/wk2/webarchive/loading/video-in-webarchive-expected.txt:
        * plugins/resize-from-plugin-expected.txt:
        * quicklook/excel-expected.txt:
        * quicklook/excel-legacy-expected.txt:
        * quicklook/excel-macro-enabled-expected.txt:
        * quicklook/keynote-09-expected.txt:
        * quicklook/multi-sheet-numbers-09-expected.txt:
        * quicklook/numbers-09-expected.txt:
        * quicklook/pages-09-expected.txt:
        * quicklook/powerpoint-expected.txt:
        * quicklook/powerpoint-legacy-expected.txt:
        * quicklook/word-expected.txt:
        * quicklook/word-legacy-expected.txt:
        * userscripts/user-script-all-frames-expected.txt:
        * userscripts/user-script-top-frame-only-expected.txt:
        * userscripts/user-style-all-frames-expected.txt:
        * userscripts/user-style-top-frame-only-expected.txt:
        * webarchive/loading/javascript-url-iframe-crash-expected.txt:
        * webarchive/loading/mainresource-null-mimetype-crash-expected.txt:
        * webarchive/loading/missing-data-expected.txt:
        * webarchive/loading/object-expected.txt:
        * webarchive/loading/test-loading-archive-expected.txt:
        * webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt:
        * webarchive/loading/video-in-webarchive-expected.txt:

2018-05-07  Daniel Bates  <dabates@apple.com>

        Add tests to ensure Same-Site cookies are included when performing a top-level redirect
        https://bugs.webkit.org/show_bug.cgi?id=185235

        Reviewed by Alex Christensen.

        * http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect.html: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-same-origin-redirect-expected.txt: Added.
        * http/tests/cookies/same-site/fetch-after-top-level-same-origin-redirect.html: Added.
        * http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.php: Added.
        * http/tests/cookies/same-site/resources/fetch-after-top-level-same-origin-redirect.php: Added.

2018-05-06  Dean Jackson  <dino@apple.com>

        WebGL: Reset simulated values after validation fails
        https://bugs.webkit.org/show_bug.cgi?id=185363
        <rdar://problem/39733417>

        Reviewed by Anders Carlsson.

        * fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt: Added.
        * fast/canvas/webgl/index-validation-with-subsequent-draws.html: Added.

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

        Support negative sw/sh values in createImageBitmap().
        https://bugs.webkit.org/show_bug.cgi?id=184449

        Reviewed by Dean Jackson.

        * http/wpt/2dcontext/imagebitmap/createImageBitmap-expected.txt: update test name
        * http/wpt/2dcontext/imagebitmap/createImageBitmap.html: update expected result

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

        webrtc/addICECandidate-closed.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=185336

        Reviewed by Eric Carlson.

        * webrtc/addICECandidate-closed.html:

2018-05-04  Devin Rousso  <webkit@devinrousso.com>

        Web Inspector: simplify the WI.Collection interface
        https://bugs.webkit.org/show_bug.cgi?id=185187

        Reviewed by Brian Burg.

        * http/tests/inspector/dom/cross-domain-inspected-node-access.html:
        * http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
        * http/tests/inspector/network/har/har-page.html:
        * http/tests/inspector/network/har/har-page-expected.txt:
        * http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
        * http/tests/inspector/network/resource-response-source-memory-cache.html:
        * http/tests/inspector/network/resource-sizes-memory-cache.html:
        * http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:
        * http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html:
        * http/tests/websocket/tests/hybi/inspector/before-load.html:
        * inspector/canvas/resources/recording-utilities.js:
        * inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.window.findScript):
        * inspector/dom/highlightFrame.html:
        * inspector/dom/highlightNode.html:
        * inspector/dom/highlightNodeList.html:
        * inspector/dom/highlightSelector.html:
        * inspector/model/frame-extra-scripts.html:
        * inspector/page/empty-or-missing-resources.html:
        * inspector/unit-tests/resource-collection.html:
        * inspector/worker/resources-in-worker.html:

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

        REGRESSION (r230326?): Layout Test http/tests/contentextensions/make-https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184476
        <rdar://problem/39384226>

        Reviewed by Ryosuke Niwa.

        Removed flakiness expectation.
        Updated test to no longer log load callbacks.
        Instead, we rely on the fact that the four content extension upgrades
        are also logged as console log messages.

        * http/tests/contentextensions/make-https-expected.txt:
        * http/tests/contentextensions/make-https.html:
        * platform/mac-sierra-wk2/http/tests/contentextensions/make-https-expected.txt: Removed.
        * platform/mac-wk2/TestExpectations:

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

        Mark animations/duplicate-keys.html as flaky on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=185332

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        Rebaseline tests for iOS after r231359.

        Unreviewed test gardening.

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

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

        Rebaseline tests after r231359.

        Unreviewed test gardening.

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

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

        Update TestExpectations for media/video-aspect-ratio.html.
        https://bugs.webkit.org/show_bug.cgi?id=184457

        Unreviewed test gardening.

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

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

        Use the containing block to compute the pagination gap when the container is inline.
        https://bugs.webkit.org/show_bug.cgi?id=184724
        <rdar://problem/39521800>

        Reviewed by Simon Fraser.

        * fast/overflow/page-overflow-with-inline-body-crash-expected.txt: Added.
        * fast/overflow/page-overflow-with-inline-body-crash.html: Added.

2018-05-04  Devin Rousso  <webkit@devinrousso.com>

        Web Inspector: Canvas tab: Determine isFunction by looking at the prototype
        https://bugs.webkit.org/show_bug.cgi?id=184990

        Reviewed by Brian Burg.

        * inspector/canvas/recording-2d-expected.txt:

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

        Unreviewed, rolling out r231331.

        Caused a few tests to assert

        Reverted changeset:

        "Stop using an iframe's id as fallback if its name attribute
        is not set"
        https://bugs.webkit.org/show_bug.cgi?id=11388
        https://trac.webkit.org/changeset/231331

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

        Mark http/tests/contentextensions/make-https.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=184476

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Mark media/navigate-with-pip-should-not-crash.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=173119

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2018-05-04  Myles C. Maxfield  <mmaxfield@apple.com>

        Text shaping in the simple path is flipped in the y direction
        https://bugs.webkit.org/show_bug.cgi?id=185062
        <rdar://problem/39778678>

        Reviewed by Simon Fraser.

        This test renders a font which uses our fast text codepath but also includes vertical
        displacements inside its liga feature. The test makes sure that the vertical displacement
        occurs in the correct direction.

        The test fonts were created by Ulrike Rausch of LiebeFonts specifically for the purpose
        of testing. Huge thanks to her!! Figuring out this bug would not have been possible if
        not for her huge help!

        * fast/text/resources/LiebeTest-calt.woff: Added.
        * fast/text/resources/LiebeTest-dlig.woff: Added.
        * fast/text/resources/LiebeTest-liga.woff: Added.
        * fast/text/resources/LiebeTest-swsh.woff: Added.
        * fast/text/vertical-displacement-simple-codepath-expected.html: Added.
        * fast/text/vertical-displacement-simple-codepath.html: Added.

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

        Serialize all URLs with double-quotes per CSSOM spec
        https://bugs.webkit.org/show_bug.cgi?id=184935

        Reviewed by Antti Koivisto.

        Update tests to use double quotes when serializing URLs, and fixes for using double quotes in the test.

        * css3/calc/cross-fade-calc.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/filter-property-computed-style-expected.txt:
        * css3/filters/filter-property-computed-style.html:
        * css3/filters/filter-property-expected.txt:
        * css3/filters/filter-property-parsing-expected.txt:
        * css3/filters/filter-property-parsing.html:
        * css3/filters/filter-property.html:
        * css3/filters/unprefixed-expected.txt:
        * css3/filters/unprefixed.html:
        * fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
        * fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
        * fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
        * fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
        * fast/backgrounds/multiple-backgrounds-computed-style-expected.txt:
        * fast/backgrounds/multiple-backgrounds-computed-style.html:
        * fast/css/background-position-serialize-expected.txt:
        * fast/css/cursor-parsing-expected.txt:
        * fast/css/cursor-parsing-image-set-expected.txt:
        * fast/css/cursor-parsing-image-set.html:
        * fast/css/cursor-parsing.html:
        * fast/css/getComputedStyle/computed-style-border-image-expected.txt:
        * fast/css/getComputedStyle/computed-style-border-image.html:
        * fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
        * fast/css/getComputedStyle/computed-style-cross-fade.html:
        * fast/css/getComputedStyle/computed-style-properties-expected.txt:
        * fast/css/getComputedStyle/computed-style-properties.html:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:
        * fast/css/getComputedStyle/getComputedStyle-list-style-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html:
        * fast/css/image-set-parsing.html:
        * fast/css/image-set-setting-expected.txt:
        * fast/css/image-set-setting.html:
        * fast/css/image-set-unprefixed-expected.txt:
        * fast/css/image-set-unprefixed.html:
        * fast/css/invalid-cursor-property-crash.html:
        * fast/css/parse-border-image-repeat-null-crash-expected.txt:
        * fast/css/uri-token-parsing-expected.txt:
        * fast/css/uri-token-parsing.html:
        * fast/css/url-with-multi-byte-unicode-escape-expected.txt:
        * fast/css/url-with-multi-byte-unicode-escape.html:
        * fast/filter-image/parse-filter-image-expected.txt:
        * fast/filter-image/parse-filter-image.html:
        * fast/innerHTML/innerHTML-uri-resolution.html:
        * fast/inspector-support/cssURLQuotes-expected.txt:
        * fast/inspector-support/cssURLQuotes.html:
        * fast/masking/parsing-clip-path-iri-expected.txt:
        * fast/masking/parsing-clip-path-iri.html:
        * fast/masking/parsing-mask-expected.txt:
        * fast/masking/parsing-mask.html:
        * fast/shapes/parsing/parsing-shape-outside-expected.txt:
        * fast/shapes/parsing/parsing-shape-outside.html:
        * fast/shapes/parsing/parsing-test-utils.js:
        (removeBaseURL):
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/ios/fast/css/image-set-unprefixed-expected.txt: Removed.
        * 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:
        * platform/win/fast/css/parse-border-image-repeat-null-crash-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * resources/image-preload-helper.js:
        (preloadImagesFromStyle):
        * svg/css/svg-attribute-parser-mode-expected.txt:
        * svg/css/svg-attribute-parser-mode.html:
        * svg/custom/marker-getPropertyValue-expected.txt:
        * svg/custom/marker-getPropertyValue.svg:

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

        Improve test at media/modern-media-controls/airplay-button/airplay-button-on.html to not hardcode the -apple-wireless-playback-target-active color
        https://bugs.webkit.org/show_bug.cgi?id=185297
        <rdar://problem/39737716>

        Reviewed by Dean Jackson.

        Create an element and set its "color" property to "-apple-wireless-playback-target-active" so we can use
        getComputedStyle() to query the applied value instead of hard-coding the expected color.

        * media/modern-media-controls/airplay-button/airplay-button-on.html:

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

        PeerConnection should have its connectionState closed even if doing gathering
        https://bugs.webkit.org/show_bug.cgi?id=185267

        Reviewed by Darin Adler.

        * webrtc/addICECandidate-closed-expected.txt: Added.
        * webrtc/addICECandidate-closed.html: Added.

2018-05-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Some event tests failing after r230817
        https://bugs.webkit.org/show_bug.cgi?id=185072

        Reviewed by Michael Catanzaro.

        Remove expectations for tests that are passing now.

        * platform/gtk/TestExpectations:

2018-05-03  Ryosuke Niwa  <rniwa@webkit.org>

        Revert the unitended changes in r231329.

        * http/tests/media/video-play-stall.html: Replaced with LayoutTests/http/tests/media/video-play-stall.html.
        * platform/mac/TestExpectations:

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

        Stop using an iframe's id as fallback if its name attribute is not set
        https://bugs.webkit.org/show_bug.cgi?id=11388

        Reviewed by Geoff Garen.

        * fast/dom/Window/named-getter-frame-id-expected.txt: Added.
        * fast/dom/Window/named-getter-frame-id.html: Added.
        Add layout test coverage.

        * fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt:
        * fast/dom/Geolocation/srcdoc-watchPosition-expected.txt:
        * fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html:
        * fast/dom/Window/window-special-properties-expected.txt:
        * fast/frames/iframe-no-name-expected.txt:
        * fast/frames/iframe-no-name.html:
        * fast/layers/prevent-hit-test-during-layout.html:
        * fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
        * http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html:
        * http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt:
        * http/tests/security/cross-origin-reified-window-property-access.html:
        * 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/webrtc/filtering-ice-candidate-same-origin-frame.html:
        * http/wpt/beacon/keepalive-after-navigation-expected.txt:
        * http/wpt/cache-storage/cache-remove-twice.html:
        Update some layout tests that relied on our old (non-standard) behavior.

2018-05-03  Ryosuke Niwa  <rniwa@webkit.org>

        Using image map inside a shadow tree results hits a release assert in DocumentOrderedMap::add
        https://bugs.webkit.org/show_bug.cgi?id=185238

        Reviewed by Antti Koivisto.

        * fast/images/imagemap-in-nested-shadow-tree-expected.txt: Added.
        * fast/images/imagemap-in-nested-shadow-tree.html: Added.
        * fast/images/imagemap-in-shadow-tree-expected.txt: Added.
        * fast/images/imagemap-in-shadow-tree.html: Added.

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

        Mark media/controls/pip-placeholder-without-video-controls.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=170620

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        REGRESSION: Layout Test http/tests/security/location-cross-origin.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=185259

        Unreviewed, stop relying on a setImeout(100) and epect the frame navigation to have completed. Instead,
        use a setInterval() to poll until the cross-origin frame has navigated.

        * http/tests/security/location-cross-origin.html:

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

        Unreviewed GTK+ gardening after r231300.

        * platform/gtk/TestExpectations:
        * platform/gtk/compositing/layer-creation/overlap-animation-expected.txt: Removed.
        * platform/gtk/editing/selection/select-all-004-expected.png:
        * platform/gtk/editing/selection/select-all-004-expected.txt: Added.

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

        A MediaStream being played should allow removing some of its tracks
        https://bugs.webkit.org/show_bug.cgi?id=185233

        Reviewed by Eric Carlson.

        * fast/mediastream/change-tracks-media-stream-being-played-expected.txt: Added.
        * fast/mediastream/change-tracks-media-stream-being-played.html: Added.

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

        Hiding then showing an <object> of type image makes the underlaying image disappear
        https://bugs.webkit.org/show_bug.cgi?id=185216
        <rdar://problem/39055630>

        Reviewed by Youenn Fablet.

        * fast/images/object-image-hide-show-expected.html: Added.
        * fast/images/object-image-hide-show.html: Added.

2018-05-02  Brent Fulgham  <bfulgham@apple.com>

        Use RetainPtr for form input type
        https://bugs.webkit.org/show_bug.cgi?id=185210
        <rdar://problem/39734040>

        Reviewed by Ryosuke Niwa.

        * fast/forms/access-key-mutation-2-expected.txt: Added.
        * fast/forms/access-key-mutation-2.html: Added.

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

        Skip transitions/opacity-transition-zindex.html.
        https://bugs.webkit.org/show_bug.cgi?id=184947

        Unreviewed test gardening.

        * TestExpectations: Remove old expectation that is no longer applicable.
        * platform/mac-wk2/TestExpectations:

2018-05-02  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed gardening. Add missing Skip for http/wpt.

        * platform/wincairo/TestExpectations:

2018-05-02  Dirk Schulze  <dschulze@chromium.org>

        getCharNumAtPosition should take DOMPointInit as argument
        https://bugs.webkit.org/show_bug.cgi?id=184695

        Reviewed by Antti Koivisto.

        * svg/text/lengthAdjust-text-metrics.html: Run tests with dictionary.

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

        Use NetworkLoadChecker for navigation loads
        https://bugs.webkit.org/show_bug.cgi?id=184892
        <rdar://problem/39652686>

        Reviewed by Chris Dumez.

        Updated header-filtering.https.html to expect full headers except cookie-related for same origin loads.
        Updated expected.txt files accordingly.

        * http/wpt/service-workers/header-filtering.https-expected.txt:
        * http/wpt/service-workers/header-filtering.https.html:
        * platform/mac/http/tests/webarchive/test-preload-resources-expected.txt:

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

        Collection fragment identifiers don't use PostScript names
        https://bugs.webkit.org/show_bug.cgi?id=184624

        Reviewed by Simon Fraser.

        * fast/text/font-collection-expected.html:
        * fast/text/font-collection.html:
        * fast/text/resources/collection.ttc: I generated this font collection by hand. The "Ahemerator" font inside it is missing the
        "A" glyph.

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

        Layout Test http/wpt/service-workers/header-filtering.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184469
        <rdar://problem/39428226>

        Reviewed by Chris Dumez.

        Ensure that the message posted for the loading of the initial iframe is actually received before doing further tests.

        * http/wpt/service-workers/header-filtering.https.html:
        * platform/mac-wk2/TestExpectations:

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

        document.open() event listener removal is not immediate
        https://bugs.webkit.org/show_bug.cgi?id=185191

        Reviewed by Darin Adler.

        Add layout test coverage.

        * fast/dom/Document/document-open-removes-all-listeners-expected.txt: Added.
        * fast/dom/Document/document-open-removes-all-listeners.html: Added.

2018-05-01  Brent Fulgham  <bfulgham@apple.com>

        Prevent assertion when changing forms
        https://bugs.webkit.org/show_bug.cgi?id=185173
        <rdar://problem/39738669>

        Reviewed by Ryosuke Niwa.

        * fast/forms/form-submission-crash-3-expected.txt: Added.
        * fast/forms/form-submission-crash-3.html: Added.

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

        CacheStorage::Engine should keep a list of initialization callback
        https://bugs.webkit.org/show_bug.cgi?id=185184
        <rdar://problem/38875651>

        Reviewed by Antti Koivisto.

        * http/wpt/cache-storage/a-cache-open.https-expected.txt: Added.
        * http/wpt/cache-storage/a-cache-open.https.html: Added.

2018-05-02  Ms2ger  <Ms2ger@igalia.com>

        Update document-create-touch.html expectations for r231114
        https://bugs.webkit.org/show_bug.cgi?id=185193

        Unreviewed test gardening.

        * fast/events/touch/document-create-touch-expected.txt:
        * fast/events/touch/document-create-touch.html:

2018-05-01  Devin Rousso  <webkit@devinrousso.com>

        Web Inspector: Canvas tab: determine hasVisibleEffect for all actions immediately after recording is added
        https://bugs.webkit.org/show_bug.cgi?id=182995

        Reviewed by Matt Baker.

        * inspector/canvas/resources/recording-utilities.js:

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

        Unreviewed test gardening, correct a typo in the iOS TestExpectation file.

        * platform/ios/TestExpectations:

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

        Rebaseline tests after r231165.
        https://bugs.webkit.org/show_bug.cgi?id=185166

        Unreviewed test gardening.

        * animations/font-variations/font-variation-settings-expected.txt:
        * animations/font-variations/font-variation-settings-order-expected.txt:
        * animations/font-variations/font-variation-settings-order.html:
        * animations/font-variations/font-variation-settings.html:
        * legacy-animation-engine/animations/font-variations/font-variation-settings-expected.txt:
        * legacy-animation-engine/animations/font-variations/font-variation-settings-order-expected.txt:
        * legacy-animation-engine/animations/font-variations/font-variation-settings-order.html:
        * legacy-animation-engine/animations/font-variations/font-variation-settings.html:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added.
        * platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added.

2018-05-01  Oleksandr Skachkov  <gskachkov@gmail.com>

        WebAssembly: add support for stream APIs - JavaScript API
        https://bugs.webkit.org/show_bug.cgi?id=183442

        Reviewed by Yusuke Suzuki and JF Bastien.

        * platform/ios-simulator/TestExpectations:
        * platform/win/TestExpectations:

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

        Unreviewed test gardening

        Update test expectations since the crash reported on Bug 177828 is no longer reproducible.

        * platform/mac-wk2/TestExpectations:

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

        Add tests for selection in content editable
        https://bugs.webkit.org/show_bug.cgi?id=185144

        Reviewed by Wenson Hsieh.
        
        Tests that should cover selection in content editable, both with and without a keyboard present. Also fixing two tests that had errors.

        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-left-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-left-to-change-selected-text.html: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text.html: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text.html: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text.html: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html: Added.
        * fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html:
        * fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html:

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

        <img src=mp4> does not display on ios despite Accept: video/* advertisement
        https://bugs.webkit.org/show_bug.cgi?id=185029
        <rdar://problem/39771989>

        Reviewed by Eric Carlson.

        * platform/ios/TestExpectations:

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

        REGRESSION(r230914) Selecting text on this apple.com page makes it vanish
        https://bugs.webkit.org/show_bug.cgi?id=185142
        <rdar://problem/39821446>

        Reviewed by Simon Fraser.

        * fast/text/simple-line-layout-selection-with-overflow-expected.html: Added.
        * fast/text/simple-line-layout-selection-with-overflow.html: Added.

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

        [Extra zoom mode] Respect the existing shrink-to-fit attribute instead of using min-device-width
        https://bugs.webkit.org/show_bug.cgi?id=185132
        <rdar://problem/39834562>

        Reviewed by Tim Horton.

        Modifies an existing layout test to try out different values of `shrink-to-fit` instead of using the
        `min-device-width` attribute. This test now begins with the default viewport configuration, then explicitly
        disables `shrink-to-fit` by setting the attribute to a few different values (which should all achieve the same
        effect), and lastly explicitly re-enables `shrink-to-fit` by setting the attribute value to several values that
        should behave the same as `shrink-to-fit=yes`.

        * fast/viewport/extrazoom/viewport-change-min-device-width.html:

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

        Serialize font-variation-settings with double-quotes per spec
        https://bugs.webkit.org/show_bug.cgi?id=182542

        Reviewed by Myles C. Maxfield.

        Updated test to verify double-quotes are used.

        * fast/text/variations/getComputedStyle-expected.txt:
        * fast/text/variations/getComputedStyle.html:

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

        Make color-filter affect caret-color
        https://bugs.webkit.org/show_bug.cgi?id=185129
        rdar://problem/39829066

        Reviewed by Tim Horton.

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

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

        Fix color-filter to apply to SVG colors
        https://bugs.webkit.org/show_bug.cgi?id=185113
        rdar://problem/39665082

        Reviewed by Dean Jackson.

        * css3/color-filters/svg/color-filter-inline-svg-expected.html: Added.
        * css3/color-filters/svg/color-filter-inline-svg.html: Added.

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

        Unreviewed test gardening for iOS and macOS.

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

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

        Clean up color-filter tests.
        
        Detab the files.
        
        Remove calls to internals.settings.setColorFilterEnabled() which aren't needed, since
        WebKitTestRunner and DumpRenderTree turn the feature on by default.

        * css3/color-filters/color-filter-backgrounds-borders-expected.html:
        * css3/color-filters/color-filter-backgrounds-borders.html:
        * css3/color-filters/color-filter-box-shadow-expected.html:
        * css3/color-filters/color-filter-box-shadow.html:
        * css3/color-filters/color-filter-brightness-expected.html:
        * css3/color-filters/color-filter-brightness.html:
        * css3/color-filters/color-filter-color-property-expected.html:
        * css3/color-filters/color-filter-color-property-list-item-expected.html:
        * css3/color-filters/color-filter-color-property-list-item.html:
        * css3/color-filters/color-filter-color-property.html:
        * css3/color-filters/color-filter-color-text-decorations-expected.html:
        * css3/color-filters/color-filter-color-text-decorations.html:
        * css3/color-filters/color-filter-column-rule-expected.html:
        * css3/color-filters/color-filter-column-rule.html:
        * css3/color-filters/color-filter-contrast-expected.html:
        * css3/color-filters/color-filter-contrast.html:
        * css3/color-filters/color-filter-current-color-expected.html:
        * css3/color-filters/color-filter-current-color.html:
        * css3/color-filters/color-filter-filter-list-expected.html:
        * css3/color-filters/color-filter-filter-list.html:
        * css3/color-filters/color-filter-gradients-expected.html:
        * css3/color-filters/color-filter-gradients.html:
        * css3/color-filters/color-filter-grayscale-expected.html:
        * css3/color-filters/color-filter-grayscale.html:
        * css3/color-filters/color-filter-hue-rotate-expected.html:
        * css3/color-filters/color-filter-hue-rotate.html:
        * css3/color-filters/color-filter-inherits-expected.html:
        * css3/color-filters/color-filter-inherits.html:
        * css3/color-filters/color-filter-invert-expected.html:
        * css3/color-filters/color-filter-invert.html:
        * css3/color-filters/color-filter-opacity-expected.html:
        * css3/color-filters/color-filter-opacity.html:
        * css3/color-filters/color-filter-outline-expected.html:
        * css3/color-filters/color-filter-outline.html:
        * css3/color-filters/color-filter-parsing.html:
        * css3/color-filters/color-filter-saturate-expected.html:
        * css3/color-filters/color-filter-saturate.html:
        * css3/color-filters/color-filter-sepia-expected.html:
        * css3/color-filters/color-filter-sepia.html:
        * css3/color-filters/color-filter-text-decoration-shadow-expected.html:
        * css3/color-filters/color-filter-text-decoration-shadow.html:
        * css3/color-filters/color-filter-text-emphasis-expected.html:
        * css3/color-filters/color-filter-text-emphasis.html:
        * css3/color-filters/color-filter-text-shadow-expected.html:
        * css3/color-filters/color-filter-text-shadow.html:
        * css3/color-filters/color-filter-text-stroke.html:

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

        Implement color-filter for text stroke
        https://bugs.webkit.org/show_bug.cgi?id=185098

        Reviewed by Alan Bujtas.

        * css3/color-filters/color-filter-text-stroke-expected.html: Added.
        * css3/color-filters/color-filter-text-stroke.html: Added.

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

        Implement animation for color-filter
        https://bugs.webkit.org/show_bug.cgi?id=185092
        rdar://problem/39773810

        Reviewed by Tim Horton.
        
        Fix the testing to recognize unprefixed filter, and color-filter.
        
        Add a color-filter animation test.

        * animations/resources/animation-test-helpers.js:
        (getPropertyValue):
        (comparePropertyValue):
        * css3/color-filters/color-filter-animation-expected.txt: Added.
        * css3/color-filters/color-filter-animation.html: Added.

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

        Update TestExpectations for fast/loader/submit-form-while-parsing-2.html.
        https://bugs.webkit.org/show_bug.cgi?id=184051

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Mark http/wpt/resource-timing/rt-resources-per-worker.html as flaky on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=180260

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        AX: Accessibility needs to know which part of the content view is visible on iOS
        https://bugs.webkit.org/show_bug.cgi?id=185085
        <rdar://problem/39801363>

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/unobscured-content-rect-expected.txt: Added.
        * accessibility/ios-simulator/unobscured-content-rect.html: Added.
        * platform/ios-wk1/TestExpectations:

2018-04-27  Christopher Reid  <chris.reid@sony.com>

        URL::appendEncodedHostName is using the deprecated uidna_IDNToASCII function
        https://bugs.webkit.org/show_bug.cgi?id=184836

        Reviewed by Alex Christensen.

        Verify that setting the host or hostname of URL objects will use IDNA2008.

        * fast/url/url-hostname-encoding-expected.txt: Added.
        * fast/url/url-hostname-encoding.html: Added.

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

        Use NetworkLoadChecker for XHR/fetch loads
        https://bugs.webkit.org/show_bug.cgi?id=184741

        Reviewed by Chris Dumez.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-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/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt: Added.
        * platform/mac-wk1/http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt: Added.
        * platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/late-upload-events-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Added.
        * platform/win/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt: Added.
        * platform/win/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt: Added.
        * platform/win/http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt: Added.
        * platform/win/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt: Added.
        * platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/late-upload-events-expected.txt: Added.
        * platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Added.
        * platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Added.

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

        Make color-filter transform gradient colors
        https://bugs.webkit.org/show_bug.cgi?id=185080

        Reviewed by Zalan Bujtas.

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

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

        Disable color-filter tests on Windows for now
        https://bugs.webkit.org/show_bug.cgi?id=185076

        The experimental feature for color-filter is off by default, and Windows WebKit API
        would have to change to enable it, so just skip the tests for now.

        * platform/win/TestExpectations:

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

        Fix color-filter to apply to text decorations
        https://bugs.webkit.org/show_bug.cgi?id=185068
        <rdar://problem/39782136>

        Reviewed by Alan Bujtas.

        * css3/color-filters/color-filter-text-decoration-shadow-expected.html: Added.
        * css3/color-filters/color-filter-text-decoration-shadow.html: Added.
        * css3/color-filters/color-filter-text-shadow-expected.html: Added.
        * css3/color-filters/color-filter-text-shadow.html: Added.

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

        Mark CSS color filters tests as failing on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=185075

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Extra zoom mode] Add a mechanism to override default viewport behaviors in extra zoom mode
        https://bugs.webkit.org/show_bug.cgi?id=185050
        <rdar://problem/39624038>

        Reviewed by Tim Horton.

        Add a new layout test to check that:
        • By default (with no `min-device-width` override), shrink-to-fit and expanded minimum layout sizes takes effect.
        • `min-device-width` can be used to bail out of shrink-to-fit and viewport behaviors.
        • A large `min-device-width` can be used to make extra zoom mode viewport heuristics even more aggressive.

        * TestExpectations:
        * fast/viewport/extrazoom/viewport-change-min-device-width.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.zoomScale):
        (window.UIHelper):

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

        [GTK] Mark a few new test failures

        Unreviewed gardening.
        * platform/gtk/TestExpectations: Related to r230817

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

        Implement rendering support for the color-filter CSS property
        https://bugs.webkit.org/show_bug.cgi?id=185047
        rdar://problem/39664967

        Reviewed by Tim Horton.
        
        Tests for color-filter rendering.

        * css3/color-filters/color-filter-backgrounds-borders-expected.html: Added.
        * css3/color-filters/color-filter-backgrounds-borders.html: Added.
        * css3/color-filters/color-filter-box-shadow-expected.html: Added.
        * css3/color-filters/color-filter-box-shadow.html: Added.
        * css3/color-filters/color-filter-brightness-expected.html: Added.
        * css3/color-filters/color-filter-brightness.html: Added.
        * css3/color-filters/color-filter-color-property-expected.html: Added.
        * css3/color-filters/color-filter-color-property-list-item-expected.html: Added.
        * css3/color-filters/color-filter-color-property-list-item.html: Added.
        * css3/color-filters/color-filter-color-property.html: Added.
        * css3/color-filters/color-filter-color-text-decorations-expected.html: Added.
        * css3/color-filters/color-filter-color-text-decorations.html: Added.
        * css3/color-filters/color-filter-column-rule-expected.html: Added.
        * css3/color-filters/color-filter-column-rule.html: Added.
        * css3/color-filters/color-filter-contrast-expected.html: Added.
        * css3/color-filters/color-filter-contrast.html: Added.
        * css3/color-filters/color-filter-current-color-expected.html: Added.
        * css3/color-filters/color-filter-current-color.html: Added.
        * css3/color-filters/color-filter-filter-list-expected.html: Added.
        * css3/color-filters/color-filter-filter-list.html: Added.
        * css3/color-filters/color-filter-grayscale-expected.html: Added.
        * css3/color-filters/color-filter-grayscale.html: Added.
        * css3/color-filters/color-filter-hue-rotate-expected.html: Added.
        * css3/color-filters/color-filter-hue-rotate.html: Added.
        * css3/color-filters/color-filter-inherits-expected.html: Added.
        * css3/color-filters/color-filter-inherits.html: Added.
        * css3/color-filters/color-filter-invert-expected.html: Added.
        * css3/color-filters/color-filter-invert.html: Added.
        * css3/color-filters/color-filter-opacity-expected.html: Added.
        * css3/color-filters/color-filter-opacity.html: Added.
        * css3/color-filters/color-filter-outline-expected.html: Added.
        * css3/color-filters/color-filter-outline.html: Added.
        * css3/color-filters/color-filter-saturate-expected.html: Added.
        * css3/color-filters/color-filter-saturate.html: Added.
        * css3/color-filters/color-filter-sepia-expected.html: Added.
        * css3/color-filters/color-filter-sepia.html: Added.
        * css3/color-filters/color-filter-text-emphasis-expected.html: Added.
        * css3/color-filters/color-filter-text-emphasis.html: Added.

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

        Show punycode if URL contains Latin small letter o with dot below character
        https://bugs.webkit.org/show_bug.cgi?id=185051
        <rdar://problem/39459297>

        Reviewed by David Kilzer.

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

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