2019-05-16  Daniel Bates  <dabates@apple.com>

        [iOS] Select all with existing range selection replaces range instead of selecting all text
        https://bugs.webkit.org/show_bug.cgi?id=197950
        <rdar://problem/50245131>

        Add missing file that was inadvertently omitted from the patch.

        * fast/events/ios/resources/submit-form-target-blank-using-return-key.html: Added.

2019-05-16  Ali Juma  <ajuma@chromium.org>

        [IntersectionObserver] Regression: No initial observation when nothing else triggers rendering
        https://bugs.webkit.org/show_bug.cgi?id=197891

        Reviewed by Simon Fraser.

        Add a test where other timers that can schedule rendering updates are disabled,
        in order to verify that IntersectionObserver is scheduling rendering updates
        itself.

        * intersection-observer/initial-observation.html: Added.

2019-05-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: user gesture toggle should also force user interaction flag
        https://bugs.webkit.org/show_bug.cgi?id=197269

        Reviewed by Joseph Pecoraro.

        * inspector/runtime/evaluate-userGestureEmulation-userIsInteracting.html: Added.
        * inspector/runtime/evaluate-userGestureEmulation-userIsInteracting-expected.txt: Added.

        * TestExpectations:
        * platform/wk2/TestExpectations:
        Only enable the above test on WK2, as the user interaction state is only supported by WK2.

2019-05-15  Devin Rousso  <drousso@apple.com>

        REGRESSION (r240644): Layout Test inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=194437
        <rdar://problem/48008005>

        Reviewed by Joseph Pecoraro.

        * inspector/page/overrideSetting-ICECandidateFilteringEnabled.html:
        * inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt:

2019-05-15  Devin Rousso  <drousso@apple.com>

        REGRESSION (r242741) [Mac WK1 Debug] Layout Test inspector/timeline/exception-in-injected-script-while-recording.html is a flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=197442
        <rdar://problem/50354090>

        Reviewed by Joseph Pecoraro.

        Ever since r198774, we don't allow a timeline recording to be active at the same time as the
        debugger being paused. As such, these tests are unnecessary.

        * inspector/timeline/debugger-paused-while-recording.html: Removed.
        * inspector/timeline/debugger-paused-while-recording-expected.txt: Removed.
        * inspector/timeline/exception-in-injected-script-while-recording.html: Removed.
        * inspector/timeline/exception-in-injected-script-while-recording-expected.txt: Removed.
        * inspector/timeline/resources/timeline-helper.js: Removed.
        * TestExpectations:

2019-05-15  Zalan Bujtas  <zalan@apple.com>

        Do not create a shape object outside of the layout context
        https://bugs.webkit.org/show_bug.cgi?id=197926
        <rdar://problem/50627858>

        Reviewed by Simon Fraser.

        * fast/block/float/float-with-shape-outside-crash-expected.txt: Added.
        * fast/block/float/float-with-shape-outside-crash.html: Added.

2019-05-15  Shawn Roberts  <sroberts@apple.com>

        Layout tests http/wpt/webauthn/public-key-credential-create-success-hid.https.html
        http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky crashes
        https://bugs.webkit.org/show_bug.cgi?id=197917

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Skipping tests on Debug

2019-05-15  Youenn Fablet  <youenn@apple.com>

        getUserMedia sandbox extensions should not be revoked when a getUserMedia allowed request is being processed
        https://bugs.webkit.org/show_bug.cgi?id=197851

        Reviewed by Alex Christensen.

        * fast/mediastream/gum-stop-track-expected.txt: Added.
        * fast/mediastream/gum-stop-track.html: Added.

2019-05-15  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo

        * platform/wincairo-wk1/TestExpectations: Moved accessibility
        expectations to this file.
        * platform/wincairo/TestExpectations: Skip accessibility because
        WinCairo WK2 doesn't support it yet. Skip
        http/tests/resourceLoadStatistics for WK2 because all tests are
        timing out.

2019-05-14  Wenson Hsieh  <wenson_hsieh@apple.com>

        Missing cursor/caret showing in search field on google.com
        https://bugs.webkit.org/show_bug.cgi?id=197862
        <rdar://problem/50291989>

        Reviewed by Simon Fraser.

        Add a new layout test that represents a reduced test case version of google.com's search field.

        * editing/selection/ios/do-not-hide-selection-in-visible-field.html: Added.

2019-05-14  Megan Gardner  <megan_gardner@apple.com>

        Fix flakey test fast/events/autoscroll-when-input-is-offscreen.html
        https://bugs.webkit.org/show_bug.cgi?id=197897
        <rdar://problem/50306931>

        Reviewed by Wenson Hsieh.

        Programmatic scrolls are included in the transaction and we want to 
        ensure that they've been applied. Then we can be sure that the page 
        has finished scrolling and it's appropriate to test the page offset. 

        * fast/events/autoscroll-when-input-is-offscreen.html:

2019-05-14  Shawn Roberts  <sroberts@apple.com>

        storage/indexeddb/modern/deletedatabase-2-private.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196445

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Not flaky on iOS
        * platform/mac-wk2/TestExpectations: Updating expectations for Mac

2019-05-14  Ali Juma  <ajuma@chromium.org>

        [IntersectionObserver] Update expectations for tests that are no longer flaky

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-05-14  Truitt Savell  <tsavell@apple.com>

        Rebaseline inspector/model/remote-object.html after r245288
        https://bugs.webkit.org/show_bug.cgi?id=197833

        Unreviewed test gardening.

        * inspector/model/remote-object-expected.txt:

2019-05-14  Zalan Bujtas  <zalan@apple.com>

        Do not try to issue repaint while the render tree is being destroyed.
        https://bugs.webkit.org/show_bug.cgi?id=197461
        <rdar://problem/50368992>

        Reviewed by Simon Fraser.

        * http/tests/svg/crash-on-reload-with-filter-expected.txt: Added.
        * http/tests/svg/crash-on-reload-with-filter.html: Added.
        * http/tests/svg/resources/finishTest.html: Added.

2019-05-14  Youenn Fablet  <youenn@apple.com>

        A service worker process should app nap when all its clients app nap
        https://bugs.webkit.org/show_bug.cgi?id=185626
        <rdar://problem/46785908>

        Reviewed by Alex Christensen.

        * http/wpt/service-workers/mac/throttleable-worker.js: Added.
        * http/wpt/service-workers/mac/throttleable.https-expected.txt: Added.
        * http/wpt/service-workers/mac/throttleable.https.html: Added.
        * platform/ios-wk2/TestExpectations:

2019-05-14  Oriol Brufau  <obrufau@igalia.com>

        [css-grid] Update grid when changing auto repeat type
        https://bugs.webkit.org/show_bug.cgi?id=197849

        Reviewed by Javier Fernandez.

        Remove the test which has been upstreamed to WPT.

        * fast/css-grid-layout/grid-change-auto-repeat-tracks-expected.txt: Removed.
        * fast/css-grid-layout/grid-change-auto-repeat-tracks.html: Removed.

2019-05-14  Antti Koivisto  <antti@apple.com>

        Event region computation should respect transforms
        https://bugs.webkit.org/show_bug.cgi?id=197836
        <rdar://problem/50762971>

        Reviewed by Darin Adler.

        * fast/scrolling/ios/event-region-scale-transform-shared-expected.txt:
        * fast/scrolling/ios/event-region-translate-transform-shared-expected.txt:

2019-05-14  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Unreviewed: fix test failures after r245280.

        * platform/mac-wk2/TestExpectations:
        Animating HEICS images is supported only on post macOS Mojave. So these
        tests should be skipped in WebKit for now.

2019-05-14  Youenn Fablet  <youenn@apple.com>

        Video frame resizing should be using Trim
        https://bugs.webkit.org/show_bug.cgi?id=197722
        <rdar://problem/50602188>

        Reviewed by Eric Carlson.

        * fast/mediastream/resize-trim-expected.txt: Renamed from LayoutTests/fast/mediastream/resize-letterbox-expected.txt.
        * fast/mediastream/resize-trim.html: Renamed from LayoutTests/fast/mediastream/resize-letterbox.html.
        * platform/gtk/TestExpectations:

2019-05-14  Antoine Quint  <graouts@apple.com>

        [Pointer Events] The pointerenter and pointerleave events target the wrong element on iOS
        https://bugs.webkit.org/show_bug.cgi?id=197881
        <rdar://problem/50187657>

        Reviewed by Dean Jackson.

        Add a test where we tap an element that is the child of another element where the parent is the element with the "pointerenter"
        and "pointerleave" events registered. The test shows that we correctly set the target to the parent element and not the child.

        * pointerevents/ios/enter-leave-target-expected.txt: Added.
        * pointerevents/ios/enter-leave-target.html: Added.

2019-05-14  Daniel Bates  <dabates@apple.com>

        [iOS] Cannot scroll to beginning of document after scrolling to end of document and vice versa via key commands
        https://bugs.webkit.org/show_bug.cgi?id=197848
        <rdar://problem/49523065>

        Reviewed by Brent Fulgham.

        Add a test to ensure that key commands can be used to scroll to the end of the page and then
        to the beginning of the page.

        * fast/scrolling/ios/scroll-to-beginning-and-end-of-document-expected.txt: Added.
        * fast/scrolling/ios/scroll-to-beginning-and-end-of-document.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.callFunctionAndWaitForScrollToFinish): Added. Convenience function that invokes the
        specified function and returns a Promise that is resolved once the page has finished scrolling. To know
        if the page has finished scrolling we listen for DOM scroll events and repeatedly reset a 300ms timer.
        The delay of 300ms was chosen to be > 250ms (to give some margin of error), which is the upper bound
        delay between scroll event firings, last I recall. When the timer expires we assume that page has
        finished scrolling.
        (window.UIHelper):

2019-05-14  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [CG] Adding support for HEIF-sequence ('public.heics') images
        https://bugs.webkit.org/show_bug.cgi?id=197384

        Reviewed by Simon Fraser.

        Disable the tests for all ports and enable it only for [ Mojave+ WK2]
        because of <rdar://problem/42625657>.

        * TestExpectations:
        * fast/images/animated-heics-draw-expected.txt: Added.
        * fast/images/animated-heics-draw.html: Added.
        * fast/images/animated-heics-verify-expected.txt: Added.
        * fast/images/animated-heics-verify.html: Added.
        * fast/images/resources/sea_animation.heics: Added.
        * fast/images/resources/sticker.heics: Added.
        * platform/mac-wk2/TestExpectations:

2019-05-14  Per Arne Vollan  <pvollan@apple.com>

        [Win10] Some tests are failing only on specific machines
        https://bugs.webkit.org/show_bug.cgi?id=197509

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-05-14  Javier Fernandez  <jfernandez@igalia.com>

        Implement "line-break: anywhere"
        https://bugs.webkit.org/show_bug.cgi?id=181169
        <rdar://problem/48507088>

        Reviewed by Myles C. Maxfield.

        Some of the new tests added to verify the new 'line-break:
        anywhere' feature and its different behavior to what 'word-break:
        break-all' may provide, fail due to several bugs present in
        current WebKit's trunk.

        * TestExpectations:
          - webkit.org/b/197409
          - webkit.org/b/197411
          - webkit.org/b/197411
          - webkit.org/b/197430
 
2019-05-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] When running layout tests that tap in the same location, subsequent tests fail to fire click handlers
        https://bugs.webkit.org/show_bug.cgi?id=197821
        <rdar://problem/50700512>

        Reviewed by Tim Horton.

        Removes workarounds in a couple of existing layout tests.

        * editing/selection/ios/clear-selection-after-tapping-on-element-with-no-click-handler.html:
        * editing/selection/ios/persist-selection-after-tapping-on-element-with-click-handler.html:

2019-05-13  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] InvalidStateError should be reported to sites
        https://bugs.webkit.org/show_bug.cgi?id=193269
        <rdar://problem/48298264>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/ctap-hid-failure.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html:
        * http/wpt/webauthn/resources/util.js:

2019-05-13  Devin Rousso  <drousso@apple.com>

        [ Mac Debug ] Layout Test inspector/audit/basic.html is a flaky timeout on bots
        https://bugs.webkit.org/show_bug.cgi?id=196448
        <rdar://problem/49485452>

        Reviewed by Alex Christensen.

        Split inspector/audit/basic.html into separate tests so each part can run without timing out.

        * inspector/audit/basic-async.html: Added.
        * inspector/audit/basic-async-expected.txt: Added.
        * inspector/audit/basic-boolean.html: Added.
        * inspector/audit/basic-boolean-expected.txt: Added.
        * inspector/audit/basic-debugger.html: Added.
        * inspector/audit/basic-debugger-expected.txt: Added.
        * inspector/audit/basic-error.html: Added.
        * inspector/audit/basic-error-expected.txt: Added.
        * inspector/audit/basic-object.html: Added.
        * inspector/audit/basic-object-expected.txt: Added.
        * inspector/audit/basic-promise.html: Added.
        * inspector/audit/basic-promise-expected.txt: Added.
        * inspector/audit/basic-string.html: Added.
        * inspector/audit/basic-string-expected.txt: Added.
        * inspector/audit/basic-timeout.html: Added.
        * inspector/audit/basic-timeout-expected.txt: Added.

        * inspector/audit/basic.html: Removed.
        * inspector/audit/basic-expected.txt: Removed.

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

2019-05-13  Devin Rousso  <drousso@apple.com>

        [ Mac WK2 ] Layout Test js/dom/unhandled-promise-rejection-bindings-type-error.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=195969
        <rdar://problem/49039441>

        Reviewed by Alex Christensen.

        * js/dom/unhandled-promise-rejection-bindings-type-error.html:

2019-05-13  Megan Gardner  <megan_gardner@apple.com>

        Alter Conic Gradient tests to be less subject to noise
        https://bugs.webkit.org/show_bug.cgi?id=197806
        <rdar://problem/47272067>

        Reviewed by Wenson Hsieh.

        There is a currently a bug where there's a lot of detectable noise in
        the green gradients. Replace them with the less noisy magenta or blue.
        <rdar://problem/50682535>

        * fast/gradients/conic-extended-stops-expected.html:
        * fast/gradients/conic-extended-stops.html:
        * fast/gradients/conic-from-angle-expected.html:
        * fast/gradients/conic-from-angle.html:
        * fast/gradients/conic-gradient-expected.html:
        * fast/gradients/conic-gradient-extended-stops-expected.html:
        * fast/gradients/conic-gradient-extended-stops.html:
        * fast/gradients/conic-gradient.html:
        * fast/gradients/conic-off-center-expected.html:
        * fast/gradients/conic-off-center.html:
        * fast/gradients/conic-two-hints-expected.html:
        * fast/gradients/conic-two-hints.html:

2019-05-13  Antti Koivisto  <antti@apple.com>

        REGRESSION (r245208): compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html asserts
        https://bugs.webkit.org/show_bug.cgi?id=197818
        <rdar://problem/50705762>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/event-region-scale-transform-shared-expected.txt: Added.
        * fast/scrolling/ios/event-region-scale-transform-shared.html: Added.
        * fast/scrolling/ios/event-region-translate-transform-shared-expected.txt: Added.
        * fast/scrolling/ios/event-region-translate-transform-shared.html: Added.
        * platform/ios-wk2/TestExpectations:

2019-05-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Font formatting options don't work when composing a message in Yahoo mail
        https://bugs.webkit.org/show_bug.cgi?id=197813
        <rdar://problem/49382250>

        Reviewed by Darin Adler.

        Add a new layout test to verify that DOM selection is preserved after clicking a button that hides itself
        upon mousedown.

        * editing/selection/preserve-selection-when-clicking-button-expected.txt: Added.
        * editing/selection/preserve-selection-when-clicking-button.html: Added.

2019-05-13  Sihui Liu  <sihui_liu@apple.com>

        [ Mojave Debug ] REGRESSION (r242975) Layout Test imported/w3c/IndexedDB-private-browsing/idbobjectstore_createIndex7-event_order.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=195961
        <rdar://problem/49031397>

        Reviewed by Youenn Fablet.

        r244674 should have fixed this regression.

        * platform/mac-wk2/TestExpectations:

2019-05-12  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r245208): compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html asserts
        https://bugs.webkit.org/show_bug.cgi?id=197818

        Approved by Jon Lee.

        Skip this test until a fix for bug 197818 lands.

        * platform/ios-wk2/TestExpectations:

2019-05-12  Simon Fraser  <simon.fraser@apple.com>

        When the set of backing-sharing layers changes, we need to issue a repaint
        https://bugs.webkit.org/show_bug.cgi?id=197825

        Reviewed by Zalan Bujtas.

        * compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll-expected.html: Added.
        * compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll.html: Added.

2019-05-12  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Suppress extra didReceiveAuthenticationChallenge call when accessing a server which checks basic auth.
        https://bugs.webkit.org/show_bug.cgi?id=197650

        Reviewed by Fujii Hironori.

        * TestExpectations:
        * http/tests/resources/basic-auth.php: Added.
        * http/tests/ssl/curl/certificate-and-authentication-expected.txt: Added.
        * http/tests/ssl/curl/certificate-and-authentication.html: Added.
        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-05-11  Simon Fraser  <simon.fraser@apple.com>

        Overflow scroll that becomes non-scrollable should stop being composited
        https://bugs.webkit.org/show_bug.cgi?id=197817
        <rdar://problem/50697290>

        Reviewed by Antti Koivisto.

        Put in a compositing/scrolling/async-overflow-scrolling dir so we can enable it only
        for platforms that have async overflow scrolling.

        * TestExpectations:
        * compositing/scrolling/async-overflow-scrolling/become-non-scrollable-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/become-non-scrollable.html: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2019-05-11  Alexey Proskuryakov  <ap@apple.com>

        Cleaning up results for legacy-animation-engine tests

        Two tests were fixed in bug 188357.
        The third one is still broken, and we have bug 184611 tracking it.

        * platform/mac-wk1/TestExpectations:

2019-05-11  Alexey Proskuryakov  <ap@apple.com>

        Removing flaky expectation for fast/repaint/canvas-object-fit.html
        https://bugs.webkit.org/show_bug.cgi?id=188910

        * platform/mac-wk1/TestExpectations:

2019-05-11  Alexey Proskuryakov  <ap@apple.com>

        Removing flaky expectation for fast/animation/request-animation-frame.html
        https://bugs.webkit.org/show_bug.cgi?id=190888

        * platform/ios-wk2/TestExpectations:

2019-05-11  Simon Fraser  <simon.fraser@apple.com>

        Layer bounds are incorrect for sharing layers that paint with transforms
        https://bugs.webkit.org/show_bug.cgi?id=197768
        <rdar://problem/50695493>

        Reviewed by Zalan Bujtas.

        Tests for backing-shared layer bounds in various configurations.

        * compositing/shared-backing/sharing-bounds-clip-expected.txt: Added.
        * compositing/shared-backing/sharing-bounds-clip.html: Added.
        * compositing/shared-backing/sharing-bounds-expected.txt: Added.
        * compositing/shared-backing/sharing-bounds-non-clipping-shared-layer-expected.txt: Added.
        * compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html: Added.
        * compositing/shared-backing/sharing-bounds-transformed-sharing-layer-expected.txt: Added.
        * compositing/shared-backing/sharing-bounds-transformed-sharing-layer.html: Added.
        * compositing/shared-backing/sharing-bounds.html: Added.

2019-05-11  Simon Fraser  <simon.fraser@apple.com>

        Translucent gradient rendering bug due to will-change transform
        https://bugs.webkit.org/show_bug.cgi?id=197654
        <rdar://problem/50547664>

        Reviewed by Dean Jackson.

        * compositing/contents-opaque/background-change-to-transparent-expected.txt: Added.
        * compositing/contents-opaque/background-change-to-transparent.html: Added.

2019-05-11  Simon Fraser  <simon.fraser@apple.com>

        When the scroller hosting a shared layer becomes non-scrollable, content disappears
        https://bugs.webkit.org/show_bug.cgi?id=197766
        <rdar://problem/50695808>

        Reviewed by Zalan Bujtas.

        * compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable-expected.html: Added.
        * compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable.html: Added.

2019-05-11  Simon Fraser  <simon.fraser@apple.com>

        Backing-sharing layers with transforms render incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=197692
        <rdar://problem/50652127>

        Reviewed by Antti Koivisto.
        
        Ref tests for effects on sharing layers. The references make "clipping" be stacking context via z-index,
        which eliminates sharing.

        * compositing/shared-backing/nested-shared-layers-with-opacity-expected.html: Added.
        * compositing/shared-backing/nested-shared-layers-with-opacity.html: Added.
        * compositing/shared-backing/shared-layer-has-blending-expected.html: Added.
        * compositing/shared-backing/shared-layer-has-blending.html: Added.
        * compositing/shared-backing/shared-layer-has-filter-expected.html: Added.
        * compositing/shared-backing/shared-layer-has-filter.html: Added.
        * compositing/shared-backing/shared-layer-has-opacity-expected.html: Added.
        * compositing/shared-backing/shared-layer-has-opacity.html: Added.
        * compositing/shared-backing/shared-layer-has-reflection-expected.html: Added.
        * compositing/shared-backing/shared-layer-has-reflection.html: Added.
        * compositing/shared-backing/shared-layer-has-transform-expected.html: Added.
        * compositing/shared-backing/shared-layer-has-transform.html: Added.
        * compositing/shared-backing/shared-layer-isolates-blending-expected.html: Added.
        * compositing/shared-backing/shared-layer-isolates-blending.html: Added.

2019-05-10  Zalan Bujtas  <zalan@apple.com>

        [iOS] baidu.com: Synthetic bold renders too far apart, appears doubled.
        https://bugs.webkit.org/show_bug.cgi?id=197781
        <rdar://problem/48027412>

        Reviewed by Simon Fraser.

        * fast/text/large-synthetic-bold-with-scale-transform-expected.html: Added.
        * fast/text/large-synthetic-bold-with-scale-transform.html: Added.

2019-05-10  Simon Fraser  <simon.fraser@apple.com>

        ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant()) on nytimes.com after r245170
        https://bugs.webkit.org/show_bug.cgi?id=197776

        Reviewed by Zalan Bujtas.

        * compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html: Added.

2019-05-10  Chris Fleizach  <cfleizach@apple.com>

        AX: Crash at WebKit: WebKit::WebSpeechSynthesisClient::speak
        https://bugs.webkit.org/show_bug.cgi?id=197761
        <rdar://problem/50237614>

        Reviewed by Per Arne Vollan.

        * fast/speechsynthesis/speech-synthesis-real-client-version-expected.txt: Added.
        * fast/speechsynthesis/speech-synthesis-real-client-version.html: Added.

2019-05-10  Antti Koivisto  <antti@apple.com>

        Event region generation needs to know about backing-sharing
        https://bugs.webkit.org/show_bug.cgi?id=197694
        <rdar://problem/50584991>

        Reviewed by Simon Fraser.

        * platform/ios-wk2/TestExpectations:
        * pointerevents/ios/touch-action-region-backing-sharing-expected.txt: Added.
        * pointerevents/ios/touch-action-region-backing-sharing.html: Added.

2019-05-10  Ryan Haddad  <ryanhaddad@apple.com>

        [iOS Debug] Layout Test webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=197778

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as slow.

2019-05-09  Simon Fraser  <simon.fraser@apple.com>

        Implement backing-sharing in compositing layers, allowing overlap layers to paint into the backing store of another layer
        https://bugs.webkit.org/show_bug.cgi?id=197561
        <rdar://problem/50445998>

        Reviewed by Antti Koivisto.
        
        New tests for backing sharing, and new baselines of tests whose behavior is changed.

        Scrolling tree tests that would be invalidate by sharing are changed to defeat sharing by adding
        compositing layers early in stacking order.

        * TestExpectations:
        * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * compositing/layer-creation/overflow-scroll-overlap-expected.txt:
        * compositing/layer-creation/overflow-scroll-overlap.html:
        * compositing/overflow/scrolling-content-clip-to-viewport.html:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller.html: Added.
        * compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller.html: Added.
        * compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow.html: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html.
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness.html: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping.html: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping.html: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll.html: Added.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content.html: Added.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip-expected.html: Added.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-clipping-expected.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-clipping.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-repaint-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-repaint.html: Added.
        * compositing/shared-backing/partial-compositing-update-expected.txt: Added.
        * compositing/shared-backing/partial-compositing-update.html: Added.
        * compositing/shared-backing/partial-compositing-update2-expected.txt: Added.
        * compositing/shared-backing/partial-compositing-update2.html: Added.
        * compositing/shared-backing/remove-sharing-layer-expected.txt: Added.
        * compositing/shared-backing/remove-sharing-layer.html: Added.
        * compositing/shared-backing/sharing-cached-clip-rects-expected.txt: Added.
        * compositing/shared-backing/sharing-cached-clip-rects.html: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
        * platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
        * platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * platform/mac-wk1/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * platform/mac-wk2/TestExpectations:
        * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
        * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow.html:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow.html:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html:

2019-05-09  Daniel Bates  <dabates@apple.com>

        [iOS] Right command key has wrong value for property code
        https://bugs.webkit.org/show_bug.cgi?id=193876
        <rdar://problem/47577308>

        Reviewed by Brent Fulgham.

        Update test result.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:

2019-05-09  Daniel Bates  <dabates@apple.com>

        [iOS] Numpad comma key has incorrect keyIdentifier property
        https://bugs.webkit.org/show_bug.cgi?id=197753
        <rdar://problem/50636274>

        Reviewed by Brent Fulgham.

        Update test results.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html:

2019-05-08  Zalan Bujtas  <zalan@apple.com>

        Do not mix inline and block level boxes.
        https://bugs.webkit.org/show_bug.cgi?id=197462
        <rdar://problem/50369362>

        Reviewed by Antti Koivisto.

        * fast/ruby/continuation-and-column-spanner-crash-expected.txt: Added.
        * fast/ruby/continuation-and-column-spanner-crash.html: Added.

2019-05-09  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rebaseline test that is now passing after r245088.

        * platform/ios-simulator/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:

2019-05-09  Daniel Bates  <dabates@apple.com>

        [iOS] Unable to commit search on MSN.com, qq.com, or sina.com.cn using enter key (hardware or software keyboard)
        https://bugs.webkit.org/show_bug.cgi?id=197632
        <rdar://problem/47902054>

        Reviewed by Brent Fulgham.

        Add tests to ensure we fire input and keypress events in the correct order and that we can
        submit a <form> with target = "_blank" using the Return key.

        * fast/events/ios/fire-input-and-keypress-on-return-key-expected.txt: Added.
        * fast/events/ios/fire-input-and-keypress-on-return-key.html: Added.
        * fast/events/ios/submit-form-target-blank-using-return-key-expected.txt: Added.
        * fast/events/ios/submit-form-target-blank-using-return-key.html: Added.
        * platform/ios/TestExpectations: Skip the test until we have the UIKit SPI added
        in <rdar://problem/50596032>.

2019-05-09  Per Arne Vollan  <pvollan@apple.com>

        [Win10] Some tests are failing only on specific machines
        https://bugs.webkit.org/show_bug.cgi?id=197509

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-05-09  Antoine Quint  <graouts@apple.com>

        pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html is a timeout
        https://bugs.webkit.org/show_bug.cgi?id=197738
        <rdar://problem/50588613>

        Reviewed by Antti Koivisto.

        To pass, this test must also disable the legacy "-webkit-overflow-scrolling: touch" behavior.

        * pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html:

2019-05-09  Antti Koivisto  <antti@apple.com>

        Elements with "display: inline-block" don't have a touch-action region
        https://bugs.webkit.org/show_bug.cgi?id=197281
        <rdar://problem/50535081>

        Reviewed by Antoine Quint.

        * pointerevents/ios/touch-action-region-inline-block-expected.txt: Added.
        * pointerevents/ios/touch-action-region-inline-block.html: Added.

2019-05-08  Antoine Quint  <graouts@apple.com>

        [iOS] Correctly handle overlapping regions for elements with a touch-action property
        https://bugs.webkit.org/show_bug.cgi?id=194813
        <rdar://problem/48194708>

        Reviewed by Antti Koivisto.

        Add new tests that check that an element overlapping another element with a "touch-action" property is not affected
        by the property set on that underlying element.

        * pointerevents/ios/touch-action-none-overlap-expected.txt: Added.
        * pointerevents/ios/touch-action-none-overlap.html: Added.
        * pointerevents/ios/touch-action-pan-x-overlap-expected.txt: Added.
        * pointerevents/ios/touch-action-pan-x-overlap.html: Added.
        * pointerevents/ios/touch-action-pan-y-overlap-expected.txt: Added.
        * pointerevents/ios/touch-action-pan-y-overlap.html: Added.
        * pointerevents/ios/touch-action-pinch-zoom-overlap-expected.txt: Added.
        * pointerevents/ios/touch-action-pinch-zoom-overlap.html: Added.

2019-05-08  Chris Dumez  <cdumez@apple.com>

        [iOS Debug] ASSERTION FAILED: !m_originalNode in WebCore::JSLazyEventListener::checkValidityForEventTarget(WebCore::EventTarget &)
        https://bugs.webkit.org/show_bug.cgi?id=197696
        <rdar://problem/50586956>

        Reviewed by Simon Fraser.

        Add layout test coverage.

        * fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt: Added.
        * fast/events/ios/rotation/orientationchange-event-listener-on.body.html: Added.

2019-05-08  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r245058.

        Causes crashes under ASan / GuardMalloc

        Reverted changeset:

        "Implement backing-sharing in compositing layers, allowing
        overlap layers to paint into the backing store of another
        layer"
        https://bugs.webkit.org/show_bug.cgi?id=197561
        https://trac.webkit.org/changeset/245058

2019-05-08  Tim Horton  <timothy_horton@apple.com>

        Unreviewed test rebaselines.

        * platform/ios/editing/deleting/smart-delete-paragraph-003-expected.txt:
        * platform/ios/editing/pasteboard/smart-paste-paragraph-003-expected.txt:
        I over-did it with my rebaselines earlier.

2019-05-08  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Removed.
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:

2019-05-08  Tim Horton  <timothy_horton@apple.com>

        iOS: Selection is dismissed even if click is preventDefault()'d
        https://bugs.webkit.org/show_bug.cgi?id=197686
        <rdar://problem/49398824>

        Reviewed by Wenson Hsieh.

        * editing/selection/ios/clear-selection-after-tapping-on-element-with-no-click-handler-expected.txt: Added.
        * editing/selection/ios/clear-selection-after-tapping-on-element-with-no-click-handler.html: Added.
        * editing/selection/ios/persist-selection-after-tapping-on-element-with-click-handler-expected.txt: Added.
        * editing/selection/ios/persist-selection-after-tapping-on-element-with-click-handler.html: Added.
        New tests.

        * platform/ios/editing/deleting/smart-delete-paragraph-003-expected.txt:
        * platform/ios/editing/pasteboard/smart-paste-paragraph-003-expected.txt:
        Rebaseline since we changed the timing of editing callbacks by changing where the selection happens.

2019-05-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Add a quirk to synthesize mouse events when modifying the selection
        https://bugs.webkit.org/show_bug.cgi?id=197683
        <rdar://problem/48003980>

        Reviewed by Tim Horton.

        Adds a new layout test to enable the site-specific quirk and verify that mouse events are dispatched when
        changing selection, both via the callout menu and by moving the selection grabber using gestures.

        * editing/selection/ios/dispatch-mouse-events-when-modifying-selection-quirk-expected.txt: Added.
        * editing/selection/ios/dispatch-mouse-events-when-modifying-selection-quirk.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.waitForMenuToHide.return.new.Promise):
        (window.UIHelper.waitForMenuToHide):

        Introduce a new helper method to wait for the menu to hide (on iOS, this refers to the callout menu).

2019-05-07  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening for Mojave.

        * platform/mac-wk2/TestExpectations: Skip two webgl tests that time out very frequently.

2019-05-08  Simon Fraser  <simon.fraser@apple.com>

        Implement backing-sharing in compositing layers, allowing overlap layers to paint into the backing store of another layer
        https://bugs.webkit.org/show_bug.cgi?id=197561
        <rdar://problem/50445998>

        Reviewed by Antti Koivisto.
        
        New tests for backing sharing, and new baselines of tests whose behavior is changed.

        Scrolling tree tests that would be invalidate by sharing are changed to defeat sharing by adding
        compositing layers early in stacking order.

        * TestExpectations:
        * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * compositing/layer-creation/overflow-scroll-overlap-expected.txt:
        * compositing/layer-creation/overflow-scroll-overlap.html:
        * compositing/overflow/scrolling-content-clip-to-viewport.html:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller.html: Added.
        * compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller.html: Added.
        * compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow.html: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html.
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness.html: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping.html: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping.html: Added.
        * compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll.html: Added.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content.html: Added.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip-expected.html: Added.
        * compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-clipping-expected.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-clipping.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking.html: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-repaint-expected.txt: Added.
        * compositing/shared-backing/overflow-scroll/shared-layer-repaint.html: Added.
        * compositing/shared-backing/partial-compositing-update-expected.txt: Added.
        * compositing/shared-backing/partial-compositing-update.html: Added.
        * compositing/shared-backing/partial-compositing-update2-expected.txt: Added.
        * compositing/shared-backing/partial-compositing-update2.html: Added.
        * compositing/shared-backing/remove-sharing-layer-expected.txt: Added.
        * compositing/shared-backing/remove-sharing-layer.html: Added.
        * compositing/shared-backing/sharing-cached-clip-rects-expected.txt: Added.
        * compositing/shared-backing/sharing-cached-clip-rects.html: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
        * platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
        * platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * platform/mac-wk1/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * platform/mac-wk2/TestExpectations:
        * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
        * platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow.html:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow.html:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html:

2019-05-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        TestRunnerWKWebView's menu callbacks should be cleared upon UI script completion
        https://bugs.webkit.org/show_bug.cgi?id=197685

        Reviewed by Alex Christensen.

        Adjust a couple of existing layout tests such that they don't rely on didShowMenuCallback and
        didHideMenuCallback sticking around across UI scripts. Currently, these layout tests do the following:

        1. Run a UI script that registers menu callback handlers.
        2. Run a subsequent UI script that will cause the callback handlers to be fired (e.g. clicking on an element).

        After making the change in the test runner to clear menu callbacks upon script completion, callbacks registered
        in step (1) are now unregistered when step (2) completes. Instead, we can rewrite this test logic so that
        they're driven by a single UI script.

        * editing/pasteboard/ios/dom-paste-consecutive-confirmations.html:
        * editing/pasteboard/ios/dom-paste-requires-user-gesture.html:

        Instead of using internals.withUserGesture, put the test logic under a click handler (which is inside the scope
        of a user gesture token), and then use requestAnimationFrame to schedule a second programmatic paste that is
        outside the scope of user interaction. As opposed to setTimeout, requestAnimationFrame does not propagate the
        current user gesture token.

        * editing/pasteboard/ios/resources/dom-paste-helper.js:
        (return.new.Promise.):
        (async._waitForOrTriggerPasteMenu):

2019-05-08  Rob Buis  <rbuis@igalia.com>

        Link prefetch not useful for top-level navigation
        https://bugs.webkit.org/show_bug.cgi?id=195623

        Reviewed by Youenn Fablet.

        Verify that prefetching a cross-domain top-level main resource
        is cached in the prefetch cache and only loaded once, and that non
        top-level prefetches keep the old behavior.

        * http/tests/cache/link-prefetch-main-resource-expected.txt: Added.
        * http/tests/cache/link-prefetch-main-resource-iframe-expected.txt: Added.
        * http/tests/cache/link-prefetch-main-resource-iframe.html: Added.
        * http/tests/cache/link-prefetch-main-resource.html: Added.
        * http/tests/cache/resources/prefetched-main-resource-iframe.php: Added.
        * http/tests/cache/resources/prefetched-main-resource.php: Added.
        * http/tests/contentextensions/prefetch-blocked-expected.txt: Added.
        * http/tests/contentextensions/prefetch-blocked.html: Added.
        * http/tests/contentextensions/prefetch-blocked.html.json: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-05-08  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, a build fix after r245043

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

2019-05-07  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] A new request should always suppress the pending request if any
        https://bugs.webkit.org/show_bug.cgi?id=191517
        <rdar://problem/46888222>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
        * http/wpt/webauthn/resources/new-page.html: Added.

2019-05-07  Youenn Fablet  <youenn@apple.com>

        Video stream freeze on front camera orientation changing
        https://bugs.webkit.org/show_bug.cgi?id=197227
        <rdar://problem/50175498>

        Reviewed by Eric Carlson.

        * webrtc/video-rotation-expected.txt:
        * webrtc/video-rotation.html:

2019-05-07  Brent Fulgham  <bfulgham@apple.com>

        Correct JSON parser to address unterminated escape character
        https://bugs.webkit.org/show_bug.cgi?id=197582
        <rdar://problem/50459177>

        Reviewed by Alex Christensen.

        * applicationmanifest/display-mode-bad-manifest-expected.txt:
        * applicationmanifest/display-mode-bad-manifest.html:
        * applicationmanifest/resources/bad.manifest: Added.
        * js/resources/JSON-parse.js: Add test case for unterminated escape.
        * js/dom/JSON-parse-expected.txt: Add new test case.
        * TestWebKitAPI/Tests/WTF/JSONValue.cpp: Add new false test case
          for unterminated escape character.

2019-05-07  John Wilander  <wilander@apple.com>

        Storage Access API: Make two changes requested by developers and complete refactoring and cleanup
        https://bugs.webkit.org/show_bug.cgi?id=197648
        <rdar://problem/50527493>

        Reviewed by Chris Dumez.

        The changed test cases have had calls to WebCore::Internals::setUserGrantsStorageAccess() removed
        since it was dead code.

        One of the new tests, deny-with-prompt-does-not-preserve-gesture.html, is marked [ Skip ] for now since
        we lack the ability to click "Don't allow" in the prompt. I wanted to include the test anyway so that
        we have it. I have done a manual test to make sure the code does the right thing for this case.

        * http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture-expected.txt: Added.
        * http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture.html: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window.html.
        * http/tests/storageAccess/deny-without-prompt-preserves-gesture-expected.txt: Added.
        * http/tests/storageAccess/deny-without-prompt-preserves-gesture.html: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window.html.
        * http/tests/storageAccess/grant-with-prompt-preserves-gesture-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt.
        * http/tests/storageAccess/grant-with-prompt-preserves-gesture.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window.html.
        * http/tests/storageAccess/has-storage-access-true-if-feature-off-expected.txt: Added.
        * http/tests/storageAccess/has-storage-access-true-if-feature-off.html: Added.
        * http/tests/storageAccess/resources/request-storage-access-and-immediately-postmessage-iframe.html:
        * http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
        * http/tests/storageAccess/resources/request-storage-access-iframe.html:
        * http/tests/storageAccess/resources/request-storage-access-without-user-gesture-iframe.html:
        * http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html:
        * platform/mac-wk2/TestExpectations:
            Added expectations for the new tests.

2019-05-07  Antti Koivisto  <antti@apple.com>

        <body> with overflow:hidden shouldn't be keyboard scrollable on iOS
        https://bugs.webkit.org/show_bug.cgi?id=197659

        Reviewed by Antoine Quint.

        * fast/scrolling/ios/body-overflow-hidden-keyboard-expected.html: Added.
        * fast/scrolling/ios/body-overflow-hidden-keyboard.html: Added.

2019-05-07  Ryan Haddad  <ryanhaddad@apple.com>

        media/W3C/video/events/event_progress.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=175678

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.
        * platform/mac/TestExpectations: Ditto.
        * platform/wk2/TestExpectations: Remove old WK2-only expectation.

2019-05-07  Chris Dumez  <cdumez@apple.com>

        fast/dom/frame-src-javascript-url-async.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=197664

        Unreviewed, tweak test so that it is no longer flaky.

        * fast/dom/frame-src-javascript-url-async-expected.txt:
        * fast/dom/frame-src-javascript-url-async.html:

2019-05-07  Ryan Haddad  <ryanhaddad@apple.com>

        [macOS / iOS Debug] Layout Test imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197662

        Unreviewed test gardening.

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

2019-05-07  Antti Koivisto  <antti@apple.com>

        <body> with overflow:hidden CSS is scrollable on iOS
        https://bugs.webkit.org/show_bug.cgi?id=153852
        <rdar://problem/38715356>

        Reviewed by Antoine Quint.

        * fast/scrolling/ios/body-overflow-hidden-expected.html: Added.
        * fast/scrolling/ios/body-overflow-hidden-frame-expected.html: Added.
        * fast/scrolling/ios/body-overflow-hidden-frame.html: Added.
        * fast/scrolling/ios/body-overflow-hidden.html: Added.

2019-05-07  Youenn Fablet  <youenn@apple.com>

        Import WPT referrer-policy tests
        https://bugs.webkit.org/show_bug.cgi?id=197321

        Reviewed by Alex Christensen.

        fix-197321

        * TestExpectations:

2019-05-06  Andres Gonzalez  <andresg_22@apple.com>

        Hitpoint for link which spans two lines in web content is incorrect
        https://bugs.webkit.org/show_bug.cgi?id=197511
        <rdar://problem/49971483>

        Reviewed by Chris Fleizach.

        - Added LayoutTest.

        * accessibility/ios-simulator/links-activation-expected.txt: Added.
        * accessibility/ios-simulator/links-activation.html: Added.
        * accessibility/links-activation-expected.txt: Added.
        * accessibility/links-activation.html: Added.

2019-05-06  Youenn Fablet  <youenn@apple.com>

        WebAudio Node JS wrappers should not be collected if events can be fired
        https://bugs.webkit.org/show_bug.cgi?id=197533

        Reviewed by Jer Noble.

        * webaudio/webaudio-gc-expected.txt: Added.
        * webaudio/webaudio-gc.html: Added.

2019-05-06  Ryan Haddad  <ryanhaddad@apple.com>

        REGRESSION: Layout test imported/w3c/web-platform-tests/resource-timing/resource-timing-level1.sub.html is frequently failing on EWS
        https://bugs.webkit.org/show_bug.cgi?id=197473

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky on iOS.

2019-05-06  Antoine Quint  <graouts@apple.com>

        Tests under pointerevents/ios are flaky
        https://bugs.webkit.org/show_bug.cgi?id=197624

        Reviewed by Dean Jackson.

        Tests under pointerevents/ios generate touches that use UIScriptController may not succeed if ran in multiple iterations or in a specific
        order due to not ensuring that all touches are released when the test completes. We now ensure that we do when running swipes, taps, and pinches.

        * pointerevents/ios/pointer-events-dispatch-on-stylus.html: Use the new ui.tapStylus() method to generate a tap with the stylus which ensures all
        touches are removed upon completion.
        * pointerevents/ios/pointer-events-dispatch-on-touch.html: Use a tap to ensure all touches are removed upon completion.
        * pointerevents/ios/pointer-events-implicit-capture-has-pointer-capture-in-pointer-down.html: Use a tap to ensure all touches are removed upon completion.
        * pointerevents/ios/pointer-events-implicit-capture-release-exception.html: Use a tap to ensure all touches are removed upon completion.
        * pointerevents/ios/pointer-events-implicit-capture-release.html: Use a tap to ensure all touches are removed upon completion.
        * pointerevents/ios/pointer-events-prevent-default-allows-click-event.html: Ensure both the "click" event and the tap generation have succeeded before
        marking the test as complete.
        * pointerevents/ios/pointer-events-set-pointer-capture-exceptions.html: Use a tap to ensure all touches are removed upon completion.
        * pointerevents/ios/touch-action-none-link-traversal.html: Ensure both the "load" event and the tap generation have succeeded before marking the test
        as complete.
        * pointerevents/ios/touch-action-pan-x-pan-y.html: Remove the requestAnimationFrame() call since ui.swipe() now resolves its promise once all touches
        have completed.
        * pointerevents/ios/touch-action-pan-x.html: Remove the requestAnimationFrame() call since ui.swipe() now resolves its promise once all touches
        have completed.
        * pointerevents/ios/touch-action-pan-y.html: Remove the requestAnimationFrame() call since ui.swipe() now resolves its promise once all touches
        have completed.
        * pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html: Remove the requestAnimationFrame() call since ui.pinchOut() now resolves its promise
        once all touches have completed.
        * pointerevents/ios/touch-action-pointercancel-pan-x.html: We don't need to track "pointermove" events since dispatch of "pointercancel" is asynchronous
        and the number of "pointermove" events prior to its dispatch can legitimately vary.
        * pointerevents/ios/touch-action-pointercancel-pan-y.html: We don't need to track "pointermove" events since dispatch of "pointercancel" is asynchronous
        and the number of "pointermove" events prior to its dispatch can legitimately vary.
        * pointerevents/utils.js:
        (const.ui.new.UIController.prototype.swipe): Wait until the swipe is complete before resolving the promise.
        (const.ui.new.UIController.prototype.pinchOut): Use a custom sequence to ensure that the pinch releases touches upon completion.
        (const.ui.new.UIController.prototype.tapStylus): Introduce this new method to perform a stylus tap which ensures all touches are complete before resolving
        the promise.
        (const.ui.new.UIController.prototype.beginTouches): Deleted.
        (const.ui.new.UIController.prototype.beginStylus): Deleted.

2019-05-06  Truitt Savell  <tsavell@apple.com>

        Fix typo in https://trac.webkit.org/changeset/244962/webkit
        https://bugs.webkit.org/show_bug.cgi?id=136627

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-05-06  Truitt Savell  <tsavell@apple.com>

        mark media/track/track-cue-rendering-vertical.html as failing for Mojave after r244891 unmarked it. 
        https://bugs.webkit.org/show_bug.cgi?id=136627

        Unreviewed test gardening. 

        * platform/mac/TestExpectations:

2019-05-04  Tadeu Zagallo  <tzagallo@apple.com>

        TypedArrays should not store properties that are canonical numeric indices
        https://bugs.webkit.org/show_bug.cgi?id=197228
        <rdar://problem/49557381>

        Reviewed by Saam Barati.

        * fast/canvas/canvas-ImageData-behaviour-expected.txt:
        * fast/canvas/canvas-ImageData-behaviour.js:

2019-05-04  Per Arne Vollan  <pvollan@apple.com>

        [Win10] Some tests are failing only on specific machines
        https://bugs.webkit.org/show_bug.cgi?id=197509

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-05-03  Simon Fraser  <simon.fraser@apple.com>

        [macOS] Fix programmatic scrolling with async overflow scroll
        https://bugs.webkit.org/show_bug.cgi?id=197590

        Reviewed by Sam Weinig.

        Tests for programmatic scrolling of overflow and iframes.

        * scrollingcoordinator/mac/programmatic-frame-scroll-expected.html: Added.
        * scrollingcoordinator/mac/programmatic-frame-scroll.html: Added.
        * scrollingcoordinator/mac/programmatic-overflow-scroll-expected.html: Added.
        * scrollingcoordinator/mac/programmatic-overflow-scroll.html: Added.

2019-05-03  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] A focused document should be required
        https://bugs.webkit.org/show_bug.cgi?id=197543
        <rdar://problem/50430989>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html:
        * http/wpt/webauthn/public-key-credential-unfocused-document.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-unfocused-document.https.html: Copied from LayoutTests/http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html.
        * http/wpt/webauthn/resources/last-layer-frame.https.html:
        * http/wpt/webauthn/resources/second-layer-frame.https.html:

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

        [iOS] set the default maximum camera count to 1 for enumerateDevices
        https://bugs.webkit.org/show_bug.cgi?id=197566

        Reviewed by Eric Carlson.

        * fast/mediastream/get-user-media-device-id.html:

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

        Cache.add and Cache.addAll should compute a correct response body size
        https://bugs.webkit.org/show_bug.cgi?id=197464

        Reviewed by Chris Dumez.

        * http/wpt/cache-storage/cache-quota-add.any-expected.txt: Added.
        * http/wpt/cache-storage/cache-quota-add.any.html: Added.
        * http/wpt/cache-storage/cache-quota-add.any.js: Added.

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

        LayoutTest imported/w3c/web-platform-tests/xhr/event-upload-progress-crossorigin.htm is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=182849
        <rdar://problem/50353372>

        Reviewed by Alex Christensen.

        * platform/mac-wk2/TestExpectations:

2019-05-03  Devin Rousso  <drousso@apple.com>

        Web Inspector: Record actions performed on WebGL2RenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=176008
        <rdar://problem/34213884>

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/recording-webgl2.html: Added.
        * inspector/canvas/recording-webgl2-expected.txt: Added.
        * inspector/canvas/recording-webgl2-snapshots.html: Added.
        * inspector/canvas/recording-webgl2-snapshots-expected.txt: Added.

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

2019-05-02  Ryosuke Niwa  <rniwa@webkit.org>

        Make focusing-element-with-tabindex-by-tap-or-click.html more robust on iOS
        https://bugs.webkit.org/show_bug.cgi?id=197548

        Reviewed by Wenson Hsieh.

        There was a race between the time the editable element was focused and the keyboard was brought up
        to when the next non-editable element was focused. Made the test explicitly wait for the keyboard
        to come up and go down between test cases to make it more robust.

        * fast/events/focusing-element-with-tabindex-by-tap-or-click.html:

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

        Add test coverage for <rdar://problem/49731231>
        https://bugs.webkit.org/show_bug.cgi?id=196730
        <rdar://problem/49731231>

        Reviewed by Ryosuke Niwa.

        * http/tests/security/showModalDialog-sync-cross-origin-page-load-expected.txt: Added.
        * http/tests/security/showModalDialog-sync-cross-origin-page-load.html: Added.

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

        Setting a frame's src to a javascript URL should not run it synchronously
        https://bugs.webkit.org/show_bug.cgi?id=197466

        Reviewed by Darin Adler.

        * fast/dom/frame-src-javascript-url-async-expected.txt: Added.
        * fast/dom/frame-src-javascript-url-async.html: Added.
        Add layout test coverage for the fact that the javascript URL is executed asynchronously
        whether set during parsing or later via JS. Also makes sure that executing the javascript
        URL asynchronously does not replace the frame's window. This test passes in both Chrome
        and Firefox.

        * imported/blink/fast/frames/navigation-in-pagehide.html:
        Re-sync this test from the Blink repository.

        * fast/dom/Element/id-in-frameset-expected.txt:
        * fast/dom/Element/id-in-frameset.html:
        * fast/dom/insertedIntoDocument-iframe-expected.txt:
        * fast/dom/javascript-url-exception-isolation-expected.txt:
        * fast/dom/javascript-url-exception-isolation.html:
        * fast/dom/no-assert-for-malformed-js-url-attribute-expected.txt:
        * fast/dom/resources/javascript-url-crash-function-iframe.html:
        * fast/frames/adopt-from-created-document.html:
        * fast/frames/out-of-document-iframe-has-child-frame.html:
        * fast/loader/javascript-url-iframe-remove-on-navigate-async-delegate.html:
        * fast/loader/javascript-url-iframe-remove-on-navigate.html:
        * fast/loader/unload-mutation-crash.html:
        * fast/parser/resources/set-parent-to-javascript-url.html:
        * fast/parser/xml-error-adopted.xml:
        * http/tests/navigation/lockedhistory-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/javascript-url-allowed-expected.txt:
        * http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
        * http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
        * http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame-2-level.html:
        * http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame.html:
        * http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-from-javscript-url.html:
        * imported/blink/loader/iframe-sync-loads-expected.txt:
        * js/dom/call-base-resolution.html:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt:
        Update / Rebaseline existing tests to reflect behavior change. I ran those tests in Firefox and Chrome to confirm that our behavior
        is indeed aligned.

2019-05-02  Gary Katsevman  <git@gkatsev.com>

        WebVTT: vertical cue text alignment is the wrong way around
        https://bugs.webkit.org/show_bug.cgi?id=136627
        <rdar://problem/49725538>

        Reviewed by Eric Carlson.

        * platform/ios/media/track/track-cue-rendering-vertical-expected.txt:
        * platform/mac/TestExpectations: Unskipped test.
        * platform/mac/media/track/track-cue-rendering-vertical-expected.png: Removed.
        * platform/mac/media/track/track-cue-rendering-vertical-expected.txt:

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

        [ Sierra Release WK2 ] Layout Test fast/workers/worker-cloneport.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=191644

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Remove expectation. 

2019-05-02  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r244868.

        * platform/gtk/TestExpectations:

2019-05-02  Per Arne Vollan  <pvollan@apple.com>

        [Win10] Some tests are failing only on specific machines
        https://bugs.webkit.org/show_bug.cgi?id=197509

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-05-01  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r242992.
        <rdar://problem/50383600>

        * inspector/console/console-screenshot.html:
        * inspector/console/console-screenshot-expected.txt:
        Don't print the dataURL in the expectation file.

2019-05-01  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Adopt SecurityOrigin::isMatchingRegistrableDomainSuffix()
        https://bugs.webkit.org/show_bug.cgi?id=197481

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/public-key-credential-ip-address-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-ip-address.html: Added.
        * http/wpt/webauthn/resources/public-key-credential-ip-address.https.html: Added.

2019-05-01  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r242809.
        <rdar://problem/50383600>

        * inspector/canvas/recording-html-2d.html:
        * inspector/canvas/recording-html-2d-expected.txt:
        Don't print the dataURL in the expectation file.

2019-05-01  Justin Fan  <justin_fan@apple.com>

        Update WebGPU class names based on sketch.idl
        https://bugs.webkit.org/show_bug.cgi?id=194260

        Reviewed by Dean Jackson.

        Update all exposed Web GPU interface names to GPU* prefix.

        * webgpu/adapter-options.html:
        * webgpu/bind-groups-expected.txt:
        * webgpu/bind-groups.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/js/webgpu-functions.js:
        (beginBasicRenderPass):
        * webgpu/map-read-buffers.html:
        * webgpu/map-write-buffers.html:
        * webgpu/pipeline-layouts-expected.txt:
        * webgpu/pipeline-layouts.html:
        * webgpu/queue-creation-expected.txt:
        * webgpu/queue-creation.html:
        * webgpu/render-command-encoding-expected.txt:
        * webgpu/render-command-encoding.html:
        * webgpu/render-pipelines-expected.txt:
        * webgpu/render-pipelines.html:
        * webgpu/textures-textureviews.html:
        * webgpu/webgpu-enabled.html:

2019-05-01  Zalan Bujtas  <zalan@apple.com>

        [iOS] Unreviewed test gardening.

        * platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
        * platform/ios/compositing/overflow/theme-affects-visual-overflow-expected.txt:
        * platform/ios/fast/block/margin-collapse/103-expected.txt:
        * platform/ios/fast/parser/bad-xml-slash-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug4527-expected.txt:

2019-05-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION(r244494): editing/pasteboard/5761530-1.html is flaky due to a simple line layout bug
        https://bugs.webkit.org/show_bug.cgi?id=197438
        <rdar://problem/50348091>

        Reviewed by Zalan Bujtas.

        Work around the simple line layout bug in the flaky layout test by disabling simple line layout.

        * editing/pasteboard/5761530-1.html:

2019-05-01  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS] Element::focus and Element::scrollIntoView do not clamp scroll positions
        https://bugs.webkit.org/show_bug.cgi?id=197211

        Reviewed by Simon Fraser.

        Added tests for scrolling via Element.prototype.focus and Element.prototype.scrollIntoView.

        * fast/scrolling/ios/programmatic-scroll-via-focus-should-clamp-top-expected.txt: Added.
        * fast/scrolling/ios/programmatic-scroll-via-focus-should-clamp-top.html: Added.
        * fast/scrolling/ios/programmatic-scroll-via-scrollIntoView-inside-iframe-should-clamp-top-expected.txt: Added.
        * fast/scrolling/ios/programmatic-scroll-via-scrollIntoView-inside-iframe-should-clamp-top.html: Added.
        * fast/scrolling/ios/programmatic-scroll-via-scrollIntoView-should-clamp-top-expected.txt: Added.
        * fast/scrolling/ios/programmatic-scroll-via-scrollIntoView-should-clamp-top.html: Added.
        * platform/ios-wk2/fast/dom/focus-contenteditable-expected.txt: Rebaselined the output now that the scroll position
        is properly clamped.
        * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/elementFromPoint-expected.txt: Rebaselined as one
        more test case is passing.

2019-05-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Add a version of viewport shrink-to-fit heuristics that preserves page layout
        https://bugs.webkit.org/show_bug.cgi?id=197342
        <rdar://problem/50063091>

        Reviewed by Tim Horton.

        Introduces new layout tests, and adjusts some existing tests. See comments below.

        * fast/viewport/ios/shrink-to-fit-content-constant-width-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-content-constant-width.html: Added.

        Add a new layout test to exercise the scenario where a constant width viewport narrower than the view is used.

        * fast/viewport/ios/shrink-to-fit-content-large-width-breakpoint-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-content-large-width-breakpoint.html: Added.

        Add a new layout test to exercise the scenario where a responsive website that lays out larger than the view
        width ends up with even more horizontal scrolling when laying out at the initial content width. In this
        scenario, we shouldn't try to expand the viewport to try and encompass the content width, since that would only
        induce even worse horizontal scrolling.

        * fast/viewport/ios/shrink-to-fit-content-no-viewport-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-content-no-viewport.html: Added.

        Add a new layout test for the case where there is no viewport, but content lays out wider than the view.

        * fast/viewport/ios/shrink-to-fit-content-responsive-viewport-with-horizontal-overflow-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-content-responsive-viewport-with-horizontal-overflow.html: Added.

        Add a new layout test for the case where the page has opted for a responsive viewport (device-width, initial
        scale 1), but has laid out wider than the viewport anyways. In this case, we want to shrink the contents down to
        fit inside the view.

        * fast/viewport/ios/shrink-to-fit-content-temporary-overflow-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-content-temporary-overflow.html: Added.

        Add a new layout test to exercise the case where, during page load, content width temporarily increases, and
        then decreases such that it once again fits within the viewport. In this case, we don't want to expand the
        viewport to be as wide as the large temporary width of the page.

        * fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
        * fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden.html:
        * fast/viewport/ios/width-is-device-width-overflowing-expected.txt:
        * fast/viewport/ios/width-is-device-width-overflowing.html:

        Tweak these 2 existing layout tests to include "shrink-to-fit=no", to prevent the new heuristics from shrinking
        the page to fit on device classes that use native viewports by default.

        * platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
        * platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-expected.txt:

2019-05-01  Zalan Bujtas  <zalan@apple.com>

        [iOS] Star rating is covered with a black circle when writing a review on Yelp
        https://bugs.webkit.org/show_bug.cgi?id=197469
        <rdar://problem/48094446>

        Reviewed by Dean Jackson.

        * fast/forms/radio-and-checkbox-checked-with-no-appearance-expected.html: Added.
        * fast/forms/radio-and-checkbox-checked-with-no-appearance.html: Added.

2019-05-01  Ryan Haddad  <ryanhaddad@apple.com>

        REGRESSION: Layout test imported/w3c/web-platform-tests/resource-timing/resource-timing-level1.sub.html is frequently failing on Mac-ews
        https://bugs.webkit.org/show_bug.cgi?id=197473

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-05-01  Truitt Savell  <tsavell@apple.com>

        Win10 failing or flakey tests need to be given expectations to allow for new EWS
        https://bugs.webkit.org/show_bug.cgi?id=197471

        Unreviewed test Gardening

        * platform/win/TestExpectations:

2019-05-01  Darin Adler  <darin@apple.com>

        WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
        https://bugs.webkit.org/show_bug.cgi?id=195535

        Reviewed by Alexey Proskuryakov.

        * css3/escape-dom-api-expected.txt:
        * fast/text/dangling-surrogates-expected.txt:
        * js/dom/webidl-type-mapping-expected.txt:
        * js/invalid-utf8-in-syntax-error-expected.txt:
        Updated expected results to have the Unicode replacement character in cases where the
        text contains unpaired surrogates. The tests are still doing the same operations, and
        still getting the same results, but the text output no longer includes illegal UTF-8.

        * js/invalid-utf8-in-syntax-error.html: Added. Before adding this, the test was
        run, but unlike the rest of the tests in this directory, was only run as part of
        run-javascriptcore-tests. There are two reasons for adding this. One is to be
        consistent with the rest of the tests here and run a second time as part of the
        broader WebKit tests. The second is that we can now use "--reset-results" to generate
        new expected results, something that run-webkit-tests has but run-javascriptcore-tests
        does not have.

2019-05-01  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r244821.

        Causing 4 Test262 failures on JSC Release and Debug

        Reverted changeset:

        "WebKit has too much of its own UTF-8 code and should rely
        more on ICU's UTF-8 support"
        https://bugs.webkit.org/show_bug.cgi?id=195535
        https://trac.webkit.org/changeset/244821

2019-05-01  Youenn Fablet  <youenn@apple.com>

        Reject/throw when calling AudioContext methods on a stopped AudioContext
        https://bugs.webkit.org/show_bug.cgi?id=197391

        Reviewed by Eric Carlson.

        * http/wpt/webaudio/audiocontext-stopped-expected.txt: Added.
        * http/wpt/webaudio/audiocontext-stopped.html: Added.
        * http/wpt/webaudio/resources/audiocontext-stopped-iframe.html: Added.
        * platform/win/TestExpectations: Skip test for win.

2019-05-01  Youenn Fablet  <youenn@apple.com>

        Enable Fetch Keep Alive by default
        https://bugs.webkit.org/show_bug.cgi?id=197331

        Reviewed by Alex Christensen.

        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/basic/keepalive-expected.txt: Added.

2019-05-01  Eric Carlson  <eric.carlson@apple.com>

        XMLHttpRequest should propagate user gestures for media playback
        https://bugs.webkit.org/show_bug.cgi?id=197428
        <rdar://problem/46677392>

        Reviewed by Jer Noble.

        * fast/events/popup-blocking-timers5-expected.txt:
        * fast/events/popup-blocking-timers5.html: Decrease the timer interval from 1000 to 900
        because the user gesture is invalidated based on wall clock time.
        * fast/events/popup-blocking-timers6-expected.txt:
        * fast/events/popup-blocking-timers6.html: Increase the timer interval from 1001 to 1100
        because the user gesture is invalidated based on wall clock time.
        * http/tests/media/user-gesture-preserved-across-xmlhttprequest-expected.txt: Added.
        * http/tests/media/user-gesture-preserved-across-xmlhttprequest.html: Added.

2019-04-29  Darin Adler  <darin@apple.com>

        WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
        https://bugs.webkit.org/show_bug.cgi?id=195535

        Reviewed by Alexey Proskuryakov.

        * css3/escape-dom-api-expected.txt:
        * fast/text/dangling-surrogates-expected.txt:
        * js/dom/webidl-type-mapping-expected.txt:
        * js/invalid-utf8-in-syntax-error-expected.txt:
        Updated expected results to have the Unicode replacement character in cases where the
        text contains unpaired surrogates. The tests are still doing the same operations, and
        still getting the same results, but the text output no longer includes illegal UTF-8
        because the WTF changes affect the code path that DumpRenderTree and WebKitTestRunner
        use to produce the text output.

        * js/invalid-utf8-in-syntax-error.html: Added. Before adding this, the test was
        run, but unlike the rest of the tests in this directory, was only run as part of
        run-javascriptcore-tests. There are two reasons for adding this. One is to be
        consistent with the rest of the tests here and run a second time as part of the
        broader WebKit tests. The second is that we can now use "--reset-results" to generate
        new expected results, something that run-webkit-tests has but run-javascriptcore-tests
        does not have.

2019-04-30  Myles C. Maxfield  <mmaxfield@apple.com>

        font-weight: 1000 is not parsed successfully
        https://bugs.webkit.org/show_bug.cgi?id=197427

        Reviewed by Dean Jackson.

        * platform/win/TestExpectations: Windows disables variation fonts, so requires values to be divisible by 100
        * fast/text/font-weight-1-1000-expected.txt: Added.
        * fast/text/font-weight-1-1000.html: Added.

2019-04-30  Commit Queue  <commit-queue@webkit.org>

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

        Causing Test262 and JSC test failures on multiple builds
        (Requested by ShawnRoberts on #webkit).

        Reverted changeset:

        "TypeArrays should not store properties that are canonical
        numeric indices"
        https://bugs.webkit.org/show_bug.cgi?id=197228
        https://trac.webkit.org/changeset/244806

2019-04-30  Youenn Fablet  <youenn@apple.com>

        [macOS WK1] ASSERTION FAILED: formData in WebCore::ResourceRequest::doUpdateResourceHTTPBody()
        https://bugs.webkit.org/show_bug.cgi?id=196864
        <rdar://problem/49854497>

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2019-04-30  Shawn Roberts  <sroberts@apple.com>

        imported/w3c/web-platform-tests/xhr/event-upload-progress-crossorigin.htm is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=182849

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating expectations for flaky failure on iOS

2019-04-30  Tadeu Zagallo  <tzagallo@apple.com>

        TypeArrays should not store properties that are canonical numeric indices
        https://bugs.webkit.org/show_bug.cgi?id=197228
        <rdar://problem/49557381>

        Reviewed by Darin Adler.

        * fast/canvas/canvas-ImageData-behaviour-expected.txt:
        * fast/canvas/canvas-ImageData-behaviour.js:

2019-04-30  Commit Queue  <commit-queue@webkit.org>

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

        Causing assertion failures on debug queues (Requested by
        ShawnRoberts on #webkit).

        Reverted changeset:

        "Reject/throw when calling AudioContext methods on a stopped
        AudioContext"
        https://bugs.webkit.org/show_bug.cgi?id=197391
        https://trac.webkit.org/changeset/244774

2019-04-30  Alex Christensen  <achristensen@webkit.org>

        Add WKContentRuleList ping resource-type
        https://bugs.webkit.org/show_bug.cgi?id=197325
        <rdar://problem/49841404>

        Reviewed by Geoff Garen.

        * http/tests/contentextensions/block-ping-resource-type-raw--expected.txt: Copied from LayoutTests/http/tests/contentextensions/block-ping-expected.txt.
        * http/tests/contentextensions/block-ping-resource-type-raw.html: Copied from LayoutTests/http/tests/contentextensions/block-ping.html.
        * http/tests/contentextensions/block-ping-resource-type-raw.html.json: Copied from LayoutTests/http/tests/contentextensions/block-ping.html.json.
        * http/tests/contentextensions/block-ping-resource-type-ping-expected.txt: Copied from LayoutTests/http/tests/contentextensions/block-ping-expected.txt.
        * http/tests/contentextensions/block-ping-resource-type-ping.html: Copied from LayoutTests/http/tests/contentextensions/block-ping.html.
        * http/tests/contentextensions/block-ping-resource-type-ping.html.json: Copied from LayoutTests/http/tests/contentextensions/block-ping.html.json.

2019-04-30  Shawn Roberts  <sroberts@apple.com>

        Fixing typo in https://trac.webkit.org/changeset/244780/webkit.

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-04-30  Shawn Roberts  <sroberts@apple.com>

        scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197425

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating expectations for flaky failure

2019-04-30  Shawn Roberts  <sroberts@apple.com>

        animations/play-state-in-shorthand.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=192501

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating expectations for flaky failure
        * platform/mac/TestExpectations: Ditto

2019-04-30  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Move 'gpu' API entry point from DOMWindow to Navigator
        https://bugs.webkit.org/show_bug.cgi?id=197348

        Reviewed by Myles C. Maxfield.

        WebGPU is now accessed through navigator.gpu instead of window.gpu.
        Add webgpu-enabled-in-worker to ensure workers can access WebGPU.

        * webgpu/adapter-options.html:
        * webgpu/js/create-worker-device.js: Added.
        (async.tryCreateDevice):
        * webgpu/js/webgpu-functions.js:
        (async.getBasicDevice):
        * webgpu/queue-creation.html:
        * webgpu/webgpu-enabled-in-worker-expected.txt: Added.
        * webgpu/webgpu-enabled-in-worker.html: Added.
        * webgpu/webgpu-enabled.html:
        * webgpu/whlsl.html:

        Add navigator.gpu to expectations for navigator-detached-no-crash.
        * fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:

2019-04-30  Youenn Fablet  <youenn@apple.com>

        Update WPT service-worker resource-timing test to use hosts[alt]
        https://bugs.webkit.org/show_bug.cgi?id=197329

        Reviewed by Chris Dumez.

        * TestExpectations:

2019-04-30  Zalan Bujtas  <zalan@apple.com>

        Double-tapping a post to like doesn't work on Instagram.com (needs 'dblclick' event)
        https://bugs.webkit.org/show_bug.cgi?id=197347
        <rdar://problem/49393423>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/double-tap-for-double-click1-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-double-click1.html: Added.
        * fast/events/touch/ios/double-tap-for-double-click2-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-double-click2.html: Added.

2019-04-30  Youenn Fablet  <youenn@apple.com>

        Reject/throw when calling AudioContext methods on a stopped AudioContext
        https://bugs.webkit.org/show_bug.cgi?id=197391

        Reviewed by Eric Carlson.

        * http/wpt/webaudio/audiocontext-stopped-expected.txt: Added.
        * http/wpt/webaudio/audiocontext-stopped.html: Added.
        * http/wpt/webaudio/resources/audiocontext-stopped-iframe.html: Added.
        * platform/win/TestExpectations: Skip test for win.

2019-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Support prefers-color-scheme media query
        https://bugs.webkit.org/show_bug.cgi?id=196685

        Reviewed by Michael Catanzaro.

        Unskip css-dark-mode tests and add platform specific results for some of the tests using the supported color
        scheme feature.

        * platform/gtk/TestExpectations:
        * platform/gtk/css-dark-mode/color-scheme-css-expected.txt: Added.
        * platform/gtk/css-dark-mode/color-scheme-meta-expected.txt: Added.
        * platform/gtk/css-dark-mode/default-colors-expected.txt: Added.
        * platform/gtk/css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt: Added.
        * platform/gtk/css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt: Added.
        * platform/gtk/css-dark-mode/prefers-color-scheme-expected.txt: Added.

2019-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK gardening. Rebaseline tests after r244635.

        * platform/gtk/css3/selectors3/html/css3-modsel-24-expected.png:
        * platform/gtk/css3/selectors3/html/css3-modsel-24-expected.txt:
        * platform/gtk/css3/selectors3/html/css3-modsel-68-expected.png:
        * platform/gtk/css3/selectors3/html/css3-modsel-68-expected.txt:
        * platform/gtk/css3/selectors3/xhtml/css3-modsel-24-expected.png:
        * platform/gtk/css3/selectors3/xhtml/css3-modsel-24-expected.txt:
        * platform/gtk/css3/selectors3/xhtml/css3-modsel-68-expected.png:
        * platform/gtk/css3/selectors3/xhtml/css3-modsel-68-expected.txt:
        * platform/gtk/css3/selectors3/xml/css3-modsel-24-expected.png:
        * platform/gtk/css3/selectors3/xml/css3-modsel-24-expected.txt:
        * platform/gtk/css3/selectors3/xml/css3-modsel-68-expected.png:
        * platform/gtk/css3/selectors3/xml/css3-modsel-68-expected.txt:
        * platform/gtk/fast/forms/basic-inputs-expected.png:
        * platform/gtk/fast/forms/basic-inputs-expected.txt:
        * platform/gtk/fast/forms/basic-textareas-expected.png:
        * platform/gtk/fast/forms/basic-textareas-expected.txt:
        * platform/gtk/fast/forms/basic-textareas-quirks-expected.png:
        * platform/gtk/fast/forms/basic-textareas-quirks-expected.txt:
        * platform/gtk/fast/forms/disabled-select-change-index-expected.png:
        * platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
        * platform/gtk/fast/forms/file/file-input-disabled-expected.png:
        * platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
        * platform/gtk/fast/forms/input-appearance-disabled-expected.png:
        * platform/gtk/fast/forms/input-appearance-disabled-expected.txt:
        * platform/gtk/fast/forms/input-disabled-color-expected.png:
        * platform/gtk/fast/forms/input-disabled-color-expected.txt:
        * platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.txt:

2019-04-29  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r244755.

        Casued several test failures on iOS

        Reverted changeset:

        "Double-tapping a post to like doesn't work on Instagram.com
        (needs 'dblclick' event)"
        https://bugs.webkit.org/show_bug.cgi?id=197347
        https://trac.webkit.org/changeset/244755

2019-04-29  Zalan Bujtas  <zalan@apple.com>

        Double-tapping a post to like doesn't work on Instagram.com (needs 'dblclick' event)
        https://bugs.webkit.org/show_bug.cgi?id=197347
        <rdar://problem/49393423>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/double-tap-for-double-click1-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-double-click1.html: Added.
        * fast/events/touch/ios/double-tap-for-double-click2-expected.txt: Added.
        * fast/events/touch/ios/double-tap-for-double-click2.html: Added.

2019-04-30  Simon Fraser  <simon.fraser@apple.com>

        Transform is sometimes left in a bad state after an animation
        https://bugs.webkit.org/show_bug.cgi?id=197401
        rdar://problem/48179186

        Reviewed by Dean Jackson.
        
        Share code between all the overlap tests that work by creating dot matrices, and strip
        out the transforms from the layer tree dumps, because they can vary with timing in these
        tests.

        * compositing/animation/transform-after-animation-expected.html: Added.
        * compositing/animation/transform-after-animation.html: Added.
        * compositing/backing/backing-store-attachment-empty-keyframe-expected.txt:
        * compositing/layer-creation/animation-overlap-with-children.html:
        * compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt:
        * compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
        * compositing/layer-creation/mismatched-transform-transition-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/resources/compositing-overlap-utils.js: Added.
        (makeDots):
        (layerTreeWithoutTransforms):
        (dumpLayers):
        * compositing/layer-creation/scale-rotation-animation-overlap-expected.txt:
        * compositing/layer-creation/scale-rotation-animation-overlap.html:
        * compositing/layer-creation/scale-rotation-transition-overlap.html:
        * compositing/layer-creation/translate-animation-overlap-expected.txt:
        * compositing/layer-creation/translate-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * compositing/layer-creation/translate-scale-transition-overlap.html:
        * compositing/layer-creation/translate-transition-overlap.html:
        * legacy-animation-engine/compositing/backing/backing-store-attachment-empty-keyframe-expected.txt:
        * legacy-animation-engine/compositing/backing/backing-store-attachment-empty-keyframe.html:
        * legacy-animation-engine/compositing/backing/transform-transition-from-outside-view-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/animation-overlap-with-children.html:
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-transition-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/mismatched-transform-transition-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/mismatched-transform-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-transition-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/scale-rotation-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/translate-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-scale-transition-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/translate-scale-transition-overlap.html:
        * legacy-animation-engine/compositing/layer-creation/translate-transition-overlap-expected.txt:
        * legacy-animation-engine/compositing/layer-creation/translate-transition-overlap.html:
        * platform/ios/compositing/layer-creation/scale-rotation-animation-overlap-expected.txt:

2019-04-29  Javier Fernandez  <jfernandez@igalia.com>

        line should not be broken before the first space after a word
        https://bugs.webkit.org/show_bug.cgi?id=197278

        Reviewed by Myles C. Maxfield.

        Added a few Skip (due to unimplemented features) and Failure (break-all related
        issues) entries for some of the tests added by this patch.

        * TestExpectations:

2019-04-29  Youenn Fablet  <youenn@apple.com>

        getDisplayMedia should be called on user gesture
        https://bugs.webkit.org/show_bug.cgi?id=197356

        Reviewed by Eric Carlson.

        * fast/mediastream/media-stream-page-muted.html:
        * fast/mediastream/screencapture-user-gesture-expected.txt: Added.
        * fast/mediastream/screencapture-user-gesture.html: Added.
        * http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
        * http/tests/media/media-stream/get-display-media-iframe-allow-attribute.html:
        * http/tests/media/media-stream/get-display-media-prompt.html:
        * http/tests/media/media-stream/resources/get-display-media-devices-iframe.html:

        * resources/testharnessreport.js:

2019-04-29  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r238090): animation on https://www.robotodyssey.online gets stuck; site broken
        https://bugs.webkit.org/show_bug.cgi?id=197381
        <rdar://problem/50308128>

        Reviewed by Zalan Bujtas.

        * compositing/style-change/clip-path-change-expected.html: Added.
        * compositing/style-change/clip-path-change.html: Added.

2019-04-29  Youenn Fablet  <youenn@apple.com>

        RTCTrackEvent should be delayed until the whole remote description is set
        https://bugs.webkit.org/show_bug.cgi?id=196808
        <rdar://problem/49802649>

        Reviewed by Eric Carlson.

        * webrtc/video-addTrack.html:

2019-04-29  Javier Fernandez  <jfernandez@igalia.com>

        Update the CSS Text WPT test suite
        https://bugs.webkit.org/show_bug.cgi?id=197326

        Unreviewed test gardening.

        * TestExpectations:
          - The break-spaces-008.html fails due to bug 197277

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

        Use normal loading path for ping loads
        https://bugs.webkit.org/show_bug.cgi?id=196807

        Reviewed by Alex Christensen.

        * TestExpectations:
        * http/tests/blink/sendbeacon/beacon-cross-origin.https-expected.txt:
        * http/tests/blink/sendbeacon/connect-src-beacon-allowed.html:
        * http/tests/security/contentSecurityPolicy/connect-src-beacon-allowed.html:
        * http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.php:
        * http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt:
        * http/wpt/beacon/beacon-async-error-logging-expected.txt:
        * http/wpt/beacon/beacon-async-error-logging.html:
        * http/wpt/beacon/connect-src-beacon-redirect-blocked.sub-expected.txt:
        * http/wpt/beacon/contentextensions/beacon-redirect-blocked-expected.txt:
        * http/wpt/beacon/resources/beacon-preflight.py:
        (respondToCORSPreflight):
        (main):
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:

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

        Mark some cache-storage as slow on iOS-simulator
        https://bugs.webkit.org/show_bug.cgi?id=197316

        Unreviewed.

        * platform/ios-simulator-wk2/TestExpectations:

2019-04-26  Shawn Roberts  <sroberts@apple.com>

        Removing test expectation changes for tests no longer timing out
        https://bugs.webkit.org/show_bug.cgi?id=195719

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-04-26  Said Abou-Hallawa  <sabouhallawa@apple.com>

        propertyRegistry() was not overridden for SVGFEFloodElement and SVGFEMergeElement
        https://bugs.webkit.org/show_bug.cgi?id=197303

        Reviewed by Alex Christensen.

        * svg/dom/SVGFEFloodElement-filter-standard-attributes-expected.svg: Added.
        * svg/dom/SVGFEFloodElement-filter-standard-attributes.svg: Added.

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

        [Mac WK2 iOS Sim] Layout Test imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196633
        <rdar://problem/49627667>

        Reviewed by Alex Christensen.

        * platform/mac-wk2/TestExpectations:

2019-04-26  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/harness/render-tree-as-text-options.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=197310

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-04-26  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Fix Curl Request Scheduler not to release wrong Curl handle when request is cancelled.
        https://bugs.webkit.org/show_bug.cgi?id=191650

        Reviewed by Fujii Hironori.

        * http/tests/misc/repeat-open-cancel-expected.txt: Added.
        * http/tests/misc/repeat-open-cancel.html: Added.

2019-04-25  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Implement idempotent mode for text autosizing
        https://bugs.webkit.org/show_bug.cgi?id=197250
        <rdar://problem/50211034>

        Reviewed by Jon Lee.

        Add two simple tests that make sure that fonts get autosized > 1x when the layout viewport is wide,
        and that fonts don't get autosized when the layout viewport isn't wide.

        We don't want to add tons of tests to test exact values because the curve will likely be tweaked
        in the future.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-identity-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-identity.html: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing.html: Added.

2019-04-25  Sihui Liu  <sihui_liu@apple.com>

        [ iOS Sim ] REGRESSION (r242986) Layout Test storage/indexeddb/modern/idbtransaction-objectstore-failures-private.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196357
        <rdar://problem/49386836>

        Reviewed by Geoffrey Garen.

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

2019-04-25  Shawn Roberts  <sroberts@apple.com>

        fast/harness/render-tree-as-text-options.html Rebaselined test for windows
        https://bugs.webkit.org/show_bug.cgi?id=197290

        Unreviewed test gardening.

        * platform/win/fast/render-tree-as-text-options-expected.txt: Added.

2019-04-25  Frederic Wang  <fwang@igalia.com>

        Add more tests for ios programmatic iframe scrolling with fixed/sticky layers
        https://bugs.webkit.org/show_bug.cgi?id=197280

        This commit adds iOS tests for scrolling iframes containing fixed/sticky layers. They are
        extracted from earlier experimental patches for iOS frame scrolling but failed with the
        alternative patches initially landed in bug 193539 and follow-up bugs. They now pass again
        on trunk, so we can finally import them.

        Reviewed by Darin Adler.

        * fast/scrolling/ios/programmatic-scroll-iframe-010-expected.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-010.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-011-expected.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-011.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-012-expected.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-012.html: Added.

2019-04-25  Shawn Roberts  <sroberts@apple.com>

        imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197286

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure

2019-04-25  Shawn Roberts  <sroberts@apple.com>

        http/wpt/resource-timing/rt-resources-per-frame.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197207

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure

2019-04-25  Shawn Roberts  <sroberts@apple.com>

        http/tests/resourceLoadStatistics/prune-statistics.html is a flaky failure on Debug testers
        https://bugs.webkit.org/show_bug.cgi?id=197285

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating expectations for flaky failure

2019-04-25  Shawn Roberts  <sroberts@apple.com>

        fast/css-custom-paint/animate-repaint.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197283

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating expectations for flaky failure

2019-04-25  Antti Koivisto  <antti@apple.com>

        Visited link hash should be computed only once
        https://bugs.webkit.org/show_bug.cgi?id=197229
        <rdar://problem/48438924>

        Reviewed by Alex Christensen.

        * fast/history/visited-href-mutation-expected.html: Added.
        * fast/history/visited-href-mutation.html: Added.

2019-04-25  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed in WebCore::MediaPlayerPrivateGStreamer::paused
        https://bugs.webkit.org/show_bug.cgi?id=196691

        Reviewed by Eric Carlson.

        Unflag test no longer crashing.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/replaced/border-radius-clip-expected.txt:

2019-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Hardcoded text color in input fields
        https://bugs.webkit.org/show_bug.cgi?id=126907

        Reviewed by Michael Catanzaro.

        Remove expectations for tests that are passing again.

        * platform/gtk/TestExpectations:

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

        REGRESSION (r242132): Nested position:sticky elements move incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=197255
        rdar://problem/50137744

        Reviewed by Zalan Bujtas.

        * scrollingcoordinator/mac/nested-sticky-expected.html: Added.
        * scrollingcoordinator/mac/nested-sticky.html: Added.

2019-04-24  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/inspector/network/har/har-page-expected.txt:
        * platform/gtk/imported/blink/media/track/media-element-move-to-new-document-assert-expected.txt: Removed.

2019-04-24  Commit Queue  <commit-queue@webkit.org>

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

        Causes compat issues (Requested by smfr on #webkit).

        Reverted changeset:

        "Unreviewed test gardening for Windows."
        https://trac.webkit.org/changeset/244228

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

        Age out unconverted Ad Click Attributions after one week.
        https://bugs.webkit.org/show_bug.cgi?id=197238
        <rdar://problem/50177349>

        Reviewed by Chris Dumez.

        * http/tests/adClickAttribution/expired-attributions-removed-expected.txt: Added.
        * http/tests/adClickAttribution/expired-attributions-removed.html: Added.

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

        REGRESSION (iOS 12.2): CSS perspective property value can only be set correctly once
        https://bugs.webkit.org/show_bug.cgi?id=197105

        Reviewed by Zalan Bujtas.

        * compositing/style-change/backface-visibility-change-expected.html: Added.
        * compositing/style-change/backface-visibility-change.html: Added.
        * compositing/style-change/perspective-change-expected.html: Added.
        * compositing/style-change/perspective-change.html: Added.
        * compositing/style-change/perspective-origin-change-expected.html: Added.
        * compositing/style-change/perspective-origin-change.html: Added.
        * compositing/style-change/transform-origin-change-expected.html: Added.
        * compositing/style-change/transform-origin-change.html: Added.
        * compositing/style-change/transform-style-change-expected.html: Added.
        * compositing/style-change/transform-style-change.html: Added.

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

        Make it possible to control the renderTreeAsText output by setting options on testRunner
        https://bugs.webkit.org/show_bug.cgi?id=197133

        Reviewed by Sam Weinig.

        Add testRunner.setRenderTreeDumpOptions() and expose the subset of RenderAsTextFlag flags
        that make sense in testing (those that don't dump unstable data like addresses), and plumb
        these flags through the various framework layers.

        Convert RenderAsTextBehavior to an OptionSet<RenderAsTextFlag>.

        Fix code generation in WebKitTestRunner to generate bindings for IDL const values,
        and hand-code DumpRenderTree bindings.

        Some cleanup of the TestRunners, using member initializers.

        * fast/harness/render-tree-as-text-options-expected.txt: Added.
        * fast/harness/render-tree-as-text-options.html: Added.
        * resources/testrunner-constants.js: Added.

2019-04-24  Antoine Quint  <graouts@apple.com>

        [iOS] Calling preventDefault() when handling a pointerdown event should not prevent panning, zooming or click event dispatch
        https://bugs.webkit.org/show_bug.cgi?id=195839
        <rdar://problem/48946154>

        Reviewed by Brent Fulgham.

        Modify the existing test to check that we *have* scrolled after performing a swipe gesture and calling
        preventDefault() while handling the pointerdown handling. We also add a new test that checks that the
        click event is indeed dispatched when tapping on an element and calling preventDefault() while handling
        the pointerdown event.

        * pointerevents/ios/pointer-events-prevent-default-allows-click-event-expected.txt: Added.
        * pointerevents/ios/pointer-events-prevent-default-allows-click-event.html: Added.
        * pointerevents/ios/pointer-events-prevent-default-allows-scrolling-expected.txt: Added.
        * pointerevents/ios/pointer-events-prevent-default-allows-scrolling.html: Renamed from LayoutTests/pointerevents/ios/pointer-events-prevent-default.html.
        * pointerevents/ios/pointer-events-prevent-default-expected.txt: Removed.

2019-04-24  Frederic Wang  <fwang@igalia.com>

        With async scrolling enabled, this MathML test asserts
        https://bugs.webkit.org/show_bug.cgi?id=196123

        Reviewed by Rob Buis.

        Add a test for each MathML layoutBlock functions/classes.

        * mathml/mathml-overflow-crash-expected.txt: Added.
        * mathml/mathml-overflow-crash.html: Added.

2019-04-24  Cathie Chen  <cathiechen@igalia.com>

        [Mac Debug] Layout Test resize-observer/observe-element-from-other-frame.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197063

        Reviewed by Ryosuke Niwa.

        RenderingUpdate timer might be fired after ResizeTestHelper's. This would produce a flaky failure.
        In order to reduce this failure, extend ResizeTestHelper.TIMEOUT like in bug 177484.

        * resize-observer/resources/resizeTestHelper.js:

2019-04-24  Truitt Savell  <tsavell@apple.com>

        Rebaseline js/dom/dom-static-property-for-in-iteration.html after r244581
        https://bugs.webkit.org/show_bug.cgi?id=197218

        Unreviewed test gardening. 

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

2019-04-24  Chris Dumez  <cdumez@apple.com>

        X-Frame-Options header should be ignored when frame-ancestors CSP directive is present
        https://bugs.webkit.org/show_bug.cgi?id=197226
        <rdar://problem/50155649>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-overrides-X-Frames-Options-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-overrides-X-Frames-Options.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/frame-ancestors-self-x-frame-options-deny.pl: Added.

2019-04-24  chris fleizach  <cfleizach@apple.com>

        AX: Remove deprecated Accessibility Object Model events
        https://bugs.webkit.org/show_bug.cgi?id=197073
        <rdar://problem/50027819>

        Reviewed by Ryosuke Niwa.

        * accessibility/mac/AOM-event-accessiblesetvalue-expected.txt: Removed.
        * accessibility/mac/AOM-event-accessiblesetvalue.html: Removed.
        * accessibility/mac/AOM-events-all-expected.txt: Removed.
        * accessibility/mac/AOM-events-all.html: Removed.
        * accessibility/mac/AOM-events-expected.txt: Removed.
        * accessibility/mac/AOM-events-webarea-crash-expected.txt: Removed.
        * accessibility/mac/AOM-events-webarea-crash.html: Removed.
        * accessibility/mac/AOM-events.html: Removed.
        * accessibility/mac/replace-text-with-range-expected.txt: Replaced.
        * accessibility/mac/replace-text-with-range.html: Replaced.

2019-04-23  John Wilander  <wilander@apple.com>

        Move Ad Click Attribution from internal feature to experimental feature
        https://bugs.webkit.org/show_bug.cgi?id=197218
        <rdar://problem/47651691>

        Reviewed by Brent Fulgham.

        This patch removes the TestRunner instruction for turning on the internal
        feature.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation.html:
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority.html:
        * http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html:
        * http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html:
        * http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html:
        * http/tests/adClickAttribution/second-conversion-with-higher-priority.html:
        * http/tests/adClickAttribution/second-conversion-with-lower-priority.html:
        * http/tests/adClickAttribution/send-attribution-conversion-request.html:
        * http/tests/adClickAttribution/store-ad-click-attribution.html:
        * http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html:
        * http/tests/contentextensions/block-ad-click-attribution.html:

2019-04-23  John Wilander  <wilander@apple.com>

        Remove Ad Click Attribution data when removing website data
        https://bugs.webkit.org/show_bug.cgi?id=197215
        <rdar://problem/47668988>

        Reviewed by Chris Dumez.

        * http/tests/adClickAttribution/clear-through-website-data-removal-expected.txt: Added.
        * http/tests/adClickAttribution/clear-through-website-data-removal.html: Added.

2019-04-23  Devin Rousso  <drousso@apple.com>

        ContentSecurityPolicy::logToConsole should include line/column number and source location
        https://bugs.webkit.org/show_bug.cgi?id=114317
        <rdar://problem/13614617>

        Reviewed by Timothy Hatcher.

        * inspector/debugger/csp-exceptions.html:

2019-04-23  Andres Gonzalez  <andresg_22@apple.com>

        Accessibility text search and selection API enhancements.
        https://bugs.webkit.org/show_bug.cgi?id=197095
        <rdar://problem/48181791>

        Reviewed by Chris Fleizach.

        - Added new test for AccessibilitySearchTextWithCriteria API.
        - Updated bounds-for-range expected file that includes a list of available APIs.

        * accessibility/mac/bounds-for-range-expected.txt:
        * accessibility/mac/search-text/search-text-expected.txt: Added.
        * accessibility/mac/search-text/search-text.html: Added.

2019-04-23  Guy Lewin  <guy@lewin.co.il>

        Multiple File Input Icon Set Regardless of File List
        https://bugs.webkit.org/show_bug.cgi?id=195537

        Add a layout test to verify file input icon resets on change event (iOS)
        Change expectations according to
        file-reset-in-change-using-open-panel.html

        Reviewed by Alexey Proskuryakov.

        * fast/forms/file/file-reset-in-change-using-open-panel-with-icon-expected.html: Added.
        * fast/forms/file/file-reset-in-change-using-open-panel-with-icon.html: Added.
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-04-23  Devin Rousso  <drousso@apple.com>

        Unreviewed, speculative fix for failing inspector/canvas/ tests.
        <rdar://problem/48248697>

        * inspector/canvas/resources/recording-utilities.js:

2019-04-23  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS] element.focus() sometimes fails to reveal the focused element when it becomes editable dynamically
        https://bugs.webkit.org/show_bug.cgi?id=197188

        Reviewed by Wenson Hsieh.

        Added a regression test.

        * editing/selection/ios/scrolling-to-focused-element-inside-iframe-expected.txt: Added.
        * editing/selection/ios/scrolling-to-focused-element-inside-iframe.html: Added.

2019-04-23  John Wilander  <wilander@apple.com>

        Ad Click Attribution redirects to well-known location should not trigger a conversion if they are blocked by content blockers
        https://bugs.webkit.org/show_bug.cgi?id=197183
        <rdar://problem/47763188>

        Reviewed by Alex Christensen.

        * http/tests/contentextensions/block-ad-click-attribution-expected.txt: Added.
        * http/tests/contentextensions/block-ad-click-attribution.html: Added.
        * http/tests/contentextensions/block-ad-click-attribution.html.json: Added.

2019-04-23  Shawn Roberts  <sroberts@apple.com>

        fast/selectors/matches-backtracking.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=197068

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating expectations for flaky test

2019-04-23  Youenn Fablet  <youenn@apple.com>

        REGRESSION (r240727) [ Mac iOS ] Layout Test http/tests/workers/service/basic-register-exceptions.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=194368
        <rdar://problem/47937467>

        Reviewed by Alex Christensen.

        Test was exiting sooner than the last registration was rejected.
        Make sure that the test is run until the end in a more ordered way.

        * http/tests/workers/service/basic-register-exceptions-expected.txt:
        * http/tests/workers/service/resources/basic-register-exceptions.js:
        (async.doTest):
        (then): Deleted.
        (catch): Deleted.
        * platform/mac-wk2/TestExpectations:

2019-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>

        [ATK] Implement AtkComponentIface scroll_to methods
        https://bugs.webkit.org/show_bug.cgi?id=196856

        Reviewed by Michael Catanzaro.

        Remove expectations for tests that are passing now.

        * platform/gtk/TestExpectations:

2019-04-22  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Some dropdown menus may close without user gesture on americanexpress.com
        https://bugs.webkit.org/show_bug.cgi?id=197175
        <rdar://problem/49613013>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/mouse-out-event-should-not-fire-on-click-when-default-prevented-expected.txt: Added.
        * fast/events/touch/ios/content-observation/mouse-out-event-should-not-fire-on-click-when-default-prevented.html: Added.

2019-04-22  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Move swap chain methods from GPUDevice to GPUCanvasContext
        https://bugs.webkit.org/show_bug.cgi?id=197126

        Reviewed by Dean Jackson.

        GPUSwapChains are now configured via GPUCanvasContext instead of GPUDevice.

        * webgpu/blend-triangle-strip.html:
        * webgpu/js/webgpu-functions.js:
        (createBasicSwapChain):
        * webgpu/whlsl.html:

2019-04-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r241289): [GTK] accessibility/removed-continuation-element-causes-crash.html and accessibility/removed-anonymous-block-child-causes-crash.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=194630

        Reviewed by Michael Catanzaro.

        Remove expectations for tests that are passing now.

        * platform/gtk/TestExpectations:

2019-04-20  Said Abou-Hallawa  <said@apple.com>

        REGRESSION (r243137): SVGViewElement.viewTarget should not return a new object
        https://bugs.webkit.org/show_bug.cgi?id=197137

        Reviewed by Darin Adler.

        * svg/dom/SVGViewElement-viewTarget-expected.txt: Added.
        * svg/dom/SVGViewElement-viewTarget.html: Added.

2019-04-19  Megan Gardner  <megan_gardner@apple.com>

        Fix Long Press Image Test
        https://bugs.webkit.org/show_bug.cgi?id=197130
        <rdar://problem/50058818>

        Reviewed by Wenson Hsieh.

        Fixing up test to reflect changes in https://bugs.webkit.org/show_bug.cgi?id=196833

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

2019-04-19  John Wilander  <wilander@apple.com>

        Disable Ad Click Attribution in ephemeral sessions and make sure conversion requests use an ephemeral, stateless session
        https://bugs.webkit.org/show_bug.cgi?id=197108
        <rdar://problem/49918702>

        Reviewed by Alex Christensen.

        Except for the details below, this patch introduces the utility functions
        prepareTest() and tearDownAndFinish() and all applicable tests now make use
        of them.

        * http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect.html:
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority.html:
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority.html:
        * http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session-expected.txt: Added.
        * http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html: Copied from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html.
        * http/tests/adClickAttribution/resources/conversionReport.php:
            Now tries to set a cookie in the response.
        * http/tests/adClickAttribution/resources/util.js: Added.
        (prepareTest):
        (tearDownAndFinish):
        * http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html:
        * http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html:
        * http/tests/adClickAttribution/second-conversion-with-higher-priority.html:
        * http/tests/adClickAttribution/second-conversion-with-lower-priority.html:
        * http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt:
        * http/tests/adClickAttribution/send-attribution-conversion-request.html:
        * http/tests/adClickAttribution/store-ad-click-attribution.html:
            Now sets a cookie which is checked for it in the conversion report.
        * http/tests/adClickAttribution/store-disabled-in-ephemeral-session-expected.txt: Added.
        * http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html: Copied from LayoutTests/http/tests/adClickAttribution/store-ad-click-attribution.html.

2019-04-19  Timothy Hatcher  <timothy@apple.com>

        Standardize the `<meta name="color-scheme">` separator.
        https://bugs.webkit.org/show_bug.cgi?id=193931
        rdar://problem/49995929

        Reviewed by Darin Adler.

        * css-dark-mode/color-scheme-meta-expected.txt:
        * css-dark-mode/color-scheme-meta.html: Test other types of spaces like tab, newline and vertical tab.

2019-04-19  Ryosuke Niwa  <rniwa@webkit.org>

        [Mac WK2] REGRESSION (r244182) editing/execCommand/change-list-type.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197065
        <rdar://problem/50021964>

        Reviewed by Wenson Hsieh.

        Like r244461, this test was errornosuly assuming that rAF would be enough to close the undo group
        in the UI process. Fixed the test by explicitly waiting for the runloop in the ui process to run
        by executing a UI script.

        * editing/execCommand/change-list-type.html:

2019-04-19  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION: (r244182) Layout Test editing/execCommand/insert-nested-lists.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=196985

        Reviewed by Wenson Hsieh.

        The flakiness was caused by the test incorrectly assuming that rAF would
        be enough to close the undo group in the UI process.

        Fixed the test by explicitly waiting for the runloop in the ui process to run
        by executing a UI script.

        * editing/execCommand/insert-nested-lists.html:

2019-04-18  Megan Gardner  <megan_gardner@apple.com>

        Update autoscroll test to lift at the end and be less flakey
        https://bugs.webkit.org/show_bug.cgi?id=197084

        Test not lifting at the end caused issues for other tests.
        Also the positions were a bit too exact and caused the
        test to be flakey. These new positions should result in more consistent
        behaviour.

        Reviewed by Tim Horton.

        * fast/events/touch/ios/drag-to-autoscroll-in-single-line-editable.html:

2019-04-18  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement API default values
        https://bugs.webkit.org/show_bug.cgi?id=197032

        Reviewed by Myles C. Maxfield.

        Update WebGPU tests to use default values wherever applicable.

        * webgpu/bind-groups.html:
        * webgpu/blend-triangle-strip.html:
        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/color-write-mask-triangle-strip.html:
        * webgpu/compute-squares.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/js/webgpu-functions.js:
        (createBasicDepthTexture):
        * webgpu/texture-triangle-strip.html:
        * webgpu/textures-textureviews.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/whlsl.html:

2019-04-18  Sihui Liu  <sihui_liu@apple.com>

        Blob type cannot be stored correctly in IDB when IDBObjectStore has autoIncrement and keyPath options
        https://bugs.webkit.org/show_bug.cgi?id=196128
        <rdar://problem/49562115>

        Reviewed by Geoffrey Garen.

        * storage/indexeddb/modern/objectstore-autoincrement-types-expected.txt: Added.
        * storage/indexeddb/modern/objectstore-autoincrement-types.html: Added.
        * storage/indexeddb/modern/resources/objectstore-autoincrement-types.js: Added.
        (prepareDatabase.event.target.onsuccess):
        (prepareDatabase):
        (compare):
        (runGetTest):
        (runGetAllTest):
        (get store):
        (testSteps):

2019-04-18  Timothy Hatcher  <timothy@apple.com>

        Unreviewed test gardening.

        * css-dark-mode/older-systems/color-scheme-css-expected.txt: Rebaselined.
        * css-dark-mode/older-systems/color-scheme-meta-expected.txt: Rebaselined.
        * fast/css/style-enumerate-properties.html: Updated count to work on Windows.
        * platform/mac-highsierra/css-dark-mode/prefers-color-scheme-picture-element-expected.txt: Removed.
        * platform/mac-sierra/css-dark-mode/prefers-color-scheme-picture-element-expected.txt: Removed.

2019-04-18  Shawn Roberts  <sroberts@apple.com>

        Unreviewed manual rollout of r244248 and r244409
        Causing assertion failures on Mac WK2 Debug builds
        https://bugs.webkit.org/show_bug.cgi?id=195623
        
        * http/tests/cache/link-prefetch-main-resource-expected.txt: Removed.
        * http/tests/cache/link-prefetch-main-resource-iframe-expected.txt: Removed.
        * http/tests/cache/link-prefetch-main-resource-iframe.html: Removed.
        * http/tests/cache/link-prefetch-main-resource.html: Removed.
        * http/tests/cache/resources/prefetched-main-resource-iframe.php: Removed.
        * http/tests/cache/resources/prefetched-main-resource.php: Removed.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-04-18  Antoine Quint  <graouts@apple.com>

        [Mac] Unreviewed test gardening.

        The test imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame.html is flaky on bots.

        * platform/mac/TestExpectations:

2019-04-18  Antoine Quint  <graouts@apple.com>

        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html
        https://bugs.webkit.org/show_bug.cgi?id=197004

        Reviewed by Antti Koivisto.

        * platform/mac/TestExpectations:

2019-04-17  Antoine Quint  <graouts@apple.com>

        [Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
        https://bugs.webkit.org/show_bug.cgi?id=197006

        Reviewed by Antti Koivisto.

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

2019-04-17  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port

        Following tests expected to fail but passed constantly.

        - css3/masking/clip-path-inset-corners.html
        - fast/box-shadow/box-shadow-with-zero-radius.html
        - storage/indexeddb/database-odd-names.html
        - storage/indexeddb/lazy-index-population.html

        * platform/wincairo/TestExpectations: Unmarked them.

2019-04-17  Timothy Hatcher  <timothy@apple.com>

        Standardize the `<meta name="color-scheme">` separator.
        https://bugs.webkit.org/show_bug.cgi?id=193931

        Reviewed by Simon Fraser.

        * css-dark-mode/color-scheme-meta-expected.txt:
        * css-dark-mode/color-scheme-meta.html:
        * css-dark-mode/older-syntax/supported-color-scheme-meta-expected.txt:
        * css-dark-mode/older-syntax/supported-color-schemes-meta.html:

2019-04-17  Timothy Hatcher  <timothy@apple.com>

        Rename `supported-color-schemes` to `color-scheme`.
        https://bugs.webkit.org/show_bug.cgi?id=197016
        rdar://problem/49980259

        Reviewed by Simon Fraser.

        * css-dark-mode/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
        * css-dark-mode/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
        * css-dark-mode/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
        * css-dark-mode/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes.html.
        * css-dark-mode/color-scheme-parse-expected.txt: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes-expected.txt.
        * css-dark-mode/color-scheme-parse.html: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes.html.
        * css-dark-mode/color-scheme-priority-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority-expected.txt.
        * css-dark-mode/color-scheme-priority.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority.html.
        * css-dark-mode/color-scheme-scrollbar-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar-expected.txt.
        * css-dark-mode/color-scheme-scrollbar.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar.html.
        * css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
        * css-dark-mode/older-syntax/supported-color-schemes-css.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
        * css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
        * css-dark-mode/older-syntax/supported-color-schemes-meta.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes.html.
        * css-dark-mode/older-systems/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt
        * css-dark-mode/older-systems/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html.
        * css-dark-mode/older-systems/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt.
        * css-dark-mode/older-systems/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html.
        * fast/css/style-enumerate-properties.html: Updated property count.

2019-04-17  Justin Fan  <justin_fan@apple.com>

        [Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
        https://bugs.webkit.org/show_bug.cgi?id=196984

        Reviewed by Myles C. Maxfield.

        * webgpu/compute-squares.html: One thread group is enough to process the data in a single pass.

2019-04-17  John Wilander  <wilander@apple.com>

        Add prioritization of ad click conversions and cleaning of sent ad click conversions
        https://bugs.webkit.org/show_bug.cgi?id=196934
        <rdar://problem/49917773>

        Reviewed by Chris Dumez.

        * http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect-expected.txt:
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority-expected.txt:
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority-expected.txt:
        * http/tests/adClickAttribution/resources/getConversionData.php:
        * http/tests/adClickAttribution/resources/redirectToConversion.php:
        * http/tests/adClickAttribution/second-attribution-converted-with-higher-priority-expected.txt: Added.
        * http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html: Added.
        * http/tests/adClickAttribution/second-attribution-converted-with-lower-priority-expected.txt: Added.
        * http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html: Added.
        * http/tests/adClickAttribution/second-conversion-with-higher-priority-expected.txt: Added.
        * http/tests/adClickAttribution/second-conversion-with-higher-priority.html: Added.
        * http/tests/adClickAttribution/second-conversion-with-lower-priority-expected.txt: Added.
        * http/tests/adClickAttribution/second-conversion-with-lower-priority.html: Added.
        * http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt:
        * http/tests/adClickAttribution/send-attribution-conversion-request.html:
        * http/tests/adClickAttribution/store-ad-click-attribution-expected.txt:

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

        REGRESSION (r244220): fast/forms/ios/inputmode-change-update-keyboard.html times out
        https://bugs.webkit.org/show_bug.cgi?id=197027
        <rdar://problem/49959227>

        Reviewed by Megan Gardner.

        Recently, r244220 added a mechanism to disconnect or connect the hardware keyboard from layout tests; adopt this
        to fix several tests that require the software keyboard to be present.

        * fast/events/autoscroll-when-input-is-offscreen.html:
        * fast/forms/ios/inputmode-change-update-keyboard.html:

2019-04-17  Antoine Quint  <graouts@apple.com>

        [Pointer Events WPT] Update WPT tests and provide macOS testdriver
        https://bugs.webkit.org/show_bug.cgi?id=197011
        <rdar://problem/49976553>

        Reviewed by Dean Jackson.

        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget-expected.txt: Added.
        * platform/mac/TestExpectations:

2019-04-17  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Use aria role as a hint whether a tap should result in a synthetic click
        https://bugs.webkit.org/show_bug.cgi?id=196988
        <rdar://problem/49955328>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/tap-on-input-looking-div-with-role-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-looking-div-with-role.html: Added.

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

        REGRESSION (r243926): [iOS] Release assertion when computing editor state during an overflow scroll triggered by layout
        https://bugs.webkit.org/show_bug.cgi?id=197012
        <rdar://problem/49908848>

        Reviewed by Simon Fraser.

        Adds a new layout test to exercise the crash.

        * editing/selection/overflow-scroll-while-selecting-text-expected.txt: Added.
        * editing/selection/overflow-scroll-while-selecting-text.html: Added.

2019-04-17  Alex Christensen  <achristensen@webkit.org>

        [Mac iOS WK2] Layout Test http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=196974

        Reviewed by Brady Eidson.

        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html:
        Make test do one thing at a time to avoid race conditions.
        Clean up state on the server after test is finished to prevent corrupting future test state.

2019-04-17  Zalan Bujtas  <zalan@apple.com>

		[iOS] Unreviewed gardening.

        2 single taps in fast loading subsequent tests are recognized as double tap. Turn off double taps for content observation tests.

        * fast/events/touch/ios/content-observation/0ms-delay-0ms-transition-on-mousemove.html:
        * fast/events/touch/ios/content-observation/0ms-transition-on-touch-start.html:
        * fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove.html:
        * fast/events/touch/ios/content-observation/100ms-transition-on-touch-start.html:
        * fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-mousemove.html:
        * fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-touch-start.html:
        * fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end.html:
        * fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start.html:
        * fast/events/touch/ios/content-observation/350ms-hover-intent.html:
        * fast/events/touch/ios/content-observation/400ms-hover-intent.html:
        * fast/events/touch/ios/content-observation/click-instead-of-hover-simple.html:
        * fast/events/touch/ios/content-observation/clickable-content-is-inside-a-container.html:
        * fast/events/touch/ios/content-observation/crash-on-anonymous-renderer.html:
        * fast/events/touch/ios/content-observation/hover-when-style-change-is-async.html:
        * fast/events/touch/ios/content-observation/hover-while-loading-subframe.html:
        * fast/events/touch/ios/content-observation/iframe-is-shown-on-hover.html:
        * fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html:
        * fast/events/touch/ios/content-observation/move-content-from-offscreen.html:
        * fast/events/touch/ios/content-observation/new-content-covers-tap-target.html:
        * fast/events/touch/ios/content-observation/non-visible-becomes-visible-and-gains-new-renderer.html:
        * fast/events/touch/ios/content-observation/non-visible-content-gains-new-renderer.html:
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left.html:
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition.html:
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove.html:
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition.html:
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart.html:
        * fast/events/touch/ios/content-observation/remove-subframe-while-observing.html:
        * fast/events/touch/ios/content-observation/stuck-with-hover-state.html:
        * fast/events/touch/ios/content-observation/style-recalc-schedule-and-force-relalc.html:
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html:
        * fast/events/touch/ios/content-observation/tap-on-input-type-text-element.html:
        * fast/events/touch/ios/content-observation/transition-on-touch-start-and-remove.html:
        * fast/events/touch/ios/content-observation/visibility-change-after-touch-end.html:
        * fast/events/touch/ios/content-observation/visibility-change-happens-at-the-second-timer.html:
        * fast/events/touch/ios/content-observation/visibility-change-happens-on-timer-hops.html:
        * fast/events/touch/ios/content-observation/visibility-change-happens-while-in-mousemoved.html:
        * fast/events/touch/ios/content-observation/visibility-change-is-max-height-change.html:
        * fast/events/touch/ios/content-observation/visibility-change-on-touch-start-simple.html:
        * fast/events/touch/ios/content-observation/visibility-change-with-image-content.html:
        * fast/events/touch/ios/content-observation/visible-content-gains-new-renderer.html:

2019-04-17  Cathie Chen  <cathiechen@igalia.com>

        Update the test result of resize-observer/eventloop.html.
        https://bugs.webkit.org/show_bug.cgi?id=197001

        Reviewed by Frédéric Wang.

        Since 177484 has landed, the order of requestAnimationFrame and resizeobserver callback is right.
        No need to mark eventloop.html as flaky.

        * TestExpectations:

2019-04-16  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] [WebKit2] Add support for honoring -[UIMenuItem dontDismiss]
        https://bugs.webkit.org/show_bug.cgi?id=196919
        <rdar://problem/41630459>

        Reviewed by Tim Horton.

        Add a new iOS layout test that installs a custom, non-dismissing action in the callout menu that enlarges text.
        The test then activates this custom menu item and checks that the selection rects after triggering this custom
        action are updated, and the callout bar is still showing.

        * editing/selection/ios/selection-after-changing-text-with-callout-menu-expected.txt: Added.
        * editing/selection/ios/selection-after-changing-text-with-callout-menu.html: Added.

        This test additionally suppresses all callout bar menu items except for the custom "Embiggen" action, to ensure
        that the "Embiggen" option can be tapped from the layout test without having to navigate callout bar items by
        tapping on the "Next" and "Show styles" buttons. This latter approach is very challenging to make reliable in
        automation; when navigating submenus in the callout bar, the next button can't be tapped until the current
        callout bar transition animation is complete, but there's no delegate method invoked or notification posted when
        this happens.

        * resources/ui-helper.js:
        (window.UIHelper.isShowingMenu):
        (window.UIHelper.isDismissingMenu):
        (window.UIHelper.rectForMenuAction):
        (window.UIHelper.async.chooseMenuAction):

        Additionally add a few more UIHelper methods.

        (window.UIHelper):

2019-04-16  John Wilander  <wilander@apple.com>

        Set test conditions closer to conversion redirect in LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html
        https://bugs.webkit.org/show_bug.cgi?id=196983
        <rdar://problem/49952679>

        Unreviewed test gardening.

        * http/tests/adClickAttribution/resources/redirectToConversion.php:
        * http/tests/adClickAttribution/send-attribution-conversion-request.html:

2019-04-16  Devin Rousso  <drousso@apple.com>

        Unprefix -webkit-sticky
        https://bugs.webkit.org/show_bug.cgi?id=196962
        <rdar://problem/40903458>

        Reviewed by Simon Fraser.

        * compositing/layer-creation/no-compositing-for-sticky.html:
        * editing/pasteboard/copy-paste-converts-sticky.html:
        * editing/pasteboard/copy-paste-converts-sticky-expected.txt:
        * fast/block/positioning/fixed-container-with-sticky-parent.html:
        * fast/block/sticky-position-containing-block-crash.html:
        * fast/css/sticky/inflow-sticky.html:
        * fast/css/sticky/inline-sticky-abspos-child.html:
        * fast/css/sticky/inline-sticky.html:
        * fast/css/sticky/multiple-layers-sticky-crash.html:
        * fast/css/sticky/parsing-position-sticky-expected.txt:
        * fast/css/sticky/remove-inline-sticky-crash.html:
        * fast/css/sticky/remove-sticky-crash.html:
        * fast/css/sticky/replaced-sticky.html:
        * fast/css/sticky/resources/parsing-position-sticky.js:
        * fast/css/sticky/sticky-as-positioning-container.html:
        * fast/css/sticky/sticky-both-sides.html:
        * fast/css/sticky/sticky-bottom-overflow-padding.html:
        * fast/css/sticky/sticky-left-percentage.html:
        * fast/css/sticky/sticky-left.html:
        * fast/css/sticky/sticky-margins.html:
        * fast/css/sticky/sticky-overflowing.html:
        * fast/css/sticky/sticky-side-margins.html:
        * fast/css/sticky/sticky-stacking-context.html:
        * fast/css/sticky/sticky-stacking-context-expected.html:
        * fast/css/sticky/sticky-table-row-top.html:
        * fast/css/sticky/sticky-table-thead-top.html:
        * fast/css/sticky/sticky-top-margins.html:
        * fast/css/sticky/sticky-top-overflow-container-overflow.html:
        * fast/css/sticky/sticky-top-overflow.html:
        * fast/css/sticky/sticky-top-zoomed.html:
        * fast/css/sticky/sticky-top-zoomed-expected.html:
        * fast/css/sticky/sticky-top.html:
        * fast/css/sticky/sticky-writing-mode-horizontal-bt.html:
        * fast/css/sticky/sticky-writing-mode-vertical-lr.html:
        * fast/css/sticky/sticky-writing-mode-vertical-rl.html:
        * fast/multicol/newmulticol/table-section-crash.html:
        * fast/scrolling/ios/reconcile-layer-position-recursive.html:
        * fast/scrolling/rtl-scrollbars-sticky-document-2.html:
        * fast/scrolling/rtl-scrollbars-sticky-document.html:
        * fast/scrolling/rtl-scrollbars-sticky-iframe-2.html:
        * fast/scrolling/rtl-scrollbars-sticky-iframe.html:
        * fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2.html:
        * fast/scrolling/rtl-scrollbars-sticky-overflow-scroll.html:
        * fast/scrolling/sticky-to-fixed.html:
        * legacy-animation-engine/fast/multicol/newmulticol/table-section-crash.html:
        * scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html:
        * svg/text/select-text-inside-non-static-position.html:
        * tiled-drawing/scrolling/sticky/negative-scroll-offset.html:
        * tiled-drawing/scrolling/sticky/sticky-horizontal.html:
        * tiled-drawing/scrolling/sticky/sticky-layers.html:
        * tiled-drawing/scrolling/sticky/sticky-vertical.html:

2019-04-16  John Wilander  <wilander@apple.com>

        Increase timeout threshold in http/tests/adClickAttribution/send-attribution-conversion-request.html to address flakiness
        https://bugs.webkit.org/show_bug.cgi?id=196970
        <rdar://problem/49945327>

        Unreviewed test gardening.

        * http/tests/adClickAttribution/send-attribution-conversion-request.html:
            Increased test timeout from 2 seconds to 4.

2019-04-16  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed test gardening, rebaseline HAR test after r244294.

        * http/tests/inspector/network/har/har-page-expected.txt:
        * http/tests/inspector/network/har/har-page.html:
        Update for stricter SameSite parsing.

2019-04-16  Shawn Roberts  <sroberts@apple.com>

        media/W3C/video/events/event_progress_manual.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=177663

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:
        * platform/mac/TestExpectations: Updating test expectations

2019-04-16  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Correct a typo in bug URL.

2019-04-16  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK gardening

        * platform/gtk/TestExpectations:
        media/media-controls-accessibility.html times out since r244182.

2019-04-15  Antoine Quint  <graouts@apple.com>

        [iOS] Redundant pointer events causes material design buttons to flush twice
        https://bugs.webkit.org/show_bug.cgi?id=196914
        <rdar://problem/49571860>

        Reviewed by Dean Jackson.

        Add a new test that listens to all pointer event types as well as click, which forces the dispatch of compatibility mouse events
        along with the click which would trigger duplicated pointer events prior to the source changes.

        To ensure the new test added runs smoothly with a preceeding test that also uses ui.tap(), we add a delay to guarantee that no
        double-taps are seen rather two successive single taps.

        * pointerevents/ios/pointer-event-order-expected.txt: Added.
        * pointerevents/ios/pointer-event-order.html: Added.
        * pointerevents/utils.js:
        (const.ui.new.UIController.prototype.tap):

2019-04-15  John Wilander  <wilander@apple.com>

        Add a query string nonce to LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html to address flakiness
        https://bugs.webkit.org/show_bug.cgi?id=196955

        Unreviewed test gardening.

        * http/tests/adClickAttribution/resources/conversionFilePath.php:
        * http/tests/adClickAttribution/resources/conversionReport.php:
        * http/tests/adClickAttribution/resources/getConversionData.php:
        * http/tests/adClickAttribution/send-attribution-conversion-request.html:

2019-04-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: fake value descriptors for promises add a catch handler, preventing "rejectionhandled" events from being fired
        https://bugs.webkit.org/show_bug.cgi?id=196484
        <rdar://problem/49114725>

        Reviewed by Joseph Pecoraro.

        * inspector/runtime/promise-native-getter.html: Added.
        * inspector/runtime/promise-native-getter-expected.txt: Added.

2019-04-15  Shawn Roberts  <sroberts@apple.com>

        storage/indexeddb/modern/gc-closes-database-private.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=194450

        Unreviewed test gardening.

        * platform/win/TestExpectations: Updating test expectations

2019-04-15  Shawn Roberts  <sroberts@apple.com>

        imported/w3c/web-platform-tests/hr-time/test_cross_frame_start.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196944

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating test expecations for flaky failure

2019-04-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: SameSite parsing should be stricter
        https://bugs.webkit.org/show_bug.cgi?id=196927
        <rdar://problem/42291601>

        Reviewed by Devin Rousso.

        * inspector/unit-tests/cookie.html:
        * inspector/unit-tests/cookie-expected.txt:

2019-04-15  John Wilander  <wilander@apple.com>

        Send delayed Ad Click Attribution conversion requests to the click source
        https://bugs.webkit.org/show_bug.cgi?id=196838
        <rdar://problem/47650157>

        Reviewed by Chris Dumez and Youenn Fablet.

        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority-expected.txt:
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority-expected.txt:
        * http/tests/adClickAttribution/resources/conversionFilePath.php: Added.
        * http/tests/adClickAttribution/resources/conversionReport.php: Added.
        * http/tests/adClickAttribution/resources/getConversionData.php: Added.
        * http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt: Added.
        * http/tests/adClickAttribution/send-attribution-conversion-request.html: Added.

2019-04-15  Devin Rousso  <drousso@apple.com>

        REGRESSION (r240644): Layout Test inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=194437
        <rdar://problem/48008005>

        Reviewed by Joseph Pecoraro.

        * inspector/page/overrideSetting-ICECandidateFilteringEnabled.html:
        * inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt:

2019-04-15  Said Abou-Hallawa  <said@apple.com>

        ASSERT fires when removing a disallowed clone from the shadow tree without reseting its corresponding element
        https://bugs.webkit.org/show_bug.cgi?id=196895

        Reviewed by Darin Adler.

        * svg/custom/use-disallowed-element-clear-corresponding-element-expected.txt: Added.
        * svg/custom/use-disallowed-element-clear-corresponding-element.html: Added.

2019-04-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: DOMDebugger: "Attribute Modified" breakpoints pause after the modification occurs for the style attribute
        https://bugs.webkit.org/show_bug.cgi?id=196556
        <rdar://problem/49570681>

        Reviewed by Timothy Hatcher.

        * inspector/dom-debugger/attribute-modified-style.html: Added.
        * inspector/dom-debugger/attribute-modified-style-expected.txt: Added.

2019-04-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: Elements: event listener change events should only be fired for the selected node and it's ancestors
        https://bugs.webkit.org/show_bug.cgi?id=196887
        <rdar://problem/49870627>

        Reviewed by Timothy Hatcher.

        * inspector/dom/event-listener-inspected-node.html: Added.
        * inspector/dom/event-listener-inspected-node-expected.txt: Added.

        * inspector/dom/event-listener-add-remove.html:
        * inspector/dom/event-listener-add-remove-expected.txt:

2019-04-15  Shawn Roberts  <sroberts@apple.com>

        inspector/canvas/recording-webgl-snapshots.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196875

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Updating test expectations

2019-04-15  Shawn Roberts  <sroberts@apple.com>

        inspector/timeline/timeline-recording.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196915

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Updating test expectations for flaky failure

2019-04-15  Shawn Roberts  <sroberts@apple.com>

        Layout tests 
        inspector/heap/imported-snapshot.html
        inspector/heap/snapshot.html are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=155607

        Unreviewed test gardening

        * platform/mac/TestExpectations: Updating expectations for flaky failures

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

        Ensure iOS layout traits are used for media controls in modern compatibility mode
        https://bugs.webkit.org/show_bug.cgi?id=196812
        <rdar://problem/47460637>

        Reviewed by Dean Jackson.

        Add a new test that enforces modern compatibility mode and checks that the iOS controls are used.

        * media/modern-media-controls/media-controller/ios/media-controller-ios-layout-traits-modern-compatibility-mode-expected.txt: Added.
        * media/modern-media-controls/media-controller/ios/media-controller-ios-layout-traits-modern-compatibility-mode.html: Added.

2019-04-14  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo][WKL] Unreviewed test gardening.

        * platform/wincairo-wk1/TestExpectations: Skip animation tests.

2019-04-14  Rob Buis  <rbuis@igalia.com>

        Link prefetch not useful for top-level navigation
        https://bugs.webkit.org/show_bug.cgi?id=195623

        Reviewed by Youenn Fablet.

        Verify that prefetching a cross-domain top-level main resource
        is cached in the prefetch cache and only loaded once, and that non
        top-level prefetches keep the old behavior.

        * http/tests/cache/link-prefetch-main-resource-expected.txt: Added.
        * http/tests/cache/link-prefetch-main-resource-iframe-expected.txt: Added.
        * http/tests/cache/link-prefetch-main-resource-iframe.html: Added.
        * http/tests/cache/link-prefetch-main-resource.html: Added.
        * http/tests/cache/resources/prefetched-main-resource-iframe.php: Added.
        * http/tests/cache/resources/prefetched-main-resource.php: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

2019-04-12  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo][WKL] Unreviewed test gardening.

        * platform/wincairo-wk1/TestExpectations:
        r244182 causes all animations tests to time out.

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

        Unreviewed test gardening for Windows.

        * platform/win/TestExpectations:

2019-04-12  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Make -webkit-overflow-scrolling be a no-op
        https://bugs.webkit.org/show_bug.cgi?id=196803
        rdar://problem/49078202

        Reviewed by Antti Koivisto.

        Rebase some tests, if I thought that non-stacking context overflow was interesting.
        For others, make overflow be stacking context by adding z-index.
        Add <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] --> to those that
        need it.

        * compositing/overflow/scrolling-content-clip-to-viewport.html:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants.html:
        * fast/scrolling/ios/change-scrollability-on-content-resize-nested.html:
        * fast/scrolling/ios/overflow-scroll-inherited-expected.txt:
        * fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html:
        * fast/scrolling/ios/overflow-scrolling-ancestor-clip.html:
        * fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
        * fast/scrolling/ios/reconcile-layer-position-recursive.html:
        * fast/scrolling/ios/scrolling-content-clip-to-viewport.html:
        * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor.html:
        * fast/scrolling/ios/touch-scroll-pointer-events-none.html:
        * fast/scrolling/ios/touch-scroll-visibility-hidden.html:
        * platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor.html:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed.html:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor.html:
        * scrollingcoordinator/scrolling-tree/coordinated-frame.html:
        * scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html:

2019-04-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Software keyboard is shown too frequently on some websites
        https://bugs.webkit.org/show_bug.cgi?id=195856
        <rdar://problem/49191395>

        Reviewed by Darin Adler.

        Fix a failing layout test, which (among other reasons) is currently failing because support for inputmode="none"
        is disabled.

        * fast/forms/ios/inputmode-none-expected.txt:
        * fast/forms/ios/inputmode-none.html:
        * resources/ui-helper.js:

        Add a UIHelper method for attaching or detaching the hardware keyboard.

        (window.UIHelper.setHardwareKeyboardAttached):
        (window.UIHelper):

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

        [macOS WK1] ASSERTION FAILED: formData in WebCore::ResourceRequest::doUpdateResourceHTTPBody()
        https://bugs.webkit.org/show_bug.cgi?id=196864

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Skip test since it consistently crashes, update bug number.

2019-04-11  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Wrong scrolling behavior for nested absolute position elements inside overflow scroll
        https://bugs.webkit.org/show_bug.cgi?id=196146

        Reviewed by Antti Koivisto.
        
        Dump the scrolling tree for various configurations of positioned, overflow and stacking context
        elements.

        * fast/scrolling/ios/overflow-scroll-overlap-6-expected.txt: Progressed results.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow.html: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow.html: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow.html: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html: Added.

2019-04-12  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-flex][css-grid] Fix synthesized baseline
        https://bugs.webkit.org/show_bug.cgi?id=196312

        Reviewed by Javier Fernandez.

        Some of the tests were not checking the right behavior changed them to test the expected one.
        We need new rebaselines for some tests.

        * TestExpectations:
        * css3/flexbox/flexbox-baseline-margins.html:
        * fast/css-grid-layout/grid-baseline-expected.html:
        * fast/css-grid-layout/grid-baseline-margins-1-expected.html: Renamed from LayoutTests/fast/css-grid-layout/grid-baseline-margins-expected.html.
        * fast/css-grid-layout/grid-baseline-margins-1.html: Renamed from LayoutTests/fast/css-grid-layout/grid-baseline-margins.html.
        * fast/css-grid-layout/grid-baseline-margins-2-expected.html: Added.
        * fast/css-grid-layout/grid-baseline-margins-2.html: Added.
        * fast/css-grid-layout/grid-baseline.html: This test is modified and split in two parts as it doesn't fit in the viewport.
        * platform/gtk/css3/flexbox/flexbox-baseline-margins-expected.png:
        * platform/gtk/css3/flexbox/flexbox-baseline-margins-expected.txt:
        * platform/ios/css3/flexbox/flexbox-baseline-margins-expected.png: Added.
        * platform/ios/css3/flexbox/flexbox-baseline-margins-expected.txt:
        * platform/mac/css3/flexbox/flexbox-baseline-margins-expected.png: Added.
        * platform/mac/css3/flexbox/flexbox-baseline-margins-expected.txt:
        * platform/win/css3/flexbox/flexbox-baseline-margins-expected.png: Added.
        * platform/win/css3/flexbox/flexbox-baseline-margins-expected.txt:

2019-04-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] REGRESSION(r243860): Many tests failing
        https://bugs.webkit.org/show_bug.cgi?id=196791

        Reviewed by Joanmarie Diggs.

        Remove expectations for tests that pass now.

        * platform/gtk/TestExpectations:

2019-04-11  Megan Gardner  <megan_gardner@apple.com>

        Fix flaky LayoutTests/fast/events/autoscroll-when-input-is-offscreen.html
        https://bugs.webkit.org/show_bug.cgi?id=196840

        Reviewed by Tim Horton.

        Use more stable test infrastructure to conduct input tests.

        * fast/events/autoscroll-when-input-is-offscreen.html:

2019-04-11  Zalan Bujtas  <zalan@apple.com>

        Add @page margin support
        https://bugs.webkit.org/show_bug.cgi?id=196680
        <rdar://problem/45217707>

        Reviewed by Tim Horton.

        * printing/page-with-10mm-left-margin-expected.pdf: Added.
        * printing/page-with-10mm-left-margin.html: Added.
        * printing/page-with-zero-margin-expected.pdf: Added.
        * printing/page-with-zero-margin.html: Added.

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

        [iOS] Moving backwards by word granularity does not work if the previous line was inside another block element
        https://bugs.webkit.org/show_bug.cgi?id=196670

        Reviewed by Wenson Hsieh.

        Added a test for moving and extending backwards from the beginning of a line with word & sentence granularities,
        and a basic set of tests forSimplifiedBackwardsTextIterator.

        * editing/selection/extend-selection-backward-at-beginning-of-line-by-sentence-granularity-expected.txt: Added.
        * editing/selection/extend-selection-backward-at-beginning-of-line-by-sentence-granularity.html: Added.
        * editing/selection/extend-selection-backward-at-beginning-of-line-by-word-granularity-expected.txt: Added.
        * editing/selection/extend-selection-backward-at-beginning-of-line-by-word-granularity.html: Added.
        * editing/selection/move-selection-backward-at-beginning-of-line-by-sentence-granularity-expected.txt: Added.
        * editing/selection/move-selection-backward-at-beginning-of-line-by-sentence-granularity.html: Added.
        * editing/selection/move-selection-backward-at-beginning-of-line-by-word-granularity-expected.txt: Added.
        * editing/selection/move-selection-backward-at-beginning-of-line-by-word-granularity.html: Added.
        * editing/text-iterator/backwards-text-iterator-basic-expected.txt: Added.
        * editing/text-iterator/backwards-text-iterator-basic.html: Added.

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

        Allow the MediaSource API to be enabled via website policy
        https://bugs.webkit.org/show_bug.cgi?id=196429
        <rdar://problem/48774333>

        Reviewed by Tim Horton.

        Add an on-device layout test to ensure that enabling modern compability mode also enables MSE.

        * TestExpectations:
        * fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode-expected.txt: Added.
        * fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/ios/TestExpectations:

2019-04-11  Devin Rousso  <drousso@apple.com>

        Web Inspector: Timelines: can't reliably stop/start a recording
        https://bugs.webkit.org/show_bug.cgi?id=196778
        <rdar://problem/47606798>

        Reviewed by Timothy Hatcher.

        * inspector/timeline/debugger-paused-while-recording.html:
        * inspector/timeline/exception-in-injected-script-while-recording.html:
        * inspector/timeline/line-column.html:
        * inspector/timeline/recording-start-stop-timestamps.html:
        * inspector/timeline/resources/timeline-event-utilities.js:
        * inspector/timeline/setInstruments-programmatic-capture.html:
        * inspector/timeline/setInstruments-programmatic-capture-expected.txt:
        * inspector/timeline/timeline-recording.html:

2019-04-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Layout test accessibility/aria-hidden-false-works-in-subtrees.html fails after r184890
        https://bugs.webkit.org/show_bug.cgi?id=146718
        <rdar://problem/21722487>

        Reviewed by Joanmarie Diggs.

        Update test to ATK behavior, rebaseline it and remove the expectations.

        * accessibility/aria-hidden-false-works-in-subtrees.html:
        * platform/gtk/TestExpectations:
        * platform/gtk/accessibility/aria-hidden-false-works-in-subtrees-expected.txt:

2019-04-10  Said Abou-Hallawa  <sabouhallawa@apple.com>

        requestAnimationFrame should execute before the next frame
        https://bugs.webkit.org/show_bug.cgi?id=177484

        Reviewed by Simon Fraser.

        * TestExpectations:
        There is a slight difference between the actual DRT and the expected DRT
        due to animation timing change. But these two tests are not animating
        correctly if they are opened in Safari with web animation turned on. 

        * accessibility/mac/selection-notification-focus-change-expected.txt:
        * accessibility/mac/selection-notification-focus-change.html:
        Remove the debug statements form notificationCallback() since the number
        of times this function is called back and the order of notifications are
        not defined. This test has been flaky and some trials were made to make 
        it more reliable. With this change it became flaky again.

        * animations/animation-multiple-callbacks-timestamp.html:
        Fix variable names used by an error message.

        * animations/no-style-recalc-during-accelerated-animation-expected.txt:
        * animations/no-style-recalc-during-accelerated-animation.html:
        One extra styleReclc was incurred due to the document styleRecalcTimer.
        I think this timer is not needed anymore. I will look at removing it in
        a separate patch.

        * animations/resources/animation-test-helpers.js:
        (waitForAnimationToStart):
        The expectation that animation will start at the beginning of the next 
        event loop is not true anymore. The animation will start at the time the
        requestAnimationFrame fires.

        * compositing/video/video-clip-change-src.html:
        This test loads a video data and pushes it to the encoder. Originally it
        used to wait 150 ms after receiving the second canplaythrough. I had to 
        change this timing to 250 ms.

        * css3/filters/composited-during-animation.html:
        Ditto. setTimeout({...}, 0) versus requestAnimationFrame.

        * media/media-controls-accessibility.html:
        Updating the accessibility button happens asynchronously, see 
        [WebAccessibilityObjectWrapper accessibilityPerformPressAction]. Due to
        changing the page update timing, this test became flaky. Originally it used
        to setTimeout({...}, 10) to ensure the stringValue of the mutate button
        was changed after it was pressed. The fix is to loop using rAF till the
        stringValue changes.

        * platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt: Removed.
        The number of time notificationCallback() is called and the order of
        notifications are not defined. And this is why we have two expected files:
        one for WK1 and the other for WK2. Since the test is now simplified, we
        can get rid of this duplication. We will test the minimum reliable thing
        we can test.

2019-04-10  Ryosuke Niwa  <rniwa@webkit.org>

        Nullptr crash in CompositeEditCommand::moveParagraphs when root editable element goes away
        https://bugs.webkit.org/show_bug.cgi?id=193027

        Reviewed by Wenson Hsieh.

        Added a regression test. Note that the test works around debug assertions in moveParagraphs.
        These assertions are generally correct & useful unless the website does something crazy like
        removing the contenteditable content attribute during editing operations.

        * editing/deleting/merge-paragraphs-null-root-editable-element-crash-expected.txt: Added.
        * editing/deleting/merge-paragraphs-null-root-editable-element-crash.html: Added.

2019-04-10  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:

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

        [ Mojave WK2 iOS Sim ] Layout Test http/wpt/cache-storage/quota-third-party.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196358
        <rdar://problem/49388128>

        Unreviewed.

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

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

        SWClientConnection should not double hop to fire some events
        https://bugs.webkit.org/show_bug.cgi?id=196735

        Reviewed by Alex Christensen.

        * platform/mac-wk2/TestExpectations:

2019-04-10  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION (r238602): Elements: deleting the last child of a collapsed parent selects the parent's next sibling
        https://bugs.webkit.org/show_bug.cgi?id=192711
        <rdar://problem/46738990>

        Reviewed by Timothy Hatcher.

        Original patch by Matt Baker <mattbaker@apple.com>.

        * inspector/table/table-remove-rows.html:
        * inspector/table/table-remove-rows-expected.txt:

2019-04-10  Devin Rousso  <drousso@apple.com>

        Web Inspector: Elements tab: multiple selection lost after navigating to another tab
        https://bugs.webkit.org/show_bug.cgi?id=192681
        <rdar://problem/46709392>

        Reviewed by Timothy Hatcher.

        Orginal patch by Matt Baker <mattbaker@apple.com>.

        * inspector/tree-outline/tree-outline-selection.html: Added.
        * inspector/tree-outline/tree-outline-selection-expected.txt: Added.
        Add `TreeOutline` tests for single and multiple selection.

        * inspector/unit-tests/set-utilities.html:
        * inspector/unit-tests/set-utilities-expected.txt:
        Add tests for `Set.prototype.lastValue`.

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

        Layout Test http/wpt/fetch/response-opaque-clone.html is sometimes timing out on iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=194525
        <rdar://problem/48012229>

        Reviewed by Alex Christensen.

        Test is no longer flaky on MacOS.
        As per flakiness dashboard, it sometimes times out on iOS simulator.
        It sometimes passes after running for 20 seconds.
        Mark it as Slow and improve the test to output more sub-tests.
        Removed unnecessary removal of cache since test runner will clear them at the end of the test.

        * http/wpt/fetch/response-opaque-clone-expected.txt:
        * http/wpt/fetch/response-opaque-clone.html:
        * platform/ios-simulator-wk2/TestExpectations:

2019-04-10  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Indexed drawing and GPUCommandEncoder crash prevention
        https://bugs.webkit.org/show_bug.cgi?id=196758

        Reviewed by Dean Jackson.

        Add draw-indexed-triangles to test drawing a green square using GPURenderPassEncoder::setIndexBuffer and drawIndexed.

        * webgpu/draw-indexed-triangles-expected.html: Added.
        * webgpu/draw-indexed-triangles.html: Added.

2019-04-10  Megan Gardner  <megan_gardner@apple.com>

        Fix text autoscrolling when typing in modern webkit
        https://bugs.webkit.org/show_bug.cgi?id=196718

        Reviewed by Tim Horton.

        * fast/events/autoscroll-when-input-is-offscreen-expected.txt: Added.
        * fast/events/autoscroll-when-input-is-offscreen.html: Added.
        * fast/events/autoscroll-with-software-keyboard-expected.txt: Added.
        * fast/events/autoscroll-with-software-keyboard.html: Added.

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

        Delay initialization of quota users until the first quota request
        https://bugs.webkit.org/show_bug.cgi?id=196467

        Reviewed by Chris Dumez.

        Unflake cache storage tests.

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

2019-04-10  Philippe Normand  <pnormand@igalia.com>

        there is no vp8 support in youtube.com/html5 page with libwebkit2gtk 2.24 (MSE enabled)
        https://bugs.webkit.org/show_bug.cgi?id=196615

        Reviewed by Xabier Rodriguez-Calvar.

        Update WPE baselines and add/unskip the
        imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html test in GTK.

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt: Copied from LayoutTests/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/media-elements/mime-types/canPlayType-expected.txt:

2019-04-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [ATK] Defer the emision of AtkObject::children-changed signal after layout is done
        https://bugs.webkit.org/show_bug.cgi?id=187948

        Reviewed by Michael Catanzaro.

        Remove expectations of accessibility/children-changed-sends-notification.html that passes now.

        * platform/gtk/TestExpectations:

2019-04-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [ATK] Test accessibility/insert-children-assert.html is crashing since added in r216980
        https://bugs.webkit.org/show_bug.cgi?id=172281
        <rdar://problem/37030990>

        Reviewed by Joanmarie Diggs.

        Update the test to expect the whole content text on atk and remove the test expectations.

        * accessibility/insert-children-assert.html:
        * platform/gtk/TestExpectations:

2019-04-09  John Wilander  <wilander@apple.com>

        Add Resource Load Statistics test case for Ping
        https://bugs.webkit.org/show_bug.cgi?id=196748

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource-expected.txt: Added.
        * http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html: Added.

2019-04-09  Megan Gardner  <megan_gardner@apple.com>

        Turn on editing test that should pass now
        https://bugs.webkit.org/show_bug.cgi?id=196747
        <rdar://problem/38779179>

        Reviewed by Tim Horton.

        Just turning on a test that needed to be turns off for a while due to compatibility changes
        with the system.

        * platform/ios-wk2/TestExpectations:

2019-04-09  Zalan Bujtas  <zalan@apple.com>

        [AutoSizing] Avoid making text paragraphs scroll horizontally when there is a wide table
        https://bugs.webkit.org/show_bug.cgi?id=196743
        <rdar://problem/43897551>

        Reviewed by Tim Horton.

        * css3/viewport-percentage-lengths/vh-auto-size-expected.html:
        * css3/viewport-percentage-lengths/vh-auto-size.html:
        * fast/dynamic/crash-subtree-layout-when-auto-size-enabled.html:
        * fast/dynamic/mail-autosize-viewport-unit.html:

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

        [iPad] Should open popover when the spacebar is pressed
        https://bugs.webkit.org/show_bug.cgi?id=196360
        <rdar://problem/49389129>

        Reviewed by Brent Fulgham.

        Add an iPad-specific test to ensure that pressing the spacebar opens the popover and scrolls
        the form control into view.

        * fast/forms/ios/ipad/open-picker-using-keyboard-expected.txt: Added.
        * fast/forms/ios/ipad/open-picker-using-keyboard.html: Added.
        * platform/ios/TestExpectations: Skip tests in fast/forms/ios/ipad. We will unskip for iPad below.
        * platform/ipad/TestExpectations: Mark tests in fast/forms/ios/ipad as PASS so we run them.
        * resources/ui-helper.js:
        (window.UIHelper.waitForPopoverToPresent):
        (window.UIHelper.waitForPopoverToDismiss):

2019-04-09  Youenn Fablet  <youenn@apple.com>

        Refresh WPT service worker expectations
        https://bugs.webkit.org/show_bug.cgi?id=196732

        Reviewed by Alex Christensen.

        * TestExpectations:

2019-04-09  Justin Fan  <justin_fan@apple.com>

        [Web GPU] GPURenderPassEncoder updates: setBlendColor, setViewport, setScissorRect
        https://bugs.webkit.org/show_bug.cgi?id=196719

        Reviewed by Myles C. Maxfield.

        Add blend-color-triangle-strip to set and blend with a custom blend color on the renderpass encoder.
        Add viewport-scissor-rect-triangle-strip to draw a checkerboard by restricting the drawing viewport or scissor rectangle.

        * webgpu/blend-color-triangle-strip.html: Added.
        * webgpu/js/webgpu-functions.js:
        (beginBasicRenderPass):
        * webgpu/viewport-scissor-rect-triangle-strip-expected.html: Added.
        * webgpu/viewport-scissor-rect-triangle-strip.html: Added.

2019-04-09  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r239698.
        <rdar://problem/47223615>

        * http/tests/inspector/network/resource-security-connection.html:
        Security connection information is sent as part of the metrics, not the response.

2019-04-09  John Wilander  <wilander@apple.com>

        Pick up Ad Click Attribution conversions in NetworkResourceLoader::willSendRedirectedRequest()
        https://bugs.webkit.org/show_bug.cgi?id=196558
        <rdar://problem/47650245>

        Reviewed by Youenn Fablet.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
           Enhanced the use of AdClickAttribution::MaxEntropy.
        * http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect-expected.txt: Added.
        * http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect.html: Added.
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority-expected.txt: Added.
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority.html: Added.
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority-expected.txt: Added.
        * http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority.html: Added.
        * http/tests/adClickAttribution/resources/redirectToConversion.php: Added.
        * http/tests/adClickAttribution/resources/redirectToConversionOnIPAddress.php: Added.
        * platform/ios-wk2/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
           Enhanced the use of AdClickAttribution::MaxEntropy.

2019-04-09  Shawn Roberts  <sroberts@apple.com>

        inspector/canvas/css-canvas-clients.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=174272

        Unreviewed test gardening

        * platform/mac/TestExpectations: Updating expectations to unskip test and just mark as a flaky failure

2019-04-09  Shawn Roberts  <sroberts@apple.com>

        inspector/console/console-time.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=158006

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Updating expecations for flaky failure

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

        [ Mac ] REGRESSION (r237587) Layout Test compositing/visible-rect/animated-from-none.html is flaky text diff failure
        https://bugs.webkit.org/show_bug.cgi?id=194798
        <rdar://problem/48181898>

        Reviewed by Dean Jackson.

        When using the Web Animations engine, the best way to run code as an animation start is to use the "ready" promise, whereas
        DOM events are dispatched asynchronously and, in the case of this test, might have an animation progress that is greater
        than 0 and yield an animated transform that isn't quite the identity matrix.

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

2019-04-09  Jer Noble  <jer.noble@apple.com>

        Add test for fix of #196095
        https://bugs.webkit.org/show_bug.cgi?id=196097

        Reviewed by Eric Carlson.

        * media/track/track-in-band-metadata-display-order-expected.txt: Added.
        * media/track/track-in-band-metadata-display-order.html: Added.

2019-04-08  Chris Fleizach  <cfleizach@apple.com>

        AX: Automatically compute accessibility labels for Apple Pay buttons
        https://bugs.webkit.org/show_bug.cgi?id=196661

        Reviewed by Joanmarie Diggs.

        * accessibility/mac/apple-pay-labels-expected.txt: Added.
        * accessibility/mac/apple-pay-labels.html: Added.
        * accessibility/mac/apple-pay-session-v4-expected.txt: Added.
        * accessibility/mac/apple-pay-session-v4.html: Added.

2019-04-08  Youenn Fablet  <youenn@apple.com>

        Add a test to check for the service worker process name
        https://bugs.webkit.org/show_bug.cgi?id=196621

        Reviewed by Chris Dumez.

        * http/wpt/service-workers/online-worker.js:
        (async.doTest):

2019-04-08  Shawn Roberts  <sroberts@apple.com>

        fast/parser/xml-error-adopted.xml is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=186581

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2019-04-08  Shawn Roberts  <sroberts@apple.com>

        Fixed a typo on a test expectation
        https://bugs.webkit.org/show_bug.cgi?id=187391

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating test expectations

2019-04-08  Shawn Roberts  <sroberts@apple.com>

        inspector/canvas/css-canvas-clients.html is a constant timeout/failure
        https://bugs.webkit.org/show_bug.cgi?id=174272

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Updating test expectations to skip test

2019-04-08  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, rolling in r243948 with test fix
        https://bugs.webkit.org/show_bug.cgi?id=196486

        The test relied on the wrong EOF token's offset. This patch also fixes the test.

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

2019-04-08  Antti Koivisto  <antti@apple.com>

        Update touch-action region on property changes
        https://bugs.webkit.org/show_bug.cgi?id=196608

        Reviewed by Simon Fraser.

        * pointerevents/ios/touch-action-region-dynamic-expected.txt: Added.
        * pointerevents/ios/touch-action-region-dynamic.html: Added.

2019-04-08  Javier Fernandez  <jfernandez@igalia.com>

        Implement white-space:break-spaces value
        https://bugs.webkit.org/show_bug.cgi?id=177327

        Reviewed by Myles Maxfield and Zalan Bujtas.

        Removed many failure expectations of tests that pass now thanks to this change.

        The overflow-wrap-break-word-003.html tests fails in mac and iOS platforms due to an issue related to
        how we compute widths using 'ch' units and 'monospace' fonts. I filed bug #196169 to report the specific
        case of this test (break-word+pre-wrap) but the root cause it's probably the bug #196353.

        I have submitted a PR [1] to the Web Platform Tests to change several tests that failed only if the
        monospace font is used, but pass with the Ahem font. Additionally, I've requested another PR [2] to
        add new layout tests, with the same case than overflow-wrap-break-word-003.html but using the Ahem
        font.

        [1] https://github.com/web-platform-tests/wpt/pull/16137
        [2] https://github.com/web-platform-tests/wpt/pull/16124

        * TestExpectations: Removed many Failure entries on tests that pass now thanks to this change.
        * platform/mac/TestExpectations: Added one Failure entry and filed the corresponding bug report.

2019-04-08  Antoine Quint  <graouts@apple.com>

        [Web Animations] JS wrapper may be deleted while animation is yet to dispatch its finish event
        https://bugs.webkit.org/show_bug.cgi?id=196118
        <rdar://problem/46614137>

        Reviewed by Chris Dumez.

        Add a test that starts a short animation, sets a custom property on it, registers a "finish" event listener on it and deletes
        the sole reference to it in the JS world before triggering garbage collection. Prior to this fix, this test would time out
        because the JS wrapper would be garbage-collected prior to the animation completing and thus the event listener would not
        be called. To complete successfully, this test checks that it receives the event and its target is the same animation object
        that was originally created by checking the custom property is still set.

        We also make sure that a test, which was found to have regressed with a previous version of this patch, uses the animation
        engine that it is expected to be testing.

        * legacy-animation-engine/animations/resume-after-page-cache.html:
        * webanimations/js-wrapper-kept-alive-expected.txt: Added.
        * webanimations/js-wrapper-kept-alive.html: Added.

2019-04-08  Eric Liang  <ericliang@apple.com>

        AX: <svg> elements with labels and no accessible contents are exposed as empty AXGroups
        https://bugs.webkit.org/show_bug.cgi?id=156774

        Reviewed by Chris Fleizach.

        Added tests that verify svgs shapes that are labelled are exposed as images.
        * accessibility/resources/apple-logo.svg: Added.
        * accessibility/svg-shape-labelled-expected.txt: Added.
        * accessibility/svg-shape-labelled.html: Added.

2019-04-08  Shawn Roberts  <sroberts@apple.com>

        Layout tests imported/w3c/IndexedDB-private-browsing/idbobjectstore_createIndex7-event_order.html
        imported/w3c/IndexedDB-private-browsing/idbobjectstore_createIndex6-event_order.html are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=195961

        Unreviewed test gardening

        * platform/mac-wk2/TestExpectations: Updating test expectations for Debug flaky failure

2019-04-06  Antti Koivisto  <antti@apple.com>

        Combine event and touch action regions into a single class
        https://bugs.webkit.org/show_bug.cgi?id=196644
        <rdar://problem/49643614>

        Reviewed by Darin Adler.

        * pointerevents/ios/touch-action-region-basic-expected.txt:
        * pointerevents/ios/touch-action-region-layers-expected.txt:
        * pointerevents/ios/touch-action-region-pan-x-y-expected.txt:

2019-04-05  Yongjun Zhang  <yongjun_zhang@apple.com>

        We should pass minimumEffectiveDeviceWidth to web process on new page creation.
        https://bugs.webkit.org/show_bug.cgi?id=196077
        <rdar://problem/49108202>

        Reviewed by Chris Dumez.

        Add a layout test to verify the page shrinks to fit the window width when ignoreMetaViewport
        flag is turned on.

        * fast/viewport/ios/shrink-to-fit-for-page-without-viewport-meta-expected.txt: Added.
        * fast/viewport/ios/shrink-to-fit-for-page-without-viewport-meta.html: Added.

2019-04-05  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Deactivate the audio session before the WebProcess suspends.
        https://bugs.webkit.org/show_bug.cgi?id=196658

        Reviewed by Eric Carlson.

        * platform/mac/media/audio-session-deactivated-when-suspended-expected.txt: Added.
        * platform/mac/media/audio-session-deactivated-when-suspended.html: Added.

2019-04-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: TestSuite test cases should have their own timeout to ensure tests fail with output instead of timeout by test runner
        https://bugs.webkit.org/show_bug.cgi?id=162814
        <rdar://problem/28574102>

        Reviewed by Brian Burg.

        * inspector/unit-tests/async-test-suite.html:
        * inspector/unit-tests/async-test-suite-expected.txt:
        * inspector/unit-tests/sync-test-suite.html:
        * inspector/unit-tests/sync-test-suite-expected.txt:

        * http/tests/inspector/network/set-resource-caching-disabled-disk-cache-expected.txt:
        * inspector/canvas/recording-2d.html:
        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl.html:
        * inspector/canvas/resources/shaderProgram-utilities.js:
        (TestPage.registerInitializer.whenProgramAdded): Added.
        (TestPage.registerInitializer.whenProgramRemoved): Added.
        (TestPage.registerInitializer.window.initializeTestSuite):
        (TestPage.registerInitializer.window.addSimpleTestCase):
        (TestPage.registerInitializer.window.addParentCanvasRemovedTestCase):
        (TestPage.registerInitializer.awaitProgramAdded): Added.
        (TestPage.registerInitializer.awaitProgramRemoved): Added.
        * inspector/console/command-line-api-expected.txt:
        * inspector/console/heap-snapshot.html:
        * inspector/debugger/async-stack-trace-truncate-expected.txt:
        * inspector/debugger/pause-for-internal-scripts-expected.txt:
        * inspector/formatting/resources/utilities.js:
        (TestPage.registerInitializer.window.addFormattingTests):

2019-04-05  Ryan Haddad  <ryanhaddad@apple.com>

        [Mac WK2 iOS Sim] Layout Test imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196633

        Unreviewed test gardening.

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

2019-04-05  Shawn Roberts  <sroberts@apple.com>

        editing/execCommand/print.html is crashing on iOS Debug
        https://bugs.webkit.org/show_bug.cgi?id=196654

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Skipping test on iOS Debug while waiting for a fix

2019-04-05  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Unreviewed gardening, update unexpected passes

        * platform/wpe/TestExpectations:

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

        Simple iframe scrolling test fails to get a composited scrolling frame in WebKitTestRunnerApp
        https://bugs.webkit.org/show_bug.cgi?id=196635

        Reviewed by Antti Koivisto.

        * scrollingcoordinator/ios/programmatic-frame-scroll-expected.html: Added.
        * scrollingcoordinator/ios/programmatic-frame-scroll.html: Added.

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

        [iOS WK2] REGRESSION (r242687): Programmatic scroll of overflow scroll results in bad rendering
        https://bugs.webkit.org/show_bug.cgi?id=195584

        Reviewed by Zalan Bujtas.

        Testing of programmatic scrolls in frames is prevented by webkit.org/b/196635.

        * scrollingcoordinator/ios/programmatic-overflow-scroll-expected.html: Added.
        * scrollingcoordinator/ios/programmatic-overflow-scroll.html: Added.
        * scrollingcoordinator/ios/programmatic-page-scroll-expected.html: Added.
        * scrollingcoordinator/ios/programmatic-page-scroll.html: Added.

2019-04-04  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r243868.

        Causing timeouts failures on several queues

        Reverted changeset:

        "[Web Animations] JS wrapper may be deleted while animation is
        yet to dispatch its finish event"
        https://bugs.webkit.org/show_bug.cgi?id=196118
        https://trac.webkit.org/changeset/243868

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

        Unreviewed, rolling out r243807 and r243824.
        https://bugs.webkit.org/show_bug.cgi?id=196611

        Test added is a flaky timeout on iOS Simulator, 3 tests
        unskipped are flaky failures (Requested by ShawnRoberts on
        #webkit).

        Reverted changesets:

        "Blob type cannot be stored correctly in IDB when
        IDBObjectStore has autoIncrement and keyPath options"
        https://bugs.webkit.org/show_bug.cgi?id=196128
        https://trac.webkit.org/changeset/243807

        "Follow up fix for r243807: Use MarkedArgumentBuffer instead
        of Vector for JSValue"
        https://bugs.webkit.org/show_bug.cgi?id=196547
        https://trac.webkit.org/changeset/243824

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

        [MediaStream] Host should be able to mute screen capture and camera/microphone independently
        https://bugs.webkit.org/show_bug.cgi?id=196555
        <rdar://problem/47303865>

        Reviewed by Youenn Fablet.

        * fast/mediastream/media-stream-page-muted-expected.txt: Added.
        * fast/mediastream/media-stream-page-muted.html: Added.
        * fast/mediastream/media-stream-track-interrupted.html: Read page muted state before
        interrupting capture track because the page state now changes immediately.
        * fast/mediastream/media-stream-track-muted.html: Ditto, for muting.

2019-04-04  Antti Koivisto  <antti@apple.com>

        Compute accurate regions for touch-action
        https://bugs.webkit.org/show_bug.cgi?id=196536
        <rdar://problem/49516022>

        Reviewed by Simon Fraser.

        * pointerevents/ios/touch-action-region-basic-expected.txt: Added.
        * pointerevents/ios/touch-action-region-basic.html: Added.
        * pointerevents/ios/touch-action-region-layers-expected.txt: Added.
        * pointerevents/ios/touch-action-region-layers.html: Added.
        * pointerevents/ios/touch-action-region-pan-x-y-expected.txt: Added.
        * pointerevents/ios/touch-action-region-pan-x-y.html: Added.

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

        [css-grid] Scroll reset position when updating inner html on content
        https://bugs.webkit.org/show_bug.cgi?id=191506

        Unreviewed gardening.

        The problem described in this bug was fixed in r243687 (webkit.org/b/191506).
        This test was still marked as Failure but it has been passing since then.

        * TestExpectations: Remove fast/css-grid-layout/grid-item-scroll-position.html
        as it's passing now.

2019-04-04  Shawn Roberts  <sroberts@apple.com>

        scrollingcoordinator/ios/ui-scroll-fixed.html is a flakky failure
        https://bugs.webkit.org/show_bug.cgi?id=196612

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Changing expectations for flaky image failure

2019-04-04  Antoine Quint  <graouts@apple.com>

        [macOS WK1] Layout Test webanimations/accelerated-transition-interrupted-on-composited-element.html is a flaky image failure
        https://bugs.webkit.org/show_bug.cgi?id=189678
        <rdar://problem/44621674>

        Reviewed by Dean Jackson.

        We make the test sturdier by waiting for two rAFs instead of just one to wait until animations have been updated (one rAF)
        and accelerated animations have been committed (two rAFs).

        We also use the "transitioncancel" event to determine the transition has been interrupted rather than using a rAF callback.

        * webanimations/accelerated-transition-interrupted-on-composited-element.html:

2019-04-04  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Unreviewed gardening
        
        Remove tests that are expected to fail but pass.

        * platform/wpe/TestExpectations:

2019-04-04  Antoine Quint  <graouts@apple.com>

        REGRESSION (r236501?): Layout Test compositing/geometry/limit-layer-bounds-opacity-transition.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=190210
        <rdar://problem/45045989>

        Unreviewed.

        The flakiness dashboard shows that this test hasn't been flaky for a few weeks, reverting the flaky expectation.

        * platform/mac/TestExpectations:

2019-04-04  Antoine Quint  <graouts@apple.com>

        [Web Animations] JS wrapper may be deleted while animation is yet to dispatch its finish event
        https://bugs.webkit.org/show_bug.cgi?id=196118
        <rdar://problem/46614137>

        Reviewed by Ryosuke Niwa.

        Add a test that starts a short animation, sets a custom property on it, registers a "finish" event listener on it and deletes
        the sole reference to it in the JS world before triggering garbage collection. Prior to this fix, this test would time out
        because the JS wrapper would be garbage-collected prior to the animation completing and thus the event listener would not
        be called. To complete successfully, this test checks that it receives the event and its target is the same animation object
        that was originally created by checking the custom property is still set.

        * legacy-animation-engine/animations/resume-after-page-cache.html:
        * webanimations/js-wrapper-kept-alive-expected.txt: Added.
        * webanimations/js-wrapper-kept-alive.html: Added.

2019-04-03  Timothy Hatcher  <timothy@apple.com>

        Update AutoFill field icons to be SVG instead of PNG images.
        https://bugs.webkit.org/show_bug.cgi?id=196557
        rdar://problem/48292514

        Reviewed by Tim Horton.

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

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

        REGRESSION (r220717): Assertion fires when animating an SVG rounded corner rect till it collapses
        https://bugs.webkit.org/show_bug.cgi?id=196518

        Reviewed by Simon Fraser.

        * svg/animations/animate-rounded-corner-rect-zero-height-expected.txt: Added.
        * svg/animations/animate-rounded-corner-rect-zero-height.svg: Added.

2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>

        -apple-trailing-word is needed for browser detection
        https://bugs.webkit.org/show_bug.cgi?id=196575

        Unreviewed.

        * fast/text/trailing-word-detection-expected.txt: Added.
        * fast/text/trailing-word-detection.html: Added.
        * platform/gtk/TestExpectations:
        * platform/win/TestExpectations:

2019-04-03  Shawn Roberts  <sroberts@apple.com>

        tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe.html is a flaky failure and timeout
        https://bugs.webkit.org/show_bug.cgi?id=196115

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky test

2019-04-03  Michael Saboff  <msaboff@apple.com>

        REGRESSION (r243642): com.apple.JavaScriptCore crash in JSC::RegExpObject::execInline
        https://bugs.webkit.org/show_bug.cgi?id=196477

        Reviewed by Keith Miller.

        Updated the test with a couple more test cases to test a few variants of this bug.
        Also added a couple of non-greedy counted non-BMP character class tests that don't have
        the bug just to be sure.

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

2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Documents can be destroyed before their CSSFontFaceSet is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=195830

        Reviewed by Darin Adler.

        * fast/text/font-face-set-destroy-document-expected.html: Added.
        * fast/text/font-face-set-destroy-document.html: Added.

2019-04-03  Shawn Roberts  <sroberts@apple.com>

        http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=194164

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky timeout

2019-04-03  Shawn Roberts  <sroberts@apple.com>

        Rebaseline scrollingcoordinator/scrolling-tree/fixed-inside-frame.html
        https://bugs.webkit.org/show_bug.cgi?id=195254

        Unreviewed test gardening.

        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt: Rebaselined test

2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove support for -apple-trailing-word
        https://bugs.webkit.org/show_bug.cgi?id=196525

        Reviewed by Zalan Bujtas.

        This CSS property is nonstandard and not used.

        * fast/text/trailing-word-expected.html: Removed.
        * fast/text/trailing-word.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/mac/fast/text/trailing-word-parse-expected.txt: Removed.
        * platform/mac/fast/text/trailing-word-parse.html: Removed.
        * platform/win/TestExpectations:

2019-04-03  Chris Dumez  <cdumez@apple.com>

        Remove legacy webkitRequestAnimationFrame time quirk
        https://bugs.webkit.org/show_bug.cgi?id=196458
        <rdar://problem/49490207>

        Reviewed by Simon Fraser.

        Rebaseline webkitRequestAnimationFrame layout test now that we log a deprecation
        warning.

        * fast/animation/request-animation-frame-prefix-expected.txt:

2019-04-03  Alex Christensen  <achristensen@webkit.org>

        Resurrect and fix layout test http/tests/adClickAttribution/store-ad-click-attribution.html
        https://bugs.webkit.org/show_bug.cgi?id=196476

        Reviewed by Chris Dumez.

        * http/tests/adClickAttribution/store-ad-click-attribution-expected.txt:

2019-04-03  Daniel Bates  <dabates@apple.com>

        [iOS] Should be able to dismiss picker or popover using the keyboard
        https://bugs.webkit.org/show_bug.cgi?id=196272
        <rdar://problem/48943170>

        Reviewed by Wenson Hsieh.

        Add test to ensure that pressing Escape or Command + . dismisses a picker.

        * fast/forms/ios/dismiss-picker-using-keyboard-expected.txt: Added.
        * fast/forms/ios/dismiss-picker-using-keyboard.html: Added.

2019-04-03  Sihui Liu  <sihui_liu@apple.com>

        Blob type cannot be stored correctly in IDB when IDBObjectStore has autoIncrement and keyPath options
        https://bugs.webkit.org/show_bug.cgi?id=196128

        Reviewed by Geoffrey Garen.

        * TestExpectations:
        * storage/indexeddb/modern/objectstore-autoincrement-types-expected.txt: Added.
        * storage/indexeddb/modern/objectstore-autoincrement-types.html: Added.
        * storage/indexeddb/modern/resources/objectstore-autoincrement-types.js: Added.
        (next):
        (prepareDatabase.event.target.onsuccess):
        (prepareDatabase):
        (testSteps):

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

        Resetting quota should take into account third party origins
        https://bugs.webkit.org/show_bug.cgi?id=196462

        Reviewed by Geoffrey Garen.

        * http/wpt/cache-storage/quota-third-party.https-expected.txt:
        * http/wpt/cache-storage/quota-third-party.https.html:
        * platform/mac-wk2/TestExpectations:

2019-04-03  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Unreviewed gardening, update test expectations

        * platform/gtk/TestExpectations:

2019-04-03  Michael Catanzaro  <mcatanzaro@igalia.com>

        Get rid of HTMLInputElement::setEditingValue
        https://bugs.webkit.org/show_bug.cgi?id=196402

        Reviewed by Darin Adler.

        * fast/forms/editing-value-expected.txt: Removed.
        * fast/forms/editing-value-null-renderer-expected.txt: Removed.
        * fast/forms/editing-value-null-renderer.html: Removed.
        * fast/forms/editing-value.html: Removed.

2019-04-03  Shawn Roberts  <sroberts@apple.com>

        The following layout tests are flaky failures
        imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html
        imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html
        imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/error-codes/error.html
        https://bugs.webkit.org/show_bug.cgi?id=195466

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations: Updating test expectations for flaky failures

2019-04-03  Shawn Roberts  <sroberts@apple.com>

        Layout Test http/wpt/resource-timing/rt-resources-per-worker.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=180260

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-04-02  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r238266): Exchange 2013 Outlook Web Access displays partially blank page when creating new e-mail
        https://bugs.webkit.org/show_bug.cgi?id=196522

        Reviewed by Zalan Bujtas.

        * compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html: Added.
        * compositing/backing/foreground-layer-no-paints-into-ancestor.html: Added.

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

        SVG Animation (SMIL) on <text> or <tspan> doesn't work on second run
        https://bugs.webkit.org/show_bug.cgi?id=150388

        Reviewed by Simon Fraser.

        The bug is fixed by removing the SVG tear off objects. See
        https://bugs.webkit.org/show_bug.cgi?id=191237.

        We need to add a layout test to ensure that no code change will break
        this scenario in the future.

        * svg/animations/smil-multiple-animate-list-expected.svg: Added.
        * svg/animations/smil-multiple-animate-list.svg: Added.

2019-04-02  Shawn Roberts  <sroberts@apple.com>

        imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html is a flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=196517

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Skipping test for flaky crashing

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

        [Mojave] Layout test fast/text/complex-initial-advance.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=196512

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Mark test as failing.

2019-04-02  Alex Christensen  <achristensen@webkit.org>

        Fix assertion in http/tests/adClickAttribution/store-ad-click-attribution.html
        https://bugs.webkit.org/show_bug.cgi?id=196503

        Reviewed by Chris Dumez.

        * http/tests/adClickAttribution/store-ad-click-attribution-expected.txt:
        * http/tests/adClickAttribution/store-ad-click-attribution.html:
        * platform/wk2/TestExpectations:

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

        Web Inspector: Canvas: add support for showing WebGPU contexts
        https://bugs.webkit.org/show_bug.cgi?id=196413
        <rdar://problem/49438898>

        Reviewed by Timothy Hatcher.

        * inspector/canvas/create-context-webgpu.html: Added.
        * inspector/canvas/create-context-webgpu-expected.txt: Added.
        * inspector/canvas/resolveCanvasContext-webgpu.html: Added.
        * inspector/canvas/resolveCanvasContext-webgpu-expected.txt: Added.

        * inspector/canvas/resources/create-context-utilities.js:
        (createDetachedCanvas):
        (createCSSCanvas):
        (destroyCanvases):
        (TestPage.registerInitializer.InspectorTest.CreateContextUtilities.initializeTestSuite): Added.
        (TestPage.registerInitializer.InspectorTest.CreateContextUtilities.addSimpleTestCase): Added.
        (TestPage.registerInitializer.InspectorTest.CreateContextUtilities.addCSSCanvasTestCase): Added.
        (TestPage.registerInitializer.window.initializeTestSuite): Deleted.
        (TestPage.registerInitializer.window.addSimpleTestCase): Deleted.
        (TestPage.registerInitializer.window.addCSSCanvasTestCase): Deleted.

        * inspector/canvas/create-context-2d.html:
        * inspector/canvas/create-context-2d-expected.txt:
        * inspector/canvas/create-context-bitmaprenderer.html:
        * inspector/canvas/create-context-bitmaprenderer-expected.txt:
        * inspector/canvas/create-context-webgl.html:
        * inspector/canvas/create-context-webgl-expected.txt:
        * inspector/canvas/create-context-webgl2.html:
        * inspector/canvas/create-context-webgl2-expected.txt:

        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2019-04-02  Chris Dumez  <cdumez@apple.com>

        [WK2] Add support for Window's beforeprint / afterprint events
        https://bugs.webkit.org/show_bug.cgi?id=196478

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * TestExpectations:
        * platform/wk2/TestExpectations:
        * printing/printing-events-expected.txt: Added.
        * printing/printing-events.html: Added.

2019-04-02  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Hover menus do not function on fidelity.com
        https://bugs.webkit.org/show_bug.cgi?id=196507
        <rdar://problem/49496520>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/400ms-hover-intent-expected.txt: Added.
        * fast/events/touch/ios/content-observation/400ms-hover-intent.html: Added.

2019-04-02  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r243551.

        Seems to have broken file uploads to SoundCloud

        Reverted changeset:

        "XMLHttpRequestUpload's loadstart event not correct
        initialized"
        https://bugs.webkit.org/show_bug.cgi?id=196174
        https://trac.webkit.org/changeset/243551

2019-04-02  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Implement blend states and color write mask for  GPUColorStateDescriptor
        https://bugs.webkit.org/show_bug.cgi?id=196474

        Reviewed by Myles C. Maxfield.

        Add blend-triangle-strip to test color blending and color-write-mask-triangle-strip.html to test color write mask.
        Update other tests to specify blend states when creating a GPURenderPipeline.

        * webgpu/blend-triangle-strip-expected.html: Added.
        * webgpu/blend-triangle-strip.html: Added.
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/color-write-mask-triangle-strip-expected.html: Added.
        * webgpu/color-write-mask-triangle-strip.html: Added.
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/js/webgpu-functions.js:
        * webgpu/render-pipelines.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/whlsl.html:

2019-04-02  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Ignore reconstructed renderers when checking for visibility change
        https://bugs.webkit.org/show_bug.cgi?id=196483
        <rdar://problem/49288174>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visible-content-gains-new-renderer-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visible-content-gains-new-renderer.html: Added.

2019-04-02  Shawn Roberts  <sroberts@apple.com>

        accessibility/mac/press-not-work-for-disabled-menu-list.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196505

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Updating test expectations for flaky failure

2019-04-02  Shawn Roberts  <sroberts@apple.com>

        media/video-background-tab-playback.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196502

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations: Updating test expectations for flaky failure

2019-04-02  Shawn Roberts  <sroberts@apple.com>

        inspector/audit/basic.html is a flaky timeout on bots
        https://bugs.webkit.org/show_bug.cgi?id=196448

        Unreviewed test gardening

        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/TestExpectations: Updating test expectaions for flaky timeout

2019-04-02  Shawn Roberts  <sroberts@apple.com>

        fast/viewport/ios/constant-width-viewport-after-changing-view-scale.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=195341

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating test expecations for flaky failure

2019-04-02  Shawn Roberts  <sroberts@apple.com>

        fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196495

        Unreviewed test gardening

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectations for flaky failure

2019-04-02  Diego Pino Garcia  <dpino@igalia.com>

        REGRESSION(r243512): Change locale of test in intl-datetimeformat.js
        https://bugs.webkit.org/show_bug.cgi?id=196395

        r243512 modifes Intl.DateTimeFormat to obey 2-digit hour. A test was
        added to test 2-digit hour in Russian using 12-hour setting as true and
        false. In the former case, the expected string appends the string 'AM'
        in Russian. This localised string made GTK-based ports fail since
        according to Glib the 'am_pm' values in Russian are not localised.
        
        This patch keeps the same test but changes locale to 'en' to prevent
        the test from failing.

        Reviewed by Michael Catanzaro.

        * js/intl-datetimeformat-expected.txt:
        * js/script-tests/intl-datetimeformat.js:
        * platform/gtk/js/intl-datetimeformat-expected.txt:

2019-04-01  Ryosuke Niwa  <rniwa@webkit.org>

        Skip the tests added in r236519 on iOS. This feature was never implemented in iOS.

        * platform/ios/TestExpectations:

2019-04-01  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Remove the SVG tear off objects for SVGMatrix, SVGTransfrom, SVGTransformList and SVGAnimatedTransformList
        https://bugs.webkit.org/show_bug.cgi?id=196086

        Reviewed by Simon Fraser.

        * svg/dom/SVGTransformList-basics-expected.txt:
        * svg/dom/SVGTransformList-basics.xhtml:
        These changes are required because SVGTransfromList will be following the
        SVG2 specs regarding adding new items to the list. 

        See https://www.w3.org/TR/SVG/types.html#TermListInterface.

2019-04-01  Devin Rousso  <drousso@apple.com>

        Web Inspector: DOMDebugger: breakpoints for attribute modifications still fire when breakpoints are disabled
        https://bugs.webkit.org/show_bug.cgi?id=196456
        <rdar://problem/49489747>

        Reviewed by Joseph Pecoraro.

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

2019-04-01  Per Arne Vollan  <pvollan@apple.com>

        [Win10] Look into platform specific layout test failures
        https://bugs.webkit.org/show_bug.cgi?id=196463

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-04-01  Shawn Roberts  <sroberts@apple.com>

        accessibility/Mac/async-increment-decrement-action.html is crashing and blaming other tests on bots
        https://bugs.webkit.org/show_bug.cgi?id=187391

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating test expectations to skip crashing test

2019-04-01  Antti Koivisto  <antti@apple.com>

        Update event region when toggling pointer-events:none
        https://bugs.webkit.org/show_bug.cgi?id=195902
        <rdar://problem/48988384>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/event-region-pointer-events-expected.txt: Added.
        * fast/scrolling/ios/event-region-pointer-events.html: Added.

2019-04-01  Chris Dumez  <cdumez@apple.com>

        Support "noreferrer" for window.open()
        https://bugs.webkit.org/show_bug.cgi?id=194533

        Reviewed by Geoffrey Garen.

        Add equivalent test to imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html
        but which relies on localStorage instead of BroadcastChannel so that it works with WebKit.

        * http/wpt/html/browsers/the-window-object/support/noreferrer-target-webkit.html: Added.
        * http/wpt/html/browsers/the-window-object/window-open-noopener-webkit-expected.txt: Added.
        * http/wpt/html/browsers/the-window-object/window-open-noopener-webkit.html: Added.

2019-04-01  Said Abou-Hallawa  <sabouhallawa@apple.com>

        SVGMatrix.IDL methods do not conform to the specs
        https://bugs.webkit.org/show_bug.cgi?id=196263

        Reviewed by Simon Fraser.

        * svg/dom/SVGMatrix-expected.txt:
        * svg/dom/SVGMatrix.html:
        Clean this test. Make it test the case when valid arguments are passed to
        the methods of the SVGMatrix. Make sure the methods are read-only. All
        of them should be making a copy of the matrix, applying the transform and
        returning the copy.

2019-04-01  Shawn Roberts  <sroberts@apple.com>

        storage/indexeddb/modern/deletedatabase-2-private.html is a flaky failure on Mac Debug
        https://bugs.webkit.org/show_bug.cgi?id=196445

        Unreviewed test gardening

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectations for flaky test

2019-04-01  Antti Koivisto  <antti@apple.com>

        Trying to scroll the compose pane on gmail.com scrolls the message list behind
        https://bugs.webkit.org/show_bug.cgi?id=196426
        <rdar://problem/49402667>

        Reviewed by Darin Adler.

        * fast/scrolling/ios/event-region-visibility-hidden-expected.txt: Added.
        * fast/scrolling/ios/event-region-visibility-hidden.html: Added.

2019-04-01  Cathie Chen  <cathiechen@igalia.com>

        Change expectation for imported/w3c/web-platform-tests/resize-observer/eventloop.html.
        https://bugs.webkit.org/show_bug.cgi?id=196422

        Reviewed by Frédéric Wang.

        At current implement, notifyResizeObservers is not synchronized to requestAnimationFrame, so the test would be flaky.

        * TestExpectations: eventloop.html is flaky because it depend on the order of requestAnimationFrame and ResizeObserver timer.

2019-03-31  Manuel Rego Casasnovas  <rego@igalia.com>

        Scroll position gets reset when overflow:scroll is inside grid
        https://bugs.webkit.org/show_bug.cgi?id=196337
        <rdar://problem/49385784>

        Reviewed by Simon Fraser.

        Fix scroll position when there are changes inside a grid item with "overflow: scroll".

        * fast/css-grid-layout/grid-item-content-scroll-position-expected.txt: Added.
        * fast/css-grid-layout/grid-item-content-scroll-position.html: Added.

2019-03-31  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Crash when changing inputmode for certain types of focusable elements
        https://bugs.webkit.org/show_bug.cgi?id=196431
        <rdar://problem/49454962>

        Reviewed by Tim Horton.

        Add a layout test that exercises the edge case; see WebKit ChangeLogs for more details.

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

2019-03-29  Dean Jackson  <dino@apple.com>

        gl.readPixels with type gl.FLOAT does not work
        https://bugs.webkit.org/show_bug.cgi?id=171432
        <rdar://problem/31905150>

        Reviewed by Antoine Quint.

        New test that exercises reading a framebuffer object
        with a floating point texture attached.

        * platform/ios/TestExpectations: Skip this test on iOS, where floating-point
        FBOs are not supported.
        * fast/canvas/webgl/readPixels-float-expected.txt: Added.
        * fast/canvas/webgl/readPixels-float.html: Added.

2019-03-30  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Add iFrame elements to the list of "considered clickable" elements.
        https://bugs.webkit.org/show_bug.cgi?id=196410
        <rdar://problem/49436828>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/iframe-is-shown-on-hover-expected.txt: Added.
        * fast/events/touch/ios/content-observation/iframe-is-shown-on-hover.html: Added.

2019-03-30  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Subframe load should not reset content observation on the mainframe
        https://bugs.webkit.org/show_bug.cgi?id=196408
        <rdar://problem/49436797>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/hover-while-loading-subframe-expected.txt: Added.
        * fast/events/touch/ios/content-observation/hover-while-loading-subframe.html: Added.

2019-03-30  Antti Koivisto  <antti@apple.com>

        Hit-testing of boxes over scrollers should account for border-radius
        https://bugs.webkit.org/show_bug.cgi?id=195374
        <rdar://problem/48649993>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/border-radius-event-region-expected.txt: Added.
        * fast/scrolling/ios/border-radius-event-region.html: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-2-expected.txt:

2019-03-29  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Expand DOM timer observation to 350ms
        https://bugs.webkit.org/show_bug.cgi?id=196411
        <rdar://problem/49391144>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/350ms-hover-intent-expected.txt: Added.
        * fast/events/touch/ios/content-observation/350ms-hover-intent.html: Added.

2019-03-29  John Wilander  <wilander@apple.com>

        Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
        https://bugs.webkit.org/show_bug.cgi?id=196407
        <rdar://problem/47859936>

        Reviewed by Brent Fulgham.

        * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
        * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt:
        * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt: Added.
        * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html: Added.
        * http/tests/storageAccess/resources/get-cookies.php:
        * http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html: Added.

2019-03-29  Chris Dumez  <cdumez@apple.com>

        Make someWindow.frames, .self, .window always return someWindow
        https://bugs.webkit.org/show_bug.cgi?id=195406

        Reviewed by Alex Christensen.

        Update / rebaseline existing test to reflect behavior change.

        * fast/frames/detached-frame-property-expected.txt:
        * fast/frames/detached-frame-property.html:

2019-03-29  Myles C. Maxfield  <mmaxfield@apple.com>

        Delete WebMetal implementation in favor of WebGPU
        https://bugs.webkit.org/show_bug.cgi?id=195418

        Reviewed by Dean Jackson.

        * fast/canvas/webmetal/webmetal-dispatch-expected.txt: Removed.
        * fast/canvas/webmetal/webmetal-dispatch.html: Removed.
        * fast/canvas/webmetal/webmetal-runtime-flag-expected.txt: Removed.
        * fast/canvas/webmetal/webmetal-runtime-flag.html: Removed.
        * inspector/canvas/create-context-webmetal-expected.txt: Removed.
        * inspector/canvas/create-context-webmetal.html: Removed.
        * inspector/canvas/resolveCanvasContext-webmetal-expected.txt: Removed.
        * inspector/canvas/resolveCanvasContext-webmetal.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2019-03-29  Zalan Bujtas  <zalan@apple.com>

        [Simple line layout] Turn off inline boxtree generation for multiline content
        https://bugs.webkit.org/show_bug.cgi?id=196404
        <rdar://problem/49234033>

        Reviewed by Simon Fraser.

        * fast/text/simple-line-layout-and-multiline-inlineboxtree-expected.html: Added.
        * fast/text/simple-line-layout-and-multiline-inlineboxtree.html: Added.

2019-03-29  Shawn Roberts  <sroberts@apple.com>

        imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196403

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky test

2019-03-29  Chris Dumez  <cdumez@apple.com>

        REGRESSION (r243523): Six form-related watchOS layout tests are timing out
        https://bugs.webkit.org/show_bug.cgi?id=196405
        <rdar://problem/49428130>

        Reviewed by Wenson Hsieh.

        * fast/forms/ios/file-upload-panel.html:

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

        REGRESSION (r243250): Text interactions are no longer suppressed when editing in some websites
        https://bugs.webkit.org/show_bug.cgi?id=196378
        <rdar://problem/49231299>

        Reviewed by Simon Fraser.

        Add a new layout test to exercise the scenario in which a transformed textarea is hidden inside an empty
        overflow: hidden container.

        * editing/selection/ios/hide-selection-in-textarea-with-transform-expected.txt: Added.
        * editing/selection/ios/hide-selection-in-textarea-with-transform.html: Added.

2019-03-29  Alex Christensen  <achristensen@webkit.org>

        Unreviewed test gardening for imported/w3c/web-platform-tests/xhr/send-redirect-post-upload.htm
        https://bugs.webkit.org/show_bug.cgi?id=159724
        <rdar://problem/48116418>

        * TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wpe/TestExpectations:
        This test asserts on Cocoa WebKitLegacy platforms.  A patch I uploaded to https://bugs.webkit.org/show_bug.cgi?id=159724 shows why we do not intend to fix this.
        This test crashes on iOS12 and Mojave because of rdar://problem/28233746
        This test should not crash anywhere else, but it is flaky in WebKit and Gecko. This is being taken care of in https://github.com/w3c/web-platform-tests/issues/8191
        Updated test expectations to reflect the sad state of things.

2019-03-29  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Add Server Trust Evaluation Support.
        https://bugs.webkit.org/show_bug.cgi?id=191646

        Reviewed by Fujii Hironori.

        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-03-29  Ryosuke Niwa  <rniwa@webkit.org>

        Pasting a table from Confluence strip of table cell content
        https://bugs.webkit.org/show_bug.cgi?id=196390

        Reviewed by Antti Koivisto.

        Added a regression test.

        * editing/pasteboard/paste-content-with-overflow-auto-parent-across-origin-expected.txt: Added.
        * editing/pasteboard/paste-content-with-overflow-auto-parent-across-origin.html: Added.

2019-03-29  Shawn Roberts  <sroberts@apple.com>

        fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196400

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure

2019-03-29  Michael Catanzaro  <mcatanzaro@igalia.com>

        HTMLInputElement::setEditingValue should not fail if renderer doesn't exist
        https://bugs.webkit.org/show_bug.cgi?id=195708

        Reviewed by Wenson Hsieh.

        This is a copy of fast/forms/editing-value.html, except the form is not displayed. The input
        value should still change.

        * fast/forms/editing-value-null-renderer-expected.txt: Added.
        * fast/forms/editing-value-null-renderer.html: Added.

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

        All PointerEvent.isTrusted is always false.
        https://bugs.webkit.org/show_bug.cgi?id=196075
        <rdar://problem/49158778>

        Reviewed by Chris Dumez.

        Add tests to the macOS and iOS series of tests that check that isTrusted is indeed true. This uncovered a couple of issues with how some tests were written.

        * pointerevents/ios/pointer-events-is-primary.html: Ensure we end both touches so that further tests run cleanly.
        * pointerevents/ios/pointer-events-is-trusted-expected.txt: Added.
        * pointerevents/ios/pointer-events-is-trusted.html: Added.
        * pointerevents/mouse/pointer-event-basic-properties.html: Ensure we wait for the event to be handled before finishing the test.
        * pointerevents/utils.js:
        (prototype._handlePointerEvent):

2019-03-29  Cathie Chen  <cathiechen@igalia.com>

        Implement ResizeObserver.
        https://bugs.webkit.org/show_bug.cgi?id=157743

        Reviewed by Simon Fraser.

        Add tests for resize-observer of multiframe.

        * resize-observer/modify-frametree-in-callback-expected.txt: Added.
        * resize-observer/modify-frametree-in-callback.html: Added.
        * resize-observer/multi-frames-expected.txt: Added.
        * resize-observer/multi-frames.html: Added.
        * resize-observer/observe-element-from-other-frame-expected.txt: Added.
        * resize-observer/observe-element-from-other-frame.html: Added.
        * resize-observer/resources/frame1.html: Added.
        * resize-observer/resources/frame2.html: Added.
        * resize-observer/resources/frame3.html: Added.
        * resize-observer/resources/frame4.html: Added.
        * resize-observer/resources/frameset1.html: Added.
        * resize-observer/resources/frameset2.html: Added.
        * resize-observer/resources/iframe1.html: Added.
        * resize-observer/resources/resizeTestHelper.js: Added.
        (ResizeTestHelper):
        (ResizeTestHelper.prototype.get _currentStep):
        (ResizeTestHelper.prototype._nextStep):
        (ResizeTestHelper.prototype._handleNotification):
        (ResizeTestHelper.prototype._handleTimeout):
        (ResizeTestHelper.prototype._done):
        (ResizeTestHelper.prototype.start):
        (ResizeTestHelper.prototype.get rafCount):
        (ResizeTestHelper.prototype._incrementRaf):
        (ResizeTestHelper.prototype.startCountingRaf):

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

        Support <object>.contentWindow
        https://bugs.webkit.org/show_bug.cgi?id=195562

        Reviewed by Sam Weinig.

        Update existing test to extend test coverage.

        * fast/dom/HTMLObjectElement/object-as-frame-expected.txt:
        * fast/dom/HTMLObjectElement/object-as-frame.html:

2019-03-28  Myles C. Maxfield  <mmaxfield@apple.com>

        FontFace constructor throws an exception when there is a name which starts with a number
        https://bugs.webkit.org/show_bug.cgi?id=196232
        <rdar://problem/49293978>

        Reviewed by Ryosuke Niwa.

        * fast/text/font-face-family-expected.txt: Added.
        * fast/text/font-face-family.html: Added.

2019-03-28  Ryosuke Niwa  <rniwa@webkit.org>

        getBoundingClientRect always returns empty rect on a collapsed range
        https://bugs.webkit.org/show_bug.cgi?id=196380

        Reviewed by Wenson Hsieh.

        Added a regression test.

        * fast/dom/Range/getBoundingClientRect-on-collapsed-selection-range-expected.txt: Added.
        * fast/dom/Range/getBoundingClientRect-on-collapsed-selection-range.html: Added.

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

        Re-sync web-platform-tests/html/browsers/the-window-object/ from upstream
        https://bugs.webkit.org/show_bug.cgi?id=196379

        Reviewed by Ryosuke Niwa.

        * tests-options.json:

2019-03-28  John Wilander  <wilander@apple.com>

        Resource Load Statistics: IPC to the WebsiteDataStore in the UI process from NetworkProcess::deleteWebsiteDataForRegistrableDomains()
        https://bugs.webkit.org/show_bug.cgi?id=196281
        <rdar://problem/48938748>

        Reviewed by Alex Christensen.

        This test now covers LocalStorage too.

        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:

2019-03-28  Shawn Roberts  <sroberts@apple.com>

        The following layout tests are flaky failures
        http/wpt/webauthn/public-key-credential-get-success-hid.https.html
        http/wpt/webauthn/public-key-credential-create-success-hid.https.html
        https://bugs.webkit.org/show_bug.cgi?id=194780
        https://bugs.webkit.org/show_bug.cgi?id=196377

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky failures

2019-03-28  Shawn Roberts  <sroberts@apple.com>

        storage/domstorage/localstorage/private-browsing-affects-storage.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196376

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure

2019-03-28  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Prototype compute pipeline with MSL
        https://bugs.webkit.org/show_bug.cgi?id=196107
        <rdar://problem/46289650>

        Reviewed by Myles Maxfield.

        Add a basic test to create, execute, and verify the results of a Web GPU compute pipeline.

        * webgpu/compute-squares-expected.txt: Added.
        * webgpu/compute-squares.html: Added.
        * webgpu/whlsl.html: Update some function names to match API changes.

2019-03-28  Shawn Roberts  <sroberts@apple.com>

        Fixed typing error I made in https://trac.webkit.org/changeset/243612/webkit
        https://bugs.webkit.org/show_bug.cgi?id=196357

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Fixing error in test expectations file

2019-03-28  Ryosuke Niwa  <rniwa@webkit.org>

        Debug assert in DOMSelection::containsNode when node belongs to a different tree
        https://bugs.webkit.org/show_bug.cgi?id=196342

        Reviewed by Antti Koivisto.

        Added a regression test to catch the debug assertion failure. The test always passed in release builds.

        * editing/selection/containsNode-with-no-common-ancestor-expected.txt: Added.
        * editing/selection/containsNode-with-no-common-ancestor.html: Added.

2019-03-28  Shawn Roberts  <sroberts@apple.com>

        http/wpt/cache-storage/quota-third-party.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196358

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations: Updating test expectations for flaky failure

2019-03-28  Shawn Roberts  <sroberts@apple.com>

        storage/indexeddb/modern/idbtransaction-objectstore-failures-private.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196357

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectations for flaky failure

2019-03-28  Simon Fraser  <simon.fraser@apple.com>

        [macOS WK2] Overlays on instagram.com are shifted if you click on a photo after scrolling
        https://bugs.webkit.org/show_bug.cgi?id=196330
        rdar://problem/49100304

        Reviewed by Antti Koivisto.

        * scrollingcoordinator/mac/fixed-scrolled-body-expected.html: Added.
        * scrollingcoordinator/mac/fixed-scrolled-body.html: Added.

2019-03-28  Zalan Bujtas  <zalan@apple.com>

        [SimpleLineLayout] Disable SLL when text-underline-position is not auto.
        https://bugs.webkit.org/show_bug.cgi?id=196338
        <rdar://problem/47975167>

        Reviewed by Daniel Bates.

        * fast/text/simple-line-layout-with-text-underline-position-expected.html: Added.
        * fast/text/simple-line-layout-with-text-underline-position.html: Added.

2019-03-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [FreeType] Incorrect application of glyph positioning in the Y direction
        https://bugs.webkit.org/show_bug.cgi?id=161493

        Reviewed by Michael Catanzaro.

        Rebaseline fast/text/international/hebrew-vowels.html.

        * platform/gtk/fast/text/international/hebrew-vowels-expected.png:
        * platform/gtk/fast/text/international/hebrew-vowels-expected.txt:

2019-03-27  Ryosuke Niwa  <rniwa@webkit.org>

        [macOS] Select element doesn't show popup if select element had lost focus while popup was previosuly shown
        https://bugs.webkit.org/show_bug.cgi?id=196336

        Reviewed by Tim Horton.

        Added regression tests for dismissing the select element's popup menu by bluring the element then re-opening the popup.
        Unfortunately these tests are only enabled in WebKit2 since intenals.isSelectPopupVisible would always return false in WebKit1.

        * TestExpectations:
        * fast/forms/select/mac-wk2: Added.
        * fast/forms/select/mac-wk2/blur-dismisses-select-popup-expected.html: Added.
        * fast/forms/select/mac-wk2/blur-dismisses-select-popup.html: Added.
        * fast/forms/select/mac-wk2/open-select-popup-after-dismissing-by-blur-expected.txt: Added.
        * fast/forms/select/mac-wk2/open-select-popup-after-dismissing-by-blur.html: Added.
        * platform/mac-wk2/TestExpectations:

2019-03-27  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/inspector/network/har/har-page-expected.txt:
        * platform/gtk/http/tests/inspector/network/resource-sizes-network-expected.txt:
        * platform/gtk/js/intl-datetimeformat-expected.txt: Added.
        * platform/wpe/TestExpectations:

2019-03-27  Shawn Roberts  <sroberts@apple.com>

        The following layout tests are flaky Image Only Failures
        imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant-bold.html
        imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant-double-struck.html 
        imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant-italic.html
        https://bugs.webkit.org/show_bug.cgi?id=196112

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac/TestExpectations: Marking tests as flaky

2019-03-27  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Standardize Web GPU object reference counting and creation logic
        https://bugs.webkit.org/show_bug.cgi?id=196183

        Reviewed by Dean Jackson.

        GPUShaderModule is no longer nullable.

        * webgpu/shader-modules.html:

2019-03-27  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r243346.

        Causing timeouts in animation tests across 10 builds

        Reverted changeset:

        "[Web Animations] JS wrapper may be deleted while animation is
        yet to dispatch its finish event"
        https://bugs.webkit.org/show_bug.cgi?id=196118
        https://trac.webkit.org/changeset/243346

2019-03-27  Chris Dumez  <cdumez@apple.com>

        [ iOS Simulator ] REGRESSION (r237702) Layout Test http/tests/security/xss-DENIED-script-inject-into-inactive-window.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=195385
        <rdar://problem/48657425>

        Reviewed by Alex Christensen.

        Before r237702, the test used to detect that _openedWindowDocument had become frameless (i.e. lost its browsing context)
        by checking if _openedWindowDocument.location.href is the empty String. However, r237702 updating Location to return
        "about:blank" instead of "" when frameless, to match the latest specification. As a result, I had updated the test to
        expect _openedWindowDocument.location.href to be "about:blank". However, I had not noticed that the document's initial
        URL (while it had a browsing context) was also "about:blank". Therefore, checking that location.href is "about:blank"
        would actually not guarantee that the document has no browsing context.

        To address the issue, check that _openedWindowDocument.defaultView is null instead since this is guaranteed to be null
        for Documents that do not have a browsing context as per:
        - https://html.spec.whatwg.org/multipage/window-object.html#dom-document-defaultview

        * http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:

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

        [ContentChangeObserver] Stop using the global _WKContentChange
        https://bugs.webkit.org/show_bug.cgi?id=196288
        <rdar://problem/49228081>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/remove-subframe-while-observing-expected.txt: Added.
        * fast/events/touch/ios/content-observation/remove-subframe-while-observing.html: Added.
        * fast/events/touch/ios/content-observation/subframe.html: Added.
        * platform/ios-device-wk1/TestExpectations:
        * platform/ios-simulator-wk1/TestExpectations:

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

        Remove the SVG tear off objects for SVGPathSeg, SVGPathSegList and SVGAnimatedPathSegList
        https://bugs.webkit.org/show_bug.cgi?id=196085

        Reviewed by Simon Fraser.

        * svg/dom/SVGPathSegList-appendItem-expected.txt:
        * svg/dom/SVGPathSegList-appendItem.xhtml:
        * svg/dom/SVGPathSegList-clear-and-initialize-expected.txt:
        * svg/dom/SVGPathSegList-clear-and-initialize.xhtml:
        * svg/dom/SVGPathSegList-insertItemBefore-expected.txt:
        * svg/dom/SVGPathSegList-insertItemBefore.xhtml:
        * svg/dom/SVGPathSegList-replaceItem-expected.txt:
        * svg/dom/SVGPathSegList-replaceItem.xhtml:
        These changes are required because SVGPathSegList will be following the SVG2
        specs regarding adding new items to the list. 

        See https://www.w3.org/TR/SVG/types.html#TermListInterface.

2019-03-27  Shawn Roberts  <sroberts@apple.com>

        http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196307

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations: Marking test as flaky while waiting for a fix

2019-03-27  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r242687): Fullscreen YouTube videos show blank white space at top
        https://bugs.webkit.org/show_bug.cgi?id=196304
        rdar://problem/49175760

        Reviewed by Zalan Bujtas.

        * scrollingcoordinator/mac/top-content-inset-to-zero-expected.html: Added.
        * scrollingcoordinator/mac/top-content-inset-to-zero.html: Added.

2019-03-27  Shawn Roberts  <sroberts@apple.com>

        http/tests/cache/disk-cache/memory-cache-revalidation-updates-disk-cache.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=16297

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updated test expectations to include iOS Simulator

2019-03-27  Shawn Roberts  <sroberts@apple.com>

        fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196298

        Unreviewed test gardening

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectation for flaky failure

2019-03-27  Shawn Roberts  <sroberts@apple.com>

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

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectation for flaky failure

2019-03-27  Per Arne Vollan  <pvollan@apple.com>

        Layout Test js/math-clz32.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=196209

        Reviewed by Ross Kirsling.

        * platform/win/TestExpectations:

2019-03-26  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fixed elements in frames can be misplaced sometimes
        https://bugs.webkit.org/show_bug.cgi?id=196290

        Reviewed by Frédéric Wang.

        * scrollingcoordinator/ios/fixed-in-frame-layer-reconcile-layer-position-expected.txt: Added.
        * scrollingcoordinator/ios/fixed-in-frame-layer-reconcile-layer-position.html: Added.

2019-03-26  Chris Dumez  <cdumez@apple.com>

        Add basic layout test coverage for File Picker on iOS
        https://bugs.webkit.org/show_bug.cgi?id=196265

        Reviewed by Wenson Hsieh.

        Add new layout test.

        * fast/forms/ios/file-upload-panel-expected.txt: Added.
        * fast/forms/ios/file-upload-panel.html: Added.

2019-03-26  Shawn Roberts  <sroberts@apple.com>

        Layout tests editing/deleting/delete-emoji-1.html
        editing/deleting/delete-emoji-9.html
        editing/deleting/delete-emoji.html are failing
        webkit.org/b/191709

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectations waiting for rebaseline

2019-03-26  Shawn Roberts  <sroberts@apple.com>

        imported/w3c/web-platform-tests/xhr/send-redirect-post-upload.htm is a flaky crash and a failing test
        https://bugs.webkit.org/show_bug.cgi?id=196274

        Unreviewed test gardening.

        * TestExpectations:
        * platform/mac/TestExpectations: Updating test expectaion for flaky crash

2019-03-26  Shawn Roberts  <sroberts@apple.com>

        Layout tests http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource.html 
        http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource.html 
        http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource.html 
        http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource.html are flaky time outs
        https://bugs.webkit.org/show_bug.cgi?id=196269

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectations for flaky tests
        * platform/ios-wk2/TestExpectations: Updatiting test expectations for flaky tests

2019-03-26  Said Abou-Hallawa  <said@apple.com>

        Remove the SVG tear off objects for SVGLength, SVGLengthList and SVGAnimatedLengthList
        https://bugs.webkit.org/show_bug.cgi?id=196083

        Reviewed by Simon Fraser.

        * platform/win/TestExpectations:
        * svg/animations/svglength-element-removed-crash.svg:
        * svg/dom/SVGLengthList-appendItem-expected.txt:
        * svg/dom/SVGLengthList-appendItem.xhtml:
        * svg/dom/SVGLengthList-basics-expected.txt:
        * svg/dom/SVGLengthList-basics.xhtml:
        * svg/dom/SVGLengthList-initialize-expected.txt:
        * svg/dom/SVGLengthList-initialize.xhtml:
        * svg/dom/SVGLengthList-insertItemBefore-expected.txt:
        * svg/dom/SVGLengthList-insertItemBefore.xhtml:
        * svg/dom/SVGLengthList-removeItem-expected.txt:
        * svg/dom/SVGLengthList-removeItem.xhtml:
        * svg/dom/SVGLengthList-replaceItem-expected.txt:
        * svg/dom/SVGLengthList-replaceItem.xhtml:
        This changes are required because SVGLengthList will be following the SVG2
        specs regarding adding new items to the list. 

        See https://www.w3.org/TR/SVG/types.html#TermListInterface.

2019-03-26  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] position:fixed inside oveflow:scroll is jumpy
        https://bugs.webkit.org/show_bug.cgi?id=196238

        Reviewed by Antti Koivisto.

        fixed-in-overflow-scroll-scrolling-tree.html actually tests the fix.
        For some reason fixed-in-overflow-scroll.html doesn't show the jumpiness, but it's
        a good test to have nonetheless.

        Other minor cleanup.

        * resources/ui-helper.js:
        (window.UIHelper.immediateScrollElementAtContentPointToOffset):
        * scrollingcoordinator/ios/fixed-in-overflow-scroll-expected.html: Added.
        * scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree-expected.txt: Added.
        * scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree.html: Copied from LayoutTests/scrollingcoordinator/ios/ui-scrolling-tree.html.
        * scrollingcoordinator/ios/fixed-in-overflow-scroll.html: Added.
        * scrollingcoordinator/ios/ui-scrolling-tree.html:

2019-03-26  Andy VanWagoner  <andy@vanwagoner.family>

        Intl.DateTimeFormat should obey 2-digit hour
        https://bugs.webkit.org/show_bug.cgi?id=195974

        Reviewed by Keith Miller.

        * js/intl-datetimeformat-expected.txt:
        * js/script-tests/intl-datetimeformat.js:

2019-03-26  Dean Jackson  <dino@apple.com>

        vertexAttribPointer must restrict offset parameter
        https://bugs.webkit.org/show_bug.cgi?id=196261
        <rdar://problem/48458086>

        Reviewed by Antoine Quint.

        Add a test where the offset parameter is out of bounds.

        * fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt: Added.
        * fast/canvas/webgl/vertexAttribPointer-with-bad-offset.html: Added.

2019-03-26  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Skip anonymous renderers when checking for "willRespondToMouseClickEvents"
        https://bugs.webkit.org/show_bug.cgi?id=196259
        <rdar://problem/49240029>

        Reviewed by Dean Jackson.

        * fast/events/touch/ios/content-observation/crash-on-anonymous-renderer-expected.txt: Added.
        * fast/events/touch/ios/content-observation/crash-on-anonymous-renderer.html: Added.

2019-03-26  Shawn Roberts  <sroberts@apple.com>

        Layout tests fast/events/wheel-event-destroys-overflow.html 
        fast/events/wheelevent-mousewheel-interaction.html 
        fast/events/wheel-event-destroys-frame.html 
        fast/events/wheelevent-basic.html 
        fast/events/wheelevent-in-text-node.html are a flaky timeouts
        https://bugs.webkit.org/show_bug.cgi?id=195719

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Marking tests as flaky

2019-03-26  Per Arne Vollan  <pvollan@apple.com>

        Layout Test js/math-clz32.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=196209

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-03-26  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Unreviewed gardening, update test expectations and baselines

        * platform/gtk/TestExpectations:
        * platform/gtk/compositing/overflow/textarea-scroll-touch-expected.txt:
        New expected results after r243031.
        * platform/gtk/http/tests/inspector/network/har/har-page-expected.txt:
        New expected results after r243347.

2019-03-26  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] Sound loop with Google Hangouts and WhatsApp notifications
        https://bugs.webkit.org/show_bug.cgi?id=189471

        Reviewed by Xabier Rodriguez-Calvar.

        * platform/gtk/TestExpectations:
        * platform/gtk/media/video-playing-and-pause-expected.txt:

2019-03-26  Antti Koivisto  <antti@apple.com>

        Hit-testing on layers overlapping scrollers should hit-test on text boxes
        https://bugs.webkit.org/show_bug.cgi?id=195373
        <rdar://problem/48649865>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/overflow-scroll-overlap-3.html:

2019-03-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed, rolling out r243450.

        AppleWin and WinCairo port builds get broken.

        Reverted changeset:

        "Add test for fix of #196095"
        https://bugs.webkit.org/show_bug.cgi?id=196097
        https://trac.webkit.org/changeset/243450

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

        Remove the SVG tear off objects for SVGAngle, SVGAnimatedAngle and SVGAnimatedEnumeration
        https://bugs.webkit.org/show_bug.cgi?id=196087

        Reviewed by Simon Fraser.

        * svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
        * svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html:
        Fixes cases that the tear off objects could not handle correctly for the
        paired { angle, orientType }. Also when setting the orient type to "auto"
        or "auto-start-reverse", the orient angle should be reset to
        SVG_ANGLETYPE_UNSPECIFIED and is not suppsed to keep its original value.

2019-03-25  Shawn Roberts  <sroberts@apple.com>

        fast/visual-viewport/ios/min-scale-greater-than-one.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196236

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Changing expectations due to test being flaky

2019-03-25  Shawn Roberts  <sroberts@apple.com>

        fast/viewport/ios/initial-scale-after-changing-view-scale.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=196233

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Changing expectations due to test being flaky

2019-03-25  Shawn Roberts  <sroberts@apple.com>

        http/tests/cache-storage/cache-clearing-origin.https.html
        http/tests/cache-storage/cache-records-persistency.https.html are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=196228

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: 
        * platform/mac-wk2/TestExpectations: Changing expectations due to flaky tests

2019-03-25  Shawn Roberts  <sroberts@apple.com>

        performance-api/performance-observer-periodic.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196218

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Changing expectations due to flaky test

2019-03-25  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r243419.

        Caused Mac WK2 testers to crash and become unresponsive.

        Reverted changeset:

        "[Web GPU] Prototype compute pipeline with MSL"
        https://bugs.webkit.org/show_bug.cgi?id=196107
        https://trac.webkit.org/changeset/243419

2019-03-25  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r243438.

        243319 Caused Mac WK2 testers to crash and become
        unresponsive.

        Reverted changeset:

        "Update WebGPU class names based on sketch.idl"
        https://bugs.webkit.org/show_bug.cgi?id=194260
        https://trac.webkit.org/changeset/243438

2019-03-25  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Page Weight indicator clears on pages with zero length resources (macrumors.com)
        https://bugs.webkit.org/show_bug.cgi?id=196170

        Reviewed by Timothy Hatcher.

        * http/tests/inspector/network/resource-sizes-network.html:
        * http/tests/inspector/network/resources/empty.txt: Added.
        * platform/mac/http/tests/inspector/network/resource-sizes-network-expected.txt:

2019-03-25  Eric Carlson  <eric.carlson@apple.com>

        Delete MetadataPreloadingNotPermitted, it is unused
        https://bugs.webkit.org/show_bug.cgi?id=196202
        <rdar://problem/49213611>

        Reviewed by Jer Noble.

        * media/video-restricted-no-preload-metadata-expected.txt: Removed.
        * media/video-restricted-no-preload-metadata.html: Removed.

2019-03-25  Jer Noble  <jer.noble@apple.com>

        Add test for fix of #196095
        https://bugs.webkit.org/show_bug.cgi?id=196097

        Reviewed by Eric Carlson.

        * media/track/track-in-band-metadata-display-order-expected.txt: Added.
        * media/track/track-in-band-metadata-display-order.html: Added.

2019-03-25  Antti Koivisto  <antti@apple.com>

        Toggling "display: contents" to "display: none" fails to hide the element
        https://bugs.webkit.org/show_bug.cgi?id=188259
        <rdar://problem/42886896>

        Reviewed by Simon Fraser.

        * fast/css/display-contents-to-none-expected.html: Added.
        * fast/css/display-contents-to-none.html: Added.

2019-03-25  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening, update expected results for several smart-delete-paragraph tests 

        Unreviewed test gardening.

        * platform/gtk/editing/deleting/smart-delete-paragraph-001-expected.txt: Added.
        * platform/gtk/editing/deleting/smart-delete-paragraph-002-expected.txt: Added.
        * platform/gtk/editing/deleting/smart-delete-paragraph-004-expected.txt: Added.

2019-03-25  Justin Fan  <justin_fan@apple.com>

        Update WebGPU class names based on sketch.idl
        https://bugs.webkit.org/show_bug.cgi?id=194260

        Reviewed by Dean Jackson.
        
        Update all exposed Web GPU interface names to GPU* prefix.

        * webgpu/adapter-options.html:
        * webgpu/bind-groups.html:
        * webgpu/map-read-buffers.html:
        * webgpu/map-write-buffers.html:
        * webgpu/pipeline-layouts.html:
        * webgpu/queue-creation.html:
        * webgpu/render-command-encoding.html:
        * webgpu/render-pipelines.html:
        * webgpu/textures-textureviews.html:
        * webgpu/webgpu-enabled.html:

2019-03-25  Javier Fernandez  <jfernandez@igalia.com>

        A single leading space is not considered as a word break even when word-break: break-all is set
        https://bugs.webkit.org/show_bug.cgi?id=195361

        Reviewed by Ryosuke Niwa.

        Removed some entries from the GTK expectation file.
        Added tests to verify the codepath with SimpleLineLayout disabled.

        * fast/text/overflow-wrap-break-word-004-expected.html: Added.
        * fast/text/overflow-wrap-break-word-004.html: Added.
        * fast/text/overflow-wrap-break-word-005-expected.html: Added.
        * fast/text/overflow-wrap-break-word-005.html: Added.
        * fast/text/overflow-wrap-break-word-007-expected.html: Added.
        * fast/text/overflow-wrap-break-word-007.html: Added.
        * fast/text/whitespace/pre-wrap-008-expected.html: Added.
        * fast/text/whitespace/pre-wrap-008.html: Added.
        * fast/text/whitespace/pre-wrap-015-expected.html: Added.
        * fast/text/whitespace/pre-wrap-015.html: Added.
        * fast/text/whitespace/pre-wrap-016-expected.html: Added.
        * fast/text/whitespace/pre-wrap-016.html: Added.
        * fast/text/word-break-break-all-010-expected.html: Added.
        * fast/text/word-break-break-all-010.html: Added.
        * fast/text/word-break-break-all-011-expected.html: Added.
        * fast/text/word-break-break-all-011.html: Added.
        * fast/text/word-break-break-all-015-expected.html: Added.
        * fast/text/word-break-break-all-015.html: Added.
        * platform/gtk/TestExpectations:
          - word-break-break-all-010.html passes now thanks to this change.

2019-03-25  Diego Pino Garcia  <dpino@igalia.com>

        [GTK][WPE] Gardening, update test expectations.

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/text/ja-sans-serif-expected.png: Removed.
        Test harnessing suggested to remove this file as it was not being used.
        * platform/wpe/TestExpectations:

2019-03-25  Rob Buis  <rbuis@igalia.com>

        Reflect HTMLLinkElement.as according to the spec
        https://bugs.webkit.org/show_bug.cgi?id=196189

        Reviewed by Youenn Fablet.

        Update improved test result.

        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt:

2019-03-25  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        Remove NavigatorContentUtils in WebCore/Modules
        https://bugs.webkit.org/show_bug.cgi?id=196070

        Reviewed by Alex Christensen.

        NavigatorContentUtils was to support the custom scheme spec [1].
        However, in WebKit side, no port has supported the feature in
        WebKit layer after EFL port was removed. So there has been the
        only IDL implementation of the NavigatorContentUtils in WebCore.
        So we don't need to keep the implementation in WebCore anymore.

        [1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

        * fast/dom/NavigatorContentUtils/is-protocol-handler-registered-expected.txt: Removed.
        * fast/dom/NavigatorContentUtils/is-protocol-handler-registered.html: Removed.
        * fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt: Removed.
        * fast/dom/NavigatorContentUtils/register-protocol-handler.html: Removed.
        * fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt: Removed.
        * fast/dom/NavigatorContentUtils/unregister-protocol-handler.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

2019-03-23  Mark Lam  <mark.lam@apple.com>

        Rolling out r243032 and r243071 because the fix is incorrect.
        https://bugs.webkit.org/show_bug.cgi?id=195892
        <rdar://problem/48981239>

        Not reviewed.

        * platform/mac/TestExpectations:

2019-03-23  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Prototype compute pipeline with MSL
        https://bugs.webkit.org/show_bug.cgi?id=196107
        <rdar://problem/46289650>

        Reviewed by Myles Maxfield.

        Add a basic test to create, execute, and verify the results of a Web GPU compute pipeline.

        * webgpu/compute-squares-expected.txt: Added.
        * webgpu/compute-squares.html: Added.
        * webgpu/whlsl.html: Update some function names to match API changes.

2019-03-23  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (iOS 8): Scrollbar can't be hidden when webkit-overflow-scrolling is set to touch
        https://bugs.webkit.org/show_bug.cgi?id=137043
        rdar://problem/16595330

        Reviewed by Zalan Bujtas.

        Test that dumps the UI-side scrolling tree, showing e.g. "horizontal scrollbar hidden by style"
        in the dump.

        This test was previously a render tree dump, which did not test whether scrollbars were visible.

        * fast/scrolling/ios/scrollbar-hiding-expected.txt:
        * fast/scrolling/ios/scrollbar-hiding.html:
        * platform/ios/fast/scrolling/ios/scrollbar-hiding-expected.txt: Removed.

2019-03-23  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Taping on a form control should always result in click.
        https://bugs.webkit.org/show_bug.cgi?id=196177

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-type-text-element-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-type-text-element.html: Added.

2019-03-23  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Add support for observing opacity.
        https://bugs.webkit.org/show_bug.cgi?id=196172

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left.html: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition.html: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove.html: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition.html: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart.html: Added.

2019-03-23  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Check if the transitioned content is visible at onAnimationEnd
        https://bugs.webkit.org/show_bug.cgi?id=196171

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end-expected.txt: Added.
        * fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end.html: Added.

2019-03-22  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r243269.

        In debug builds, it's possible that the Web Inspector frontend is told to stop a timeline
        recording before all of the recorded records have had a chance to be completed/processed.

        As an example
        ```
            setTimeout(() => {
                <stop recording>
            });
        ```
        it may happen that the "stop recording" event will be dispatched before the timeout has
        finished executing, meaning that the event that contains the recorded data for that timeout
        will be ignored by the frontend.

        Rework the tests so that they don't dispatch the "stop recording" event until the expected
        record is received by the frontend, rather than having the test code itself say when to stop.

        * inspector/timeline/resources/timeline-event-utilities.js:
        (savePageData): Added.
        (TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
        (finishRecording): Deleted.
        * inspector/timeline/timeline-event-CancelAnimationFrame.html:
        * inspector/timeline/timeline-event-CancelAnimationFrame-expected.txt:
        * inspector/timeline/timeline-event-EventDispatch.html:
        * inspector/timeline/timeline-event-EventDispatch-expected.txt:
        * inspector/timeline/timeline-event-FireAnimationFrame.html:
        * inspector/timeline/timeline-event-FireAnimationFrame-expected.txt:
        * inspector/timeline/timeline-event-RequestAnimationFrame.html:
        * inspector/timeline/timeline-event-RequestAnimationFrame-expected.txt:
        * inspector/timeline/timeline-event-TimerFire.html:
        * inspector/timeline/timeline-event-TimerFire-expected.txt:
        * inspector/timeline/timeline-event-TimerInstall.html:
        * inspector/timeline/timeline-event-TimerInstall-expected.txt:
        * inspector/timeline/timeline-event-TimerRemove.html:
        * inspector/timeline/timeline-event-TimerRemove-expected.txt:

2019-03-22  Devin Rousso  <drousso@apple.com>

        Web Inspector: Safari Canvas Inspector seems to show the canvas being rendered twice per frame.
        https://bugs.webkit.org/show_bug.cgi?id=196082
        <rdar://problem/49113496>

        Reviewed by Dean Jackson.

        * inspector/canvas/recording-2d.html:
        * inspector/canvas/recording-bitmaprenderer.html:
        * inspector/canvas/recording-html-2d.html:
        * inspector/canvas/recording-webgl.html:
        * inspector/canvas/setRecordingAutoCaptureFrameCount.html:

2019-03-22  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r243356.

        Causes assertion failures with WebGL layout tests on macOS and
        iOS.

        Reverted changeset:

        "Web Inspector: Safari Canvas Inspector seems to show the
        canvas being rendered twice per frame."
        https://bugs.webkit.org/show_bug.cgi?id=196082
        https://trac.webkit.org/changeset/243356

2019-03-22  Antti Koivisto  <antti@apple.com>

        Handle UI side hit testing for ScrollPositioningBehavior::Stationary positioned nodes
        https://bugs.webkit.org/show_bug.cgi?id=196100
        <rdar://problem/49117933>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/overflow-scroll-overlap-6-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-6.html: Added.

2019-03-22  Simon Fraser  <simon.fraser@apple.com>

        Unreviewed test gardening of plugin tests
        https://bugs.webkit.org/show_bug.cgi?id=196150
        
        For reasons unknown, my machine and bots produce different results for these plug-in tests.
        My machine behaves like the test plug-in does not exist.

        * platform/mac-wk1/compositing/plugins/composited-plugin-expected.txt: Removed.
        * platform/mac-wk1/compositing/plugins/no-backing-store-expected.txt: Removed.
        * platform/mac-wk1/compositing/plugins/small-to-large-composited-plugin-expected.txt: Removed.

2019-03-22  Alicia Boya García  <aboya@igalia.com>

        [MSE][GStreamer] Don't construct segments on PlaybackPipeline::flush
        https://bugs.webkit.org/show_bug.cgi?id=195867

        Reviewed by Xabier Rodriguez-Calvar.

        Drawing an MSE video in a canvas seems to be failing in Mac. That
        functionality is necessary for the tests introduced with this patch,
        therefore they fail there. Marking them as Skip.

        * platform/mac/TestExpectations:

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

        Remove the SVG tear off objects for SVGNumber, SVGNumberList and SVGAnimatedNumberList
        https://bugs.webkit.org/show_bug.cgi?id=196084

        Reviewed by Simon Fraser.

        * svg/dom/SVGNumberList-basics-expected.txt:
        * svg/dom/SVGNumberList-basics.xhtml:
        This change is required because SVGNumberList will be following the SVG2
        specs regarding adding new items to the list. 

        See https://www.w3.org/TR/SVG/types.html#TermListInterface.

2019-03-21  Simon Fraser  <simon.fraser@apple.com>

        WebKit1 test gardening.

        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt: Added.
        * platform/mac-wk1/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Added.
        * platform/mac-wk1/compositing/overflow/overflow-auto-with-touch-expected.txt: Added.
        * platform/mac-wk1/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt: Added.
        * platform/mac-wk1/compositing/overflow/overflow-overlay-with-touch-expected.txt: Added.
        * platform/mac-wk1/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt: Added.
        * platform/mac-wk1/compositing/overflow/textarea-scroll-touch-expected.txt: Added.
        * platform/mac-wk1/compositing/plugins/composited-plugin-expected.txt: Added.
        * platform/mac-wk1/compositing/plugins/no-backing-store-expected.txt: Added.
        * platform/mac-wk1/compositing/plugins/small-to-large-composited-plugin-expected.txt: Added.
        * platform/mac-wk1/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: Added.
        * platform/mac-wk1/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt: Added.

2019-03-21  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION: (r242132) tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe.html is a timeout
        https://bugs.webkit.org/show_bug.cgi?id=196115

        Unreviewed test gardening.
        
        Scroll snap doesn't work on macOS with async overflow scrolling, so revert the changes to these tests.

        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:

2019-03-21  Devin Rousso  <drousso@apple.com>

        Web Inspector: Safari Canvas Inspector seems to show the canvas being rendered twice per frame.
        https://bugs.webkit.org/show_bug.cgi?id=196082
        <rdar://problem/49113496>

        Reviewed by Dean Jackson.

        * inspector/canvas/recording-2d.html:
        * inspector/canvas/recording-bitmaprenderer.html:
        * inspector/canvas/recording-html-2d.html:
        * inspector/canvas/recording-webgl.html:
        * inspector/canvas/setRecordingAutoCaptureFrameCount.html:

2019-03-21  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Timelines - Cannot export on about:blank - suggested filename containing a colon silently fails
        https://bugs.webkit.org/show_bug.cgi?id=196109

        Reviewed by Timothy Hatcher.

        * inspector/unit-tests/file-utilities-expected.txt: Added.
        * inspector/unit-tests/file-utilities.html: Added.
        Tests for FileUtilities.js

        * inspector/unit-tests/object-utilities.html:
        * inspector/unit-tests/promise-utilities.html:

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

        [ Mac WK2 ] Layout Test http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=194350
        <rdar://problem/47937466>

        Reviewed by Alex Christensen.

        Bypass the HTMLPreloadScanner in the test or compass.jpg resource may end up getting loaded twice and log extra
        lines in the test output.

        * 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/resources/frame-with-insecure-image-with-enforced-and-report-policies.php:
        * platform/mac-wk2/TestExpectations:
        * platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:

2019-03-21  Simon Fraser  <simon.fraser@apple.com>

        Unreviewed test gardening.

        Fix this test by turning on async scrolling so that mock scrollbars don't show up.

        * fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking-expected.html:

2019-03-21  Simon Fraser  <simon.fraser@apple.com>

        Unreviewed test gardening.

        Revert some iOS layout test results that were rebaselined with async scrolling enabled.

        * platform/ios-wk2/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: Removed.
        * platform/ios-wk2/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Removed.
        * platform/ios-wk2/compositing/layer-creation/scroll-partial-update-expected.txt: Removed.
        * platform/ios-wk2/compositing/overflow/content-gains-scrollbars-expected.txt: Removed.
        * platform/ios-wk2/compositing/overflow/overflow-scroll-expected.txt:
        * platform/ios-wk2/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: Removed.
        * platform/ios-wk2/compositing/overflow/overflow-scrollbar-layers-expected.txt: Removed.
        * platform/ios-wk2/compositing/overflow/remove-overflow-crash2-expected.txt:
        * platform/ios-wk2/compositing/overflow/scrollbar-painting-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * platform/ios/compositing/layers-inside-overflow-scroll-expected.txt:
        * platform/ios/compositing/overflow/scroll-ancestor-update-expected.txt:
        * platform/ios/compositing/reflections/nested-reflection-on-overflow-expected.txt:
        * platform/ios/compositing/self-painting-layers-expected.txt:

2019-03-21  Sihui Liu  <sihui_liu@apple.com>

        Fix key path extraction code in IndexedDB to check own property
        https://bugs.webkit.org/show_bug.cgi?id=196099

        Reviewed by Ryosuke Niwa.

        Rebaseline the tests because we will have same exception but different exception messages after the patch.

        * storage/indexeddb/clone-exception-expected.txt:
        * storage/indexeddb/clone-exception-private-expected.txt:
        * storage/indexeddb/exceptions-expected.txt:
        * storage/indexeddb/exceptions-private-expected.txt:
        * storage/indexeddb/objectstore-basics-expected.txt:
        * storage/indexeddb/objectstore-basics-private-expected.txt:
        * storage/indexeddb/objectstore-basics-workers-expected.txt:
        * storage/indexeddb/structured-clone-expected.txt:
        * storage/indexeddb/structured-clone-private-expected.txt:
        * storage/indexeddb/wasm-exceptions-expected.txt:

2019-03-21  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Turn on async overflow scrolling by default
        https://bugs.webkit.org/show_bug.cgi?id=196011
        rdar://problem/48453859

        Reviewed by Antti Koivisto.
        
        Explicitly turn on async overflow scrolling in any test that:
        1. Used -webkit-overflow-scrolling:touch
        2. Called settings.setAsyncOverflowScrollingEnabled(true)

        * accessibility/ios-simulator/scroll-in-overflow-div.html:
        * compositing/clipping/border-radius-async-overflow-clipping-layer.html:
        * compositing/clipping/border-radius-async-overflow-non-stacking.html:
        * compositing/clipping/border-radius-async-overflow-stacking.html:
        * compositing/geometry/fixed-inside-overflow-scroll.html:
        * compositing/ios/overflow-scroll-touch-tiles.html:
        * compositing/ios/overflow-scroll-update-overlap.html:
        * compositing/layer-creation/absolute-in-async-overflow-scroll.html:
        * compositing/overflow/absolute-in-overflow-expected.html:
        * compositing/overflow/absolute-in-overflow.html:
        * compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
        * compositing/overflow/iframe-inside-overflow-clipping.html:
        * compositing/overflow/nested-scrolling.html:
        * compositing/overflow/overflow-auto-with-touch-expected.txt:
        * compositing/overflow/overflow-auto-with-touch-no-overflow.html:
        * compositing/overflow/overflow-auto-with-touch-toggle.html:
        * compositing/overflow/overflow-auto-with-touch.html:
        * compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html:
        * compositing/overflow/overflow-hidden-with-touch.html:
        * compositing/overflow/overflow-overlay-with-touch-expected.txt:
        * compositing/overflow/overflow-overlay-with-touch-no-overflow.html:
        * compositing/overflow/overflow-overlay-with-touch.html:
        * compositing/overflow/overflow-scroll-with-touch-no-overflow.html:
        * compositing/overflow/overflow-scroll.html:
        * compositing/overflow/overflow-visible-with-touch.html:
        * compositing/overflow/remove-overflow-crash.html:
        * compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * compositing/overflow/scrolling-content-clip-to-viewport.html:
        * compositing/overflow/scrolling-without-painting.html:
        * compositing/overflow/should-not-override-z-index-for-element-with-non-auto-z-index-and-overflow-scroll-and-touch.html:
        * compositing/overflow/subpixel-overflow.html:
        * compositing/overflow/textarea-scroll-touch-expected.txt:
        * compositing/overflow/textarea-scroll-touch.html:
        * compositing/overflow/updating-scrolling-content.html:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants.html:
        * compositing/scrolling/fixed-inside-scroll-expected.html:
        * compositing/scrolling/fixed-inside-scroll.html:
        * compositing/scrolling/overflow-scrolling-layers-are-self-painting.html:
        * compositing/scrolling/touch-scroll-to-clip.html:
        * compositing/scrolling/touch-scrolling-repaint-expected.html:
        * compositing/scrolling/touch-scrolling-repaint-spans-expected.html:
        * compositing/scrolling/touch-scrolling-repaint-spans.html:
        * compositing/scrolling/touch-scrolling-repaint.html:
        * css3/scroll-snap/nested-elements.html:
        * css3/scroll-snap/scroll-snap-children-with-overflow.html:
        * css3/scroll-snap/scroll-snap-offsets.html:
        * css3/scroll-snap/scroll-snap-positions.html:
        * css3/scroll-snap/scroll-snap-programmatic-overflow-scroll.html:
        * css3/scroll-snap/scroll-snap-style-changed-align.html:
        * fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow.html:
        * fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html:
        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html:
        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html:
        * fast/events/touch/ios/drag-block-without-overflow-scroll.html:
        * fast/scrolling/ios/change-scrollability-on-content-resize-nested.html:
        * fast/scrolling/ios/change-scrollability-on-content-resize.html:
        * fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
        * fast/scrolling/ios/fixed-inside-overflow-inside-iframe-expected.html:
        * fast/scrolling/ios/fixed-inside-overflow-inside-iframe.html:
        * fast/scrolling/ios/iframe-inside-overflow-clipping.html:
        * fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor.html:
        * fast/scrolling/ios/overflow-scroll-inherited.html:
        * fast/scrolling/ios/overflow-scroll-overlap-2.html:
        * fast/scrolling/ios/overflow-scroll-overlap-3.html:
        * fast/scrolling/ios/overflow-scroll-overlap-4.html:
        * fast/scrolling/ios/overflow-scroll-overlap-5.html:
        * fast/scrolling/ios/overflow-scroll-overlap.html:
        * fast/scrolling/ios/overflow-scroll-touch.html:
        * fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html:
        * fast/scrolling/ios/overflow-scrolling-ancestor-clip.html:
        * fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking.html:
        * fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking-expected.html:
        * fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking.html:
        * fast/scrolling/ios/reconcile-layer-position-recursive.html:
        * fast/scrolling/ios/remove-overflow-crash.html:
        * fast/scrolling/ios/scroll-into-view-with-top-content-inset.html:
        * fast/scrolling/ios/scrollbar-hiding.html:
        * fast/scrolling/ios/scrolling-content-clip-to-viewport.html:
        * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor.html:
        * fast/scrolling/ios/table-cell-touch-scrolling.html:
        * fast/scrolling/ios/textarea-scroll-touch.html:
        * fast/scrolling/ios/touch-scroll-back-forward.html:
        * fast/scrolling/ios/touch-scroll-pointer-events-none.html:
        * fast/scrolling/ios/touch-stacking.html:
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: Added.
        * platform/ios-wk2/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Added.
        * platform/ios-wk2/compositing/layer-creation/scroll-partial-update-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/content-gains-scrollbars-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/overflow-scroll-expected.txt:
        * platform/ios-wk2/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/overflow-scrollbar-layers-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/remove-overflow-crash2-expected.txt:
        * platform/ios-wk2/compositing/overflow/scrollbar-painting-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * platform/ios/compositing/layers-inside-overflow-scroll-expected.txt:
        * platform/ios/compositing/overflow/scroll-ancestor-update-expected.txt:
        * platform/ios/compositing/reflections/nested-reflection-on-overflow-expected.txt:
        * platform/ios/compositing/self-painting-layers-expected.txt:
        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit.html:
        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position.html:
        * platform/ios/fast/scrolling/find-text-in-overflow-node.html:
        * platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html:
        * platform/mac/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
        * pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html:
        * scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll-expected.html:
        * scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll.html:
        * scrollingcoordinator/ios/relative-layer-should-move-with-scroll-expected.html:
        * scrollingcoordinator/ios/relative-layer-should-move-with-scroll.html:
        * scrollingcoordinator/ios/scroll-element-at-point.html:
        * scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent.html:
        * scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent.html:
        * scrollingcoordinator/scrolling-tree/overflow-in-fixed.html:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html:
        * scrollingcoordinator/scrolling-tree/positioned-nodes.html:
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role.html:
        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers.html:
        * scrollingcoordinator/scrolling-tree/reparent-with-layer-removal.html:
        * scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:

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

        [Web Animations] JS wrapper may be deleted while animation is yet to dispatch its finish event
        https://bugs.webkit.org/show_bug.cgi?id=196118
        <rdar://problem/46614137>

        Reviewed by Ryosuke Niwa.

        Add a test that starts a short animation, sets a custom property on it, registers a "finish" event listener on it and deletes
        the sole reference to it in the JS world before triggering garbage collection. Prior to this fix, this test would time out
        because the JS wrapper would be garbage-collected prior to the animation completing and thus the event listener would not
        be called. To complete successfully, this test checks that it receives the event and its target is the same animation object
        that was originally created by checking the custom property is still set.

        * webanimations/js-wrapper-kept-alive-expected.txt: Added.
        * webanimations/js-wrapper-kept-alive.html: Added.

2019-03-21  Youenn Fablet  <youenn@apple.com>

        Cache API and IDB space usages should be initialized on first quota check
        https://bugs.webkit.org/show_bug.cgi?id=195707

        Reviewed by Chris Dumez.

        * TestExpectations:
        Marking http/tests/cache-storage/cache-clearing-origin.https.html as
        flaky on iOS as it is already marked flaky in MacOS.
        * platform/mac-wk2/TestExpectations:
        * http/tests/IndexedDB/storage-limit-1.https-expected.txt: Added.
        * http/tests/IndexedDB/storage-limit-1.https.html: Added.
        * http/tests/IndexedDB/storage-limit-2.https-expected.txt: Added.
        * http/tests/IndexedDB/storage-limit-2.https.html: Added.
        * http/tests/IndexedDB/storage-limit.https.html:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        Remove the SVG tear off objects for SVGPoint, SVGPointList and SVGAnimatedPointList
        https://bugs.webkit.org/show_bug.cgi?id=195905

        Reviewed by Simon Fraser.

        * svg/dom/SVGPointList-basics-expected.txt:
        * svg/dom/SVGPointList-basics.xhtml:
        This change is required because SVGPointList will be following the SVG2
        specs regarding adding new items to the list. 

        See https://www.w3.org/TR/SVG/types.html#TermListInterface.

2019-03-21  Zalan Bujtas  <zalan@apple.com>

        Do not insert the first-letter anonymous container until after we've constructed the first-letter renderer.
        https://bugs.webkit.org/show_bug.cgi?id=195919
        <rdar://problem/48573434>

        Reviewed by Brent Fulgham.

        * fast/css/first-letter-and-float-crash-expected.txt: Added.
        * fast/css/first-letter-and-float-crash.html: Added.
        * platform/mac/TestExpectations:

2019-03-21  Eric Carlson  <eric.carlson@apple.com>

        Add UI process WebRTC runtime logging.
        https://bugs.webkit.org/show_bug.cgi?id=196020
        <rdar://problem/49071443>

        Reviewed by Youenn Fablet.

        * inspector/console/webcore-logging.html:
        * inspector/console/webcore-logging-expected.txt:

2019-03-21  Alex Christensen  <achristensen@webkit.org>

        Add SPI to inform applications of WKContentRuleList actions
        https://bugs.webkit.org/show_bug.cgi?id=195965
        <rdar://problem/42664365>

        Reviewed by Geoff Garen.

        * http/tests/contentextensions/popups-expected.txt:
        Because popups now use UserContentProvider.processContentRuleListsForLoad like everything else,
        it now prints messages to the debug console.  That is a desired improvement, so expectations are updated accordingly.

2019-03-21  Simon Fraser  <simon.fraser@apple.com>

        Add an internal feature flag to disable the -webkit-overflow-scrolling CSS property
        https://bugs.webkit.org/show_bug.cgi?id=196058
        rdar://problem/49078202

        Reviewed by Antti Koivisto.
        
        Add tests testing that the stacking-context side-effects -webkit-overflow-scrolling:touch
        go away when it's disabled.

        * fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking-expected.html: Added.
        * fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking.html: Added.
        * fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking-expected.html: Added.
        * fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking.html: Added.

2019-03-21  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r243269.

        * inspector/timeline/line-column-expected.txt:

2019-03-21  Antti Koivisto  <antti@apple.com>

        UI-process hit-testing needs to know about containing block relationships
        https://bugs.webkit.org/show_bug.cgi?id=195845
        <rdar://problem/48949633>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/overflow-scroll-overlap-5-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-5.html: Added.

2019-03-21  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rebaseline test after failure in 243211.
        https://bugs.webkit.org/show_bug.cgi?id=195934.

        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:

2019-03-21  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Start tracking implicit transitions at mousemove
        https://bugs.webkit.org/show_bug.cgi?id=196054
        <rdar://problem/49093840>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/0ms-delay-0ms-transition-on-mousemove-expected.txt: Added.
        * fast/events/touch/ios/content-observation/0ms-delay-0ms-transition-on-mousemove.html: Added.
        * fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove-expected.txt: Added.
        * fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove.html: Added.
        * fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-mousemove-expected.txt: Added.
        * fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-mousemove.html: Added.
        * fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-touch-start-expected.txt: Added.
        * fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-touch-start.html: Added.

2019-03-21  Simon Fraser  <simon.fraser@apple.com>

        Absolute in stacking-context scroller jiggles when scrolled
        https://bugs.webkit.org/show_bug.cgi?id=196010

        Reviewed by Zalan Bujtas.

        * compositing/overflow/absolute-in-overflow-expected.html: Added.
        * compositing/overflow/absolute-in-overflow.html: Added.

2019-03-21  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Start tracking implicit transitions at touchStart
        https://bugs.webkit.org/show_bug.cgi?id=196051
        <rdar://problem/49092952>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/0ms-transition-on-touch-start-expected.txt: Added.
        * fast/events/touch/ios/content-observation/0ms-transition-on-touch-start.html: Added.
        * fast/events/touch/ios/content-observation/100ms-transition-on-touch-start-expected.txt: Added.
        * fast/events/touch/ios/content-observation/100ms-transition-on-touch-start.html: Added.
        * fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-expected.txt: Added.
        * fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start.html: Added.
        * fast/events/touch/ios/content-observation/transition-on-touch-start-and-remove-expected.txt: Added.
        * fast/events/touch/ios/content-observation/transition-on-touch-start-and-remove.html: Added.

2019-03-21  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r243250.

        Causing 109 Failures and 2 crashes on iOS Sim Debug
        OpenSource/Internal queues

        Reverted changeset:

        "[iOS WK2] Turn on async overflow scrolling by default"
        https://bugs.webkit.org/show_bug.cgi?id=196011
        https://trac.webkit.org/changeset/243250

2019-03-21  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ and WPE gardening after r243278.

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

2019-03-21  Antti Koivisto  <antti@apple.com>

        Use immediateScrollElementAtContentPointToOffset for scroll overlap tests
        https://bugs.webkit.org/show_bug.cgi?id=195943

        Reviewed by Simon Fraser.

        This is much faster and simpler than simulated touch events.

        * fast/scrolling/ios/overflow-scroll-overlap-2.html:
        * fast/scrolling/ios/overflow-scroll-overlap-3.html:
        * fast/scrolling/ios/overflow-scroll-overlap-4.html:
        * fast/scrolling/ios/overflow-scroll-overlap.html:

        This API doesn't respect touch-action property, so stop using it. Instead restore
        the main scrollview to the initial position explicitly after scroll.

        * fast/scrolling/resources/overflow-scroll-overlap.js:
        (async.runTest):
        * resources/ui-helper.js:
        (return.new.Promise.):
        (return.new.Promise):

        Add a Promise returning helper.

2019-03-20  Youenn Fablet  <youenn@apple.com>

        Compute quota after network process restart based on default quota and space used
        https://bugs.webkit.org/show_bug.cgi?id=195804

        Reviewed by Chris Dumez.

        * http/wpt/cache-storage/cache-quota-after-restart.any-expected.txt: Added.
        * http/wpt/cache-storage/cache-quota-after-restart.any.html: Added.
        * http/wpt/cache-storage/cache-quota-after-restart.any.js: Added.
        (promise_test.async):

2019-03-20  Youenn Fablet  <youenn@apple.com>

        Include WAL and SHM file size in IDB database size computation
        https://bugs.webkit.org/show_bug.cgi?id=195688

        Reviewed by Brady Eidson.

        * storage/websql/open-database-creation-callback.html:
        Bump quota for this test since WAL files are not included in quota computation.

2019-03-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Timeline should show when events preventDefault() was called on an event or not
        https://bugs.webkit.org/show_bug.cgi?id=176824
        <rdar://problem/34290931>

        Reviewed by Timothy Hatcher.

        Original patch by Joseph Pecoraro <pecoraro@apple.com>.

        * inspector/timeline/resources/timeline-event-utilities.js: Added.
        (finishRecording):
        (TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
        (TestPage.registerInitializer):
        Helper code for creating a recording from a function.

        * inspector/timeline/timeline-event-CancelAnimationFrame.html: Added.
        * inspector/timeline/timeline-event-CancelAnimationFrame-expected.txt: Added.
        * inspector/timeline/timeline-event-EventDispatch.html: Added.
        * inspector/timeline/timeline-event-EventDispatch-expected.txt: Added.
        * inspector/timeline/timeline-event-FireAnimationFrame.html: Added.
        * inspector/timeline/timeline-event-FireAnimationFrame-expected.txt: Added.
        * inspector/timeline/timeline-event-RequestAnimationFrame.html: Added.
        * inspector/timeline/timeline-event-RequestAnimationFrame-expected.txt: Added.
        * inspector/timeline/timeline-event-TimerFire.html: Added.
        * inspector/timeline/timeline-event-TimerFire-expected.txt: Added.
        * inspector/timeline/timeline-event-TimerInstall.html: Added.
        * inspector/timeline/timeline-event-TimerInstall-expected.txt: Added.
        * inspector/timeline/timeline-event-TimerRemove.html: Added.
        * inspector/timeline/timeline-event-TimerRemove-expected.txt: Added.

2019-03-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Styles Redesign: Editing selector should not hide the rule
        https://bugs.webkit.org/show_bug.cgi?id=178489
        <rdar://problem/35062434>

        Reviewed by Timothy Hatcher.

        * inspector/unit-tests/multimap.html: Added.
        * inspector/unit-tests/multimap-expected.txt: Added.

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

        Unreviewed, rebaseline two tests after r243241.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:

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

        [ iOS WK2 ] Layout Test imported/w3c/web-platform-tests/webrtc/simplecall.https.html is flaky crashing
        https://bugs.webkit.org/show_bug.cgi?id=191707

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Skip crashing test.

2019-03-20  Timothy Hatcher  <timothy@apple.com>

        Unreviewed test gardening after r243229.

        * inspector/css/shadow-scoped-style-expected.txt: Rebaseline.
        * platform/mac-highsierra/inspector/css/shadow-scoped-style-expected.txt: Added.
        * platform/mac-highsierra/printing/width-overflow-expected.txt: Added.
        * platform/mac-sierra/inspector/css/shadow-scoped-style-expected.txt: Added.
        * platform/mac-sierra/printing/width-overflow-expected.txt: Added.
        * platform/mac/printing/width-overflow-expected.txt: Rebaseline.

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

        [ Mac WK2 ] REGRESSION (r239333) Flaky ASSERTION FAILED: m_uncommittedState.state == State::Committed on http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html
        https://bugs.webkit.org/show_bug.cgi?id=194225
        <rdar://problem/47820247>

        Unreviewed, unskip the test as it no longer appears to be flaky.

        * platform/mac-wk2/TestExpectations:

2019-03-20  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Turn on async overflow scrolling by default
        https://bugs.webkit.org/show_bug.cgi?id=196011
        rdar://problem/48453859

        Reviewed by Antti Koivisto.

        New baselines, and skip some RTL tests that need a bit of work (webkit.org/b/196013).

        * compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt:
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: Copied from LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt.
        * platform/ios-wk2/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Copied from LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt.
        * platform/ios-wk2/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Added.
        * platform/ios-wk2/compositing/layer-creation/scroll-partial-update-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/content-gains-scrollbars-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/overflow-scroll-expected.txt:
        * platform/ios-wk2/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/overflow-scrollbar-layers-expected.txt: Added.
        * platform/ios-wk2/compositing/overflow/remove-overflow-crash2-expected.txt:
        * platform/ios-wk2/compositing/overflow/scrollbar-painting-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * platform/ios/compositing/layers-inside-overflow-scroll-expected.txt:
        * platform/ios/compositing/overflow/scroll-ancestor-update-expected.txt:
        * platform/ios/compositing/reflections/nested-reflection-on-overflow-expected.txt:
        * platform/ios/compositing/self-painting-layers-expected.txt:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:

2019-03-20  Youenn Fablet  <youenn@apple.com>

        Have smaller default quotas for third party frames
        https://bugs.webkit.org/show_bug.cgi?id=195841

        Reviewed by Geoffrey Garen.

        * http/wpt/cache-storage/quota-third-party.https-expected.txt: Added.
        * http/wpt/cache-storage/quota-third-party.https.html: Added.
        * http/wpt/cache-storage/resources/quota-third-party-iframe.html: Added.

2019-03-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: DOM: include window as part of any event listener chain
        https://bugs.webkit.org/show_bug.cgi?id=195730
        <rdar://problem/48916872>

        Reviewed by Timothy Hatcher.

        * inspector/dom/getEventListenersForNode.html:
        * inspector/dom/getEventListenersForNode-expected.txt:
        * inspector/dom/setEventListenerDisabled.html:
        * inspector/dom/event-listener-add-remove.html:

2019-03-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Debugger: virtualize the list of variables in the Scope sidebar
        https://bugs.webkit.org/show_bug.cgi?id=192648
        <rdar://problem/46800949>

        Reviewed by Joseph Pecoraro.

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

2019-03-20  Dean Jackson  <dino@apple.com>

        [iOS] Enable fast clicking everywhere
        https://bugs.webkit.org/show_bug.cgi?id=196023
        <rdar://problem/49073589>

        Reviewed by Wenson Hsieh.

        Add a new test for the case where "Fast Clicks Everywhere" is explicitly
        set to false. This required implementing a humanSpeedZoomByDoubleTappingAt
        variation.

        * fast/events/ios/ipad/fast-click-always-expected.txt:
        * fast/events/ios/ipad/fast-click-always.html:
        * fast/events/ios/ipad/fast-click-not-always-expected.txt: Added.
        * fast/events/ios/ipad/fast-click-not-always.html:
        * resources/ui-helper.js:
        (window.UIHelper.humanSpeedZoomByDoubleTappingAt): New helper function that pauses between
        double taps, and resolves when the zoom finishes.

2019-03-19  Ryosuke Niwa  <rniwa@webkit.org>

        [CSS OM] StyledElementInlineStylePropertyMap creates a Ref cycle with its owner element
        https://bugs.webkit.org/show_bug.cgi?id=195987

        Reviewed by Simon Fraser.

        Added a regression test.

        * css-typedom/attribute-style-map-should-not-leak-every-element-expected.txt: Added.
        * css-typedom/attribute-style-map-should-not-leak-every-element.html: Added.

2019-03-20  Antoine Quint  <graouts@apple.com>

        REGRESSION(r240634): Element::hasPointerCapture() passes a JS-controlled value directly into a HashMap as a key
        https://bugs.webkit.org/show_bug.cgi?id=195683

        Reviewed by Alex Christensen.

        Adding the test that was supposed to have landed along with r242893.

        * pointerevents/pointer-id-crash-expected.txt: Added.
        * pointerevents/pointer-id-crash.html: Added.

2019-03-20  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r243161.

        * inspector/timeline/line-column-expected.txt:
        Update expected line number for code movement inside Web Inspector's injected script.

2019-03-19  Ryosuke Niwa  <rniwa@webkit.org>

        appendChild should throw when inserting an ancestor of a template into its content adopted to another document
        https://bugs.webkit.org/show_bug.cgi?id=195984

        Reviewed by Darin Adler.

        Added a regression test.

        * fast/dom/insert-template-parent-into-adopted-content-expected.txt: Added.
        * fast/dom/insert-template-parent-into-adopted-content.html: Added.

2019-03-20  Simon Fraser  <simon.fraser@apple.com>

        Unreviewed test gardening. Fix the results for absolute-in-async-overflow-scroll.html.

        * compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Copied from LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt.

2019-03-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Debugger: move breakpoint storage to use `WI.ObjectStore`
        https://bugs.webkit.org/show_bug.cgi?id=192719
        <rdar://problem/46746857>

        Reviewed by Timothy Hatcher.

        * inspector/unit-tests/objectStore/resources/objectStore-utilities.js:
        * inspector/unit-tests/objectStore/put.html: Renamed from LayoutTests/inspector/unit-tests/objectStore/add.html.
        * inspector/unit-tests/objectStore/put-expected.txt: Renamed from LayoutTests/inspector/unit-tests/objectStore/add-expected.txt.
        * inspector/unit-tests/objectStore/putObject.html: Renamed from LayoutTests/inspector/unit-tests/objectStore/addObject.html.
        * inspector/unit-tests/objectStore/putObject-expected.txt: Renamed from LayoutTests/inspector/unit-tests/objectStore/addObject-expected.txt.
        * inspector/unit-tests/objectStore/delete-expected.txt:
        * inspector/unit-tests/objectStore/delete.html:
        * inspector/unit-tests/objectStore/deleteObject-expected.txt:
        * inspector/unit-tests/objectStore/deleteObject.html:
        * inspector/unit-tests/objectStore/clear.html:
        Replace `add` with `put` so that if a key already exists, it is overridden.

2019-03-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Database: lazily create the agent
        https://bugs.webkit.org/show_bug.cgi?id=195587
        <rdar://problem/48791735>

        Reviewed by Timothy Hatcher.

        * inspector/protocol/backend-dispatcher-argument-errors.html:
        * inspector/runtime/CommandLineAPI-inspect.html:

2019-03-20  Simon Fraser  <simon.fraser@apple.com>

        Some elements lag behind async overflow scrolling on palace-games.com
        https://bugs.webkit.org/show_bug.cgi?id=195934

        Reviewed by Zalan Bujtas.
        
        Add a test with more combinations of overflow, containing block and compositing ancestor.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html: Added.

2019-03-20  Simon Fraser  <simon.fraser@apple.com>

        Explicitly trigger compositing for layers that need to be moved by ScrollingTreePositionedNodes
        https://bugs.webkit.org/show_bug.cgi?id=195710

        Reviewed by Zalan Bujtas.

        * compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Added.
        * compositing/layer-creation/absolute-in-async-overflow-scroll.html: Added.

2019-03-20  Devin Rousso  <drousso@apple.com>

        Web Inspector: Search: allow DOM searches to be case sensitive
        https://bugs.webkit.org/show_bug.cgi?id=194673
        <rdar://problem/48087577>

        Reviewed by Timothy Hatcher.

        * inspector/dom/dom-search-caseSensitive.html: Copied from LayoutTests/inspector/dom/dom-search.html.
        * inspector/dom/dom-search-caseSensitive-expected.txt: Copied from LayoutTests/inspector/dom/dom-search-expected.txt.
        * inspector/dom/dom-search-expected.txt:
        * inspector/dom/resources/dom-search-queries.js:
        (TestPage.registerInitializer):

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

        Unreviewed test gardening.

        * TestExpectations: This test case asserts on all platforms.
        * platform/mac/TestExpectations:

2019-03-20  Alicia Boya García  <aboya@igalia.com>

        [MSE][GStreamer] Fix handling of resolution changes in AppendPipeline
        https://bugs.webkit.org/show_bug.cgi?id=195855

        Reviewed by Xabier Rodriguez-Calvar.

        * media/media-source/content/test-green-6s-320x240.mp4: Added.
        * media/media-source/content/test-red-3s-480x360.mp4: Added.
        * media/media-source/media-source-samples-resolution-change-expected.txt: Added.
        * media/media-source/media-source-samples-resolution-change.html: Added.

2019-03-20  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Implement support for new meter ARIA role
        https://bugs.webkit.org/show_bug.cgi?id=195966

        Reviewed by Chris Fleizach.

        Add new role to the existing role exposure tests and update the
        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:
        * platform/mac-wk2/accessibility/roles-exposed-expected.txt:

2019-03-19  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening for macOS.

        * platform/mac/TestExpectations:

2019-03-19  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement FIDO AppID extension
        https://bugs.webkit.org/show_bug.cgi?id=143491
        <rdar://problem/48298273>

        Reviewed by Brent Fulgham.

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

2019-03-19  Ryosuke Niwa  <rniwa@webkit.org>

        Rebaseline the test after r243175. It got somehow landed with failing expectations.

        * fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt:

2019-03-19  John Wilander  <wilander@apple.com>

        Resource Load Statistics (experimental): Clear non-cookie website data for sites that have been navigated to, with link decoration, by a prevalent resource
        https://bugs.webkit.org/show_bug.cgi?id=195923
        <rdar://problem/49001272>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt: Added.
        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html: Added.

2019-03-19  Ryosuke Niwa  <rniwa@webkit.org>

        Reparenting during a mutation event inside appendChild could result in a circular DOM tree
        https://bugs.webkit.org/show_bug.cgi?id=192825

        Reviewed by Zalan Bujtas.

        Added regression tests.

        * fast/dom/append-child-with-mutation-event-removal-and-circular-insertion-expected.txt: Added.
        * fast/dom/append-child-with-mutation-event-removal-and-circular-insertion.html: Added.
        * fast/dom/append-child-with-mutation-event-removal-and-circular-shadow-insertion-expected.txt: Added.
        * fast/dom/append-child-with-mutation-event-removal-and-circular-shadow-insertion.html: Added.
        * fast/dom/append-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt: Added.
        * fast/dom/append-child-with-mutation-event-removal-and-circular-template-insertion.html: Added.
        * fast/dom/insert-child-with-mutation-event-removal-and-circular-insertion-expected.txt: Added.
        * fast/dom/insert-child-with-mutation-event-removal-and-circular-insertion.html: Added.
        * fast/dom/insert-child-with-mutation-event-removal-and-circular-shadow-insertion-expected.txt: Added.
        * fast/dom/insert-child-with-mutation-event-removal-and-circular-shadow-insertion.html: Added.
        * fast/dom/insert-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt: Added.
        * fast/dom/insert-child-with-mutation-event-removal-and-circular-template-insertion.html: Added.
        * fast/dom/replace-child-with-mutation-event-removal-and-circular-insertion-expected.txt: Added.
        * fast/dom/replace-child-with-mutation-event-removal-and-circular-insertion.html: Added.
        * fast/dom/replace-child-with-mutation-event-removal-and-circular-shadow-insertion-expected.txt: Added.
        * fast/dom/replace-child-with-mutation-event-removal-and-circular-shadow-insertion.html: Added.
        * fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt: Added.
        * fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion.html: Added.

2019-03-19  Timothy Hatcher  <timothy@apple.com>

        REGRESSION (r239904): Update dark mode defines in a few places that got missed.
        https://bugs.webkit.org/show_bug.cgi?id=195958

        Reviewed by Megan Gardner.

        * inspector/css/shadow-scoped-style-expected.txt: Rebaseline.
        * platform/mac/printing/width-overflow-expected.txt: Rebaseline.

2019-03-19  Joanmarie Diggs  <jdiggs@igalia.com>

        REGRESSION(r241586:r241590): [GTK] Accessibility tests in need of rebase
        https://bugs.webkit.org/show_bug.cgi?id=195129

        Reviewed by Žan Doberšek.

        * accessibility/gtk/object-attributes-expected.txt:
        * accessibility/gtk/xml-roles-exposed-expected.txt:
        * platform/gtk/TestExpectations:
        * platform/gtk/accessibility/image-link-expected.txt:
        * platform/gtk/accessibility/image-map2-expected.txt:
        * platform/gtk/accessibility/lists-expected.txt:
        * platform/gtk/accessibility/math-multiscript-attributes-expected.txt:
        * platform/gtk/accessibility/roles-exposed-expected.txt:
        * platform/gtk/accessibility/table-attributes-expected.txt:
        * platform/gtk/accessibility/table-cell-spans-expected.txt:
        * platform/gtk/accessibility/table-cells-expected.txt:
        * platform/gtk/accessibility/table-one-cell-expected.txt:
        * platform/gtk/accessibility/table-sections-expected.txt:
        * platform/gtk/accessibility/table-with-rules-expected.txt:
        * platform/gtk/accessibility/transformed-element-expected.txt:

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

        media/track/track-in-band-style.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=195922

        Reviewed by Eric Carlson.

        * media/track/track-in-band-style-expected.txt:
        * media/track/track-in-band-style.html:
        - Check element.style instead of getComputedStyle(element) to get the
          CSS colors as this seems more reliable.
        - For the foreground text color, check cueNode.style.color instead of
          cueDisplayElement given that the implementation sets the CSS attribute
          on the cueNode, not the cueDisplayElement.

2019-03-19  Devin Rousso  <drousso@apple.com>

        Unreviewed, fix test failures after r243119.

        * inspector/timeline/line-column.html:
        * inspector/timeline/setInstruments-programmatic-capture.html:
        Make sure to call `enable` for any ancillary agents.

2019-03-19  Alicia Boya García  <aboya@igalia.com>

        [MSE] Use tolerance in eraseBeginTime
        https://bugs.webkit.org/show_bug.cgi?id=195911

        Reviewed by Jer Noble.

        * media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt: Added.
        * media/media-source/media-source-append-twice-overlapping-sync-frame.html: Added.

2019-03-19  Antti Koivisto  <antti@apple.com>

        Layer with no backing store should still hit-test over a scroller
        https://bugs.webkit.org/show_bug.cgi?id=195378
        <rdar://problem/48652078>

        Reviewed by Simon Fraser.

        Reorganize the tests a bit and add some new ones.

        * fast/scrolling/ios/overflow-scroll-overlap-2-expected.txt:
        * fast/scrolling/ios/overflow-scroll-overlap-2.html:
        * fast/scrolling/ios/overflow-scroll-overlap-3-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-3.html: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-4-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-4.html: Added.
        * fast/scrolling/ios/overflow-scroll-overlap.html:
        * fast/scrolling/resources/overflow-scroll-overlap.js: Added.
        (sleep):
        (async.runTest):
        (logScroll):
        (outputCase):

2019-03-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r243092 and r243096.
        https://bugs.webkit.org/show_bug.cgi?id=195926

        Caused assertions in tests (Requested by smfr on #webkit).

        Reverted changesets:

        "Layer with no backing store should still hit-test over a
        scroller"
        https://bugs.webkit.org/show_bug.cgi?id=195378
        https://trac.webkit.org/changeset/243092

        "Try to fix Windows build."
        https://trac.webkit.org/changeset/243096

2019-03-18  Megan Gardner  <megan_gardner@apple.com>

        Smart Insert for paragraphs.
        https://bugs.webkit.org/show_bug.cgi?id=194880

        Reviewed by Ryosuke Niwa.

        List tests are covered by paste-list-00*.
        Table tests are covered by paste-table-00* and paste-into-table-*.

        * editing/pasteboard/smart-paste-paragraph-001-expected.txt: Added.
        * editing/pasteboard/smart-paste-paragraph-001.html: Added.
        * editing/pasteboard/smart-paste-paragraph-002-expected.txt: Added.
        * editing/pasteboard/smart-paste-paragraph-002.html: Added.
        * editing/pasteboard/smart-paste-paragraph-003-expected.txt: Added.
        * editing/pasteboard/smart-paste-paragraph-003.html: Added.
        * editing/pasteboard/smart-paste-paragraph-004-expected.txt: Added.
        * editing/pasteboard/smart-paste-paragraph-004.html: Added.
        * platform/ios-wk2/editing/pasteboard/paste-text-016-expected.txt:
        This needed to be rebaselined to match the new behaviour.
        * platform/ios/editing/pasteboard/smart-paste-paragraph-001-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-paragraph-002-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-paragraph-003-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-paragraph-004-expected.txt: Added.

2019-03-18  Jer Noble  <jer.noble@apple.com>

        Add experimental "alphaChannel" property to VideoConfiguration
        https://bugs.webkit.org/show_bug.cgi?id=195853

        Reviewed by Eric Carlson.

        * media/mediacapabilities/mock-decodingInfo-alphaChannel-expected.txt: Added.
        * media/mediacapabilities/mock-decodingInfo-alphaChannel.html: Added.

2019-03-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up the compiler to our WebGPU implementation
        https://bugs.webkit.org/show_bug.cgi?id=195509

        Unreviewed.

        Update after r243091.

        * webgpu/whlsl.html:

2019-03-18  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Native selection views sometimes appear in hidden editable areas after losing focus
        https://bugs.webkit.org/show_bug.cgi?id=195894
        <rdar://problem/48849989>

        Reviewed by Tim Horton.

        Add a test to verify that moving focus away from a hidden editable element doesn't cause platform selection
        views in the element to appear. See WebKit ChangeLog for more details.

        * editing/selection/ios/hide-selection-in-non-focused-element-expected.txt: Added.
        * editing/selection/ios/hide-selection-in-non-focused-element.html: Added.

2019-03-18  Antti Koivisto  <antti@apple.com>

        Layer with no backing store should still hit-test over a scroller
        https://bugs.webkit.org/show_bug.cgi?id=195378
        <rdar://problem/48652078>

        Reviewed by Simon Fraser.

        Reorganize the tests a bit and add some new ones.

        * fast/scrolling/ios/overflow-scroll-overlap-2-expected.txt:
        * fast/scrolling/ios/overflow-scroll-overlap-2.html:
        * fast/scrolling/ios/overflow-scroll-overlap-3-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-3.html: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-4-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-4.html: Added.
        * fast/scrolling/ios/overflow-scroll-overlap.html:
        * fast/scrolling/resources/overflow-scroll-overlap.js: Added.
        (sleep):
        (async.runTest):
        (logScroll):
        (outputCase):

2019-03-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up the compiler to our WebGPU implementation
        https://bugs.webkit.org/show_bug.cgi?id=195509

        Reviewed by Dean Jackson.

        * webgpu/whlsl-expected.html: Added.
        * webgpu/whlsl.html: Added.

2019-03-18  Justin Fan  <justin_fan@apple.com>

        [Web GPU] GPUAdapter.createDevice -> GPUAdapter.requestDevice
        https://bugs.webkit.org/show_bug.cgi?id=195781

        Reviewed by Myles C. Maxfield.

        Update affected Web GPU tests.

        * webgpu/adapter-options.html:
        * webgpu/js/webgpu-functions.js:
        (async.getBasicDevice):
        * webgpu/queue-creation.html:
        * webgpu/webgpu-enabled.html:

2019-03-18  Justin Fan  <justin_fan@apple.com>

        [Web GPU] API updates: GPUTexture.createDefaultView and type-safe GPURenderPassEncoder.setPipeline
        https://bugs.webkit.org/show_bug.cgi?id=195896

        Reviewed by Jon Lee.

        Rename createDefaultTextureView -> createDefaultView.

        * webgpu/buffer-command-buffer-races.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/js/webgpu-functions.js:
        (beginBasicRenderPass):
        * webgpu/texture-triangle-strip.html:
        * webgpu/textures-textureviews.html:

2019-03-18  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: HAR Extension for `serverIPAddress` port number
        https://bugs.webkit.org/show_bug.cgi?id=195695

        Reviewed by Matt Baker.

        * http/tests/inspector/network/har/har-basic-expected.txt:
        * http/tests/inspector/network/har/har-page-expected.txt:

2019-03-18  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed test gardening after r243024.

        * inspector/timeline/timeline-recording-expected.txt:
        * inspector/timeline/timeline-recording.html:
        Filter out the markers, but keep the display as an array.

2019-03-18  Daniel Bates  <dabates@apple.com>

        [iOS] No DOM keypress event emitted for cursor key commands when non-editable element is focused
        https://bugs.webkit.org/show_bug.cgi?id=195626
        <rdar://problem/48810626>

        Reviewed by Wenson Hsieh.

        Add some tests. These tests depend on UIKit work.

        * fast/events/ios/key-events-control-expected.txt: Added.
        * fast/events/ios/key-events-control.html: Copied from LayoutTests/fast/events/ios/key-events-meta-alt-combinations.html.
        * fast/events/ios/key-events-meta-expected.txt: Added.
        * fast/events/ios/key-events-meta.html: Copied from LayoutTests/fast/events/ios/key-events-meta-alt-combinations.html.

2019-03-18  Daniel Bates  <dabates@apple.com>

        Fix bad substitution made in r241282

        Revert substitution of "computeSubsets(modifierKeys)" back to "modiferKeySubsetsToTest" so
        that the test only checks key commands with Command and Option modifiers as opposed to all
        modifiers. That will make what the test actually tests match the checked-in expected resutls.

        * fast/events/ios/key-events-meta-alt-combinations.html:

2019-03-18  Truitt Savell  <tsavell@apple.com>

        REGRESSION: (r243032) inspector/model/remote-object.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=195892

        Unreviewed test gardening. 

        * platform/mac/TestExpectations:

2019-03-18  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Update test expectation

        Unreviewed gardening.

        Since iframe.referrerPolicy was implemented the WPE expectation
        for the test below has been out of date.
        * platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt: Update.

2019-03-18  Diego Pino Garcia  <dpino@igalia.com>

        [WPE] Unreviewed, fix test expectation linter warnings
        https://bugs.webkit.org/show_bug.cgi?id=195881

        * platform/wpe/TestExpectations:

2019-03-18  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][WPE] Fix webanimations test
        https://bugs.webkit.org/show_bug.cgi?id=189344

        Reviewed by Philippe Normand.

        GLib-based ports will have issues with recognizing the mimetype of
        zero-byte files.
        * platform/gtk/TestExpectations: Test below should pass now.
        * webanimations/css-animation-effect-target-change-and-animation-removal-crash-expected.html:
        Make it a 1-byte empty file.

2019-03-18  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][GStreamer] Mark flaky crashing test

        * platform/gtk/TestExpectations:

        Unreviewed gardening.
        * platform/gtk/TestExpectations: Mark
        imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer.html

2019-03-18  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] Rewrite HTTP source element using pushsrc base class
        https://bugs.webkit.org/show_bug.cgi?id=195631

        Reviewed by Xabier Rodriguez-Calvar.

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt:
        Update expectations, though it's not really related with this
        patch.

2019-03-18  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][GStreamer] Mark flaky crashing test

        Unreviewed gardening.
        * platform/gtk/TestExpectations: Mark
        imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-mode.html

2019-03-17  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win][WK1] Null dereference in WebFrameNetworkingContext::storageSession
        https://bugs.webkit.org/show_bug.cgi?id=195741

        Reviewed by Ross Kirsling.

        * platform/wincairo/TestExpectations: Unskipped http/tests/ssl/ping-with-unsafe-redirect.html.

2019-03-16  Jer Noble  <jer.noble@apple.com>

        Add a new MediaCapabilitiesExtensionsEnabled setting
        https://bugs.webkit.org/show_bug.cgi?id=195843

        Reviewed by Geoffrey Garen.

        * media/mediacapabilities/mock-decodingInfo-supportedConfiguration-expected.txt:
        * media/mediacapabilities/mock-decodingInfo-supportedConfiguration.html:

2019-03-16  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Software keyboard never appears when editing on some websites
        https://bugs.webkit.org/show_bug.cgi?id=195824
        <rdar://problem/48020610>

        Reviewed by Ryosuke Niwa.

        Add a layout test to verify that tapping a programmatically focused textarea that prevents touchstart still
        causes the keyboard to appear.

        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart-expected.txt: Added.
        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart.html: Added.

2019-03-16  Zalan Bujtas  <zalan@apple.com>

        [iOS] Unable to close trending window on naver.com.
        https://bugs.webkit.org/show_bug.cgi?id=195842
        <rdar://problem/48067338>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/new-content-covers-tap-target-expected.txt: Added.
        * fast/events/touch/ios/content-observation/new-content-covers-tap-target.html: Added.
        * fast/events/touch/ios/content-observation/prevent-default-on-touch-start.html: Added.

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

        Update WPT WebRTC tests up to a22a149
        https://bugs.webkit.org/show_bug.cgi?id=195831

        Reviewed by Eric Carlson.

        * tests-options.json:

2019-03-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: HAR Extension for Resource Priority
        https://bugs.webkit.org/show_bug.cgi?id=195693

        Reviewed by Devin Rousso.

        * http/tests/inspector/network/har/har-basic-expected.txt:
        * http/tests/inspector/network/har/har-page-expected.txt:

2019-03-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Timelines - Import / Export Timeline Recordings
        https://bugs.webkit.org/show_bug.cgi?id=195709
        <rdar://problem/23188921>

        Reviewed by Devin Rousso.

        * inspector/timeline/timeline-recording-expected.txt: Added.
        * inspector/timeline/timeline-recording.html: Added.

2019-03-15  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] HTMLImageElement::willRespondToMouseClickEvents returns quirk value.
        https://bugs.webkit.org/show_bug.cgi?id=195657
        <rdar://problem/48834987>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visibility-change-with-image-content-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visibility-change-with-image-content.html: Added.

2019-03-15  Dean Jackson  <dino@apple.com>

        Provide an option for an always-on fast click mode in iOS
        https://bugs.webkit.org/show_bug.cgi?id=195822
        <rdar://problem/48939357>

        Reviewed by Sam Weinig.

        New test for "always fast click" mode.

        * fast/events/ios/ipad/fast-click-always-expected.txt: Added.
        * fast/events/ios/ipad/fast-click-always.html: Copied from LayoutTests/fast/events/ios/ipad/fast-click-double-tap-sends-click-on-insignificant-zoom.html.
        * fast/events/ios/ipad/fast-click-double-tap-sends-click-on-insignificant-zoom.html:

2019-03-15  Jer Noble  <jer.noble@apple.com>

        Add a "supportedConfiguration" dictionary to MediaCapabilitiesDecodingInfo and MediaCapabilitiesEncodingInfo
        https://bugs.webkit.org/show_bug.cgi?id=195763

        Reviewed by Jon Lee.

        * media/mediacapabilities/mock-decodingInfo-supportedConfiguration-expected.txt: Added.
        * media/mediacapabilities/mock-decodingInfo-supportedConfiguration.html: Added.

2019-03-15  Simon Fraser  <simon.fraser@apple.com>

        [Async overflow Scrolling] Update positioned node layers when overflows are scrolled
        https://bugs.webkit.org/show_bug.cgi?id=195733
        rdar://problem/11642295

        Reviewed by Antti Koivisto.

        New tests that use uiController.scrollUpdatesDisabled, and are the two move/stationary
        cases.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
        * scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll-expected.html: Added.
        * scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll.html: Added.
        * scrollingcoordinator/ios/relative-layer-should-move-with-scroll-expected.html: Added.
        * scrollingcoordinator/ios/relative-layer-should-move-with-scroll.html: Added.
        * scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Fixed the last paren showing up.
        * scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt: We make positioned nodes now.

2019-03-15  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening for WinCairo port

        * platform/wincairo/TestExpectations: Unskipped http/tests/ssl and Marked them the current results.

2019-03-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: provide a way to capture a screenshot of a node from within the page
        https://bugs.webkit.org/show_bug.cgi?id=194279
        <rdar://problem/10731573>

        Reviewed by Joseph Pecoraro.

        * js/console.html:
        * js/console-expected.txt:
        * inspector/console/console-screenshot.html: Added.
        * inspector/console/console-screenshot-expected.txt: Added.
        * http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:

2019-03-14  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: re-enable some leak tests
        https://bugs.webkit.org/show_bug.cgi?id=194806

        Reviewed by Geoffrey Garen.

        * TestExpectations:
        * platform/win/TestExpectations:
        * storage/indexeddb/connection-leak-expected.txt:
        * storage/indexeddb/connection-leak-private-expected.txt:
        * storage/indexeddb/cursor-leak-expected.txt:
        * storage/indexeddb/cursor-leak-private-expected.txt:
        * storage/indexeddb/cursor-request-cycle-expected.txt:
        * storage/indexeddb/cursor-request-cycle-private-expected.txt:
        * storage/indexeddb/request-leak-expected.txt:
        * storage/indexeddb/request-leak-private-expected.txt:
        * storage/indexeddb/resources/cursor-request-cycle.js:

2019-03-14  Simon Fraser  <simon.fraser@apple.com>

        Make it possible to test scrolling tree layer manipulation more easily
        https://bugs.webkit.org/show_bug.cgi?id=195780

        Reviewed by Tim Horton.

        Add a boolean attribute 'scrollUpdatesDisabled' on UIScriptController that
        cuts off communication of scrolling tree scrolls back to the web process
        (in RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll()). This
        allows tests to trigger scrolls which run the scrolling tree layer positioning
        logic, but never get another commit from the web process that might mask
        scrolling tree bugs.
        
        WKWebView's testing protocol get @property _scrollingUpdatesDisabledForTesting,
        whose getters and setters are overridden by TestRunnerWKWebView. Plumbing
        via PageClient and WebPageProxy makes this flag reachable by RemoteScrollingCoordinatorProxy.

        * resources/ui-helper.js: Some 'async' functions that awaited promises should just return
        the promise.
        (window.UIHelper.immediateScrollTo):
        (window.UIHelper.immediateUnstableScrollTo):
        (window.UIHelper.async.delayFor): Deleted.
        (window.UIHelper.async.immediateScrollTo): Deleted.
        (window.UIHelper.async.immediateUnstableScrollTo): Deleted.

2019-03-14  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Updates to GPUCommandBuffer for new GPUCommandEncoder concept
        https://bugs.webkit.org/show_bug.cgi?id=195083
        <rdar://problem/48423591>

        Reviewed by Dean Jackson.

        Fixing build error and re-introducing rolled-out changes.
        Update existing Web GPU tests for GPUCommandEncoder and new GPUCommandBuffer.

        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/command-buffers-expected.txt:
        * webgpu/command-buffers.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/js/webgpu-functions.js:
        (beginBasicRenderPass):
        * webgpu/render-command-encoding.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:

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

        [ iOS Sim WK2 ] Layout Test quicklook/numbers.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=191711

        Unreviewed test gardening.

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

2019-03-14  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r242801): [iOS] preventDefault() on touchstart in a subframe does not prevent focusing the subframe
        https://bugs.webkit.org/show_bug.cgi?id=195749
        <rdar://problem/48892367>

        Reviewed by Tim Horton.

        Add a test to verify that tapping a subframe doesn't move focus into it subframe if the page prevents default
        on touchstart.

        * fast/events/touch/ios/no-focus-change-when-preventing-default-on-touchstart-expected.txt: Added.
        * fast/events/touch/ios/no-focus-change-when-preventing-default-on-touchstart.html: Added.

2019-03-14  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r242931.

        Causing internal watch/tv OS build failures

        Reverted changeset:

        "[Web GPU] Updates to GPUCommandBuffer for new GPUCommandQueue
        concept"
        https://bugs.webkit.org/show_bug.cgi?id=195083
        https://trac.webkit.org/changeset/242931

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

        Device orientation's permission should only require a user gesture to prompt the user
        https://bugs.webkit.org/show_bug.cgi?id=195731

        Reviewed by Geoffrey Garen.

        Update layout tests accordingly.

        * fast/device-orientation/device-motion-request-permission-denied.html:
        * fast/device-orientation/device-motion-request-permission-granted.html:
        * fast/device-orientation/device-motion-request-permission-user-gesture-expected.txt:
        * fast/device-orientation/device-orientation-request-permission-denied.html:
        * fast/device-orientation/device-orientation-request-permission-granted.html:
        * fast/device-orientation/device-orientation-request-permission-user-gesture-expected.txt:

2019-03-14  Dean Jackson  <dino@apple.com>

        Block all plugins smaller than 5x5px
        https://bugs.webkit.org/show_bug.cgi?id=195702
        <rdar://problem/28435204>

        Updating some tests to account for this change. Make the plugins
        big enough to be created.

        * compositing/plugins/small-to-large-composited-plugin.html:
        * fast/frames/resources/sandboxed-iframe-about-blank.html:
        * fast/frames/resources/sandboxed-iframe-plugins-frame-applet.html:
        * fast/frames/resources/sandboxed-iframe-plugins-frame-embed.html:
        * fast/frames/resources/sandboxed-iframe-plugins-frame-object.html:

2019-03-14  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Network - HAR Import
        https://bugs.webkit.org/show_bug.cgi?id=195642
        <rdar://problem/34820974>

        Reviewed by Devin Rousso.

        * http/tests/inspector/network/har/har-import-expected.txt: Added.
        * http/tests/inspector/network/har/har-import.html: Added.
        HAR import tests.

        * http/tests/inspector/network/har/resources/bad-version.har: Added.
        * http/tests/inspector/network/har/resources/basic.har: Added.
        * http/tests/inspector/network/har/resources/empty.har: Added.
        * http/tests/inspector/network/har/resources/webkit.org.har: Added.
        Sample HARs to test against.

2019-03-14  Zalan Bujtas  <zalan@apple.com>

        Cleanup inline boxes when list marker gets blockified
        https://bugs.webkit.org/show_bug.cgi?id=195746
        <rdar://problem/48049175>

        Reviewed by Antti Koivisto.

        * fast/block/float/list-marker-is-float-crash-expected.txt: Added.
        * fast/block/float/list-marker-is-float-crash.html: Added.

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

        Unreviewed test gardening, rebaseline tests after r241934.

        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt:
        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt:
        * fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt:
        * fast/events/touch/ios/tap-with-active-touch-end-listener-expected.txt:

2019-03-14  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: provide a way to get the contents of resources
        https://bugs.webkit.org/show_bug.cgi?id=195266
        <rdar://problem/48550911>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/resources/sample-resource.css: Added.
        * inspector/audit/resources/sample-resource.js: Added.
        * inspector/audit/run-resources.html: Added.
        * inspector/audit/run-resources-expected.txt: Added.

2019-03-14  Devin Rousso  <drousso@apple.com>

        Web Inspector: Console: getEventListeners should work for any EventTarget
        https://bugs.webkit.org/show_bug.cgi?id=195713

        Reviewed by Joseph Pecoraro.

        * inspector/console/command-line-api-getEventListeners.html:
        * inspector/console/command-line-api-getEventListeners-expected.txt:

2019-03-14  Devin Rousso  <drousso@apple.com>

        Web Inspector: Styles: `::-webkit-scrollbar*` rules aren't shown
        https://bugs.webkit.org/show_bug.cgi?id=195123
        <rdar://problem/48450148>

        Reviewed by Joseph Pecoraro.

        * inspector/css/getMatchedStylesForNode.html: Added.
        * inspector/css/getMatchedStylesForNode-expected.txt: Added.

2019-03-13  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Updates to GPUCommandBuffer for new GPUCommandQueue concept
        https://bugs.webkit.org/show_bug.cgi?id=195083
        <rdar://problem/48423591>

        Reviewed by Dean Jackson.

        Update existing Web GPU tests for GPUCommandEncoder and new GPUCommandBuffer.

        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/command-buffers-expected.txt:
        * webgpu/command-buffers.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/js/webgpu-functions.js:
        (beginBasicRenderPass):
        * webgpu/render-command-encoding.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:

2019-03-13  Alicia Boya García  <aboya@igalia.com>

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

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

2019-03-13  Dean Jackson  <dino@apple.com>

        Block all plugins smaller than 5x5px
        https://bugs.webkit.org/show_bug.cgi?id=195702
        <rdar://problem/28435204>

        Reviewed by Sam Weinig.

        New test for some small plugins. Updated existing tests
        to create plugins bigger than a threshold if necessary.

        * plugins/clicking-missing-plugin-fires-delegate.html:
        * plugins/destroy-stream-twice.html:
        * plugins/npruntime/npruntime.html:
        * plugins/object-embed-plugin-scripting.html:
        * plugins/small-plugin-blocked-expected.txt: Added.
        * plugins/small-plugin-blocked.html: Added.
        * platform/mac-wk1/TestExpectations: Skip new test on WK1.

2019-03-13  Zalan Bujtas  <zalan@apple.com>

        Use RenderBox::previousSiblingBox/nextSiblingBox in RenderMultiColumnFlow
        https://bugs.webkit.org/show_bug.cgi?id=195701
        <rdar://problem/48448658>

        Reviewed by Simon Fraser.

        * fast/ruby/crash-when-paginated-ruby-expected.txt: Added.
        * fast/ruby/crash-when-paginated-ruby.html: Added.

2019-03-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        Fix an edge case where HTMLFormElement::removeFormElement is invoked twice with the same element
        https://bugs.webkit.org/show_bug.cgi?id=195663
        <rdar://problem/48576391>

        Reviewed by Ryosuke Niwa.

        Add a layout test to exercise the scenario described in the WebCore ChangeLog.

        * fast/forms/remove-associated-element-after-gc-expected.txt: Added.
        * fast/forms/remove-associated-element-after-gc.html: Added.

2019-03-13  Nikita Vasilyev  <nvasilyev@apple.com>

        REGRESSION(r240946): Web Inspector: Styles: removing selected property doesn't update overridden status
        https://bugs.webkit.org/show_bug.cgi?id=195389
        <rdar://problem/48658929>

        Reviewed by Matt Baker.

        * inspector/css/overridden-property-expected.txt: Added.
        * inspector/css/overridden-property.html: Added.

2019-03-13  Simon Fraser  <simon.fraser@apple.com>

        Scrolling tree should reposition non-stacking order descendents of overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=195608

        Reviewed by Zalan Bujtas.

        The results of this test will change when we enable positioned nodes. It tests various
        combinations of overflow and stacking.
        
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/positioned-nodes.html: Added.

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

        Check IDB quota usage through QuotaManager
        https://bugs.webkit.org/show_bug.cgi?id=195302

        Reviewed by Chris Dumez.

        Update IDB quota test according quota limit of 400ko.
        Update WK1 test expectations to skip quota check tests.

        * http/tests/IndexedDB/resources/shared.js: Added.
        * http/tests/IndexedDB/resources/storage-limit.js: Added.
        * http/tests/IndexedDB/storage-limit.https-expected.txt: Added.
        * http/tests/IndexedDB/storage-limit.https.html: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * storage/indexeddb/resources/storage-limit.js:
        * storage/indexeddb/storage-limit-expected.txt:

2019-03-13  Truitt Savell  <tsavell@apple.com>

        (r242595) Layout Tests in imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/* are failing
        https://bugs.webkit.org/show_bug.cgi?id=195466

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-03-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Network - HAR Export duplicates blocked/send time if there was no dns/connect block
        https://bugs.webkit.org/show_bug.cgi?id=195655
        <rdar://problem/48831152>

        Reviewed by Devin Rousso.

        * http/tests/inspector/network/har/har-basic-expected.txt:
        * http/tests/inspector/network/har/har-basic.html:

2019-03-13  Antoine Quint  <graouts@apple.com>

        REGRESSION(r240634): Element::hasPointerCapture() passes a JS-controlled value directly into a HashMap as a key
        https://bugs.webkit.org/show_bug.cgi?id=195683
        <rdar://problem/48659950>

        Reviewed by Alex Christensen.

        Add a new test which would crash in debug builds prior to this fix.

        * pointerevents/pointer-id-crash-expected.txt: Added.
        * pointerevents/pointer-id-crash.html: Added.

2019-03-13  Shawn Roberts  <sroberts@apple.com>

        http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html is a flaky failure on Mac WK2
        https://bugs.webkit.org/show_bug.cgi?id=173041

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Marking as flaky until a fix lands

2019-03-12  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Update GPURenderPipelineDescriptor and add GPUColorStateDescriptor.format
        https://bugs.webkit.org/show_bug.cgi?id=195518
        <rdar://problem/46322356>

        Reviewed by Myles C. Maxfield.

        Update all tests with new enum styles and re-namings, and specify the format of the color attachment.

        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/js/webgpu-functions.js:
        (createBasicSwapChain):
        (createBasicDepthTexture):
        * webgpu/render-pipelines-expected.txt:
        * webgpu/render-pipelines.html: Remove error cases, as createRenderPipeline no longer returns a null value on failure.
        * webgpu/shader-modules.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/textures-textureviews.html:
        * webgpu/vertex-buffer-triangle-strip.html:

2019-03-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Input view sometimes flickers when blurring and refocusing an element
        https://bugs.webkit.org/show_bug.cgi?id=195639
        <rdar://problem/48735337>

        Reviewed by Tim Horton.

        Add a test to ensure that the form control interaction doesn't stop and start again when blurring and focusing
        an editable element.

        * fast/forms/ios/keyboard-stability-when-refocusing-element-expected.txt: Added.
        * fast/forms/ios/keyboard-stability-when-refocusing-element.html: Added.

2019-03-12  Dean Jackson  <dino@apple.com>

        [WebGL] WebGLBuffer can be too large
        https://bugs.webkit.org/show_bug.cgi?id=195068
        <rdar://problem/48414289>

        Reviewed by Antoine Quint.

        * fast/canvas/webgl/largeBuffer-expected.txt: Added.
        * fast/canvas/webgl/largeBuffer.html: Added.

2019-03-12  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, fix a typo in TestExpecations.

        * platform/mac/TestExpectations:

2019-03-12  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas: export recording as HTML
        https://bugs.webkit.org/show_bug.cgi?id=195311
        <rdar://problem/48588673>

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/recording-html-2d.html: Added.
        * inspector/canvas/recording-html-2d-expected.txt: Added.
        * inspector/canvas/recording-2d-expected.txt: Added.
        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer.log):
        (TestPage.registerInitializer.window.startRecording):

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

2019-03-12  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: there should be a centralized place for reusable code
        https://bugs.webkit.org/show_bug.cgi?id=195265
        <rdar://problem/47040673>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/manager-start-setup.html: Added.
        * inspector/audit/manager-start-setup-expected.txt: Added.
        * inspector/model/auditTestCase.html:
        * inspector/model/auditTestCase-expected.txt:
        * inspector/model/auditTestGroup.html:
        * inspector/model/auditTestGroup-expected.txt:

2019-03-12  Daniel Bates  <dabates@apple.com>

        [iOS] Add test to ensure that a web page can prevent the default for Command + A
        https://bugs.webkit.org/show_bug.cgi?id=192425

        Reviewed by Wenson Hsieh. 

        Skip the test until we have the UIKit fix for <rdar://problem/46430796>.

        * fast/events/ios/key-command-select-all-prevent-default.html: Added.
        * platform/ios/TestExpectations:

2019-03-12  Zalan Bujtas  <zalan@apple.com>

        [Synthetic Click] Dispatch mouseout soon after mouseup
        https://bugs.webkit.org/show_bug.cgi?id=195575
        <rdar://problem/47093049>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click-expected.txt: Added.
        * fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html: Added.

2019-03-12  Antti Koivisto  <antti@apple.com>

        Compositing layer that renders two positioned elements should not hit test
        https://bugs.webkit.org/show_bug.cgi?id=195371
        <rdar://problem/48649586>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/overflow-scroll-overlap-2-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap-2.html: Added.

2019-03-12  Enrique Ocaña González  <eocanha@igalia.com>

        [Media][MSE] Don't emit timeUpdate after play() if currentTime hasn't changed
        https://bugs.webkit.org/show_bug.cgi?id=195454

        Reviewed by Jer Noble.

        This patch removes expectations for the first timeUpdate event after
        play(), because currentTime doesn't actually change in that scenario
        and the spec[1] states that a timeupdate event is fired if "The current
        playback position changed as part of normal playback or in an
        especially interesting way, for example discontinuously."

        [1] https://www.w3.org/TR/html52/semantics-embedded-content.html#eventdef-media-timeupdate

        * media/video-paused-0-rate.html: Don't require the timeUpdate event when currentTime=0 to pass the test.
        * media/video-play-pause-events-expected.txt: Ditto, and changed test description.
        * media/video-play-pause-events.html: Changed test description to reflect the new behaviour.
        * media/video-play-pause-exception-expected.txt: Don't require the timeUpdate event.

2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r242763.

        Causes layout test crashes on iOS simulator

        Reverted changeset:

        "[Synthetic Click] Dispatch mouseout soon after mouseup"
        https://bugs.webkit.org/show_bug.cgi?id=195575
        https://trac.webkit.org/changeset/242763

2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening, rebaseline tests after r242757.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:

2019-03-11  Simon Fraser  <simon.fraser@apple.com>

        Add testing API to hit-test and scroll overflow scrollers
        https://bugs.webkit.org/show_bug.cgi?id=195278

        Reviewed by Antti Koivisto.
        
        The test loads a scaled page with accelerated overflow:scroll, and hit-tests
        near the top-left and bottom-right corners to test the point conversion logic.

        * scrollingcoordinator/ios/scroll-element-at-point-expected.txt: Added.
        * scrollingcoordinator/ios/scroll-element-at-point.html: Added.

2019-03-11  Zalan Bujtas  <zalan@apple.com>

        [Synthetic Click] Dispatch mouseout soon after mouseup
        https://bugs.webkit.org/show_bug.cgi?id=195575
        <rdar://problem/47093049>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click-expected.txt: Added.
        * fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html: Added.

2019-03-11  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Update GPUSwapChainDescriptor, GPUSwapChain and implement GPUCanvasContext
        https://bugs.webkit.org/show_bug.cgi?id=194406
        <rdar://problem/47892466>

        Reviewed by Myles C. Maxfield.

        Update all tests for new WebGPUSwapChain and GPUCanvasContext, and window object name change from 'webgpu' to 'gpu'.
        In addition, all tests have been updated to WPT style. 

        * webgpu/adapter-options.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/command-buffers-expected.txt:
        * webgpu/command-buffers.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/js/basic-webgpu-functions.js: Removed. No longer needed.
        * webgpu/js/webgpu-functions.js:
        (async.getBasicDevice):
        (createBasicSwapChain): Renamed from createBasicContext.
        (beginBasicRenderPass):
        (createBasicContext): Deleted.
        (createBasicDepthStateDescriptor): Deleted.
        * webgpu/queue-creation.html:
        * webgpu/render-command-encoding-expected.txt:
        * webgpu/render-command-encoding.html:
        * webgpu/render-passes-expected.txt: Removed.
        * webgpu/render-passes.html: Removed for redundancy with other tests.
        * webgpu/shader-modules-expected.txt:
        * webgpu/shader-modules.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/textures-textureviews.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/webgpu-basics-expected.txt: Removed.
        * webgpu/webgpu-basics.html: Removed for redundancy with other tests.
        * webgpu/webgpu-enabled-expected.txt:
        * webgpu/webgpu-enabled.html:

2019-03-11  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] REGRESSION (r242687): Programmatic scroll of overflow scroll results in bad rendering
        https://bugs.webkit.org/show_bug.cgi?id=195584
        
        Unreviewed test gardening. Mark compositing/ios/overflow-scroll-update-overlap.html as failing
        since I want to unskip and land a fix with additional tests.

        * platform/ios-wk2/TestExpectations:

2019-03-11  Dean Jackson  <dino@apple.com>

        [iOS] Implement a faster click detection that intercepts double-tap-to-zoom if possible
        https://bugs.webkit.org/show_bug.cgi?id=195473
        <rdar://problem/48718396>

        Reviewed by Wenson Hsieh (with some help from Dan Bates).

        Implement a test (iPad only) that sets up a page with zoomable content
        but not quite at a significant scale, meaning we should dispatch a click
        event rather than Double Tap To Zoom.

        In order to do this, a humanSpeedDoubleTapAt() method was added to
        UIHelper that sleeps a bit between taps, otherwise the double tap
        gesture is recognized before the Web Process has had a chance to
        evaluate the potential click.

        * fast/events/ios/ipad/fast-click-double-tap-sends-click-on-insignificant-zoom-expected.txt: Added.
        * fast/events/ios/ipad/fast-click-double-tap-sends-click-on-insignificant-zoom.html: Added.
        * platform/ios/TestExpectations:
        * platform/ipad/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.humanSpeedDoubleTapAt):

2019-03-11  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Dispatching reentrant "contextmenu" events may cause crashes
        https://bugs.webkit.org/show_bug.cgi?id=195571
        <rdar://problem/48086046>

        Reviewed by Andy Estes.

        Add a test to verify that triggering reentrant "contextmenu" events from script does not cause a crash.

        * fast/events/contextmenu-reentrancy-crash-expected.txt: Added.
        * fast/events/contextmenu-reentrancy-crash.html: Added.

2019-03-11  Truitt Savell  <tsavell@apple.com>

        REGRESSION: Layout Test media/media-fullscreen-return-to-inline.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=193399

        Unreviewed test gardening. 

        * platform/mac/TestExpectations:

2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, fix a test expecation linter warning for macOS.

        * platform/mac/TestExpectations: Delete the entry for 'media/modern-media-controls/media-documents/ipad'.

2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>

        [ iOS Sim ] Layout Test imported/w3c/web-platform-tests/webrtc/simplecall-no-ssrcs.https.html is a flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=195433

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Skip the test.

2019-03-11  Youenn Fablet  <youenn@apple.com>

        Allow storage quota increase by default in WTR
        https://bugs.webkit.org/show_bug.cgi?id=195541

        Reviewed by Geoffrey Garen.

        * http/wpt/cache-storage/cache-quota.any.js:
        (promise_test):

2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r242688, r242643, r242624.

        Caused multiple layout test failures and crashes on iOS and macOS.

        Reverted changeset:

        "requestAnimationFrame should execute before the next frame"
        https://bugs.webkit.org/show_bug.cgi?id=177484
        https://trac.webkit.org/changeset/242624/webkit

        * TestExpectations:
        * animations/animation-multiple-callbacks-timestamp.html:
        * animations/no-style-recalc-during-accelerated-animation-expected.txt:
        * animations/no-style-recalc-during-accelerated-animation.html:
        * platform/mac-wk2/TestExpectations:

2019-03-11  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Make it possible exclude localhost from classification
        https://bugs.webkit.org/show_bug.cgi?id=195474
        <rdar://problem/47520577>

        Reviewed by Brent Fulgham.

        This patch makes sure that all test cases that need to, call the enableFeature()
        function in http/tests/resourceLoadStatistics/resources/util.js.

        The enableFeature() now calls the new function testRunner.setStatisticsIsRunningTest().

        * http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html:
        * http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
        * http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
        * http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.php:
        * http/tests/resourceLoadStatistics/resources/util.js:
        (setEnableFeature):
        * http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction.html:
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction.html:
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html:
        * http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe.html:
        * http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html:
        * http/tests/storageAccess/request-storage-access-same-origin-iframe.html:
        * http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe.html:
        * http/tests/storageAccess/request-storage-access-top-frame.html:

2019-03-11  Javier Fernandez  <jfernandez@igalia.com>

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

        Unreviewed test gardening.

        Mark the text-transform-capitilize-026.html as flaky for all platforms.

        * TestExpectations:

2019-03-10  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Fix failing test cases
        https://bugs.webkit.org/show_bug.cgi?id=195524
        <rdar://problem/48745101>

        Reviewed by Simon Fraser.

        They've been failing ever since the 32ms fixed time window was introduced. 

        * fast/events/touch/ios/content-observation/click-instead-of-hover-simple.html:
        * fast/events/touch/ios/content-observation/stuck-with-hover-state.html:

2019-03-10  Simon Fraser  <simon.fraser@apple.com>

        Mark two tests as failing after r242624
        https://bugs.webkit.org/show_bug.cgi?id=195531

        Unreviewed test gardening.

        These tests are failing:
        accessibility/mac/selection-notification-focus-change.html [ Failure ]
        compositing/video/video-clip-change-src.html [ ImageOnlyFailure ]

        * platform/mac-wk2/TestExpectations:

2019-03-09  Simon Fraser  <simon.fraser@apple.com>

        [iOS Simulator] LayoutTest/scrollingcoordinator/ios/nested-fixed-layer-positions.html is flaky fail
        https://bugs.webkit.org/show_bug.cgi?id=171628

        Unreviewed test gardening.
        
        I can't reproduce flakiness for this test. Let's see if it's fixed.

        * platform/ios-wk2/TestExpectations:

2019-03-09  Simon Fraser  <simon.fraser@apple.com>

        [ios-simulator WK2] LayoutTest scrollingcoordinator/ios/non-stable-viewport-scroll.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=168924

        Unreviewed test gardening.
        
        Let's try a new expectation for this test (it's non-flakey for me for 100 iterations).

        * platform/ios-wk2/TestExpectations:
        * scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt:

2019-03-09  Simon Fraser  <simon.fraser@apple.com>

        Add a test for scrolling tree adjustment of fixed layers (r242601)
        https://bugs.webkit.org/show_bug.cgi?id=195521

        Reviewed by Sam Weinig.
        
        This test sets the "unstable" scrolling state (as if the user is actively scrolling) and scrolls,
        then changes style to trigger a scrolling tree commit with a changed offset for a fixed layer.
        The test shows the wrong fixed layer position before r242601.

        Helpers are added to UIHelper to do the scroll, and to wrap setTimeout in an async function.
        Sadly we have to wait about 120ms for the scrollbars to fade out.

        * resources/ui-helper.js:
        (window.UIHelper.async.delayFor):
        (window.UIHelper.async.immediateScrollTo):
        (window.UIHelper.async.immediateUnstableScrollTo):
        * scrollingcoordinator/ios/ui-scroll-fixed-expected.html: Added.
        * scrollingcoordinator/ios/ui-scroll-fixed.html: Added.

2019-03-09  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r242551): Sporadic hangs when tapping to change selection on iOS
        https://bugs.webkit.org/show_bug.cgi?id=195475
        <rdar://problem/48721153>

        Reviewed by Chris Dumez.

        Add a new layout test that taps to change selection 20 times in a contenteditable area and additionally
        disables IPC timeout, to ensure that any IPC deadlocks will result in the test failing due to timing out.

        * editing/selection/ios/change-selection-by-tapping-expected.txt: Added.
        * editing/selection/ios/change-selection-by-tapping.html: Added.

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

        [ContentChangeObserver] Click event fires immediately on hover menu at seriouseats.com
        https://bugs.webkit.org/show_bug.cgi?id=195520
        <rdar://problem/48740098>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/move-content-from-offscreen-expected.txt: Added.
        * fast/events/touch/ios/content-observation/move-content-from-offscreen.html: Added.

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

        [ContentChangeObserver] Start observing for content change between touchEnd and mouseMoved start
        https://bugs.webkit.org/show_bug.cgi?id=195510
        <rdar://problem/48735695>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visibility-change-after-touch-end-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visibility-change-after-touch-end.html: Added.

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

        [ iOS Simulator ] REGRESSION (r237087) Layout Test fast/viewport/ios/*-width-viewport-after-changing-view-scale.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=195341

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

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

        Add support for Device Orientation / Motion permission API
        https://bugs.webkit.org/show_bug.cgi?id=195329
        <rdar://problem/47645367>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * TestExpectations:
        * fast/device-orientation/device-motion-request-permission-denied-expected.txt: Added.
        * fast/device-orientation/device-motion-request-permission-denied.html: Added.
        * fast/device-orientation/device-motion-request-permission-granted-expected.txt: Added.
        * fast/device-orientation/device-motion-request-permission-granted.html: Added.
        * fast/device-orientation/device-motion-request-permission-user-gesture-expected.txt: Added.
        * fast/device-orientation/device-motion-request-permission-user-gesture.html: Added.
        * fast/device-orientation/device-orientation-request-permission-denied-expected.txt: Added.
        * fast/device-orientation/device-orientation-request-permission-denied.html: Added.
        * fast/device-orientation/device-orientation-request-permission-granted-expected.txt: Added.
        * fast/device-orientation/device-orientation-request-permission-granted.html: Added.
        * fast/device-orientation/device-orientation-request-permission-user-gesture-expected.txt: Added.
        * fast/device-orientation/device-orientation-request-permission-user-gesture.html: Added.
        * http/tests/events/device-orientation-motion-non-secure-context.html:
        * http/tests/events/device-orientation-motion-secure-context-expected.txt:
        * http/tests/events/device-orientation-motion-secure-context.html:
        * platform/ios-wk2/TestExpectations:
        * platform/ios/http/tests/events/device-orientation-motion-non-secure-context-expected.txt:
        * platform/ios/http/tests/events/device-orientation-motion-secure-context-expected.txt:

2019-03-08  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Expand "isConsideredClickable" to descendants
        https://bugs.webkit.org/show_bug.cgi?id=195478
        <rdar://problem/48724935>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/clickable-content-is-inside-a-container-expected.txt: Added.
        * fast/events/touch/ios/content-observation/clickable-content-is-inside-a-container.html: Added.

2019-03-08  Truitt Savell  <tsavell@apple.com>

        (r242595) Layout Tests in imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/* are failing
        https://bugs.webkit.org/show_bug.cgi?id=195466

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-03-08  Per Arne Vollan  <pvollan@apple.com>

        Layout Test http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=195461

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [ContentChangeObserver] Check if visibility change happens while dispatching mouseMoved
        https://bugs.webkit.org/show_bug.cgi?id=195421
        <rdar://problem/48682004>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visibility-change-happens-while-in-mousemoved-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visibility-change-happens-while-in-mousemoved.html: Added.

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

        [ContentChangeObserver] Check if max-height change triggers visible content change.
        https://bugs.webkit.org/show_bug.cgi?id=195417
        <rdar://problem/48680631>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visibility-change-is-max-height-change-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visibility-change-is-max-height-change.html: Added.

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

        [ContentChangeObserver] Click event fires immediately on hover menu at Ebbets.com
        https://bugs.webkit.org/show_bug.cgi?id=195397

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visibility-change-on-touch-start-simple-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visibility-change-on-touch-start-simple.html: Added.

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

        [ContentChangeObserver] Introduce fixed duration content observation
        https://bugs.webkit.org/show_bug.cgi?id=195295
        <rdar://problem/48579913>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/visibility-change-happens-on-timer-hops-expected.txt: Added.
        * fast/events/touch/ios/content-observation/visibility-change-happens-on-timer-hops.html: Added.

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

        requestAnimationFrame should execute before the next frame
        https://bugs.webkit.org/show_bug.cgi?id=177484

        Reviewed by Simon Fraser.

        * TestExpectations:
        There is a slight difference between the actual DRT and the expected DRT
        due to animation timing change. But these two tests are not animating
        correctly if they are opened in Safari with web animation turned on. 

        * animations/animation-multiple-callbacks-timestamp.html:
        Fix variable names used by an error message.
        * animations/no-style-recalc-during-accelerated-animation-expected.txt:
        * animations/no-style-recalc-during-accelerated-animation.html:
        One extra styleReclc was incurred due to the document styleRecalcTimer.
        I think this timer is not needed anymore. I will look at removing it in
        a separate patch.

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

        [ContentChangeObserver] Add a setting to be able to turn content change observation on/off
        https://bugs.webkit.org/show_bug.cgi?id=195353
        <rdar://problem/48626394>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/click-instead-of-hover-simple-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/click-instead-of-hover-simple-expected.txt.
        * fast/events/touch/ios/content-observation/click-instead-of-hover-simple.html: Renamed from LayoutTests/fast/events/touch/ios/click-instead-of-hover-simple.html.
        * fast/events/touch/ios/content-observation/hover-when-style-change-is-async-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/hover-when-style-change-is-async-expected.txt.
        * fast/events/touch/ios/content-observation/hover-when-style-change-is-async.html: Renamed from LayoutTests/fast/events/touch/ios/hover-when-style-change-is-async.html.
        * fast/events/touch/ios/content-observation/stuck-with-hover-state-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/stuck-with-hover-state-expected.txt.
        * fast/events/touch/ios/content-observation/stuck-with-hover-state.html: Renamed from LayoutTests/fast/events/touch/ios/stuck-with-hover-state.html.
        * fast/events/touch/ios/content-observation/style-recalc-schedule-and-force-relalc-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/style-recalc-schedule-and-force-relalc-expected.txt.
        * fast/events/touch/ios/content-observation/style-recalc-schedule-and-force-relalc.html: Renamed from LayoutTests/fast/events/touch/ios/style-recalc-schedule-and-force-relalc.html.
        * fast/events/touch/ios/content-observation/visibility-change-happens-at-the-second-timer-expected.txt: Renamed from LayoutTests/fast/events/touch/ios/visibility-change-happens-at-the-second-timer-expected.txt.
        * fast/events/touch/ios/content-observation/visibility-change-happens-at-the-second-timer.html: Renamed from LayoutTests/fast/events/touch/ios/visibility-change-happens-at-the-second-timer.html.

2019-03-07  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed test gardening.

        * platform/wincairo/TestExpectations:

2019-03-07  Justin Fan  <justin_fan@apple.com>

        [Web GPU] GPUSampler implementation
        https://bugs.webkit.org/show_bug.cgi?id=195427
        <rdar://problem/48686011>

        Reviewed by Dean Jackson.

        Update texture-triangle-strip to use a GPUSampler provided through bindings instead of creating one in shader.

        * webgpu/texture-triangle-strip.html:

2019-03-07  Youenn Fablet  <youenn@apple.com>

        REGRESSION: ( r231040 ) Layout Test http/tests/security/xss-DENIED-xsl-external-entity.xml is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189724
        <rdar://problem/48422520>

        Reviewed by Geoffrey Garen.

        Copy the flaky test into a new test for which we use DumpJSConsoleLogInStdErr.
        This should make the new test no longer flaky in WK1.
        Run this new test for WK1 only and run the original test for WK2 only.

        * TestExpectations:
        * http/tests/security/xss-DENIED-xsl-external-entity-no-logging-expected.txt: Added.
        * http/tests/security/xss-DENIED-xsl-external-entity-no-logging.xml: Added.
        * platform/ios-wk1/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/wk2/TestExpectations:

2019-03-07  Devin Rousso  <drousso@apple.com>

        Web Inspector: Protocol: add type checking when commands are called via invoke
        https://bugs.webkit.org/show_bug.cgi?id=195310
        <rdar://problem/48588679>

        Reviewed by Joseph Pecoraro.

        * inspector/protocol/inspector-backend-invocation-return-value.html:
        * inspector/protocol/inspector-backend-invocation-return-value-expected.txt:

2019-03-07  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Log first-party navigations with link decoration
        https://bugs.webkit.org/show_bug.cgi?id=195301
        <rdar://problem/48569971>

        Reviewed by Brent Fulgham.

        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt: Added.
        * http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html: Added.

2019-03-07  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Make it possible to purge only script-accessible cookies
        https://bugs.webkit.org/show_bug.cgi?id=195383
        <rdar://problem/48570136>

        Reviewed by Brent Fulgham.

        * http/tests/cookies/resources/set-http-only-cookie.php: Added.
        * http/tests/resourceLoadStatistics/delete-script-accessible-cookies-expected.txt: Added.
        * http/tests/resourceLoadStatistics/delete-script-accessible-cookies.html: Added.

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

        Update WPT tests for embedded content
        https://bugs.webkit.org/show_bug.cgi?id=194770

        Reviewed by Rob Buis.

        * TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative-expected.txt: Added.
        * tests-options.json:

2019-03-06  Devin Rousso  <drousso@apple.com>

        Web Inspector: DOM Debugger: event breakpoints still fire when breakpoints are disabled
        https://bugs.webkit.org/show_bug.cgi?id=195377
        <rdar://problem/48651645>

        Reviewed by Joseph Pecoraro and Matt Baker.

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

2019-03-06  Wenson Hsieh  <wenson_hsieh@apple.com>

        Crash when attempting to change input type while dismissing datalist suggestions
        https://bugs.webkit.org/show_bug.cgi?id=195384
        <rdar://problem/48563718>

        Reviewed by Brent Fulgham.

        Add a new layout test to exercise this scenario.

        * fast/forms/datalist/change-input-type-after-closing-datalist-suggestions-expected.txt: Added.
        * fast/forms/datalist/change-input-type-after-closing-datalist-suggestions.html: Added.

2019-03-06  Justin Fan  <justin_fan@apple.com>

        [Web GPU] GPUTexture and GPUTextureView updates, and related GPUBindGroup updates
        https://bugs.webkit.org/show_bug.cgi?id=195347

        Reviewed by Dean Jackson.

        * webgpu/blit-commands.html:
        * webgpu/resources/blue-checkered.png: Added.
        * webgpu/texture-triangle-strip-expected.html: Added. Draw a reference for blue-checkered.png with Canvas2D.
        * webgpu/texture-triangle-strip.html: Added. Draw blue-checkered.png as a texture on a Web GPU quad.

        Renaming updates, no change in behavior:
        * webgpu/bind-groups.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/pipeline-layouts.html:
        * webgpu/render-pipelines.html:

2019-03-06  Antti Koivisto  <antti@apple.com>

        [iOS] Basic hit testing for content overlapping fast-scrollable overflow
        https://bugs.webkit.org/show_bug.cgi?id=195360

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/overflow-scroll-overlap-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-overlap.html: Added.

2019-03-06  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: CPU Usage Timeline - Statistics and Sources sections
        https://bugs.webkit.org/show_bug.cgi?id=195202

        Reviewed by Devin Rousso.

        * inspector/unit-tests/map-utilities-expected.txt: Added.
        * inspector/unit-tests/map-utilities.html: Added.
        * inspector/unit-tests/set-utilities-expected.txt:
        * inspector/unit-tests/set-utilities.html:

2019-03-06  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Frequent 1 second IPC deadlocks when showing a paste callout
        https://bugs.webkit.org/show_bug.cgi?id=195354
        <rdar://problem/48624675>

        Reviewed by Tim Horton.

        Most of these tests currently encounter and rely on the 1 second IPC timeout to finish. To test this fix, force
        `ignoreSynchronousMessagingTimeouts=true` to make them fail if the processes encounter a deadlock.

        * editing/pasteboard/ios/dom-paste-confirmation.html:
        * editing/pasteboard/ios/dom-paste-consecutive-confirmations.html:
        * editing/pasteboard/ios/dom-paste-rejection.html:
        * editing/pasteboard/ios/dom-paste-requires-user-gesture.html:
        * editing/pasteboard/ios/dom-paste-same-origin.html:

2019-03-06  Javier Fernandez  <jfernandez@igalia.com>

        Import new tests from the CSS Text 3 WPT test suite
        https://bugs.webkit.org/show_bug.cgi?id=195275

        Reviewed by Myles C. Maxfield.

        Imported new CSS Text tests from the WPT suite

        * TestExpectations: Flag tests that are not passing right now.
        * platform/gtk/TestExpectations: A few tests pass now.

2019-03-06  Frederic Wang  <fwang@igalia.com>

        Update WPT tests for the track element
        https://bugs.webkit.org/show_bug.cgi?id=195358

        Reviewed by Rob Buis.

        * TestExpectations: Add expectations for new tests.

2019-03-06  Rob Buis  <rbuis@igalia.com>

        Consider supporting the `referrerpolicy` attribute.
        https://bugs.webkit.org/show_bug.cgi?id=179053

        Reviewed by Darin Adler.

        Add tests for referrerpolicy attribute based on the referrer-policy
        meta referrer tests.
        Update improved results for reflection-embedded.html.
        Mark some of the tests as Failure on windows.

        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/no-referrer-when-downgrade/same-origin.html: Added.
        * http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/no-referrer/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/no-referrer/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/no-referrer/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/no-referrer/same-origin.html: Added.
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/origin-when-cross-origin/same-origin.html: Added.
        * http/tests/referrer-policy-iframe/origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/origin/same-origin.html: Added.
        * http/tests/referrer-policy-iframe/same-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/same-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/same-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/same-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/same-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/same-origin/same-origin.html: Added.
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/same-origin.html: Added.
        * http/tests/referrer-policy-iframe/strict-origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/strict-origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/strict-origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/strict-origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/strict-origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/strict-origin/same-origin.html: Added.
        * http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy-iframe/unsafe-url/same-origin-expected.txt: Added.
        * http/tests/referrer-policy-iframe/unsafe-url/same-origin.html: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
        * platform/win/TestExpectations:

2019-03-05  Rob Buis  <rbuis@igalia.com>

        Add referrer-policy tests
        https://bugs.webkit.org/show_bug.cgi?id=195269

        Reviewed by Daniel Bates.

        The tests in http/tests/referrer-policy do not test all referrer-policy
        values, add the remaining values.

        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy/no-referrer-when-downgrade/same-origin-expected.txt: Added.
        * http/tests/referrer-policy/no-referrer-when-downgrade/same-origin.html: Added.
        * http/tests/referrer-policy/no-referrer/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy/no-referrer/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy/no-referrer/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy/no-referrer/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy/no-referrer/same-origin-expected.txt: Added.
        * http/tests/referrer-policy/no-referrer/same-origin.html: Added.
        * http/tests/referrer-policy/origin/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy/origin/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy/origin/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy/origin/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy/origin/same-origin-expected.txt: Added.
        * http/tests/referrer-policy/origin/same-origin.html: Added.
        * http/tests/referrer-policy/unsafe-url/cross-origin-http-http-expected.txt: Added.
        * http/tests/referrer-policy/unsafe-url/cross-origin-http-http.html: Added.
        * http/tests/referrer-policy/unsafe-url/cross-origin-http.https-expected.txt: Added.
        * http/tests/referrer-policy/unsafe-url/cross-origin-http.https.html: Added.
        * http/tests/referrer-policy/unsafe-url/same-origin-expected.txt: Added.
        * http/tests/referrer-policy/unsafe-url/same-origin.html: Added.

2019-03-05  Eric Liang  <ericliang@apple.com>

        AX: Add remote search support for keyboard focusable element search type
        https://bugs.webkit.org/show_bug.cgi?id=195336

        Reviewed by Chris Fleizach.

        Added test that verifies search with AXKeyboardFocusableSearchKey returns the default keyboard-focusable elements.

        * accessibility/mac/search-predicate-keyboard-focusable-expected.txt: Added.
        * accessibility/mac/search-predicate-keyboard-focusable.html: Added.

2019-03-05  Daniel Bates  <dabates@apple.com>

        [iOS] Should not scroll when checkbox, radio, submit, reset, or button is spacebar activated
        https://bugs.webkit.org/show_bug.cgi?id=195281
        <rdar://problem/48564347>

        Reviewed by Simon Fraser.

        Add some tests to ensure that we do not scroll when a checkbox, radio, submit, reset, or button
        is spacebar activated.

        * fast/events/ios/activating-button-should-not-scroll-page-expected.txt: Added.
        * fast/events/ios/activating-button-should-not-scroll-page.html: Added.
        * fast/events/ios/activating-checkbox-should-not-scroll-page-expected.txt: Added.
        * fast/events/ios/activating-checkbox-should-not-scroll-page.html: Added.
        * fast/events/ios/activating-radio-button-should-not-scroll-page-expected.txt: Added.
        * fast/events/ios/activating-radio-button-should-not-scroll-page.html: Added.
        * fast/events/ios/activating-reset-button-should-not-scroll-page-expected.txt: Added.
        * fast/events/ios/activating-reset-button-should-not-scroll-page.html: Added.
        * fast/events/ios/activating-submit-button-should-not-scroll-page-expected.txt: Added.
        * fast/events/ios/activating-submit-button-should-not-scroll-page.html: Added.
        * fast/events/ios/resources/press-spacebar-at-element-and-check-for-page-scroll.js: Added.
        (done):
        (handleInteraction.checkForScrollAndDone):
        (handleInteraction):
        (handleScroll):
        (handleFocus):
        (checkActivatingElementUsingSpacebarDoesNotScrollPage):
        * platform/ios/TestExpectations: Skip the tests for now until ENABLE(FULL_KEYBOARD_ACCESS) is enabled
        by default on iOS.

2019-03-05  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Implement Cookie Accept Policy.
        https://bugs.webkit.org/show_bug.cgi?id=191645

        Reviewed by Fujii Hironori.

        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

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

        SVGPathSegList.insertItemBefore() should fail if the newItem belongs to an animating animPathSegList
        https://bugs.webkit.org/show_bug.cgi?id=195333
        <rdar://problem/48475802>

        Reviewed by Simon Fraser.

        * svg/dom/SVGPathSegList-insert-from-animating-animPathSegList-expected.txt: Added.
        * svg/dom/SVGPathSegList-insert-from-animating-animPathSegList.svg: Added.

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

        Unreviewed, rolling out r242403.

        Caused layout test crashes on iOS simulator.

        Reverted changeset:

        "[ContentChangeObserver] Introduce fixed duration content
        observation"
        https://bugs.webkit.org/show_bug.cgi?id=195295
        https://trac.webkit.org/changeset/242403

2019-03-04  Diego Pino Garcia  <dpino@igalia.com>

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

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2019-03-04  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Blitting function prototypes
        https://bugs.webkit.org/show_bug.cgi?id=195224
        <rdar://problem/48538902>

        Reviewed by Dean Jackson.

        Add basic test to copy data with all new blitting functions and verify the result.

        * webgpu/blit-commands-expected.html: Added.
        * webgpu/blit-commands.html: Added.
        * webgpu/buffer-command-buffer-races.html: Fixed typo.
        * webgpu/resources/green-400.png: Added.

2019-03-04  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Introduce fixed duration content observation
        https://bugs.webkit.org/show_bug.cgi?id=195295
        <rdar://problem/48579913>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/visibility-change-happens-on-timer-hops-expected.txt: Added.
        * fast/events/touch/ios/visibility-change-happens-on-timer-hops.html: Added.

2019-03-04  Wenson Hsieh  <wenson_hsieh@apple.com>

        Native text selection UI is incorrectly suppressed in Microsoft Visio
        https://bugs.webkit.org/show_bug.cgi?id=195178
        <rdar://problem/48519394>

        Reviewed by Darin Adler.

        Add a new layout test that focuses several different text fields and checks whether or not editing UI is shown:

        1. A text field inside an overflow: hidden container, all within an absolutely positioned iframe, such that the
        text field is not visible. The caret should be hidden.

        2. A text field inside an absolutely positioned iframe, inside an overflow: hidden container, such that the
        text field is visible. The caret should be visible.

        3. A text field inside a relatively positioned iframe in an overflow: hidden container, such that the text field
        is not visible. The caret should be hidden.

        4. A text field that is position: fixed inside an overflow: hidden container, such that the text field is
        visible. The caret should be visible.

        * editing/selection/ios/do-not-hide-selection-in-visible-container-expected.txt: Added.
        * editing/selection/ios/do-not-hide-selection-in-visible-container.html: Added.
        * editing/selection/ios/hide-selection-in-empty-overflow-hidden-container.html:
        * resources/ui-helper.js:
        (window.UIHelper.activateElementAndWaitForInputSession):

        Add a convenience function in UIHelper that taps a given element and waits for the keyboard to show.

2019-03-04  Daniel Bates  <dabates@apple.com>

        [iOS] Caret x-position in empty text area does not match text field
        https://bugs.webkit.org/show_bug.cgi?id=195125
        <rdar://problem/47161070>

        Reviewed by Darin Adler.

        Update expected results due to changes in padding.

        * TestExpectations: Remove some tests that are now passing.
        * editing/selection/ios/show-selection-in-empty-overflow-hidden-document-expected.txt:
        * editing/selection/ios/show-selection-in-empty-overflow-hidden-document.html:
        * fast/forms/textarea/ios/caret-x-position-in-textarea-matches-textfield-expected.txt: Added.
        * fast/forms/textarea/ios/caret-x-position-in-textarea-matches-textfield.html: Added.
        * platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
        * platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
        * platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
        * platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
        * platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
        * platform/ios-wk2/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
        * platform/ios-wk2/fast/dynamic/008-expected.txt:
        * platform/ios-wk2/fast/forms/basic-textareas-expected.txt:
        * platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-align-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-scrollbar-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-scrolled-type-expected.txt:
        * platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
        * platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
        * platform/ios-wk2/fast/overflow/overflow-x-y-expected.txt:
        * platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
        * platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
        * platform/ios/TestExpectations:
        * platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
        * platform/ios/fast/forms/form-element-geometry-expected.txt:
        * platform/ios/fast/forms/linebox-overflow-in-textarea-padding-expected.txt:
        * platform/ios/fast/forms/negativeLineHeight-expected.txt:
        * platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
        * platform/ios/fast/forms/textarea-width-expected.txt:
        * platform/ios/fast/replaced/width100percent-textarea-expected.txt:
        * platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug30692-expected.txt:

2019-03-03  Darin Adler  <darin@apple.com>

        Prepare to improve handling of conversion of float to strings
        https://bugs.webkit.org/show_bug.cgi?id=195262

        Reviewed by Daniel Bates.

        * svg/dom/SVGAngle-expected.txt:
        * svg/dom/SVGAngle.html:
        * svg/dom/SVGLength-px-expected.txt:
        * svg/dom/SVGLength-px-with-context-expected.txt:
        * svg/dom/SVGLength-px-with-context.html:
        * svg/dom/SVGLength-px.html:
        Remove checks that depend on the precision and number of serialization.
        The current tests depend on behavior that we'd like to change in the future and
        some of them had already been updated since the behavior is different in different
        web browsers. Tricky issue because of the mix of single and double precision in
        the SVG engine and the JavaScript language, and straightforward to keep the tests
        useful without this unnecessary dependency. Generally we check the units of the
        result of valueAsString, and not the numeric result. Another idea would be to
        check the numeric part of the result by converting it back to a number and
        comparing it as a number rather than as a string.

2019-03-04  Truitt Savell  <tsavell@apple.com>

        webkit.org/b/195210 resolve by r242308, unskipping tests.
        https://bugs.webkit.org/show_bug.cgi?id=195210

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-03-04  Claudio Saavedra  <csaavedra@igalia.com>

        Fix typo in previous gardening commit

        Unreviewed.
        * platform/wpe/TestExpectations:

2019-03-04  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE][EME] Mark two flaky EME tests

        Unreviewed gardening.
        * platform/wpe/TestExpectations:

2019-03-02  Simon Fraser  <simon.fraser@apple.com>

        Share more code for updating the state of frame scrolling nodes
        https://bugs.webkit.org/show_bug.cgi?id=195254

        Reviewed by Antti Koivisto.
        
        New baselines. Overflow nodes get some state from ScrollableAreaParameters now, and
        frame nodes get the current scroll position (which is good, since they already have
        the new layout viewport).

        * fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
        * fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
        * scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
        * scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
        * scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
        * tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars.html:
        * tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:

2019-03-03  Diego Pino Garcia  <dpino@igalia.com>

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

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2019-03-02  Darin Adler  <darin@apple.com>

        Retire legacy dtoa function and DecimalNumber class
        https://bugs.webkit.org/show_bug.cgi?id=195253

        Reviewed by Daniel Bates.

        * fast/css/large-value-csstext-expected.txt:
        * 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:
        Updated expected value to expect exponential syntax for super-small numbers that are formatted
        differently by the new code.

        * 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:
        Rebaseline still-failing parts of these tests that dump super-small numbers that are formatted
        differently by the new code. Still probably needs to be done for 4 other platforms.

2019-03-03  Tim Horton  <timothy_horton@apple.com>

        Remove some more unused 32-bit code
        https://bugs.webkit.org/show_bug.cgi?id=195255

        Reviewed by Darin Adler.

        * platform/mac/plugins/supports-carbon-event-model-expected.txt: Removed.
        * platform/mac/plugins/supports-carbon-event-model.html: Removed.

2019-03-02  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Introduce ContentChangeObserver::adjustObservedState
        https://bugs.webkit.org/show_bug.cgi?id=195244
        <rdar://problem/48536737>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/visibility-change-happens-at-the-second-timer-expected.txt: Added.
        * fast/events/touch/ios/visibility-change-happens-at-the-second-timer.html: Added.

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

        [iOS] Programmatic paste access should be granted when copying and pasting within the same origin
        https://bugs.webkit.org/show_bug.cgi?id=195053
        <rdar://problem/48134710>

        Reviewed by Ryosuke Niwa.

        Adjust several existing DOM paste tests to copy text from a child frame that has a different origin as the main
        frame, such that we'll trigger the paste callout menu when performing a programmatic paste. Also add a new
        layout test that copies and programmatically pastes within the same document, to verify that no paste callout is
        displayed and the paste is allowed.

        * editing/pasteboard/ios/dom-paste-confirmation-expected.txt:
        * editing/pasteboard/ios/dom-paste-confirmation.html:
        * editing/pasteboard/ios/dom-paste-consecutive-confirmations-expected.txt:
        * editing/pasteboard/ios/dom-paste-consecutive-confirmations.html:
        * editing/pasteboard/ios/dom-paste-rejection-expected.txt:
        * editing/pasteboard/ios/dom-paste-rejection.html:
        * editing/pasteboard/ios/dom-paste-requires-user-gesture-expected.txt:
        * editing/pasteboard/ios/dom-paste-requires-user-gesture.html:
        * editing/pasteboard/ios/dom-paste-same-origin-expected.txt: Copied from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation-expected.txt.
        * editing/pasteboard/ios/dom-paste-same-origin.html: Copied from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation.html.

2019-03-02  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r242132): Incorrect positioning with multiple position:fixed elements
        https://bugs.webkit.org/show_bug.cgi?id=195246

        Reviewed by Frederic Wang.

        Test that uses eventSender to scroll (and is thus macOS-only).

        * platform/ios-wk2/TestExpectations:
        * scrollingcoordinator/mac/multiple-fixed-expected.html: Added.
        * scrollingcoordinator/mac/multiple-fixed.html: Added.

2019-03-01  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Datalist] fast/forms/datalist/datalist-child-validation.html crashes with a debug assertion in isValidFormControlElement()
        https://bugs.webkit.org/show_bug.cgi?id=190620
        <rdar://problem/19226679>

        Reviewed by Ryosuke Niwa.

        Re-enables a crashing layout test. See WebCore ChangeLog for more details.

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

2019-03-01  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Check for pending style recalcs at the end of each timer run.
        https://bugs.webkit.org/show_bug.cgi?id=195220
        <rdar://problem/48518979>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/style-recalc-schedule-and-force-relalc-expected.txt: Added.
        * fast/events/touch/ios/style-recalc-schedule-and-force-relalc.html: Added.

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

        Resource Load Statistics: Further restrict client-side cookie persistence after cross-site navigations with link decoration
        https://bugs.webkit.org/show_bug.cgi?id=195196
        <rdar://problem/48006419>

        Reviewed by Brent Fulgham.

        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource-expected.txt: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource.html: Added.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html:
            Now clears cookies after the test.

2019-03-01  Rob Buis  <rbuis@igalia.com>

        Adjust XMLHttpRequest Content-Type handling
        https://bugs.webkit.org/show_bug.cgi?id=184645

        Reviewed by Youenn Fablet.

        Fix 2 subtest expectations.

        * http/tests/xmlhttprequest/request-encoding2.html:

2019-03-01  Truitt Savell  <tsavell@apple.com>

        Continued gardening of storage/indexeddb/ crashes after r242189
        https://bugs.webkit.org/show_bug.cgi?id=195210

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: 

2019-03-01  Antoine Quint  <graouts@apple.com>

        Enable WPT Pointer Events tests
        https://bugs.webkit.org/show_bug.cgi?id=195204
        <rdar://problem/48502751>

        Reviewed by Dean Jackson.

        The touch-action property has been enabled as part of the work on webkit.org/b/195008 but the WPT tests
        had not been enabled yet.

        * platform/mac/TestExpectations:

2019-03-01  Truitt Savell  <tsavell@apple.com>

        REGRESSION: (r242189): Six Layout Tests in storage/indexeddb/ are crashing after r242189
        https://bugs.webkit.org/show_bug.cgi?id=195210

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-02-28  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Dark flash when opening Google AMP pages
        https://bugs.webkit.org/show_bug.cgi?id=195193
        rdar://problem/48326442

        Reviewed by Zalan Bujtas.

        Tests that change the size of a clipping layer with non-z-order composited descendant, with
        a couple of layer tree configurations.

        * compositing/geometry/ancestor-clip-change-expected.html: Added.
        * compositing/geometry/ancestor-clip-change-interleaved-stacking-context-expected.html: Added.
        * compositing/geometry/ancestor-clip-change-interleaved-stacking-context.html: Added.
        * compositing/geometry/ancestor-clip-change.html: Added.

2019-02-28  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: View.removeSubview not removing the element properly when not parented
        https://bugs.webkit.org/show_bug.cgi?id=195146

        Reviewed by Matt Baker.

        * inspector/view/basics-expected.txt:
        * inspector/view/basics.html:

2019-02-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Use-after-move in RenderCombineText::combineTextIfNeeded()
        https://bugs.webkit.org/show_bug.cgi?id=195188

        Reviewed by Zalan Bujtas.

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

2019-02-28  Devin Rousso  <drousso@apple.com>

        REGRESSION (r240644): Layout Test inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=194437
        <rdar://problem/48008005>

        Reviewed by Joseph Pecoraro.

        * inspector/page/overrideSetting-ICECandidateFilteringEnabled.html:
        * inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt:
        Make sure to close the peer connection and data channel after each phase of the test.
        Also add failure logging.

2019-02-28  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas: change tests to not print out dataURLs
        https://bugs.webkit.org/show_bug.cgi?id=195136
        <rdar://problem/48248697>

        Reviewed by Matt Baker.

        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer.async logRecording):
        (TestPage.registerInitializer.window.startRecording):
        * inspector/canvas/recording-2d-expected.txt:
        * inspector/canvas/recording-bitmaprenderer-expected.txt:
        * inspector/canvas/recording-webgl-expected.txt:
        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl-snapshots-expected.txt:

        * inspector/canvas/requestContent-2d.html:
        * inspector/canvas/requestContent-2d-expected.txt:
        * inspector/canvas/requestContent-bitmaprenderer.html:
        * inspector/canvas/requestContent-bitmaprenderer-expected.txt:
        * inspector/canvas/requestContent-webgl.html:
        * inspector/canvas/requestContent-webgl-expected.txt:
        * inspector/canvas/requestContent-webgl2.html:
        * inspector/canvas/requestContent-webgl2-expected.txt:

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

2019-02-28  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] HTTP Body is missing with redirection.
        https://bugs.webkit.org/show_bug.cgi?id=191651

        Reviewed by Don Olmstead.

        * platform/wincairo/TestExpectations:

2019-02-28  Daniel Bates  <dabates@apple.com>

        Fix timing out tests following r241747
        (https://bugs.webkit.org/show_bug.cgi?id=193599)

        Fix up the path to ui-helper.js so that we actually load it.

        * fast/forms/ios/focus-button.html:
        * fast/forms/ios/focus-checkbox.html:
        * fast/forms/ios/focus-checked-checkbox.html:
        * fast/forms/ios/focus-checked-radio.html:
        * fast/forms/ios/focus-radio.html:
        * fast/forms/ios/focus-reset-button.html:
        * fast/forms/ios/focus-search-field.html:
        * fast/forms/ios/focus-submit-button.html:
        * fast/forms/ios/focus-text-field.html:
        * fast/forms/ios/focus-textarea.html:

2019-02-27  Simon Fraser  <simon.fraser@apple.com>

        fast/scrolling/ios/hit-testing-iframe-002.html always fails
        https://bugs.webkit.org/show_bug.cgi?id=195108

        Reviewed by Frédéric Wang.

        Errant ; in this.style.background='green;'

        * fast/scrolling/ios/hit-testing-iframe-002.html:
        * platform/ios-wk2/TestExpectations:

2019-02-27  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/compositing/visibility/root-visibility-toggle-expected.txt: Added.
        * platform/gtk/editing/deleting/smart-delete-001-expected.txt: Removed.
        * platform/gtk/editing/deleting/smart-delete-002-expected.txt: Removed.
        * platform/gtk/editing/deleting/smart-delete-003-expected.txt: Removed.
        * platform/gtk/editing/deleting/smart-delete-004-expected.txt: Removed.
        * platform/gtk/fast/css/apple-system-colors-expected.txt: Added.
        * platform/gtk/fast/text/ja-sans-serif-expected.png: Added.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.

2019-02-27  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Web pages shouldn't be able to present a keyboard after the web view resigns first responder
        https://bugs.webkit.org/show_bug.cgi?id=195118
        <rdar://problem/43411940>

        Reviewed by Tim Horton.

        Add a test to verify that after resigning first responder (e.g. tapping 'Done' on the keyboard, or focusing a
        native input field elsewhere in the app), the page cannot force the keyboard to appear by focusing an input
        field.

        * fast/events/ios/do-not-show-keyboard-when-focusing-after-blur-expected.txt: Added.
        * fast/events/ios/do-not-show-keyboard-when-focusing-after-blur.html: Added.

2019-02-27  John Wilander  <wilander@apple.com>

        Adopt WebCore::RegistrableDomain in WebCore::ResourceLoadStatistics and WebKit::NetworkProcessProxy
        https://bugs.webkit.org/show_bug.cgi?id=195071
        <rdar://problem/48417690>

        Reviewed by Alex Christensen and Brent Fulgham.

        * http/tests/navigation/resources/redirect-updates-history-item-done-statistics.html:
            Changed from window.internals.resourceLoadStatisticsForOrigin() to
            window.internals.resourceLoadStatisticsForURL() and now submit a URL.

2019-02-27  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Buffer updates part 2: setSubData, GPU/CPU synchronization
        https://bugs.webkit.org/show_bug.cgi?id=195077
        <rdar://problem/47805229>

        Reviewed by Dean Jackson.

        Add tests for mapReadAysnc and setSubData calls. Nofity testRunner when done on some drawing tests
        that may take more time.

        * webgpu/buffer-command-buffer-races-expected.html: Added.
        * webgpu/buffer-command-buffer-races.html: Added.
        * webgpu/buffer-resource-triangles.html: Use setSubData.
        * webgpu/depth-enabled-triangle-strip.html: Ditto.
        * webgpu/map-read-buffers-expected.txt: Added.
        * webgpu/map-read-buffers.html: Added.
        * webgpu/vertex-buffer-triangle-strip.html: Use setSubData.

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

        Support Pointer Events on macOS
        https://bugs.webkit.org/show_bug.cgi?id=195008
        <rdar://problem/47454419>

        Reviewed by Dean Jackson.

        * platform/mac-wk1/TestExpectations: Mark select tests as failures due to webkit.org/b/195008.
        * platform/mac/TestExpectations: Enable the new mouse-based tests.
        * pointerevents/mouse/over-enter-out-leave-expected.txt: Added.
        * pointerevents/mouse/over-enter-out-leave.html: Added.
        * pointerevents/mouse/pointer-capture-expected.txt: Added.
        * pointerevents/mouse/pointer-capture.html: Added.
        * pointerevents/mouse/pointer-event-basic-properties-expected.txt: Added.
        * pointerevents/mouse/pointer-event-basic-properties.html: Added.
        * pointerevents/mouse/pointer-events-before-mouse-events-expected.txt: Added.
        * pointerevents/mouse/pointer-events-before-mouse-events.html: Added.
        * pointerevents/mouse/pointerdown-prevent-default-expected.txt: Added.
        * pointerevents/mouse/pointerdown-prevent-default.html: Added.
        * pointerevents/utils.js:
        (prototype.clear):

2019-02-27  Simon Fraser  <simon.fraser@apple.com>

        scrolling/ios/hit-testing-iframe* tests need to hide the tap highlight
        https://bugs.webkit.org/show_bug.cgi?id=195099

        Reviewed by Frederic Wang.

        These tests were failing because the ref test captured the tap highlight, so hide
        it with -webkit-tap-highlight-color: transparent;

        * fast/scrolling/ios/hit-testing-iframe-001.html:
        * fast/scrolling/ios/hit-testing-iframe-002.html:
        * fast/scrolling/ios/hit-testing-iframe-003.html:
        * fast/scrolling/ios/hit-testing-iframe-004.html:
        * fast/scrolling/ios/hit-testing-iframe-005.html:
        * fast/scrolling/ios/hit-testing-iframe-006.html:
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-006.html:
        * platform/ios-wk2/TestExpectations: hit-testing-iframe-006.html passes now.

2019-02-27  Ulrich Pflueger  <up@nanocosmos.de>

        [MSE] SourceBuffer sample time increment vs. last frame duration check is broken
        https://bugs.webkit.org/show_bug.cgi?id=194747
        <rdar://problem/48148469>

        Reviewed by Jer Noble.

        * media/media-source/media-source-append-variable-frame-lengths-with-matching-durations-expected.txt: Added.
        * media/media-source/media-source-append-variable-frame-lengths-with-matching-durations.html: Added.

2019-02-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        Remove conditional compile guard for InsertIntoTextNodeCommand::doReapply
        https://bugs.webkit.org/show_bug.cgi?id=195067
        <rdar://problem/44812080>

        Reviewed by Tim Horton.

        Add a new layout test to verify that redoing text insertion in a non-editable element (which was previously
        editable) does not mutate the text nodes affected by editing. This test case currently fails on iOS, since we
        take a separate codepath when redoing that does not contain this additional check.

        * editing/undo/redo-text-insertion-in-non-editable-node-expected.txt: Added.
        * editing/undo/redo-text-insertion-in-non-editable-node.html: Added.

2019-02-26  Youenn Fablet  <youenn@apple.com>

        Move service worker response validation from the service worker client to the service worker itself
        https://bugs.webkit.org/show_bug.cgi?id=194716

        Reviewed by Geoffrey Garen.

        Rebased tests as we now report to the console log any service worker response validation erorr.

        * http/tests/inspector/network/resource-response-service-worker-expected.txt:
        * http/tests/workers/service/basic-fetch.https-expected.txt:
        * http/tests/workers/service/service-worker-crossorigin-fetch-expected.txt:

2019-02-26  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Load HTTP body of 401 response when AuthenticationChange is cancelled.
        https://bugs.webkit.org/show_bug.cgi?id=191652

        Reviewed by Alex Christensen.

        Added appropriate expected results for WebKit/WebKitLegacy of WinCairo port.

        * platform/wincairo-wk1/http/tests/security/401-logout/401-logout-expected.txt: Added.
        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/security/401-logout/401-logout-expected.txt: Added.

2019-02-26  Frederic Wang  <fwang@igalia.com>

        Split tests programmatic-scroll-iframe and scroll-iframe
        https://bugs.webkit.org/show_bug.cgi?id=195050

        This patch splits some iOS frame scrolling tests into separate tests in order to make debugging
        and test expectations easier to manage.

        Reviewed by Antti Koivisto.

        * fast/scrolling/ios/programmatic-scroll-iframe-001-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-001.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-002-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-002.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-003-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-003.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-004-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-004.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-005-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-005.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-006-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-006.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-007-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-007.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-008-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-008.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe-009-expected.html: Renamed from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
        * fast/scrolling/ios/programmatic-scroll-iframe-009.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe.html: Removed.
        * fast/scrolling/ios/scroll-iframe-001-expected.html: Added.
        * fast/scrolling/ios/scroll-iframe-001.html: Added.
        * fast/scrolling/ios/scroll-iframe-002-expected.html: Added.
        * fast/scrolling/ios/scroll-iframe-002.html: Added.
        * fast/scrolling/ios/scroll-iframe-003-expected.html: Added.
        * fast/scrolling/ios/scroll-iframe-003.html: Added.
        * fast/scrolling/ios/scroll-iframe-004-expected.html: Added.
        * fast/scrolling/ios/scroll-iframe-004.html: Added.
        * fast/scrolling/ios/scroll-iframe-expected.html: Removed.
        * fast/scrolling/ios/scroll-iframe.html: Removed.

2019-02-26  Frederic Wang  <fwang@igalia.com>

        Synchronize MathML WPT tests
        https://bugs.webkit.org/show_bug.cgi?id=195048

        This imports changes to the documentation and spec references for MathML.
        It also imports a new test for href currently disabled due to bug 187039.

        Reviewed by Manuel Rego Casasnovas.

        * TestExpectations: Disable the new href test since testdriver.js is not supported.

2019-02-26  Frederic Wang  <fwang@igalia.com>

        Export MathML fraction tests to WPT
        https://bugs.webkit.org/show_bug.cgi?id=194436

        We removed some fraction tests that have equivalent WPT tests.
        Some of them were actually exported from WebKit to WPT in [1]
        We also move tests for crashes/asserts/hangs to the top mathml/ directory.

        [1] https://github.com/web-platform-tests/wpt/pull/15301

        Reviewed by Manuel Rego Casasnovas.

        * mathml/fractions-invalid-expected.html: Moved to parent directory.
        * mathml/fractions-invalid.html: Ditto.
        * mathml/mfrac-nested-expected.txt: Ditto.
        * mathml/mfrac-nested.html:  Ditto.
        * mathml/presentation/fractions-box-expected.html: Removed. This is better tested by WPT
        tests frac-parameters-1.html, frac-parameters-2.html, frac-1.html.
        * mathml/presentation/fractions-box.html: Removed. Ditto.
        * mathml/presentation/fractions-color-expected-mismatch.html: Removed. This is exported as
        frac-color-001.html.
        * mathml/presentation/fractions-color.html: Removed. Ditto.
        * mathml/presentation/fractions-linethickness-expected.html: Removed. Covered by WPT tests
        frac-linethickness-*.html.
        * mathml/presentation/fractions-linethickness.html: Removed. Ditto.
        * mathml/presentation/mfrac-linethickness1-expected-mismatch.html: Removed. Ditto.
        * mathml/presentation/mfrac-linethickness1.html: Removed. Ditto.
        * mathml/presentation/mfrac-linethickness2-expected.html: Removed. Ditto.
        * mathml/presentation/mfrac-linethickness2.html: Removed. Ditto.
        * mathml/presentation/mfrac-linethickness3-expected-mismatch.html: Removed. Ditto.
        * mathml/presentation/mfrac-linethickness3.html: Removed. Ditto.
        * mathml/presentation/fractions-mrow-expected.html: Removed. Exported as frac-mrow-001.html.
        * mathml/presentation/fractions-mrow.html: Removed. Ditto.
        * mathml/presentation/fractions-numalign-denomalign-expected.html: Removed. Exported as
        frac-numalign-denomalign-001.html.
        * mathml/presentation/fractions-numalign-denomalign.html: Removed. Ditto.
        * mathml/presentation/fractions-vertical-alignment-expected.html: Removed. This is better
        tests by WPT tests frac-parameters-1.html, frac-parameters-2.html, frac-1.html.
        * mathml/presentation/fractions-vertical-alignment.html: Removed. Ditto.

2019-02-25  Yongjun Zhang  <yongjun_zhang@apple.com>

        scalableNativeWebpageParameters() is not preserved on new page navigation.
        https://bugs.webkit.org/show_bug.cgi?id=194892
        <rdar://problem/47538280>

        Reviewed by Wenson Hsieh.

        * fast/viewport/ios/resources/go-back.html: Added.
        * fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation-expected.txt: Added.
        * fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html: Added.
        * fast/viewport/ios/minimum-scale-after-changing-view-scale.html: When shouldIgnoreMetaViewport
            setting is on, for pages don't have viewport meta-tag, the default configuration is now
            changed to scalableNativeWebpageParameters(). The original test was under the assumption
            that the default configuration is always fixedNativeWebpageParameters(). To keep the test
            still valid, add a viewport meta-tag to it.
        * resources/ui-helper.js:
        (window.UIHelper.setAllowsViewportShrinkToFit):

2019-02-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Adjust initial scale zooming heuristics when changing view scale
        https://bugs.webkit.org/show_bug.cgi?id=194995

        Reviewed by Tim Horton.

        Rebaseline and adjust an existing layout test.

        * fast/viewport/ios/initial-scale-after-changing-view-scale-expected.txt:
        * fast/viewport/ios/initial-scale-after-changing-view-scale.html:
        * platform/ipad/fast/viewport/ios/initial-scale-after-changing-view-scale-expected.txt: Removed.

        Removed an iPad-specific test expectation, since initial scale zooming behavior should be the same now at both
        device dimensions.

2019-02-25  Frederic Wang  <fwang@igalia.com>

        Split iOS tests for hit testing in iframes
        https://bugs.webkit.org/show_bug.cgi?id=195003

        This patch splits hit-testing-iframe.html into smaller tests to faciliate
        debugging and handling of test expectations. It also adds a new test
        for programmatic scrolling which was fixed after bug 194886.

        Reviewed by Antti Koivisto.

        * fast/scrolling/ios/hit-testing-iframe-001-expected.html: Copied from LayoutTests/fast/scrolling/ios/hit-testing-iframe-expected.html.
        * fast/scrolling/ios/hit-testing-iframe-001.html: Added.
        * fast/scrolling/ios/hit-testing-iframe-002-expected.html: Copied from LayoutTests/fast/scrolling/ios/hit-testing-iframe-expected.html.
        * fast/scrolling/ios/hit-testing-iframe-002.html: Added.
        * fast/scrolling/ios/hit-testing-iframe-003-expected.html: Copied from LayoutTests/fast/scrolling/ios/hit-testing-iframe-expected.html.
        * fast/scrolling/ios/hit-testing-iframe-003.html: Added.
        * fast/scrolling/ios/hit-testing-iframe-004-expected.html: Copied from LayoutTests/fast/scrolling/ios/hit-testing-iframe-expected.html.
        * fast/scrolling/ios/hit-testing-iframe-004.html: Added.
        * fast/scrolling/ios/hit-testing-iframe-005-expected.html: Copied from LayoutTests/fast/scrolling/ios/hit-testing-iframe-expected.html.
        * fast/scrolling/ios/hit-testing-iframe-005.html: Added.
        * fast/scrolling/ios/hit-testing-iframe-006-expected.html: Renamed from LayoutTests/fast/scrolling/ios/hit-testing-iframe-expected.html.
        * fast/scrolling/ios/hit-testing-iframe-006.html: Added.
        * fast/scrolling/ios/hit-testing-iframe.html: Removed.
        * platform/ios-wk2/TestExpectations: Set failure to the corresponding extracted test.

2019-02-25  Chris Fleizach  <cfleizach@apple.com>

        AX: <footer> HTML5 tag not reading as ARIA Landmark to VoiceOver
        https://bugs.webkit.org/show_bug.cgi?id=190138
        <rdar://problem/44907695>

        Reviewed by Joanmarie Diggs.

        * accessibility/mac/footer-expected.txt:
        * accessibility/mac/footer-roledescription-expected.txt:
        * accessibility/mac/footer-roledescription.html:
        * accessibility/mac/footer.html:
        * accessibility/roles-computedRoleString-expected.txt:
        * accessibility/roles-computedRoleString.html:
        * platform/gtk/accessibility/roles-computedRoleString-expected.txt:
        * platform/mac-wk2/accessibility/roles-exposed-expected.txt:
        * platform/mac/accessibility/roles-computedRoleString-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:

2019-02-25  Frederic Wang  <fwang@igalia.com>

        Add tests mixing programmatic and user frame scrolling on iOS
        https://bugs.webkit.org/show_bug.cgi?id=194900

        This patch adds tests initially written for bug 182868 but eventually
        fixed by bug 194886. They involve mixing user and programmatic
        scrolling.

        Reviewed by Antti Koivisto.

        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-001-expected.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-001.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-002-expected.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-002.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-003-expected.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-003.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-004-expected.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-004.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-005-expected.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-005.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-006-expected.html: Added.
        * fast/scrolling/ios/mixing-user-and-programmatic-scroll-006.html: Added.

2019-02-25  Truitt Savell  <tsavell@apple.com>

        fast/mediastream/MediaStream-video-element.html is flaky after r241821, marking as failure while waiting for fix.
        https://bugs.webkit.org/show_bug.cgi?id=194916

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-02-25  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: IDBDatabase and IDBTransaction are leaked in layout tests
        https://bugs.webkit.org/show_bug.cgi?id=194709

        Reviewed by Geoffrey Garen.

        * TestExpectations:
        * platform/wk2/TestExpectations:
        * storage/indexeddb/IDBObject-leak-expected.txt: Added.
        * storage/indexeddb/IDBObject-leak.html: Added.

2019-02-25  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Adding a few failure expectations as well
        as updating a couple of port-specific test baselines.

        * platform/wpe/TestExpectations:
        * platform/wpe/fast/css/apple-system-colors-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt:

2019-02-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: Change the InspectorOverlay to use native rather than canvas
        https://bugs.webkit.org/show_bug.cgi?id=105023
        <rdar://problem/13443692>

        Reviewed by Brian Burg.

        * http/tests/inspector/dom/shapes-test.js: Removed.
        * inspector/dom/hideHighlight.html: Removed.
        * inspector/dom/hideHighlight-expected.txt: Removed.
        * inspector/dom/highlight-shape-outside.html: Removed.
        * inspector/dom/highlight-shape-outside-expected.txt: Removed.
        * inspector/dom/highlight-shape-outside-margin.html: Removed.
        * inspector/dom/highlight-shape-outside-margin-expected.txt: Removed.
        * inspector/dom/highlightFrame.html: Removed.
        * inspector/dom/highlightFrame-expected.txt: Removed.
        * inspector/dom/highlightNode.html: Removed.
        * inspector/dom/highlightNode-expected.txt: Removed.
        * inspector/dom/highlightNodeList.html: Removed.
        * inspector/dom/highlightNodeList-expected.txt: Removed.
        * inspector/dom/highlightSelector.html: Removed.
        * inspector/dom/highlightSelector-expected.txt: Removed.
        * platform/mac/TestExpectations:

2019-02-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: provide a way to make searches case sensitive or use a regular expression
        https://bugs.webkit.org/show_bug.cgi?id=192527
        <rdar://problem/46800955>

        Reviewed by Joseph Pecoraro.

        * inspector/debugger/search-scripts.html:
        * inspector/debugger/search-scripts-expected.txt:

        * inspector/page/searchInResources.html:
        * inspector/page/searchInResources-expected.txt:

        * inspector/page/resources/search-script.js:
        * inspector/page/resources/search-stylesheet.css:
        * inspector/page/resources/search-worker.js:
        * inspector/page/resources/search-xhr.txt:

2019-02-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: make debounce Proxy into its own class
        https://bugs.webkit.org/show_bug.cgi?id=194721

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/debouncer.html: Renamed from inspector/unit-tests/debounce.html:.
        * inspector/unit-tests/debouncer-expected.txt: Renamed from inspector/unit-tests/debounce-expected.txt.
        * inspector/unit-tests/throttler.html: Renamed from inspector/unit-tests/throttle.html:.
        * inspector/unit-tests/throttler-expected.txt: Renamed from inspector/unit-tests/throttle-expected.txt.
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:

2019-02-23  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Buffer updates part 1: async mapping functions, unmap, and destroy
        https://bugs.webkit.org/show_bug.cgi?id=194665

        Reviewed by Dean Jackson.

        Rewrite buffers.html -> map-write-buffers.html to test new functionality. Rewrite other affected
        tests to use mapWriteAsync.

        * webgpu/buffer-resource-triangles.html:
        * webgpu/buffers-expected.txt: Renamed to map-write-buffers-expected.txt.
        * webgpu/buffers.html: Renamed to map-write-buffers.html.
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/map-write-buffers-expected.txt: Renamed from buffers-expected.txt.
        * webgpu/map-write-buffers.html: Renamed from buffers.html.
        * webgpu/vertex-buffer-triangle-strip.html:

        * platform/mac/TestExpectations: Skip all webgpu tests on macOS 10.12 bots.

2019-02-23  chris fleizach  <cfleizach@apple.com>

        AX: WebKit is incorrectly mapping the <meter> element to progressbar
        https://bugs.webkit.org/show_bug.cgi?id=164051
        <rdar://problem/29055615>

        Reviewed by Joanmarie Diggs.

        * platform/mac-wk2/accessibility/roles-exposed-expected.txt:
        * platform/mac/accessibility/meter-element-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:

2019-02-22  Simon Fraser  <simon.fraser@apple.com>

        Fix a legacy animation test. The <!-- webkit-test-runner --> was inside the <style>.

        * legacy-animation-engine/animations/additive-transform-animations.html:

2019-02-22  Eric Liang  <ericliang@apple.com>

        AX: Treat AXChildrenInNavigationOrder as AXChildren before adding support for aria-flowto
        https://bugs.webkit.org/show_bug.cgi?id=194923

        Reviewed by Chris Fleizach.

        Added test to check AXChildrenInNavigationOrder returns non-empty array from AXChildren.
        * accessibility/mac/children-in-navigation-order-returns-children-expected.txt: Added.
        * accessibility/mac/children-in-navigation-order-returns-children.html: Added.

2019-02-22  Basuke Suzuki  <basuke.suzuki@sony.com>

        [WinCairo] Enable wk1/wk2 suffix for platform search path.
        https://bugs.webkit.org/show_bug.cgi?id=194846

        Reviewed by Don Olmstead.

        Added WebKitLegacy specific TestExpectations.

        * platform/wincairo-wk1/TestExpectations: Added.
        * platform/wincairo/TestExpectations:

2019-02-22  Dean Jackson  <dino@apple.com>

        Rotation animations sometimes use the wrong origin (affects apple.com)
        https://bugs.webkit.org/show_bug.cgi?id=194878
        <rdar://problem/43908047>

        Reviewed by Simon Fraser.

        Forgot another expected results file.

        * legacy-animation-engine/animations/additive-transform-animations-expected.html: Added.

2019-02-22  Ryosuke Niwa  <rniwa@webkit.org>

        Skip the test added in r241932 on iOS for now.

        * platform/ios/TestExpectations:

2019-02-22  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Callout menu overlaps in-page controls when editing a comment in github.com's issue tracker
        https://bugs.webkit.org/show_bug.cgi?id=194873
        <rdar://problem/46701974>

        Reviewed by Tim Horton.

        Add a test to ensure that the we dodge clickable elements when showing the callout bar.

        * editing/selection/ios/avoid-showing-callout-menu-over-controls-expected.txt: Added.
        * editing/selection/ios/avoid-showing-callout-menu-over-controls.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.waitForMenuToShow.return.new.Promise):
        (window.UIHelper.waitForMenuToShow):
        (window.UIHelper.menuRect):
        (window.UIHelper):

2019-02-22  Wenson Hsieh  <wenson_hsieh@apple.com>

        Input type "formatSetInlineTextDirection" is dispatched when changing paragraph-level text direction
        https://bugs.webkit.org/show_bug.cgi?id=194703
        <rdar://problem/48111775>

        Reviewed by Ryosuke Niwa.

        Rebaseline some existing tests to expect input events of type "formatSetBlockTextDirection" instead of
        "formatSetInlineTextDirection" when changing paragraph text direction; additionally, add a new layout test that
        changes the inline text direction in some Bidi text, and verify that "formatSetInlineTextDirection" is emitted
        in this scenario, and that calling `preventDefault()` in the beforeinput event handler causes no change to be
        made.

        * editing/input/ios/rtl-keyboard-input-on-focus-expected.txt:
        * fast/events/before-input-events-prevent-block-text-direction-expected.txt: Added.
        * fast/events/before-input-events-prevent-block-text-direction.html: Renamed from LayoutTests/fast/events/before-input-events-prevent-text-direction.html.
        * fast/events/before-input-events-prevent-inline-text-direction-expected.txt: Added.
        * fast/events/before-input-events-prevent-inline-text-direction.html: Added.
        * fast/events/before-input-events-prevent-text-direction-expected.txt: Removed.

2019-02-22  Rob Buis  <rbuis@igalia.com>

        Fix unitless usage of mathsize
        https://bugs.webkit.org/show_bug.cgi?id=194940

        Reviewed by Frédéric Wang.

        Tests lengths-1.html and length-3.html now pass.

        * TestExpectations:

2019-02-21  Simon Fraser  <simon.fraser@apple.com>

        Hardcode Visual Viewports on everywhere except iOS WK1
        https://bugs.webkit.org/show_bug.cgi?id=194928

        Reviewed by Zalan Bujtas.
        
        Remove "(visual viewport enabled 1)" from scrolling tree dumps. Remove calls
        to "internals.settings.setVisualViewportEnabled(true)"

        * fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html:
        * fast/events/ios/rotation/resources/rotation-utils.js:
        * fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html:
        * fast/visual-viewport/client-rects-relative-to-layout-viewport-zoomed.html:
        * fast/visual-viewport/client-rects-relative-to-layout-viewport.html:
        * fast/visual-viewport/nonzoomed-rects.html:
        * fast/visual-viewport/resize-event-fired-window-resized.html:
        * fast/visual-viewport/resize-event-fired.html:
        * fast/visual-viewport/rtl-nonzoomed-rects.html:
        * fast/visual-viewport/rtl-zoomed-rects.html:
        * fast/visual-viewport/rubberbanding-viewport-rects-extended-background.html:
        * fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html:
        * fast/visual-viewport/rubberbanding-viewport-rects.html:
        * fast/visual-viewport/scroll-event-fired.html:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up.html:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down.html:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html:
        * fast/visual-viewport/viewport-dimensions-exclude-custom-scrollbars.html:
        * fast/visual-viewport/viewport-dimensions-exclude-scrollbars.html:
        * fast/visual-viewport/viewport-dimensions-iframe.html:
        * fast/visual-viewport/viewport-dimensions-under-page-zoom.html:
        * fast/visual-viewport/viewport-dimensions.html:
        * fast/visual-viewport/visual-viewport-same-object.html:
        * fast/visual-viewport/zoomed-fixed-header-and-footer.html:
        * fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html:
        * fast/visual-viewport/zoomed-fixed.html:
        * fast/visual-viewport/zoomed-rects.html:
        * fast/visual-viewport/zoomed-scroll-into-view-fixed.html:
        * fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
        * scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
        * scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
        * scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
        * scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
        * scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling.html: Don't insert the first scrolling tree
        dump until the end, to avoid it affecting main frame height before we get the second layer tree.
        * tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
        * tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
        * tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
        * tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
        * tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
        * tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
        * tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:

2019-02-21  Darin Adler  <darin@apple.com>

        Some refinements for Node and Document
        https://bugs.webkit.org/show_bug.cgi?id=194764

        Reviewed by Ryosuke Niwa.

        fast/forms/access-key-shadow-and-ordering-expected.txt: Added.
        fast/forms/access-key-shadow-and-ordering.html: Added.

2019-02-21  Daniel Bates  <dabates@apple.com>

        Fix the test failure following r241918
        (https://bugs.webkit.org/show_bug.cgi?id=194906)

        For some reason strict cookies are sent via HTTP in WK1 and not in WK2. Will investigate in <https://bugs.webkit.org/show_bug.cgi?id=194933>.
        This sub-test failure occurs with and without the patch. As the primary purpose of this test
        was to ensure correctness for Same Site lax cookies, I've amended the test and test result
        for now.

        * http/tests/cookies/same-site/user-load-cross-site-redirect-expected.txt:
        * http/tests/cookies/same-site/user-load-cross-site-redirect.php:

2019-02-21  Daniel Bates  <dabates@apple.com>

        Same Site Lax cookies are not sent with cross-site redirect from client-initiated load
        https://bugs.webkit.org/show_bug.cgi?id=194906
        <rdar://problem/44305947>

        Reviewed by Brent Fulgham.

        Add a test that is representative of a user loading a cross-site page that redirects
        to a page that expects Same Site Lax cookies.

        * http/tests/cookies/same-site/user-load-cross-site-redirect-expected.txt: Added.
        * http/tests/cookies/same-site/user-load-cross-site-redirect.php: Added.

2019-02-21  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/text/international/khmer-selection.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=191368

        Reviewed by Brent Fulgham.

        * platform/win/TestExpectations:

2019-02-21  Dean Jackson  <dino@apple.com>

        Rotation animations sometimes use the wrong origin (affects apple.com)
        https://bugs.webkit.org/show_bug.cgi?id=194878
        <rdar://problem/43908047>

        Reviewed by Simon Fraser.

        Forgot the expected results file.

        * animations/additive-transform-animations-expected.html: Added.

2019-02-21  Zalan Bujtas  <zalan@apple.com>

        [LFC][Floats] Add support for placing formatting roots in-between floats.
        https://bugs.webkit.org/show_bug.cgi?id=194902

        Reviewed by Antti Koivisto.

        * fast/block/block-only/floats-and-block-formatting-roots-expected.html: Added.
        * fast/block/block-only/floats-and-block-formatting-roots.html: Added.

2019-02-21  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Gardening for unexpected passes
        https://bugs.webkit.org/show_bug.cgi?id=194854

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:

2019-02-20  Antti Koivisto  <antti@apple.com>

        Make programmatic frame scrolling work on iOS
        https://bugs.webkit.org/show_bug.cgi?id=194886

        Reviewed by Simon Fraser.

        Test by Frederic Wang.

        * fast/scrolling/ios/programmatic-scroll-iframe-expected.html: Added.
        * fast/scrolling/ios/programmatic-scroll-iframe.html: Added.

2019-02-20  Dean Jackson  <dino@apple.com>

        Rotation animations sometimes use the wrong origin (affects apple.com)
        https://bugs.webkit.org/show_bug.cgi?id=194878
        <rdar://problem/43908047>

        Reviewed by Simon Fraser.

        Update an old pixel test to be a new ref test, and remove all the old platform-specific
        -expected versions.

        * animations/additive-transform-animations-expected.png: Removed.
        * animations/additive-transform-animations.html:
        * legacy-animation-engine/animations/additive-transform-animations-expected.png: Removed.
        * legacy-animation-engine/animations/additive-transform-animations.html:
        * platform/gtk/animations/additive-transform-animations-expected.png: Removed.
        * platform/gtk/animations/additive-transform-animations-expected.txt: Removed.
        * platform/gtk/legacy-animation-engine/animations/additive-transform-animations-expected.png: Removed.
        * platform/gtk/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Removed.
        * platform/ios/animations/additive-transform-animations-expected.txt: Removed.
        * platform/ios/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Removed.
        * platform/mac/animations/additive-transform-animations-expected.txt: Removed.
        * platform/mac/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Removed.
        * platform/win/animations/additive-transform-animations-expected.txt: Removed.
        * platform/win/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Removed.
        * platform/wincairo/animations/additive-transform-animations-expected.txt: Removed.
        * platform/wincairo/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Removed.
        * platform/wpe/animations/additive-transform-animations-expected.txt: Removed.
        * platform/wpe/legacy-animation-engine/animations/additive-transform-animations-expected.txt: Removed.

2019-02-20  Said Abou-Hallawa  <sabouhallawa@apple.com>

        drawImage() clears the canvas if it's the source of the image and globalCompositeOperation is "copy"
        https://bugs.webkit.org/show_bug.cgi?id=194746

        Reviewed by Dean Jackson.

        * fast/canvas/canvas-drawImage-composite-copy-expected.html: Added.
        * fast/canvas/canvas-drawImage-composite-copy.html: Added.

2019-02-20  Shawn Roberts  <sroberts@apple.com>

        [ Mac WK2 ] REGRESSION (r231450) Layout Test http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=194350

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Marking as flaky until a fix lands

2019-02-20  Shawn Roberts  <sroberts@apple.com>

        [ Mac WK1 ] REGRESSION (r230006) Layout Test media/modern-media-controls/compact-media-controls/compact-media-controls-layout.html is a flaky text diff failure
        https://bugs.webkit.org/show_bug.cgi?id=194309

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Marking as flaky until a fix lands

2019-02-20  Shawn Roberts  <sroberts@apple.com>

        [ Mac WK2 iOS Debug ] REGRESSION (r240713) Layout Test scrollingcoordinator/scrolling-tree/fixed-inside-frame.html is flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=194253

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations: Marking as flaky until a fix lands
        * platform/mac-wk2/TestExpectations: ditto

2019-02-20  Shawn Roberts  <sroberts@apple.com>

        [ Mac WK2 ] REGRESSION (r239333) Flaky ASSERTION FAILED: m_uncommittedState.state == State::Committed on http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html
        https://bugs.webkit.org/show_bug.cgi?id=194225

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Marking as flaky while waiting for fix to land

2019-02-20  Shawn Roberts  <sroberts@apple.com>

        [ Mac WK2 ] REGRESSION (r238519) Layout Test fast/repaint/placeholder-after-caps-lock-hidden.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=194170

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Marking as flaky while waiting for fix to land

2019-02-20  Timothy Hatcher  <timothy@apple.com>

        RenderThemeIOS should use RenderTheme's color cache instead of its own.
        https://bugs.webkit.org/show_bug.cgi?id=194822
        rdar://problem/48208296

        Reviewed by Tim Horton.

        * platform/ios/fast/css/apple-system-colors-expected.txt: Rebased for -apple-system-purple.
        * platform/win/fast/css/apple-system-colors-expected.txt: Rebased for invalid color now
        that -apple-system colors are macOS and iOS only.

2019-02-20  Loïc Yhuel  <loic.yhuel@softathome.com>

        Fix crash when opening Web Inspector after a WebSocket was blocked by content extensions
        https://bugs.webkit.org/show_bug.cgi?id=194819

        Reviewed by Joseph Pecoraro.

        * TestExpectations: Skip the test by default, like http/tests/contentextensions
        * http/tests/inspector/network/contentextensions/blocked-websocket-crash-expected.txt: Added.
        * http/tests/inspector/network/contentextensions/blocked-websocket-crash.html: Added.
        * http/tests/inspector/network/contentextensions/blocked-websocket-crash.html.json: Added.
        * platform/gtk/TestExpectations: Unskip the test
        * platform/mac-wk2/TestExpectations: Ditto
        * platform/wpe/TestExpectations: Ditto

2019-02-20  Shawn Roberts  <sroberts@apple.com>

        REGRESSION (r240727) [ Mac iOS ] Layout Test http/tests/workers/service/basic-register-exceptions.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=194368

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Updating test expectations while waiting for a fix
        * platform/mac-wk2/TestExpectations: ditto

2019-02-19  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r238090): Toggling visibility on the <html> element can result in a blank web view
        https://bugs.webkit.org/show_bug.cgi?id=194827
        rdar://problem/47620594

        Reviewed by Antti Koivisto.

        Test dumps layer tree with RenderLayerBacking::shouldDumpPropertyForLayer to show that the root has (drawsContent 1)

        * compositing/visibility/root-visibility-toggle-expected.txt: Added.
        * compositing/visibility/root-visibility-toggle.html: Added.
        * platform/mac-wk1/compositing/visibility/root-visibility-toggle-expected.txt: Added.

2019-02-19  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
        https://bugs.webkit.org/show_bug.cgi?id=172848
        <rdar://problem/25709212>

        Reviewed by Mark Lam.

        * inspector/unit-tests/heap-snapshot-expected.txt:
        * inspector/unit-tests/heap-snapshot.html:
        Update for the new node flag.

2019-02-19  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r241784.

        Broke all OpenSource builds.

        Reverted changeset:

        "Web Inspector: Improve ES6 Class instances in Heap Snapshot
        instances view"
        https://bugs.webkit.org/show_bug.cgi?id=172848
        https://trac.webkit.org/changeset/241784

2019-02-19  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
        https://bugs.webkit.org/show_bug.cgi?id=172848
        <rdar://problem/25709212>

        Reviewed by Mark Lam.

        * inspector/unit-tests/heap-snapshot-expected.txt:
        * inspector/unit-tests/heap-snapshot.html:
        Update for the new node flag.

2019-02-19  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r240909): Release assertion in FrameLoader::loadPostRequest when opening new window
        https://bugs.webkit.org/show_bug.cgi?id=194820

        Reviewed by Geoffrey Garen.

        Added a regression test.

        * fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation-expected.txt: Added.
        * fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html: Added.

2019-02-19  Truitt Savell  <tsavell@apple.com>

        [ iOS ] Layout Tests in editing/pasteboard/data-transfer-set-data-* are flaky Timeouts
        https://bugs.webkit.org/show_bug.cgi?id=188892

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2019-02-19  Shawn Roberts  <sroberts@apple.com>

        [ Mac WK2 iOS ] REGRESSION (r231008) Layout Test http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=194826

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations: Marking Debug flaky while waiting for bug fix
        * platform/mac-wk2/TestExpectations: Marking Mac WK2 flaky while waiting for bug fix

2019-02-19  Commit Queue  <commit-queue@webkit.org>

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

        Causing time outs and EWS failures after expectation file was
        added. (Requested by ShawnRoberts on #webkit).

        Reverted changeset:

        "IndexedDB: leak IDBDatabase and IDBTransacstion in layout
        tests"
        https://bugs.webkit.org/show_bug.cgi?id=194709
        https://trac.webkit.org/changeset/241722

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

        [iOS] "touch-action: none" should not prevent text selection or tapping on a link
        https://bugs.webkit.org/show_bug.cgi?id=194812
        <rdar://problem/47901131>

        Reviewed by Dean Jackson.

        Add a new test which checks that tapping on a link with "touch-action: none" does not prevent navigation.

        * pointerevents/ios/over-enter-out-leave.html:
        * pointerevents/ios/touch-action-none-link-traversal-expected.txt: Added.
        * pointerevents/ios/touch-action-none-link-traversal.html: Added.
        * pointerevents/utils.js: Since we now have two tests performing a tap, we add a ui.tap() method which is a wrapper for uiController.singleTapAtPoint().
        (const.ui.new.UIController.prototype.tap):

2019-02-18  Alex Christensen  <achristensen@webkit.org>

        Adjust test expectations after r241754
        https://bugs.webkit.org/show_bug.cgi?id=194510

        * platform/wk2/TestExpectations:

2019-02-18  Alex Christensen  <achristensen@webkit.org>

        Revert functional part of r241451
        https://bugs.webkit.org/show_bug.cgi?id=194510

        * platform/wk2/TestExpectations:

2019-02-18  Daniel Bates  <dabates@apple.com>

        [iOS] Focus ring for checkboxes, radio buttons, buttons and search fields should hug tighter to the contour
        https://bugs.webkit.org/show_bug.cgi?id=193599
        <rdar://problem/47399602>

        Reviewed by Simon Fraser.

        Ideally we should find a way to write non-pixel tests for focus rings. For now, add some mismatch ref
        tests.

        We cannot write a "good" mismatch ref test for <select> at the moment since there is no way to defocus
        a <select> without closing its popup. We also cannot change outline-color when outline-style: auto is
        used and outline-style: auto is needed to get shrink-wrapped focus rings :(

        * fast/forms/ios/focus-button-expected-mismatch.html: Added.
        * fast/forms/ios/focus-button.html: Added.
        * fast/forms/ios/focus-checkbox-expected-mismatch.html: Added.
        * fast/forms/ios/focus-checkbox.html: Added.
        * fast/forms/ios/focus-checked-checkbox-expected-mismatch.html: Added.
        * fast/forms/ios/focus-checked-checkbox.html: Added.
        * fast/forms/ios/focus-checked-radio-expected-mismatch.html: Added.
        * fast/forms/ios/focus-checked-radio.html: Added.
        * fast/forms/ios/focus-radio-expected-mismatch.html: Added.
        * fast/forms/ios/focus-radio.html: Added.
        * fast/forms/ios/focus-reset-button-expected-mismatch.html: Added.
        * fast/forms/ios/focus-reset-button.html: Added.
        * fast/forms/ios/focus-search-field-expected-mismatch.html: Added.
        * fast/forms/ios/focus-search-field.html: Added.
        * fast/forms/ios/focus-submit-button-expected-mismatch.html: Added.
        * fast/forms/ios/focus-submit-button.html: Added.
        * fast/forms/ios/focus-text-field-expected-mismatch.html: Added.
        * fast/forms/ios/focus-text-field.html: Added.
        * fast/forms/ios/focus-textarea-expected-mismatch.html: Added.
        * fast/forms/ios/focus-textarea.html: Added.
        * platform/ios/TestExpectations: Skip the tests for now on iOS we do not build with ENABLE(FULL_KEYBOARD_ACCESS) enabled.

2019-02-18  John Wilander  <wilander@apple.com>

        Check the existence of the frame in Document::hasFrameSpecificStorageAccess() and Document::setHasFrameSpecificStorageAccess()
        https://bugs.webkit.org/show_bug.cgi?id=194777
        <rdar://problem/47731945>

        Reviewed by Geoffrey Garen and Chris Dumez.

        * http/tests/storageAccess/remove-requesting-iframe-expected.txt: Added.
        * http/tests/storageAccess/remove-requesting-iframe.html: Added.
        * http/tests/storageAccess/resources/request-storage-access-and-immediately-postmessage-iframe.html: Added.

2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Better categorize CPU usage per-thread / worker
        https://bugs.webkit.org/show_bug.cgi?id=194564

        Reviewed by Devin Rousso.

        * inspector/cpu-profiler/resources/busy-worker.js: Added.
        * inspector/cpu-profiler/threads-expected.txt: Added.
        * inspector/cpu-profiler/threads.html: Added.
        Test that WebKit receives per-Thread CPU usage numbers.

2019-02-18  Daniel Bates  <dabates@apple.com>

        [iOS] Keyups for non-modifier keys identified as "Dead" when not focused in a content-editable element
        https://bugs.webkit.org/show_bug.cgi?id=192824
        <rdar://problem/47100332>

        Reviewed by Wenson Hsieh.

        Update tests and expected results. As it turns out fixing the bug in WebKitTestRunner/ios/HIDEventGenerator.mm
        so that we now dispatch key events for F17 thru F24 exposed a bug in UIKit. See <rdar://problem/47128940>.
        This same bug is also responsible for a lack of key events when the Insert key is pressed.

        Added sub-test for Tab key to keypress-keys-in-non-editable-element.html. Changed expected result in test
        keypress-keys-in-non-editable-element.html for the forward delete key to expect failure. We expect that pressing
        the forward delete key will not dispatch a keypress to match the behavior on Mac. This will be addressed by a
        UIKit fix.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html:
        * fast/events/ios/keypress-keys-in-non-editable-element-expected.txt:
        * fast/events/ios/keypress-keys-in-non-editable-element.html:

2019-02-18  Eric Carlson  <eric.carlson@apple.com>

        Add MSE logging configuration
        https://bugs.webkit.org/show_bug.cgi?id=194719
        <rdar://problem/48122151>

        Reviewed by Joseph Pecoraro.

        * inspector/console/webcore-logging-expected.txt:

2019-02-18  Alex Christensen  <achristensen@webkit.org>

        Disable safe browsing in WKWebView and remove its WKPreferences API
        https://bugs.webkit.org/show_bug.cgi?id=194723
        <rdar://problem/48122993>

        Reviewed by Geoffrey Garen.

        * platform/mac-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt:
        This test has results that depend on timing, and I need to update its results when I disable safe browsing.
        I've done this several times before.  See r237876 for an example.

2019-02-18  Antoine Quint  <graouts@apple.com>

        [iOS] Dispatch additional events along with pointerdown and pointerup
        https://bugs.webkit.org/show_bug.cgi?id=194776
        <rdar://problem/48164284>

        Reviewed by Brent Fulgham.

        Added a new test that checks that "pointerover" and "pointerenter" precede "pointerdown" and that "pointerout" and "pointerleave" follow "pointerup".

        * pointerevents/ios/over-enter-out-leave-expected.txt: Added.
        * pointerevents/ios/over-enter-out-leave.html: Added.

2019-02-18  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: leak IDBDatabase and IDBTransacstion in layout tests
        https://bugs.webkit.org/show_bug.cgi?id=194709

        Reviewed by Geoffrey Garen.

        * storage/indexeddb/IDBObject-leak.html: Added.

2019-02-18  Megan Gardner  <megan_gardner@apple.com>

        Turn On Smart Delete
        https://bugs.webkit.org/show_bug.cgi?id=194320

        Reviewed by Ryosuke Niwa.

        Update smart-delete-* tests, and rebase many other tests to work with the new smart delete setting.

        * editing/deleting/smart-delete-001-expected.txt: Added.
        * editing/deleting/smart-delete-001.html:
        * editing/deleting/smart-delete-002-expected.txt:
        * editing/deleting/smart-delete-002.html:
        * editing/deleting/smart-delete-003-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/smart-delete-003-expected.txt.
        * editing/deleting/smart-delete-003.html:
        * editing/deleting/smart-delete-004-expected.txt: Renamed from LayoutTests/platform/mac/editing/deleting/smart-delete-004-expected.txt.
        * editing/deleting/smart-delete-004.html:
        * editing/deleting/smart-delete-across-editable-boundaries-2-expected.txt:
        * editing/deleting/smart-delete-across-editable-boundaries-2.html:
        * editing/selection/delete-word-granularity-text-control.html:
        * platform/ios-wk1/editing/deleting/smart-delete-003-expected.txt: Removed.
        * platform/ios-wk1/editing/deleting/smart-delete-004-expected.txt: Removed.
        * platform/ios-wk2/editing/deleting/smart-delete-003-expected.txt: Removed.
        * platform/ios-wk2/editing/pasteboard/cut-text-001-expected.png: Removed.
        * platform/ios/TestExpectations:
        * platform/ios/editing/deleting/5206311-1-expected.txt:
        * platform/ios/editing/deleting/delete-across-editable-content-boundaries-2-expected.txt: Added.
        * platform/ios/editing/deleting/delete-across-editable-content-boundaries-3-expected.txt: Added.
        * platform/ios/editing/deleting/delete-and-undo-expected.txt:
        * platform/ios/editing/deleting/delete-block-merge-contents-012-expected.txt:
        * platform/ios/editing/deleting/delete-block-merge-contents-017-expected.txt:
        * platform/ios/editing/deleting/delete-contiguous-ws-001-expected.txt:
        * platform/ios/editing/deleting/delete-image-003-expected.txt:
        * platform/ios/editing/deleting/delete-leading-ws-001-expected.txt:
        * platform/ios/editing/deleting/delete-selection-001-expected.txt:
        * platform/ios/editing/deleting/delete-trailing-ws-001-expected.txt:
        * platform/ios/editing/deleting/delete-ws-fixup-002-expected.txt:
        * platform/ios/editing/deleting/delete-ws-fixup-003-expected.txt:
        * platform/ios/editing/deleting/delete-ws-fixup-004-expected.txt:
        * platform/ios/editing/deleting/smart-delete-001-expected.txt:
        * platform/ios/editing/deleting/smart-delete-002-expected.txt: Added.
        * platform/ios/editing/deleting/smart-delete-003-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/smart-delete-003-expected.txt.
        * platform/ios/editing/deleting/smart-delete-004-expected.txt: Renamed from LayoutTests/platform/mac/editing/deleting/smart-delete-003-expected.txt.
        * platform/ios/editing/deleting/smart-delete-across-editable-boundaries-2-expected.txt: Added.
        * platform/ios/editing/deleting/table-cells-expected.txt:
        * platform/ios/editing/execCommand/delete-line-and-insert-text-in-font-inside-blockquote-expected.txt: Added.
        * platform/ios/editing/pasteboard/cut-text-001-expected.txt: Renamed from LayoutTests/platform/ios-wk2/editing/pasteboard/cut-text-001-expected.txt.
        * platform/ios/editing/pasteboard/paste-2-expected.txt:
        * platform/mac/editing/deleting/smart-delete-001-expected.png: Removed.
        * platform/mac/editing/deleting/smart-delete-001-expected.txt: Removed.
        * platform/mac/editing/deleting/smart-delete-002-expected.png: Removed.
        * platform/mac/editing/deleting/smart-delete-003-expected.png: Removed.
        * platform/mac/editing/deleting/smart-delete-004-expected.png: Removed.
        * resources/ui-helper.js:
        (window.UIHelper.async.doubleActivateAt):
        (window.UIHelper.async.doubleActivateAtSelectionStart):
        (window.UIHelper.async.selectWordByDoubleTapOrClick):

2019-02-17  Fujii Hironori  <Hironori.Fujii@sony.com>

        Use dumpJSConsoleLogInStdErr=true webkit-test-runner option for non-imported tests instead of using DumpJSConsoleLogInStdErr expectation in TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=194586

        Reviewed by Ross Kirsling.

        DumpJSConsoleLogInStdErr expectation is considered a bad idea.
        And, we have dumpJSConsoleLogInStdErr test option now (Bug 177027).

        Added dumpJSConsoleLogInStdErr=true webkit-test-runner option to all non-imported tests.

        * TestExpectations: Removed DumpJSConsoleLogInStdErr expectations of non-imported tests.
        * http/tests/appcache/404-resource-with-slow-main-resource.php: Added dumpJSConsoleLogInStdErr=true webkit-test-runner option.
        * http/tests/appcache/deferred-events-delete-while-raising-timer.html: Ditto.
        * http/tests/appcache/deferred-events-delete-while-raising.html: Ditto.
        * http/tests/appcache/fail-on-update-2.html: Ditto.
        * http/tests/appcache/fail-on-update.html: Ditto.
        * http/tests/cache/disk-cache/redirect-chain-limits.html: Ditto.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame.html: Ditto.
        * http/tests/security/cross-origin-cached-images-parallel.html: Ditto.
        * http/tests/security/frame-loading-via-document-write-async-delegates.html: Ditto.
        * http/tests/security/frame-loading-via-document-write.html: Ditto.
        * http/tests/xmlhttprequest/redirect-cross-origin-sync-double.html: Ditto.
        * http/wpt/beacon/cors/cors-redirect-failure.html: Ditto.
        * http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html: Ditto.
        * media/event-queue-crash.html: Ditto.

2019-02-17  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Frontend performance is very slow reloading theverge.com - 50% of time in TreeOutline _indexOfTreeElement
        https://bugs.webkit.org/show_bug.cgi?id=193605
        <rdar://problem/47403986>

        Reviewed by Devin Rousso.

        * inspector/table/resources/table-utilities.js:
        (TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.tableIndexForRepresentedObject):
        (TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.tableRepresentedObjectForIndex):
        (TestPage.registerInitializer.InspectorTest.TableDataSource):
        New Table data source methods.

        * inspector/unit-tests/index-set-expected.txt: Removed.
        * inspector/unit-tests/index-set.html: Removed.
        * inspector/unit-tests/set-utilities-expected.txt:
        * inspector/unit-tests/set-utilities.html:
        Remove IndexSet tests and update tests for Set utilities to include new
        helper methods `equals` and `difference`, and `firstValue`.

2019-02-16  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC] Add support for block replaced intrinsic width.
        https://bugs.webkit.org/show_bug.cgi?id=194705

        Reviewed by Simon Fraser.

        * fast/block/block-only/replaced-intrinsic-width-simple-expected.html: Added.
        * fast/block/block-only/replaced-intrinsic-width-simple.html: Added.

2019-02-16  Zalan Bujtas  <zalan@apple.com>

        [LFC] Apply min/max width constraints to preferred width computation
        https://bugs.webkit.org/show_bug.cgi?id=194739

        Reviewed by Simon Fraser.

        * fast/block/block-only/min-max-and-preferred-width-simple-expected.html: Added.
        * fast/block/block-only/min-max-and-preferred-width-simple.html: Added.

2019-02-15  Dean Jackson  <dino@apple.com>

        Allow emulation of user gestures from Web Inspector console
        https://bugs.webkit.org/show_bug.cgi?id=194725
        <rdar://problem/48126604>

        Reviewed by Joseph Pecoraro and Devin Rousso.

        * inspector/runtime/evaluate-userGestureEmulation-expected.txt: Added.
        * inspector/runtime/evaluate-userGestureEmulation.html: Added.

2019-02-15  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in the hit testing code via HTMLPlugInElement::isReplacementObscured()
        https://bugs.webkit.org/show_bug.cgi?id=194691

        Reviewed by Simon Fraser.

        Added a regression test. It hits the newly added debug assertion without the fix.

        * platform/mac-wk1/TestExpectations: Skip the test since DumpRenderTree doesn't support
        testRunner.setPluginSupportedMode.
        * plugins/unsupported-plugin-with-replacement-in-iframe-crash-expected.txt: Added.
        * plugins/unsupported-plugin-with-replacement-in-iframe-crash.html: Added.

2019-02-15  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles: valid values in style attributes are reported as unsupported property values
        https://bugs.webkit.org/show_bug.cgi?id=194619
        <rdar://problem/47917373>

        Reviewed by Devin Rousso and Joseph Pecoraro.

        * inspector/css/modify-inline-style-expected.txt: Added.
        * inspector/css/modify-inline-style.html: Added.

2019-02-15  Per Arne Vollan  <pvollan@apple.com>

        [WebVTT] Inline WebVTT styles should start with '::cue'
        https://bugs.webkit.org/show_bug.cgi?id=194227

        Reviewed by Eric Carlson.

        Add invalid 'STYLE' blocks which the WebVTT parser should reject.

        * media/track/captions-webvtt/css-styling.vtt:

2019-02-15  Per Arne Vollan  <pvollan@apple.com>

        Layout Test accessibility/loading-iframe-sends-notification.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=194712

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-02-15  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/replaced/encrypted-pdf-as-object-and-embed.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=194711

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-02-15  Zalan Bujtas  <zalan@apple.com>

        [LFC] Out-of-flow box is never a float box
        https://bugs.webkit.org/show_bug.cgi?id=194704

        Reviewed by Antti Koivisto.

        * fast/block/block-only/out-of-flow-is-never-float-box-expected.html: Added.
        * fast/block/block-only/out-of-flow-is-never-float-box.html: Added.

2019-02-14  Commit Queue  <commit-queue@webkit.org>

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

        New test times out (Requested by NVI on #webkit).

        Reverted changeset:

        "Web Inspector: Styles: valid values in style attributes are
        reported as unsupported property values"
        https://bugs.webkit.org/show_bug.cgi?id=194619
        https://trac.webkit.org/changeset/241497

2019-02-14  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC][MarginCollapse] Replaced boxes don't collapse through their margins
        https://bugs.webkit.org/show_bug.cgi?id=194622

        Reviewed by Antti Koivisto.

        * fast/block/block-only/block-replaced-with-vertical-margins-expected.html: Added.
        * fast/block/block-only/block-replaced-with-vertical-margins.html: Added.

2019-02-13  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in DOMTimer::fired
        https://bugs.webkit.org/show_bug.cgi?id=194638

        Reviewed by Brent Fulgham.

        Added a regression test. It needs debug assertions without the fix.

        * fast/dom/timer-destruction-during-firing-expected.txt: Added.
        * fast/dom/timer-destruction-during-firing.html: Added.

2019-02-13  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles: valid values in style attributes are reported as unsupported property values
        https://bugs.webkit.org/show_bug.cgi?id=194619
        <rdar://problem/47917373>

        Reviewed by Devin Rousso.

        * inspector/css/modify-inline-style-expected.txt: Added.
        * inspector/css/modify-inline-style.html: Added.

2019-02-13  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/editing/pasteboard/smart-paste-007-expected.txt:
        * platform/gtk/editing/pasteboard/smart-paste-008-expected.txt:

2019-02-13  John Wilander  <wilander@apple.com>

        Ignore Ad Click Attribution where source and destination are same-site
        https://bugs.webkit.org/show_bug.cgi?id=194620
        <rdar://problem/47890018>

        Reviewed by Jiewen Tan.

        Same-site test added and test results updated.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
        * http/tests/adClickAttribution/anchor-tag-attributes-validation.html:
        * platform/ios-wk2/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:

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

        getUserMedia with an ideal deviceId constraint doesn't always select the correct device
        https://bugs.webkit.org/show_bug.cgi?id=193614

        Reviewed by Eric Carlson.

        * fast/mediastream/get-user-media-device-id-expected.txt:
        * fast/mediastream/get-user-media-device-id.html:

2019-02-13  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Add a hack to work around buggy video control library
        https://bugs.webkit.org/show_bug.cgi?id=194615
        <rdar://problem/46146946>

        Reviewed by Jer Noble.

        * media/ios/video-volume-ios-quirk-expected.txt: Added.
        * media/ios/video-volume-ios-quirk.html: Added.

2019-02-13  Jer Noble  <jer.noble@apple.com>

        Entering fullscreen inside a shadow root will not set fullscreen pseudoclasses outside of root
        https://bugs.webkit.org/show_bug.cgi?id=194516
        <rdar://problem/44678353>

        Reviewed by Antoine Quint.

        * fast/shadow-dom/fullscreen-in-shadow-full-screen-ancestor-expected.txt: Added.
        * fast/shadow-dom/fullscreen-in-shadow-full-screen-ancestor.html: Added.
        * platform/ios-wk2/TestExpectations:

2019-02-13  Tim Horton  <timothy_horton@apple.com>

        Encrypted PDFs inside <embed> or <object> crash the Web Content process
        https://bugs.webkit.org/show_bug.cgi?id=194605
        <rdar://problem/19894818>

        Reviewed by Andy Estes.

        * fast/replaced/encrypted-pdf-as-object-and-embed-expected.txt: Added.
        * fast/replaced/encrypted-pdf-as-object-and-embed.html: Added.
        * fast/replaced/resources/encrypted-image.pdf: Added.
        Add a test ensuring that we don't crash with encrypted PDF in <object> or <embed>.

2019-02-12  Jiewen Tan  <jiewen_tan@apple.com>

        Further restricting webarchive loads
        https://bugs.webkit.org/show_bug.cgi?id=194567
        <rdar://problem/47610130>

        Reviewed by Youenn Fablet.

        * platform/mac/fast/loader/webarchive-encoding-respected.html:
        * webarchive/loading/cache-expired-subresource.html:
        * webarchive/loading/javascript-url-iframe-crash.html:
        * webarchive/loading/mainresource-null-mimetype-crash.html:
        * webarchive/loading/missing-data.html:
        * webarchive/loading/object.html:
        * webarchive/loading/test-loading-archive-subresource-null-mimetype.html:
        * webarchive/loading/test-loading-archive-subresource.html:
        * webarchive/loading/test-loading-archive.html:
        * webarchive/loading/test-loading-top-archive.html:
        * webarchive/loading/video-in-webarchive.html:

2019-02-13  John Wilander  <wilander@apple.com>

        Store Ad Click Attribution requests in the network process
        https://bugs.webkit.org/show_bug.cgi?id=194510
        <rdar://problem/47650118>

        Reviewed by Alex Christensen and Daniel Bates.

        * TestExpectations:
            Marked "Skip" because the feature is not applicable to WK1.
        * http/tests/adClickAttribution/store-ad-click-attribution-expected.txt: Added.
        * http/tests/adClickAttribution/store-ad-click-attribution.html: Added.
        * platform/wk2/TestExpectations:
            Marked "Pass."

2019-02-13  Sihui Liu  <sihui_liu@apple.com>

        Add two regression tests for reference cycle in IndexedDB
        https://bugs.webkit.org/show_bug.cgi?id=194527

        Reviewed by Geoffrey Garen.

        * fast/dom/reference-cycle-leaks.html:
        * platform/win/TestExpectations:
        The added tests are failing on win bots for unknown reasons, propably related to webkit.org/b/193540. Skip them 
        on win.

        * storage/indexeddb/resources/result-request-cycle.js: Added.
        (prepareDatabase):
        * storage/indexeddb/resources/value-cursor-cycle.js: Added.
        (prepareDatabase):
        (onOpen.cursorRequest.onsuccess):
        * storage/indexeddb/result-request-cycle-expected.txt: Added.
        * storage/indexeddb/result-request-cycle.html: Added.
        * storage/indexeddb/value-cursor-cycle-expected.txt: Added.
        * storage/indexeddb/value-cursor-cycle.html: Added.

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

        Support simulated mouse events on iOS based on a PlatformTouchEvent
        https://bugs.webkit.org/show_bug.cgi?id=194501
        <rdar://problem/46910790>

        Reviewed by Dean Jackson.

        Add a new test to check that we correctly dispatch mouse events as touches occur.

        * fast/events/touch/ios/mouse-events-dispatch-with-touch-expected.txt: Added.
        * fast/events/touch/ios/mouse-events-dispatch-with-touch.html: Added.
        * pointerevents/utils.js:
        (prototype.handleEvent):
        (prototype._handlePointerEvent):
        (prototype._handleMouseEvent):

2019-02-13  Fujii Hironori  <Hironori.Fujii@sony.com>

        [GTK][WPE] Don't use DumpJSConsoleLogInStdErr expectation in platform TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=194587

        Unreviewed gardening.

        * platform/gtk/TestExpectations: Removed DumpJSConsoleLogInStdErr markers which are marked in top TestExpectations.
        * platform/wpe/TestExpectations: Ditto.

2019-02-12  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Remove WebGPUBufferDescriptor/Usage and use GPU versions
        https://bugs.webkit.org/show_bug.cgi?id=194552

        Reviewed by Dean Jackson.

        WebGPUBufferDescriptor/Usage have been renamed to GPUBufferDescriptor/Usage in the Web GPU API.
        Update affected tests to match.

        * webgpu/bind-groups.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/buffers.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:

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

        Allow pages to trigger programmatic paste from script on iOS
        https://bugs.webkit.org/show_bug.cgi?id=194271
        <rdar://problem/47808810>

        Reviewed by Tim Horton.

        Add new tests to exercise programmatic pasting.

        * TestExpectations:
        * editing/pasteboard/ios/dom-paste-confirmation-expected.txt: Added.
        * editing/pasteboard/ios/dom-paste-confirmation.html: Added.

        Verify that the user can tap "Paste" to allow programmatic pasting.

        * editing/pasteboard/ios/dom-paste-consecutive-confirmations-expected.txt: Added.
        * editing/pasteboard/ios/dom-paste-consecutive-confirmations.html: Added.

        Verify that DOM paste access isn't carried over when using `setTimeout` in a user gesture event handler.

        * editing/pasteboard/ios/dom-paste-rejection-expected.txt: Added.
        * editing/pasteboard/ios/dom-paste-rejection.html: Added.

        Verify that resigning first responder dismisses the callout bar and does not allow programmatic pasting.

        * editing/pasteboard/ios/dom-paste-requires-user-gesture-expected.txt: Added.
        * editing/pasteboard/ios/dom-paste-requires-user-gesture.html: Added.

        Verify that user gesture is required to present the callout menu for a programmatic paste request.

        * editing/pasteboard/ios/resources/dom-paste-helper.js: Added.
        (return.new.Promise.):
        (async._waitForOrTriggerPasteMenu):
        (async.triggerPasteMenuAfterTapAt):
        (async.waitForPasteMenu):

        Add helpers to summon, wait for, and interact with the callout bar when the page attempts to trigger a paste.

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

        Skip editing/pasteboard/ios by default, and enable it only in the modern WebKit port of iOS.

2019-02-12  Dean Jackson  <dino@apple.com>

        BitmapRenderer should handle existing ImageBuffers
        https://bugs.webkit.org/show_bug.cgi?id=194555
        <rdar://problem/47857150>

        Reviewed by Tim Horton.

        Test that creates a canvas, triggers an ImageBuffer to be created, then
        creates the bitmaprenderer context.

        * fast/canvas/bitmaprenderer-created-after-toBlob-expected.txt: Added.
        * fast/canvas/bitmaprenderer-created-after-toBlob.html: Added.

2019-02-12  Alex Christensen  <achristensen@webkit.org>

        Remove setDefersLoading infrastructure from WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=194506

        Reviewed by Brady Eidson.

        * platform/wk2/TestExpectations:

2019-02-12  Justin Fan  <justin_fan@apple.com>

        [Web GPU] DepthStencilAttachment implementation
        https://bugs.webkit.org/show_bug.cgi?id=194458
        <rdar://problem/47932446>

        Reviewed by Dean Jackson.

        Add test and update utility functions for depth texture attachments. Update others to specify their 
        loadOp and storeOp for all render pass attachments, as these are no longer provided by default by the implementation.

        * webgpu/buffer-resource-triangles.html:
        * webgpu/depth-enabled-triangle-strip-expected.html: Added.
        * webgpu/depth-enabled-triangle-strip.html: Added.
        * webgpu/js/basic-webgpu-functions.js:
        (render):
        * webgpu/js/webgpu-functions.js:
        (createBasicDepthStateDescriptor):
        (createBasicDepthTexture):
        (beginBasicRenderPass):
        (createBasicPipeline): Deleted.
        * webgpu/render-command-encoding.html:
        * webgpu/render-passes.html:

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

        AX: Fix flaky accessibility/loading-iframe-sends-notification.html
        https://bugs.webkit.org/show_bug.cgi?id=194546

        Reviewed by Zalan Bujtas.

        This test was relying on timing between load events being sent and accessibility events being sent.
        We don't need to do that, we can more directly test this interplay.

        * accessibility/loading-iframe-sends-notification-expected.txt:
        * accessibility/loading-iframe-sends-notification.html:

2019-02-12  Adrian Perez de Castro  <aperez@igalia.com>

        Unreviewed WPE gardening. Unskip content extensions tests after r241283

        * platform/wpe/TestExpectations: Unskip content extensions tests, and list
        as failing those known to not pass due to missing expectaions or timeouts.

2019-02-08  Chris Fleizach  <cfleizach@apple.com>

        AXObjectCache::childrenChanged shouldn't update layout or style during another style recalc
        https://bugs.webkit.org/show_bug.cgi?id=182280
        <rdar://problem/37018386>

        Reviewed by Alan Bujtas.

        * accessibility/aria-hidden-update.html:
        * accessibility/aria-hidden-updates-alldescendants.html:
        * accessibility/image-load-on-delay.html:
        * accessibility/mac/aria-hidden-changes-for-non-ignored-elements.html:
        * accessibility/removed-anonymous-block-child-causes-crash.html:

2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Ask platform for generic font family mappings
        https://bugs.webkit.org/show_bug.cgi?id=187723
        <rdar://problem/41892438>

        Reviewed by Brent Fulgham.

        Update the tests to work with this new model.

        * fast/text/international/font-fallback-to-common-script-expected.html: Removed.
        * fast/text/international/font-fallback-to-common-script.html: Removed.
        * fast/text/international/lang-sensitive-fonts-expected.html:
        * fast/text/international/lang-sensitive-fonts-xml-expected.html:
        * fast/text/international/lang-sensitive-fonts-xml.xhtml:
        * fast/text/international/lang-sensitive-fonts.html:
        * fast/text/international/locale-sensitive-fonts-expected.html:
        * fast/text/international/locale-sensitive-fonts.html:
        * fast/text/ja-sans-serif-expected-mismatch.html: Added.
        * fast/text/ja-sans-serif.html: Added.
        * platform/ios/fast/block/float/016-expected.txt:

2019-02-11  Shawn Roberts  <sroberts@apple.com>

        Updating for all of Mac WK2 for flaky test
        https://bugs.webkit.org/show_bug.cgi?id=185994

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-02-11  Daniel Bates  <dabates@apple.com>

        [iOS] Adopt SPI to support Emacs bindings: transpose and delete to end of paragraph
        https://bugs.webkit.org/show_bug.cgi?id=194505
        <rdar://problem/47743533>

        Reviewed by Tim Horton.

        Add tests to ensure that Control + t and Control + k perform a transpose and delete to the
        end of the line/paragraph. Skip the tests for now until we have the UIKit fix <rdar://problem/44928156>.

        * fast/events/ios/key-command-delete-to-end-of-paragraph-expected.txt: Added.
        * fast/events/ios/key-command-delete-to-end-of-paragraph.html: Added.
        * fast/events/ios/key-command-transpose-expected.txt: Added.
        * fast/events/ios/key-command-transpose.html: Added.
        * platform/ios/TestExpectations: Skip tests for now.

2019-02-11  Adrian Perez de Castro  <aperez@igalia.com>

        [GTK][WPE] Add content extensions support in WKTR and unskip layout tests
        https://bugs.webkit.org/show_bug.cgi?id=193622

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations: Un-skip tests for content extensions and add expectations.

2019-02-11  Daniel Bates  <dabates@apple.com>

        [iOS] Mouse/Touch/Pointer events are missing modifier keys
        https://bugs.webkit.org/show_bug.cgi?id=191446
        <rdar://problem/45929460>

        Reviewed by Tim Horton.

        Refactor existing iOS key events tests to share code. Add new tests to ensure touch and mouse events
        have accurate modifier key details.

        * fast/events/ios/key-events-meta-alt-combinations.html:
        * fast/events/ios/resources/key-tester.js:
        (computeSubsets.compareByModifierOrder): Deleted.
        * fast/events/resources/compute-subsets.js: Added.
        (computeSubsets.compareByOriginalArrayOrder):
        (computeSubsets):
        * fast/events/touch/ios/mouse-events-with-modifiers-expected.txt: Added.
        * fast/events/touch/ios/mouse-events-with-modifiers.html: Added.
        * fast/events/touch/ios/pointer-events-with-modifiers-expected.txt: Added.
        * fast/events/touch/ios/pointer-events-with-modifiers.html: Added.
        * fast/events/touch/ios/touch-events-with-modifiers-expected.txt: Added.
        * fast/events/touch/ios/touch-events-with-modifiers.html: Added.
        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Update expected result
        due to changes to ui-helper.js.
        * http/tests/security/anchor-download-block-crossorigin-expected.txt: Ditto.
        * platform/ios/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.tapAt.return.new.Promise):
        (window.UIHelper.tapAt):
        (window.UIHelper.stylusTapAt.return.new.Promise):
        (window.UIHelper.stylusTapAt):

2019-02-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r241272 and r241276.
        https://bugs.webkit.org/show_bug.cgi?id=194514

        Broke the Apple Internal build and the fix requires human
        intervention :( (Requested by dydz on #webkit).

        Reverted changesets:

        "[iOS] Mouse/Touch/Pointer events are missing modifier keys"
        https://bugs.webkit.org/show_bug.cgi?id=191446
        https://trac.webkit.org/changeset/241272

        "Fix internal iOS build after r241272"
        https://bugs.webkit.org/show_bug.cgi?id=191446
        https://trac.webkit.org/changeset/241276

2019-02-11  Wenson Hsieh  <wenson_hsieh@apple.com>

        fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry.html does not work on iPad
        https://bugs.webkit.org/show_bug.cgi?id=194313

        Reviewed by Tim Horton.

        Adjusts an existing layout test to work on both iPhone and iPad simulators.

        * fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry-expected.txt:
        * fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry.html:

        Make this test wait after blurring the currently focused element, such that tapping to focus the next form
        control doesn't fail. Notably on iPad, not waiting for the popover to dismiss meant that subsequent taps would
        be dispatched too soon, and hit-test to the popover view being dismissed rather than WKWebView.

        * platform/ipad/TestExpectations:

        Unskip the test on iPad.

        * resources/ui-helper.js:

        Add helpers to query whether or not the keyboard is shown, and whether or not a view controller is being modally
        presented over the current root view controller (this is the case when interacting with date pickers on iPad).

        (window.UIHelper.isShowingKeyboard):
        (window.UIHelper.isPresentingModally):
        (window.UIHelper.deactivateFormControl):

        Add a new helper method to blur the given form control element and wait for web view chrome to finish dismissing
        (on iOS, this is either the date picker input view in the keyboard on iPhone, or the date picker popover view
        controller on iPad).

        (window.UIHelper.isShowingDataListSuggestions):

        Drive-by fix: remove an extraneous ternary conditional statement.

2019-02-11  Daniel Bates  <dabates@apple.com>

        [iOS] Mouse/Touch/Pointer events are missing modifier keys
        https://bugs.webkit.org/show_bug.cgi?id=191446
        <rdar://problem/45929460>

        Reviewed by Tim Horton.

        Refactor existing iOS key events tests to share code. Add new tests to ensure touch and mouse events
        have accurate modifier key details.

        * fast/events/ios/key-events-meta-alt-combinations.html:
        * fast/events/ios/resources/key-tester.js:
        (computeSubsets.compareByModifierOrder): Deleted.
        * fast/events/resources/compute-subsets.js: Added.
        (computeSubsets.compareByOriginalArrayOrder):
        (computeSubsets):
        * fast/events/touch/ios/mouse-events-with-modifiers-expected.txt: Added.
        * fast/events/touch/ios/mouse-events-with-modifiers.html: Added.
        * fast/events/touch/ios/pointer-events-with-modifiers-expected.txt: Added.
        * fast/events/touch/ios/pointer-events-with-modifiers.html: Added.
        * fast/events/touch/ios/touch-events-with-modifiers-expected.txt: Added.
        * fast/events/touch/ios/touch-events-with-modifiers.html: Added.
        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Update expected result
        due to changes to ui-helper.js.
        * http/tests/security/anchor-download-block-crossorigin-expected.txt: Ditto.
        * platform/ios/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.tapAt.return.new.Promise):
        (window.UIHelper.tapAt):
        (window.UIHelper.stylusTapAt.return.new.Promise):
        (window.UIHelper.stylusTapAt):

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

        Filter out Overconstrainederror.constraint when getUserMedia is not granted
        https://bugs.webkit.org/show_bug.cgi?id=194240

        Reviewed by Eric Carlson.

        * fast/mediastream/overconstrainederror-constraint-expected.txt: Added.
        * fast/mediastream/overconstrainederror-constraint.html: Added.

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

        Unreviewed, rolling out r241229.

        Revision broke internal builds for watchOS.

        Reverted changeset:

        "[Cocoa] Ask platform for generic font family mappings"
        https://bugs.webkit.org/show_bug.cgi?id=187723
        https://trac.webkit.org/changeset/241229

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

        Make Request constructor throw if FetchRequestInit.signal is not undefined, null or an AbortSignal object
        https://bugs.webkit.org/show_bug.cgi?id=194404
        <rdar://problem/47891915>

        Reviewed by Geoffrey Garen.

        * http/wpt/fetch/request-abort-expected.txt:

2019-02-11  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Adding additional baselines after font variations
        enablement. Additionally rebaselining a couple other WPT and WebGL tests.

        * platform/wpe/TestExpectations:
        * platform/wpe/fast/css/getComputedStyle: Added.
        * platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt: Added.
        * platform/wpe/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Added.
        * platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Added.
        * platform/wpe/fast/dom/52776-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/wpe/svg/css/getComputedStyle-basic-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance/canvas/buffer-offscreen-test-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance/canvas/buffer-preserve-test-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance/context/context-attribute-preserve-drawing-buffer-expected.txt:

2019-02-10  Commit Queue  <commit-queue@webkit.org>

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

        Broke the GTK mediastream tests (Requested by philn on
        #webkit).

        Reverted changeset:

        "Filter out Overconstrainederror.constraint when getUserMedia
        is not granted"
        https://bugs.webkit.org/show_bug.cgi?id=194240
        https://trac.webkit.org/changeset/241167

2019-02-09  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: fix typos in tests

        Unreviewed test gardening.

        * inspector/css/force-page-appearance.html:

2019-02-08  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Ask platform for generic font family mappings
        https://bugs.webkit.org/show_bug.cgi?id=187723
        <rdar://problem/41892438>

        Reviewed by Brent Fulgham.

        Update the tests to work with this new model.

        * fast/text/international/font-fallback-to-common-script-expected.html: Removed.
        * fast/text/international/font-fallback-to-common-script.html: Removed. This test is no longer testing
        anything relevant.
        * fast/text/international/lang-sensitive-fonts-expected.html:
        * fast/text/international/lang-sensitive-fonts-xml-expected.html:
        * fast/text/international/lang-sensitive-fonts-xml.xhtml:
        * fast/text/international/lang-sensitive-fonts.html:
        * fast/text/international/locale-sensitive-fonts-expected.html:
        * fast/text/international/locale-sensitive-fonts.html:
        * fast/text/ja-sans-serif-expected-mismatch.html: Added.
        * fast/text/ja-sans-serif.html: Added.

2019-02-08  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Import / Export Heap Snapshots
        https://bugs.webkit.org/show_bug.cgi?id=194448
        <rdar://problem/47928093>

        Reviewed by Devin Rousso.

        * inspector/heap/imported-snapshot-expected.txt: Added.
        * inspector/heap/imported-snapshot.html: Added.
        * platform/mac/TestExpectations:

2019-02-08  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles: close unbalanced quotes and parenthesis when editing values
        https://bugs.webkit.org/show_bug.cgi?id=182523
        <rdar://problem/37260209>

        Reviewed by Devin Rousso.

        Test common cases of unmatched quotes, parenthesis, comments, and trailing backslashes.

        * inspector/unit-tests/css-completions-expected.txt: Added.
        * inspector/unit-tests/css-completions.html: Added.

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

        Layout Test accessibility/set-value-not-work-for-disabled-sliders.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=194451

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-02-08  Ryan Haddad  <ryanhaddad@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: The test is not flaky anymore. Remove expectation.

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

        [WebVTT] Inline WebVTT styles should start with '::cue'
        https://bugs.webkit.org/show_bug.cgi?id=194227
        <rdar://problem/47791087>

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/css-styling.vtt:

2019-02-08  Youenn Fablet  <youenn@apple.com>

        Running RTCRtpSender.getCapabilities("video") before initial offer breaks VP8
        https://bugs.webkit.org/show_bug.cgi?id=194380
        <rdar://problem/47916514>

        Reviewed by Eric Carlson.

        * webrtc/video-mute-vp8-expected.txt:
        * webrtc/video-mute-vp8.html:

2019-02-08  Andy Estes  <aestes@apple.com>

        [WebIDL] Support serializing sequences and FrozenArrays of non-interfaces
        https://bugs.webkit.org/show_bug.cgi?id=190997
        <rdar://problem/35983035>

        Reviewed by Brent Fulgham.

        * http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:

2019-02-08  Eric Liang  <ericliang@apple.com>

        Check if receive AXPressDidFail notification when performing AXPress action on disabled MenuList.
        https://bugs.webkit.org/show_bug.cgi?id=193878

        Reviewed by Chris Fleizach.

        * accessibility/mac/press-not-work-for-disabled-menu-list.html: Added.

2019-02-07  Devin Rousso  <drousso@apple.com>

        PseudoElement created for any ::before/::after selector regardless of whether a content property exists
        https://bugs.webkit.org/show_bug.cgi?id=194423
        <rdar://problem/46787260>

        Reviewed by Antti Koivisto.

        * inspector/css/pseudo-creation.html: Added.
        * inspector/css/pseudo-creation-expected.txt: Added.

2019-02-07  Justin Fan  <justin_fan@apple.com>

        [Web GPU] GPUDevice::createTexture implementation prototype
        https://bugs.webkit.org/show_bug.cgi?id=194409
        <rdar://problem/47894312>

        Reviewed by Myles C. Maxfield.

        Update textures-textureviews.html to WPT format and to test creation of textures via the GPUDevice.

        * webgpu/textures-textureviews-expected.txt:
        * webgpu/textures-textureviews.html:

2019-02-07  Shawn Roberts  <sroberts@apple.com>

        fast/hidpi/hidpi-long-page-with-inset-element.html is a flaky image failure
        https://bugs.webkit.org/show_bug.cgi?id=172384

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        [iOS] Clicking links in Safari using Apple Pencil is much more difficult after r238475
        https://bugs.webkit.org/show_bug.cgi?id=194415
        <rdar://problem/47550281>

        Reviewed by Tim Horton.

        Add a layout test to verify that a stylus tap dispatches clicks.

        * fast/events/touch/ios/pencil-tap-dispatches-click-expected.txt: Added.
        * fast/events/touch/ios/pencil-tap-dispatches-click.html: Added.

2019-02-07  Youenn Fablet  <youenn@apple.com>

        Filter out Overconstrainederror.constraint when getUserMedia is not granted
        https://bugs.webkit.org/show_bug.cgi?id=194240

        Reviewed by Eric Carlson.

        * fast/mediastream/overconstrainederror-constraint-expected.txt: Added.
        * fast/mediastream/overconstrainederror-constraint.html: Added.

2019-02-07  Timothy Hatcher  <timothy@apple.com>

        Overflow element scrollbar is light for dark mode content.
        https://bugs.webkit.org/show_bug.cgi?id=194407
        rdar://problem/45991585

        Reviewed by Beth Dakin.

        Updated tests to look at overflow elements and if dark apearance
        is used by the scrollbar directly.

        * css-dark-mode/supported-color-schemes-scrollbar-expected.txt:
        * css-dark-mode/supported-color-schemes-scrollbar.html:

2019-02-07  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Fix modify-css-property-race.html flakiness
        https://bugs.webkit.org/show_bug.cgi?id=194408

        Reviewed by Devin Rousso.

        Event listener wasn't removed property, sometimes causing it to fire one more time.

        * inspector/css/modify-css-property-race.html:

2019-02-07  Youenn Fablet  <youenn@apple.com>

        Unable to sign in leetcode.
        https://bugs.webkit.org/show_bug.cgi?id=194366
        rdar://problem/47259025.

        Reviewed by Chris Dumez.

        * http/wpt/fetch/request-abort-expected.txt: Added.
        * http/wpt/fetch/request-abort.html: Added.

2019-02-07  Alex Christensen  <achristensen@webkit.org>

        Deprecate WKBundlePageSetDefersLoading
        https://bugs.webkit.org/show_bug.cgi?id=191394

        Reviewed by Dean Jackson.

        * platform/wk2/TestExpectations:

2019-02-07  Zalan Bujtas  <zalan@apple.com>

        [LFC][Out-of-flow] Use the containing block's padding width when computing min/max width.
        https://bugs.webkit.org/show_bug.cgi?id=194391

        Reviewed by Antti Koivisto.

        * fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html: Added.
        * fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html: Added.

2019-02-07  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r241117.

        * platform/gtk/TestExpectations:
        * platform/gtk/compositing/iframes/invisible-nested-iframe-show-expected.txt:
        * platform/gtk/compositing/iframes/resizer-expected.txt:
        * platform/gtk/compositing/rtl/rtl-iframe-absolute-expected.txt:
        * platform/gtk/compositing/rtl/rtl-iframe-relative-expected.txt:

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

        Web Inspector: DOM: don't send the entire function string with each event listener
        https://bugs.webkit.org/show_bug.cgi?id=194293
        <rdar://problem/47822809>

        Reviewed by Joseph Pecoraro.

        * inspector/dom/getEventListenersForNode.html:
        * inspector/dom/getEventListenersForNode-expected.txt:

2019-02-06  Andy Estes  <aestes@apple.com>

        [Payment Request] It should be possible to require a phonetic name for shipping contacts
        https://bugs.webkit.org/show_bug.cgi?id=194311
        <rdar://46733045>

        Reviewed by Alex Christensen.

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

2019-02-06  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] PrivateName to PublicName hash table is wasteful
        https://bugs.webkit.org/show_bug.cgi?id=194277

        Reviewed by Michael Saboff.

        * streams/readable-byte-stream-controller-expected.txt:

2019-02-06  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Implement supporting dictionaries for GPUTexture
        https://bugs.webkit.org/show_bug.cgi?id=194354

        Reviewed by Dean Jackson.

        Update test files to use hyphen-case for GPUTextureFormat.

        * webgpu/js/basic-webgpu-functions.js:
        (async.setUpContexts):
        * webgpu/js/webgpu-functions.js:
        (createBasicContext):

2019-02-06  David Kilzer  <ddkilzer@apple.com>

        Revert part of r241015 that skipped all WebGL tests

        * TestExpectations: Revert unintended change to skip all WebGL
        tests.

2019-02-06  Jonathan Bedard  <jbedard@apple.com>

        [iPad] Initial test gardening (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=193767
        <rdar://problem/47515175>

        Unreviewed test gardening.

        * fast/forms/ios/validation-bubble-dismiss-on-tap.html: Change tap location so test is compatible with iPads.
        * platform/ipad/TestExpectations: Associate iPad specific failures with bugs.

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

        Unreviewed test gardening, rebaseline some tests for iOS after r240713.

        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt:
        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt:
        * fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt:
        * fast/events/touch/ios/tap-with-active-touch-end-listener-expected.txt:

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

        RELEASE_ASSERT(!m_document.isResolvingTreeStyle()) in com.apple.WebKit.WebContent at WebCore: WebCore::StyleResolver::~StyleResolver
        https://bugs.webkit.org/show_bug.cgi?id=194333
        <rdar://problem/47822929>

        Reviewed by Zalan Bujtas.

        * http/tests/contentextensions/css-display-none-keyframe-expected.txt: Added.
        * http/tests/contentextensions/css-display-none-keyframe.html: Added.
        * http/tests/contentextensions/css-display-none-keyframe.html.json: Added.

2019-02-05  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r240909): Release assert in FrameLoader::loadURL when navigating with a non-existent target name
        https://bugs.webkit.org/show_bug.cgi?id=194329

        Reviewed by Geoffrey Garen.

        Added a regression test.

        * fast/loader/navigate-with-new-target-after-back-forward-navigation-expected.txt: Added.
        * fast/loader/navigate-with-new-target-after-back-forward-navigation.html: Added.

2019-02-05  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles: PropertiesChanged shouldn't fire when old and new text are both empty
        https://bugs.webkit.org/show_bug.cgi?id=194318

        Reviewed by Devin Rousso.

        Fix the flaky test on Debug.

        * inspector/css/modify-css-property-race-expected.txt:
        * inspector/css/modify-css-property-race.html:

2019-02-05  Megan Gardner  <megan_gardner@apple.com>

        [iOS] Layout tests editing/pasteboard/smart-paste-007.html and editing/pasteboard/smart-paste-008.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=194275

        Reviewed by Ryosuke Niwa.

        Smart paste tests 7 and 8 were outputting more information that was needed
        to verify correct functionality. Also cleaned up test 8 to be more similar to
        the other smart copy paste tests. 

        * editing/pasteboard/smart-paste-007.html:
        * editing/pasteboard/smart-paste-008.html:
        * platform/ios-wk1/editing/pasteboard/smart-paste-007-expected.txt: Removed.
        * platform/ios-wk1/editing/pasteboard/smart-paste-008-expected.txt: Removed.
        * platform/ios-wk2/editing/pasteboard/smart-paste-008-expected.txt: Removed.
        * platform/ios/editing/pasteboard/smart-paste-007-expected.txt: Renamed from LayoutTests/platform/ios-wk2/editing/pasteboard/smart-paste-007-expected.txt.
        * platform/ios/editing/pasteboard/smart-paste-008-expected.txt: Added.
        * platform/mac/editing/pasteboard/smart-paste-007-expected.txt:
        * platform/mac/editing/pasteboard/smart-paste-008-expected.txt:

2019-02-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        Rename TestOptions.ignoreSynchronousMessagingTimeoutsForTesting
        https://bugs.webkit.org/show_bug.cgi?id=194324

        Reviewed by Andy Estes.

        * fast/events/touch/ios/show-modal-alert-during-touch-start.html:

2019-02-05  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Fix modify-css-property-race.html test failures
        https://bugs.webkit.org/show_bug.cgi?id=194282

        Reviewed by Matt Baker.

        Fix test failures introduced by r240946 by providing a message for expectGreaterThan assert,
        so it doesn't log the actual values.

        * inspector/css/modify-css-property-race-expected.txt:
        * inspector/css/modify-css-property-race.html:

2019-02-05  Andy VanWagoner  <andy@vanwagoner.family>

        REGRESSION(r238848): ICU upgrade broke jsc-layout-tests.yaml/js/script-tests/intl-numberformat.js.layout
        https://bugs.webkit.org/show_bug.cgi?id=193620

        Reviewed by Michael Catanzaro.

        Update NumberFormat tests to be more tolerant of ICU version differences.

        * js/intl-numberformat-expected.txt:
        * js/script-tests/intl-numberformat.js:
        * platform/gtk/TestExpectations:

2019-02-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r240742.

        Causes crashes on iOS simulator.

        Reverted changeset:

        "[iOS] Keyups for non-modifier keys identified as "Dead" when
        not focused in a content-editable element"
        https://bugs.webkit.org/show_bug.cgi?id=192824
        https://trac.webkit.org/changeset/240742

2019-02-04  Jonathan Bedard  <jbedard@apple.com>

        [iPad] Initial test gardening (Part 1)
        https://bugs.webkit.org/show_bug.cgi?id=193767
        <rdar://problem/47515175>

        Unreviewed test gardening.

        A number of tests need to be re-baselined when run on iPad because of the larger screen.

        * fast/canvas/canvas-too-large-to-draw.html: iOS userAgent regex should match iPhones and iPads.
        * fast/events/touch/ios/target-taller-than-view.html: Move event listener since tabpPointY is the value we should compare against.
        * fast/visual-viewport/ios/min-scale-greater-than-one.html: expectedTop depends on the screen size of the device.
        * platform/ipad/fast/events: Added.
        * platform/ipad/fast/events/ios: Added.
        * platform/ipad/fast/events/ios/keyboard-should-not-trigger-resize-expected.txt: Added.
        * platform/ipad/fast/events/ios/rotation: Added.
        * platform/ipad/fast/events/ios/rotation/zz-no-rotation-expected.txt: Added.
        * platform/ipad/fast/events/touch: Added.
        * platform/ipad/fast/events/touch/ios: Added.
        * platform/ipad/fast/events/touch/ios/target-taller-than-view-expected.txt: Added.
        * platform/ipad/fast/scrolling: Added.
        * platform/ipad/fast/scrolling/ios: Added.
        * platform/ipad/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: Added.
        * platform/ipad/fast/scrolling/ios/touch-stacking-expected.txt: Added.
        * platform/ipad/fast/viewport/ios: Added.
        * platform/ipad/fast/viewport/ios/device-width-viewport-after-changing-view-scale-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/initial-scale-after-changing-view-scale-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/width-is-device-width-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-expected.txt: Added.
        * platform/ipad/fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt: Added.
        * platform/ipad/platform: Added.
        * platform/ipad/platform/ios: Added.
        * platform/ipad/platform/ios/ios: Added.
        * platform/ipad/platform/ios/ios/fast: Added.
        * platform/ipad/platform/ios/ios/fast/text: Added.
        * platform/ipad/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Added.
        * platform/ipad/scrollingcoordinator: Added.
        * platform/ipad/scrollingcoordinator/ios: Added.
        * platform/ipad/scrollingcoordinator/ios/sync-layer-positions-after-scroll-expected.txt: Added.
        * platform/ipad/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Added.

2019-02-04  Ms2ger  <Ms2ger@igalia.com>

        [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
        https://bugs.webkit.org/show_bug.cgi?id=174816

        Reviewed by Michael Catanzaro.

        * TestExpectations: Enable fast/url/user-visible/.

2019-02-04  Shawn Roberts  <sroberts@apple.com>

        [iOS Simulator] pageoverlay/overlay tests are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=153337

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2019-02-04  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles: fix race conditions when editing
        https://bugs.webkit.org/show_bug.cgi?id=192739
        <rdar://problem/46752925>

        Reviewed by Devin Rousso.

        * inspector/css/modify-css-property-expected.txt:
        * inspector/css/modify-css-property-race-expected.txt: Added.
        * inspector/css/modify-css-property-race.html: Added.
        * inspector/css/modify-css-property.html:

2019-02-04  Simon Fraser  <simon.fraser@apple.com>

        Async overflow scroll with border-radius renders incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=194205
        <rdar://problem/47771668>

        Reviewed by Zalan Bujtas.

        New baselines, mostly correcting offsetFromRenderer.

        * compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt: Added.
        * compositing/clipping/border-radius-async-overflow-clipping-layer.html: Added.
        * compositing/clipping/border-radius-async-overflow-non-stacking-expected.html: Added.
        * compositing/clipping/border-radius-async-overflow-non-stacking.html: Added.
        * compositing/clipping/border-radius-async-overflow-stacking-expected.html: Added.
        * compositing/clipping/border-radius-async-overflow-stacking.html: Added.
        * compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
        * platform/ios/compositing/overflow/scrolling-without-painting-expected.txt:
        * platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt: html.css specifies a border-radius on <textarea> for iOS, so we make additional
        clipping layers.
        * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:

2019-02-04  Simon Fraser  <simon.fraser@apple.com>

        PageOverlayController's layers should be created lazily
        https://bugs.webkit.org/show_bug.cgi?id=194199
        rdar://problem/46571593

        Reviewed by Tim Horton.

        * pageoverlay/overlay-remove-reinsert-view-expected.txt: We no longer unparent the overlays
        on view removal, so new results.
        * platform/ios-wk2/TestExpectations: Unskip some iOS tests.
        * platform/ios-wk2/pageoverlay/overlay-installation-expected.txt: Added.
        * platform/ios-wk2/pageoverlay/overlay-large-document-expected.txt: Added.
        * platform/ios-wk2/pageoverlay/overlay-large-document-scrolled-expected.txt: Added.
        * platform/ios/TestExpectations: Unskip some iOS tests.

2019-02-04  Eric Liang  <ericliang@apple.com>

        Check if slider value changed after calling AX Increment or Decrement on disabled sliders.
        https://bugs.webkit.org/show_bug.cgi?id=193497

        Reviewed by Chris Fleizach.

        * accessibility/set-value-not-work-for-disabled-sliders.html: Added.

2019-02-04  Frederic Wang  <fwang@igalia.com>

        [css-scroll-snap] scroll-snap-align not honored on child with non-visible overflow
        https://bugs.webkit.org/show_bug.cgi?id=191816

        Reviewed by Wenson Hsieh.

        Add a test to verify that children with non-visible overflow create snap offsets.

        * css3/scroll-snap/scroll-snap-children-with-overflow-expected.txt: Added.
        * css3/scroll-snap/scroll-snap-children-with-overflow.html: Added.

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

        [iOS] Tiles not created in large scrollable iframes
        https://bugs.webkit.org/show_bug.cgi?id=193665

        Reviewed by Simon Fraser.

        Test by Frédéric Wang.

        * fast/scrolling/ios/scroll-iframe-expected.html:
        * fast/scrolling/ios/scroll-iframe.html:
        * platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt:
        * platform/ios-wk2/compositing/tiling/tiled-drawing-async-frame-scrolling-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:

2019-02-03  John Wilander  <wilander@apple.com>

        Parse and handle Ad Click Attribution attributes in HTMLAnchorElement::handleClick()
        https://bugs.webkit.org/show_bug.cgi?id=194104
        <rdar://problem/47649991>

        Reviewed by Chris Dumez, Daniel Bates, and Darin Adler.

        This test case makes sure invalid data triggers console warnings.

        * http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Added.
        * http/tests/adClickAttribution/anchor-tag-attributes-validation.html: Added.
        * platform/ios-wk2/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Added.
            Console line numbers are not emitted when running iOS tests so this -expected.txt file doesn't have them.

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

        Unable to move selection into editable roots with 0 height
        https://bugs.webkit.org/show_bug.cgi?id=194143
        <rdar://problem/47767284>

        Reviewed by Ryosuke Niwa.

        Add a new layout test that executes editing commands in a contenteditable element of height 0, and adjust an
        existing layout test that copies and pastes an image element to wait until the image has loaded.

        * editing/pasteboard/styled-element-markup.html:
        * editing/selection/insert-text-in-empty-content-editable-expected.txt: Added.
        * editing/selection/insert-text-in-empty-content-editable.html: Added.

2019-02-03  Megan Gardner  <megan_gardner@apple.com>

        Turn on Smart Paste
        https://bugs.webkit.org/show_bug.cgi?id=193786

        Reviewed by Ryosuke Niwa.

        Rebaselined many tests and/or added iOS specific expectations to 
        correctly reflect smart copy paste behavior.

        * editing/editing.js:
        (runEditingTestWithCallbackLogging):
        (runDumpAsTextEditingTest):
        Added ability to handle async functions.
        * editing/pasteboard/smart-paste-001.html:
        * editing/pasteboard/smart-paste-002.html:
        * editing/pasteboard/smart-paste-003.html:
        * editing/pasteboard/smart-paste-004.html:
        * editing/pasteboard/smart-paste-005.html:
        * editing/pasteboard/smart-paste-006.html:
        * editing/pasteboard/smart-paste-007.html:
        * editing/pasteboard/smart-paste-008.html:
        * platform/ios-wk2/editing/pasteboard/smart-paste-007-expected.txt:
        * platform/ios-wk2/editing/pasteboard/smart-paste-008-expected.txt:
        * platform/ios/TestExpectations:
        * platform/ios/editing/pasteboard/smart-paste-001-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-002-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-003-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-004-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-005-expected.txt: Added.
        * platform/ios/editing/pasteboard/smart-paste-006-expected.txt: Added.
        * resources/ui-helper.js:
        (window.UIHelper.doubleClickAt):
        (window.UIHelper.async.selectWordByDoubleTapOrClick):
        Added helper functions to allow for selecting a word by double tap or click.

2019-02-02  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Fix GPURenderPassEncoder::setVertexBuffers and allow overlapping indices with GPUBindGroups
        https://bugs.webkit.org/show_bug.cgi?id=194125

        Reviewed by Myles C. Maxfield.

        Updated buffer-resource-triangles to assign bind groups and vertex buffers to the same index.

        * webgpu/buffer-resource-triangles.html:

2019-02-02  Zalan Bujtas  <zalan@apple.com>

        [LFC] Add missing case to out-of-flow non-replaced horizontal used margin value computation
        https://bugs.webkit.org/show_bug.cgi?id=194185

        Reviewed by Antti Koivisto.

        * fast/block/block-only/absolute-position-left-right-margin-expected.html: Added.
        * fast/block/block-only/absolute-position-left-right-margin.html: Added.

2019-02-01  Megan Gardner  <megan_gardner@apple.com>

        Rewrite and rebaseline smart copy paste tests to work on iOS and MacOS
        https://bugs.webkit.org/show_bug.cgi?id=194175

        Reviewed by Megan Gardner.
        Patch by Ryosuke Niwa.

        Using the functions committed in 194070 Ryosuke wrote, make the
        smart copy paste tests run on both iOS and MacOS. 
        These tests will be turned on in 193786.

        * editing/editing.js:
        (runEditingTestWithCallbackLogging):
        (runDumpAsTextEditingTest):
        * editing/pasteboard/smart-paste-001.html:
        * editing/pasteboard/smart-paste-002-expected.txt:
        * editing/pasteboard/smart-paste-002.html:
        * editing/pasteboard/smart-paste-003.html:
        * editing/pasteboard/smart-paste-004.html:
        * editing/pasteboard/smart-paste-005-expected.txt:
        * editing/pasteboard/smart-paste-005.html:
        * editing/pasteboard/smart-paste-006-expected.txt:
        * editing/pasteboard/smart-paste-006.html:
        * editing/pasteboard/smart-paste-007.html:
        * editing/pasteboard/smart-paste-008.html:
        * platform/mac/editing/pasteboard/smart-paste-008-expected.txt:

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

        [iOS] Consistent 1 sec hang when triggering modal alerts while handling synchronous touch events
        https://bugs.webkit.org/show_bug.cgi?id=194140
        <rdar://problem/47728098>

        Reviewed by Tim Horton.

        Add a test that induces sync IPC deadlock by presenting a modal alert while handling touch start. This test
        forces sync IPC timeouts to be disabled, and passes if we do not time out while handling a touch.

        * fast/events/touch/ios/show-modal-alert-during-touch-start-expected.txt: Added.
        * fast/events/touch/ios/show-modal-alert-during-touch-start.html: Added.

2019-02-01  Antoine Quint  <graouts@apple.com>

        Dispatch pointercancel events when content is panned or zoomed on iOS
        https://bugs.webkit.org/show_bug.cgi?id=193962
        <rdar://problem/47629134>

        Reviewed by Dean Jackson.

        Adding a few tests for "pointercancel" and adding "touch-action: none" on tests that would now be affected by canceling pointers. We also unflake a few tests.

        * pointerevents/ios/pointer-events-implicit-capture.html:
        * pointerevents/ios/pointer-events-is-primary.html:
        * pointerevents/ios/touch-action-pan-x-pan-y.html:
        * pointerevents/ios/touch-action-pan-x.html:
        * pointerevents/ios/touch-action-pan-y-expected.txt:
        * pointerevents/ios/touch-action-pan-y.html:
        * pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html:
        * pointerevents/ios/touch-action-pointercancel-pan-x-expected.txt: Added.
        * pointerevents/ios/touch-action-pointercancel-pan-x.html: Added.
        * pointerevents/ios/touch-action-pointercancel-pan-y-expected.txt: Added.
        * pointerevents/ios/touch-action-pointercancel-pan-y.html: Added.
        * pointerevents/ios/touch-action-pointercancel-pinch-zoom-expected.txt: Added.
        * pointerevents/ios/touch-action-pointercancel-pinch-zoom.html: Added.

2019-02-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r239915): css3/font-feature-font-face-local.html failing on WPE
        https://bugs.webkit.org/show_bug.cgi?id=194008

        Reviewed by Žan Doberšek.

        Remove test expectation.

        * platform/wpe/TestExpectations:

2019-02-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        [WPE] Enable font variations
        https://bugs.webkit.org/show_bug.cgi?id=194148

        Reviewed by Žan Doberšek.

        * platform/wpe/TestExpectations:

2019-02-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        ComplexText: Test fast/text/word-space-nbsp.html fails when using complex text path
        https://bugs.webkit.org/show_bug.cgi?id=193279

        Reviewed by Michael Catanzaro.

        Remove test expectation.

        * platform/gtk/TestExpectations:

2019-02-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed WPE gardening. Remove duplicated expectations.

        Remove the platform specific expectations that match the generic ones.

        * platform/wpe/animations/lineheight-animation-expected.txt: Removed.
        * platform/wpe/animations/simultaneous-start-transform-expected.txt: Removed.
        * platform/wpe/animations/width-using-ems-expected.txt: Removed.
        * platform/wpe/fast/events/mouseover-mouseout-expected.txt: Removed.
        * platform/wpe/fast/events/nested-window-event-expected.txt: Removed.
        * platform/wpe/fast/events/window-events-bubble-expected.txt: Removed.
        * platform/wpe/fast/events/window-events-bubble2-expected.txt: Removed.
        * platform/wpe/fast/replaced/008-expected.txt: Removed.
        * platform/wpe/fast/tokenizer/script_extra_close-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-check-initdata-type.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events-session-closed-event.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-invalid-license.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.https-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-illegal-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-verification-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/touch-events/historical-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-blob-expected.txt: Removed.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-expected.txt: Removed.
        * platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt: Removed.
        * platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Removed.
        * platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt: Removed.
        * platform/wpe/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt: Removed.
        * platform/wpe/svg/custom/pan-direction-expected.txt: Removed.
        * platform/wpe/tables/mozilla/bugs/bug149275-2-expected.txt: Removed.
        * platform/wpe/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt: Removed.
        * platform/wpe/webgl/2.0.0/conformance/context/context-hidden-alpha-expected.txt: Removed.

2019-02-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed WPE gardening. Rebaseline and update expectations after r240774.

        * platform/wpe/TestExpectations:
        * platform/wpe/fast/css/font-weight-1-expected.txt:

2019-01-31  Megan Gardner  <megan_gardner@apple.com>

        Don't insert spaces at the beginning of a newline when using smart-copy-paste
        https://bugs.webkit.org/show_bug.cgi?id=194070

        Add test for smart copy paste around newlines.
        Rebaseline a test that is dependant on a console log that changes lines.
        Add additional helper functions to ui-helper.js.

        Reviewed by Tim Horton.

        * editing/pasteboard/mac/copy-smartpaste-first-line-in-textarea-expected.txt: Added.
        * editing/pasteboard/mac/copy-smartpaste-first-line-in-textarea.html: Added.
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:
        * platform/mac/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.doubleClickAt):
        (window.UIHelper.doubleClickAtThenDragTo):
        (window.UIHelper.async.selectWordByDoubleTapOrClick):

2019-01-31  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Timeline time range selection sometimes shows 0.000, should be just 0
        https://bugs.webkit.org/show_bug.cgi?id=194108
        <rdar://problem/47714273>

        Reviewed by Devin Rousso.

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

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

        [ MacOS ] Layout Test performance-api/performance-observer-callback-after-gc.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=191041
        <rdar://problem/45649982>

        Reviewed by Joseph Pecoraro.

        Make the test print the same output no matter if the performance observer is notified once or
        twice. What matters is that it is notified about 3 marks.

        * performance-api/performance-observer-callback-after-gc-expected.txt:
        * performance-api/performance-observer-callback-after-gc.html:

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

        [WebGPU] WebGPUAdapterDescriptor -> GPURequestAdapterOptions and take powerPreference into account
        https://bugs.webkit.org/show_bug.cgi?id=194068
        <rdar://problem/47680215>

        Reviewed by Dean Jackson.

        Add simple test to create device with all options. Update helper functions for other Web GPU
        tests to request different adapters. (No change in test behavior expected.)

        * webgpu/adapter-options-expected.txt: Added.
        * webgpu/adapter-options.html: Added.
        * webgpu/js/basic-webgpu-functions.js:
        (async.setUpContexts): Update to use no adapter request argument at all. 
        * webgpu/js/webgpu-functions.js:
        (async.getBasicDevice): Update to request the low-power adapter.

2019-01-31  Zalan Bujtas  <zalan@apple.com>

        [LFC] Use the used margin values in outOfFlowReplacedHorizontalGeometry consistently
        https://bugs.webkit.org/show_bug.cgi?id=194074

        Reviewed by Antti Koivisto.

        * fast/block/block-only/absolute-position-with-margin-auto-simple2-expected.html: Added.
        * fast/block/block-only/absolute-position-with-margin-auto-simple2.html: Added.

2019-01-31  Chris Fleizach  <cfleizach@apple.com>

        ASSERTION FAILED: cache under WebCore::AXObjectCache::postTextStateChangePlatformNotification
        https://bugs.webkit.org/show_bug.cgi?id=189094
        <rdar://problem/43853526>

        Reviewed by Zalan Bujtas.

        Unskip flaky test with crash resolved.

        * platform/mac-wk2/TestExpectations:

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

        Enable swipe tests on iOS
        https://bugs.webkit.org/show_bug.cgi?id=194076

        Reviewed by Geoffrey Garen.

        Enabled tests in LayoutTests/swipe and added iOS specific results for the failing tests.

        * platform/ios/TestExpectations:
        * platform/ios/swipe/basic-cached-back-swipe-expected.txt: Added.
        * platform/ios/swipe/main-frame-pinning-requirement-expected.txt: Added.
        * platform/ios/swipe/pushState-cached-back-swipe-expected.txt: Added.

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

        Regression(PSON) History navigations to twitter.com lead to a 403 HTTP error
        https://bugs.webkit.org/show_bug.cgi?id=194023
        <rdar://problem/47417981>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load-expected.txt: Added.
        * http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php: Added.
        * http/tests/cookies/same-site/resources/navigate-back.html: Added.

2019-01-30  Daniel Bates  <dabates@apple.com>

        [iOS] Keyups for non-modifier keys identified as "Dead" when not focused in a content-editable element
        https://bugs.webkit.org/show_bug.cgi?id=192824
        <rdar://problem/47100332>

        Reviewed by Wenson Hsieh.

        Update tests and expected results. As it turns out fixing the bug in WebKitTestRunner/ios/HIDEventGenerator.mm
        so that we now dispatch key events for F17 thru F24 exposed a bug in UIKit. See <rdar://problem/47128940>.
        This same bug is also responsible for a lack of key events when the Insert key is pressed.

        Added sub-test for Tab key to keypress-keys-in-non-editable-element.html. Changed expected result in test
        keypress-keys-in-non-editable-element.html for the forward delete key to expect failure. We expect that pressing
        the forward delete key will not dispatch a keypress to match the behavior on Mac. This will be addressed by a
        UIKit fix.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html:
        * fast/events/ios/keypress-keys-in-non-editable-element-expected.txt:
        * fast/events/ios/keypress-keys-in-non-editable-element.html:

2019-01-30  Dean Jackson  <dino@apple.com>

        PointerEvents - tiltX and tiltY are reversed
        https://bugs.webkit.org/show_bug.cgi?id=194032
        <rdar://problem/47674184>

        Reviewed by Jon Lee.

        * pointerevents/ios/pointer-events-dispatch-on-stylus.html:

2019-01-30  Simon Fraser  <simon.fraser@apple.com>

        Add some basic geometry information to the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=194002
        rdar://problem/47656294

        Reviewed by Antti Koivisto.
        
        New test results with "parent relative scrollable rect" output and 0,0 anchorPoints.

        * compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
        * fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
        * fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
        * fast/scrolling/ios/overflow-scroll-touch-expected.txt:
        * fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
        * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
        * platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt:
        * platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
        * platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt:
        * platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * platform/ios/compositing/overflow/scrolling-without-painting-expected.txt:
        * platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
        * platform/ios/compositing/overflow/updating-scrolling-content-expected.txt:
        * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
        * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
        * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
        * platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
        * platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
        * platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
        * scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
        * scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
        * scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
        * scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
        * tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
        * tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
        * tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
        * tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
        * tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
        * tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
        * tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:

2019-01-30  Zalan Bujtas  <zalan@apple.com>

        [LFC] Use the used margin values in outOfFlowReplacedVerticalGeometry consistently
        https://bugs.webkit.org/show_bug.cgi?id=194020

        Reviewed by Antti Koivisto.

        * fast/block/block-only/absolute-position-with-margin-auto-simple-expected.html: Added.
        * fast/block/block-only/absolute-position-with-margin-auto-simple.html: Added.

2019-01-30  Chris Fleizach  <cfleizach@apple.com>

        AX: Support color well on iOS
        https://bugs.webkit.org/show_bug.cgi?id=194010

        Reviewed by Joanmarie Diggs.

        * accessibility/ios-simulator/color-well-expected.txt: Added.
        * accessibility/ios-simulator/color-well.html: Added.

2019-01-30  Chris Fleizach  <cfleizach@apple.com>

        AX: Role=switch not returning correct accessibilityValue
        https://bugs.webkit.org/show_bug.cgi?id=194006

        Reviewed by Joanmarie Diggs.

        * accessibility/ios-simulator/role-switch-expected.txt: Added.
        * accessibility/ios-simulator/role-switch.html: Added.

2019-01-30  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Manage failures in the imported WPT tests,
        adding a few failure expectations but mostly rebaselining the tests
        to match their current status.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-001-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-004-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any.worker-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-method.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/content-type: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/content-type/script.window-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/http-cache/cc-request-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/nosniff: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/nosniff/parsing-nosniff.window-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/resource-timing: Added.
        * platform/wpe/imported/w3c/web-platform-tests/resource-timing/resource_timing.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-blob-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-expected.txt:

2019-01-29  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Adding some test failure expectations and
        rebasing a few baselines.

        * platform/wpe/TestExpectations:
        * platform/wpe/css2.1/t1508-c527-font-06-b-expected.txt:
        * platform/wpe/fast/borders/rtl-border-04-expected.txt:
        * platform/wpe/fast/borders/rtl-border-05-expected.txt:
        * platform/wpe/fast/dom/52776-expected.txt:

2019-01-29  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening.

        * platform/wpe/TestExpectations: Skip the resourceLoadStatistics tests
        since that feature is still not yet enabled for the port.

2019-01-29  Simon Fraser  <simon.fraser@apple.com>

        Add nodes to the scrolling tree in z-index order.
        https://bugs.webkit.org/show_bug.cgi?id=192529
        <rdar://problem/47402708>

        Reviewed by Dean Jackson.
        
        New testcases for z-order of sibling fixed layers, and the correct nesting of scrolling tree nodes
        for a position:fixed which is also overflow:scroll.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt: Added.
        * platform/mac-wk2/TestExpectations:
        * scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/overflow-in-fixed.html: Added.
        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
        * scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order.html: Added.

2019-01-29  Truitt Savell  <tsavell@apple.com>

        Updating expectations for two compositing/repaint/iframes/ tests
        https://bugs.webkit.org/show_bug.cgi?id=193907

        Unreviewed test gardening.

        * platform/mac-highsierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * platform/mac-highsierra-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:

2019-01-29  Youenn Fablet  <youenn@apple.com>

        Adopt new SPI to evaluate server certificate trust
        https://bugs.webkit.org/show_bug.cgi?id=193355

        Reviewed by Alex Christensen.

        * http/tests/ssl/certificate-validation-expected.txt: Added.
        * http/tests/ssl/certificate-validation.html: Added.

2019-01-29  Shawn Roberts  <sroberts@apple.com>

        [ Mac WK2 ] Layout Test http/tests/cache-storage/cache-clearing-origin.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=193976

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-01-29  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION(r240553): [iOS] Crash in ScrollingTree::updateTreeFromStateNode when attempting to log in to icloud.com
        https://bugs.webkit.org/show_bug.cgi?id=193907
        rdar://problem/47604080

        Reviewed by Frédéric Wang.
        
        New ref test for layer positions in composited frames.
        
        New baselines with anchor point on the scroll layer.

        * compositing/geometry/composited-frame-contents-expected.html: Added.
        * compositing/geometry/composited-frame-contents.html: Added.
        * compositing/iframes/become-composited-nested-iframes-expected.txt:
        * compositing/iframes/become-overlapped-iframe-expected.txt:
        * compositing/iframes/composited-parent-iframe-expected.txt:
        * compositing/iframes/connect-compositing-iframe-delayed-expected.txt:
        * compositing/iframes/connect-compositing-iframe-expected.txt:
        * compositing/iframes/connect-compositing-iframe2-expected.txt:
        * compositing/iframes/connect-compositing-iframe3-expected.txt:
        * compositing/iframes/enter-compositing-iframe-expected.txt:
        * compositing/iframes/iframe-resize-expected.txt:
        * compositing/iframes/iframe-size-from-zero-expected.txt:
        * compositing/iframes/overlapped-iframe-expected.txt:
        * compositing/iframes/overlapped-iframe-iframe-expected.txt:
        * compositing/iframes/overlapped-nested-iframes-expected.txt:
        * compositing/iframes/page-cache-layer-tree-expected.txt:
        * compositing/iframes/remove-reinsert-webview-with-iframe-expected.txt:
        * compositing/iframes/resize-from-zero-size-expected.txt:
        * compositing/iframes/scrolling-iframe-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
        * compositing/visible-rect/iframe-with-layers-outside-viewport-expected.txt:
        * platform/ios-wk2/compositing/iframes/composited-parent-iframe-expected.txt:
        * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-delayed-expected.txt:
        * platform/ios-wk2/compositing/iframes/connect-compositing-iframe-expected.txt:
        * platform/ios-wk2/compositing/iframes/connect-compositing-iframe2-expected.txt:
        * platform/ios-wk2/compositing/iframes/connect-compositing-iframe3-expected.txt:
        * platform/ios-wk2/compositing/iframes/enter-compositing-iframe-expected.txt:
        * platform/ios-wk2/compositing/iframes/iframe-resize-expected.txt:
        * platform/ios-wk2/compositing/iframes/leave-compositing-iframe-expected.txt:
        * platform/ios-wk2/compositing/iframes/overlapped-iframe-expected.txt:
        * platform/ios-wk2/compositing/iframes/page-cache-layer-tree-expected.txt:
        * platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt:
        * platform/ios-wk2/compositing/rtl/rtl-iframe-absolute-expected.txt:
        * platform/ios-wk2/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt:
        * platform/ios-wk2/compositing/rtl/rtl-iframe-fixed-expected.txt:
        * platform/ios-wk2/compositing/rtl/rtl-iframe-relative-expected.txt:
        * platform/ios-wk2/compositing/tiling/tiled-drawing-async-frame-scrolling-expected.txt:
        * platform/ios-wk2/compositing/visible-rect/iframe-and-layers-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * platform/ios/compositing/iframes/become-composited-nested-iframes-expected.txt:
        * platform/ios/compositing/iframes/become-overlapped-iframe-expected.txt:
        * platform/ios/compositing/iframes/invisible-nested-iframe-show-expected.txt:
        * platform/ios/compositing/iframes/overlapped-nested-iframes-expected.txt:
        * platform/ios/compositing/iframes/remove-reinsert-webview-with-iframe-expected.txt:
        * platform/ios/compositing/iframes/resizer-expected.txt:
        * platform/ios/compositing/visible-rect/iframe-with-layers-outside-viewport-expected.txt:
        * platform/mac-wk1/compositing/iframes/remove-reinsert-webview-with-iframe-expected.txt:
        * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
        * platform/mac-wk2/compositing/tiling/tiled-drawing-async-frame-scrolling-expected.txt:
        * platform/mac/compositing/iframes/invisible-nested-iframe-show-expected.txt:
        * platform/mac/compositing/iframes/resizer-expected.txt:
        * platform/mac/compositing/visible-rect/iframe-and-layers-expected.txt:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt:

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

        [WebGPU] Fix and add validation to WebGPURenderPipeline and MTLVertexDescriptor
        https://bugs.webkit.org/show_bug.cgi?id=193926
        <rdar://problem/47327648>

        Reviewed by Myles C. Maxfield.

        Updated test for new vertex input logic. Now provides color as a vertex attribute.

        * webgpu/vertex-buffer-triangle-strip.html:

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

        Web Inspector: provide a way to edit page WebRTC settings on a remote target
        https://bugs.webkit.org/show_bug.cgi?id=193863

        Unreviewed, skip test from r240644 on WK1 since Media Streams aren't supported.

        * platform/mac-wk1/TestExpectations:

2019-01-28  Devin Rousso  <drousso@apple.com>

        Web Inspector: provide a way to edit page WebRTC settings on a remote target
        https://bugs.webkit.org/show_bug.cgi?id=193863
        <rdar://problem/47572764>

        Reviewed by Joseph Pecoraro.

        * inspector/page/overrideSetting-ICECandidateFilteringEnabled.html: Added.
        * inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt: Added.
        * inspector/page/overrideSetting-MockCaptureDevicesEnabled.html: Added.
        * inspector/page/overrideSetting-MockCaptureDevicesEnabled-expected.txt: Added.
        * platform/mac/TestExpectations:

2019-01-28  Ryan Haddad  <ryanhaddad@apple.com>

        REGRESSION (r240553): Crash in WebCore::ScrollingTree::updateTreeFromStateNode
        https://bugs.webkit.org/show_bug.cgi?id=193955

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Skip crashing test to unblock EWS.

2019-01-28  Antoine Quint  <graouts@apple.com>

        Implement capture for Pointer Events on iOS
        https://bugs.webkit.org/show_bug.cgi?id=193917
        <rdar://problem/47605689>

        Reviewed by Dean Jackson.

        New tests for implicit pointer capture and the Element APIs related to pointer capture.

        * pointerevents/ios/pointer-events-implicit-capture-expected.txt: Added.
        * pointerevents/ios/pointer-events-implicit-capture-has-pointer-capture-in-pointer-down-expected.txt: Added.
        * pointerevents/ios/pointer-events-implicit-capture-has-pointer-capture-in-pointer-down.html: Added.
        * pointerevents/ios/pointer-events-implicit-capture-release-exception-expected.txt: Added.
        * pointerevents/ios/pointer-events-implicit-capture-release-exception.html: Added.
        * pointerevents/ios/pointer-events-implicit-capture-release-expected.txt: Added.
        * pointerevents/ios/pointer-events-implicit-capture-release.html: Added.
        * pointerevents/ios/pointer-events-implicit-capture.html: Added.
        * pointerevents/ios/pointer-events-set-pointer-capture-exceptions-expected.txt: Added.
        * pointerevents/ios/pointer-events-set-pointer-capture-exceptions.html: Added.

2019-01-28  Dean Jackson  <dino@apple.com>

        Produce "pen" Pointer Events if using a stylus (e.g. Apple Pencil)
        https://bugs.webkit.org/show_bug.cgi?id=193945
        <rdar://problem/47618922>

        Reviewed by Antoine Quint.

        Test for stylus -> "pen" Pointer Events.

        * pointerevents/ios/pointer-events-dispatch-on-stylus-expected.txt: Added.
        * pointerevents/ios/pointer-events-dispatch-on-stylus.html: Added.
        * pointerevents/ios/pointer-events-dispatch-on-touch.html: Test for "touch" type.
        * pointerevents/utils.js: Add a new helper for stylus event generation.
        (prototype.assertMatchesEvents):
        (const.ui.new.UIController.prototype.beginStylus):

2019-01-28  Daniel Bates  <dabates@apple.com>

        [iOS] Make Window virtual key code computation match Mac
        https://bugs.webkit.org/show_bug.cgi?id=193452

        Reviewed by Ryosuke Niwa.

        Add a test that ensures we do not regress DOM key events dispatches for combinations
        of Option and Command + Option key commands.

        * fast/events/ios/key-events-meta-alt-combinations-expected.txt: Added.
        * fast/events/ios/key-events-meta-alt-combinations.html: Added.
        * fast/events/ios/resources/key-tester.js: Added.
        (computeDifference):
        (areArraysEqual):
        (areKeyCommandsEqual):
        (KeyCommand):
        (KeyCommand.prototype.toString):
        (keyCommandsHasCommand):
        (computeSubsets.compareByModifierOrder):
        (handleKeyUp):
        (handleKeyPress):
        (log):
        (logKeyEvent):
        (displayNameForTest):
        (nextKeyPress):
        (runTest):
        (setUp):

2019-01-28  Antoine Quint  <graouts@apple.com>

        Limit user-agent interactions based on the touch-action property on iOS
        https://bugs.webkit.org/show_bug.cgi?id=193447
        <rdar://problem/47283874>

        Reviewed by Antti Koivisto and Simon Fraser.

        Add a new series of tests that check that the "none", "pan-x", "pan-y" and "pinch-zoom" values have the expected
        impact on page panning on iOS.

        * pointerevents/ios/touch-action-none-expected.txt: Added.
        * pointerevents/ios/touch-action-none-in-overflow-scrolling-touch-expected.txt: Added.
        * pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html: Added.
        * pointerevents/ios/touch-action-none-on-iframe-expected.txt: Added.
        * pointerevents/ios/touch-action-none-on-iframe.html: Added.
        * pointerevents/ios/touch-action-none-on-parent-expected.txt: Added.
        * pointerevents/ios/touch-action-none-on-parent.html: Added.
        * pointerevents/ios/touch-action-none.html: Added.
        * pointerevents/ios/touch-action-pan-x-expected.txt: Added.
        * pointerevents/ios/touch-action-pan-x-pan-y-expected.txt: Added.
        * pointerevents/ios/touch-action-pan-x-pan-y.html: Added.
        * pointerevents/ios/touch-action-pan-x.html: Added.
        * pointerevents/ios/touch-action-pan-y-expected.txt: Added.
        * pointerevents/ios/touch-action-pan-y.html: Added.
        * pointerevents/ios/touch-action-pinch-zoom-allows-zooming-expected.txt: Added.
        * pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html: Added.
        * pointerevents/ios/touch-action-pinch-zoom-prevents-scrolling-expected.txt: Added.
        * pointerevents/ios/touch-action-pinch-zoom-prevents-scrolling.html: Added.

2019-01-28  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Add Changes panel to Elements tab
        https://bugs.webkit.org/show_bug.cgi?id=193803

        Reviewed by Devin Rousso.

        Test newly added Array.diffArrays.

        * inspector/unit-tests/array-utilities-expected.txt:
        * inspector/unit-tests/array-utilities.html:
        Use the old `InspectorTest.log` method since it shows diffs for actual and expected text.

2019-01-26  Simon Fraser  <simon.fraser@apple.com>

        Have composited RenderIFrame layers make FrameHosting scrolling tree nodes to parent the iframe's scrolling node
        https://bugs.webkit.org/show_bug.cgi?id=193879

        Reviewed by Antti Koivisto.

        New test results with FrameHosting nodes.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
        * scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:

2019-01-26  Devin Rousso  <drousso@apple.com>

        Web Inspector: handle CSS Color 4 color syntaxes
        https://bugs.webkit.org/show_bug.cgi?id=193166
        <rdar://problem/47062403>

        Reviewed by Simon Fraser.

        * inspector/model/color.html:
        * inspector/model/color-expected.txt:

2019-01-26  Devin Rousso  <drousso@apple.com>

        Web Inspector: provide a way to edit the user agent of a remote target
        https://bugs.webkit.org/show_bug.cgi?id=193862
        <rdar://problem/47359292>

        Reviewed by Joseph Pecoraro.

        * inspector/page/overrideUserAgent.html: Added.
        * inspector/page/overrideUserAgent-expected.txt: Added.

2019-01-26  Simon Fraser  <simon.fraser@apple.com>

        Move scrolling-tree/fixed-inside-frame.html into scrolling tree tests
        https://bugs.webkit.org/show_bug.cgi?id=193871

        Reviewed by Zalan Bujtas.

        Move another test into scrollingcoordinator/scrolling-tree, and now that it runs on iOS,
        add iOS results.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt.
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt: Renamed from LayoutTests/tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt.
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/fixed-inside-frame.html.
        * scrollingcoordinator/scrolling-tree/resources/autoscrolling-frame-with-fixed.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/resources/autoscrolling-frame-with-fixed.html.

2019-01-26  Zalan Bujtas  <zalan@apple.com>

        [LFC] The default values for top/bottom in contentHeightForFormattingContextRoot should not be 0.
        https://bugs.webkit.org/show_bug.cgi?id=193867

        Reviewed by Antti Koivisto.

        * fast/block/block-only/abs-pos-with-border-padding-and-float-child-expected.html: Added.
        * fast/block/block-only/abs-pos-with-border-padding-and-float-child.html: Added.

2019-01-26  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC] Ignore last inflow child's collapsed through margin after when computing containing block's height.
        https://bugs.webkit.org/show_bug.cgi?id=193865

        Reviewed by Antti Koivisto.

        * fast/block/margin-collapse/collapsed-through-child-simple-expected.html: Added.
        * fast/block/margin-collapse/collapsed-through-child-simple.html: Added.

2019-01-25  Devin Rousso  <drousso@apple.com>

        Web Inspector: provide a way to edit page settings on a remote target
        https://bugs.webkit.org/show_bug.cgi?id=193813
        <rdar://problem/47359510>

        Reviewed by Joseph Pecoraro.

        * inspector/page/overrideSetting.html: Added.
        * inspector/page/overrideSetting-expected.txt: Added.

2019-01-25  Jer Noble  <jer.noble@apple.com>

        <video> elements not in the DOM should be allowed to AirPlay
        https://bugs.webkit.org/show_bug.cgi?id=193837

        Reviewed by Eric Carlson.

        * media/airplay-allows-buffering-expected.txt: Added.
        * media/airplay-allows-buffering.html: Added.
        * platform/ios/TestExpectations:

2019-01-25  Simon Fraser  <simon.fraser@apple.com>

        Fix failing scrollingcoordinator/scrolling-tree/remove-scrolling-role.html

        Test needed different macOS and iOS results. Added window.internals.settings.setAsyncOverflowScrollingEnabled(true)
        so the test uses async overflow scrolling in the macOS result.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt.
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role.html:

2019-01-25  Simon Fraser  <simon.fraser@apple.com>

        Add a scrolling tree test that toggles scrollability on an intermediate iframe
        https://bugs.webkit.org/show_bug.cgi?id=193849

        Reviewed by Dean Jackson.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/resources/scroll-toggling-frame.html: Added.
        * scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling.html: Added.

2019-01-25  Truitt Savell  <tsavell@apple.com>

        Remove expectation for inspector/css/createStyleSheet.html as test appears to be passing. 
        https://bugs.webkit.org/show_bug.cgi?id=148636

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-01-25  Chris Dumez  <cdumez@apple.com>

        [iOS] Add support for the download attribute
        https://bugs.webkit.org/show_bug.cgi?id=167341
        <rdar://problem/30296281>

        Reviewed by Geoffrey Garen.

        Make download attribute layout tests iOS-friendly and unskip them now that they pass.

        * fast/dom/HTMLAnchorElement/anchor-download-unset.html:
        * fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-unicode.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-no-extension.html:
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download.html:
        * fast/dom/HTMLAnchorElement/anchor-nodownload-set.html:
        * fast/dom/HTMLAnchorElement/anchor-nodownload.html:
        * http/tests/download/anchor-download-attribute-content-disposition.html:
        * http/tests/download/anchor-download-no-extension.html:
        * http/tests/download/anchor-download-no-value.html:
        * http/tests/download/anchor-download-redirect.html:
        * http/tests/download/area-download.html:
        * http/tests/download/convert-cached-load-to-download.html:
        * http/tests/security/anchor-download-allow-blob.html:
        * http/tests/security/anchor-download-allow-data.html:
        * http/tests/security/anchor-download-allow-sameorigin.html:
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin.html:
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/http/tests/security/anchor-download-block-crossorigin-expected.txt: Copied from LayoutTests/http/tests/security/anchor-download-block-crossorigin-expected.txt.

2019-01-25  Shawn Roberts  <sroberts@apple.com>

        [ iOS Simulator Release ] Layout Test fast/animation/request-animation-frame.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=190888

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:

2019-01-25  Daniel Bates  <dabates@apple.com>

        [iOS] uiController.keyDown() does not translate Control modified key
        https://bugs.webkit.org/show_bug.cgi?id=192898

        Reviewed by Wenson Hsieh.

        Make tests more robusts.

        * fast/events/ios/key-command-italic-dispatches-keydown.html: Remove the need to special-case the test runner and
        expect a single key event that represents Command + I. Now that uiController.keyDown() makes use of HIDEventGenerator
        we emit separate key events for each key pressed in the sequence: keydown Command, keydown i, keyup i, keyup Command.
        This matches how a human being would execute such a key sequence.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-not-be-visible-when-auto-fill-strong-password-button-is-visible-expected.html:
        Make the test less flaky by hiding the tap highlight. Depending on timing, the tap highlight may be snapshotted and thus
        cause the reference test to mismatch the test. Mitigate this by hiding the tap highlight.
        * fast/text/scroll-text-overflow-ellipsis.html: Wait for a keyup event for the down arrow before declaring the
        test complete.

2019-01-25  Simon Fraser  <simon.fraser@apple.com>

        Move more scrolling tree tests into scrollingcoordinator/scrolling-tree
        https://bugs.webkit.org/show_bug.cgi?id=193845

        Reviewed by Tim Horton.

        Gather more tests of the scrolling tree into scrollingcoordinator/scrolling-tree.

        * platform/gtk/TestExpectations:
        * platform/ios-wk1/fast/scrolling/scrolling-tree-includes-frame-expected.txt: Removed.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt: Copied from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt: Renamed from LayoutTests/platform/ios/fast/scrolling/scrolling-tree-includes-frame-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt: Renamed from LayoutTests/platform/ios-wk2/fast/scrolling/scrolling-tree-includes-frame-expected.txt.
        * platform/mac-wk1/fast/scrolling/scrolling-tree-includes-frame-expected.txt: Removed.
        * platform/win/TestExpectations:
        * scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-expected.txt.
        * scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt.
        * scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor.html.
        * scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt.
        * scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-in-fixed.html.
        * scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt.
        * scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor.html.
        * scrollingcoordinator/scrolling-tree/coordinated-frame.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame.html.
        * scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt: Renamed from LayoutTests/tiled-drawing/scrolling/frames/remove-coordinated-frame-expected.txt.
        * scrollingcoordinator/scrolling-tree/remove-coordinated-frame.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/remove-coordinated-frame.html.
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt: Renamed from LayoutTests/fast/scrolling/ios/remove-scrolling-role-expected.txt.
        * scrollingcoordinator/scrolling-tree/remove-scrolling-role.html: Renamed from LayoutTests/fast/scrolling/ios/remove-scrolling-role.html.
        * scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html: Renamed from LayoutTests/tiled-drawing/scrolling/frames/resources/doc-with-sticky.html.
        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt: Renamed from LayoutTests/fast/scrolling/scrolling-tree-includes-frame-expected.txt.
        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html: Renamed from LayoutTests/fast/scrolling/scrolling-tree-includes-frame.html.

2019-01-25  Simon Fraser  <simon.fraser@apple.com>

        Move tests for scrolling tree mutations into their own directory
        https://bugs.webkit.org/show_bug.cgi?id=193836

        Reviewed by Tim Horton.

        Add a scrollingcoordinator/scrolling-tree directory, which will contain tests for scrolling
        tree mutations.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt: Renamed from LayoutTests/platform/ios/scrollingcoordinator/gain-scrolling-node-parent-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt: Renamed from LayoutTests/platform/ios/scrollingcoordinator/lose-scrolling-node-parent-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt: Renamed from LayoutTests/platform/ios-wk2/scrollingcoordinator/reparent-across-compositing-layers-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt: Renamed from LayoutTests/platform/ios-wk2/scrollingcoordinator/reparent-with-layer-removal-expected.txt.
        * scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt: Renamed from LayoutTests/scrollingcoordinator/gain-scrolling-node-parent-expected.txt.
        * scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent.html: Renamed from LayoutTests/scrollingcoordinator/gain-scrolling-node-parent.html.
        * scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt: Renamed from LayoutTests/scrollingcoordinator/lose-scrolling-node-parent-expected.txt.
        * scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent.html: Renamed from LayoutTests/scrollingcoordinator/lose-scrolling-node-parent.html.
        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt: Renamed from LayoutTests/scrollingcoordinator/reparent-across-compositing-layers-expected.txt.
        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers.html: Renamed from LayoutTests/scrollingcoordinator/reparent-across-compositing-layers.html.
        * scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt: Renamed from LayoutTests/scrollingcoordinator/reparent-with-layer-removal-expected.txt.
        * scrollingcoordinator/scrolling-tree/reparent-with-layer-removal.html: Renamed from LayoutTests/scrollingcoordinator/reparent-with-layer-removal.html.

2019-01-25  Ryosuke Niwa  <rniwa@webkit.org>

        iOS: inputmode="none" disables hardware keyboard's globe key
        https://bugs.webkit.org/show_bug.cgi?id=193811
        <rdar://problem/47406553>

        Reviewed by Wenson Hsieh.

        Updated and renamed the test expecting the keyboard to update upon inputmode content attribute changed
        to use inputmode="decimal" instead of inputmode="none", and updated another test to expect inputmode="none"
        has no effect instead of hiding the keyboard.

        * fast/forms/ios/inputmode-change-update-keyboard-expected.txt: Renamed from inputmode-none-removed-expected.txt.
        * fast/forms/ios/inputmode-change-update-keyboard.html: Renamed from inputmode-none-removed.html.
        * fast/forms/ios/inputmode-none-expected.txt:
        * fast/forms/ios/inputmode-none.html:

2019-01-25  Jonathan Bedard  <jbedard@apple.com>

        webkitpy: Implement device type specific expected results (Gardening)
        https://bugs.webkit.org/show_bug.cgi?id=192162
        <rdar://problem/46345449>

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Remove non-existant directories.
        * platform/mac/TestExpectations: Ditto.

2019-01-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        Need a way for JavaScript (or bundle) code to participate in undo
        https://bugs.webkit.org/show_bug.cgi?id=190009
        <rdar://problem/44807048>

        Reviewed by Ryosuke Niwa.

        Add a few new layout tests covering `UndoManager.addItem()`.

        * editing/undo-manager/undo-manager-add-item-exceptions-expected.txt: Added.
        * editing/undo-manager/undo-manager-add-item-exceptions.html: Added.

        Add a test to verify that we throw exceptions when calling addItem() in a couple of circumstances.

        * editing/undo-manager/undo-manager-add-item-expected.txt: Added.
        * editing/undo-manager/undo-manager-add-item.html: Added.

        Add a test that exercises the new API in both the top-level context and a child frame.

        * editing/undo-manager/undo-manager-delete-stale-undo-items-expected.txt: Added.
        * editing/undo-manager/undo-manager-delete-stale-undo-items.html: Added.

        Add a test to verify that after adding undo items, undoing, and then performing other edit actions, garbage
        collection will destroy JS wrappers for the previously added UndoItems, since these undo items' handlers can no
        longer be invoked.

        * editing/undo-manager/undo-manager-item-labels-expected.txt: Added.
        * editing/undo-manager/undo-manager-item-labels.html: Added.

        Add a test verifying that the undo and redo action labels are updated correctly when undoing and redoing.

        * editing/undo-manager/undo-manager-undo-redo-after-garbage-collection-expected.txt: Added.
        * editing/undo-manager/undo-manager-undo-redo-after-garbage-collection.html: Added.

        Add a test to verify that triggering garbage collection after adding an undo item without keeping references to
        the item (or its undo/redo handlers) doesn't break the API.

        * resources/ui-helper.js:
        (window.UIHelper.undoAndRedoLabels):

        Add a helper method to grab the platform's current undo and redo action names.

        (window.UIHelper):

2019-01-25  Devin Rousso  <drousso@apple.com>

        Web Inspector: improve invalid Audit/Recording JSON error messages
        https://bugs.webkit.org/show_bug.cgi?id=193476
        <rdar://problem/47303659>

        Reviewed by Joseph Pecoraro.

        * inspector/model/auditTestCase.html:
        * inspector/model/auditTestCase-expected.txt:
        * inspector/model/auditTestCaseResult-expected.txt:
        * inspector/model/auditTestGroup.html:
        * inspector/model/auditTestGroup-expected.txt:
        * inspector/model/auditTestGroupResult-expected.txt:
        * inspector/model/recording-expected.txt:

2019-01-24  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: add supports key to test/group for compatibility
        https://bugs.webkit.org/show_bug.cgi?id=193686
        <rdar://problem/47460872>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/version.html:

2019-01-24  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: CPU Usage Timeline
        https://bugs.webkit.org/show_bug.cgi?id=193730
        <rdar://problem/46797201>

        Reviewed by Devin Rousso.

        * inspector/cpu-profiler/tracking-expected.txt: Added.
        * inspector/cpu-profiler/tracking.html: Added.
        Test the CPUProfiler domain emits events.

        * inspector/heap/tracking-expected.txt:
        * inspector/heap/tracking.html:
        * inspector/memory/tracking-expected.txt:
        * inspector/memory/tracking.html:
        * inspector/script-profiler/tracking-expected.txt:
        * inspector/script-profiler/tracking.html:
        Update test naming.

        * platform/win/TestExpectations:
        Skip on platforms without RESOURCE_USAGE.

2019-01-24  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Unable to make a selection in jsfiddle.net using arrow keys when requesting desktop site
        https://bugs.webkit.org/show_bug.cgi?id=193758
        <rdar://problem/43614978>

        Reviewed by Tim Horton.

        Mark some existing layout tests as passing on iOS. Additionally, remove failing expectations for another
        existing layout test on iOS.

        * platform/ios/TestExpectations:
        * platform/ios/editing/text-iterator/hidden-textarea-selection-quirk-expected.txt: Removed.

2019-01-24  John Wilander  <wilander@apple.com>

        Add Ad Click Attribution as an internal/experimental feature
        https://bugs.webkit.org/show_bug.cgi?id=193685
        <rdar://problem/47450399>

        Reviewed by Brent Fulgham.

        * http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt: Added.
        * http/tests/adClickAttribution/anchor-tag-attributes-reflect.html: Added.
        * platform/win/TestExpectations:
            Skipped on Windows for now.

2019-01-23  Oriol Brufau  <obrufau@igalia.com>

        Allow failures in flaky tests from bug 193657
        https://bugs.webkit.org/show_bug.cgi?id=193736

        Unreviewed test gardening.

        * TestExpectations:

2019-01-23  Eric Liang  <ericliang@apple.com>

        AX: [GTK] Layout test accessibility/set-selected-editable.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=193623

        Reviewed by Michael Catanzaro.
        
        AXSelected attribute behavior on GTK is different. Skipped.

        * platform/gtk/TestExpectations:

2019-01-22  Simon Fraser  <simon.fraser@apple.com>

        Compositing updates need to reparent scrolling tree nodes with a changed ancestor
        https://bugs.webkit.org/show_bug.cgi?id=193699

        Reviewed by Frédéric Wang.

        * platform/ios-wk2/scrollingcoordinator/reparent-across-compositing-layers-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/reparent-with-layer-removal-expected.txt: Added.
        * scrollingcoordinator/reparent-across-compositing-layers-expected.txt: Added.
        * scrollingcoordinator/reparent-across-compositing-layers.html: Added.
        * scrollingcoordinator/reparent-with-layer-removal-expected.txt: Added.
        * scrollingcoordinator/reparent-with-layer-removal.html: Added.

2019-01-23  Oriol Brufau  <obrufau@igalia.com>

        [css-logical] Implement flow-relative inset properties
        https://bugs.webkit.org/show_bug.cgi?id=189441

        Reviewed by Dean Jackson.

        Check that the new CSS properties are disabled behind runtime flags
        and are not exposed.

        * webexposed/css-properties-behind-flags-expected.txt:
        * webexposed/css-properties-behind-flags.html:

2019-01-23  Rob Buis  <rbuis@igalia.com>

        Update MIME type parser
        https://bugs.webkit.org/show_bug.cgi?id=180526

        Reviewed by Frédéric Wang.

        Adjust test expectation.

        * http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt:
        * http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
        * http/tests/xmlhttprequest/post-blob-content-type-tests.js:

2019-01-22  Simon Fraser  <simon.fraser@apple.com>

        Adding a child to a ScrollingStateNode needs to trigger a tree state commit
        https://bugs.webkit.org/show_bug.cgi?id=193682

        Reviewed by Zalan Bujtas.

        * platform/ios/scrollingcoordinator/gain-scrolling-node-parent-expected.txt: Added.
        * platform/ios/scrollingcoordinator/lose-scrolling-node-parent-expected.txt: Added.
        * scrollingcoordinator/gain-scrolling-node-parent-expected.txt: Added.
        * scrollingcoordinator/gain-scrolling-node-parent.html: Added.
        * scrollingcoordinator/lose-scrolling-node-parent-expected.txt: Added.
        * scrollingcoordinator/lose-scrolling-node-parent.html: Added.

2019-01-22  Simon Fraser  <simon.fraser@apple.com>

        Make scrollingcoordinator tests only run on iOS/macOS WK2
        https://bugs.webkit.org/show_bug.cgi?id=193690

        Reviewed by Zalan Bujtas.
        
        scrollingcoordinator is only active in WK2, and both WPE and WinCairo skip this directory
        already, so skip it at the top level, and re-enable for mac-wk2 and ios-wk2.

        Also do some cleanup after tiled-drawing/ios was removed on 1/18.

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

2019-01-22  Devin Rousso  <drousso@apple.com>

        Web Inspector: InspectorInstrumentation::willEvaluateScript should include column number
        https://bugs.webkit.org/show_bug.cgi?id=116191
        <rdar://problem/13905910>

        Reviewed by Joseph Pecoraro.

        * inspector/timeline/line-column.html: Added.
        * inspector/timeline/line-column-expected.txt: Added.

2019-01-22  Devin Rousso  <drousso@apple.com>

        Web Inspector: expose Audit and Recording versions to the frontend
        https://bugs.webkit.org/show_bug.cgi?id=193262
        <rdar://problem/47130684>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/version.html: Added.
        * inspector/audit/version-expected.txt: Added.
        * inspector/recording/version.html: Added.
        * inspector/recording/version-expected.txt: Added.

2019-01-22  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles: refactor properties/allProperties/visibleProperties/allVisibleProperties
        https://bugs.webkit.org/show_bug.cgi?id=193615

        Reviewed by Devin Rousso.

        Rename:
        - properties to enabledProperties;
        - allProperties to properties.

        * inspector/css/css-property-expected.txt:
        * inspector/css/css-property.html:
        * inspector/css/force-page-appearance.html:
        * inspector/css/matched-style-properties.html:
        * inspector/css/modify-css-property.html:
        * inspector/css/shadow-scoped-style.html:

2019-01-22  Sihui Liu  <sihui_liu@apple.com>

        Layout test storage/indexeddb/open-during-transaction-private.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=193600

        Reviewed by Brady Eidson.

        Make sure the second request is finished before the third one so that test ends properly.

        * storage/indexeddb/open-during-transaction-expected.txt:
        * storage/indexeddb/open-during-transaction-private-expected.txt:
        * storage/indexeddb/resources/open-during-transaction.js:
        (tryOpens.openreq3.onsuccess):
        (tryOpens.openreq2.onsuccess):
        (tryOpens):

2019-01-22  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: provide a way to get related Accessibility properties for a given node
        https://bugs.webkit.org/show_bug.cgi?id=193227
        <rdar://problem/46787862>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/run-accessibility.html:
        * inspector/audit/run-accessibility-expected.txt:

2019-01-22  Simon Fraser  <simon.fraser@apple.com>

        Remove an iOS quirk where iframe renderers are identified as "RenderPartObject" in layout test results
        https://bugs.webkit.org/show_bug.cgi?id=193692

        Reviewed by Zalan Bujtas.

        Replace all instances of "RenderPartObject" with "RenderIFrame".

        * platform/ios-wk1/editing/pasteboard/4631972-expected.txt:
        * platform/ios-wk1/editing/pasteboard/subframe-dragndrop-1-expected.txt:
        * platform/ios-wk1/editing/selection/iframe-expected.txt:
        * platform/ios-wk1/editing/selection/select-all-iframe-expected.txt:
        * platform/ios-wk1/fast/overflow/scrollRevealButton-expected.txt:
        * platform/ios-wk1/fast/text/selection-hard-linebreak-expected.txt:
        * platform/ios-wk2/compositing/iframes/compositing-for-scrollable-iframe-expected.txt:
        * platform/ios-wk2/editing/pasteboard/4631972-expected.txt:
        * platform/ios-wk2/editing/pasteboard/subframe-dragndrop-1-expected.txt:
        * platform/ios-wk2/editing/selection/select-all-iframe-expected.txt:
        * platform/ios-wk2/fast/forms/basic-textareas-expected.txt:
        * platform/ios-wk2/fast/forms/tabbing-input-iframe-expected.txt:
        * platform/ios-wk2/fast/forms/targeted-frame-submission-expected.txt:
        * platform/ios-wk2/fast/frames/flattening/iframe-flattening-out-of-view-and-scroll-expected.txt:
        * platform/ios-wk2/fast/frames/flattening/iframe-flattening-out-of-view-scroll-and-relayout-expected.txt:
        * platform/ios-wk2/fast/frames/onlyCommentInIFrame-expected.txt:
        * platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt:
        * platform/ios-wk2/fast/replaced/border-radius-clip-expected.txt:
        * platform/ios/compositing/iframes/composited-iframe-alignment-expected.txt:
        * platform/ios/compositing/iframes/compositing-for-scrollable-iframe-expected.txt:
        * platform/ios/compositing/iframes/iframe-copy-on-scroll-expected.txt:
        * platform/ios/compositing/iframes/iframe-in-composited-layer-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-004-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-005-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-007-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-011-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-012-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-014-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-018-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-019-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-021-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-025-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-026-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-028-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-032-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-033-expected.txt:
        * platform/ios/css2.1/20110323/absolute-replaced-height-035-expected.txt:
        * platform/ios/css2.1/20110323/block-replaced-height-004-expected.txt:
        * platform/ios/css2.1/20110323/block-replaced-height-005-expected.txt:
        * platform/ios/css2.1/20110323/block-replaced-height-007-expected.txt:
        * platform/ios/css2.1/20110323/float-replaced-height-004-expected.txt:
        * platform/ios/css2.1/20110323/float-replaced-height-005-expected.txt:
        * platform/ios/css2.1/20110323/float-replaced-height-007-expected.txt:
        * platform/ios/css2.1/20110323/inline-block-replaced-height-004-expected.txt:
        * platform/ios/css2.1/20110323/inline-block-replaced-height-005-expected.txt:
        * platform/ios/css2.1/20110323/inline-block-replaced-height-007-expected.txt:
        * platform/ios/css2.1/20110323/inline-replaced-height-004-expected.txt:
        * platform/ios/css2.1/20110323/inline-replaced-height-005-expected.txt:
        * platform/ios/css2.1/20110323/inline-replaced-height-007-expected.txt:
        * platform/ios/editing/execCommand/find-after-replace-expected.txt:
        * platform/ios/editing/execCommand/paste-1-expected.txt:
        * platform/ios/editing/pasteboard/drag-image-to-contenteditable-in-iframe-expected.txt:
        * platform/ios/editing/pasteboard/image-in-iframe-expected.txt:
        * platform/ios/editing/pasteboard/paste-2-expected.txt:
        * platform/ios/editing/selection/4776665-expected.txt:
        * platform/ios/editing/selection/4960137-expected.txt:
        * platform/ios/editing/selection/4975120-expected.txt:
        * platform/ios/editing/selection/drag-in-iframe-expected.txt:
        * platform/ios/editing/selection/drag-to-contenteditable-iframe-expected.txt:
        * platform/ios/editing/selection/iframe-expected.txt:
        * platform/ios/fast/block/basic/013-expected.txt:
        * platform/ios/fast/block/positioning/window-height-change-expected.txt:
        * platform/ios/fast/css/line-height-overflow-expected.txt:
        * platform/ios/fast/css/resize-corner-tracking-transformed-iframe-expected.txt:
        * platform/ios/fast/css3-text/css3-text-decoration/text-decoration-line-scaled-expected.txt:
        * platform/ios/fast/dom/Window/open-existing-pop-up-blocking-expected.txt:
        * platform/ios/fast/flexbox/016-expected.txt:
        * platform/ios/fast/forms/basic-textareas-expected.txt:
        * platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
        * platform/ios/fast/forms/targeted-frame-submission-expected.txt:
        * platform/ios/fast/frames/001-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-fixed-height-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-fixed-width-and-height-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-fixed-width-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-nested-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-offscreen-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-out-of-view-and-scroll-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-out-of-view-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-out-of-view-scroll-and-relayout-expected.txt:
        * platform/ios/fast/frames/flattening/iframe-flattening-simple-expected.txt:
        * platform/ios/fast/frames/frameElement-iframe-expected.txt:
        * platform/ios/fast/frames/iframe-option-crash-expected.txt:
        * platform/ios/fast/frames/iframe-scrolling-attribute-expected.txt:
        * platform/ios/fast/frames/iframe-with-frameborder-expected.txt:
        * platform/ios/fast/frames/onlyCommentInIFrame-expected.txt:
        * platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
        * platform/ios/fast/images/favicon-as-image-expected.txt:
        * platform/ios/fast/overflow/scrollRevealButton-expected.txt:
        * platform/ios/fast/regions/repaint/line-flow-with-floats-in-regions-expected.txt:
        * platform/ios/fast/replaced/007-expected.txt:
        * platform/ios/fast/replaced/border-radius-clip-expected.txt:
        * platform/ios/fast/replaced/percent-height-in-anonymous-block-in-table-expected.txt:
        * platform/ios/fast/replaced/replaced-breaking-expected.txt:
        * platform/ios/fast/table/quote-text-around-iframe-expected.txt:
        * platform/ios/fast/text-autosizing/ios/contenteditable-expected.txt:
        * platform/ios/http/tests/loading/simple-subframe-expected.txt:
        * platform/ios/http/tests/local/file-url-sent-as-referer-expected.txt:
        * platform/ios/http/tests/misc/favicon-as-image-expected.txt:
        * platform/ios/http/tests/misc/frame-access-during-load-expected.txt:
        * platform/ios/http/tests/misc/iframe404-expected.txt:
        * platform/ios/http/tests/multipart/invalid-image-data-standalone-expected.txt:
        * platform/ios/http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header-inherited-by-subframe-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-2-expected.txt:
        * platform/ios/ios/fast/fixed/frame-with-fixed-expected.txt:
        * platform/ios/svg/custom/embedding-external-svgs-expected.txt:
        * platform/ios/svg/hixie/rendering-model/003-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug131020-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug137388-1-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug137388-2-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug137388-3-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug38916-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
        * platform/ios/tables/mozilla/bugs/bug50695-2-expected.txt:
        * platform/ios/webarchive/loading/cache-expired-subresource-expected.txt:

2019-01-22  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Dynamic changes in the style attributes of an SVGElement do no affect the <use> instances
        https://bugs.webkit.org/show_bug.cgi?id=193647

        Reviewed by Simon Fraser.

        * svg/custom/svg-use-style-dynamic-change-invalidate-expected.svg: Added.
        * svg/custom/svg-use-style-dynamic-change-invalidate.svg: Added.

2019-01-22  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, skip all resource load statistics tests on GTK

        We don't have this feature enabled yet, so shouldn't be running the tests. Yet.

        * platform/gtk/TestExpectations:

2019-01-22  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: provide a way to get related Accessibility nodes for a given node
        https://bugs.webkit.org/show_bug.cgi?id=193225
        <rdar://problem/46799956>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/run-accessibility.html:
        * inspector/audit/run-accessibility-expected.txt:

2019-01-22  Simon Fraser  <simon.fraser@apple.com>

        Fix the position of layers nested inside of composited overflow-scroll
        https://bugs.webkit.org/show_bug.cgi?id=193642

        Reviewed by Antti Koivisto and Sam Weinig.
        
        Ref test. Black bar obscures the area that's different because of overlay/non-overlay
        scrollbar differences between macOS and iOS.

        * compositing/geometry/fixed-inside-overflow-scroll-expected.html: Added.
        * compositing/geometry/fixed-inside-overflow-scroll.html: Added.

2019-01-22  Oriol Brufau  <obrufau@igalia.com>

        [css-logical] Implement flow-relative margin, padding and border shorthands
        https://bugs.webkit.org/show_bug.cgi?id=188697

        Reviewed by Simon Fraser and Antti Koivisto.

        Add tests checking that CSS properties disabled behind runtime flags
        are not exposed.

        * webexposed/css-properties-behind-flags-expected.txt: Added.
        * webexposed/css-properties-behind-flags.html: Added.

2019-01-21  Antti Koivisto  <antti@apple.com>

        [iOS] Handle hit testing for subframes
        https://bugs.webkit.org/show_bug.cgi?id=192303

        Reviewed by Frédéric Wang.

        Test by Frederic Wang.

        * fast/scrolling/ios/hit-testing-iframe-expected.html: Added.
        * fast/scrolling/ios/hit-testing-iframe.html: Added.

2019-01-21  Zalan Bujtas  <zalan@apple.com>

        [LFC][Floats] Take float top position into account when computing containing block height.
        https://bugs.webkit.org/show_bug.cgi?id=193655

        Reviewed by Antti Koivisto.

        * fast/block/float/float-first-child-and-clear-sibling-expected.html: Added.
        * fast/block/float/float-first-child-and-clear-sibling.html: Added.

2019-01-21  Frederic Wang  <fwang@igalia.com>

        Add a basic test for scrollable iframe on iOS
        https://bugs.webkit.org/show_bug.cgi?id=193650

        Reviewed by Antti Koivisto.

        * fast/scrolling/ios/scroll-iframe-expected.html: Added.
        * fast/scrolling/ios/scroll-iframe.html: Added.

2019-01-20  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening

        * accessibility/gtk/xml-roles-exposed-expected.txt:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt: Removed.
        * platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Added.
        * platform/gtk/svg/text/font-size-below-point-five-expected.txt:

2019-01-20  chris fleizach  <cfleizach@apple.com>

        AX: Support returning relative frames for accessibility
        https://bugs.webkit.org/show_bug.cgi?id=193414
        <rdar://problem/47268501>

        Reviewed by Zalan Bujtas.

        * accessibility/mac/relative-frame-expected.txt: Added.
        * accessibility/mac/relative-frame.html: Added.
        * platform/mac-wk1/TestExpectations:

2019-01-20  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed gardening, add failure expectation for js/intl-numberformat.html

        This test requires an old version of ICU to pass.

        * platform/gtk/TestExpectations:

2019-01-20  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, rolling out r240209.

        Broke GTK/WPE injected bundle

        Reverted changeset:

        "AX: Support returning relative frames for accessibility"
        https://bugs.webkit.org/show_bug.cgi?id=193414
        https://trac.webkit.org/changeset/240209

2019-01-20  chris fleizach  <cfleizach@apple.com>

        AX: Support returning relative frames for accessibility
        https://bugs.webkit.org/show_bug.cgi?id=193414
        <rdar://problem/47268501>

        Reviewed by Zalan Bujtas.

        * accessibility/mac/relative-frame-expected.txt: Added.
        * accessibility/mac/relative-frame.html: Added.
        * platform/mac-wk1/TestExpectations:

2019-01-19  Zalan Bujtas  <zalan@apple.com>

        [LFC][Floats] Ensure that floats in FloatingContext::m_floats are always horizontally ordered.
        https://bugs.webkit.org/show_bug.cgi?id=193613

        Reviewed by Antti Koivisto.

        * fast/block/float/floats-with-negative-horizontal-margin-expected.html: Added.
        * fast/block/float/floats-with-negative-horizontal-margin.html: Added.

2019-01-19  Eric Liang  <ericliang@apple.com>

        AXSelected attribute on RadioButton should not be settable.
        https://bugs.webkit.org/show_bug.cgi?id=193371

        Reviewed by Chris Fleizach.

        This change make RadioButton AXSelected attribute no-settable. If this attribute is not writable, then the trackpad should work correctly.

        * accessibility/set-selected-editable-expected.txt: Added.
        * accessibility/set-selected-editable.html: Added.

2019-01-18  Ryosuke Niwa  <rniwa@webkit.org>

        iOS: Updating input mode should update the software keyboard
        https://bugs.webkit.org/show_bug.cgi?id=193565
        <rdar://problem/47376334>

        Reviewed by Wenson Hsieh.

        Added a regression test for removing inputmode content attribute with the value of "none".

        The test methodology is different between testRunner and in-browser since we don't force
        software keyboard while running layout tests inside simulator which can elimiate
        the visual viewport difference inside the test runner, and in-browser testing obviously
        doesn't have access to the internal keyboard metrics.

        * fast/forms/ios/inputmode-none-removed-expected.txt: Added.
        * fast/forms/ios/inputmode-none-removed.html: Added.

2019-01-18  Justin Fan  <justin_fan@apple.com>

        (WIP) [WebGPU] WebGPUProgrammablePassEncoder::setBindGroup prototype
        https://bugs.webkit.org/show_bug.cgi?id=193457
        <rdar://problem/47296678>

        Reviewed by Dean Jackson.

        Draw 3 triangles via WebGPU to create a green square canvas, with reference.
        Each vertex is stored in its own WebGPUBuffer and they are mix/matched per bind group.
        This tests multiple resource bindings in one bind group as well as setting multiple 
        bind groups per draw call and per command encoder. 

        * webgpu/buffer-resource-triangles-expected.html: Added. Reference generated using 2D canvas.
        * webgpu/buffer-resource-triangles.html: Added. 
                1) Draw top two triangles using two bind groups in one draw call.
                2) Swap first bind group and issue second draw call to draw middle triangle.
        * webgpu/js/webgpu-functions.js:
        (createBasicPipeline): Now handles new primitive topologies.

2019-01-18  Antti Koivisto  <antti@apple.com>

        Implement asynchronous frame scrolling for iOS
        https://bugs.webkit.org/show_bug.cgi?id=193539
        <rdar://problem/47379873>

        Reviewed by Simon Fraser.

        * platform/ios-wk2/compositing/tiling/tiled-drawing-async-frame-scrolling-expected.txt:

2019-01-18  Ali Juma  <ajuma@chromium.org>

        FetchResponse::url should return the empty string for tainted responses
        https://bugs.webkit.org/show_bug.cgi?id=193553

        Reviewed by Youenn Fablet.

        * http/wpt/fetch/response-opaque-clone.html:

2019-01-18  Jonathan Bedard  <jbedard@apple.com>

        webkitpy: Implement device type specific expected results (Follow-up fix)
        https://bugs.webkit.org/show_bug.cgi?id=192162
        <rdar://problem/46345449>

        Unreviewed test gardening.

        * tiled-drawing/ios/iphone7: Removed.

2019-01-18  Youenn Fablet  <youenn@apple.com>

        Add a new SPI to request for cache storage quota increase
        https://bugs.webkit.org/show_bug.cgi?id=193323

        Reviewed by Alex Christensen.

        Use new testRunner method to bump the cache quota and verify adding a
        cache entry works when bumping the cache quota.

        * http/wpt/cache-storage/cache-quota.any.js:
        (promise_test):

2019-01-18  Youenn Fablet  <youenn@apple.com>

        A track source should be unmuted whenever reenabled after setDirection changes
        https://bugs.webkit.org/show_bug.cgi?id=193554
        <rdar://problem/47366196>

        Reviewed by Eric Carlson.

        * webrtc/video-setDirection-expected.txt: Added.
        * webrtc/video-setDirection.html: Added.

2019-01-18  Jonathan Bedard  <jbedard@apple.com>

        webkitpy: Implement device type specific expected results (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=192162
        <rdar://problem/46345449>

        Rubber-stamped by Aakash Jain.

        Move iPad and iPhone 7 tests to their respective platform specific directories.

        * TestExpectations:
        * fast/events/touch/ios/iphone7: Removed.
        * fast/forms/ios/ipad: Removed.
        * fast/text-autosizing/ios/ipad: Removed.
        * fast/viewport/ios/ipad: Removed.
        * media/controls/ipad: Removed.
        * media/modern-media-controls/media-documents/ipad: Removed.
        * media/modern-media-controls/pip-support/ipad: Removed.
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ipad: Added.
        * platform/ipad/fast: Added.
        * platform/ipad/fast/forms: Added.
        * platform/ipad/fast/forms/choose-select-option-expected.txt: Added.
        * platform/ipad/fast/forms/choose-select-option.html: Added.
        * platform/ipad/fast/forms/focus-input-via-button-expected.txt: Added.
        * platform/ipad/fast/forms/focus-input-via-button.html: Added.
        * platform/ipad/fast/forms/multiple-select-updates-renderer-expected.txt: Added.
        * platform/ipad/fast/forms/multiple-select-updates-renderer.html: Added.
        * platform/ipad/fast/forms/select-form-run-twice-expected.txt: Added.
        * platform/ipad/fast/forms/select-form-run-twice.html: Added.
        * platform/ipad/fast/forms/select-with-title-expected.txt: Added.
        * platform/ipad/fast/forms/select-with-title.html: Added.
        * platform/ipad/fast/forms/unfocus-inside-fixed-hittest-expected.txt: Added.
        * platform/ipad/fast/forms/unfocus-inside-fixed-hittest.html: Added.
        * platform/ipad/fast/text-autosizing: Added.
        * platform/ipad/fast/text-autosizing/programmatic-text-size-adjust-expected.txt: Added.
        * platform/ipad/fast/text-autosizing/programmatic-text-size-adjust.html: Added.
        * platform/ipad/fast/text-autosizing/text-size-adjust-inline-style-expected.html: Added.
        * platform/ipad/fast/text-autosizing/text-size-adjust-inline-style.html: Added.
        * platform/ipad/fast/viewport: Added.
        * platform/ipad/fast/viewport/empty-meta-expected.txt: Added.
        * platform/ipad/fast/viewport/empty-meta.html: Added.
        * platform/ipad/fast/viewport/meta-viewport-ignored-expected.txt: Added.
        * platform/ipad/fast/viewport/meta-viewport-ignored.html: Added.
        * platform/ipad/fast/viewport/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport-expected.txt: Added.
        * platform/ipad/fast/viewport/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport.html: Added.
        * platform/ipad/fast/viewport/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport-expected.txt: Added.
        * platform/ipad/fast/viewport/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html: Added.
        * platform/ipad/fast/viewport/width-is-device-width-expected.txt: Added.
        * platform/ipad/fast/viewport/width-is-device-width.html: Added.
        * platform/ipad/media: Added.
        * platform/ipad/media/controls: Added.
        * platform/ipad/media/controls/close-page-with-picture-in-picture-video-assertion-failure-expected.txt: Added.
        * platform/ipad/media/controls/close-page-with-picture-in-picture-video-assertion-failure.html: Added.
        * platform/ipad/media/controls/resources: Added.
        * platform/ipad/media/controls/resources/picture-in-picture.html: Added.
        * platform/ipad/media/modern-media-controls: Added.
        * platform/ipad/media/modern-media-controls/media-documents: Added.
        * platform/ipad/media/modern-media-controls/media-documents/media-document-audio-ios-sizing-expected.txt: Added.
        * platform/ipad/media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html: Added.
        * platform/ipad/media/modern-media-controls/media-documents/media-document-video-ios-sizing-expected.txt: Added.
        * platform/ipad/media/modern-media-controls/media-documents/media-document-video-ios-sizing.html: Added.
        * platform/ipad/media/modern-media-controls/pip-support: Added.
        * platform/ipad/media/modern-media-controls/pip-support/pip-support-enabled-expected.txt: Added.
        * platform/ipad/media/modern-media-controls/pip-support/pip-support-enabled.html: Added.
        * platform/ipad/media/modern-media-controls/pip-support/pip-support-tap-expected.txt: Added.
        * platform/ipad/media/modern-media-controls/pip-support/pip-support-tap.html: Added.
        * platform/iphone-7: Added.
        * platform/iphone-7/fast: Added.
        * platform/iphone-7/fast/events: Added.
        * platform/iphone-7/fast/events/touch: Added.
        * platform/iphone-7/fast/events/touch/force-press-event-expected.txt: Added.
        * platform/iphone-7/fast/events/touch/force-press-event.html: Added.
        * platform/iphone-7/fast/events/touch/force-press-on-link-expected.txt: Added.
        * platform/iphone-7/fast/events/touch/force-press-on-link.html: Added.
        * platform/iphone-7/fast/events/touch/prevent-default-touchmove-prevents-scrolling-expected.txt: Added.
        * platform/iphone-7/fast/events/touch/prevent-default-touchmove-prevents-scrolling.html: Added.
        * platform/iphone-7/tiled-drawing: Added.
        * platform/iphone-7/tiled-drawing/compositing-layers-deep-color-expected.txt: Added.
        * platform/iphone-7/tiled-drawing/compositing-layers-deep-color.html: Added.
        * platform/mac-wk2/TestExpectations:
        * platform/mac/TestExpectations:
        * tiled-drawing/ios: Removed.

2019-01-18  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC][MarginCollapsing] Collapsing through should not ignore floats.
        https://bugs.webkit.org/show_bug.cgi?id=193564

        Reviewed by Antti Koivisto.

        * fast/block/float/float-in-descendant-formatting-context-expected.txt: Added.
        * fast/block/float/float-in-descendant-formatting-context.html: Added.

2019-01-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Content offset jumps erratically when autoscrolling near scroll view content inset areas
        https://bugs.webkit.org/show_bug.cgi?id=193494
        <rdar://problem/46859627>

        Reviewed by Simon Fraser and Tim Horton.

        * editing/selection/ios/autoscroll-with-top-content-inset-expected.txt: Added.
        * editing/selection/ios/autoscroll-with-top-content-inset.html: Added.

        Add a new test to verify that moving the selection by autoscrolling near the top content inset area does not
        cause the scroll view's content offset to jump.

        * fast/scrolling/ios/scroll-into-view-with-top-content-inset-expected.txt: Added.
        * fast/scrolling/ios/scroll-into-view-with-top-content-inset.html: Added.

        Add a new test to verify that programmatically scrolling an element that's already visible into view does not
        scroll away the scroll view's content inset.

        * resources/ui-helper.js:
        (window.UIHelper.contentOffset):
        (window.UIHelper):

2019-01-17  John Wilander  <wilander@apple.com>

        Add infrastructure to enable/disable ITP Debug Mode through Preferences
        https://bugs.webkit.org/show_bug.cgi?id=193510
        <rdar://problem/47330969>

        Reviewed by Dean Jackson.

        * http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode.html:
            Changed the order of function calls since testRunner.setStatisticsPrevalentResourceForDebugMode()
            now has to be called before testRunner.setStatisticsDebugMode().

2019-01-16  Dean Jackson  <dino@apple.com>

        (iPad) Link tapping is sluggish on many sites
        https://bugs.webkit.org/show_bug.cgi?id=193522
        <rdar://problem/47102987>

        Reviewed by Wenson Hsieh.

        Add a test that checks a double tap will trigger a click
        event on a page that is at initial scale.

        Extra bonus: for some reason adding this test, or making this code
        change, uncovered a couple of bugs in existing tests. The
        viewport-zooms-from-element-to-initial-scale test was completely wrong
        because it was expecting the incorrect result, which was triggered by
        the zoom callback firing early at a forced scale value. The
        viewport-no-width-value-allows-double-tap test was triggering a JS
        error in its UI script. I modernised both of these to use UIHelper instead.

        * fast/events/ios/fast-click-double-tap-sends-click-when-initial-scale-expected.txt: Added.
        * fast/events/ios/fast-click-double-tap-sends-click-when-initial-scale.html: Added.
        * fast/events/ios/viewport-no-width-value-allows-double-tap.html:
        * fast/events/ios/viewport-zooms-from-element-to-initial-scale-expected.txt:
        * fast/events/ios/viewport-zooms-from-element-to-initial-scale.html:
        * resources/ui-helper.js: Add doubleTapAt and zoomByDoubleTapAt helpers. Remove the
        unnecessary "Done" return value from many of the callbacks. Give zoomToScale a return
        value.
        (window.UIHelper.tapAt.return.new.Promise):
        (window.UIHelper.tapAt):
        (window.UIHelper.doubleTapAt.return.new.Promise):
        (window.UIHelper.doubleTapAt):
        (window.UIHelper.zoomByDoubleTappingAt):
        (window.UIHelper.activateAt.return.new.Promise):
        (window.UIHelper.activateAt):
        (window.UIHelper.toggleCapsLock):
        (window.UIHelper.ensurePresentationUpdate.return.new.Promise):
        (window.UIHelper.ensurePresentationUpdate):
        (window.UIHelper.activateAndWaitForInputSessionAt.return.new.Promise.):
        (window.UIHelper.activateFormControl.return.new.Promise.):
        (window.UIHelper.replaceTextAtRange):
        (window.UIHelper.zoomToScale):
        (window.UIHelper.stylusTapAt.return.new.Promise):
        (window.UIHelper.stylusTapAt):

2019-01-17  Per Arne Vollan  <pvollan@apple.com>

        Layout Test js/dfg-int-overflow-in-loop.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=193540

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-01-17  Ross Kirsling  <ross.kirsling@sony.com>

        Get rid of Sputnik tests.
        https://bugs.webkit.org/show_bug.cgi?id=193464

        Rubber stamped by Saam Barati.

        * sputnik/: Removed.
        * platform/gtk/sputnik/: Removed.
        * platform/ios/sputnik/: Removed.
        * platform/mac/sputnik/: Removed.
        * platform/wpe/sputnik/: Removed.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-wk2/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:
        Remove all sputnik/ lines.

2019-01-16  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt: Added.
        * platform/gtk/inspector/canvas/recording-bitmaprenderer-expected.txt:
        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt: Added.

2019-01-16  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Update vertex-buffer-triangle-strip.html to actually use vertex buffer
        https://bugs.webkit.org/show_bug.cgi?id=193473

        Reviewed by Dean Jackson and Myles Maxfield.

        Refactor the vertex shader to use the vertex stage input, rather than buffer resources. 

        * webgpu/vertex-buffer-triangle-strip.html:

2019-01-16  Chris Dumez  <cdumez@apple.com>

        Regression(PSON) View becomes blank after click a cross-site download link
        https://bugs.webkit.org/show_bug.cgi?id=193361
        <rdar://problem/47099573>

        Reviewed by Geoffrey Garen.

        Skip test testing the cross-process DOMWindow API as I broke it with this patch.
        The feature is far from ready and off by default anyway. I will add support back
        in a follow-up.

        * platform/wk2/TestExpectations:

2019-01-16  Zalan Bujtas  <zalan@apple.com>

        [LFC][Out-of-flow] Set used vertical margin values when top/height/bottom are non-auto.
        https://bugs.webkit.org/show_bug.cgi?id=193470

        Reviewed by Antti Koivisto.

        * fast/block/block-only/non-auto-top-bottom-height-with-margins-expected.txt: Added.
        * fast/block/block-only/non-auto-top-bottom-height-with-margins.html: Added.

2019-01-16  Zalan Bujtas  <zalan@apple.com>

        [LFC] Adjust margin box verification.
        https://bugs.webkit.org/show_bug.cgi?id=193482

        Reviewed by Antti Koivisto.

        * fast/block/block-only/non-auto-top-bottom-height-with-auto-margins-expected.txt: Added.
        * fast/block/block-only/non-auto-top-bottom-height-with-auto-margins.html: Added.

2019-01-15  Ryosuke Niwa  <rniwa@webkit.org>

        VisualViewport API should be updated upon opening of keyboard
        https://bugs.webkit.org/show_bug.cgi?id=193475

        Reviewed by Simon Fraser.

        Added a regression test.

        * fast/visual-viewport/ios/resize-event-for-keyboard-expected.txt: Added.
        * fast/visual-viewport/ios/resize-event-for-keyboard.html: Added.

2019-01-15  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r239993, r239995, r239997, and
        r239999.

        Caused assertions under
        ViewGestureController::disconnectFromProcess()

        Reverted changesets:

        "Regression(PSON) View becomes blank after click a cross-site
        download link"
        https://bugs.webkit.org/show_bug.cgi?id=193361
        https://trac.webkit.org/changeset/239993

        "Unreviewed iOS build fix after r239993."
        https://trac.webkit.org/changeset/239995

        "Fix iOS build after r239993"
        https://bugs.webkit.org/show_bug.cgi?id=193361
        https://trac.webkit.org/changeset/239997

        "Unreviewed, revert part of r239997 as it is not needed to fix
        the build."
        https://trac.webkit.org/changeset/239999

2019-01-15  Chris Dumez  <cdumez@apple.com>

        Regression(PSON) View becomes blank after click a cross-site download link
        https://bugs.webkit.org/show_bug.cgi?id=193361
        <rdar://problem/47099573>

        Reviewed by Geoff Garen.

        Skip test testing the cross-process DOMWindow API as I broke it with this patch.
        The feature is far from ready and off by default anyway. I will add support back
        in a follow-up.

        * platform/wk2/TestExpectations:

2019-01-15  Zalan Bujtas  <zalan@apple.com>

        [LFC][Out-of-flow] Ignore bottom when the vertical values are over-constrained
        https://bugs.webkit.org/show_bug.cgi?id=193448

        Reviewed by Antti Koivisto.

        * fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow-expected.txt: Added.
        * fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html: Added.

2019-01-15  Devin Rousso  <drousso@apple.com>

        Unreviewed, test fix after r239976.

        * inspector/model/remote-object-expected.txt:

2019-01-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: provide a way to determine whether a give node has event listeners
        https://bugs.webkit.org/show_bug.cgi?id=193226
        <rdar://problem/46800005>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/run-dom.html: Added.
        * inspector/audit/run-dom-expected.txt: Added.

2019-01-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: provide a way to query for all nodes with a given computed Accessibility role
        https://bugs.webkit.org/show_bug.cgi?id=193228
        <rdar://problem/46787787>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/run-accessibility.html: Added.
        * inspector/audit/run-accessibility-expected.txt: Added.

2019-01-15  Zalan Bujtas  <zalan@apple.com>

        [LFC] Use the containing block's padding box to position out-of-flow elements.
        https://bugs.webkit.org/show_bug.cgi?id=193431

        Reviewed by Antti Koivisto.

        * fast/block/block-only/out-of-flow-with-containing-block-border-padding-expected.txt: Added.
        * fast/block/block-only/out-of-flow-with-containing-block-border-padding.html: Added.

2019-01-15  Guillaume Emont  <guijemont@igalia.com>

        Skip a slow test and a flakey test on arm

        Unreviewed gardening.

        * js/script-tests/stack-overflow-regexp.js: flakey on arm.

2019-01-15  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: create new IDL type for exposing special functionality in test context
        https://bugs.webkit.org/show_bug.cgi?id=193149
        <rdar://problem/46801218>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/resources/audit-utilities.js:
        (TestPage.registerInitializer.InspectorTest.Audit.setupAudit): Added.
        (TestPage.registerInitializer.InspectorTest.Audit.teardownAudit): Added.

        * inspector/audit/run.html: Added.
        * inspector/audit/run-expected.txt: Added.
        * inspector/audit/setup.html: Added.
        * inspector/audit/setup-expected.txt: Added.
        * inspector/audit/teardown.html: Added.
        * inspector/audit/teardown-expected.txt: Added.

        * inspector/canvas/create-context-2d-expected.txt:
        * inspector/canvas/create-context-bitmaprenderer-expected.txt:
        * inspector/canvas/create-context-webgl-expected.txt:
        * inspector/canvas/create-context-webgl2-expected.txt:
        * inspector/canvas/create-context-webmetal-expected.txt:
        * inspector/canvas/recording-2d-expected.txt:
        * inspector/canvas/recording-webgl-expected.txt:
        * inspector/canvas/recording-webgl-snapshots-expected.txt:
        * inspector/model/remote-object-expected.txt:
        * inspector/model/stack-trace-expected.txt:

2019-01-14  Alex Christensen  <achristensen@webkit.org>

        Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
        https://bugs.webkit.org/show_bug.cgi?id=193411
        <rdar://problem/47215929>

        Reviewed by Alexey Proskuryakov.

        * fast/url/user-visible/cyrillic-NFD-expected.txt:
        * fast/url/user-visible/cyrillic-NFD.html:

2019-01-14  John Wilander  <wilander@apple.com>

        Restructure http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html to address flakiness
        https://bugs.webkit.org/show_bug.cgi?id=191211
        <rdar://problem/45818606>

        Unreviewed test gardening.

        This test is flaky on the MacOS WK2 bot. The patch avoids a page navigation and
        redirect which may avoid the code that changed in
        https://trac.webkit.org/changeset/237735/webkit and made the test more flaky.

        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:

2019-01-14  Simon Fraser  <simon.fraser@apple.com>

        Animation and other code is too aggressive about invalidating layer composition
        https://bugs.webkit.org/show_bug.cgi?id=193343

        Reviewed by Antoine Quint.
        
        This test was clobbering the 'box' class on the animating element and therefore making it disappear.

        * legacy-animation-engine/compositing/animation/animation-compositing.html:

2019-01-14  Charles Vazac  <cvazac@akamai.com>

        Import current Resource-Timing WPTs
        https://bugs.webkit.org/show_bug.cgi?id=193302

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * tests-options.json:

2019-01-14  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, test fixes after r239852.

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

2019-01-14  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Map WebGPUBindGroupLayoutBindings from the BindGroupLayoutDescriptor for error checking and later referencing
        https://bugs.webkit.org/show_bug.cgi?id=193405

        Reviewed by Dean Jackson.

        Small fixes that do not alter behavior.

        * webgpu/bind-groups.html:
        * webgpu/pipeline-layouts.html:

2019-01-14  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC] Add basic box-sizing support.
        https://bugs.webkit.org/show_bug.cgi?id=193392

        Reviewed by Antti Koivisto.

        * fast/block/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt: Added.
        * fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html: Added.

2019-01-14  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE gardening. Updating baselines for failures that in
        majority of cases can be tracked down to the test fonts bump in r239436.

        * platform/wpe/animations/lineheight-animation-expected.txt:
        * platform/wpe/animations/simultaneous-start-transform-expected.txt:
        * platform/wpe/animations/width-using-ems-expected.txt:
        * platform/wpe/css1/font_properties/font-expected.txt:
        * platform/wpe/css3/unicode-bidi-isolate-basic-expected.txt:
        * platform/wpe/fast/css/line-height-determined-by-primary-font-expected.txt:
        * platform/wpe/fast/css/rtl-ordering-expected.txt:
        * platform/wpe/fast/css/text-overflow-ellipsis-bidi-expected.txt:
        * platform/wpe/fast/css/text-overflow-ellipsis-expected.txt:
        * platform/wpe/fast/css/text-overflow-ellipsis-strict-expected.txt:
        * platform/wpe/fast/css/word-space-extra-expected.txt:
        * platform/wpe/fast/dom/34176-expected.txt:
        * platform/wpe/fast/dom/52776-expected.txt:
        * platform/wpe/fast/inline/inline-box-background-expected.txt:
        * platform/wpe/fast/inline/inline-box-background-long-image-expected.txt:
        * platform/wpe/fast/inline/inline-box-background-repeat-x-expected.txt:
        * platform/wpe/fast/inline/inline-box-background-repeat-y-expected.txt:
        * platform/wpe/fast/inline/inline-content-with-float-and-margin-expected.txt: Added.
        * platform/wpe/fast/inline/simple-inline-inflow-positioned-expected.txt: Added.
        * platform/wpe/fast/inline/simple-inline-with-out-of-flow-descendant-expected.txt: Added.
        * platform/wpe/fast/inline/simple-inline-with-out-of-flow-descendant2-expected.txt: Added.
        * platform/wpe/svg/W3C-I18N/text-anchor-dirLTR-anchorEnd-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirLTR-anchorStart-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirNone-anchorEnd-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirNone-anchorMiddle-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirNone-anchorStart-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirRTL-anchorEnd-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-dirRTL-anchorStart-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart-expected.txt:
        * platform/wpe/svg/W3C-I18N/text-anchor-no-markup-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
        * platform/wpe/svg/W3C-SVG-1.1/text-tselect-02-f-expected.txt:
        * platform/wpe/svg/custom/glyph-selection-bidi-mirror-expected.txt:
        * platform/wpe/svg/custom/svg-fonts-fallback-expected.txt:
        * platform/wpe/svg/hixie/perf/007-expected.txt:
        * platform/wpe/svg/text/bidi-embedded-direction-expected.txt:
        * platform/wpe/svg/text/bidi-reorder-value-lists-expected.txt: Added.
        * platform/wpe/svg/text/bidi-text-anchor-direction-expected.txt:
        * platform/wpe/svg/text/text-tselect-02-f-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_layers-opacity-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_position-table-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_simple-table-cell-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_simple-table-column-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_simple-table-column-group-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_simple-table-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_simple-table-row-expected.txt:
        * platform/wpe/tables/mozilla/marvin/backgr_simple-table-row-group-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_border-table-cell-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_border-table-column-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_border-table-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_border-table-quirks-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_border-table-row-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_border-table-row-group-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_layers-hide-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_layers-show-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_position-table-cell-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_position-table-column-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_position-table-column-group-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_position-table-row-expected.txt:
        * platform/wpe/tables/mozilla_expected_failures/marvin/backgr_position-table-row-group-expected.txt:

2019-01-14  Karl Leplat  <karl.leplat_ext@softathome.com>

        [GTK][WPE] Graphic issue with invalidations on composited layers with subpixel positions
        https://bugs.webkit.org/show_bug.cgi?id=193239

        Reviewed by Žan Doberšek.

        * compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions.html: Added.
        * platform/gtk/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.png: Added.
        * platform/gtk/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.txt: Added.
        * platform/ios/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.png: Added.
        * platform/ios/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.txt: Added.
        * platform/mac/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.png: Added.
        * platform/mac/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.txt: Added.
        * platform/wpe/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.png: Added.
        * platform/wpe/compositing/repaint/invalidations-on-composited-layers-with-subpixel-positions-expected.txt: Added.

2019-01-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        [FreeType] Support emoji modifiers
        https://bugs.webkit.org/show_bug.cgi?id=177040

        Reviewed by Myles C. Maxfield.

        Mark several emoji tests as passing now.

        * platform/gtk/TestExpectations:

2019-01-13  Antti Koivisto  <antti@apple.com>

        Release assert with <img usemap> in shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=193378

        Reviewed by Ryosuke Niwa.

        * fast/shadow-dom/image-map-tree-scope.html:

2019-01-12  Timothy Hatcher  <timothy@apple.com>

        Have prefers-color-scheme: light always match on macOS versions before Mojave.
        https://bugs.webkit.org/show_bug.cgi?id=191655
        rdar://problem/46074680

        Reviewed by Megan Gardner.

        * css-dark-mode/older-systems/prefers-color-scheme-expected.txt: Added.
        * css-dark-mode/older-systems/prefers-color-scheme.html: Added.
        * css-dark-mode/older-systems/supported-color-schemes-css-expected.txt: Added.
        * css-dark-mode/older-systems/supported-color-schemes-css.html: Added.
        * css-dark-mode/older-systems/supported-color-schemes-expected.txt: Added.
        * css-dark-mode/older-systems/supported-color-schemes.html: Added.
        * platform/mac/TestExpectations:

2019-01-11  John Wilander  <wilander@apple.com>

        Compile out Web API Statistics Collection
        https://bugs.webkit.org/show_bug.cgi?id=193370
        <rdar://problem/45388584>

        Reviewed by Brent Fulgham.

        * platform/ios-wk2/TestExpectations:
            http/tests/webAPIStatistics skipped.
        * platform/mac-wk2/TestExpectations:
            http/tests/webAPIStatistics skipped.

2019-01-11  Antti Koivisto  <antti@apple.com>

        Release assert when removing element with a map element in the shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=193351
        <rdar://problem/47208807>

        Reviewed by Ryosuke Niwa.

        * fast/shadow-dom/image-map-tree-scope-expected.txt: Added.
        * fast/shadow-dom/image-map-tree-scope.html: Added.

2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>

        Enable DFG on ARM/Linux again
        https://bugs.webkit.org/show_bug.cgi?id=192496

        Reviewed by Yusuke Suzuki.

        After changing the bytecode format DFG was disabled on all 32-bit
        architectures. Enable DFG now again on ARM/Linux. Disable tests that
        run out of executable memory with LLInt disabled.

        * js/script-tests/dfg-float32array.js:
        * js/script-tests/dfg-float64array.js:
        * js/script-tests/dfg-int16array.js:
        * js/script-tests/dfg-int32array-overflow-values.js:
        * js/script-tests/dfg-int32array.js:
        * js/script-tests/dfg-int8array.js:
        * js/script-tests/dfg-uint16array.js:
        * js/script-tests/dfg-uint32array.js:
        * js/script-tests/dfg-uint8array.js:

2019-01-11  Wenson Hsieh  <wenson_hsieh@apple.com>

        Introduce IDL files for runtime-enabled UndoManager and UndoItem JavaScript API
        https://bugs.webkit.org/show_bug.cgi?id=193109
        <rdar://problem/44807048>

        Reviewed by Ryosuke Niwa.

        Add UndoManager tests to exercise new bindings, and verify that the JS wrapper for Document's UndoManager
        survives garbage collection.

        * TestExpectations:
        * editing/undo-manager/undo-manager-interfaces-expected.txt: Added.
        * editing/undo-manager/undo-manager-interfaces.html: Added.
        * editing/undo-manager/undo-manager-keeps-wrapper-alive-expected.txt: Added.
        * editing/undo-manager/undo-manager-keeps-wrapper-alive.html: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2019-01-11  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC][MarginCollapsing] Adjust vertical position when box margin collapses through.
        https://bugs.webkit.org/show_bug.cgi?id=193346

        Reviewed by Antti Koivisto.

        * fast/block/block-only/collapsed-through-with-parent-expected.txt: Added.
        * fast/block/block-only/collapsed-through-with-parent.html: Added.

2019-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK gardening. Rebaseline several tests after r239822.

        * platform/gtk/css2.1/t1202-counter-04-b-expected.png:
        * platform/gtk/css2.1/t1202-counter-04-b-expected.txt:
        * platform/gtk/css2.1/t1202-counters-04-b-expected.png:
        * platform/gtk/css2.1/t1202-counters-04-b-expected.txt:
        * platform/gtk/fast/text/combining-enclosing-keycap-expected.txt:
        * platform/gtk/fast/text/fallback-traits-fixup-expected.png:
        * platform/gtk/fast/text/fallback-traits-fixup-expected.txt:

2019-01-10  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: allow audits to be enabled/disabled
        https://bugs.webkit.org/show_bug.cgi?id=192210
        <rdar://problem/46423583>

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/objectStore/clear.html: Added.
        * inspector/unit-tests/objectStore/clear-expected.txt: Added.

2019-01-10  Justin Fan  <justin_fan@apple.com>

        [WebGPU] WebGPUBindGroup and device::createBindGroup prototype
        https://bugs.webkit.org/show_bug.cgi?id=193341

        Reviewed by Myles C. Maxfield.

        Small test that creates a WebGPUBindGroup.

        * webgpu/bind-groups-expected.txt: Added.
        * webgpu/bind-groups.html: Added.

2019-01-10  Eric Carlson  <eric.carlson@apple.com>

        Define page media state flags for display capture.
        https://bugs.webkit.org/show_bug.cgi?id=193230
        <rdar://problem/47095142>

        Reviewed by Youenn Fablet.

        * fast/mediastream/get-display-media-muted-expected.txt: Added.
        * fast/mediastream/get-display-media-muted.html: Added.

2019-01-10  Commit Queue  <commit-queue@webkit.org>

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

        Broke tests on armv7/linux bots (Requested by guijemont on
        #webkit).

        Reverted changeset:

        "Enable DFG on ARM/Linux again"
        https://bugs.webkit.org/show_bug.cgi?id=192496
        https://trac.webkit.org/changeset/239825

2019-01-10  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Fix vertex-buffer-triangle-strip test and small update to GPURenderPipeline
        https://bugs.webkit.org/show_bug.cgi?id=193289

        Reviewed by Dean Jackson.

        Fix broken test after pipeline layouts were added.

        * webgpu/js/webgpu-functions.js: 
        (createBasicPipeline): Ensure pipeline layout is actually optional.
        * webgpu/vertex-buffer-triangle-strip.html: 

2019-01-10  John Wilander  <wilander@apple.com>

        Override the session configuration for cookieAcceptPolicy
        https://bugs.webkit.org/show_bug.cgi?id=190925
        <rdar://problem/45497382>

        Reviewed by Alexey Proskuryakov and Alex Christensen.

        * TestExpectations:
            Skipped since this cookie policy is only supported on Cocoa platforms.
        * http/tests/cookies/only-accept-first-party-cookies-expected.txt: Added.
        * http/tests/cookies/only-accept-first-party-cookies.html: Added.
        * http/tests/cookies/resources/reset-cookies.html: Added.
            To support reset of third-party cookies in an iframe.
        * http/tests/cookies/resources/set-cookie-and-redirect-back.php: Added.
            A simple bounce to set a cookie.
        * platform/ios/TestExpectations:
            Skipped for now. Will be fixed in <rdar://problem/47165939>.
        * platform/mac/TestExpectations:
            Skipped for now. Will be fixed in <rdar://problem/47165939>.

2019-01-10  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r239824.

        * platform/gtk/TestExpectations:

2019-01-10  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC][MarginCollapsing] Take collapsed through siblings into account when computing vertical position
        https://bugs.webkit.org/show_bug.cgi?id=193310

        Reviewed by Antti Koivisto.

        * fast/block/margin-collapse/collapsed-through-siblings-expected.txt: Added.
        * fast/block/margin-collapse/collapsed-through-siblings.html: Added.

2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>

        Enable DFG on ARM/Linux again
        https://bugs.webkit.org/show_bug.cgi?id=192496

        Reviewed by Yusuke Suzuki.

        After changing the bytecode format DFG was disabled on all 32-bit
        architectures. Enable DFG now again on ARM/Linux. Disable tests that
        run out of executable memory with LLInt disabled.

        * js/script-tests/dfg-float32array.js:
        * js/script-tests/dfg-float64array.js:
        * js/script-tests/dfg-int16array.js:
        * js/script-tests/dfg-int32array-overflow-values.js:
        * js/script-tests/dfg-int32array.js:
        * js/script-tests/dfg-int8array.js:
        * js/script-tests/dfg-uint16array.js:
        * js/script-tests/dfg-uint32array.js:
        * js/script-tests/dfg-uint8array.js:

2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Rebaseline two css tests.

        I think I missed these in previous rebaselines.

        * platform/gtk/css1/font_properties/font-expected.png:
        * platform/gtk/css1/font_properties/font-expected.txt:
        * platform/gtk/css2.1/t1508-c527-font-06-b-expected.png:
        * platform/gtk/css2.1/t1508-c527-font-06-b-expected.txt:

2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [FreeType] Color emoji not properly supported
        https://bugs.webkit.org/show_bug.cgi?id=191976

        Reviewed by Michael Catanzaro.

        Add new test to ensure we fallback to noto color emoji for emojis.

        * platform/gtk/fonts/font-emoji-system-fallback-expected.html: Added.
        * platform/gtk/fonts/font-emoji-system-fallback.html: Added.

2019-01-10  cathie chen  <cathiechen@igalia.com>

        Import css-lists testcases from WPT.
        https://bugs.webkit.org/show_bug.cgi?id=193273

        Reviewed by Daniel Bates.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/ios-simulator/imported/w3c/web-platform-tests/css/css-lists/list-and-writing-mode-001-expected.txt: Added.

2019-01-09  Zalan Bujtas  <zalan@apple.com>

        [Datalist] Crash when input with datalist is dynamically added.
        https://bugs.webkit.org/show_bug.cgi?id=193012
        <rdar://problem/45923457>

        Reviewed by Brent Fulgham.

        * fast/forms/datalist/datalist-crash-when-dynamic-expected.txt: Added.
        * fast/forms/datalist/datalist-crash-when-dynamic.html: Added.

2019-01-09  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Fix vertex-buffer-triangle-strip test and small update to GPURenderPipeline
        https://bugs.webkit.org/show_bug.cgi?id=193289

        Reviewed by Dean Jackson.

        Fix broken test after pipeline layouts were added.

        * webgpu/js/webgpu-functions.js: 
        (createBasicPipeline): Ensure pipeline layout is actually optional.
        * webgpu/vertex-buffer-triangle-strip.html: 

2019-01-09  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] editing/selection/ios/show-selection-in-empty-overflow-hidden-document.html often times out in internal automation
        https://bugs.webkit.org/show_bug.cgi?id=193238

        Reviewed by Megan Gardner.

        Fix a flaky layout test that currently attempts to run the main logic of the test twice (once after the child
        frame finishes loading, and another time after the main document finishes loading). This leads to a race
        condition in the test where the incorrect text field is focused, causing the caret rect to deviate from the
        expected value.

        * editing/selection/ios/show-selection-in-empty-overflow-hidden-document.html:

2019-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed, rolling out r239565.

        Rebaseline was not correct, changes were due to
        webkit.org/b/193276

        Reverted changeset:

        "Unreviewed GTK+ gardening. Rebaseline several tests after
        r239156."
        https://trac.webkit.org/changeset/239565

2019-01-08  Joseph Pecoraro  <pecoraro@apple.com>

        ASSERT when paused in debugger and console evaluation causes exception
        https://bugs.webkit.org/show_bug.cgi?id=193246

        Reviewed by Mark Lam.

        * inspector/debugger/evaluateOnCallFrame-CommandLineAPI.html:
        Correct a typo.

        * inspector/debugger/evaluateOnCallFrame-exception-expected.txt: Added.
        * inspector/debugger/evaluateOnCallFrame-exception.html: Added.
        New test that would have asserted before.

2019-01-08  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Support U2F HID Authenticators on macOS
        https://bugs.webkit.org/show_bug.cgi?id=191535
        <rdar://problem/47102027>

        Reviewed by Brent Fulgham.

        Besiding adding tests for U2F authenticators, it also changes payloadBase64 from
        a string to a vector of strings. New tests are skipped for iOS.

        * http/wpt/webauthn/ctap-hid-failure.https.html:
        * http/wpt/webauthn/ctap-hid-success.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-u2f.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-u2f.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-u2f.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-success-u2f.https.html: Copied from LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https.html.
        * http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-u2f.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-u2f.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-success-u2f.https.html: Added.
        * http/wpt/webauthn/resources/util.js:
        * platform/ios-wk2/TestExpectations:

2019-01-08  Youenn Fablet  <youenn@apple.com>

        service worker fetch handler results in bad referrer
        https://bugs.webkit.org/show_bug.cgi?id=188248
        <rdar://problem/47050478>

        Reviewed by Alex Christensen.

        * http/tests/security/referrer-policy-redirect-link-downgrade-expected.txt: Added.
        * http/tests/security/referrer-policy-redirect-link-downgrade.html: Added.
        * http/tests/security/resources/referrer-policy-redirect-link-downgrade.html: Added.
        * http/tests/security/resources/referrer-policy-redirect-link.html:
        * platform/ios-wk2/TestExpectations: Skip referrer-policy-redirect-link-downgrade.html
        as it is very similar to already skipped referrer-policy-redirect-link.html.

2019-01-08  Youenn Fablet  <youenn@apple.com>

        IDB storage of Crypto keys does not work in private browsing mode
        https://bugs.webkit.org/show_bug.cgi?id=193219

        Reviewed by Brady Eidson.

        Activate private browsing mode for these two tests.

        * crypto/subtle/rsa-indexeddb-non-exportable-private.html:
        * crypto/subtle/rsa-indexeddb-private.html:

2019-01-08  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Update createRenderPipeline for WebGPUPipelineLayout
        https://bugs.webkit.org/show_bug.cgi?id=193247

        Reviewed by Dean Jackson.

        Update render-pipelines.html to WPT form and to accomodate WebGPUPipelineLayouts.

        * webgpu/js/webgpu-functions.js:
        (createBasicPipeline): Added option to include a WebGPUPipelineLayout.
        * webgpu/render-pipelines-expected.txt:
        * webgpu/render-pipelines.html:

2019-01-08  Chris Dumez  <cdumez@apple.com>

        Prevent cross-site top-level navigations from third-party iframes
        https://bugs.webkit.org/show_bug.cgi?id=193076
        <rdar://problem/36074736>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/security/allow-top-level-navigations-by-third-party-iframes-to-same-origin-expected.txt: Added.
        * http/tests/security/allow-top-level-navigations-by-third-party-iframes-to-same-origin.html: Added.
        * http/tests/security/allow-top-level-navigations-by-third-party-iframes-with-previous-user-activation-expected.txt: Added.
        * http/tests/security/allow-top-level-navigations-by-third-party-iframes-with-previous-user-activation.html: Added.
        * http/tests/security/allow-top-level-navigations-by-third-party-iframes-with-user-activation-expected.txt: Added.
        * http/tests/security/allow-top-level-navigations-by-third-party-iframes-with-user-activation.html: Added.
        * http/tests/security/block-top-level-navigations-by-third-party-iframes-expected.txt: Added.
        * http/tests/security/block-top-level-navigations-by-third-party-iframes.html: Added.
        * http/tests/security/resources/navigate-top-level-frame-to-failure-page.html: Added.
        * http/tests/security/resources/navigate-top-level-frame-to-success-page-same-origin.html: Added.
        * http/tests/security/resources/navigate-top-level-frame-to-success-page-with-previous-user-gesture.html: Added.
        * http/tests/security/resources/navigate-top-level-frame-to-success-page-with-user-gesture.html: Added.
        * http/tests/security/resources/should-have-loaded.html: Added.
        * http/tests/security/resources/should-not-have-loaded.html: Added.

2019-01-08  Truitt Savell  <tsavell@apple.com>

        Revert expectation changes to pointerevents in iOS after https://trac.webkit.org/changeset/239704/webkit
        https://bugs.webkit.org/show_bug.cgi?id=193214

        Unreviewed Test Gardening

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

2019-01-07  Youenn Fablet  <youenn@apple.com>

        LayoutTests/http/wpt/fetch/csp-reports-bypass-csp-checks.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=193178

        Reviewed by Chris Dumez.

        Test was flaky as the ping load CSP report request might be sent after the
        fetch that grabs the report.
        To overcome that issue, fetch the report several times until receiving a report.

        * http/wpt/fetch/csp-reports-bypass-csp-checks.html:
        * http/wpt/fetch/resources/store-csp-report.py:
        (main):

2019-01-07  Dean Jackson  <dino@apple.com>

        Turn on Pointer Events by default for iOS
        https://bugs.webkit.org/show_bug.cgi?id=193214
        <rdar://problem/46974878>

        Reviewed by Wenson Hsieh.

        Skip the pointer events tests everywhere but iOS.

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

2019-01-07  Devin Rousso  <drousso@apple.com>

        Web Inspector: extend XHR breakpoints to work with fetch
        https://bugs.webkit.org/show_bug.cgi?id=185843
        <rdar://problem/40431027>

        Reviewed by Matt Baker.

        * inspector/dom-debugger/url-breakpoints.html: Copied from LayoutTests/inspector/dom-debugger/xhr-breakpoints.html.
        * inspector/dom-debugger/url-breakpoints-expected.txt: Copied from LayoutTests/inspector/dom-debugger/xhr-breakpoints-expected.txt.

        * inspector/dom-debugger/xhr-breakpoints.html: Deleted.
        * inspector/dom-debugger/xhr-breakpoints-expected.txt: Deleted.

        * inspector/dom-debugger/resources/dataFetch.json: Added.

2019-01-07  Devin Rousso  <drousso@apple.com>

        Web Inspector: Network: show secure connection details per-request
        https://bugs.webkit.org/show_bug.cgi?id=191539
        <rdar://problem/45979891>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/resource-security-connection-expected.txt: Added.
        * http/tests/inspector/network/resource-security-connection.html: Added.

        * http/tests/inspector/network/resource-security-certificate-expected.txt: Added.
        * http/tests/inspector/network/resource-security-certificate.html: Added.
        * http/tests/inspector/network/resource-response-security-expected.txt: Deleted.
        * http/tests/inspector/network/resource-response-security.html: Deleted.

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

2019-01-07  Truitt Savell  <tsavell@apple.com>

        Update test expectations for platform/mac/media/audio-session-category-video-paused.html
        https://bugs.webkit.org/show_bug.cgi?id=189680

        Unreviewed test gardening.

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

2019-01-07  Eric Carlson  <eric.carlson@apple.com>

        Deactivate audio session whenever possible
        https://bugs.webkit.org/show_bug.cgi?id=193188
        <rdar://problem/42678977>

        Reviewed by Jer Noble.

        * TestExpectations: Skip the new test.
        * media/deactivate-audio-session-expected.txt: Added.
        * media/deactivate-audio-session.html: Added.
        * platform/ios/TestExpectations: Run the new test.
        * platform/mac-wk2/TestExpectations: Ditto.

2019-01-07  Youenn Fablet  <youenn@apple.com>

        Resync WPT fetch tests to 834eac4
        https://bugs.webkit.org/show_bug.cgi?id=193125

        Reviewed by Chris Dumez.

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/imported/w3c/web-platform-tests/fetch/content-type/response.window-expected.txt: Added.
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/abort/serviceworker-intercepted.https-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-init-stream.any-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-reset-attributes.https-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/content-type/script.window-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/http-cache/304-update-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/http-cache/cc-request-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/http-cache/heuristic-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/http-cache/invalidate-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/http-cache/status-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub-expected.txt: Added.
        * platform/mac/TestExpectations:
        * tests-options.json:

2019-01-07  Wenson Hsieh  <wenson_hsieh@apple.com>

        Native caret shows up alongside the page's caret when requesting desktop site on jsfiddle.net
        https://bugs.webkit.org/show_bug.cgi?id=193180
        <rdar://problem/45971041>

        Reviewed by Tim Horton.

        * editing/selection/ios/hide-selection-in-empty-overflow-hidden-container-expected.txt: Added.
        * editing/selection/ios/hide-selection-in-empty-overflow-hidden-container.html: Added.

        Add a layout test to verify that focusing a hidden editable element underneath an empty container with
        `overflow: hidden` doesn't cause platform selection UI to appear.

        * editing/selection/ios/show-selection-in-empty-overflow-hidden-document-expected.txt: Added.
        * editing/selection/ios/show-selection-in-empty-overflow-hidden-document.html: Added.

        Add a layout test to verify that native selection UI shows up when the document element is made empty with
        `overflow: hidden`, but the focused elements are still visible.

2019-01-07  Truitt Savell  <tsavell@apple.com>

        Mark compositing/masks/compositing-clip-path-change-no-repaint.html flakey for Mojave WK1
        https://bugs.webkit.org/show_bug.cgi?id=189753

        Unreviewed Test Gardening

        * platform/mac-wk1/TestExpectations:

2019-01-07  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE][GTK] Skip css-painting-api tests

        Unreviewed gardening. CSS_PAINTING_API is disabled by default.
        Also remove a few tests that were individually marked as failing
        for css-typedom since we already skipped the whole directory.
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

2019-01-07  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE][GTK] Skip css-typedom tests

        Unreviewed gardening. CSS_TYPED_OM is disabled by default.
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

2019-01-06  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Import U2F command/response converters from Chromium
        https://bugs.webkit.org/show_bug.cgi?id=193150
        <rdar://problem/47054028>

        Reviewed by Brent Fulgham.

        Fixes Bug 183534:
        7) Change little endian bytes (ARM and x86 default) to big endian as requested by the spec.

        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
        * http/wpt/webauthn/resources/util.js:

2019-01-05  Zalan Bujtas  <zalan@apple.com>

        Incorrect clipping across compositing boundary.
        https://bugs.webkit.org/show_bug.cgi?id=193172
        <rdar://problem/44693008>

        Reviewed by Simon Fraser.

        * compositing/clipping/cached-cliprect-with-compositing-boundary-expected.html: Added.
        * compositing/clipping/cached-cliprect-with-compositing-boundary.html: Added.

2019-01-05  Commit Queue  <commit-queue@webkit.org>

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

        This change makes the test even more flaky (Requested by fredw
        on #webkit).

        Reverted changeset:

        "Flaky Test: http/wpt/css/css-animations/start-
        animation-001.html"
        https://bugs.webkit.org/show_bug.cgi?id=190903
        https://trac.webkit.org/changeset/239607

2019-01-04  Daniel Bates  <dabates@apple.com>

        REGRESSION (r238522): Erratic scrolling on Google flights search result page and vrbo.com
        https://bugs.webkit.org/show_bug.cgi?id=192996
        <rdar://problem/46573552>

        Reviewed by Simon Fraser.

        Add a test to ensure that we do not scroll the page when we lay out an unfocused text field.

        * fast/scrolling/page-should-not-scroll-on-unfocused-text-field-layout-expected.txt: Added.
        * fast/scrolling/page-should-not-scroll-on-unfocused-text-field-layout.html: Added.

2019-01-04  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: disable breakpoints when running Audit
        https://bugs.webkit.org/show_bug.cgi?id=193158
        <rdar://problem/47057083>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/basic.html:
        * inspector/audit/basic-expected.txt:

        * inspector/audit/resources/audit-utilities.js:
        (TestPage.registerInitializer.InspectorTest.Audit.addTest):

2019-01-04  Youenn Fablet  <youenn@apple.com>

        [Fetch API] Implement abortable fetch
        https://bugs.webkit.org/show_bug.cgi?id=174980
        <rdar://problem/46861402>

        Reviewed by Chris Dumez.

        * TestExpectations: Enable abort tests.

2019-01-04  Brent Fulgham  <bfulgham@apple.com>

        Parsed protocol of javascript URLs with embedded newlines and carriage returns do not match parsed protocol in Chrome and Firefox
        https://bugs.webkit.org/show_bug.cgi?id=193155
        <rdar://problem/40230982>

        Reviewed by Chris Dumez.

        * fast/loader/comment-only-javascript-url-expected.txt: Added.
        * fast/loader/comment-only-javascript-url.html: Added.

2019-01-04  Jer Noble  <jer.noble@apple.com>

        Web Content process main thread blocked beneath ImageDecoderAVFObjC::readSamples for many seconds on imgur.com
        https://bugs.webkit.org/show_bug.cgi?id=191806
        <rdar://problem/46151477>

        Reviewed by Dean Jackson.

        * http/tests/images/mp4-partial-load-expected.txt: Added.
        * http/tests/images/mp4-partial-load.html: Added.
        * platform/win/http/tests/mp4-partial-load-expected.txt: Added.

2019-01-04  Youenn Fablet  <youenn@apple.com>

        CSP violation reports should bypass CSP checks
        https://bugs.webkit.org/show_bug.cgi?id=192857
        <rdar://problem/46887236>

        Reviewed by Chris Dumez.

        * http/wpt/fetch/csp-reports-bypass-csp-checks-expected.txt: Added.
        * http/wpt/fetch/csp-reports-bypass-csp-checks.html: Added.
        * http/wpt/fetch/csp-reports-bypass-csp-checks.html.headers: Added.
        * http/wpt/fetch/resources/store-csp-report.py: Added.
        (main):

2019-01-04  Chris Fleizach  <cfleizach@apple.com>

        AX: String check: "Rule" does not reflect the meaning of the <hr> html tag
        https://bugs.webkit.org/show_bug.cgi?id=193041
        <rdar://problem/46954090>

        Reviewed by Zalan Bujtas.

        * accessibility/mac/hr-element-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:
        * platform/mac-wk2/accessibility/roles-exposed-expected.txt:

2019-01-04  Frederic Wang  <fwang@igalia.com>

        Flaky Test: http/wpt/css/css-animations/start-animation-001.html
        https://bugs.webkit.org/show_bug.cgi?id=190903

        This patch modifies start-animation-001.html to rely on the square positions returned by the
        Web Process in order to know when they are supposed to be rendered behind the covering rect.
        This should make it more robust while still testing the original bug 186129.

        Reviewed by Antonio Gomes.

        * http/wpt/css/css-animations/start-animation-001.html:

2019-01-03  Zalan Bujtas  <zalan@apple.com>

        REGRESSION: -webkit-appearance test case crashes
        https://bugs.webkit.org/show_bug.cgi?id=189302
        <rdar://problem/44143049>

        Reviewed by Wenson Hsieh.

        * fast/forms/webkit-appearance-searchfield-cancel-button-crash-expected.txt: Added.
        * fast/forms/webkit-appearance-searchfield-cancel-button-crash.html: Added.

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

        Potential infinite recursion in isFrameFamiliarWith(Frame&, Frame&)
        https://bugs.webkit.org/show_bug.cgi?id=192997
        <rdar://problem/46217271>

        Reviewed by Antti Koivisto.

        Add layout test coverage.

        * fast/dom/Window/resources/window-open-opener-cycle2.html: Added.
        * fast/dom/Window/resources/window-open-opener-cycle3.html: Added.
        * fast/dom/Window/resources/window-opens-self.html: Added.
        * fast/dom/Window/window-open-opener-cycle-expected.txt: Added.
        * fast/dom/Window/window-open-opener-cycle.html: Added.
        * fast/dom/Window/window-open-self-as-opener-expected.txt: Added.
        * fast/dom/Window/window-open-self-as-opener.html: Added.

2019-01-03  Devin Rousso  <drousso@apple.com>

        Web Inspector: conic-gradient color picker doesn't accurately show color when saturation value is not 100%
        https://bugs.webkit.org/show_bug.cgi?id=192729
        <rdar://problem/46746815>

        Reviewed by Joseph Pecoraro.

        * inspector/model/color.html:
        * inspector/model/color-expected.txt:

2019-01-03  Brent Fulgham  <bfulgham@apple.com>

        Remove logic handling DNT header during redirects
        https://bugs.webkit.org/show_bug.cgi?id=193082
        <rdar://problem/45555965>

        Reviewed by Chris Dumez.

        Revise test case to reflect fact that we no longer include the DNT
        header in redirects.

        * http/wpt/fetch/dnt-header-after-redirection-expected.txt:
        * http/wpt/fetch/dnt-header-after-redirection.html:

2019-01-02  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r239306): Don't disable font smoothing in transparent layers on macOS Mojave and later
        https://bugs.webkit.org/show_bug.cgi?id=193095
        <rdar://problem/47014944>

        Reviewed by Zalan Bujtas.
        
        A ref test that compares the rendering of layer and non-layer text with smoothing and antialiasing.

        * compositing/contents-format/subpixel-antialiased-text-expected.html: Added.
        * compositing/contents-format/subpixel-antialiased-text.html: Added.
        * platform/mac/TestExpectations:

2019-01-03  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] REGRESSION (r239441): Tab cycling to offscreen <select> may not scroll it into view
        https://bugs.webkit.org/show_bug.cgi?id=193084
        <rdar://problem/47006882>

        Reviewed by Simon Fraser.

        Add a layout test to verify that focusing a select element by tapping outside of it scrolls to reveal the
        focused select element.

        * fast/forms/ios/scroll-to-reveal-focused-select-expected.txt: Added.
        * fast/forms/ios/scroll-to-reveal-focused-select.html: Added.

2019-01-02  Devin Rousso  <webkit@devinrousso.com>

        Web Inspector: Implement `queryObjects` Command Line API
        https://bugs.webkit.org/show_bug.cgi?id=176766
        <rdar://problem/34890689>

        Reviewed by Joseph Pecoraro.

        * inspector/console/queryObjects-expected.html: Added.
        * inspector/console/queryObjects.html: Added.

        * http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt:

2019-01-02  Charles Vazac  <cvazac@gmail.com>

        Fix resourcetimingbufferfull bubbles attribute
        https://bugs.webkit.org/show_bug.cgi?id=193087

        Reviewed by Chris Dumez.

        * http/wpt/resource-timing/rt-performance-extensions.js:
        (promise_test):

2019-01-02  Simon Fraser  <simon.fraser@apple.com>

        Support css-color-4 rgb functions
        https://bugs.webkit.org/show_bug.cgi?id=192321

        Reviewed by Zalan Bujtas.

        * TestExpectations: Unskip most of the WPT css-color rgb tests. Skip old imported WPT canvas tests.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-1-expected.txt: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-1.html: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-2-expected.txt: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-2.html: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-5-expected.txt: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-5.html: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-7-expected.txt: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-7.html: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-1-expected.txt: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-1.html: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-2-expected.txt: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-2.html: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-4-expected.txt: Removed.
        * canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-4.html: Removed.
        * css3/calc/color-rgb-expected.txt:
        * fast/canvas/gradient-addColorStop-with-invalid-color-expected.txt:
        * fast/canvas/gradient-addColorStop-with-invalid-color.html: Remove a test that is no longer invalid.
        * fast/css/rgb-float.html: Removed. This test is no longer value, since rgb() accepts floating point values.
        * platform/gtk/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/gtk/fast/css/rgb-float-expected.png: Removed.
        * platform/gtk/fast/css/rgb-float-expected.txt: Removed.
        * platform/gtk/svg/hixie/perf/007-expected.txt:
        * platform/ios/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/ios/fast/css/rgb-float-expected.txt: Removed.
        * platform/mac/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/mac/fast/css/rgb-float-expected.png: Removed.
        * platform/mac/fast/css/rgb-float-expected.txt: Removed.
        * platform/mac/svg/hixie/perf/007-expected.txt:
        * platform/win-future/svg/hixie/perf/007-expected.txt:
        * platform/win/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/win/svg/hixie/perf/007-expected.txt:
        * platform/wincairo/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/wincairo/fast/css/rgb-float-expected.txt: Removed.
        * platform/wpe/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/wpe/fast/css/rgb-float-expected.txt: Removed.
        * platform/wpe/svg/hixie/perf/007-expected.txt:
        * svg/hixie/perf/007-expected.txt:

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

        REGRESSION (r239441): [iOS] Selection UI sometimes doesn't change after tapping "select all" in the callout bar
        https://bugs.webkit.org/show_bug.cgi?id=193070
        <rdar://problem/46921508>

        Reviewed by Tim Horton.

        Add a test to ensure that selection UI is shown after tapping on a focused element and then changing the
        selection programmatically.

        * editing/selection/ios/change-selection-after-tapping-focused-element-expected.txt: Added.
        * editing/selection/ios/change-selection-after-tapping-focused-element.html: Added.

2019-01-02  Simon Fraser  <simon.fraser@apple.com>

        Handle calc() expressions in gradient color stops
        https://bugs.webkit.org/show_bug.cgi?id=193066
        rdar://problem/46961985

        Reviewed by Sam Weinig.

        * fast/gradients/conic-calc-stop-position-expected.html: Added.
        * fast/gradients/conic-calc-stop-position.html: Added.

2018-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Support PHP 7.3 in Debian.

        * http/conf/debian-httpd-2.4-php7.3.conf: Added.

2018-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Rebaseline several tests after r239156.

        * platform/gtk/fast/frames/onlyCommentInIFrame-expected.txt:
        * platform/gtk/fast/invalid/junk-data-expected.txt:
        * platform/gtk/fast/invalid/missing-end-tag-expected.txt:
        * platform/gtk/fast/parser/xhtml-alternate-entities-expected.txt:
        * platform/gtk/fast/sub-pixel/selection/selection-rect-in-sub-pixel-table-expected.png:
        * platform/gtk/fast/sub-pixel/selection/selection-rect-in-sub-pixel-table-expected.txt:
        * platform/gtk/fast/xsl/xslt-extra-content-at-end-expected.txt:
        * platform/gtk/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
        * platform/gtk/svg/custom/bug45331-expected.txt:
        * platform/gtk/svg/custom/junk-data-expected.txt:
        * platform/gtk/svg/custom/missing-xlink-expected.txt:
        * platform/gtk/svg/custom/path-bad-data-expected.txt:
        * platform/gtk/svg/custom/use-font-face-crash-expected.txt:
        * platform/gtk/svg/hixie/error/012-expected.txt:

2018-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Rebaseline several tests after r238730.

        innerText works differently when using complex text path.
        See https://bugs.webkit.org/show_bug.cgi?id=192750.

        * platform/gtk/fast/events/nested-window-event-expected.txt: Added.
        * platform/gtk/fast/events/window-events-bubble-expected.txt: Added.
        * platform/gtk/fast/events/window-events-bubble2-expected.txt: Added.
        * platform/gtk/fast/tokenizer/script_extra_close-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-015-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-016-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
        * platform/gtk/legacy-animation-engine/animations/lineheight-animation-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/width-using-ems-expected.txt: Added.

2018-12-30  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] Identifier validity should be based on ID_Start / ID_Continue properties
        https://bugs.webkit.org/show_bug.cgi?id=193050

        Reviewed by Yusuke Suzuki.

        * sputnik/Unicode/Unicode_218/S7.6_A1.1_T2-expected.txt:
        * sputnik/Unicode/Unicode_218/S7.6_A1.1_T6-expected.txt:
        * sputnik/Unicode/Unicode_218/S7.6_A5.2_T2-expected.txt:
        * sputnik/Unicode/Unicode_218/S7.6_A5.2_T6-expected.txt:
        * sputnik/Unicode/Unicode_218/S7.6_A5.3_T1-expected.txt:
        * sputnik/Unicode/Unicode_218/S7.6_A5.3_T2-expected.txt:
        * sputnik/Unicode/Unicode_320/S7.6_A1.1_T6-expected.txt:
        * sputnik/Unicode/Unicode_320/S7.6_A2.3-expected.txt:
        * sputnik/Unicode/Unicode_320/S7.6_A3.1-expected.txt:
        * sputnik/Unicode/Unicode_320/S7.6_A5.2_T6-expected.txt:
        * sputnik/Unicode/Unicode_320/S7.6_A5.2_T9-expected.txt:
        * sputnik/Unicode/Unicode_320/S7.6_A5.3_T1-expected.txt:
        * sputnik/Unicode/Unicode_320/S7.6_A5.3_T2-expected.txt:
        * sputnik/Unicode/Unicode_410/S7.6_A1.1_T6-expected.txt:
        * sputnik/Unicode/Unicode_410/S7.6_A3.1-expected.txt:
        * sputnik/Unicode/Unicode_410/S7.6_A5.2_T6-expected.txt:
        * sputnik/Unicode/Unicode_410/S7.6_A5.3_T1-expected.txt:
        * sputnik/Unicode/Unicode_410/S7.6_A5.3_T2-expected.txt:
        * sputnik/Unicode/Unicode_500/S7.6_A1.1_T6-expected.txt:
        * sputnik/Unicode/Unicode_500/S7.6_A3.1-expected.txt:
        * sputnik/Unicode/Unicode_500/S7.6_A5.2_T6-expected.txt:
        * sputnik/Unicode/Unicode_500/S7.6_A5.3_T1-expected.txt:
        * sputnik/Unicode/Unicode_500/S7.6_A5.3_T2-expected.txt:
        * sputnik/Unicode/Unicode_510/S7.6_A1.1_T4-expected.txt:
        * sputnik/Unicode/Unicode_510/S7.6_A1.1_T6-expected.txt:
        * sputnik/Unicode/Unicode_510/S7.6_A5.2_T4-expected.txt:
        * sputnik/Unicode/Unicode_510/S7.6_A5.2_T6-expected.txt:
        Update expectations for outdated tests.

2018-12-23  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Rebaseline fast/text/zero-font-size.html after r239539.

        * platform/gtk/fast/text/zero-font-size-expected.txt:

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

        [BigInt] Support BigInt in JSON.stringify
        https://bugs.webkit.org/show_bug.cgi?id=192624

        Reviewed by Saam Barati.

        The test is wrong according to the spec[1]. valueOf of Boolean object won't be called.

        [1]: https://tc39.github.io/ecma262/#sec-serializejsonproperty

        * js/resources/JSON-stringify.js:
        * js/resources/json2-es5-compat.js:
        (str):

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

        [iOS] Suppress native selection behaviors when focusing a very small editable element
        https://bugs.webkit.org/show_bug.cgi?id=193005
        <rdar://problem/46583527>

        Reviewed by Tim Horton.

        Add a new layout test to verify that native selection UI is suppressed when focusing a tiny (1px by 1px)
        editable element.

        * editing/selection/ios/hide-selection-in-tiny-contenteditable-expected.txt: Added.
        * editing/selection/ios/hide-selection-in-tiny-contenteditable.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.zoomToScale):

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

        [JSC] Implement "well-formed JSON.stringify" proposal
        https://bugs.webkit.org/show_bug.cgi?id=191677

        Reviewed by Darin Adler.

        * css3/escape-dom-api-expected.txt:
        * js/dom/webidl-type-mapping-expected.txt:
        * js/resources/json2-es5-compat.js:
        (isHighSurrogate):
        (isLowSurrogate):
        (isSurrogate):
        (quote):

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

        RTCRtpSender.setParameters() does set active parameter
        https://bugs.webkit.org/show_bug.cgi?id=192848

        Reviewed by Eric Carlson.

        * webrtc/video.html:
        Add a check for active value.
        Test video freezing through canvas instead of stats.

2018-12-21  Justin Michaud  <justin_michaud@apple.com>

        CSS variables don't work for colors in "border" property
        https://bugs.webkit.org/show_bug.cgi?id=192922

        Reviewed by Simon Fraser.

        * css-custom-properties-api/border-variable-parsing-expected.html: Added.
        * css-custom-properties-api/border-variable-parsing.html: Added.

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

        Synchronous media query evaluation could destroy current Frame/FrameView.
        https://bugs.webkit.org/show_bug.cgi?id=192781
        <rdar://problem/34416793>

        Reviewed by Chris Dumez.

        * printing/print-with-media-query-destory-expected.txt: Added.
        * printing/print-with-media-query-destory.html: Added.

2018-12-21  Alex Christensen  <achristensen@webkit.org>

        Revert r239503.
        https://bugs.webkit.org/show_bug.cgi?id=192944

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

2018-12-21  Truitt Savell  <tsavell@apple.com>

        Skipping webgpu/ tests after https://trac.webkit.org/changeset/239495/webkit disabled webgpu on 10.12
        https://bugs.webkit.org/show_bug.cgi?id=192956

        Unreviewed Test Gardening.

        * platform/mac/TestExpectations:

2018-12-21  Justin Michaud  <justin_michaud@apple.com>

        Repeated background images with zero size should display the background color
        https://bugs.webkit.org/show_bug.cgi?id=192962

        Reviewed by Antti Koivisto.

        Fix a rendering bug exposed by the CSS Variable wpt tests where repeated backgrounds with zero size
        not draw the background colour underneath.

        * fast/backgrounds/background-repeat-with-zero-size-expected.html: Added.
        * fast/backgrounds/background-repeat-with-zero-size.html: Added.

2018-12-20  Brent Fulgham  <bfulgham@apple.com>

        Show punycode if URL contains Latin small letter dotless i
        https://bugs.webkit.org/show_bug.cgi?id=192944
        <rdar://problem/46103047>

        Reviewed by Andy Estes.

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

2018-12-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Remove platform specific files that are exactly the same as the generic expectation.

        * platform/gtk/fast/text/selection-in-initial-advance-region-expected.txt: Removed.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Removed.
        * platform/gtk/legacy-animation-engine/animations/lineheight-animation-expected.txt: Removed.
        * platform/gtk/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Removed.
        * platform/gtk/legacy-animation-engine/animations/width-using-ems-expected.txt: Removed.
        * platform/gtk/security/block-test-expected.txt: Removed.
        * platform/gtk/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Removed.

2018-12-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Rebaseline several tests.

        * platform/gtk/css2.1/t051201-c23-first-line-00-b-expected.png:
        * platform/gtk/css2.1/t051201-c23-first-line-00-b-expected.txt:
        * platform/gtk/css2.1/t1508-c527-font-04-b-expected.png:
        * platform/gtk/css2.1/t1508-c527-font-04-b-expected.txt:
        * platform/gtk/css2.1/t1508-c527-font-05-b-expected.png:
        * platform/gtk/css2.1/t1508-c527-font-05-b-expected.txt:
        * platform/gtk/css2.1/t1508-c527-font-07-b-expected.png:
        * platform/gtk/css2.1/t1508-c527-font-07-b-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt: Added.
        * platform/gtk/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Added.
        * platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Added.
        * platform/gtk/fast/text/font-selection-font-loading-api-parse-expected.txt: Added.
        * platform/gtk/fast/text/font-stretch-parse-expected.txt: Added.
        * platform/gtk/fast/text/font-style-parse-expected.txt: Added.
        * platform/gtk/fast/text/font-weight-parse-expected.txt: Added.
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt: Added.

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

        [iOS] Some layout tests are failing after r239441
        https://bugs.webkit.org/show_bug.cgi?id=192957
        <rdar://problem/46781759>

        Reviewed by Simon Fraser.

        Fix several failing layout tests after r239441.

        * fast/events/ios/click-event-while-editing-node.html:

        This test started failing after r239441 because it taps the bottom of the editable element, and then expects
        WebKit to scroll the web view up to reveal the touched location. This was exactly the bug that r239441 fixed, so
        we should just make this test no longer depend on the broken behavior.

        * fast/forms/ios/focus-long-textarea-expected.txt:
        * fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt:

        Rebaseline a couple of test expectations to account for the change in margin around the selection rect, in
        -[WKWebView _zoomToFocusRect:…:].

2018-12-20  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Remove hash from Client Data
        https://bugs.webkit.org/show_bug.cgi?id=192727
        <rdar://problem/46746673>

        Reviewed by Brent Fulgham.

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

2018-12-20  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Add a runtime flag for local authenticator
        https://bugs.webkit.org/show_bug.cgi?id=192792
        <rdar://problem/46798738>

        Reviewed by Brent Fulgham.

        * platform/mac-highsierra-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:

2018-12-20  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Autoformat doesn't work on icloud.com (javascript-packed.js)
        https://bugs.webkit.org/show_bug.cgi?id=192946
        <rdar://problem/42546126>

        Rubber-stamped by Devin Rousso.

        * inspector/formatting/is-text-likely-minified-expected.txt:
        * inspector/formatting/is-text-likely-minified.html:
        Add a test for a long header doc at the start but minified content at the end.

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

        [ iOS WK2 ] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=191704

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.

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

        [Mac] Update apache httpd.conf
        https://bugs.webkit.org/show_bug.cgi?id=192942

        Reviewed by Alexey Proskuryakov.

        * http/conf/apache2.4-php7-httpd.conf:

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

        [iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/update-registration-with-type.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=192938

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.

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

        [iOS] Focusing an editable element should scroll to reveal the selection
        https://bugs.webkit.org/show_bug.cgi?id=192802
        <rdar://problem/46781759>

        Reviewed by Tim Horton.

        Adds a new layout test to verify that tapping near the bottom of a tall editable element to focus it doesn't
        cause the page to scroll up (and, as a result, leave the selection caret obscured).

        * editing/selection/ios/selection-is-visible-after-focusing-editable-area-expected.txt: Added.
        * editing/selection/ios/selection-is-visible-after-focusing-editable-area.html: Added.

2018-12-19  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed test gardening.

        * platform/wincairo/TestExpectations:

2018-12-19  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/animations/lineheight-animation-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt.
        * platform/gtk/animations/simultaneous-start-transform-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt.
        * platform/gtk/animations/width-using-ems-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt.
        * platform/gtk/css1/font_properties/font-expected.txt:
        * platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/gtk/css2.1/t1508-c527-font-00-b-expected.txt:
        * platform/gtk/css2.1/t1508-c527-font-06-b-expected.txt:
        * platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt:
        * platform/gtk/fast/inline/inline-content-with-image-simple-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/eventsource/format-mime-bogus-expected.txt: Removed.
        * platform/gtk/legacy-animation-engine/animations/lineheight-animation-expected.txt: Added.
        * platform/gtk/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt.
        * platform/gtk/legacy-animation-engine/animations/width-using-ems-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt.
        * platform/wpe/TestExpectations:
        * platform/wpe/css1/font_properties/font-expected.txt:
        * platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/wpe/css2.1/t1508-c527-font-00-b-expected.txt:
        * platform/wpe/css2.1/t1508-c527-font-06-b-expected.txt:
        * platform/wpe/css2.1/t1508-c527-font-10-c-expected.txt:
        * platform/wpe/fast/inline/inline-content-with-image-simple-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/eventsource/format-mime-bogus-expected.txt: Removed.
        * platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt:
        * platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
        * platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt:

2018-12-19  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Add stubs for WebGPUPipelineLayout/Descriptor and device::createPipelineLayout
        https://bugs.webkit.org/show_bug.cgi?id=192843
        <rdar://problem/46820395>

        Reviewed by Myles Maxfield.

        Update bind-group-layouts and rename to match new PipelineLayout functionality.

        * webgpu/bind-group-layouts-expected.txt: Removed.
        * webgpu/pipeline-layouts-expected.txt: Added.
        * webgpu/pipeline-layouts.html: Renamed from LayoutTests/webgpu/bind-group-layouts.html.

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

        REGRESSION: [ iOS Sim ] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/update-missing-import-scripts.https.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=192250

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.

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

        REGRESSION: imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html is very flaky on iOS
        https://bugs.webkit.org/show_bug.cgi?id=192279

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.

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

        UI process crash when focusing an editable image
        https://bugs.webkit.org/show_bug.cgi?id=192839
        <rdar://problem/46786670>

        Reviewed by Wenson Hsieh.

        * editing/images/basic-editable-image-with-gesture.html: Added.
        * editing/images/basic-editable-image-with-gesture-expected.txt: Added.
        * resources/ui-helper.js:
        (window.UIHelper.stylusTapAt.return.new.Promise):
        (window.UIHelper.stylusTapAt):
        Add a test that ensures that adding an editable image from a gesture
        doesn't crash, and can be drawn on.

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

        [ MacOS iOS ] Layout Test webrtc/no-port-zero-in-upd-candidates.html is flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=192866

        Reviewed by Alex Christensen.

        * webrtc/no-port-zero-in-upd-candidates.html:
        Add some more logging in the test in case of time out.

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

        REGRESSION (r234940): [ MacOS ] Layout Test imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=190976

        Unreviewed test gardening.

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

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

        Unreviewed, rolling out r239347.

        Caused the leaks bot to hit an exception and the new test
        crashes on certain configurations.

        Reverted changeset:

        "Synchronous media query evaluation could destroy current
        Frame/FrameView."
        https://bugs.webkit.org/show_bug.cgi?id=192781
        https://trac.webkit.org/changeset/239347

2018-12-18  Justin Michaud  <justin_michaud@apple.com>

        Update CSS Properties and Values API to use new cycle fallback behaviour
        https://bugs.webkit.org/show_bug.cgi?id=192800

        Reviewed by Antti Koivisto.

        * css-custom-properties-api/crash.html:
        * css-custom-properties-api/inherits-expected.txt:
        * css-custom-properties-api/inherits.html:
        * css-custom-properties-api/registerProperty-expected.txt:
        * css-custom-properties-api/registerProperty.html:

2018-12-18  Myles C. Maxfield  <mmaxfield@apple.com>

        Thick overlines and line-throughs grow in the wrong direction
        https://bugs.webkit.org/show_bug.cgi?id=192264

        Reviewed by Dean Jackson.

        I can't figure out a way to test the line-through, so this just tests the overline.

        * fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html: Added.

2018-12-18  Justin Fan  <justin_fan@apple.com>

        [WebGPU] BindGroupLayout and Device::createBindGroupLayout
        https://bugs.webkit.org/show_bug.cgi?id=192817

        Reviewed by Dean Jackson.

        Update bind-group-layouts to test new functionality.

        * webgpu/bind-group-layouts-expected.txt:
        * webgpu/bind-group-layouts.html:

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

        Unreviewed test gardening after r239306 and r239338.

        Move test compositing/contents-format baselines for Mojave into platform/mac, add new baselines for High Sierra and earlier.

        * platform/mac-highsierra-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Copied from LayoutTests/platform/mac-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt.
        * platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Copied from LayoutTests/platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt.
        * platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt.
        * platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt.
        * platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt.
        * platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt.
        * platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt.
        * platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt.
        * platform/mac-mojave-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Removed.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Removed.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Removed.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Removed.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Removed.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Removed.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Removed.
        * platform/mac-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt:
        * platform/mac/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Renamed from LayoutTests/platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt.
        * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt:
        * platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt:
        * platform/mac/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt:
        * platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt:
        * platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt:
        * platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt:

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

        Synchronous media query evaluation could destroy current Frame/FrameView.
        https://bugs.webkit.org/show_bug.cgi?id=192781
        <rdar://problem/34416793>

        Reviewed by Chris Dumez.

        * printing/print-with-media-query-destory-expected.txt: Added.
        * printing/print-with-media-query-destory.html: Added.

2018-12-18  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: m3u8 content not shown, it should be text
        https://bugs.webkit.org/show_bug.cgi?id=192731
        <rdar://problem/46747728>

        Reviewed by Devin Rousso.

        * inspector/unit-tests/mimetype-utilities-expected.txt:
        * inspector/unit-tests/mimetype-utilities.html:
        Tests for shouldTreatMIMETypeAsText.

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

        Remove <meta http-equiv=set-cookie> support
        https://bugs.webkit.org/show_bug.cgi?id=185077
        <rdar://problem/41791397>

        Reviewed by Brent Fulgham.

        Update test now that we no longer consider the HTTP equiv. pragma Set-Cookie as
        dangerous (since it is ignored).

        * http/tests/security/xssAuditor/cookie-injection-expected.txt:

2018-12-18  Justin Michaud  <justin_michaud@apple.com>

        CSS Typed OM should expose attributeStyleMap
        https://bugs.webkit.org/show_bug.cgi?id=192671

        Reviewed by Ryosuke Niwa.

        * css-typedom/attributeStyleMap-expected.txt: Added.
        * css-typedom/attributeStyleMap.html: Added.
        * css-typedom/sameobject-expected.txt: Added.
        * css-typedom/sameobject.html: Added.
        * fast/css-custom-paint/properties.html:
        * platform/ios-wk1/TestExpectations:
        * platform/ios-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt: Added.
        * platform/win/TestExpectations:

2018-12-18  Simon Fraser  <simon.fraser@apple.com>

        Fix test failure after r239306.

        Need Mojave WK1 results for this test.

        * platform/mac-mojave-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Added.

2018-12-18  Wenson Hsieh  <wenson_hsieh@apple.com>

        Calling setValue() while typing should invoke -textDidChangeInTextField in the injected bundle
        https://bugs.webkit.org/show_bug.cgi?id=192785
        <rdar://problem/45321184>

        Reviewed by Tim Horton.

        Add a test to verify that:
        1. When typing in a focused field, the injected bundle method is invoked.
        2. When changing the value of the focused field under non-typing user interaction, the method isn't invoked.
        3. When changing the value of the focused field programmatically without user gesture, the method isn't invoked.

        * TestExpectations:
        * fast/forms/call-text-did-change-in-text-field-when-typing-expected.txt: Added.
        * fast/forms/call-text-did-change-in-text-field-when-typing.html: Added.
        * platform/wk2/TestExpectations:

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

        [Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=192061

        Reviewed by Dewei Zhu.

        Add a time out value.

        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:

2018-12-17  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] A stream's first video frame should be rendered
        https://bugs.webkit.org/show_bug.cgi?id=192629
        <rdar://problem/46664353>

        Reviewed by Youenn Fablet.

        * fast/mediastream/MediaStream-video-element-displays-buffer.html: Updated.
        * fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Ditto.
        * fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Ditto.
        * fast/mediastream/media-stream-renders-first-frame-expected.txt: Added.
        * fast/mediastream/media-stream-renders-first-frame.html: Added.
        * http/tests/media/media-stream/getusermedia-with-canvas-expected.txt: Removed.
        * http/tests/media/media-stream/getusermedia-with-canvas.html: Removed.

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

        [iOS] Focusing a large editable element always scrolls to the top of the element
        https://bugs.webkit.org/show_bug.cgi?id=192745
        <rdar://problem/46758445>

        Reviewed by Tim Horton.

        Add a new layout test to verify that we don't scroll unnecessarily when focusing a tall editable element, whose
        top offset is already near the top of the viewport.

        * editing/selection/ios/no-scrolling-when-focusing-large-editable-area-expected.txt: Added.
        * editing/selection/ios/no-scrolling-when-focusing-large-editable-area.html: Added.

2018-12-17  Ryosuke Niwa  <rniwa@webkit.org>

        offsetLeft and offsetParent should adjust across shadow boundaries
        https://bugs.webkit.org/show_bug.cgi?id=157437
        <rdar://problem/26154021>

        Reviewed by Simon Fraser.

        Added a W3C style testharness.js test.

        * fast/shadow-dom/offsetParent-across-shadow-boundaries-expected.txt: Added.
        * fast/shadow-dom/offsetParent-across-shadow-boundaries.html: Added.

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

        Don't use more expensive layer backing store formats when subpixel text antialiasing is not enabled
        https://bugs.webkit.org/show_bug.cgi?id=192780
        rdar://problem/43394387

        Reviewed by Tim Horton.
        
        New macOS Mojave and later results.

        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Added.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Added.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Added.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Added.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Added.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Added.
        * platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Added.

2018-12-17  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement WebGPUBindGroupLayoutDescriptor and its supporting dictionaries
        https://bugs.webkit.org/show_bug.cgi?id=192726

        Reviewed by Myles C. Maxfield.

        Add simple test to ensure a WebGPUBindGroupLayoutDescriptor can be created.

        * webgpu/bind-group-layouts-expected.txt: Added.
        * webgpu/bind-group-layouts.html: Added.

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

        Reproducible ASSERTion failure when toggling layer borders with find-in-page up
        https://bugs.webkit.org/show_bug.cgi?id=192762
        <rdar://problem/46676873>

        Reviewed by Simon Fraser.

        * editing/document-marker-null-check-expected.txt: Added.
        * editing/document-marker-null-check.html: Added.

2018-12-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r239265 and r239274.
        https://bugs.webkit.org/show_bug.cgi?id=192765

        unorm_normalize is deprecated, and broke an internal build
        (Requested by Truitt on #webkit).

        Reverted changesets:

        "[GTK][WPE] Need a function to convert internal URI to display
        ("pretty") URI"
        https://bugs.webkit.org/show_bug.cgi?id=174816
        https://trac.webkit.org/changeset/239265

        "Fix the Apple Internal Mac build with a newer SDK"
        https://trac.webkit.org/changeset/239274

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

        Implement UIScriptController::toggleCapsLock() for iOS
        https://bugs.webkit.org/show_bug.cgi?id=191815

        Reviewed by Andy Estes.

        Add iOS-specific results for some of the tests. We need to continue to skip the caps
        lock tests on iOS until we have the fix for <rdar://problem/44930119>.

        * fast/forms/password-scrolled-after-caps-lock-toggled.html: Replace input.focus() with
        UIHelper.activateElement(input) to make it work on iOS and update logic accordingly.
        Compensate for the fact that one less character than the size of the input is visible in
        a password field on iOS.
        * fast/repaint/placeholder-after-caps-lock-hidden.html: Replace input.focus() with
        UIHelper.activateElement(input) to make it work on iOS and update logic accordingly.
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/fast/forms/password-scrolled-after-caps-lock-toggled-expected.txt: Added.
        * platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt: Added.

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

        REGRESSION (r233268): Elements animated in from offscreen sometimes don't display
        https://bugs.webkit.org/show_bug.cgi?id=192725
        rdar://problem/46011418

        Reviewed by Antoine Quint.

        * compositing/backing/animate-into-view-expected.txt: Added.
        * compositing/backing/animate-into-view-with-descendant-expected.txt: Added.
        * compositing/backing/animate-into-view-with-descendant.html: Added.
        * compositing/backing/animate-into-view.html: Added.
        * platform/ios/compositing/backing/animate-into-view-expected.txt: Added.
        * platform/ios/compositing/backing/animate-into-view-with-descendant-expected.txt: Added.

2018-12-17  Ms2ger  <Ms2ger@igalia.com>

        [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
        https://bugs.webkit.org/show_bug.cgi?id=174816

        Reviewed by Michael Catanzaro.

        * TestExpectations: Enable fast/url/user-visible/.

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

        Make RTCRtpSender.setParameters to activate specific encodings
        https://bugs.webkit.org/show_bug.cgi?id=192732

        Reviewed by Eric Carlson.

        * webrtc/video-expected.txt:
        * webrtc/video.html:

2018-12-15  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Styles: toggling selected properties may cause data corruption
        https://bugs.webkit.org/show_bug.cgi?id=192396
        <rdar://problem/46478383>

        Reviewed by Devin Rousso.

        * inspector/css/add-css-property-expected.txt: Added.
        * inspector/css/add-css-property.html: Added.
        Test adding new properties.

        * inspector/css/modify-css-property-expected.txt:
        * inspector/css/modify-css-property.html:
        Test commenting out and uncommenting CSS properties.

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

        MediaRecorderPrivateAVFImpl should have a Ref<MediaRecorderPrivateWriter> as member
        https://bugs.webkit.org/show_bug.cgi?id=192720

        Reviewed by Eric Carlson.

        * http/wpt/mediarecorder/MediaRecorder-onremovetrack-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-onremovetrack.html: Added.

2018-12-14  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Cookies view should use model objects instead of raw payload data
        https://bugs.webkit.org/show_bug.cgi?id=189533
        <rdar://problem/44364183>

        Reviewed by Joseph Pecoraro and Devin Rousso.

        * inspector/unit-tests/cookie-expected.txt:
        * inspector/unit-tests/cookie.html:

2018-12-14  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r233268): contents of an animated element inside overflow:hidden disappear
        https://bugs.webkit.org/show_bug.cgi?id=188655
        rdar://problem/43382687

        Reviewed by Antoine Quint.

        * compositing/backing/backing-store-attachment-empty-keyframe-expected.txt: Added.
        * compositing/backing/backing-store-attachment-empty-keyframe.html: Added.
        * legacy-animation-engine/compositing/backing/backing-store-attachment-empty-keyframe-expected.txt: Added.
        * legacy-animation-engine/compositing/backing/backing-store-attachment-empty-keyframe.html: Added.

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

        Unreviewed test gardening.

        LFC does not support logical to physical coordinate conversion yet.

        * fast/block/block-only/float-avoider-with-margins-expected.txt:
        * fast/block/block-only/float-avoider-with-margins.html:

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

        IDB should store RTCCertificate
        https://bugs.webkit.org/show_bug.cgi?id=192599

        Reviewed by Brady Eidson.

        * webrtc/certificates-indexeddb-expected.txt: Added.
        * webrtc/certificates-indexeddb.html: Added.

2018-12-13  Ryosuke Niwa  <rniwa@webkit.org>

        Make HTMLConverter work across shadow boundaries
        https://bugs.webkit.org/show_bug.cgi?id=192640

        Reviewed by Wenson Hsieh.

        Added tests for generating attributed string out across shadow boundaries based on the tests
        of respective names in editing/pasteboard.

        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1.html: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2.html: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3.html: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4.html: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5.html: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1.html: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt: Added.
        * editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2.html: Added.
        * editing/mac/attributed-string/resources/dump-attributed-string.js:
        (window.dumpAttributedString): Now takes start and end containers and offsets.
        (serializeSubtreeWithShadow): Added. This function serializes the content of shadow roots along with
        start and end markers.
        (serializeSubtreeWithShadow.serializeCharacterData): Added.
        (serializeSubtreeWithShadow.serializeNode): Added.
        (serializeSubtreeWithShadow.serializeChildNodes): Added.
        (serializeSubtreeWithShadow.serializeShadowRootAndChildNodes): Added.
        (dumpAttributedString): Deleted.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt: Added.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt: Added.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt: Added.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt: Added.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt: Added.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt: Added.
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt: Added.

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

        Trying to play a media element synchronously after setting srcObject should succeed without user gesture
        https://bugs.webkit.org/show_bug.cgi?id=192679

        Reviewed by Eric Carlson.

        * fast/mediastream/local-audio-playing-event-expected.txt:
        * fast/mediastream/local-audio-playing-event.html:

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

        [macOS] Inline WebVTT styles should override styles from Captions settings in System Preferences
        https://bugs.webkit.org/show_bug.cgi?id=192638

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/css-styling.vtt:
        * media/track/captions-webvtt/no-css-styling.vtt:
        * media/track/track-css-user-override-expected.txt:
        * media/track/track-css-user-override.html:
        * media/track/track-cue-css-expected.html:

2018-12-13  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Table selection becomes corrupted when deleting selected cookies
        https://bugs.webkit.org/show_bug.cgi?id=192388
        <rdar://problem/46472364>

        Reviewed by Devin Rousso.

        * inspector/table/table-remove-rows-expected.txt:
        * inspector/table/table-remove-rows.html:

2018-12-13  Brent Fulgham  <bfulgham@apple.com>

        Don't attempt to animate invalid CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=192630
        <rdar://problem/46664433>

        Reviewed by Antoine Quint.

        * animations/invalid-property-animation-expected.txt: Added.
        * animations/invalid-property-animation.html: Added.

2018-12-13  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Calculate width or height when constraints contain only the other
        https://bugs.webkit.org/show_bug.cgi?id=192632
        <rdar://problem/46665734>

        Reviewed by Youenn Fablet.

        * fast/mediastream/constraint-intrinsic-size-expected.txt: Added.
        * fast/mediastream/constraint-intrinsic-size.html: Added.

2018-12-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        [FreeType] Remove HarfBuzzFace
        https://bugs.webkit.org/show_bug.cgi?id=192589

        Reviewed by Michael Catanzaro.

        Rebaseline test that now matches the firefox output.

        * platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
        * platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:

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

        [FreeType] Add initial implementation of variation fonts
        https://bugs.webkit.org/show_bug.cgi?id=192151

        Reviewed by Michael Catanzaro.

        Unskip variation fonts tests that are now passing in GTK+ port.

        * platform/gtk/TestExpectations:

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

        REGRESSION (r238090): CAPCHA UI jumps to the wrong location
        https://bugs.webkit.org/show_bug.cgi?id=192651
        rdar://problem/46531919

        Reviewed by Zalan Bujtas.
        
        Testcase that makes an intermediate layer non-composited (but still a RenderLayer).

        * compositing/geometry/update-child-geometry-on-compositing-change-expected.html: Added.
        * compositing/geometry/update-child-geometry-on-compositing-change.html: Added.

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

        Make TextInputController.legacyAttributedString take DOM nodes and offsets
        https://bugs.webkit.org/show_bug.cgi?id=192653

        Reviewed by Wenson Hsieh.

        Updated the tests per API change.

        * editing/mac/attributed-string/attribute-string-for-copy-with-color-filter.html:
        * editing/mac/attributed-string/resources/dump-attributed-string.js:
        (dumpAttributedString):

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

        REGRESSION (r238357): Pins on Yelp map disappear
        https://bugs.webkit.org/show_bug.cgi?id=192597
        rdar://problem/46578285

        Reviewed by Zalan Bujtas.
        
        Add tests that toggle negative z-index on a child, with and without sibling compositing layers.

        * compositing/z-order/add-negative-z-child-expected.html: Added.
        * compositing/z-order/add-negative-z-child.html: Added.
        * compositing/z-order/rebuild-sibling-of-layer-with-foreground-layer-expected.html: Added.
        * compositing/z-order/rebuild-sibling-of-layer-with-foreground-layer.html: Added.

2018-12-12  YUHAN WU  <yuhan_wu@apple.com>

        Implement non-timeslice mode encoding for MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=192069
        <rdar://problem/46443290>

        Reviewed by Eric Carlson.

        Create new tests for encoding of MediaRecorder. Check if the produced video and audio are correct.
        Add code to turn on the mock source of MediaRecorder for the two old tests because the real source is enabled by default.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html: Added.
        * http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
        * http/wpt/mediarecorder/MediaRecorder-mock-dataavailable.html:

2018-12-12  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Vertex buffers and WebGPUInputState
        https://bugs.webkit.org/show_bug.cgi?id=192611

        Reviewed by Dean Jackson.

        Added variation of simple-triangle-strip to use a vertex buffer. Refactored aforementioned
        test to share code with new test.

        * webgpu/js/basic-webgpu-functions.js:
        (setUpPipelineDescriptor):
        * webgpu/js/webgpu-functions.js: Added.
        (async.getBasicDevice):
        (createBasicContext):
        (createBasicPipeline):
        (beginBasicRenderPass):
        * webgpu/render-pipelines-expected.txt:
        * webgpu/render-pipelines.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip-expected.html: Added.
        * webgpu/vertex-buffer-triangle-strip.html: Added.

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

        REGRESSION: [ MacOS iOS ] Layout Test http/wpt/resource-timing/rt-revalidate-requests.html is flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=191207
        <rdar://problem/45818891>

        Reviewed by Devin Rousso.

        Splitting this test up into separate tests eliminated flakiness
        and timeouts for my system that would occasionally encounter them.

        * TestExpectations:
        Remove expectation for the test now that splitting up eliminated flakiness so far.

        * http/wpt/resource-timing/resources/rt-revalidate-utilities.sub.js
        Common code for the split out tests.

        * http/wpt/resource-timing/rt-revalidate-requests-1-expected.txt: Added.
        * http/wpt/resource-timing/rt-revalidate-requests-1.html: Added.
        * http/wpt/resource-timing/rt-revalidate-requests-2-expected.txt: Added.
        * http/wpt/resource-timing/rt-revalidate-requests-2.html: Added.
        * http/wpt/resource-timing/rt-revalidate-requests-3-expected.txt: Added.
        * http/wpt/resource-timing/rt-revalidate-requests-3.html: Added.
        * http/wpt/resource-timing/rt-revalidate-requests.html: Removed.
        * http/wpt/resource-timing/rt-revalidate-requests-expected.txt: Removed.
        Split out into separate tests.        

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

        [Mojave Release Wk2] Layout Test http/tests/cache/disk-cache/disk-cache-validation-attachment.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=190323
        <rdar://problem/45056253>

        Reviewed by Youenn Fablet.

        * http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt:
        * http/tests/cache/disk-cache/disk-cache-validation-attachment.html:
        Simplify test a bit to only test the header combinations it cares about.

        * http/tests/cache/disk-cache/resources/cache-test.js:
        (runTestsNow):
        (runTests):
        The flakiness was due to logic in CachedResourceLoader::determineRevalidationPolicy() which more aggressively
        reuses cached resources (bypassing freshness checks) until the load event has fired. This means that the
        test would give different results depending on whether or not the load event had a chance to fire before
        we do the checks. To address the issue, update runTests() to wait for the load event if it has not yet
        fired. This will likely address flakiness in other disk-cache tests as well.

        * platform/mac-wk2/TestExpectations:
        Unskip test that is no longer flaky.

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

        Recycling the m section should work if it was rejected remotely
        https://bugs.webkit.org/show_bug.cgi?id=192636

        Reviewed by Eric Carlson.

        * webrtc/msection-recycling-expected.txt: Added.
        * webrtc/msection-recycling.html: Added.

2018-12-12  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r237565): >20 Find in Page highlights in one tile results in a single giant highlight
        https://bugs.webkit.org/show_bug.cgi?id=192642
        <rdar://problem/46498246>

        Reviewed by Geoffrey Garen.

        * fast/shrink-wrap/rect-shrink-wrap-expected.html:
        * fast/shrink-wrap/rect-shrink-wrap.html:
        Add a test case with >20 tiny rects.

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

        Unreviewed manual rollout of r239100-r239102 and r239116
        https://bugs.webkit.org/show_bug.cgi?id=192151
        <rdar://problem/46655586>

        * platform/gtk/TestExpectations:
        * platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
        * platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:

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

        [FreeType] Remove HarfBuzzFace
        https://bugs.webkit.org/show_bug.cgi?id=192589

        Reviewed by Michael Catanzaro.

        Rebaseline test that now matches the firefox output.

        * platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
        * platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:

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

        [FreeType] Add initial implementation of variation fonts
        https://bugs.webkit.org/show_bug.cgi?id=192151

        Reviewed by Michael Catanzaro.

        Unskip variation fonts tests that are now passing in GTK+ port.

        * platform/gtk/TestExpectations:

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

        connectedCallback is invoked during the removal of the element inside another element's connectedCallback
        https://bugs.webkit.org/show_bug.cgi?id=183586
        <rdar://problem/38403504>

        Reviewed by Frédéric Wang.

        Added a W3C style testharness test.

        * fast/custom-elements/enqueue-custom-element-callback-reactions-inside-another-callback-expected.txt: Added.
        * fast/custom-elements/enqueue-custom-element-callback-reactions-inside-another-callback.html: Added.

2018-12-11  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement WebGPUBuffer
        https://bugs.webkit.org/show_bug.cgi?id=192516

        Reviewed by Dean Jackson.

        Basic test to create a WebGPUBuffer and ensure that its memory is valid.

        * webgpu/buffers-expected.txt: Added.
        * webgpu/buffers.html: Added.

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

        Don't attempt to compute animated values when there is no relevant animation
        https://bugs.webkit.org/show_bug.cgi?id=192591
        <rdar://problem/34336946>

        Reviewed by Dean Jackson.

        * svg/animations/avoid-calculating-for-non-animating-elements-expected.txt: Added.
        * svg/animations/avoid-calculating-for-non-animating-elements.html: Added.

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

        Unreviewed, fix typos in console log from r239087.

        * http/tests/events/device-orientation-motion-non-secure-context.html:
        * platform/ios/http/tests/events/device-orientation-motion-non-secure-context-expected.txt:

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

        Restrict DeviceMotion / DeviceOrientation APIs to secure contexts
        https://bugs.webkit.org/show_bug.cgi?id=192595
        <rdar://problem/46382603>

        Reviewed by Dean Jackson.

        Add layout test coverage. Note however that we currently do not have mock data providers
        for these APIs.

        * http/tests/events/device-orientation-motion-non-secure-context-expected.txt: Added.
        * http/tests/events/device-orientation-motion-non-secure-context.html: Added.
        * http/tests/events/device-orientation-motion-secure-context-expected.txt: Added.
        * http/tests/events/device-orientation-motion-secure-context.html: Added.
        * platform/ios/http/tests/events/device-orientation-motion-non-secure-context-expected.txt: Added.
        * platform/ios/http/tests/events/device-orientation-motion-secure-context-expected.txt: Added.

2018-12-10  Brent Fulgham  <bfulgham@apple.com>

        SVGViewSpec objects should mark relevant SVG elements
        https://bugs.webkit.org/show_bug.cgi?id=192567
        <rdar://problem/46491325>

        Reviewed by Ryosuke Niwa.

        * svg/animations/view-dependency-crash-expected.txt: Added.
        * svg/animations/view-dependency-crash.html: Added.

2018-12-10  Benjamin Poulain  <benjamin@webkit.org>

        <rdar://problem/45296285> Content blocker rule "raw" blocks media elements from loading
        https://bugs.webkit.org/show_bug.cgi?id=192439

        Reviewed by Dean Jackson.

        * http/tests/contentextensions/video-element-resource-type-expected.txt: Added.
        * http/tests/contentextensions/video-element-resource-type.html: Added.
        * http/tests/contentextensions/video-element-resource-type.html.json: Added.

2018-12-10  Justin Michaud  <justin_michaud@apple.com>

        CS Painting API should support multiple worklets.
        https://bugs.webkit.org/show_bug.cgi?id=192335

        Reviewed by Dean Jackson.

        * fast/css-custom-paint/animate-repaint-expected.txt:
        * fast/css-custom-paint/animate-repaint.html:
        * fast/css-custom-paint/delay-expected.html: Added.
        * fast/css-custom-paint/delay-repaint-expected.txt: Copied from LayoutTests/fast/css-custom-paint/animate-repaint-expected.txt.
        * fast/css-custom-paint/delay-repaint.html: Copied from LayoutTests/fast/css-custom-paint/animate-repaint.html.
        * fast/css-custom-paint/delay.html: Copied from LayoutTests/fast/css-custom-paint/animate-repaint.html.
        * fast/css-custom-paint/multiple-worklets-expected.html: Added.
        * fast/css-custom-paint/multiple-worklets.html: Added.

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

        DataChannels created asynchronously never open and are unusable
        https://bugs.webkit.org/show_bug.cgi?id=192566

        Reviewed by Eric Carlson.

        * webrtc/datachannel/basic-expected.txt:
        * webrtc/datachannel/basic.html:

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

        XMLHttpRequest removes spaces from content-types before processing
        https://bugs.webkit.org/show_bug.cgi?id=8644

        Reviewed by Chris Dumez.

        Update improved test expectation and remove comment.

        * http/tests/xmlhttprequest/supported-xml-content-types-expected.txt:
        * http/tests/xmlhttprequest/supported-xml-content-types.html:

2018-12-10  Simon Fraser  <simon.fraser@apple.com>

        Allow control over child order when adding nodes to the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=176914
        <rdar://problem/46542237>
        
        Re-land r239010 after over-zealous rollout.

        * platform/mac-wk2/TestExpectations:

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

        [MediaStream] Scaled video frames should be resized in letterbox mode
        https://bugs.webkit.org/show_bug.cgi?id=192528
        <rdar://problem/46576638>

        Reviewed by Darin Adler.

        * fast/mediastream/resize-letterbox-expected.txt: Added.
        * fast/mediastream/resize-letterbox.html: Added.

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

        Allow control over child order when adding nodes to the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=176914
        <rdar://problem/46542237>

        Reviewed by Simon Fraser.

        * platform/mac-wk2/TestExpectations: Mark fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html
        as flakey, which it will be until we attach in z-order.

2018-12-07  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] 'devicechange' event should not fire in frames that can't access capture devices
        https://bugs.webkit.org/show_bug.cgi?id=192511
        <rdar://problem/46562063>

        Reviewed by Youenn Fablet.

        * fast/mediastream/device-change-event.html: Fix bogus title.
        * http/tests/media/media-stream/device-change-event-in-iframe-expected.txt: Added.
        * http/tests/media/media-stream/device-change-event-in-iframe.html: Added.
        * http/tests/media/media-stream/resources/device-change-iframe.html: Added.

2018-12-07  Truitt Savell  <tsavell@apple.com>

        [ MacOS Debug ] Layout Test webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html is flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=190892

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-12-07  Truitt Savell  <tsavell@apple.com>

        Layout Test fast/css/counters/element-removal-crash.xhtml is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=183389

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-12-07  Thibault Saunier  <tsaunier@igalia.com>

        [WPE][GTK] Implement WebAudioSourceProviderGStreamer to allow bridging MediaStream and the WebAudio APIs
        https://bugs.webkit.org/show_bug.cgi?id=186933

        Reviewed by Philippe Normand.

        Enabled all tests depending on that feature.

        * platform/gtk/TestExpectations:
        * webrtc/clone-audio-track.html:

2018-12-06  Yongjun Zhang  <yongjun_zhang@apple.com>

        We should ignore minimumEffectiveDeviceWidth if the page specifies device-width in viewport meta-tag.
        https://bugs.webkit.org/show_bug.cgi?id=192377
        <rdar://problem/46364206>

        Reviewed by Tim Horton.

        * fast/viewport/ios/ignore-minimum-device-width-for-page-with-viewport-device-width-expected.txt: Added.
        * fast/viewport/ios/ignore-minimum-device-width-for-page-with-viewport-device-width.html: Added.
        * fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt: Added.
        * fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html: Added.

2018-12-06  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] WKWebView should match UITextView behavior when editing text with an RTL keyboard
        https://bugs.webkit.org/show_bug.cgi?id=187554
        <rdar://problem/42075638>

        Reviewed by Tim Horton.

        Add a new layout test to verify that when focusing an editable WKWebView using a right-to-left keyboard input
        mode, we will set the base writing direction to be right-to-left, and vice versa.

        * TestExpectations:
        * editing/input/ios/rtl-keyboard-input-on-focus-expected.txt: Added.
        * editing/input/ios/rtl-keyboard-input-on-focus.html: Added.
        * platform/ios-wk2/TestExpectations:
        * resources/ui-helper.js:

        Add a UIHelper method to set the keyboard input mode to the given identifier. Example identifiers are "en_US"
        (the default U.S. English keyboard) and "he_IL" (the Hebrew keyboard, which is right-to-left).

        (window.UIHelper.setKeyboardInputModeIdentifier):
        (window.UIHelper):

2018-12-06  Jiewen Tan  <jiewen_tan@apple.com>

        Layout Test http/tests/misc/resource-timing-resolution.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=181957

        Reviewed by Youenn Fablet.

        Since the timing information is a multiplier of a small delta, it is likely that
        two timing information are the same as they are so close that fall into the same
        bucket. Therefore, this patch releases the check of 't0 !== t1'.

        * http/tests/misc/resource-timing-resolution-expected.txt:
        * http/tests/misc/resource-timing-resolution.html:
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2018-12-06  Truitt Savell  <tsavell@apple.com>

        imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html is flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=191565

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2018-12-05  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:
        * platform/gtk/editing/deleting/delete-emoji-1-expected.txt:
        * platform/gtk/editing/deleting/delete-emoji-expected.txt:
        * platform/wpe/animations/lineheight-animation-expected.txt:
        * platform/wpe/animations/simultaneous-start-transform-expected.txt:
        * platform/wpe/animations/width-using-ems-expected.txt:
        * platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt:
        * platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
        * platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt:

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

        REGRESSION: Layout Test http/tests/security/cross-origin-css-resource-timing.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=192408
        <rdar://problem/46492201>

        Reviewed by Ryosuke Niwa.

        Some of the tests are loading the same subresource and check for resource timing.
        We need to clear internal caches to have stable results.

        * http/tests/security/clean-origin-css-exposed-resource-timing.html:
        * http/tests/security/cross-origin-clean-css-resource-timing.html:
        * http/tests/security/cross-origin-css-resource-timing.html:

2018-12-05  Matt Baker  <mattbaker@apple.com>

        Web Inspector: SelectionController should not extend the selection when allowsMultipleSelection is false
        https://bugs.webkit.org/show_bug.cgi?id=192390
        <rdar://problem/46473624>

        Reviewed by Devin Rousso.

        * inspector/table/table-selection-expected.txt:
        * inspector/table/table-selection.html:
        Drive-by fix: removed `allowsMultipleSelection` check from test case
        Table.SelectMultipleRows.ExtendSelection since it is tested in Table.AllowsMultipleSelection.

2018-12-05  Ryosuke Niwa  <rniwa@webkit.org>

        Null pointer crash in DocumentOrderedMap::getElementById via FormAssociatedElement::findAssociatedForm
        https://bugs.webkit.org/show_bug.cgi?id=192392

        Reviewed by Dean Jackson.

        Added a regression test.

        * fast/dom/remove-id-form-associated-elemet-id-observer-crash-expected.txt: Added.
        * fast/dom/remove-id-form-associated-elemet-id-observer-crash.html: Added.

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

        [iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189727
        <rdar://problem/44584993>

        Reviewed by Chris Dumez.

        * TestExpectations:
        * platform/ios/TestExpectations:

2018-12-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r238844, r238846, and r238874.
        https://bugs.webkit.org/show_bug.cgi?id=192414

        The layout tests added with this change are flaky. (Requested
        by ryanhaddad on #webkit).

        Reverted changesets:

        "Implement non-timeslice mode encoding for MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=192069
        https://trac.webkit.org/changeset/238844

        "Fix the build"
        https://trac.webkit.org/changeset/238846

        "Fix MediaRecorder flaky tests"
        https://bugs.webkit.org/show_bug.cgi?id=192371
        https://trac.webkit.org/changeset/238874

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

        Layout Test http/tests/misc/resource-timing-resolution.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=181957

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-12-05  Alicia Boya García  <aboya@igalia.com>

        [MSE][GStreamer] Remove the AppendPipeline state machine
        https://bugs.webkit.org/show_bug.cgi?id=192204

        Reviewed by Xabier Rodriguez-Calvar.

        Removed timeout expectations for
        media/media-source/media-source-error-crash.html

        Added expectations for mediasource-invalid-codec.html for Mac, where
        WebM is not supported.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        * platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec-expected.txt: Added.

2018-12-05  Rob Buis  <rbuis@igalia.com>

        [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html)
        https://bugs.webkit.org/show_bug.cgi?id=114965

        Reviewed by Frédéric Wang.

        Update these since we now expect to pass head-redirection.html here.

        * platform/ios/TestExpectations:
        * platform/mac/http/tests/xmlhttprequest/head-redirection-expected.txt: Removed.

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

        [css-grid] Crash on debug changing the style of a positioned element
        https://bugs.webkit.org/show_bug.cgi?id=191473

        Reviewed by Dean Jackson and Zalan Bujtas.

        Regression test to ensure that the grid placement logic is executed
        when a positioned item becomes a grid item.

        * fast/css-grid-layout/grid-crash-out-of-flow-positioned-element-expected.txt:
        * fast/css-grid-layout/grid-crash-out-of-flow-positioned-element.html:
        * TestExpectations: Remove a Skip entry, since the test doesn't crash anymore.

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

        Attempt to de-flake this test by scrolling a bit more.

        * compositing/fixed-with-main-thread-scrolling.html:

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

        Crash in HTMLCollection::updateNamedElementCache
        https://bugs.webkit.org/show_bug.cgi?id=192347

        Reviewed by Darin Adler.

        Added a regression test. We can't simply call select.options.item
        to catch this crash because the generated bidning code first call length()
        to check if the index is within the valid range.

        * fast/dom/options-collection-zero-length-crash-expected.txt: Added.
        * fast/dom/options-collection-zero-length-crash.html: Added.

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

        Don't report resource timing to parent frame for history items
        https://bugs.webkit.org/show_bug.cgi?id=192273
        <rdar://problem/45163764>

        Reviewed by Youenn Fablet.

        * http/tests/misc/resource-timing-navigation-in-restored-iframe-2-expected.txt: Added.
        * http/tests/misc/resource-timing-navigation-in-restored-iframe-2.html: Copied from LayoutTests/http/tests/misc/resource-timing-navigation-in-restored-iframe.html.
        * http/tests/misc/resource-timing-navigation-in-restored-iframe.html:

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

        REGRESSION (r238090): position:fixed sidebar on https://www.w3.org/TR/SVG2/coords.html does not stay fixed
        https://bugs.webkit.org/show_bug.cgi?id=192320
        <rdar://problem/46429833>

        Reviewed by Zalan Bujtas.

        * compositing/fixed-with-main-thread-scrolling-expected.html: Added.
        * compositing/fixed-with-main-thread-scrolling.html: Added.
        * platform/ios/TestExpectations:

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

        [iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189727
        <rdar://problem/44584993>

        Unreviewed.

        * platform/ios/TestExpectations: Update expectation to dump JS console lines in stderr.

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

        Fix MediaRecorder flaky tests
        https://bugs.webkit.org/show_bug.cgi?id=192371

        Reviewed by Eric Carlson.

        Updated tests to make them less flaky and more debuggable.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-only-dataavailable.html:
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
        * http/wpt/mediarecorder/MediaRecorder-AV-video-only-dataavailable.html:
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

2018-12-04  Justin Michaud  <justin_michaud@apple.com>

        CSS Painting API should allow image values in inputProperties
        https://bugs.webkit.org/show_bug.cgi?id=192200

        Reviewed by Dean Jackson.

        * fast/css-custom-paint/arguments-expected.html: Added.
        * fast/css-custom-paint/arguments.html: Added.
        * fast/css-custom-paint/image-expected.html: Added.
        * fast/css-custom-paint/image.html: Added.
        * fast/css-custom-paint/resources/test-image.png: Added.

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

        Unreviewed, rolling out r238838.

        The layout test added with this change is failing on iOS.

        Reverted changeset:

        "Thick overlines and line-throughs grow in the wrong
        direction"
        https://bugs.webkit.org/show_bug.cgi?id=192264
        https://trac.webkit.org/changeset/238838

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

        Unreviewed, rolling out r238840.

        The layout test added with this change is frequently failing.

        Reverted changeset:

        "REGRESSION (r238090): position:fixed sidebar on
        https://www.w3.org/TR/SVG2/coords.html does not stay fixed"
        https://bugs.webkit.org/show_bug.cgi?id=192320
        https://trac.webkit.org/changeset/238840

2018-12-04  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: tests should support async operations
        https://bugs.webkit.org/show_bug.cgi?id=192171
        <rdar://problem/46423562>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/resources/audit-utilities.js:
        (TestPage.registerInitializer.InspectorTest.Audit.addFunctionlessTest):
        (TestPage.registerInitializer.InspectorTest.Audit.addStringTest):
        (TestPage.registerInitializer.InspectorTest.Audit.addObjectTest):
        (TestPage.registerInitializer.InspectorTest.Audit.addPromiseTest): Added.
        * inspector/audit/basic-expected.txt:
        * inspector/audit/basic.html:

        * inspector/model/auditTestCaseResult-expected.txt:
        * inspector/model/auditTestCaseResult.html:
        * inspector/model/auditTestGroupResult-expected.txt:
        * inspector/model/auditTestGroupResult.html:

        * inspector/runtime/awaitPromise-expected.txt: Added.
        * inspector/runtime/awaitPromise.html: Added.

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

        [GTK] Bump freetype, fontconfig, harfbuzz, cairo and icu in jhbuild
        https://bugs.webkit.org/show_bug.cgi?id=192310

        Reviewed by Michael Catanzaro.

        Rebaseline tests.

        * platform/gtk/fast/text/format-control-expected.png:
        * platform/gtk/fast/text/format-control-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-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-SE/filters-felem-01-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt:
        * platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.png:
        * platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt:
        * platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.png:
        * platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.txt:
        * platform/gtk/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
        * platform/gtk/svg/foreignObject/text-tref-02-b-expected.png:
        * platform/gtk/svg/foreignObject/text-tref-02-b-expected.txt:
        * platform/gtk/svg/text/text-hkern-on-vertical-text-expected.png:
        * platform/gtk/svg/text/text-hkern-on-vertical-text-expected.txt:
        * platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.png:
        * platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.txt:

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

        A sender created through addTransceiver and populated using addTrack should have its source set
        https://bugs.webkit.org/show_bug.cgi?id=192136

        Reviewed by Eric Carlson.

        * webrtc/video-replace-track-expected.txt:
        * webrtc/video-replace-track.html:

2018-12-03  YUHAN WU  <yuhan_wu@apple.com>

        Implement non-timeslice mode encoding for MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=192069

        Reviewed by Youenn Fablet.

        Create new tests for encoding of MediaRecorder. Check if the produced video and audio are correct.
        Add code to turn on the mock source of MediaRecorder for the two old tests because the real source is enabled by default.

        * http/wpt/mediarecorder/MediaRecorder-AV-audio-only-dataavailable-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-only-dataavailable.html: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-video-only-dataavailable-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-AV-video-only-dataavailable.html: Added.
        * http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
        * http/wpt/mediarecorder/MediaRecorder-mock-dataavailable.html:

2018-12-03  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r238090): position:fixed sidebar on https://www.w3.org/TR/SVG2/coords.html does not stay fixed
        https://bugs.webkit.org/show_bug.cgi?id=192320
        <rdar://problem/46429833>

        Reviewed by Zalan Bujtas.

        * compositing/fixed-with-main-thread-scrolling-expected.html: Added.
        * compositing/fixed-with-main-thread-scrolling.html: Added.

2018-12-03  Justin Michaud  <justin_michaud@apple.com>

        CSS Painting API should scale display list when drawing
        https://bugs.webkit.org/show_bug.cgi?id=192217

        Reviewed by Simon Fraser.

        * fast/css-custom-paint/properties-expected.html:
        * fast/css-custom-paint/registerPaintBindings-expected.html:
        * fast/css-custom-paint/simple-hidpi-expected.html: Added.
        * fast/css-custom-paint/simple-hidpi.html: Added.
        * fast/css-custom-paint/worklet-expected.html:

2018-12-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Thick overlines and line-throughs grow in the wrong direction
        https://bugs.webkit.org/show_bug.cgi?id=192264

        Reviewed by Dean Jackson.

        I can't figure out a way to test the line-through, so this just tests the overline.

        * fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html: Added.

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

        [css-grid] Crash on debug changing the style of a positioned element
        https://bugs.webkit.org/show_bug.cgi?id=191473

        Unreviewed test gardening.

        * TestExpectations: Skip crashing layout test.

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

        [iOS] Do not handle key events that are key commands
        https://bugs.webkit.org/show_bug.cgi?id=191608
        <rdar://problem/46046013>

        Reviewed by Ryosuke Niwa.

        Add tests to ensure that we process key commands correctly.

        * fast/events/ios/key-command-italic-dispatches-keydown-expected.txt: Added.
        * fast/events/ios/key-command-italic-dispatches-keydown.html: Added.
        * fast/events/ios/key-command-italic-expected.txt: Added.
        * fast/events/ios/key-command-italic.html: Added.
        * fast/events/ios/type-digits-holding-control-key-expected.txt: Added.
        * fast/events/ios/type-digits-holding-control-key.html: Added.
        * platform/ios-wk1/TestExpectations:

2018-12-03  Ryosuke Niwa  <rniwa@webkit.org>

        title attribute on style & link elements should be ignored inside a shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=191297

        Reviewed by Antti Koivisto.

        Adde a W3C-style testharness.js test for a more comprehensive testing of the title content attribute
        on HTML link and style elements and SVG style element inside a shadow tree.

        * TestExpectations:
        * fast/shadow-dom/resources/green-div.css: Added.
        * fast/shadow-dom/resources/red-div.css: Added.
        * fast/shadow-dom/stylesheet-title-in-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/stylesheet-title-in-shadow-tree.html: Added.

2018-12-03  Truitt Savell  <tsavell@apple.com>

        Modify unexpected new line in test after https://trac.webkit.org/changeset/238765/webkit
        https://bugs.webkit.org/show_bug.cgi?id=192201

        Unreviewed Test Gardening.

        * platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:

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

        [MediaStream] 'devicechange' event when more capture device information are revealed.
        https://bugs.webkit.org/show_bug.cgi?id=192268

        Reviewed by Youenn Fablet.

        * fast/mediastream/device-change-event-2.html: Fix bogus title.
        * fast/mediastream/enumerate-devices-change-event-expected.txt: Added.
        * fast/mediastream/enumerate-devices-change-event.html: Added.

2018-12-03  Guillaume Emont  <guijemont@igalia.com>

        Gardening: unskip marsaglia.js on arm

        Unreviewed Test Gardening.

        Bug 192152 has been fixed by r238778, so this test should not time out
        any more.

        * js/slow-stress/script-tests/marsaglia.js:

2018-12-03  Yacine Bandou  <yacine.bandou@softathome.com>

        [EME][ClearKey] Add layout test for dynamic change of key and video resolution
        https://bugs.webkit.org/show_bug.cgi?id=191926

        Reviewed by Xabier Rodriguez-Calvar.

       Add new layout tests in order to test the playback of ClearKey encrypted video content with
       a change of key and resolution during decoding.
       The test starts by playing a ClearKey video with a resolution of 240p, then, in the third second,
       the resolution of the video will change to 480p with a new ClearKey key.

        * media/content/encrypted/segments/VideoClearKeyCenc-seg-240-0.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-240-1.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-240-2.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-240-3.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-480-0.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-480-4.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-480-5.mp4: Added.
        * media/content/encrypted/segments/VideoClearKeyCenc-seg-480-6.mp4: Added.
        * media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse-multikey-expected.txt: Added.
        * media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse-multikey.html: Added.
        * media/encrypted-media/medias-enc.js:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:

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

        Test that CSS subresource loading are exposed to resource timing in case of a CORS loaded CSS stylesheet but not imported stylesheets
        https://bugs.webkit.org/show_bug.cgi?id=192232

        Reviewed by Dean Jackson.

        * http/tests/security/cross-origin-clean-css-resource-timing-expected.txt: Added.
        * http/tests/security/cross-origin-clean-css-resource-timing.html: Added.
        * http/tests/security/resources/loading-subresources.php: Added.

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

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

        Unreviewed Test Gardening.

        * platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt: Added.

2018-11-30  Justin Fan  <justin_fan@apple.com>

        [WebGPU] WebGPUQueue::submit and WebGPURenderingContext::present() implementation
        https://bugs.webkit.org/show_bug.cgi?id=192254

        Reviewed by Dean Jackson.

        Update webgpu-basics to render an image into canvas. Also added ref-test that draws 
        a green square onto a canvas using WebGPU; reference uses 2D canvas.

        * webgpu/js/basic-webgpu-functions.js:
        (render):
        * webgpu/simple-triangle-strip-expected.html: Added.
        * webgpu/simple-triangle-strip.html: Added.
        * webgpu/webgpu-basics.html:

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

        Can’t use RalphLauren.com on iPad because hover menus don’t stay up
        https://bugs.webkit.org/show_bug.cgi?id=192236
        <rdar://problem/45792118>

        Reviewed by Geoffrey Garen.

        * fast/events/touch/ios/hover-when-style-change-is-async-expected.txt: Added.
        * fast/events/touch/ios/hover-when-style-change-is-async.html: Added.

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

        ShadowRoot should have styleSheets property
        https://bugs.webkit.org/show_bug.cgi?id=191311
        <rdar://problem/46333290>

        Reviewed by Antti Koivisto.

        Added a regression test for testing that the JS wrapper of a StyleSheetList does not get collected
        as long as its shadow root is alive.

        * fast/shadow-dom/shadowroot-stylesheets-wrapper-gc-expected.txt: Added.
        * fast/shadow-dom/shadowroot-stylesheets-wrapper-gc.html: Added.

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

        Replace "auto fill" with "AutoFill" in some localizable strings
        https://bugs.webkit.org/show_bug.cgi?id=192233
        <rdar://problem/46311614>

        Reviewed by Chris Fleizach.

        Rebaseline a test.

        * accessibility/auto-fill-types-expected.txt:

2018-11-30  Devin Rousso  <drousso@apple.com>

        Web Inspector: replace all unicode characters with the escaped character code
        https://bugs.webkit.org/show_bug.cgi?id=192216
        <rdar://problem/46275637>

        Reviewed by Brian Burg.

        * inspector/audit/data-domAttributes-expected.txt:
        * inspector/audit/data-domNodes-expected.txt:
        * inspector/audit/data-errors-expected.txt:

2018-11-30  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Flesh out WebGPURenderPassDescriptor to match the WebGPU IDL
        https://bugs.webkit.org/show_bug.cgi?id=192213

        Reviewed by Dean Jackson.

        Updating some tests to match the updated WebGPURenderPassDescriptor. 

        * webgpu/js/basic-webgpu-functions.js:
        (render):
        * webgpu/render-command-encoding.html:
        * webgpu/render-passes.html:

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

        [LFC][BFC] Compute min/maxHeight margins only when they are needed.
        https://bugs.webkit.org/show_bug.cgi?id=192223

        Reviewed by Antti Koivisto.

        * fast/block/block-only/collapsed-margin-with-min-height-expected.txt: Added.
        * fast/block/block-only/collapsed-margin-with-min-height.html: Added.

2018-11-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Stop running tests without complex text enforced

        Rebaseline tests. Part 3.

2018-11-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Stop running tests without complex text enforced

        Rebaseline tests. Part 2.

2018-11-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Stop running tests without complex text enforced

        Rebaseline tests. Part 1.

2018-11-29  Frederic Wang  <fwang@igalia.com>

        Separate paint and scroll offsets for RenderLayerBacking::m_scrollingContentsLayer
        https://bugs.webkit.org/show_bug.cgi?id=183040

        Reviewed by Simon Fraser.

        Update expectations containing layer trees of RenderLayerBacking::m_scrollingContentsLayer, to separate offsetFromRenderer and
        scrollOffset. We have OLD offsetFromRenderer = NEW offsetFromRenderer - scrollOffset.

        * compositing/ios/overflow-scroll-touch-tiles-expected.txt:
        * fast/scrolling/ios/overflow-scroll-touch-expected.txt:
        * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
        * platform/ios/compositing/overflow/scrolling-without-painting-expected.txt:
        * platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
        * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
        * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
        * platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:

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

        Overflow scrolling layers need to be self-painting
        https://bugs.webkit.org/show_bug.cgi?id=192201

        Reviewed by Dean Jackson.

        * compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt: Added.
        * compositing/scrolling/overflow-scrolling-layers-are-self-painting.html: Added.

2018-11-29  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] DeviceIdHashSaltStorage should use iframe and top level documents
        https://bugs.webkit.org/show_bug.cgi?id=192182

        Reviewed by Youenn Fablet.

        * http/tests/media/media-stream/enumerate-devices-source-id-expected.txt:
        * http/tests/media/media-stream/enumerate-devices-source-id.html:
        * http/tests/media/media-stream/resources/enumerate-devices-source-id-frame.html:

2018-11-29  Christopher Reid  <chris.reid@sony.com>

        [Win] listDirectory in FileSystemWin.cpp should not skip all directories
        https://bugs.webkit.org/show_bug.cgi?id=192042

        Reviewed by Fujii Hironori.

        Enable storage tests on WinCairo and adding initial test expectations.

        * platform/wincairo/TestExpectations:

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

        Unreviewed, rolling out r238680.

        Caused existing webrtc layout tests to fail an assertion.

        Reverted changeset:

        "A sender created through addTransceiver and populated using
        addTrack should have its source set"
        https://bugs.webkit.org/show_bug.cgi?id=192136
        https://trac.webkit.org/changeset/238680

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

        REGRESSION (r238090): [ MacOS WK1 ] Layout Test imported/blink/compositing/squashing/squashing-into-ancestor-painted-layer.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=191639

        Unreviewed test gardening.

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

2018-11-29  Zalan Bujtas  <zalan@apple.com>

        [LFC][BFC][Quirk] Body and html height stretching.
        https://bugs.webkit.org/show_bug.cgi?id=192154

        Reviewed by Antti Koivisto.

        * fast/block/block-only/body-height-with-auto-html-height-quirk-expected.txt: Added.
        * fast/block/block-only/body-height-with-auto-html-height-quirk.html: Added.
        * fast/block/block-only/body-height-with-auto-html-height-quirk2-expected.txt: Added.
        * fast/block/block-only/body-height-with-auto-html-height-quirk2.html: Added.
        * fast/block/block-only/body-height-with-non-auto-html-height-quirk-expected.txt: Added.
        * fast/block/block-only/body-height-with-non-auto-html-height-quirk.html: Added.
        * fast/block/block-only/body-height-with-non-auto-html-height-quirk2-expected.txt: Added.
        * fast/block/block-only/body-height-with-non-auto-html-height-quirk2.html: Added.

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

        CSS subresource loads should not be observable from resource timing if the stylesheet is opaque
        https://bugs.webkit.org/show_bug.cgi?id=192132

        Reviewed by Ryosuke Niwa.

        * http/tests/security/clean-origin-css-exposed-resource-timing-expected.txt: Added.
        * http/tests/security/clean-origin-css-exposed-resource-timinge-timing.html: Added.
        * http/tests/security/cross-origin-css-resource-timing-expected.txt: Added.
        * http/tests/security/cross-origin-css-resource-timing.html: Added.
        * http/tests/security/resources/loading-subresources.css: Added.
        * http/tests/security/resources/imported-loading-subresources.css: Added.

2018-11-29  Ryosuke Niwa  <rniwa@webkit.org>

        Executing "insertunorderedlist" while selecting a contenteditable element inside a shadow dom hangs the browser
        https://bugs.webkit.org/show_bug.cgi?id=184049
        <rdar://problem/38931033>

        Reviewed by Antti Koivisto.

        Added a regression test for executing InsertUnorderedList inside a shadow tree.

        * editing/execCommand/insert-ordered-list-in-shadow-tree-expected.txt: Added.
        * editing/execCommand/insert-ordered-list-in-shadow-tree.html: Added.

2018-11-29  Justin Fan  <justin_fan@apple.com>

        [WebGPU] WebGPURenderPassEncoder::setPipeline, draw, and endPass prototypes
        https://bugs.webkit.org/show_bug.cgi?id=192134

        Reviewed by Dean Jackson.

        Updating the basic rendering test with more commands, and a prototype WPT-based test for WebGPURenderCommandEncoder's
        new functionality.

        * webgpu/js/basic-webgpu-functions.js:
        (render):
        * webgpu/render-command-encoding-expected.txt: Added.
        * webgpu/render-command-encoding.html: Added.
        * webgpu/render-passes.html:

2018-11-29  Justin Michaud  <justin_michaud@apple.com>

        CSS Painting API should pass 'this' correctly to paint callback, and repaint when properties change.
        https://bugs.webkit.org/show_bug.cgi?id=191443

        Reviewed by Dean Jackson.

        * fast/css-custom-paint/animate-expected.html: Added.
        * fast/css-custom-paint/animate-repaint-expected.txt: Added.
        * fast/css-custom-paint/animate-repaint.html: Added.
        * fast/css-custom-paint/animate.html: Added.
        * fast/css-custom-paint/constructor-expected.html: Added.
        * fast/css-custom-paint/constructor.html: Added.
        * fast/css-custom-paint/leaks-expected.txt: Added.
        * fast/css-custom-paint/leaks.html: Added.
        * fast/css-custom-paint/properties.html:
        * fast/css-custom-paint/resources/leaks-frame.html: Added.
        * platform/mac/fast/css-custom-paint/raf-leak-expected.txt: Added.

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

        A sender created through addTransceiver and populated using addTrack should have its source set
        https://bugs.webkit.org/show_bug.cgi?id=192136

        Reviewed by Eric Carlson.

        * webrtc/video-replace-track-expected.txt:
        * webrtc/video-replace-track.html:

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

        Unreviewed test gardening, skip three datalist tests that are marked as flaky crashes.

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

2018-11-29  Sihui Liu  <sihui_liu@apple.com>

        IndexedDB: breaks if binary data (Uint8Array) and autoIncrement key in store
        https://bugs.webkit.org/show_bug.cgi?id=185869
        <rdar://problem/40453623>

        Reviewed by Geoffrey Garen.

        * storage/indexeddb/objectstore-autoincrement-expected.txt:
        * storage/indexeddb/objectstore-autoincrement-private-expected.txt:
        * storage/indexeddb/resources/objectstore-autoincrement.js:
        (getLincolnAfterInjectedKeySuccess):
        (putBobSuccess):
        (getBobSuccess):
        (addLincolnWithExplicitKeySuccess):
        (putAbrahamSuccess):

2018-11-29  Sihui Liu  <sihui_liu@apple.com>

        Unexpected constructor / instanceof  behavior when retrieving indexedDB data in an iframe
        https://bugs.webkit.org/show_bug.cgi?id=185906
        <rdar://problem/40583100>

        Reviewed by Geoffrey Garen.

        * storage/indexeddb/instanceof-iframe-expected.txt: Added.
        * storage/indexeddb/instanceof-iframe.html: Added.
        * storage/indexeddb/resources/instanceof-iframe.js: Added.
        (test.else.shouldBe):
        (test.else.shouldBeTrue):
        (test.else.shouldBeFalse):
        (test.else.evalAndLog):
        (test):
        (callback):

2018-11-28  Dean Jackson  <dino@apple.com>

        [ES Modules] Allow .mjs content when loaded from file://
        https://bugs.webkit.org/show_bug.cgi?id=192100
        <rdar://problem/46320065>

        Reviewed by Sam Weinig.

        Test for both import() function and the import statement loading
        from .mjs files.

        * js/dom/modules/import-mjs-module-expected.txt: Added.
        * js/dom/modules/import-mjs-module.html: Added.
        * js/dom/modules/resources/module-simple-A.mjs: Added.
        * js/dom/modules/resources/module-simple-B.mjs: Added.
        * platform/win/TestExpectations: Skip this on Windows. Just wait for Windows
          to recognise the extension.

2018-11-29  Guillaume Emont  <guijemont@igalia.com>

        Gardening: skip test that newly times out on Armv7

        Unreviewed Test Gardening.

        * js/slow-stress/script-tests/marsaglia.js: skip on arm/linux

2018-11-29  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r238665.

        * platform/gtk/TestExpectations:

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

        Updating href on linearGradient and radialGradient doesn't update its rendering
        https://bugs.webkit.org/show_bug.cgi?id=191934

        Reviewed by Ryosuke Niwa.

        * fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree.html: Added.
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop-expected.html: Added.
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop.html: Added.
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop-expected.html: Added.
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop.html: Added.

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

        [ Mojave WK1 ] Layout Test fast/images/animated-image-different-dest-size.html fast/images/animated-image-loop-count.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=190383

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

2018-11-28  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Begin implementation of WebGPURenderPassEncoder and barebones WebGPURenderPassDescriptor
        https://bugs.webkit.org/show_bug.cgi?id=191990

        Reviewed by Dean Jackson.

        Add tests to ensure proper WebGPURenderPassEncoder creation. To be updated as WebGPURenderPassDescriptor is updated.

        * webgpu/js/basic-webgpu-functions.js:
        (render):
        * webgpu/render-passes-expected.txt: Added.
        * webgpu/render-passes.html: Added.

2018-11-28  Rob Buis  <rbuis@igalia.com>

        [XHR] Document.lastModified doesn't work for non-rendered documents
        https://bugs.webkit.org/show_bug.cgi?id=179375

        Reviewed by Alexey Proskuryakov.

        Unskip responsexml-document-properties.htm since the dynamic message is gone.

        * TestExpectations:
        * platform/wpe/TestExpectations:

2018-11-28  Frederic Wang  <fwang@igalia.com>

        [iOS Simulator Release WK2] media/no-fullscreen-when-hidden.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=192088

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations: Mark media/no-fullscreen-when-hidden.html as flaky.

2018-11-28  Yongjun Zhang  <yongjun_zhang@apple.com>

        Allow WebKit clients to specify a minimum effective width for layout.
        https://bugs.webkit.org/show_bug.cgi?id=191499
        <rdar://problem/45362678>

        Reviewed by Wenson Hsieh.

        Add two new tests. The first test verifies if we ignore meta viewport, setting a different effective width value
        will change the layout width of the page. The second test verifies if we don't ignore meta viewport, we will always
        respect that (980pt) and setting a different effective width value won't change the layout width. 


        * fast/viewport/ios/ipad/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport-expected.txt: Added.
        * fast/viewport/ios/ipad/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport.html: Added.
        * fast/viewport/ios/ipad/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport-expected.txt: Added.
        * fast/viewport/ios/ipad/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.setMinimumEffectiveWidth): Add a helper method to set the minimum effective width from a test.
        (window.UIHelper):

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

        Unreviewed, test gardening

        Add a time out parameter to the following test cases such that WebAuthN requests will timeout
        themselves instead of letting the wpt wrapper or test runner kill them.

        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
        * platform/mac-wk2/TestExpectations:

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

        Resync service-workers web platform tests from upstream
        https://bugs.webkit.org/show_bug.cgi?id=192035

        Reviewed by Youenn Fablet.

        * TestExpectations:
        * tests-options.json:

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

        Momentum scrolling ends at the wrong place when a scrolling overflow element has a non-zero border
        https://bugs.webkit.org/show_bug.cgi?id=191322

        Reviewed by Dean Jackson.

        * fast/scrolling/momentum-scroll-with-borders-expected.txt: Added.
        * fast/scrolling/momentum-scroll-with-borders.html: Added.
        * platform/ios/TestExpectations:

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

        Composited and tiled layers fail to update on scrolling in WebView
        https://bugs.webkit.org/show_bug.cgi?id=191821
        rdar://problem/46009272

        Reviewed by Zalan Bujtas.
        
        Tests for backing store attachment, and tile coverage before and after scrolling.

        * compositing/backing/backing-store-attachment-scroll-expected.txt: Added.
        * compositing/backing/backing-store-attachment-scroll.html: Added.
        * compositing/tiling/tile-coverage-on-scroll-expected.txt: Added.
        * compositing/tiling/tile-coverage-on-scroll.html: Added.
        * platform/mac-wk1/compositing/tiling/tile-coverage-on-scroll-expected.txt: Added. Root isn't tiled on WK1, so different result.

2018-11-27  Daniel Bates  <dabates@apple.com>

        Fix test timeout following  <https://trac.webkit.org/changeset/238545>
        (https://bugs.webkit.org/show_bug.cgi?id=191969)

        Actually call HTMLInputElement.setSelectionRange().

        * fast/forms/auto-fill-button/caps-lock-indicator-should-be-visible-after-hiding-auto-fill-strong-password-button-expected.html:

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

        Web Inspector: Add support for forcing color scheme appearance in DOM tree.
        https://bugs.webkit.org/show_bug.cgi?id=191820
        rdar://problem/46153172

        Reviewed by Devin Rousso.

        * TestExpectations: Skip dark mode tests on other platforms.
        * inspector/css/force-page-appearance-expected.txt: Added.
        * inspector/css/force-page-appearance.html: Added.
        * platform/mac/TestExpectations: Expect dark mode tests to pass on Mojave and later.

2018-11-27  Tim Horton  <timothy_horton@apple.com>

        Serialize and deserialize editable image strokes
        https://bugs.webkit.org/show_bug.cgi?id=192002
        <rdar://problem/30900149>

        Reviewed by Dean Jackson.

        * editing/images/paste-editable-image-expected.txt: Added.
        * editing/images/paste-editable-image.html: Added.
        Add a test that we can copy and paste and editable image and
        continue to edit it, and are affecting a different attachment than the original.

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

        Disallow loading webarchives as iframes
        https://bugs.webkit.org/show_bug.cgi?id=191728
        <rdar://problem/45524528>

        Reviewed by Youenn Fablet.

        * platform/mac-wk1/webarchive/loading/test-loading-archive-subresource-expected.txt: Added.
        * platform/mac/fast/loader/webarchive-encoding-respected.html:
        * webarchive/loading/cache-expired-subresource.html:
        * webarchive/loading/mainresource-null-mimetype-crash.html:
        * webarchive/loading/missing-data.html:
        * webarchive/loading/resources/test-loading-archive-main.webarchive: Copied from LayoutTests/webarchive/loading/test-loading-archive.html.
        * webarchive/loading/test-loading-archive-subresource-expected.txt: Added.
        * webarchive/loading/test-loading-archive-subresource-null-mimetype.html:
        * webarchive/loading/test-loading-archive-subresource.html: Copied from LayoutTests/webarchive/loading/test-loading-archive.html.
        * webarchive/loading/test-loading-archive.html:
        * webarchive/loading/test-loading-top-archive-expected.txt: Added.
        * webarchive/loading/test-loading-top-archive.html: Added.

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

        Layout Test svg/text/monospace-text-size-in-img.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=192011

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Layout Test fast/inline/simple-inline-with-out-of-flow-descendant.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=192010

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        REGRESSION (r238078): Do not draw caps lock indicator when Strong Password button is shown
        https://bugs.webkit.org/show_bug.cgi?id=191969
        <rdar://problem/46247569>

        Reviewed by Dean Jackson.

        Add tests to ensure that we show or hide the caps lock indicator depending on whether the
        Strong Password button is visible.

        * TestExpectations: Skip the tests below on all platforms. We will selectively enable them on Mac.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-be-visible-after-hiding-auto-fill-strong-password-button-expected.html: Added.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-be-visible-after-hiding-auto-fill-strong-password-button.html: Added.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-not-be-visible-when-auto-fill-strong-password-button-is-visible-expected.html: Added.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-not-be-visible-when-auto-fill-strong-password-button-is-visible.html: Added.
        * platform/mac-wk2/TestExpectations: Mark the tests above as PASS so that we run them.

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

        Unreviewed, rolling out r238357.

        One of the layout tests added with this change is failing on Mojave.

        Reverted changeset:
        "REGRESSION (r238078): Do not draw caps lock indicator when Strong Password button is shown"
        https://bugs.webkit.org/show_bug.cgi?id=191969
        https://trac.webkit.org/changeset/238513

2018-11-26  Tim Horton  <timothy_horton@apple.com>

        Insert <attachment> elements under editable images to make their backing data accessible
        https://bugs.webkit.org/show_bug.cgi?id=191844
        <rdar://problem/30900149>

        Reviewed by Simon Fraser.

        * editing/images/editable-image-creates-attachment-expected.txt: Added.
        * editing/images/editable-image-creates-attachment.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.attachmentInfo):
        (window.UIHelper):

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

        REGRESSION (r237738): Command Down Arrow doesn't scroll to the end of a page anymore
        https://bugs.webkit.org/show_bug.cgi?id=191967
        <rdar://problem/45976390>

        Reviewed by Tim Horton.

        Add tests to ensure that Command + Down Arrow and Command + Up Arrow scroll to the end of
        the page and the top of the page, respectively.

        * fast/scrolling/ios/key-command-scroll-to-bottom-expected.html: Added.
        * fast/scrolling/ios/key-command-scroll-to-bottom.html: Added.
        * fast/scrolling/ios/key-command-scroll-to-top-expected.html: Added.
        * fast/scrolling/ios/key-command-scroll-to-top.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.keyDown): Pass the modifiers array to EventSender.keyDown() to make
        this function work on Mac.

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

        SVG use element inside a shadow tree cannot reference an element in the same tree
        https://bugs.webkit.org/show_bug.cgi?id=174977
        <rdar://problem/33665636>

        Reviewed by Zalan Bujtas.

        Added tests for specifying a fragment URL to refer to other elements within shadow trees.

        This patch doesn't add a test for updating a fragment URL of linearGradient and radialGradient
        since it doesn't work at all even outside shadow trees. See webkit.org/b/191934.

        * fast/shadow-dom/svg-animate-href-change-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-animate-href-change-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-animate-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-animate-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-feimage-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-feimage-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-linear-gradient-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-linear-gradient-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-mpath-href-change-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-mpath-href-change-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-mpath-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-mpath-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-radial-gradient-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-radial-gradient-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-text-path-href-change-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-text-path-href-change-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-text-path-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-text-path-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-thref-href-change-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-thref-href-change-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-thref-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-thref-href-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-use-href-change-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-use-href-change-in-shadow-tree.html: Added.
        * fast/shadow-dom/svg-use-href-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/svg-use-href-in-shadow-tree.html: Added.

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

        Caret disappears at end of password field when caps lock indicator is shown; password field
        not scrolled when caps lock indicator is shown
        https://bugs.webkit.org/show_bug.cgi?id=191164
        <rdar://problem/45738179>

        Reviewed by Dean Jackson.

        Add a test to ensure that we scroll the password field when caps lock is toggled.

        * TestExpectations: Skip the test on all platforms as we only support toggling Caps Lock in
        WebKit2 on Mac at the moment.
        * fast/forms/password-scrolled-after-caps-lock-toggled-expected.txt: Added.
        * fast/forms/password-scrolled-after-caps-lock-toggled.html: Added.
        * platform/mac-wk2/TestExpectations: Mark the test as PASS so that we run it.

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

        Placeholder text is not repainted after caps lock indicator is hidden
        https://bugs.webkit.org/show_bug.cgi?id=191968
        <rdar://problem/46247234>

        Substitute UIHelper.toggleCapsLock() for testRunner.toggleCapsLock() as the former replaces
        the latter following r238512.

        * fast/repaint/placeholder-after-caps-lock-hidden.html:

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

        Placeholder text is not repainted after caps lock indicator is hidden
        https://bugs.webkit.org/show_bug.cgi?id=191968
        <rdar://problem/46247234>

        Reviewed by Zalan Bujtas.

        Add a test to ensure to that the placeholder text is repainted when the caps lock indicator is hidden.

        * TestExpectations: Skip the test on all platforms as we only support toggling Caps Lock in
        WebKit2 on Mac at the moment.
        * fast/repaint/placeholder-after-caps-lock-hidden.html: Added.
        * platform/mac-wk2/TestExpectations: Mark the test as PASS so that we run it.

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

        REGRESSION (r238078): Do not draw caps lock indicator when Strong Password button is shown
        https://bugs.webkit.org/show_bug.cgi?id=191969
        <rdar://problem/46247569>

        Reviewed by Dean Jackson.

        Add tests to ensure that we show or hide the caps lock indicator depending on whether the
        Strong Password button is visible.

        * TestExpectations: Skip the tests below on all platforms. We will selectively enable them on Mac.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-be-visible-when-after-hiding-auto-fill-strong-password-button-expected.html: Added.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-be-visible-when-after-hiding-auto-fill-strong-password-button.html: Added.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-not-be-visible-when-auto-fill-strong-password-button-is-visible-expected.html: Added.
        * fast/forms/auto-fill-button/caps-lock-indicator-should-not-be-visible-when-auto-fill-strong-password-button-is-visible.html: Added.
        * platform/mac-wk2/TestExpectations: Mark the tests above as PASS so that we run them.

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

        Move testRunner.toggleCapsLock() to uiController
        https://bugs.webkit.org/show_bug.cgi?id=191972

        Reviewed by Tim Horton.

        Updated existing test to use UIHelper.toggleCapsLock(), which calls uiController.toggleCapsLock(),
        now that testRunner.toggleCapsLock() was removed.

        * fast/events/detect-caps-lock.html:
        * resources/ui-helper.js:
        (window.UIHelper.toggleCapsLock): Added. Convenience function to call uiController.toggleCapsLock()
        and return a Promise that is resolved once the UIProcess has dispatched the NSEvent to simulate
        pressing the caps lock key.

2018-11-26  Zalan Bujtas  <zalan@apple.com>

        Unreviewed rebaseline after r238493.

        * platform/ios/fast/inline/inline-content-with-float-and-margin-expected.txt: Added.

2018-11-26  Zalan Bujtas  <zalan@apple.com>

        Unreviewed test gardening after r238280.

        * fast/content-observation/click-event-suppression-on-content-change.html:

2018-11-26  Zalan Bujtas  <zalan@apple.com>

        Unreviewed rebaseline after r238460.

        * platform/ios/fast/inline/inline-content-with-image-simple-expected.txt: Added.

2018-11-25  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Use float box's margin box to adjust the line constraints.
        https://bugs.webkit.org/show_bug.cgi?id=191961

        Reviewed by Antti Koivisto.

        * fast/inline/inline-content-with-float-and-margin-expected.txt: Added.
        * fast/inline/inline-content-with-float-and-margin.html: Added.

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

        [css-grid] Fix grid container sizing under min-content height
        https://bugs.webkit.org/show_bug.cgi?id=191889

        Reviewed by Javier Fernandez.

        Update tests results to the new behavior.
        Also modified a little bit the test to keep them in sync with Blink versions.

        * fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows-expected.txt:
        * fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html:
        * fast/css-grid-layout/maximize-tracks-definite-indefinite-height.html:

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

        Unreviewed test gardening, rebaseline webgpu/queue-creation.html.

        * webgpu/queue-creation-expected.txt:

2018-11-25  Tim Horton  <timothy_horton@apple.com>

        Make it possible to insert editable images with a gesture
        https://bugs.webkit.org/show_bug.cgi?id=191937

        Reviewed by Wenson Hsieh.

        * editing/images/basic-editable-image-from-execCommand-expected.txt: Added.
        * editing/images/basic-editable-image-from-execCommand.html: Added.
        Add a test that ensures that editable images also work when
        inserted via the editor command.

        * editing/images/redo-insert-editable-image-maintains-strokes-expected.txt: Added.
        * editing/images/redo-insert-editable-image-maintains-strokes.html: Added.
        Add a test that ensures that strokes are maintained when re-doing an
        un-done editable image insertion.

        * editing/images/undo-insert-editable-image-expected.txt: Added.
        * editing/images/undo-insert-editable-image.html: Added.
        Add a test that ensures that the selection stays in a sensible place
        when undoing and redoing editable image insertion.

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

        REGRESSION (r236785): Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
        https://bugs.webkit.org/show_bug.cgi?id=191921

        Reviewed by Dean Jackson.

        Added a regression test.

        * editing/pasteboard/copy-paste-across-shadow-boundaries-5-expected.txt: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-5.html: Added.
        * platform/ios/editing/pasteboard/copy-paste-across-shadow-boundaries-5-expected.txt: Added.

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

        Updating href on textPath doesn't update its rendering
        https://bugs.webkit.org/show_bug.cgi?id=191920

        Reviewed by Dean Jackson.

        Added a ref test.

        * svg/text/textpath-reference-update-expected.html: Added.
        * svg/text/textpath-reference-update.html: Added.

2018-11-23  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Add support for variable height runs.
        https://bugs.webkit.org/show_bug.cgi?id=191925

        Reviewed by Antti Koivisto.

        * fast/inline/inline-content-with-image-simple-expected.txt: Added.
        * fast/inline/inline-content-with-image-simple.html: Added.

2018-11-23  Javier Fernandez  <jfernandez@igalia.com>

        [css-grid] Implement Baseline Alignment for grid items
        https://bugs.webkit.org/show_bug.cgi?id=145566

        Reviewed by Manuel Rego Casasnovas.

        Most of the baseline realated tests pass now; just a few still fail because of unrelated bugs.

        * TestExpectations: Removed several entries, related to the baseline tests that are now passing.
        * fast/css-grid-layout/grid-align-baseline-expected.txt:
        * fast/css-grid-layout/grid-align-baseline-vertical-expected.txt:
        * fast/css-grid-layout/grid-baseline-expected.html:
        * fast/css-grid-layout/grid-baseline-margins-expected.html:
        * fast/css-grid-layout/grid-baseline-margins.html:
        * fast/css-grid-layout/grid-baseline-must-respect-grid-order-expected.txt:
        * fast/css-grid-layout/grid-baseline-must-respect-grid-order.html:
        * fast/css-grid-layout/grid-baseline.html:
        * fast/css-grid-layout/grid-self-baseline-and-flex-tracks-with-indefinite-container-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-self-baseline-and-flex-tracks-with-indefinite-container-crash.html: Added.
        * fast/css-grid-layout/grid-self-baseline-and-flexible-tracks-should-not-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-self-baseline-and-flexible-tracks-should-not-crash.html: Added.
        * fast/css-grid-layout/grid-self-baseline-and-item-relayout-should-not-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-self-baseline-and-item-relayout-should-not-crash.html: Added.
        * fast/css-grid-layout/grid-self-baseline-and-relative-sized-items-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-self-baseline-and-relative-sized-items-crash.html: Added.
        * fast/css-grid-layout/grid-self-baseline-and-relative-sized-tracks-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-self-baseline-and-relative-sized-tracks-crash.html: Added.
        * fast/css-grid-layout/grid-self-baseline-followed-by-item-style-change-should-not-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-self-baseline-followed-by-item-style-change-should-not-crash.html: Added.
        * fast/css-grid-layout/grid-self-baseline-two-dimensional-expected.txt:
        * fast/css-grid-layout/grid-self-baseline-two-dimensional.html:

2018-11-22  Dean Jackson  <dino@apple.com>

        Implement WebGPUQueue and device.getQueue()
        https://bugs.webkit.org/show_bug.cgi?id=191911
        <rdar://problem/46214871>

        Reviewed by Antoine Quint.

        WPT-style test for queue creation.

        * webgpu/queue-creation-expected.txt: Added.
        * webgpu/queue-creation.html: Added.

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

        Improve fast/scrolling/scrolling-tree-includes-frame.html
        https://bugs.webkit.org/show_bug.cgi?id=191912

        These are small improvements to scrolling-tree-includes-frame.html:
        - Run doTest() after the iframe is loaded and use waitUntilDone/notifyDone for more reliable timing.
        - Use iframe@srcdoc instead of iframe@src and put the content of the iframe document in its own line.
        - Move the iframe style in a separate <style> tag and ensure the iframe is really positioned at (0,0)
        with no extra margin/padding/border.
        - Remove unnecessary id="frame"
        The test expectation is not changed.

        Reviewed by Antonio Gomes.

        * fast/scrolling/scrolling-tree-includes-frame.html:

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

        [LFC][IFC] Offset formatting context root runs with horizontal margins.
        https://bugs.webkit.org/show_bug.cgi?id=191900

        Reviewed by Antti Koivisto.

        * fast/inline/inline-content-and-nested-formatting-root-with-margin-left-right-expected.txt: Added.
        * fast/inline/inline-content-and-nested-formatting-root-with-margin-left-right.html: Added.

2018-11-22  Simon Fraser  <simon.fraser@apple.com>

        Extremely small monospace text size when SVG is included as an img
        https://bugs.webkit.org/show_bug.cgi?id=191834

        Reviewed by Myles C. Maxfield.
        
        The test has an x offset in the text transform to work around a different bug
        with text position (webkit.org/b/191871).

        * svg/text/monospace-text-size-in-img-expected.html: Added.
        * svg/text/monospace-text-size-in-img.html: Added.

2018-11-22  Javier Fernandez  <jfernandez@igalia.com>

        Tables with vertical-lr writing-mode doesn't apply correctly vertical-align: baseline
        https://bugs.webkit.org/show_bug.cgi?id=191881

        Reviewed by Manuel Rego Casasnovas.

        Tests to verify that columns of a vertical-lr table vertically aligned by baseline work like
        in the case of horizontal tables.
        Also added tests to verify flexbox baseline alignment works as expected in vertical-lr mode.

        The vertical-align-table-baseline.html test has been rebaselined due to the new behavior.

        * fast/writing-mode/vertical-align-table-baseline-latin-expected.html: Added.
        * fast/writing-mode/vertical-align-table-baseline-latin.html: Added.
        * fast/writing-mode/vertical-align-flex-baseline-expected.html: Added.
        * fast/writing-mode/vertical-align-flex-baseline-html: Added.
        * platform/gtk/fast/writing-mode/vertical-align-table-baseline-expected.txt: Rebaseline.
        * platform/gtk/fast/writing-mode/vertical-align-table-baseline-expected.png: Rebaseline.
        * platform/win/fast/writing-mode/vertical-align-table-baseline-expected.txt: Rebaseline.
        * platform/win/fast/writing-mode/vertical-align-table-baseline-expected.png: Rebaseline.

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

        [Cocoa] [WebKit2] Add support for replacing find-in-page text matches
        https://bugs.webkit.org/show_bug.cgi?id=191786
        <rdar://problem/45813871>

        Reviewed by Ryosuke Niwa.

        Introduce a `LayoutTests/editing/find` directory to contain tests around `FindController`, and add 7 new layout
        tests. These are currently enabled only for WebKit2 on macOS and iOS.

        * TestExpectations:
        * editing/find/find-and-replace-adjacent-words-expected.txt: Added.
        * editing/find/find-and-replace-adjacent-words.html: Added.

        Test find-and-replace with adjacent words.

        * editing/find/find-and-replace-at-editing-boundary-expected.txt: Added.
        * editing/find/find-and-replace-at-editing-boundary.html: Added.

        Test find-and-replace when one of the find matches straddles an editing boundary. In this case, we verify that
        the replacement does not occur, since only part of the word would be replaced.

        * editing/find/find-and-replace-basic-expected.txt: Added.
        * editing/find/find-and-replace-basic.html: Added.

        Add a basic test that exercises a single text replacement, and "replace all".

        * editing/find/find-and-replace-in-subframes-expected.txt: Added.
        * editing/find/find-and-replace-in-subframes.html: Added.

        Test find-and-replace when some of the matches are in editable content in subframes. This test additionally
        contains matches in shadow content (in this case, text fields) within both the main document and the subframe,
        and verifies that text replacement reaches these elements as well.

        * editing/find/find-and-replace-no-matches-expected.txt: Added.
        * editing/find/find-and-replace-no-matches.html: Added.

        Test find-and-replace when no replacement matches are specified. In this case, we fall back to inserting the
        replacement text at the current selection.

        * editing/find/find-and-replace-noneditable-matches-expected.txt: Added.
        * editing/find/find-and-replace-noneditable-matches.html: Added.

        Test find-and-replace when some of the matches to replace are noneditable, others are editable, and others are
        editable but are nested within noneditable elements (i.e. `contenteditable=false`). In this case, "replace all"
        should still replace all fully editable matches.

        * editing/find/find-and-replace-replacement-text-input-events-expected.txt: Added.
        * editing/find/find-and-replace-replacement-text-input-events.html: Added.

        Tests that find-and-replace emits input events of `inputType` "insertReplacementText", except when inserting
        replacement text at a caret selection.

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

2018-11-21  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Horizontal margins should be considered as non-breakable space
        https://bugs.webkit.org/show_bug.cgi?id=191894

        Reviewed by Antti Koivisto.

        * fast/inline/inline-content-with-margin-left-right-expected.txt: Added.
        * fast/inline/inline-content-with-margin-left-right.html: Added.

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

        Mutation observers doesn't get notified of character data mutation made by the parser
        https://bugs.webkit.org/show_bug.cgi?id=191874

        Reviewed by Antti Koivisto.

        Added a regression test.

        * fast/dom/MutationObserver/observe-parser-character-data-change-expected.txt: Added.
        * fast/dom/MutationObserver/observe-parser-character-data-change.html: Added.

2018-11-21  Zalan Bujtas <zalan@apple.com>

        [LFC][IFC] Border should be considered as non-breakable space
        https://bugs.webkit.org/show_bug.cgi?id=191891

        Reviewed by Antti Koivisto.

        * fast/inline/inline-content-with-border-left-right-expected.txt: Added.
        * fast/inline/inline-content-with-border-left-right.html: Added.

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

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

        * platform/gtk/TestExpectations:

2018-11-21  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Take nonBreakableStart/End into use.
        https://bugs.webkit.org/show_bug.cgi?id=191873

        Reviewed by Antti Koivisto.

        * fast/inline/inline-content-with-padding-left-right-expected.txt: Added.
        * fast/inline/inline-content-with-padding-left-right.html: Added.

2018-11-20  Ryosuke Niwa  <rniwa@webkit.org>

        Input element gains focus when a selectstart event listener on document prevents the default action
        https://bugs.webkit.org/show_bug.cgi?id=191714
        <rdar://problem/46174389>

        Reviewed by Antti Koivisto.

        Added a regression test.

        * fast/events/selectstart-prevent-default-should-not-focus-input-expected.txt: Added.
        * fast/events/selectstart-prevent-default-should-not-focus-input.html: Added.
        * platform/ios/TestExpectations:

2018-11-19  Ryosuke Niwa  <rniwa@webkit.org>

        Click on node assigned to slot in button's shadow cause loss of button focus
        https://bugs.webkit.org/show_bug.cgi?id=191694
        <rdar://problem/46107920>

        Reviewed by Wenson Hsieh.

        Added a regression test.

        * fast/shadow-dom/focus-slot-parent-expected.txt: Added.
        * fast/shadow-dom/focus-slot-parent.html: Added.

2018-11-19  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Begin implementing WebGPUTexture, WebGPUTextureView, and WebGPUTextureFormatEnum, and WebGPUSwapChain::configure upgrades
        https://bugs.webkit.org/show_bug.cgi?id=191794

        Reviewed by Dean Jackson.

        Did some refactoring to better share code among tests, and added basic functionality test for 
        WebGPUTextures and WebGPUTextureView, to be fleshed out when their descriptor objects are implemented. 

        * webgpu/command-buffers.html: Refactored to use basic-webgpu-functions.js.
        * webgpu/js/basic-webgpu-functions.js: Added.
        (vertex.Vertex.vertex_main): The basic MSL code has been moved into this file.
        (fragment.float4.fragment_main):
        (runWebGPUTests): Creates a WebGPURenderingContext on a default canvas and runs its provided functions.
        (async.runWebGPUTestsOnCanvas): 
        (async.setUpContexts): Tests proper creation of a basic WebGPURenderingContext.
        (setUpModule): Creates a basic WebGPUShaderModule.
        (setUpPipelineDescriptor): Creates a basic WebGPURenderPipelineDescriptor.
        (setUpPipeline): Creates a basic WebGPURenderPipeline.
        (render):
        * webgpu/js/set-up-webgpu-contexts.js: Moved into basic-webgpu-functions.js.
        * webgpu/render-pipelines-expected.txt:
        * webgpu/render-pipelines.html: Refactored to use basic-webgpu-functions.js.
        * webgpu/shader-modules.html: Refactored to use basic-webgpu-functions.js.
        * webgpu/textures-textureviews-expected.txt: Added.
        * webgpu/textures-textureviews.html: Added.
        * webgpu/webgpu-basics.html: Refactored to use basic-webgpu-functions.js.

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

        Dragging image with a border-image larger than the image element crashes
        https://bugs.webkit.org/show_bug.cgi?id=191817
        <rdar://problem/46159222>

        Reviewed by Ryosuke Niwa.

        Verifies that an image that meets the pathological criteria described in Source/WebCore/ChangeLog can still be
        dragged and dropped into an editable area.

        * fast/events/drag-image-with-border-image.html: Added.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/wpe/TestExpectations:

        Enable this test only in WebKit1.

2018-11-18  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Unreviewed, rolling in the rest of r237254
        https://bugs.webkit.org/show_bug.cgi?id=190340

        * fast/dom/attribute-event-listener-errors-expected.txt:
        * fast/events/attribute-listener-deletion-crash-expected.txt:
        * fast/events/window-onerror-syntax-error-in-attr-expected.txt:
        * js/dom/invalid-syntax-for-function-expected.txt:
        * js/dom/script-start-end-locations-expected.txt:

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

        Web Inspector: Network: add button to show system certificate dialog
        https://bugs.webkit.org/show_bug.cgi?id=191458
        <rdar://problem/45977019>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/getSerializedCertificate-expected.txt: Added.
        * http/tests/inspector/network/getSerializedCertificate.html: Added.

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

2018-11-17  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] InlineFormattingState::addDetachingRule should accumulate rules.
        https://bugs.webkit.org/show_bug.cgi?id=191801

        Reviewed by Antti Koivisto.

        * fast/inline/simple-inline-with-out-of-flow-descendant2-expected.txt: Added.
        * fast/inline/simple-inline-with-out-of-flow-descendant2.html: Added.

2018-11-17  Jonathan Hammer  <jonathan@e3software.com>

        Caret stops blinking after context menu shown
        https://bugs.webkit.org/show_bug.cgi?id=191715

        Reviewed by Ryosuke Niwa.

        * fast/events/contextmenu-dismiss-blink-caret-expected.txt: Added.
        * fast/events/contextmenu-dismiss-blink-caret.html: Added.

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

        [Pointer Events] event.isPrimary doesn't always represent the oldest active touch
        https://bugs.webkit.org/show_bug.cgi?id=191752
        <rdar://problem/46129270>

        Reviewed by Dean Jackson.

        Add a new test that checks that adding a touch after another existing touch does not make it be
        the primary touch, but that removing the first touch makes the second touch become the primary touch.

        To do this we add a new ui.sequence() method that allows a series of touch actions to be performed
        in a linear sequence. The test author can create a finger and call various actions on it, currently
        begin(), move() and end().

        When these actions are processed, we compute all "stationary" actions for each part of the sequence
        so that we can provide this to the uiController.sendEventStream() function.

        Finally, we add a way to track events received by the target and assert that the events that were
        received match those that were expected.

        * pointerevents/ios/pointer-events-is-primary-expected.txt: Added.
        * pointerevents/ios/pointer-events-is-primary.html: Added.
        * pointerevents/utils.js:
        (prototype.handleEvent):
        (prototype.assertMatchesEvents):
        (const.ui.new.UIController):
        (const.ui.new.UIController.prototype.finger):
        (const.ui.new.UIController.prototype.pinchOut):
        (const.ui.new.UIController.prototype.sequence):
        (const.ui.new.UIController.prototype._runEvents):
        (prototype.begin):
        (prototype.move):
        (prototype.end):
        (prototype.stationary):
        (prototype._action):

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

        Web Inspector: Audit: minor style improvements
        https://bugs.webkit.org/show_bug.cgi?id=191727

        Reviewed by Joseph Pecoraro.

        * inspector/audit/resources/audit-utilities.js:

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

        Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Local Inspector)
        https://bugs.webkit.org/show_bug.cgi?id=191740
        <rdar://problem/45470897>

        Reviewed by Timothy Hatcher.

        * inspector/unit-tests/target-manager-expected.txt:
        * inspector/unit-tests/target-manager.html:
        Update test to pass in both a MultiplexingBackendTarget and DirectBackendTarget world.

2018-11-16  Jeremy Jones  <jeremyj@apple.com>

        Include AirPlay destination name in AirPlay placard.
        https://bugs.webkit.org/show_bug.cgi?id=191574
        rdar://problem/45536144

        Reviewed by Eric Carlson.

        Updated tests for string changes.

        * media/modern-media-controls/airplay-placard/airplay-placard-expected.txt:
        * media/modern-media-controls/airplay-placard/airplay-placard.html:

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

        REGRESSION (r232376): Layout Test inspector/console/webcore-logging.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=186425

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Remove flaky expectation.

2018-11-16  Sihui Liu  <sihui_liu@apple.com>

        Storing blobs in IDB on iOS: "Error preparing blob/file"
        https://bugs.webkit.org/show_bug.cgi?id=188438
        <rdar://problem/43097279>

        Reviewed by Alex Christensen.

        Three IDB blob tests are passing on iOS device now.

        * platform/ios-device/TestExpectations:

2018-11-16  Zalan Bujtas  <zalan@apple.com>

        [iOS] 2 subsequent taps are required to trigger certain tasks on the desktop version of YouTube.com
        https://bugs.webkit.org/show_bug.cgi?id=191712
        <rdar://problem/45612900>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/click-instead-of-hover-simple-expected.txt: Added.
        * fast/events/touch/ios/click-instead-of-hover-simple.html: Added.

2018-11-16  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Add support for out-of-flow positioned boxes
        https://bugs.webkit.org/show_bug.cgi?id=191726

        Reviewed by Antti Koivisto.

        * fast/inline/simple-inline-with-out-of-flow-descendant-expected.txt: Added.
        * fast/inline/simple-inline-with-out-of-flow-descendant.html: Added.
        * platform/ios/TestExpectations:

2018-11-16  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer][MediaStream] Handle track addition and removal
        https://bugs.webkit.org/show_bug.cgi?id=191599

        Reviewed by Xabier Rodriguez-Calvar.

        * fast/mediastream/MediaStream-video-element-remove-track-expected.txt: Added.
        * fast/mediastream/MediaStream-video-element-remove-track.html: Added.

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

        PointerEvents should not require touch event listeners to be registered
        https://bugs.webkit.org/show_bug.cgi?id=191333
        <rdar://problem/45857523>

        Reviewed by Dean Jackson.

        Add two iOS tests that check that we dispatch pointer events when only those events are registered
        and that we correctly account for calls to preventDefault(). To support pointer events test, we add
        a new utility where we will be adding user interaction functions that should allow these tests to be
        submitted to the WPT repository provided browsers implement their own versions of the UIController.

        * TestExpectations:
        * pointerevents/ios/pointer-events-dispatch-on-touch-expected.txt: Added.
        * pointerevents/ios/pointer-events-dispatch-on-touch.html: Added.
        * pointerevents/ios/pointer-events-prevent-default-expected.txt: Added.
        * pointerevents/ios/pointer-events-prevent-default.html: Added.
        * pointerevents/utils.js: Added.

2018-11-15  Zalan Bujtas  <zalan@apple.com>

        [iOS] Do not get stuck in indeterminate content observation state.
        https://bugs.webkit.org/show_bug.cgi?id=191719

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/stuck-with-hover-state-expected.txt: Added.
        * fast/events/touch/ios/stuck-with-hover-state.html: Added.

2018-11-15  Simon Fraser  <simon.fraser@apple.com>

        Add layout test for iframe contents disappearing on view unparent/reparent
        https://bugs.webkit.org/show_bug.cgi?id=191725

        Reviewed by Alex Christensen.
        
        This test tests the changes made in r238229.

        * compositing/iframes/remove-reinsert-webview-with-iframe-expected.txt: Added.
        * compositing/iframes/remove-reinsert-webview-with-iframe.html: Added.
        * platform/ios/compositing/iframes/remove-reinsert-webview-with-iframe-expected.txt: Added.
        * platform/mac-wk1/compositing/iframes/remove-reinsert-webview-with-iframe-expected.txt: Added.

2018-11-15  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r238090) Composited iframes that resize from zero don't show
        https://bugs.webkit.org/show_bug.cgi?id=191733
        rdar://problem/46107764

        Reviewed by Zalan Bujtas.

        * compositing/iframes/resize-from-zero-size-expected.txt: Added.
        * compositing/iframes/resize-from-zero-size.html: Added.

2018-11-15  Simon Fraser  <simon.fraser@apple.com>

        Overlay with -webkit-overflow-scrolling:touch doesn't become scrollable after added text makes it taller
        https://bugs.webkit.org/show_bug.cgi?id=158342
        rdar://problem/26652811

        Reviewed by Zalan Bujtas.

        Patch partly by Frédéric Wang.

        Add a test to check that scrollability of composited/non-composited overflow divs is properly
        updated. This test used to fail and assert before #238090. A second test with nested divs
        stills exhibit the issue and is fixed by the present commit.

        * fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt: Added.
        * fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt: Added.
        * fast/scrolling/ios/change-scrollability-on-content-resize-nested.html: Added.
        * fast/scrolling/ios/change-scrollability-on-content-resize.html: Added.

2018-11-15  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r238244.

        Caused High Sierra test runs to fail early with 50 crashes and
        casued 25 API failures.

        Reverted changeset:

        "[css-logical] Implement flow-relative margin, padding and
        border shorthands"
        https://bugs.webkit.org/show_bug.cgi?id=188697
        https://trac.webkit.org/changeset/238244

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

        imported/w3c/web-platform-tests/encoding tests take > 30 minutes to run on debug bots
        https://bugs.webkit.org/show_bug.cgi?id=191720

        Unreviewed test gardening.

        * TestExpectations: Skip the directory on debug.

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

        REGRESSION (r238038): [iOS] Layout test fast/forms/ios/validation-bubble-dismiss-on-tap.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=191710
        <rdar://problem/46104093>

        Reviewed by Simon Fraser.

        There is a small amount of time after we ask to show the popover before the popover is actually shown on screen.
        During this period, clicks are eaten and not reported to the view. For this reason, we keep tapping until the
        popup is dismissed.

        * fast/forms/ios/validation-bubble-dismiss-on-tap-expected.txt:
        * fast/forms/ios/validation-bubble-dismiss-on-tap.html:

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

        [WebAuthN] Use a real nonce for CTAPHID_INIT
        https://bugs.webkit.org/show_bug.cgi?id=191533
        <rdar://problem/46103502>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/ctap-hid-failure.https-expected.txt:
        * http/wpt/webauthn/ctap-hid-failure.https.html:
        * http/wpt/webauthn/ctap-hid-success.https-expected.txt:
        * http/wpt/webauthn/ctap-hid-success.https.html:

2018-11-15  Justin Fan  <justin_fan@apple.com>

        [WebGPU] WebGPUCommandBuffer prototype
        https://bugs.webkit.org/show_bug.cgi?id=191663

        Reviewed by Dean Jackson.

        Begin implementation of WebGPUCommandBuffers as well as GPUQueues (MTLCommandBuffer, MTLCommandQueue).

        New testing for WebGPUCommandBuffers, to be fleshed out when WebGPUCommandBufferDescriptors
        are added to the specification.

        * webgpu/command-buffers-expected.txt: Added.
        * webgpu/command-buffers.html: Basic functionality, with more stress tests to be added when the spec is updated.
        * webgpu/webgpu-basics.html: Updated to create the command buffer used by later rendering operations.

2018-11-15  Oriol Brufau  <obrufau@igalia.com>

        [css-logical] Implement flow-relative margin, padding and border shorthands
        https://bugs.webkit.org/show_bug.cgi?id=188697

        Reviewed by Simon Fraser and Antti Koivisto.

        Add tests checking that CSS properties disabled behind runtime flags
        are not exposed.

        * platform/ios/webexposed/css-properties-as-js-properties-expected.txt: Added.
        * platform/ios/webexposed/css-property-listing-expected.txt: Added.
        * platform/mac/webexposed/css-properties-as-js-properties-expected.txt: Added.
        * platform/mac/webexposed/css-property-listing-expected.txt: Added.
        * platform/win/webexposed/css-properties-as-js-properties-expected.txt: Added.
        * platform/win/webexposed/css-property-listing-expected.txt: Added.
        * webexposed/css-properties-as-js-properties-expected.txt: Added.
        * webexposed/css-properties-as-js-properties.html: Added.
        * webexposed/css-properties-behind-flags-expected.txt: Added.
        * webexposed/css-properties-behind-flags.html: Added.
        * webexposed/css-property-listing-expected.txt: Added.
        * webexposed/css-property-listing.html: Added.

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

        Unreviewed, test gardening.

        * platform/mac-wk2/TestExpectations:

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

        [WebAuthN] UserHandle can be null
        https://bugs.webkit.org/show_bug.cgi?id=191521

        Reviewed by Alex Christensen.

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

2018-11-15  Daniel Bates  <dabates@apple.com>

        [iOS] Shift + Tab does not focus previous field
        https://bugs.webkit.org/show_bug.cgi?id=191596
        <rdar://problem/45892053>

        Reviewed by Wenson Hsieh.

        Add tests to ensure that we do not regress the tab and shift + tab key commands.

        * fast/events/ios/focus-tab-next-field-expected.txt: Added.
        * fast/events/ios/focus-tab-next-field.html: Added.
        * fast/events/ios/focus-tab-previous-field-expected.txt: Added.
        * fast/events/ios/focus-tab-previous-field.html: Added.
        * platform/ios-wk1/TestExpectations: Skip test focus-tab-previous-field.html in Legacy WebKit as
        we do not support testing key commands with modifier keys.
        * resources/ui-helper.js:
        (window.UIHelper.keyDown): Updated to support taking an optional array of modifiers (defaults: [])
        and use the new infrastructure to generate a key down event for the specified character.

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

        Update RTCPeerConnection JS built-ins to be closer to specWe
        https://bugs.webkit.org/show_bug.cgi?id=191665

        Reviewed by Eric Carlson.

        * TestExpectations:

2018-11-15  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r238220.

        * platform/gtk/TestExpectations:

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

        [LFC][IFC] Add support for in-flow positioned inline boxes.
        https://bugs.webkit.org/show_bug.cgi?id=191672

        Reviewed by Antti Koivisto.

        * fast/inline/simple-inline-inflow-positioned-expected.txt: Added.
        * fast/inline/simple-inline-inflow-positioned.html: Added.
        * platform/ios/TestExpectations:

2018-11-15  Antti Koivisto  <antti@apple.com>

        REGRESSION(r238178): fast/forms/access-key-mutated.html and fast/forms/access-key-case-insensitive.html are timing out
        https://bugs.webkit.org/show_bug.cgi?id=191642

        Reviewed by Zalan Bujtas.

        * TestExpectations: Unskip
        * platform/mac-wk2/TestExpectations: Unskip
        * platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt:

        Rebase. Focus timings depends on layout timings.

2018-11-15  Antti Koivisto  <antti@apple.com>

        Remove fonts from CSSFontFaceSet safely
        https://bugs.webkit.org/show_bug.cgi?id=191676

        Reviewed by Zalan Bujtas.

        * fast/text/font-face-set-remove-safely-expected.txt: Added.
        * fast/text/font-face-set-remove-safely.html: Added.

2018-11-14  Timothy Hatcher  <timothy@apple.com>

        Default the view background color and text color to different values when in dark mode.
        https://bugs.webkit.org/show_bug.cgi?id=191607
        rdar://problem/46045854

        Reviewed by Dean Jackson.

        * css-dark-mode/default-colors-expected.txt: Added.
        * css-dark-mode/default-colors.html: Added.
        * inspector/css/shadow-scoped-style-expected.txt: Rebaseline.
        * platform/mac/printing/width-overflow-expected.txt: Rebaseline.

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

        Layout test fast/layers/no-clipping-overflow-hidden-added-after-transform.html is a flaky failure on EWS bots
        https://bugs.webkit.org/show_bug.cgi?id=191658

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Mark this test as flaky on Sierra Release WK2 to reduce the number of retries on mac-wk2-ews.

2018-11-14  Timothy Hatcher  <timothy@apple.com>

        Update prefers-color-scheme media query matching based on GitHub issue #3278.
        https://bugs.webkit.org/show_bug.cgi?id=191654
        rdar://problem/46074307

        Reviewed by Simon Fraser.

        * css-dark-mode/prefers-color-scheme-expected.txt: Rebaseline.
        * css-dark-mode/prefers-color-scheme.html: Updates to better match the spec.

2018-11-14  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas: send a call stack with each action instead of an array of call frames
        https://bugs.webkit.org/show_bug.cgi?id=191628

        Reviewed by Dean Jackson.

        * inspector/model/recording.html:

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

        Unreviewed test gardening, move a skip expectation to a more specific file.

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

2018-11-14  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Remote Inspector)
        https://bugs.webkit.org/show_bug.cgi?id=191494
        <rdar://problem/45469854>

        Reviewed by Devin Rousso.

        * inspector/unit-tests/target-manager.html:
        WI.targets has switched to being an array instead of a set.

2018-11-14  Truitt Savell  <tsavell@apple.com>

        [ Sierra Release WK2 ] Layout Test fast/workers/worker-cloneport.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=191644.

        Unreviewed test Gardening.

        * platform/mac-wk2/TestExpectations:

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

        REGRESSION(r238178): fast/forms/access-key-mutated.html and fast/forms/access-key-case-insensitive.html are timing out
        https://bugs.webkit.org/show_bug.cgi?id=191642

        * TestExpectations: Additionally skip accessibility/mac/selection-notification-focus-change.html

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

        REGRESSION(r238178): fast/forms/access-key-mutated.html and fast/forms/access-key-case-insensitive.html are timing out
        https://bugs.webkit.org/show_bug.cgi?id=191642

        * TestExpectations: Skipping for now.

2018-11-14  Per Arne Vollan  <pvollan@apple.com>

        REGRESSION (WEBPROCESS_WINDOWSERVER_BLOCKING): requestAnimationFrame Stops Completing
        https://bugs.webkit.org/show_bug.cgi?id=190884

        Reviewed by Dean Jackson.

        * TestExpectations:
        * fast/animation/request-animation-frame-in-two-pages-expected.txt: Added.
        * fast/animation/request-animation-frame-in-two-pages.html: Added.
        * platform/mac-wk2/TestExpectations:

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

        Calling removeTrack on different RTCPeerConnection should throw InvalidAccessError
        https://bugs.webkit.org/show_bug.cgi?id=191603

        Reviewed by Chris Dumez.

        Removed obsolete test.

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

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

        Add support for transport and peerConnection stats
        https://bugs.webkit.org/show_bug.cgi?id=191592

        Reviewed by Alex Christensen.

        * webrtc/video-stats.html:

2018-11-14  Ali Juma  <ajuma@chromium.org>

        Transform of composited layer not updated when layer also needs repaint
        https://bugs.webkit.org/show_bug.cgi?id=191598

        Reviewed by Simon Fraser.

        * compositing/geometry/transform-and-repaint-updates-geometry-expected.html: Added.
        * compositing/geometry/transform-and-repaint-updates-geometry.html: Added.

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

        [WebAuthN] Support CTAP HID authenticators on macOS
        https://bugs.webkit.org/show_bug.cgi?id=188623
        <rdar://problem/43353777>

        Reviewed by Brent Fulgham and Chris Dumez.

        * http/wpt/webauthn/ctap-hid-failure.https-expected.txt: Added.
        * http/wpt/webauthn/ctap-hid-failure.https.html: Added.
        * http/wpt/webauthn/ctap-hid-success.https-expected.txt: Added.
        * http/wpt/webauthn/ctap-hid-success.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-hid.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-success-hid.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-hid.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-success-hid.https.html: Added.
        * http/wpt/webauthn/resources/util.js:
        * platform/ios-wk2/TestExpectations:

2018-11-13  Timothy Hatcher  <timothy@apple.com>

        Use a light scrollbar for transparent web views in dark mode.
        https://bugs.webkit.org/show_bug.cgi?id=191559
        rdar://problem/46000489

        Reviewed by Dean Jackson.

        * css-dark-mode/supported-color-schemes-scrollbar-expected.txt: Added.
        * css-dark-mode/supported-color-schemes-scrollbar.html: Added.

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

        [WinCairo] Unreviewed layout test gardening.

        * platform/wincairo/TestExpectations:

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

        [iOS] Do not show selection UI for editable elements with opacity near zero
        https://bugs.webkit.org/show_bug.cgi?id=191442
        <rdar://problem/45958625>

        Reviewed by Simon Fraser.

        Add 5 new layout tests. See below for more details.

        * editing/selection/character-granularity-rect.html:

        Adjust for a renamed UIScriptController function.

        * editing/selection/ios/do-not-zoom-to-focused-hidden-contenteditable-expected.txt: Added.
        * editing/selection/ios/do-not-zoom-to-focused-hidden-contenteditable.html: Added.

        Add a test to verify that we don't zoom to fit the focused element, if the focused element is completely
        transparent.

        * editing/selection/ios/hide-selection-after-hiding-contenteditable-expected.txt: Added.
        * editing/selection/ios/hide-selection-after-hiding-contenteditable.html: Added.

        Add a test to verify that selection UI is hidden after making an editable root transparent, and shown again when
        the editable root becomes opaque.

        * editing/selection/ios/hide-selection-in-contenteditable-nested-transparency-expected.txt: Added.
        * editing/selection/ios/hide-selection-in-contenteditable-nested-transparency.html: Added.

        Add a test to verify that transparency applied on an editable root via nested transparent containers causes
        selection UI to be suppressed.

        * editing/selection/ios/hide-selection-in-hidden-contenteditable-expected.txt: Added.
        * editing/selection/ios/hide-selection-in-hidden-contenteditable-frame-expected.txt: Added.
        * editing/selection/ios/hide-selection-in-hidden-contenteditable-frame.html: Added.

        Add a test to verify that selection UI is suppressed when an editable element inside a subframe is focused. This
        test checks that the caret, selection rects and selection handle views are not shown, and additionally verifies
        that the selection in a hidden contenteditable area cannot be changed via tap gesture.

        * editing/selection/ios/hide-selection-in-hidden-contenteditable.html: Added.

        Same test as above, but in a regular editable element in the main document instead of a subframe.

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

        Add new UIHelper wrapper methods. See Tools/ChangeLog for more detail.

2018-11-13  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Table should support select all (Cmd-A)
        https://bugs.webkit.org/show_bug.cgi?id=190299
        <rdar://problem/45029170>

        Reviewed by Devin Rousso.

        * inspector/table/table-selection-expected.txt:
        * inspector/table/table-selection.html:
        Add tests that `selectAll` works when multiple selection is enabled,
        and does nothing when multiple selection is disabled.

2018-11-13  Timothy Hatcher  <timothy@apple.com>

        Treat supported-color-schemes as the second highest priority property.
        https://bugs.webkit.org/show_bug.cgi?id=191556
        rdar://problem/46000076

        Reviewed by Dean Jackson.

        * css-dark-mode/supported-color-schemes-priority-expected.txt: Added.
        * css-dark-mode/supported-color-schemes-priority.html: Added.

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

        Refresh WPT webrtc tests to ToT
        https://bugs.webkit.org/show_bug.cgi?id=191564

        Reviewed by Eric Carlson.

        Refresh webrtc tests

        * tests-options.json:

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

        [Web Animations] Don't schedule animation frames or update style while an accelerated animation is running
        https://bugs.webkit.org/show_bug.cgi?id=191542
        <rdar://problem/45356027>

        Reviewed by Simon Fraser.

        Add a test that checks that we make only minimal style updates and still dispatch events while an accelerated animation is running.

        * animations/no-style-recalc-during-accelerated-animation-expected.txt: Added.
        * animations/no-style-recalc-during-accelerated-animation.html: Added.
        * fast/layers/no-clipping-overflow-hidden-added-after-transform-expected.html:
        * fast/layers/no-clipping-overflow-hidden-added-after-transform.html: Change the colors to avoid a tiny ImageOnlyFailure.
        * platform/win/TestExpectations: Mark some regressions tracked by webkit.org/b/191584.

2018-11-12  Darshan Kadu  <darsh7807@gmail.com>

        Implement Cache API support for WPE/GTK
        https://bugs.webkit.org/show_bug.cgi?id=178316

        Reviewed by Michael Catanzaro.

        Removed the http/wpt/cache-storage/cache-quota.any.html from the TestExpectations which 
        were marked faliure.

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

2018-11-12  Devin Rousso  <drousso@apple.com>

        Web Inspector: Network: show secure certificate details per-request
        https://bugs.webkit.org/show_bug.cgi?id=191447
        <rdar://problem/30019476>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/resource-response-security-expected.txt: Added.
        * http/tests/inspector/network/resource-response-security.html: Added.

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

2018-11-12  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Table should support shift-extending the row selection
        https://bugs.webkit.org/show_bug.cgi?id=189718
        <rdar://problem/44577942>

        Reviewed by Devin Rousso.

        * inspector/unit-tests/index-set-expected.txt:
        * inspector/unit-tests/index-set.html:
        Add tests for new IndexSet methods `addRange`, `deleteRange`, `equals`, and `difference`.

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

        Do not collapse the soon-to-be-parent anon block when we shuffle around the marker item renderer.
        https://bugs.webkit.org/show_bug.cgi?id=191554
        <rdar://problem/45825265>

        Reviewed by Antti Koivisto.

        * fast/inline/marker-list-item-move-should-not-crash-expected.txt: Added.
        * fast/inline/marker-list-item-move-should-not-crash.html: Added.

2018-11-12  Sihui Liu  <sihui_liu@apple.com>

        imported/w3c/web-platform-tests/IndexedDB/keygenerator-explicit.html crashing on iOS device
        https://bugs.webkit.org/show_bug.cgi?id=191500

        Reviewed by Dean Jackson.

        The test should not crash now.

        * platform/ios-device/TestExpectations:

2018-11-12  Tim Horton  <timothy_horton@apple.com>

        Make it possible to edit images inline
        https://bugs.webkit.org/show_bug.cgi?id=191352
        <rdar://problem/30107985>

        Reviewed by Dean Jackson.

        * TestExpectations:
        * editing/images/basic-editable-image-expected.txt: Added.
        * editing/images/basic-editable-image.html: Added.
        * editing/images/reparent-editable-image-maintains-strokes-expected.txt: Added.
        * editing/images/reparent-editable-image-maintains-strokes.html: Added.
        * platform/ios-wk2/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.drawSquareInEditableImage):
        (window.UIHelper.numberOfStrokesInEditableImage):
        (window.UIHelper):
        Add tests that we can find and draw in editable images, and that if
        the element is moved around in the DOM, it persists its strokes.

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

        [css-grid] Import additional grid layout tests and update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=191515

        Reviewed by Dean Jackson.

        Imported several tests from Blink and update TextExpectaions.

        * TestExpectations: Adding specific bugs for the expected failures.
        * fast/css-grid-layout/changing-content-property-on-nested-grid-should-not-crash-expected.txt: Added.
        * fast/css-grid-layout/changing-content-property-on-nested-grid-should-not-crash.html: Added.
        * fast/css-grid-layout/column-property-should-not-apply-on-grid-container-expected.html: Added.
        * fast/css-grid-layout/column-property-should-not-apply-on-grid-container.html: Added.
        * fast/css-grid-layout/crash-large-positions-expected.txt: Added.
        * fast/css-grid-layout/crash-large-positions.html: Added.
        * fast/css-grid-layout/fixed-width-intrinsic-width-should-exclude-scrollbar-width-in-grid-expected.txt: Added.
        * fast/css-grid-layout/fixed-width-intrinsic-width-should-exclude-scrollbar-width-in-grid.html: Added.
        * fast/css-grid-layout/floating-not-effect-on-grid-items-expected.txt: Added.
        * fast/css-grid-layout/floating-not-effect-on-grid-items.html: Added.
        * fast/css-grid-layout/grid-align-baseline-expected.txt: Added.
        * fast/css-grid-layout/grid-align-baseline-vertical-expected.txt: Added.
        * fast/css-grid-layout/grid-align-baseline-vertical.html: Added.
        * fast/css-grid-layout/grid-align-baseline.html: Added.
        * fast/css-grid-layout/grid-auto-repeat-inherit-initial-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-auto-repeat-inherit-initial-crash.html: Added.
        * fast/css-grid-layout/grid-auto-repeat-positioned-container-expected.html: Added.
        * fast/css-grid-layout/grid-auto-repeat-positioned-container.html: Added.
        * fast/css-grid-layout/grid-automatic-minimum-intrinsic-aspect-ratio-expected.txt: Added.
        * fast/css-grid-layout/grid-automatic-minimum-intrinsic-aspect-ratio.html: Added.
        * fast/css-grid-layout/grid-container-percentage-columns-expected.txt:
        * fast/css-grid-layout/grid-container-percentage-columns.html:
        * fast/css-grid-layout/grid-container-percentage-rows-expected.txt: Added.
        * fast/css-grid-layout/grid-container-percentage-rows.html: Added.
        * fast/css-grid-layout/grid-container-scroll-accounts-for-auto-margin-expected.html: Added.
        * fast/css-grid-layout/grid-container-scroll-accounts-for-auto-margin.html: Added.
        * fast/css-grid-layout/grid-container-scroll-accounts-for-sizing-expected.html:
        * fast/css-grid-layout/grid-container-scroll-accounts-for-sizing.html:
        * fast/css-grid-layout/grid-container-width-should-include-scroll-bar-width-expected.txt: Added.
        * fast/css-grid-layout/grid-container-width-should-include-scroll-bar-width.html: Added.
        * fast/css-grid-layout/grid-crash-huge-margins-and-min-height-max-content-expected.txt: Added.
        * fast/css-grid-layout/grid-crash-huge-margins-and-min-height-max-content.html: Added.
        * fast/css-grid-layout/grid-crash-out-of-flow-positioned-element-expected.txt: Added.
        * fast/css-grid-layout/grid-crash-out-of-flow-positioned-element.html: Added.
        * fast/css-grid-layout/grid-crash-remove-positioned-item-expected.txt:
        * fast/css-grid-layout/grid-crash-remove-positioned-item.html:
        * fast/css-grid-layout/grid-item-before-anonymous-child-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-item-before-anonymous-child-crash.html: Added.
        * fast/css-grid-layout/grid-item-border-overflow-paint-expected.html: Added.
        * fast/css-grid-layout/grid-item-border-overflow-paint.html: Added.
        * fast/css-grid-layout/grid-item-change-alignment-from-stretch-expected.txt: Added.
        * fast/css-grid-layout/grid-item-change-alignment-from-stretch.html: Added.
        * fast/css-grid-layout/grid-item-grid-container-percentage-rows-expected.html: Added.
        * fast/css-grid-layout/grid-item-grid-container-percentage-rows.html: Added.
        * fast/css-grid-layout/grid-item-overflow-expected.html: Added.
        * fast/css-grid-layout/grid-item-overflow-paint-expected.html: Added.
        * fast/css-grid-layout/grid-item-overflow-paint.html: Added.
        * fast/css-grid-layout/grid-item-overflow.html: Added.
        * fast/css-grid-layout/grid-item-paddings-and-writing-modes-expected.html: Added.
        * fast/css-grid-layout/grid-item-paddings-and-writing-modes.html: Added.
        * fast/css-grid-layout/grid-item-scroll-position-expected.txt: Added.
        * fast/css-grid-layout/grid-item-scroll-position.html: Added.
        * fast/css-grid-layout/grid-margins-not-collapse-expected.html: Added.
        * fast/css-grid-layout/grid-margins-not-collapse.html: Added.
        * fast/css-grid-layout/grid-painting-item-overflow-expected.html: Added.
        * fast/css-grid-layout/grid-painting-item-overflow.html: Added.
        * fast/css-grid-layout/grid-painting-items-only-once-expected.html: Added.
        * fast/css-grid-layout/grid-painting-items-only-once.html: Added.
        * fast/css-grid-layout/grid-painting-respect-dom-order-expected.html: Added.
        * fast/css-grid-layout/grid-painting-respect-dom-order.html: Added.
        * fast/css-grid-layout/grid-painting-rtl-expected.html: Added.
        * fast/css-grid-layout/grid-painting-rtl.html: Added.
        * fast/css-grid-layout/grid-self-baseline-01-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-01.html: Added.
        * fast/css-grid-layout/grid-self-baseline-02-b-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-02-b.html: Added.
        * fast/css-grid-layout/grid-self-baseline-02-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-02.html: Added.
        * fast/css-grid-layout/grid-self-baseline-03-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-03.html: Added.
        * fast/css-grid-layout/grid-self-baseline-04-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-04.html: Added.
        * fast/css-grid-layout/grid-self-baseline-05-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-05.html: Added.
        * fast/css-grid-layout/grid-self-baseline-06-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-06.html: Added.
        * fast/css-grid-layout/grid-self-baseline-07-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-07.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-01-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-01.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-02-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-02.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-03-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-03.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-04-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-04.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-05-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-05.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-06-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-06.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-07-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-horiz-07.html: Added.
        * fast/css-grid-layout/grid-self-baseline-two-dimensional-expected.txt: Added.
        * fast/css-grid-layout/grid-self-baseline-two-dimensional.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-01-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-01.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-02-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-02.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-03-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-03.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-04-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-04.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-05-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-05.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-06-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-06.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-07-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-lr-07.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-01-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-01.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-02-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-02.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-03-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-03.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-04-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-04.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-05-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-05.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-06-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-06.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-07-expected.html: Added.
        * fast/css-grid-layout/grid-self-baseline-vertical-rl-07.html: Added.
        * fast/css-grid-layout/grid-shorthands-style-format-expected.txt: Added.
        * fast/css-grid-layout/grid-shorthands-style-format.html: Added.
        * fast/css-grid-layout/grid-strict-ordering-crash-2-expected.txt: Added.
        * fast/css-grid-layout/grid-strict-ordering-crash-2.html: Added.
        * fast/css-grid-layout/named-grid-areas-dynamic-with-media-query-expected.html: Added.
        * fast/css-grid-layout/named-grid-areas-dynamic-with-media-query.html: Added.
        * fast/css-grid-layout/negative-growth-share-as-infinity-crash-expected.txt: Added.
        * fast/css-grid-layout/negative-growth-share-as-infinity-crash.html: Added.
        * fast/css-grid-layout/painting-item-marginbox-overflowing-grid-area-expected.html: Added.
        * fast/css-grid-layout/painting-item-marginbox-overflowing-grid-area.html: Added.
        * fast/css-grid-layout/positioned-grid-container-item-percentage-size-expected.html: Added.
        * fast/css-grid-layout/positioned-grid-container-item-percentage-size.html: Added.
        * fast/css-grid-layout/positioned-grid-container-percentage-tracks-expected.txt: Added.
        * fast/css-grid-layout/positioned-grid-container-percentage-tracks.html: Added.
        * fast/css-grid-layout/preferred-width-computed-after-layout-expected.txt: Added.
        * fast/css-grid-layout/preferred-width-computed-after-layout.html: Added.
        * fast/css-grid-layout/quirks-mode-percent-resolution-grid-item-expected.txt: Added.
        * fast/css-grid-layout/quirks-mode-percent-resolution-grid-item.html: Added.
        * fast/css-grid-layout/resources/blue-100x50.png: Added.
        * fast/css-grid-layout/resources/grid-definitions-parsing-utils.js:
        (testGridPositionDefinitionsValues):
        * fast/css-grid-layout/scrolled-grid-painting-expected.html: Added.
        * fast/css-grid-layout/scrolled-grid-painting-overflow-expected.html: Added.
        * fast/css-grid-layout/scrolled-grid-painting-overflow.html: Added.
        * fast/css-grid-layout/scrolled-grid-painting.html: Added.
        * fast/css-grid-layout/setting-node-properties-to-null-during-layout-should-not-crash-expected.txt: Added.
        * fast/css-grid-layout/setting-node-properties-to-null-during-layout-should-not-crash.html: Added.
        * fast/css-grid-layout/stale-grid-layout-2-expected.txt: Added.
        * fast/css-grid-layout/stale-grid-layout-expected.txt: Added.
        * fast/css-grid-layout/vertical-align-do-not-effect-grid-items-expected.html: Added.
        * fast/css-grid-layout/vertical-align-do-not-effect-grid-items.html: Added.

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

        RealtimeOutgoing A/V sources should observe their sources only if having a sink
        https://bugs.webkit.org/show_bug.cgi?id=191490

        Reviewed by Eric Carlson.

        * webrtc/remove-track-expected.txt:
        * webrtc/remove-track.html:
        Add tests and fixed some flakiness issues on existing tests in the file.

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

        Support setting stream ids when adding a transceiver
        https://bugs.webkit.org/show_bug.cgi?id=191307

        Reviewed by Eric Carlson.

        * TestExpectations:

2018-11-12  Antti Koivisto  <antti@apple.com>

        Support dynamic pseudo-classes on elements with display: contents
        https://bugs.webkit.org/show_bug.cgi?id=181640
        <rdar://problem/36605415>

        Reviewed by Dean Jackson.

        * fast/css/display-contents-hover-active-expected.txt: Added.
        * fast/css/display-contents-hover-active.html: Added.

2018-11-12  Simon Fraser  <simon.fraser@apple.com>

        feFlood with alpha color doesn't work correctly
        https://bugs.webkit.org/show_bug.cgi?id=163666

        Reviewed by Zalan Bujtas.

        * svg/filters/feFlood-with-alpha-color-expected.html: Added.
        * svg/filters/feFlood-with-alpha-color.html: Added.

2018-11-12  Eric Carlson  <eric.carlson@apple.com>

        Require <iframe allow="display"> for an iframe to use getDisplayMedia
        https://bugs.webkit.org/show_bug.cgi?id=191505
        <rdar://problem/45968811>

        Reviewed by Jer Noble.

        * http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute-expected.txt:
        * http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt: Added.
        * http/tests/media/media-stream/get-display-media-iframe-allow-attribute.html: Added.
        * http/tests/media/media-stream/resources/get-display-media-devices-iframe.html: Added.
        * http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
        * http/tests/ssl/media-stream/get-user-media-nested-expected.txt:

2018-11-12  Simon Fraser  <simon.fraser@apple.com>

        Make compositing updates incremental
        https://bugs.webkit.org/show_bug.cgi?id=90342

        Reviewed by Antti Koivisto.

        Add some new tests for issues discovered during development.
        
        Filter tests get new results because composited layer bounds are no longer affected
        by pixel-moving filters. 

        * compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt:
        * compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt:
        * compositing/filters/sw-shadow-overlaps-hw-layer-expected.txt:
        * compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt:
        * compositing/geometry/stacking-context-change-layer-reparent-expected.html: Added.
        * compositing/geometry/stacking-context-change-layer-reparent.html: Added.
        * compositing/layer-creation/change-to-overlap-expected.txt: Added.
        * compositing/layer-creation/change-to-overlap.html: Added.
        * compositing/updates/no-updates-in-non-composited-iframe-expected.txt: Added.
        * compositing/updates/no-updates-in-non-composited-iframe.html: Added.
        * compositing/updates/resources/non-composited.html: Added.
        * compositing/video/video-clip-change-src.html: This test was timing-sensitive; the behavior differed bases on whether we
        happened to do a compositing flush between the first and second video load.
        * platform/mac-wk1/TestExpectations: Mark compositing/layer-creation/fixed-overlap-extent.html as flakey; it depends on the
        timing of various AppKit-related things that aren't consistent.

2018-11-12  Jer Noble  <jer.noble@apple.com>

        [MSE] Frame re-ordering can cause iframes to never be enqueued
        https://bugs.webkit.org/show_bug.cgi?id=191485

        Reviewed by Eric Carlson.

        * media/media-source/media-source-dropped-iframe-expected.txt: Added.
        * media/media-source/media-source-dropped-iframe.html: Added.

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

        Implement a new edit command to change the enclosing list type
        https://bugs.webkit.org/show_bug.cgi?id=191487
        <rdar://problem/45955922>

        Reviewed by Ryosuke Niwa.

        Add a new layout test to verify that the list change type editing command can be used to swap between enclosing
        ordered and unordered lists. Also exercises undo, redo, changing list types under `pre` and `table` elements,
        and handling selection within nested list elements.

        * editing/execCommand/change-list-type-expected.txt: Added.
        * editing/execCommand/change-list-type.html: Added.

2018-11-11  Javier Fernandez  <jfernandez@igalia.com>

        [css-grid] Import additional grid layout test from the WPT suite
        https://bugs.webkit.org/show_bug.cgi?id=191369

        Reviewed by Manuel Rego Casasnovas.

        New Grid Layout tests from the WPT suite.

        * TestExpectations: Added bugs and ImageOnlyFailure for 3 tests that are failing.

2018-11-11  Daniel Bates  <dabates@apple.com>

        [iOS] Draw caps lock indicator in password fields
        https://bugs.webkit.org/show_bug.cgi?id=190565
        <rdar://problem/45262343>

        Unreviewed.

        Update expected results now that iOS supports showing the caps lock indictor.

        * platform/ios/fast/css/text-overflow-input-expected.txt:
        * platform/ios/fast/forms/basic-inputs-expected.txt:
        * platform/ios/fast/forms/input-appearance-height-expected.txt:
        * platform/ios/fast/forms/input-value-expected.txt:
        * platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:

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

        Address post-review comments after r237955
        https://bugs.webkit.org/show_bug.cgi?id=191496

        Reviewed by Darin Adler.

        * fast/css3-text/css3-text-decoration/text-underline-negative-expected.html:

2018-11-10  Simon Fraser  <simon.fraser@apple.com>

        Remove support for -webkit-svg-shadow
        https://bugs.webkit.org/show_bug.cgi?id=187429

        Reviewed by Dean Jackson.

        -webkit-svg-shadow was a non-standard hack for online iWork, and they no longer use it,
        so remove it. No other browser supports it, and chromestatus say it's used on less than
        0.000001% of pages.

        * css3/blending/svg-blend-layer-shadow.html: Removed.
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * fast/css/getComputedStyle/resources/property-names.js:
        * fast/repaint/moving-shadow-on-container-expected.png: Removed.
        * fast/repaint/moving-shadow-on-container.html: Removed.
        * fast/repaint/moving-shadow-on-path-expected.txt: Removed.
        * fast/repaint/moving-shadow-on-path.html: Removed.
        * legacy-animation-engine/fast/css/getComputedStyle/resources/property-names.js:
        * platform/gtk/TestExpectations:
        * platform/gtk/css3/blending/svg-blend-layer-shadow-expected.png: Removed.
        * platform/gtk/css3/blending/svg-blend-layer-shadow-expected.txt: Removed.
        * platform/gtk/fast/repaint/moving-shadow-on-container-expected.txt: Removed.
        * platform/gtk/fast/repaint/moving-shadow-on-path-expected.png: Removed.
        * platform/gtk/svg/css/arrow-with-shadow-expected.png: Removed.
        * platform/gtk/svg/css/composite-shadow-example-expected.png: Removed.
        * platform/gtk/svg/css/composite-shadow-example-expected.txt: Removed.
        * platform/gtk/svg/css/composite-shadow-text-expected.png: Removed.
        * platform/gtk/svg/css/composite-shadow-text-expected.txt: Removed.
        * platform/gtk/svg/css/composite-shadow-with-opacity-expected.png: Removed.
        * platform/gtk/svg/css/composite-shadow-with-opacity-expected.txt: Removed.
        * platform/gtk/svg/css/group-with-shadow-expected.png: Removed.
        * platform/gtk/svg/css/shadow-changes-expected.png: Removed.
        * platform/gtk/svg/css/shadow-changes-expected.txt: Removed.
        * platform/gtk/svg/css/stars-with-shadow-expected.png: Removed.
        * platform/gtk/svg/custom/simple-text-double-shadow-expected.txt: Removed.
        * platform/gtk/svg/custom/transform-with-shadow-and-gradient-expected.png: Removed.
        * platform/gtk/svg/custom/transform-with-shadow-and-gradient-expected.txt: Removed.
        * platform/gtk/svg/filters/shadow-on-filter-expected.png: Removed.
        * platform/gtk/svg/filters/shadow-on-rect-with-filter-expected.png: Removed.
        * platform/gtk/svg/repaint/repaint-webkit-svg-shadow-expected.png: Removed.
        * platform/ios/TestExpectations:
        * platform/ios/css3/blending/svg-blend-layer-shadow-expected.txt: Removed.
        * platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/ios/svg/css/composite-shadow-example-expected.txt: Removed.
        * platform/ios/svg/css/composite-shadow-text-expected.txt: Removed.
        * platform/ios/svg/css/composite-shadow-with-opacity-expected.txt: Removed.
        * platform/ios/svg/css/getComputedStyle-basic-expected.txt:
        * platform/ios/svg/css/group-with-shadow-expected.txt: Removed.
        * platform/ios/svg/css/shadow-changes-expected.txt: Removed.
        * platform/ios/svg/css/stars-with-shadow-expected.txt: Removed.
        * platform/ios/svg/custom/transform-with-shadow-and-gradient-expected.txt: Removed.
        * 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/TestExpectations:
        * platform/mac/css3/blending/svg-blend-layer-shadow-expected.png: Removed.
        * platform/mac/css3/blending/svg-blend-layer-shadow-expected.txt: Removed.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/fast/repaint/moving-shadow-on-container-expected.txt: Removed.
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.png: Removed.
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.txt: Removed.
        * platform/mac/svg/css/arrow-with-shadow-expected.png: Removed.
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.png: Removed.
        * platform/mac/svg/css/clippath-with-shadow-expected.png: Removed.
        * platform/mac/svg/css/composite-shadow-example-expected.png: Removed.
        * platform/mac/svg/css/composite-shadow-text-expected.txt: Removed.
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.png: Removed.
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/svg/css/group-with-shadow-expected.png: Removed.
        * platform/mac/svg/css/group-with-shadow-expected.txt: Removed.
        * platform/mac/svg/css/mask-with-shadow-expected.png: Removed.
        * platform/mac/svg/css/path-with-shadow-expected.png: Removed.
        * platform/mac/svg/css/shadow-and-opacity-expected.png: Removed.
        * platform/mac/svg/css/shadow-changes-expected.png: Removed.
        * platform/mac/svg/css/shadow-changes-expected.txt: Removed.
        * platform/mac/svg/css/shadow-with-large-radius-expected.png: Removed.
        * platform/mac/svg/css/shadow-with-negative-offset-expected.png: Removed.
        * platform/mac/svg/css/stars-with-shadow-expected.png: Removed.
        * platform/mac/svg/css/stars-with-shadow-expected.txt: Removed.
        * platform/mac/svg/custom/simple-text-double-shadow-expected.png: Removed.
        * platform/mac/svg/custom/simple-text-double-shadow-expected.txt: Removed.
        * platform/mac/svg/custom/transform-with-shadow-and-gradient-expected.png: Removed.
        * platform/mac/svg/custom/transform-with-shadow-and-gradient-expected.txt: Removed.
        * platform/mac/svg/filters/shadow-on-filter-expected.png: Removed.
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.png: Removed.
        * platform/mac/svg/repaint/repaint-webkit-svg-shadow-expected.png: Removed.
        * platform/win/TestExpectations:
        * platform/win/css3/blending/svg-blend-layer-shadow-expected.txt: Removed.
        * platform/win/fast/repaint/moving-shadow-on-container-expected.txt: Removed.
        * platform/win/fast/repaint/moving-shadow-on-path-expected.txt: Removed.
        * platform/win/svg/css/composite-shadow-text-expected.txt: Removed.
        * platform/win/svg/css/group-with-shadow-expected.txt: Removed.
        * platform/win/svg/css/shadow-changes-expected.txt: Removed.
        * platform/win/svg/custom/simple-text-double-shadow-expected.txt: Removed.
        * platform/wincairo/fast/repaint/moving-shadow-on-container-expected.txt: Removed.
        * platform/wincairo/fast/repaint/moving-shadow-on-path-expected.png: Removed.
        * platform/wincairo/svg/css/composite-shadow-text-expected.txt: Removed.
        * platform/wincairo/svg/css/shadow-changes-expected.txt: Removed.
        * platform/wincairo/svg/custom/transform-with-shadow-and-gradient-expected.txt: Removed.
        * platform/wpe/svg/css/composite-shadow-text-expected.txt: Removed.
        * platform/wpe/svg/css/shadow-changes-expected.txt: Removed.
        * platform/wpe/svg/css/stars-with-shadow-expected.txt: Removed.
        * platform/wpe/svg/custom/simple-text-double-shadow-expected.txt: Removed.
        * platform/wpe/svg/custom/transform-with-shadow-and-gradient-expected.txt: Removed.
        * svg/css/arrow-with-shadow-expected.txt: Removed.
        * svg/css/arrow-with-shadow.svg: Removed.
        * svg/css/circle-in-mask-with-shadow-expected.png: Removed.
        * svg/css/circle-in-mask-with-shadow-expected.txt: Removed.
        * svg/css/circle-in-mask-with-shadow.svg: Removed.
        * svg/css/clippath-with-shadow-expected.png: Removed.
        * svg/css/clippath-with-shadow-expected.txt: Removed.
        * svg/css/clippath-with-shadow.svg: Removed.
        * svg/css/composite-shadow-example-expected.txt: Removed.
        * svg/css/composite-shadow-example.html: Removed.
        * svg/css/composite-shadow-text-expected.png: Removed.
        * svg/css/composite-shadow-text.svg: Removed.
        * svg/css/composite-shadow-with-opacity-expected.txt: Removed.
        * svg/css/composite-shadow-with-opacity.html: Removed.
        * svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/group-with-shadow-expected.txt: Removed.
        * svg/css/group-with-shadow.svg: Removed.
        * svg/css/mask-with-shadow-expected.txt: Removed.
        * svg/css/mask-with-shadow.svg: Removed.
        * svg/css/parent-shadow-offscreen-expected.svg: Removed.
        * svg/css/parent-shadow-offscreen.svg: Removed.
        * svg/css/path-with-shadow-expected.png: Removed.
        * svg/css/path-with-shadow-expected.txt: Removed.
        * svg/css/path-with-shadow.svg: Removed.
        * svg/css/root-shadow-offscreen-expected.svg: Removed.
        * svg/css/root-shadow-offscreen.svg: Removed.
        * svg/css/shadow-and-opacity-expected.txt: Removed.
        * svg/css/shadow-and-opacity.svg: Removed.
        * svg/css/shadow-changes.svg: Removed.
        * svg/css/shadow-with-large-radius-expected.png: Removed.
        * svg/css/shadow-with-large-radius-expected.txt: Removed.
        * svg/css/shadow-with-large-radius.svg: Removed.
        * svg/css/shadow-with-negative-offset-expected.png: Removed.
        * svg/css/shadow-with-negative-offset-expected.txt: Removed.
        * svg/css/shadow-with-negative-offset.svg: Removed.
        * svg/css/stars-with-shadow-expected.txt: Removed.
        * svg/css/stars-with-shadow.html: Removed.
        * svg/custom/simple-text-double-shadow-expected.png: Removed.
        * svg/custom/simple-text-double-shadow-expected.txt: Removed.
        * svg/custom/simple-text-double-shadow.svg: Removed.
        * svg/custom/transform-with-shadow-and-gradient.svg: Removed.
        * svg/filters/shadow-on-filter-expected.txt: Removed.
        * svg/filters/shadow-on-filter.svg: Removed.
        * svg/filters/shadow-on-rect-with-filter-expected.txt: Removed.
        * svg/filters/shadow-on-rect-with-filter.svg: Removed.
        * svg/repaint/repaint-webkit-svg-shadow-container-expected.txt: Removed.
        * svg/repaint/repaint-webkit-svg-shadow-container.html: Removed.
        * svg/repaint/repaint-webkit-svg-shadow-expected.txt: Removed.
        * svg/repaint/repaint-webkit-svg-shadow.svg: Removed.

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

        Unreviewed, rolling out r238065.

        Breaks internal builds.

        Reverted changeset:

        "Make it possible to edit images inline"
        https://bugs.webkit.org/show_bug.cgi?id=191352
        https://trac.webkit.org/changeset/238065

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

        Unreviewed, fix typo in r238066.

        * accessibility/ios-simulator/form-control-validation-message.html:

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

        Unreviewed attempt to deflake accessibility/ios-simulator/form-control-validation-message.html

        * accessibility/ios-simulator/form-control-validation-message.html:

2018-11-10  Tim Horton  <timothy_horton@apple.com>

        Make it possible to edit images inline
        https://bugs.webkit.org/show_bug.cgi?id=191352
        <rdar://problem/30107985>

        Reviewed by Dean Jackson.

        * TestExpectations:
        * editing/images/basic-editable-image-expected.txt: Added.
        * editing/images/basic-editable-image.html: Added.
        * editing/images/reparent-editable-image-maintains-strokes-expected.txt: Added.
        * editing/images/reparent-editable-image-maintains-strokes.html: Added.
        * platform/ios-wk2/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.drawSquareInEditableImage):
        (window.UIHelper.numberOfStrokesInEditableImage):
        (window.UIHelper):
        Add tests that we can find and draw in editable images, and that if
        the element is moved around in the DOM, it persists its strokes.

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

        Fix Test Expectations for Reveal Test
        https://bugs.webkit.org/show_bug.cgi?id=191476

        Unreviewed test gardening.

        Put the test expectation in the correct location to deal with
        the different behaviour old platforms.

        * platform/mac/editing/mac/selection/context-menu-select-editability-expected.txt: Renamed from LayoutTests/platform/mac-highsierra/editing/mac/selection/context-menu-select-editability-expected.txt.

2018-11-09  Tim Horton  <timothy_horton@apple.com>

        Normal-flow-only flex items don't correctly respect z-index
        https://bugs.webkit.org/show_bug.cgi?id=191486

        Reviewed by Simon Fraser.

        * css3/flexbox/z-index-with-normal-flow-only-expected.html: Added.
        * css3/flexbox/z-index-with-normal-flow-only.html: Added.
        Add a test that a <canvas> with z-index 50 correctly stacks below
        a <canvas> that is a flex-item with z-index 100.

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

        SourceBuffer throws an error when appending a second init segment after changeType().
        https://bugs.webkit.org/show_bug.cgi?id=191474

        Reviewed by Eric Carlson.

        * media/media-source/media-source-changetype-second-init-expected.txt: Added.
        * media/media-source/media-source-changetype-second-init.html: Added.

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

        [Payment Request] canMakePayment() should not consider serialized payment method data
        https://bugs.webkit.org/show_bug.cgi?id=191432

        Reviewed by Dean Jackson.

        * http/tests/paymentrequest/payment-request-canmakepayment-method.https-expected.txt:
        * http/tests/paymentrequest/payment-request-canmakepayment-method.https.html: Updated with
        changes from imported/w3c/web-platform-tests/payment-request/. Modified two tests to use
        user_activation_test() rather than test_driver.bless().
        * http/tests/paymentrequest/payment-request-show-method.https-expected.txt:
        * http/tests/paymentrequest/payment-request-show-method.https.html: Now that canMakePayment
        does not convert payment method data, added a test that ensures show() rejects with a
        TypeError when Apple Pay's payment method data is invalid.
        * platform/ios-wk2/TestExpectations: Un-skipped payment-request-canmakepayment-method.https.html.
        * platform/mac-wk2/TestExpectations: Ditto.

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

        [Payment Request] PaymentResponse.details should be updated when the user accepts a rpayment retry
        https://bugs.webkit.org/show_bug.cgi?id=191440

        Reviewed by Dean Jackson.

        * http/tests/paymentrequest/payment-response-retry-method.https-expected.txt:
        * http/tests/paymentrequest/payment-response-retry-method.https.html:

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

        HTML form validation bubble disappears
        https://bugs.webkit.org/show_bug.cgi?id=191418

        Reviewed by Simon Fraser.

        Add API test coverage and update existing tests to use form-validation.js and
        avoid code duplication.

        * fast/forms/form-validation.js: Added.
        (getValidationBubbleContents):
        (getValidationBubble.return.new.Promise.):
        (getValidationBubble):
        * fast/forms/ios/validation-bubble-dismiss-on-tap-expected.txt:
        * fast/forms/ios/validation-bubble-dismiss-on-tap.html:
        * fast/forms/navigation-dismisses-validation-bubbles-expected.txt: Renamed from LayoutTests/http/tests/navigation/navigation-dismisses-validation-bubbles-expected.txt.
        * fast/forms/navigation-dismisses-validation-bubbles.html: Renamed from LayoutTests/http/tests/navigation/navigation-dismisses-validation-bubbles.html.
        * fast/forms/resources/check-validation-bubble-not-visible.html: Renamed from LayoutTests/http/tests/navigation/resources/check-validation-bubble-not-visible.html.
        * fast/forms/scroll-into-view-and-show-validation-message-expected.txt: Added.
        * fast/forms/scroll-into-view-and-show-validation-message.html: Added.
        * fast/forms/validation-bubble-disappears-when-input-detached-expected.txt:
        * fast/forms/validation-bubble-disappears-when-input-detached.html:
        * fast/forms/validation-bubble-disappears-when-input-moved-expected.txt:
        * fast/forms/validation-bubble-disappears-when-input-moved.html:
        * fast/forms/validation-bubble-disappears-when-input-no-longer-visible-expected.txt:
        * fast/forms/validation-bubble-disappears-when-input-no-longer-visible.html:
        * fast/forms/validation-bubble-escape-key-dismiss-expected.txt:
        * fast/forms/validation-bubble-escape-key-dismiss.html:
        * fast/forms/validation-custom-message-expected.txt:
        * fast/forms/validation-custom-message.html:
        * fast/forms/validation-message-detached-iframe-expected.txt:
        * fast/forms/validation-message-detached-iframe.html:
        * fast/forms/validation-message-detached-iframe2-expected.txt:
        * fast/forms/validation-message-detached-iframe2.html:
        * fast/forms/validation-message-minimum-font-size-expected.txt:
        * fast/forms/validation-message-minimum-font-size.html:
        * fast/forms/validation-messages-expected.txt:
        * fast/forms/validation-messages.html:
        * platform/gtk/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        [Cocoa] Fix failing imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html test
        https://bugs.webkit.org/show_bug.cgi?id=191396

        Reviewed by Eric Carlson.

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

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

        Clean up test expectations after r237942
        https://bugs.webkit.org/show_bug.cgi?id=191448

        Unreviewed test gardening.

        Add test expectation files for Sierra WK1.

        * platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: Added.
        * platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: Added.

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

        [iOS] Pressing forward delete key in text field does nothing and we should not invoke an editor
        action when forward delete is pressed outside a text field
        https://bugs.webkit.org/show_bug.cgi?id=190566
        <rdar://problem/45262367>

        Reviewed by Wenson Hsieh.

        Add a test to ensure that pressing the forward delete key deletes the next character.

        * fast/events/ios/forward-delete-in-editable-expected.txt: Added.
        * fast/events/ios/forward-delete-in-editable.html: Added.

2018-11-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r236365): [GTK] Many form-related tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=189993

        Reviewed by Michael Catanzaro.

        Remove expectations for tests that are passing now.

        * platform/gtk/TestExpectations:

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

        Adopt Reveal Framework to replace Lookup
        https://bugs.webkit.org/show_bug.cgi?id=191097

        Reviewed by Tim Horton.

        Reveal selects spaces instead of adjacent words, no matter how interesting they are. 
        Update the tests to show this, and change the expections for previous platforms.

        * editing/mac/selection/context-menu-select-editability-expected.txt:
        * editing/mac/selection/context-menu-select-editability.html:
        * platform/mac-highsierra/editing/mac/selection/context-menu-select-editability-expected.txt: Copied from LayoutTests/editing/mac/selection/context-menu-select-editability-expected.txt.

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

        Clean up test expectations after r237942
        https://bugs.webkit.org/show_bug.cgi?id=191448

        Unreviewed test gardening.

        Add High Sierra specific expectation files for three tests, rebaseline one for Mojave, and remove failure expectations.

        * platform/mac-highsierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: Copied from LayoutTests/platform/mac-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt.
        * platform/mac-highsierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: Added.
        * platform/mac-highsierra-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: Added.
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt:

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

        [Mojave WK1] Layout test fast/events/detect-caps-lock.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=191424

        Unreviewed test gardening.

        Update expectations since this test is only expected to run on WK2.

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

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

        U+180E is no longer a whitespace character
        https://bugs.webkit.org/show_bug.cgi?id=191415

        Reviewed by Saam Barati.

        * js/ToNumber-expected.txt:
        * js/parseFloat-expected.txt:
        * js/script-tests/ToNumber.js:
        * js/script-tests/parseFloat.js:
        Update tests and expectations.

        * sputnik/Conformance/09_Type_Conversion/9.3_ToNumber/9.3.1_ToNumber_from_String/S9.3.1_A2-expected.txt:
        * sputnik/Conformance/09_Type_Conversion/9.3_ToNumber/9.3.1_ToNumber_from_String/S9.3.1_A3_T1-expected.txt:
        * sputnik/Conformance/09_Type_Conversion/9.3_ToNumber/9.3.1_ToNumber_from_String/S9.3.1_A3_T2-expected.txt:
        * sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.2/15.10.2.12_CharacterClassEscape/S15.10.2.12_A1_T1-expected.txt:
        * sputnik/Conformance/15_Native_Objects/15.10_RegExp/15.10.2/15.10.2.12_CharacterClassEscape/S15.10.2.12_A2_T1-expected.txt:
        * sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.2/15.1.2.2_parseInt/S15.1.2.2_A2_T10-expected.txt:
        * sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.2/15.1.2.3_parseFloat/S15.1.2.3_A2_T10-expected.txt:
        * sputnik/Unicode/Unicode_410/S15.10.2.12_A1_T6-expected.txt:
        * sputnik/Unicode/Unicode_410/S15.10.2.12_A2_T6-expected.txt:
        * sputnik/Unicode/Unicode_410/S7.2_A1.6_T1-expected.txt:
        * sputnik/Unicode/Unicode_500/S15.10.2.12_A1_T6-expected.txt:
        * sputnik/Unicode/Unicode_500/S15.10.2.12_A2_T6-expected.txt:
        * sputnik/Unicode/Unicode_500/S7.2_A1.6_T1-expected.txt:
        * sputnik/Unicode/Unicode_510/S15.10.2.12_A1_T6-expected.txt:
        * sputnik/Unicode/Unicode_510/S15.10.2.12_A2_T6-expected.txt:
        * sputnik/Unicode/Unicode_510/S7.2_A1.6_T1-expected.txt:
        Let outdated sputnik checks fail.

2018-11-07  Myles C. Maxfield  <mmaxfield@apple.com>

        Unprefix text-decoration CSS3 properties
        https://bugs.webkit.org/show_bug.cgi?id=127193

        Reviewed by Dean Jackson.

        * fast/css3-text/css3-text-decoration/unprefix-expected.html: Added.
        * fast/css3-text/css3-text-decoration/unprefix.html: Added.

2018-11-08  Timothy Hatcher  <timothy@apple.com>

        Add experimental support for a `supported-color-schemes` CSS property.
        https://bugs.webkit.org/show_bug.cgi?id=191319
        rdar://problem/45852261

        Reviewed by Dean Jackson.

        * css-dark-mode/parse-supported-color-schemes-expected.txt: Added.
        * css-dark-mode/parse-supported-color-schemes.html: Added.
        * css-dark-mode/supported-color-schemes-css-expected.txt: Added.
        * css-dark-mode/supported-color-schemes-css.html: Added.

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

        [Sierra Release WK2] Layout Test media/track/track-cue-css.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=191200

        Unreviewed, speculative fix for test flakiness.

        * media/track/track-cue-css-expected.html:
        * media/track/track-cue-css.html:

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

        [MediaStream] Use DeviceIdHashSaltStorage to generate device ID hash salt
        https://bugs.webkit.org/show_bug.cgi?id=190825
        <rdar://problem/45486085>

        Update enumerate-devices-source-id to expect the same device to have the same ID in all
        iframes, remove enumerate-devices-source-id-persistent because the logic was faulty.

        Reviewed by Youenn Fablet.

        * TestExpectations: Unskip http/tests/media/media-stream/enumerate-devices-source-id.html
        * http/tests/media/media-stream/enumerate-devices-source-id-expected.txt:
        * http/tests/media/media-stream/enumerate-devices-source-id-persistent-expected.txt: Removed.
        * http/tests/media/media-stream/enumerate-devices-source-id-persistent.html: Removed.
        * http/tests/media/media-stream/enumerate-devices-source-id.html:

2018-11-08  Jonathan Hammer  <jonathan@e3software.com>

        Plain text drag in contenteditable is always DragOperationCopy, never DragOperationMove
        https://bugs.webkit.org/show_bug.cgi?id=191228
        <rdar://problem/45786830>

        Reviewed by Wenson Hsieh.

        A test that checks that dragging plain text in a contenteditable element results
        in the text being moved and not copied. Only applies to WK1. Test skipped on
        WK2 because WK2 EventSender does not support drag events. Test also skipped on 
        AppleWin because drag and drop doesn't work correctly in DRT (according to the 
        TestExpectations file).

        * fast/events/drag-and-drop-move-not-copy-expected.txt: Added.
        * fast/events/drag-and-drop-move-not-copy.html: Added.
        * platform/win/TestExpectations:
        * platform/wk2/TestExpectations:

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

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

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/block/basic/height-percentage-simple-expected.txt: Added.
        * platform/gtk/fast/inline/simple-inline-block-expected.txt: Added.
        * platform/gtk/fast/inline/simple-intruding-float1-expected.txt: Added.
        * platform/gtk/fast/inline/simple-intruding-floats2-expected.txt: Added.
        * platform/gtk/fast/inline/simple-shrink-to-fit-inline-block-expected.txt: Added.

2018-11-07  Justin Michaud  <justin_michaud@apple.com>

        CSS Painting API should pass size, arguments and input properties to paint callback
        https://bugs.webkit.org/show_bug.cgi?id=191309

        Reviewed by Chris Dumez.

        * fast/css-custom-paint/properties-expected.html: Added.
        * fast/css-custom-paint/properties.html: Added.
        * fast/css-custom-paint/worklet.html:

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

        Click and touch event listeners on the body don't work
        https://bugs.webkit.org/show_bug.cgi?id=191392
        <rdar://problem/5844416>

        Reviewed by Simon Fraser.

        * fast/events/click-handler-on-body-simple-expected.txt: Added.
        * fast/events/click-handler-on-body-simple.html: Added.
        * fast/events/touch/touch-handler-on-body-simple-expected.txt: Added.
        * fast/events/touch/touch-handler-on-body-simple.html: Added.

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

        Add an editing command for creating and inserting child lists
        https://bugs.webkit.org/show_bug.cgi?id=191335
        <rdar://problem/45814050>

        Reviewed by Ryosuke Niwa.

        Add a new layout tests that exercise the "InsertNested(Un)orderedList" editing commands in several scenarios
        including undo, redo, executing the edit command with a ranged selection, outdenting to decrease list level,
        inserting lists in and around tables and table cells, and inserting lists in and around pre elements.

        * editing/execCommand/insert-nested-lists-expected.txt: Added.
        * editing/execCommand/insert-nested-lists-in-table-expected.txt: Added.
        * editing/execCommand/insert-nested-lists-in-table.html: Added.
        * editing/execCommand/insert-nested-lists-with-pre-expected.txt: Added.
        * editing/execCommand/insert-nested-lists-with-pre.html: Added.
        * editing/execCommand/insert-nested-lists.html: Added.

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

        ASSERT(renderer()) under HTMLTextAreaElement::updateValue()
        https://bugs.webkit.org/show_bug.cgi?id=191391
        <rdar://problem/34219633>

        Reviewed by Geoffrey Garen.

        Add layout test coverage. I have verified that this test passes in Firefox and Chrome.
        It used to crash before this change in debug.

        * editing/inserting/inset-html-textarea-without-renderer-expected.txt: Added.
        * editing/inserting/inset-html-textarea-without-renderer.html: Added.

2018-11-07  Myles C. Maxfield  <mmaxfield@apple.com>

        Positioned text underline can look like a strike-through
        https://bugs.webkit.org/show_bug.cgi?id=191341

        Reviewed by Simon Fraser.

        * fast/css3-text/css3-text-decoration/text-underline-negative-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-underline-negative.html: Added.

2018-11-07  Myles C. Maxfield  <mmaxfield@apple.com>

        Dotted underlines that skip descenders are invisible
        https://bugs.webkit.org/show_bug.cgi?id=191403

        Reviewed by Simon Fraser.

        * fast/css3-text/css3-text-decoration/text-underline-style-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-underline-style.html: Added.

2018-11-07  Andy Estes  <aestes@apple.com>

        Crash in WebCore::PaymentRequest::canMakePayment when Apple Pay payment method data is missing
        https://bugs.webkit.org/show_bug.cgi?id=191331

        Reviewed by Alexey Proskuryakov.

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

2018-11-07  Simon Fraser  <simon.fraser@apple.com>

        Revert 237849: it breaks MotionMark
        https://bugs.webkit.org/show_bug.cgi?id=191398

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/update-scroll-coordinated-status-expected.txt: Removed.
        * fast/scrolling/ios/update-scroll-coordinated-status.html: Removed.

2018-11-07  Simon Fraser  <simon.fraser@apple.com>

        Some WK1 repaint tests are flakey
        https://bugs.webkit.org/show_bug.cgi?id=190627

        Reviewed by Zalan Bujtas.
        
        New baseline.

        * compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:

2018-11-07  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed layout test gardening.

        * platform/wincairo/TestExpectations:

2018-11-07  Dean Jackson  <dino@apple.com>

        [iOS] WebGL leaks exact GPU type
        https://bugs.webkit.org/show_bug.cgi?id=191393
        <rdar://problem/45788297>

        Reviewed by Tim Horton.

        A test that checks that when the GPU vendor is Apple we're
        returning a generic renderer name.

        * fast/canvas/webgl/hide-some-renderer-info-expected.txt: Added.
        * fast/canvas/webgl/hide-some-renderer-info.html: Added.

2018-11-07  Ali Juma  <ajuma@chromium.org>

        IntersectionObserver GC-dependent tests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=191387

        Reviewed by Chris Dumez.

        Make these tests more robust by triggering GC repeatedly inside a setInterval(). Having only a single call to
        GC is potentially flaky, since that call will early-out and return immediately if a GC is already underway.

        * intersection-observer/root-element-deleted.html:
        * intersection-observer/target-deleted.html:

2018-11-07  Dan Bernstein  <mitz@apple.com>

        Add a pseudoclass that matches img elements that are backed by an attachment
        https://bugs.webkit.org/show_bug.cgi?id=191286
        <rdar://problem/45823554>

        Reviewed by Dean Jackson.

        * fast/css/has-attachment-expected.txt: Added.
        * fast/css/has-attachment.html: Added.
        * platform/win/TestExpectations:

2018-11-07  Ali Juma  <ajuma@chromium.org>

        IntersectionObserverEntry doesn't keep JS wrappers of rects alive
        https://bugs.webkit.org/show_bug.cgi?id=191330

        Reviewed by Chris Dumez.

        Add test coverage.

        * intersection-observer/intersection-observer-entry-keeps-js-wrappers-of-rects-alive-expected.txt: Added.
        * intersection-observer/intersection-observer-entry-keeps-js-wrappers-of-rects-alive.html: Added.

2018-11-07  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, update test expectations for fast/events/pointer.

        * TestExpectations: Skip this directory.
        * platform/ios/TestExpectations: Remove skip since it is now skipped globally.

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

        Layout Test fast/text/international/khmer-selection.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=191368

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Layout Test fast/block/basic/quirk-mode-percent-height.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=191366

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-11-07  Zamiul Haque  <zhaque@apple.com>

        Created a layout test to ensure that date controls marked as credit card expiry
        fields present a Gregorian calendar regardless of default system settings. 
        https://bugs.webkit.org/show_bug.cgi?id=191096
        rdar://problem/42640256

        Reviewed by Tim Horton.

        Added two new methods to UIHelper, helping to facilitate this. calendarType
        returns the calendar identifier of the NSCalendar instance used by the presented
        date picker and setDefaultCalendarType accepts a calendar identifier as an
        argument for changing the default system settings.

        * fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry.html:
        * platform/win/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.calendarType):
        (window.UIHelper.setDefaultCalendarType):

2018-11-07  Tadeu Zagallo  <tzagallo@apple.com>

        REGRESSION(r237547): Test failures on 32-bit JSC since the JIT was disabled
        https://bugs.webkit.org/show_bug.cgi?id=191184

        Reviewed by Saam Barati.

        Skip test when the JIT is disabled since it's too slow to run on CLoop.

        * js/script-tests/regress-139548.js:

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

        Reenable imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https.html
        https://bugs.webkit.org/show_bug.cgi?id=191343

        Unreviewed.

        * TestExpectations: Unskipping test.
        * platform/ios-wk2/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https-expected.txt: Removed.

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

        sender.replaceTrack() fails with InvalidStateError if the transceiver.direction is "inactive"
        https://bugs.webkit.org/show_bug.cgi?id=191202

        Reviewed by Eric Carlson.

        * TestExpectations: skipping a timing out related test.
        It is already timing out but is also flaky.

2018-11-06  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
        https://bugs.webkit.org/show_bug.cgi?id=191291

        Reviewed by Myles Maxfield.

        * webgpu/js/set-up-webgpu-contexts.js: Added helper script for running different webgpu tests.
        (runWebGPUTests):
        (async.runWebGPUTestsOnCanvas):
        (async.setUpContexts):
        * webgpu/render-pipelines-expected.txt: Added.
        * webgpu/render-pipelines.html: Added.
        * webgpu/shader-modules-expected.txt:
        * webgpu/shader-modules.html: Updated to use functions in set-up-webgpu-contexts.js.
        * webgpu/webgpu-basics-expected.txt:
        * webgpu/webgpu-basics.html: Updated through creating a WebGPURenderPipeline.

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

        Calling sender.replaceTrack() twice produces a new transceiver and its corresponding m= section
        https://bugs.webkit.org/show_bug.cgi?id=191261

        Reviewed by Eric Carlson.

        * webrtc/video-addTransceiver-expected.txt:
        * webrtc/video-addTransceiver.html:

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

        Make mDNS ICE Candidate an experimental flag again
        https://bugs.webkit.org/show_bug.cgi?id=191262

        Reviewed by Dean Jackson.

        * webrtc/datachannel/mdns-ice-candidates.html:

2018-11-06  Myles C. Maxfield  <mmaxfield@apple.com>

        Implement text-underline-offset and text-decoration-thickness
        https://bugs.webkit.org/show_bug.cgi?id=190774

        Reviewed by Dean Jackson.

        * animations/text-decoration-thickness-expected.txt: Added.
        * animations/text-decoration-thickness.html: Added.
        * animations/text-underline-offset-expected.txt: Added.
        * animations/text-underline-offset.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-2-expected-mismatch.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-2.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-3-expected-mismatch.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-3.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-auto-length-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-auto-length.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-baseline-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-baseline.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-expected-mismatch.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-from-font-auto-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-from-font-auto.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-from-font-length-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-from-font-length.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-repaint-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-repaint.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-under-auto-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-under-auto.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-under-length-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset-under-length.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-offset.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-thickness-length-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-thickness-length.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-thickness-repaint-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-thickness-repaint.html: Added.

2018-11-06  Dean Jackson  <dino@apple.com>

        Add some basic pointer events tests
        https://bugs.webkit.org/show_bug.cgi?id=191336
        <rdar://problem/45858574>

        Reviewed by Wenson Hsieh.

        Generate some fake touches for pointer events testing.

        * fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup-expected.txt: Added.
        * fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup.html: Added.
        * fast/events/pointer/ios/tap-gives-pointerdown-pointerup-expected.txt: Added.
        * fast/events/pointer/ios/tap-gives-pointerdown-pointerup.html: Added.
        * platform/ios/TestExpectations:

2018-11-06  Timothy Hatcher  <timothy@apple.com>

        Skip css-dark-mode tests on older macOS platforms
        https://bugs.webkit.org/show_bug.cgi?id=191334

        Reviewed by Brian Burg.

        * platform/mac-highsierra/css-dark-mode/prefers-color-scheme-expected.txt: Removed.
        * platform/mac-highsierra/css-dark-mode/supported-color-schemes-expected.txt: Removed.
        * platform/mac-sierra/css-dark-mode/prefers-color-scheme-expected.txt: Removed.
        * platform/mac-sierra/css-dark-mode/supported-color-schemes-expected.txt: Removed.
        * platform/mac/TestExpectations: Skip css-dark-mode for Sierra and HighSierra.

2018-11-06  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Remove cap on partitioned cache max age if it matches a network reload (redirect-only)
        https://bugs.webkit.org/show_bug.cgi?id=189760
        <rdar://problem/44612242>

        Reviewed by Youenn Fablet and Antti Koivisto.

        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-expected.txt:
        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html:
            The test now performs:
            - an initial Fetch request with a permanent redirect to ID 1234. Capped max age.
            - a second Fetch request with a permanent redirect to ID 4321. Capped max age.
            - a third Fetch request with a permanent redirect to and empty ID. Capped max age.
            - a fourth Fetch request with a permanent redirect to and empty ID. Max age cap removed.
            - a fifth Fetch request with a permanent redirect to and empty ID. Regular cache hit.
        * http/tests/resourceLoadStatistics/resources/cached-permanent-redirect.php:
            Now returns an HTTP 500 if the request contains validation headers.

2018-11-06  Myles C. Maxfield  <mmaxfield@apple.com>

        Spelling dots are drawn in the wrong place
        https://bugs.webkit.org/show_bug.cgi?id=190764

        Reviewed by Dean Jackson.

        * editing/spelling/resources/VerySmallDescentAhem.ttf: Added. In order to test repaint rects,
              this is a version of Ahem with a very small descent, so that the dots don't intersect
              with the text itself.
        * editing/spelling/spelling-dots-position-2-expected-mismatch.html: Added.
        * editing/spelling/spelling-dots-position-2.html: Added. Make sure dots are painted in the
              correct vertical place.
        * editing/spelling/spelling-dots-position-3-expected-mismatch.html: Added.
        * editing/spelling/spelling-dots-position-3.html: Added. Make sure dots are painted in the
              correct vertical place.
        * editing/spelling/spelling-dots-position-expected.html: Added.
        * editing/spelling/spelling-dots-position.html: Added. Make sure dots are not painted in
              the wrong place.
        * editing/spelling/spelling-dots-repaint-expected.html: Added.
        * editing/spelling/spelling-dots-repaint.html: Added. Test repaint by drawing an element
              with spelling dots, and then deleting the element from the document. The spelling
              dots should be removed too.
        * fast/writing-mode/english-bt-text-with-spelling-marker-expected.html:
        * fast/writing-mode/english-bt-text-with-spelling-marker.html: Update the test to compensate
              for new spelling dot positions.

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

        [WinCairo] Unreviewed layout test gardening.

        * platform/wincairo/TestExpectations:

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

        REGRESSION (r230523): Caps lock indicator not shown in password field
        https://bugs.webkit.org/show_bug.cgi?id=190056

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        * fast/events/detect-caps-lock-expected.txt: Added.
        * fast/events/detect-caps-lock.html: Added.
        * platform/mac/TestExpectations:

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

        IntersectionObserver doesn't keep target's JS wrapper alive
        https://bugs.webkit.org/show_bug.cgi?id=190235

        Reviewed by Ryosuke Niwa.

        Add test coverage.

        Update test that depends on a target getting GC'd to call takeRecords() since
        targets with pending entries are no logner GC'd.

        * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive-expected.txt: Added.
        * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html: Added.
        * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive-expected.txt: Added.
        * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html: Added.
        * intersection-observer/root-element-deleted.html:
        * intersection-observer/target-deleted-expected.txt: Added.
        * intersection-observer/target-deleted.html: Added.

2018-11-06  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] User should not be prompted again after denying getDisplayMedia request
        https://bugs.webkit.org/show_bug.cgi?id=191227
        <rdar://problem/45784512>

        Reviewed by Youenn Fablet.

        * TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
        (-[GetDisplayMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
        (TestWebKitAPI::GetDisplayMediaTest::promptForCapture):
        (TestWebKitAPI::TEST_F):

2018-11-06  Timothy Hatcher  <timothy@apple.com>

        <picture> container doesn't update when prefers-color-scheme media query changes
        https://bugs.webkit.org/show_bug.cgi?id=190913
        rdar://problem/45608456

        Reviewed by Dean Jackson.

        * css-dark-mode/prefers-color-scheme-picture-element-expected.txt: Added.
        * css-dark-mode/prefers-color-scheme-picture-element.html: Added.
        * platform/mac-highsierra/css-dark-mode/prefers-color-scheme-picture-element-expected.txt: Added.
        * platform/mac-sierra/css-dark-mode/prefers-color-scheme-picture-element-expected.txt: Added.

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

        Fix tests after r237863
        https://bugs.webkit.org/show_bug.cgi?id=191315

        Reviewed by Chris Dumez.

        * platform/mac-wk2/http/tests/navigation: Added.
        * platform/mac-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: Copied from LayoutTests/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt.
        This test is timing related, and I need to update its WK2 expectations every time I enable or disable safe browsing checks during navigation.
        See r237149.

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

        Unreviewed, rolling out r237834.

        Tests for this change crash on iOS Simulator

        Reverted changeset:

        "Spelling dots are drawn in the wrong place"
        https://bugs.webkit.org/show_bug.cgi?id=190764
        https://trac.webkit.org/changeset/237834

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

        Make sure RTCIceCandidateStats address is undefined for host and peer reflexive case
        https://bugs.webkit.org/show_bug.cgi?id=191263

        Reviewed by Eric Carlson.

        * webrtc/datachannel/getStats-no-prflx-remote-candidate-expected.txt: Added.
        * webrtc/datachannel/getStats-no-prflx-remote-candidate.html: Added.

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

        Layout Test imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=191278

        Reviewed by Eric Carlson.

        * TestExpectations:

2018-11-06  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer][WebRTC] Implement black frame generation
        https://bugs.webkit.org/show_bug.cgi?id=190684

        Reviewed by Xabier Rodriguez-Calvar.

        Avoiding webrtc/video-mute-vp8.html to crash but it still fails because
        we are missing the canvas bridging code.

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

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

        [Web Animations] Update all tests to match the latest API changes
        https://bugs.webkit.org/show_bug.cgi?id=191302
        <rdar://problem/41000438>

        Reviewed by Dean Jackson.

        * TestExpectations:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
        * platform/mac-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/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:
        * webanimations/css-animations.html:
        * webanimations/left-and-opacity-animation-yields-no-compositing.html:
        * webanimations/opacity-animation-no-longer-composited-upon-completion.html:
        * webanimations/width-and-opacity-separate-animation-yields-no-compositing.html:

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

        Unreviewed WPE gardening. Handle a bunch of test failures under the
        directories containing imported W3C wpt tests. A few test expectations
        are added, but mostly the corresponding baselines are provided.

        * platform/wpe/TestExpectations:
        * platform/wpe/http/tests/dom: Added.
        * platform/wpe/http/tests/dom/same-origin-detached-window-properties-expected.txt: Added.
        * platform/wpe/http/wpt: Added.
        * platform/wpe/http/wpt/mediarecorder: Added.
        * platform/wpe/http/wpt/mediarecorder/MediaRecorder-dataavailable-expected.txt: Added.
        * platform/wpe/http/wpt/mediarecorder/MediaRecorder-mock-dataavailable-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/idlharness.https-expected.txt:
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/hidden-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/text-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/mimesniff: Added.
        * platform/wpe/imported/w3c/web-platform-tests/mimesniff/mime-types: Added.
        * platform/wpe/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents: Added.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents/extension: Added.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-illegal-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-verification-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers: Added.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker: Added.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/shadow-dom: Added.
        * platform/wpe/imported/w3c/web-platform-tests/shadow-dom/input-element-list-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-blob-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt: Added.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt:

2018-11-06  Frederic Wang  <fwang@igalia.com>

        Overlay with -webkit-overflow-scrolling:touch doesn't become scrollable after added text makes it taller
        https://bugs.webkit.org/show_bug.cgi?id=158342

        Reviewed by Simon Fraser.

        Add a test to ensure the change of scrolling status is reflected in the layer and scrolling
        trees. This test should also ASSERT in debug mode without the associated code change.

        * fast/scrolling/ios/update-scroll-coordinated-status-expected.txt: Added.
        * fast/scrolling/ios/update-scroll-coordinated-status.html: Added.

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

        [iOS] Swatch appears squished and off-center in inputs of type color
        https://bugs.webkit.org/show_bug.cgi?id=191279
        <rdar://problem/45816319>

        Reviewed by Tim Horton.

        * fast/forms/color/color-input-uses-color-well-appearance-expected-mismatch.html: Added.
        * fast/forms/color/color-input-uses-color-well-appearance.html: Added.

        Add a test to verify that setting `-webkit-appearance: textfield;` on a color input causes the color input to
        render differently from a color input with a default appearance.

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

        In the WebKit2 port of iOS, enable a handful of color input tests that are currently disabled.

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

        Rebaseline an existing test on iOS.

2018-11-05  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] An audio track should be muted when capture is interrupted by the OS.
        https://bugs.webkit.org/show_bug.cgi?id=191283
         <rdar://problem/45773103>

        Reviewed by Jon Lee.

        * fast/mediastream/media-stream-track-interrupted-expected.txt: Added.
        * fast/mediastream/media-stream-track-interrupted.html: Added.

2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>

        Parsing support for text-underline-offset and text-decoration-thickness
        https://bugs.webkit.org/show_bug.cgi?id=191242

        Reviewed by Simon Fraser.

        * fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position-expected.txt:
        * fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position.html: Update the
        test for the new grammar of text-underline-position
        * fast/css3-text/css3-text-decoration/text-decoration-thickness-parse-expected.txt: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-thickness-parse.html: Added.
        * fast/css3-text/css3-text-decoration/text-underline-offset-parse-expected.txt: Added.
        * fast/css3-text/css3-text-decoration/text-underline-offset-parse.html: Added.

2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>

        Spelling dots are drawn in the wrong place
        https://bugs.webkit.org/show_bug.cgi?id=190764

        Reviewed by Dean Jackson.

        * editing/spelling/resources/VerySmallDescentAhem.ttf: Added. In order to test repaint rects,
              this is a version of Ahem with a very small descent, so that the dots don't intersect
              with the text itself.
        * editing/spelling/spelling-dots-position-2-expected-mismatch.html: Added.
        * editing/spelling/spelling-dots-position-2.html: Added. Make sure dots are painted in the
              correct vertical place.
        * editing/spelling/spelling-dots-position-3-expected-mismatch.html: Added.
        * editing/spelling/spelling-dots-position-3.html: Added. Make sure dots are painted in the
              correct vertical place.
        * editing/spelling/spelling-dots-position-expected.html: Added.
        * editing/spelling/spelling-dots-position.html: Added. Make sure dots are not painted in
              the wrong place.
        * editing/spelling/spelling-dots-repaint-expected.html: Added.
        * editing/spelling/spelling-dots-repaint.html: Added. Test repaint by drawing an element
              with spelling dots, and then deleting the element from the document. The spelling
              dots should be removed too.
        * fast/writing-mode/english-bt-text-with-spelling-marker-expected.html:
        * fast/writing-mode/english-bt-text-with-spelling-marker.html: Update the test to compensate
              for new spelling dot positions.

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

        Layout Test imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=191278

        Unreviewed test gardening.

        * TestExpectations: Mark test as flaky.

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

        Crash under DOMWindow::postMessageTimerFired()
        https://bugs.webkit.org/show_bug.cgi?id=191217
        <rdar://problem/40888466>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * fast/dom/Window/remove-frame-in-message-event-handler-expected.txt: Added.
        * fast/dom/Window/remove-frame-in-message-event-handler.html: Added.

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

        [iOS] Changing view scale sometimes does not zoom the page to the new initial scale when the page is zoomed in when ignoring meta viewport
        https://bugs.webkit.org/show_bug.cgi?id=191226
        <rdar://problem/45781765>

        Reviewed by Tim Horton.

        Add a new layout test that sets the view scale to several values greater than or equal to 1 and verifies that
        the minimum scale and resulting scroll view scale are exactly the same as the view scale, when (1) the "ignores
        meta viewport" preference is enabled, and (2) the viewport is forced to be always scalable.

        * fast/viewport/ios/minimum-scale-after-changing-view-scale-expected.txt: Added.
        * fast/viewport/ios/minimum-scale-after-changing-view-scale.html: Added.

2018-11-05  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Table selection should not require that rows be in the cache
        https://bugs.webkit.org/show_bug.cgi?id=190993
        <rdar://problem/45613812>

        Reviewed by Devin Rousso.

        Add a test that a table row that is not in the cache can be selected/deselected.

        * inspector/table/table-selection-expected.txt:
        * inspector/table/table-selection.html:

2018-11-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: show save/restore stack for recorded 2D Canvases
        https://bugs.webkit.org/show_bug.cgi?id=175283
        <rdar://problem/34040756>

        Reviewed by Matt Baker.

        * inspector/canvas/recording-2d.html:
        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer.log):
        (TestPage.registerInitializer.async logRecording):

2018-11-05  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer][WebRTC] Error out when simulcast is activated
        https://bugs.webkit.org/show_bug.cgi?id=190678

        Reviewed by Philippe Normand.

        Implementing it is not for now yet.
        Tests for simulcast have been disabled as they now fail (instead of crashing).

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

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

        Unreviewed WPE gardening. Updating or adding various baselines. Also
        adding new failure expectations for tests that need a closer look.

        * platform/wpe/TestExpectations:
        * platform/wpe/fast/block/basic/child-block-level-box-with-height-percent-expected.txt: Added.
        * platform/wpe/fast/block/basic/height-percentage-simple-expected.txt: Added.
        * platform/wpe/fast/block/basic/inline-content-with-floating-image-expected.txt: Added.
        * platform/wpe/fast/block/basic/inline-content-with-floating-images2-expected.txt: Added.
        * platform/wpe/fast/block/basic/quirk-mode-percent-height-expected.txt: Added.
        * platform/wpe/fast/history: Added.
        * platform/wpe/fast/history/page-cache-webdatabase-pending-transaction-expected.txt: Added.
        * platform/wpe/fast/inline-block/14498-positionForCoordinates-expected.txt:
        * platform/wpe/fast/inline/simple-inline-block-expected.txt: Added.
        * platform/wpe/fast/inline/simple-intruding-float1-expected.txt: Added.
        * platform/wpe/fast/inline/simple-intruding-floats2-expected.txt: Added.
        * platform/wpe/fast/inline/simple-intruding-floats3-expected.txt: Added.
        * platform/wpe/fast/inline/simple-shrink-to-fit-inline-block-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance/canvas/drawingbuffer-test-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance/context/context-hidden-alpha-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance/extensions/get-extension-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data-expected.txt: Added.
        * platform/wpe/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance/rendering/multisample-corruption-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt:
        * platform/wpe/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders-expected.txt:

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

        [LFC][BFC] Add support for percentage height in quirks mode.
        https://bugs.webkit.org/show_bug.cgi?id=191232

        Reviewed by Antti Koivisto.

        * fast/block/basic/quirk-mode-percent-height-expected.txt: Added.
        * fast/block/basic/quirk-mode-percent-height.html: Added.
        * platform/ios/TestExpectations:

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

        [LFC][BCF] Add support for block level non-replaced inflow height percentage
        https://bugs.webkit.org/show_bug.cgi?id=191229

        Reviewed by Antti Koivisto.

        * fast/block/basic/child-block-level-box-with-height-percent-expected.txt: Added.
        * fast/block/basic/child-block-level-box-with-height-percent.html: Added.
        * platform/ios/TestExpectations:

2018-11-03  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas: capture changes to <canvas> that would affect the recorded context
        https://bugs.webkit.org/show_bug.cgi?id=190854

        Reviewed by Matt Baker.

        * inspector/canvas/recording-2d-expected.txt:
        * inspector/canvas/recording-2d.html:
        * inspector/canvas/recording-bitmaprenderer-expected.txt:
        * inspector/canvas/recording-bitmaprenderer.html:
        * inspector/canvas/recording-webgl-expected.txt:
        * inspector/canvas/recording-webgl.html:

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

        [Payment Request] PaymentResponse.retry()'s errorFields should be optional
        https://bugs.webkit.org/show_bug.cgi?id=191212

        Reviewed by Youenn Fablet.

        * http/tests/paymentrequest/payment-response-retry-method.https-expected.txt:
        * http/tests/paymentrequest/payment-response-retry-method.https.html:

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

        [LFC][BFC] Resolve percentage height values.
        https://bugs.webkit.org/show_bug.cgi?id=191224

        Reviewed by Antti Koivisto.

        * fast/block/basic/height-percentage-simple-expected.txt: Added.
        * fast/block/basic/height-percentage-simple.html: Added.
        * platform/ios/TestExpectations:

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

        Refresh WPT webrtc tests
        https://bugs.webkit.org/show_bug.cgi?id=191133

        Reviewed by Eric Carlson.

        * TestExpectations:

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

        [MediaStream] enumerateDevices should not expose devices that are not available to getUserMedia
        https://bugs.webkit.org/show_bug.cgi?id=191177
        <rdar://problem/45747873>

        Reviewed by Jer Noble.

        * http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute-expected.txt: Added.
        * http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute.html: Added.
        * http/tests/media/media-stream/resources/enumerate-devices-iframe.html: Added.
        * http/tests/ssl/media-stream/get-user-media-different-host-expected.txt: Rebased for updated logging.
        * http/tests/ssl/media-stream/get-user-media-nested-expected.txt: Ditto.

2018-11-02  Justin Michaud  <justin_michaud@apple.com>

        Add new global object and preliminary Worklets support for CSS painting api
        https://bugs.webkit.org/show_bug.cgi?id=190979

        Reviewed by Chris Dumez.

        Add a new test harness for worklet tests, since they do not have access to the dom.

        * fast/css-custom-paint/basic-expected.txt:
        * fast/css-custom-paint/basic.html:
        * fast/css-custom-paint/registerPaintBindings-expected.html: Added.
        * fast/css-custom-paint/registerPaintBindings-expected.txt: Removed.
        * fast/css-custom-paint/registerPaintBindings.html:
        * fast/css-custom-paint/resources/testharness-worklet.js: Added.
        (format_value):
        * fast/css-custom-paint/resources/testharness.js: Added.
        (async.importWorklet):
        * fast/css-custom-paint/worklet-expected.html: Added.
        * fast/css-custom-paint/worklet.html: Added.

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

        REGRESSION (r237699): Layout Test http/tests/security/anchor-download-block-crossorigin.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=191199

        Reviewed by Dewei Zhu.

        Navigate the subframe instead of the main frame, to make sure that the console message is consistently logged.

        * http/tests/security/anchor-download-block-crossorigin-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin.html:

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

        [Win] Layout Test fast/block/basic/inline-content-with-floating-image.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=191194

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [iOS] Changing view scale sometimes does not zoom the page to the new initial scale, when the page is at initial scale
        https://bugs.webkit.org/show_bug.cgi?id=191180
        <rdar://problem/45744786>

        Reviewed by Simon Fraser.

        Add a layout test, and make some adjustments to UIHelper.

        * fast/viewport/ios/constant-width-viewport-after-changing-view-scale.html:
        * fast/viewport/ios/device-width-viewport-after-changing-view-scale.html:
        * fast/viewport/ios/viewport-minimum-and-initial-scale-expected.txt: Added.
        * fast/viewport/ios/viewport-minimum-and-initial-scale.html: Added.

        Add a new layout test that contains a viewport meta tag with minimum and initial scales set to 0.94, and checks
        that the resulting minimum and initial scales are 0.94 instead of 0.94158.

        * fast/viewport/watchos/viewport-disable-extra-zoom-adaptations.html:
        * resources/ui-helper.js:

        Make UIHelper.zoomScale return a number rather than a string, and adjust a few call sites.

        (window.UIHelper.zoomScale):
        (window.UIHelper.minimumZoomScale):
        (window.UIHelper):

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

        [iOS] WebKit should dispatch DOM events when a modifier key is pressed
        https://bugs.webkit.org/show_bug.cgi?id=190487

        Reviewed by Tim Horton.

        Update expected results of an existing test now that we identify modifier keys.

        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:

2018-11-02  Ali Juma  <ajuma@chromium.org>

        Allow cross-document intersection observing
        https://bugs.webkit.org/show_bug.cgi?id=165746

        Reviewed by Simon Fraser.

        Add a test that cross-document intersection observations are triggered when an intermediate frame
        scrolls. Skip the test on WK1 platforms where IntersectionObserver is not supported.

        Add platform-specific baselines for tests involving iframe scrolling, which isn't supported on iOS.

        * http/tests/intersection-observer/intermediate-frame-changes-expected.txt: Added.
        * http/tests/intersection-observer/intermediate-frame-changes.html: Added.
        * http/tests/intersection-observer/resources/intermediate-frame.html: Added.
        * http/tests/intersection-observer/resources/nested-frame.html: Added.
        * platform/ios/imported/w3c/web-platform-tests/intersection-observer/cross-origin-iframe-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/intersection-observer/cross-origin-iframe-expected.txt.
        * platform/ios/imported/w3c/web-platform-tests/intersection-observer/iframe-no-root-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/intersection-observer/iframe-no-root-expected.txt.
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:

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

        [Win] Layout Test fast/block/basic/inline-content-with-floating-image.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=191194

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [LFC][IFC] Add support for intrinsic width calculation
        https://bugs.webkit.org/show_bug.cgi?id=191144

        Reviewed by Antti Koivisto.

        * fast/inline/simple-shrink-to-fit-inline-block-expected.txt: Added.
        * fast/inline/simple-shrink-to-fit-inline-block.html: Added.
        * platform/ios/TestExpectations:

2018-11-01  Philippe Normand  <pnormand@igalia.com>

        [Apache] Self-signed SSL certificate RSA key is considered too weak
        https://bugs.webkit.org/show_bug.cgi?id=191156

        Reviewed by Michael Catanzaro.

        Regenerate the self-signed SSL certificate with a 2048 bits RSA key.

        * http/conf/webkit-httpd.pem:

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

        [Web Animations] Make document.getAnimations() return declarative animations in the correct order
        https://bugs.webkit.org/show_bug.cgi?id=191153

        Reviewed by Dean Jackson.

        Mark that the two document.getAnimations() tests for declarative animations are no longer flaky.

        * TestExpectations:

2018-11-02  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Experimental prototype for MSL shaders
        https://bugs.webkit.org/show_bug.cgi?id=191084

        Reviewed by Dean Jackson.

        * webgpu/shader-modules.html: Added.
        * webgpu/shader-modules-expected.html: Added.
        * webgpu/webgpu-basics.html: Added.
        * webgpu/webgpu-basics-expected.html: Added.

2018-11-01  Devin Rousso  <drousso@apple.com>

        Web Inspector: View: introduce a didLayoutSubtree
        https://bugs.webkit.org/show_bug.cgi?id=191176

        Reviewed by Matt Baker.

        * inspector/view/resources/test-view.js:
        (TestPage.registerInitializer.WI.TestView.prototype.layout):
        (TestPage.registerInitializer.WI.TestView.prototype.didLayoutSubtree): Added.

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

        Location object sans browsing context
        https://bugs.webkit.org/show_bug.cgi?id=191060

        Reviewed by Geoffrey Garen.

        Update existing tests to reflect behavior change.

        * http/tests/dom/same-origin-detached-window-properties-expected.txt:
        * http/tests/dom/same-origin-detached-window-properties.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:

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

        [WinCairo] Unreviewed layout test gardening.

        (Also remove one outdated global test failure.)

        * TestExpectations:
        * platform/wincairo/TestExpectations:

2018-11-01  Sihui Liu  <sihui_liu@apple.com>

        Add a storage limit for IndexedDB
        https://bugs.webkit.org/show_bug.cgi?id=190598
        <rdar://problem/44654715>

        Reviewed by Chris Dumez.

        Some tests will fail after adding storage limit to IndexedDB, so we need to reduce their 
        size and rebase their expectations.

        * storage/indexeddb/key-type-array-expected.txt:
        * storage/indexeddb/key-type-array-private-expected.txt:
        * storage/indexeddb/modern/idbkey-array-equality-expected.txt:
        * storage/indexeddb/modern/idbkey-array-equality-private-expected.txt:
        * storage/indexeddb/modern/resources/idbkey-array-equality.js:
        (request.onsuccess):
        (request.onerror):
        (doAdd):
        * storage/indexeddb/prefetch-invalidation-expected.txt:
        * storage/indexeddb/prefetch-invalidation-private-expected.txt:
        * storage/indexeddb/resources/key-type-array.js:
        (testValidArrayKeys.getreq.onsuccess):
        (testValidArrayKeys.putreq.onsuccess):
        (testValidArrayKeys.testArrayPutGet):
        * storage/indexeddb/resources/prefetch-invalidation.js:
        (cursorRequest.onsuccess):
        (continue50Times):
        (continue100Times): Deleted.
        * storage/indexeddb/resources/storage-limit.js: Added.
        (prepareDatabase):
        (onOpenSuccess.request.onerror):
        (onOpenSuccess.request.onsuccess):
        (onOpenSuccess):
        * storage/indexeddb/storage-limit-expected.txt: Added.
        * storage/indexeddb/storage-limit.html: Added.

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

        Unreviewed, mark a couple of newly imported WPT tests as flaky on Mac WK1.

        * platform/mac-wk1/TestExpectations:

2018-11-01  Justin Michaud  <justin_michaud@apple.com>

        CSS Custom Properties API Should Support syntax="*" and "<length>", and handle cycles properly
        https://bugs.webkit.org/show_bug.cgi?id=191042

        Reviewed by Antti Koivisto.

        * css-custom-properties-api/crash-expected.txt: Added.
        * css-custom-properties-api/crash.html: Added.
        * css-custom-properties-api/cycles-expected.txt: Added.
        * css-custom-properties-api/cycles.html: Added.
        * css-custom-properties-api/inline-expected.txt: Added.
        * css-custom-properties-api/inline.html: Added.

2018-11-01  Guillaume Emont  <guijemont@igalia.com>

        Skip tests on arm/mips that time out now we're running on CLoop

        Unreviewed gardening.

        Since the JIT is temporarily disabled on 32-bit platforms, these tests
        time out on the bots and need to be disabled. There's more tests
        disabled on arm because the timeout is longer on the mips bot (as the
        device is slower to start with), so many of the tests don't time out
        there.

        * js/script-tests/regress-139548.js: disable on arm and mips.

2018-11-01  Devin Rousso  <drousso@apple.com>

        Web Inspector: fix debug WK1 test failures for WI.ObjectStore
        https://bugs.webkit.org/show_bug.cgi?id=191158

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/objectStore/delete.html:
        * inspector/unit-tests/objectStore/deleteObject.html:
        * inspector/unit-tests/objectStore/resources/objectStore-utilities.js:
        (TestPage.registerInitializer):

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

        [CG] Adopt CG SPI for non-even cornered rounded rects
        https://bugs.webkit.org/show_bug.cgi?id=190155

        Reviewed by Simon Fraser.

        This test fails on iOS simulator because of just one pixel difference
        between drawing a shadow of the element and drawing a copy of the element.
        This failure happens on iOS and does not happen on macOS because we don't 
        use accelerated drawing for macOS testing but we use it for iOS testing.

        * platform/ios/TestExpectations:

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

        [PSON] Unable to submit a file in FormData cross-site
        https://bugs.webkit.org/show_bug.cgi?id=191138

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/misc/form-submit-file-cross-site-expected.txt:
        * http/tests/misc/form-submit-file-cross-site.html:

2018-11-01  Devin Rousso  <drousso@apple.com>

        Unreviewed test fix after r237670.

        * inspector/canvas/setRecordingAutoCaptureFrameCount-expected.txt:
        * inspector/canvas/setRecordingAutoCaptureFrameCount.html:
        Make the `CanvasAdded` event listener synchronous, so it won't miss the `RecordingStarted`
        or `RecordingStopped` events, since `awaitEvent` evaluates on the next tick.

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

        [LFC][IFC] Add support for inline-block elements.
        https://bugs.webkit.org/show_bug.cgi?id=191143

        Reviewed by Antti Koivisto.

        * fast/inline/simple-inline-block-expected.txt: Added.
        * fast/inline/simple-inline-block.html: Added.
        * platform/ios/TestExpectations:

2018-11-01  YUHAN WU  <yuhan_wu@apple.com>

        MediaRecorder should fire dataavailable event when all tracks are ended and stop() is called
        https://bugs.webkit.org/show_bug.cgi?id=190778
        <rdar://problem/45703574>

        Reviewed by Youenn Fablet.

        Remove share FileReader object between three asynchronous tests which might cause flaky failure.
        We will need to fix all the falky failures in this test after we implement timeslice.

        * http/wpt/mediarecorder/MediaRecorder-mock-dataavailable.html:

2018-10-31  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas: create a setting for auto-recording newly created contexts
        https://bugs.webkit.org/show_bug.cgi?id=190856

        Reviewed by Brian Burg.

        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer.window.startRecording):
        (TestPage.registerInitializer.handleRecordingProgress):
        * inspector/canvas/recording-2d.html:
        * inspector/canvas/recording-bitmaprenderer.html:
        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl.html:

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

2018-10-31  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: save imported audits across WebInspector sessions
        https://bugs.webkit.org/show_bug.cgi?id=190858
        <rdar://problem/45527625>

        Reviewed by Brian Burg.

        * inspector/unit-tests/objectStore/add-expected.txt: Added.
        * inspector/unit-tests/objectStore/add.html: Added.
        * inspector/unit-tests/objectStore/addObject-expected.txt: Added.
        * inspector/unit-tests/objectStore/addObject.html: Added.
        * inspector/unit-tests/objectStore/basic-expected.txt: Added.
        * inspector/unit-tests/objectStore/basic.html: Added.
        * inspector/unit-tests/objectStore/delete-expected.txt: Added.
        * inspector/unit-tests/objectStore/delete.html: Added.
        * inspector/unit-tests/objectStore/deleteObject-expected.txt: Added.
        * inspector/unit-tests/objectStore/deleteObject.html: Added.
        * inspector/unit-tests/objectStore/resources/objectStore-utilities.js: Added.
        (TestPage.registerInitializer.InspectorTest.ObjectStore.TestObject):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.TestObject.prototype.toJSON):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.createSuite):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.createObjectStore):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.add):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.addObject):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.delete):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.deleteObject):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.logValues):
        (TestPage.registerInitializer.InspectorTest.ObjectStore.wrapTest):

2018-10-31  Alicia Boya García  <aboya@igalia.com>

        [MSE] Use tolerance when growing the coded frame group
        https://bugs.webkit.org/show_bug.cgi?id=190085

        Reviewed by Jer Noble.

        A test simulating unordered appends with imprecise timestamps,
        overlapping <1ms (replicating a typical WebM 30fps video file) is
        added.

        * media/media-source/media-source-append-acb-tolerance.html: Added.

2018-10-31  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: attempt to re-link DOM nodes for imported results
        https://bugs.webkit.org/show_bug.cgi?id=191044
        <rdar://problem/45687364>

        Reviewed by Brian Burg.

        * inspector/model/auditTestCase.html:
        * inspector/model/auditTestCaseResult.html:
        * inspector/model/auditTestGroup.html:
        * inspector/model/auditTestGroupResult.html:

2018-10-31  Jer Noble  <jer.noble@apple.com>

        MediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L60.B0') is inproperly rejected
        https://bugs.webkit.org/show_bug.cgi?id=191129

        Reviewed by Eric Carlson.

        * media/media-source/media-source-istypesupported-case-sensitive-expected.txt: Added.
        * media/media-source/media-source-istypesupported-case-sensitive.html: Added.

2018-10-31  Alicia Boya García  <aboya@igalia.com>

        [MSE] WebKit tests: Use fixed point in makeASample()
        https://bugs.webkit.org/show_bug.cgi?id=191128

        Reviewed by Jer Noble.

        This patch modifies the utility function makeASample() so as to accept
        time values in arbitrary time scales.

        Previously makeASample() accepted optionally a time scale, but still
        required to receive all time values as seconds, therefore requiring a
        division at call time in order to use the function, which could cause
        rounding errors (see https://bugs.webkit.org/show_bug.cgi?id=190085#c20).

        * media/media-source/media-source-append-acb-no-frame-lost-expected.txt:
        * media/media-source/media-source-append-acb-no-frame-lost.html:
        * media/media-source/media-source-append-buffer-with-append-window.html:
        * media/media-source/media-source-append-media-segment-without-init.html:
        * media/media-source/media-source-append-nonsync-sample-after-abort.html:
        * media/media-source/media-source-append-out-of-order.html:
        * media/media-source/media-source-append-overlapping-dts-expected.txt:
        * media/media-source/media-source-append-overlapping-dts.html:
        * media/media-source/media-source-canplaythrough.html:
        * media/media-source/media-source-duplicate-seeked.html:
        * media/media-source/media-source-duration-after-append.html:
        * media/media-source/media-source-end-of-stream-buffered.html:
        * media/media-source/media-source-end-of-stream-readyState.html:
        * media/media-source/media-source-fastseek.html:
        * media/media-source/media-source-fudge-factor.html:
        * media/media-source/media-source-monitor-source-buffers.html:
        * media/media-source/media-source-overlapping-append-buffered.html:
        * media/media-source/media-source-overlapping-append-expected.txt:
        * media/media-source/media-source-overlapping-append.html:
        * media/media-source/media-source-overlapping-decodetime-expected.txt:
        * media/media-source/media-source-overlapping-decodetime.html:
        * media/media-source/media-source-play.html:
        * media/media-source/media-source-range-end-frame-not-removed-expected.txt:
        * media/media-source/media-source-range-end-frame-not-removed.html:
        * media/media-source/media-source-range-start-frame-replaced-expected.txt:
        * media/media-source/media-source-range-start-frame-replaced.html:
        * media/media-source/media-source-remove-decodeorder-crash.html:
        * media/media-source/media-source-remove-too-much.html:
        * media/media-source/media-source-remove.html:
        * media/media-source/media-source-restrictions.html:
        * media/media-source/media-source-sample-wrong-track-id.html:
        * media/media-source/media-source-seek-back-expected.txt:
        * media/media-source/media-source-seek-back.html:
        * media/media-source/media-source-seek-complete.html:
        * media/media-source/media-source-sequence-timestamps-expected.txt:
        * media/media-source/media-source-sequence-timestamps.html:
        * media/media-source/media-source-small-gap.html:
        * media/media-source/media-source-timeoffset-expected.txt:
        * media/media-source/media-source-timeoffset.html:
        * media/media-source/media-source-timestampoffset-rounding-error.html:
        * media/media-source/media-source-timestampoffset-then-zero-expected.txt:
        * media/media-source/media-source-timestampoffset-then-zero.html:
        * media/media-source/media-source-video-playback-quality.html:
        * media/media-source/mock-media-source.js:
        (makeASample):

2018-10-31  YUHAN WU  <yuhan_wu@apple.com>

        MediaRecorder should fire dataavailable event when all tracks are ended and stop() is called
        https://bugs.webkit.org/show_bug.cgi?id=190778
        <rdar://problem/45703574>

        Reviewed by Youenn Fablet.

        Increase the timer of recording to 2 seconds until we support timeslice in order to reduce flakiness.

        * http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
        * http/wpt/mediarecorder/MediaRecorder-mock-dataavailable.html:

2018-10-31  Zach Li  <zacharyli323@gmail.com>

        Add credit card autofill button
        https://bugs.webkit.org/show_bug.cgi?id=191051
        <rdar://problem/45657011>

        Reviewed by Wenson Hsieh.

        * fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt: Added.
        * fast/forms/auto-fill-button/input-credit-card-auto-fill-button.html: Added.
        * fast/forms/auto-fill-button/last-auto-fill-button-type-expected.txt:
        * fast/forms/auto-fill-button/last-auto-fill-button-type.html:
        * platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt: Added.
        * platform/mac/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.png: Added.
        * platform/win/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt: Added.

2018-10-31  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: show metadata for results
        https://bugs.webkit.org/show_bug.cgi?id=190853
        <rdar://problem/45527623>

        Reviewed by Brian Burg.

        * inspector/model/auditTestCaseResult-expected.txt:
        * inspector/model/auditTestCaseResult.html:
        * inspector/model/auditTestGroupResult-expected.txt:
        * inspector/model/auditTestGroupResult.html:
        * inspector/unit-tests/string-utilities-expected.txt:
        * inspector/unit-tests/string-utilities.html:

2018-10-31  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Don't reveal device IDs until the user has granted permission to capture
        https://bugs.webkit.org/show_bug.cgi?id=191112
        <rdar://problem/45699932>

        Reviewed by Youenn Fablet.

        * TestExpectations: Skip http/tests/media/media-stream/enumerate-devices-source-id-persistent.html
        and http/tests/media/media-stream/enumerate-devices-source-id.html for now, they don't make sense
        with these changes and will be updated to pass in a future patch.
        * fast/mediastream/MediaStreamTrack-getCapabilities.html:
        * fast/mediastream/get-user-media-device-id-expected.txt:
        * fast/mediastream/get-user-media-device-id.html:

2018-10-31  YUHAN WU  <yuhan_wu@apple.com>

        MediaRecorder should fire dataavailable event when all tracks are ended and stop() is called
        https://bugs.webkit.org/show_bug.cgi?id=190778

        Reviewed by Youenn Fablet.

        These tests are used to check if MediaRecorder can generate both video and audio buffers through mock source.

        * http/wpt/mediarecorder/MediaRecorder-dataavailable-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-dataavailable.html: Added.
        * http/wpt/mediarecorder/MediaRecorder-mock-dataavailable-expected.txt: Added.
        * http/wpt/mediarecorder/MediaRecorder-mock-dataavailable.html: Added.
        * platform/win/TestExpectations:

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

        [PSON] When process-swapping for a POST request the HTTP body gets dropped
        https://bugs.webkit.org/show_bug.cgi?id=191046
        <rdar://problem/45229732>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/misc/form-post-textplain-cross-site-expected.txt: Added.
        * http/tests/misc/form-post-textplain-cross-site.html: Added.

2018-10-30  David Kilzer  <ddkilzer@apple.com>

        XSLTProcessor should limit max transform depth
        <https://webkit.org/b/191075>
        <rdar://problem/45531453>

        Reviewed by Alex Christensen.

        * fast/xsl/xslt-max-depth-expected.txt: Added.
        * fast/xsl/xslt-max-depth.html: Added.

2018-10-30  Devin Rousso  <drousso@apple.com>

        Web Inspector: Audit: create Audit Tab
        https://bugs.webkit.org/show_bug.cgi?id=190754

        Reviewed by Matt Baker.

        * inspector/audit/resources/audit-utilities.js: Added.
        * inspector/audit/basic-expected.txt: Added.
        * inspector/audit/basic.html: Added.
        * inspector/audit/data-domAttributes-expected.txt: Added.
        * inspector/audit/data-domAttributes.html: Added.
        * inspector/audit/data-domNodes-expected.txt: Added.
        * inspector/audit/data-domNodes.html: Added.
        * inspector/audit/data-errors-expected.txt: Added.
        * inspector/audit/data-errors.html: Added.
        * inspector/model/auditTestCase-expected.txt: Added.
        * inspector/model/auditTestCase.html: Added.
        * inspector/model/auditTestCaseResult-expected.txt: Added.
        * inspector/model/auditTestCaseResult.html: Added.
        * inspector/model/auditTestGroup-expected.txt: Added.
        * inspector/model/auditTestGroup.html: Added.
        * inspector/model/auditTestGroupResult-expected.txt: Added.
        * inspector/model/auditTestGroupResult.html: Added.
        * inspector/unit-tests/promise-utilities-expected.txt: Added.
        * inspector/unit-tests/promise-utilities.html: Added.

        * inspector/audit/audit-manager-expected.txt: Removed.
        * inspector/audit/audit-manager.html: Removed.
        * inspector/audit/audit-report-expected.txt: Removed.
        * inspector/audit/audit-report.html: Removed.
        * inspector/audit/audit-test-case-expected.txt: Removed.
        * inspector/audit/audit-test-case.html: Removed.
        * inspector/audit/audit-test-suite-expected.txt: Removed.
        * inspector/audit/audit-test-suite.html: Removed.
        * inspector/audit/resources/audit-test-fixtures.js: Removed.

2018-10-30  Dawei Fenton  <realdawei@apple.com>

        WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
        https://bugs.webkit.org/show_bug.cgi?id=189641

        Unreviewed.

        * platform/ios-wk2/TestExpectations: Mark test as [ Slow ]

2018-10-30  Devin Rousso  <drousso@apple.com>

        Web Inspector: provide options to WI.cssPath for more verbosity
        https://bugs.webkit.org/show_bug.cgi?id=190987

        Reviewed by Brian Burg.

        * inspector/dom/domutilities-csspath.html:

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

        Calling window.open("", "_self") allows working around restrictions on window.close()
        https://bugs.webkit.org/show_bug.cgi?id=191073

        Reviewed by Chris Dumez.

        * fast/dom/Window/window-open-self-disallow-close-expected.txt: Added.
        * fast/dom/Window/window-open-self-disallow-close.html: Added.

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

        [Payment Request] Implement PaymentResponse.retry()
        https://bugs.webkit.org/show_bug.cgi?id=190985

        Reviewed by Daniel Bates

        * http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:
        * http/tests/paymentrequest/payment-response-complete-method.https.html:
        * http/tests/paymentrequest/payment-response-methodName-attribute.https.html:
        * http/tests/paymentrequest/payment-response-payerEmail-attribute.https.html:
        * http/tests/paymentrequest/payment-response-payerName-attribute.https.html:
        * http/tests/paymentrequest/payment-response-payerPhone-attribute.https.html:
        * http/tests/paymentrequest/payment-response-rejects-if-not-active.https-expected.txt: Added.
        * http/tests/paymentrequest/payment-response-rejects-if-not-active.https.html: Copied from
        imported/w3c/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html
        and automated using internals.mockPaymentCoordinator.
        * http/tests/paymentrequest/payment-response-retry-method.https-expected.txt: Added.
        * http/tests/paymentrequest/payment-response-retry-method.https.html: Copied from
        imported/w3c/web-platform-tests/payment-request/payment-response/retry-method-manual.https.html
        and automated using internals.mockPaymentCoordinator.
        * http/tests/paymentrequest/resources/helpers.js:
        (setUpAndSmokeTest):

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

        [Apple Pay] PaymentRequest.canMakePayment() should resolve to true whenever Apple Pay is available
        https://bugs.webkit.org/show_bug.cgi?id=191039

        Reviewed by Megan Gardner.

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

2018-10-30  Dawei Fenton  <realdawei@apple.com>

        [ Mojave Debug ] Layout Test http/tests/workers/service/self_registration.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=190828

        Unreviewed.

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

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

        Add a deprecation warning to console for Web SQL
        https://bugs.webkit.org/show_bug.cgi?id=190936

        Reviewed by Ryosuke Niwa.

        Rebaseline the tests that are affected by the added console message.

        * fast/dom/MutationObserver/database-callback-delivery-expected.txt:
        * fast/frames/sandboxed-iframe-storage-expected.txt:
        * fast/history/page-cache-webdatabase-no-transaction-db-expected.txt:
        * http/tests/security/cross-origin-websql-allowed-expected.txt:
        * http/tests/security/cross-origin-websql-expected.txt:
        * http/tests/security/same-origin-websql-blocked-expected.txt:
        * http/tests/security/storage-blocking-loosened-websql-expected.txt:
        * http/tests/security/storage-blocking-strengthened-websql-expected.txt:
        * http/tests/storage/callbacks-are-called-in-correct-context-expected.txt:
        * inspector/runtime/CommandLineAPI-inspect-expected.txt:
        * js/dom/callback-function-with-handle-event-expected.txt:
        * js/dom/exceptions-thrown-in-callbacks-expected.txt:
        * storage/websql/alter-to-info-table-expected.txt:
        * storage/websql/change-version-expected.txt:
        * storage/websql/change-version-handle-reuse-expected.txt:
        * storage/websql/change-version-no-crash-on-preflight-failure-expected.txt:
        * storage/websql/close-during-stress-test-expected.txt:
        * storage/websql/database-lock-after-reload-expected.txt:
        * storage/websql/empty-statement-expected.txt:
        * storage/websql/execute-sql-args-expected.txt:
        * storage/websql/execute-sql-rowsAffected-expected.txt:
        * storage/websql/executesql-accepts-only-one-statement-expected.txt:
        * storage/websql/hash-change-with-xhr-expected.txt:
        * storage/websql/multiple-databases-garbage-collection-expected.txt:
        * storage/websql/multiple-transactions-expected.txt:
        * storage/websql/multiple-transactions-on-different-handles-expected.txt:
        * storage/websql/null-callbacks-expected.txt:
        * storage/websql/open-database-creation-callback-expected.txt:
        * storage/websql/open-database-creation-callback-isolated-world-expected.txt:
        * storage/websql/open-database-empty-version-expected.txt:
        * storage/websql/open-database-expand-quota-expected.txt:
        * storage/websql/open-database-over-quota-expected.txt:
        * storage/websql/open-database-set-empty-version-expected.txt:
        * storage/websql/open-database-while-transaction-in-progress-expected.txt:
        * storage/websql/private-browsing-noread-nowrite-expected.txt:
        * storage/websql/read-and-write-transactions-dont-run-together-expected.txt:
        * storage/websql/read-transactions-running-concurrently-expected.txt:
        * storage/websql/sql-data-types-expected.txt:
        * storage/websql/statement-error-callback-expected.txt:
        * storage/websql/statement-error-callback-isolated-world-expected.txt:
        * storage/websql/statement-success-callback-isolated-world-expected.txt:
        * storage/websql/success-callback-expected.txt:
        * storage/websql/success-callback-when-page-defers-loading-expected.txt:
        * storage/websql/test-authorizer-expected.txt:
        * storage/websql/transaction-callback-exception-crash-expected.txt:
        * storage/websql/transaction-callback-isolated-world-expected.txt:
        * storage/websql/transaction-database-expand-quota-expected.txt:
        * storage/websql/transaction-error-callback-expected.txt:
        * storage/websql/transaction-error-callback-isolated-world-expected.txt:
        * storage/websql/transaction-prototype-expected.txt:
        * storage/websql/transaction-success-callback-isolated-world-expected.txt:

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

        IndexedDB: iteration of cursors skip records if updated or deleted
        https://bugs.webkit.org/show_bug.cgi?id=190917
        <rdar://problem/35250410>

        Reviewed by Chris Dumez.

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

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

        [Web Animations] Implement the update animations and send events procedure
        https://bugs.webkit.org/show_bug.cgi?id=191013
        <rdar://problem/45620495>

        Reviewed by Dean Jackson.

        Several tests that broke when turning Web Animations CSS Integration on by default are now passing. In the case of one test, we had to ensure
        that the final animation frame had been committed before terminating the test or there would be a tiny image reference issue.

        * TestExpectations:
        * fast/layers/no-clipping-overflow-hidden-added-after-transform.html:

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

        LibWebRTCRtpReceiverBackend::getSynchronizationSources should use Vector::append
        https://bugs.webkit.org/show_bug.cgi?id=191026

        Reviewed by Eric Carlson.

        * webrtc/video-addTransceiver-expected.txt:
        * webrtc/video-addTransceiver.html:

2018-10-29  Devin Rousso  <drousso@apple.com>

        Web Inspector: refactor code for getting properties via WI.RemoteObject
        https://bugs.webkit.org/show_bug.cgi?id=190989

        Reviewed by Matt Baker.

        * http/tests/inspector/paymentrequest/payment-request-internal-properties.https.html:
        * inspector/debugger/breakpoint-scope.html:
        * inspector/debugger/paused-scopes.html:
        * inspector/debugger/tail-deleted-frames-from-vm-entry.html:
        * inspector/debugger/tail-deleted-frames.html:
        * inspector/debugger/tail-recursion.html:
        * inspector/model/remote-object-fake-object.html:
        * inspector/model/remote-object-get-properties.html:

2018-10-29  Justin Michaud  <justin_michaud@apple.com>

        Revert r237347 registered custom properties... https://bugs.webkit.org/show_bug.cgi?id=190039
        https://bugs.webkit.org/show_bug.cgi?id=190919

        Reviewed by Michael Saboff.

        * css-custom-properties-api/crash-expected.txt: Removed.
        * css-custom-properties-api/crash.html: Removed.
        * css-custom-properties-api/cycles-expected.txt: Removed.
        * css-custom-properties-api/cycles.html: Removed.
        * css-custom-properties-api/inline-expected.txt: Removed.
        * css-custom-properties-api/inline.html: Removed.

2018-10-29  Matt Lewis  <jlewis3@apple.com>

        Marked http/tests/misc/large-js-program.php as a flaky timeout.
        https://bugs.webkit.org/show_bug.cgi?id=190724

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Handle MDNS resolution of candidates through libwebrtc directly
        https://bugs.webkit.org/show_bug.cgi?id=190681

        Reviewed by Eric Carlson.

        * TestExpectations:
        Test should no longer be flaky as we no longer enforce a timer for resolving MDNS candidates.

2018-10-29  Tim Horton  <timothy_horton@apple.com>

        Modernize WebKit nibs and lprojs for localization's sake
        https://bugs.webkit.org/show_bug.cgi?id=190911
        <rdar://problem/45349466>

        Reviewed by Dan Bernstein.

        * media/modern-media-controls/localized-strings/replaced-string.html:
        English->en

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

        Invalid ssrc value in the stats of type 'inbound-rtp'
        https://bugs.webkit.org/show_bug.cgi?id=190826
        <rdar://problem/45487435>

        Reviewed by Eric Carlson.

        * webrtc/video-mediastreamtrack-stats.html:
        * webrtc/video-stats-expected.txt:
        * webrtc/video-stats.html:

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

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

        Make expectations for IntersectionObserver WPTs more specific.

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

2018-10-29  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Compute estimated margin top for inline formatting root's ancestors
        https://bugs.webkit.org/show_bug.cgi?id=191018

        Reviewed by Antti Koivisto.

        * fast/inline/simple-intruding-floats3-expected.txt: Added.
        * fast/inline/simple-intruding-floats3.html: Added.
        * platform/ios/TestExpectations:

2018-10-29  Zalan Bujtas  <zalan@apple.com>

        [LFC] Add support for inflow non replaced content height when the box is an inline formatting root.
        https://bugs.webkit.org/show_bug.cgi?id=191011

        Reviewed by Antti Koivisto.

        * fast/inline/simple-intruding-floats2-expected.txt: Added.
        * fast/inline/simple-intruding-floats2.html: Added.
        * platform/ios/TestExpectations:

2018-10-29  Zalan Bujtas  <zalan@apple.com>

        Missing from r237549

        Reviewed by Antti Koivisto.

        * platform/ios/TestExpectations:

2018-10-29  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Add support for simple intruding floats.
        https://bugs.webkit.org/show_bug.cgi?id=190998

        Reviewed by Antti Koivisto.

        * fast/inline/simple-intruding-float1-expected.txt: Added.
        * fast/inline/simple-intruding-float1.html: Added.
        * platform/ios/TestExpectations:

2018-10-29  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Inline layout produces separate runs when float is present.
        https://bugs.webkit.org/show_bug.cgi?id=190980

        Reviewed by Antti Koivisto.

        * fast/block/basic/inline-content-with-floating-images2-expected.txt: Added.
        * fast/block/basic/inline-content-with-floating-images2.html: Added.
        * platform/ios/TestExpectations:

2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>

        New bytecode format for JSC
        https://bugs.webkit.org/show_bug.cgi?id=187373
        <rdar://problem/44186758>

        Reviewed by Filip Pizlo.

        Don't use recursion on `equal` to avoid premature stack overflows when testing deep arrays.

        * fast/dom/Window/resources/postmessage-test.js:

2018-10-28  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, one more GTK expectations fix

        * platform/gtk/inspector/canvas/recording-bitmaprenderer-expected.txt:

2018-10-28  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, fix a few more expectations from yesterday

        These should be timeouts!

        * platform/gtk/TestExpectations:

2018-10-28  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, attempt to fix missing trailing whitespace in new expectations

        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:

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

        Unreviewed, fix content added by a stray Ctrl+V

        * platform/gtk/TestExpectations:

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

        Unreviewed GTK test gardening

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Added.
        * platform/gtk/inspector/canvas/recording-bitmaprenderer-expected.txt: Added.

2018-10-27  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Table should support deleting rows
        https://bugs.webkit.org/show_bug.cgi?id=189803
        <rdar://problem/44655709>

        Reviewed by Devin Rousso.

        * inspector/table/resources/table-utilities.js:
        (TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tableDidRemoveRows):
        (TestPage.registerInitializer.createDataSource):
        (TestPage.registerInitializer.InspectorTest.createTable):
        (TestPage.registerInitializer.InspectorTest.createTableWithDelegate):
        (TestPage.registerInitializer):
        Update table test utilities to keep TableDataSource backing array in
        sync when rows are removed. Also allow the number of table rows to be
        specified when creating a table for testing.

        * inspector/table/table-remove-rows-expected.txt: Added.
        * inspector/table/table-remove-rows.html: Added.
        Add tests for new Table methods `removeRow(rowIndex)` and `removeSelectedRows()`.

        * inspector/unit-tests/index-set-expected.txt:
        * inspector/unit-tests/index-set.html:
        Add tests for new IndexSet method `copy()`.

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

        Unreviewed, rolling out r237479 and r237484.
        https://bugs.webkit.org/show_bug.cgi?id=190978

        broke JSC on iOS (Requested by tadeuzagallo on #webkit).

        Reverted changesets:

        "New bytecode format for JSC"
        https://bugs.webkit.org/show_bug.cgi?id=187373
        https://trac.webkit.org/changeset/237479

        "Gardening: Build fix after r237479."
        https://bugs.webkit.org/show_bug.cgi?id=187373
        https://trac.webkit.org/changeset/237484

2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>

        New bytecode format for JSC
        https://bugs.webkit.org/show_bug.cgi?id=187373
        <rdar://problem/44186758>

        Reviewed by Filip Pizlo.

        Don't use recursion on `equal` to avoid premature stack overflows when testing deep arrays.

        * fast/dom/Window/resources/postmessage-test.js:

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

        [Web Animations] Remove useless internals methods
        https://bugs.webkit.org/show_bug.cgi?id=190968

        Reviewed by Dean Jackson.

        Remove a test that is no longer useful.

        * webanimations/animation-creation-addition-expected.txt: Removed.
        * webanimations/animation-creation-addition.html: Removed.

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

        [High Sierra/Sierra Release] Layout Test media/track/track-cue-css.html is a flaky image failure
        https://bugs.webkit.org/show_bug.cgi?id=190876

        Unreviewed test fix.

        This is a speculative flakiness fix.

        * media/track/track-cue-css-expected.html:
        * media/track/track-cue-css.html:

2018-10-26  Zalan Bujtas  <zalan@apple.com>

        [iOS] Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

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

        Add a baseline for the test added in r237449.

        * platform/gtk/fast/repaint/text-selection-overflow-hidden-expected.txt: Added.

2018-10-26  Zalan Bujtas  <zalan@apple.com>

        [LFC][IFC] Layout floats as part of the inline content
        https://bugs.webkit.org/show_bug.cgi?id=190942

        Reviewed by Antti Koivisto.

        * fast/block/basic/inline-content-with-floating-image-expected.txt: Added.
        * fast/block/basic/inline-content-with-floating-image.html: Added.

2018-10-26  Alicia Boya García  <aboya@igalia.com>

        [MSE][WTF][Media] Invalid MediaTime should be falsy
        https://bugs.webkit.org/show_bug.cgi?id=190893

        Reviewed by Jer Noble.

        A test is added that replicates a bug fixed by this patch.

        * media/media-source/media-source-timestampoffset-then-zero-expected.txt: Added.
        * media/media-source/media-source-timestampoffset-then-zero.html: Added.

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

        REGRESSION (r237255): Text selection is broken in form fields
        https://bugs.webkit.org/show_bug.cgi?id=190899

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/repaint/text-selection-overflow-hidden-expected.txt: Added.
        * fast/repaint/text-selection-overflow-hidden.html: Added.
        * platform/win/fast/repaint/text-selection-overflow-hidden-expected.txt: Added.

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

        Layout Test http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=173041

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.

2018-10-25  Devin Rousso  <drousso@apple.com>

        Web Inspector: Canvas Recording loading goes significantly slower when "Frame" tree element is expanded
        https://bugs.webkit.org/show_bug.cgi?id=190497

        Reviewed by Joseph Pecoraro.

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

2018-10-25  Dawei Fenton  <realdawei@apple.com>

        Layout Test compositing/iframes/display-none-subframe.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=186406

        Unreviewed.

        * platform/mac-wk1/TestExpectations: Mark test flaky.

2018-10-25  Devin Rousso  <drousso@apple.com>

        Web Inspector: display fullscreen enter/exit events in Timelines and Network node waterfalls
        https://bugs.webkit.org/show_bug.cgi?id=189874
        <rdar://problem/44700000>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/dom/didFireEvent-expected.txt:
        * http/tests/inspector/dom/didFireEvent.html:

2018-10-25  Alexey Proskuryakov  <ap@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=175597
        XMLHttpRequest should not sniff content encoding

        Actually, the discussion in Bugzilla claims that it should always have worked on
        iOS. Not sure why the test was not enabled from the start.

        * platform/ios/TestExpectations:

2018-10-25  Alexey Proskuryakov  <ap@apple.com>

        Update test results for https://bugs.webkit.org/show_bug.cgi?id=175597
        XMLHttpRequest should not sniff content encoding

        This code doesn't work like planned on macOS High Sierra, and I'm not sure what's
        up with iOS and other platforms. But I can to re-enable the test for Mojave.

        * platform/mac/TestExpectations: As expected, this test is passing on macOS Mojave.

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

        [High Sierra/Sierra Release] Layout Test media/track/track-cue-css.html is a flaky image failure
        https://bugs.webkit.org/show_bug.cgi?id=190876

        Reviewed by Alexey Proskuryakov.

        This is a speculative fix; avoid an unnecessary video seek step in test.

        * media/track/track-cue-css-expected.html:
        * media/track/track-cue-css.html:

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

        REGRESSION (236779) scandinaviandesigns.com product pages auto redirect to product image
        https://bugs.webkit.org/show_bug.cgi?id=190891
        <rdar://problem/45296796>

        Reviewed by Antti Koivisto.

        Add layout test coverage.

        * fast/dom/HTMLInputElement/radio-element-fires-change-event-only-when-checked-state-changes-expected.txt: Added.
        * fast/dom/HTMLInputElement/radio-element-fires-change-event-only-when-checked-state-changes.html: Added.

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

        Unreviewed test gardening.

        * platform/ios-wk1/TestExpectations: Add failures for tests requiring findString.
        * platform/ios-wk1/fast/scrolling/adjust-scroll-offset-on-zoom-expected.txt: Added. Adjust
        expectation to handle whitespace difference.
        * platform/ios-wk1/fast/scrolling/scrolling-tree-includes-frame-expected.txt: Added. The
        scrolling tree is not displayed on WK1.

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

        Add more tests for the Find UI
        https://bugs.webkit.org/show_bug.cgi?id=190823

        Reviewed by Antonio Gomes.

        We add more tests for iOS's find UI to cover cases fixed by r224284. Equivalent tests for
        subframes currently fails when frame flattening is disabled, they will be handled in bug
        184297.

        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-expected.png: Added.
        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-expected.txt: Added.
        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit-expected.png: Added.
        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit-expected.txt: Added.
        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit.html: Added.
        Test with a match at the limit of the scrolling element.
        * platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position.html: Added. Test
        with a match at the middle of the scrolling element.
        * platform/ios/fast/scrolling/find-text-in-overflow-node.html: Use names for parameters to
        make it more explicit.
        * platform/ios/fast/scrolling/find-text-in-subframe-expected.txt: Added.
        * platform/ios/fast/scrolling/find-text-in-subframe.html: Added. Test with a subframe instead
        of an overflow node.

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

        [WPT] Update resource-timing WPT tests to use the right cross origin
        https://bugs.webkit.org/show_bug.cgi?id=190554

        Reviewed by Youenn Fablet.

        * TestExpectations:

2018-10-24  Tim Horton  <timothy_horton@apple.com>

        Attachment filenames with RTL characters should format similar to Finder
        https://bugs.webkit.org/show_bug.cgi?id=190736
        <rdar://problem/44735946>

        Reviewed by Dan Bernstein.

        * fast/attachment/attachment-title-with-rtl-expected.html: Added.
        * fast/attachment/attachment-title-with-rtl.html: Added.
        Add a test that directionality marks in the attachment's title are
        isolated from the file extension.

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

        Turn on Conic Gradients
        https://bugs.webkit.org/show_bug.cgi?id=190810

        Reviewed by Tim Horton.

        No longer necessary to manually turn on conic gradients for testing.

        * http/wpt/css/css-images-4/conic-gradient-parsing.html:

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

        Only report resource timing to parent frame for the first iframe load
        https://bugs.webkit.org/show_bug.cgi?id=190498
        <rdar://problem/44347398>

        Reviewed by Youenn Fablet.

        The layout test is from Chromium change:
        https://chromium-review.googlesource.com/c/chromium/src/+/1186215.

        * http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt: Added.
        * http/tests/misc/resource-timing-navigation-in-restored-iframe.html: Added.
        * http/tests/misc/resources/alert-then-back.html: Added.
        * http/tests/misc/resources/navigate-on-message.html: Added.
        * http/tests/misc/resources/post-message-to-parent.html: Added.

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

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

        Unreviewed test gardening.

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

2018-10-24  Matt Lewis  <jlewis3@apple.com>

        Marked webgl/1.0.2/conformance/glsl/misc/shader-with-reserved-words.html as a flaky timout.
        https://bugs.webkit.org/show_bug.cgi?id=170877

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Marking Multiple tests as flakey at once
        https://bugs.webkit.org/show_bug.cgi?id=190847

        Unreviewed Test Gardening

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

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

        [macOS Debug WK2] Layout Test http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=190650
        <rdar://problem/45341914>

        Reviewed by Alex Christensen.

        * http/tests/resources/payment-request.js:
        (updateDetailsOnShippingAddressChange):

2018-10-23  Jer Noble  <jer.noble@apple.com>

        TextTrack cues should be updated more often than every 250ms.
        https://bugs.webkit.org/show_bug.cgi?id=190827

        Reviewed by Eric Carlson.

        Add a LayoutTest which plays back 6s of captions, each 50 ms in duration, and uses
        when the "enter" and "exit" were fired (in media time) to check whether they were missed
        or not. The test succeeds if fewer than 50 of the 120 cues were missed.

        * media/track/track-cue-missing-expected.txt: Added.
        * media/track/track-cue-missing.html: Added.

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

        Unreviewed, rolling out r237261.

        The layout test for this change crashes under GuardMalloc.

        Reverted changeset:

        "Handle MDNS resolution of candidates through libwebrtc
        directly"
        https://bugs.webkit.org/show_bug.cgi?id=190681
        https://trac.webkit.org/changeset/237261

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

        Web Inspector: Remove unused css-rules pretty printing test expectation
        https://bugs.webkit.org/show_bug.cgi?id=190834

        Reviewed by Matt Baker.

        * inspector/codemirror/prettyprinting-css-rules-expected.txt: Removed.

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

        Unreviewed, rolling out r237280.

        Causes fast/box-shadow/box-shadow-with-zero-radius.html to
        fail on iOS Simulator.

        Reverted changeset:

        "[CG] Adopt CG SPI for non-even cornered rounded rects"
        https://bugs.webkit.org/show_bug.cgi?id=190155
        https://trac.webkit.org/changeset/237280

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

        [macOS Debug WK1] Layout Test inspector/codemirror/prettyprinting-css.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=190833

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Mark test as slow.

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

        [ MacOS Debug WK1 ] Layout Test fast/forms/state-restore-to-non-edited-controls.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=190832

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

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

        Layout Test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=176929

        Unreviewed test gardening.

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

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

        REGRESSION (r236501?): Layout Test compositing/geometry/limit-layer-bounds-opacity-transition.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=190210

        Unreviewed test gardening.

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

2018-10-22  Justin Michaud  <justin_michaud@apple.com>

        Registered custom properties should support syntax parameter for <length> and *
        https://bugs.webkit.org/show_bug.cgi?id=190039

        Reviewed by Antti Koivisto.

        Add tests for inline styles, font-size cycles with custom properties, and a crash that was reported.

        * css-custom-properties-api/crash-expected.txt: Added.
        * css-custom-properties-api/crash.html: Added.
        * css-custom-properties-api/cycles-expected.txt: Added.
        * css-custom-properties-api/cycles.html: Added.
        * css-custom-properties-api/inline-expected.txt: Added.
        * css-custom-properties-api/inline.html: Added.

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

        REGRESSION: [iOS] Layout Test media/media-fullscreen-pause-inline.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=187618

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.

2018-10-22  Justin Michaud  <justin_michaud@apple.com>

        CSS Paint API should give a 2d rendering context
        https://bugs.webkit.org/show_bug.cgi?id=190762

        Reviewed by Dean Jackson.

        * fast/css-custom-paint/basic.html:

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

        Unreviewed, update TestExpectations for imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html.
        https://bugs.webkit.org/show_bug.cgi?id=157068

        * TestExpectations: Mark test as a flaky failure for release builds.
        * platform/mac-wk1/TestExpectations: Remove duplicate expectation.

2018-10-22  Dawei Fenton  <realdawei@apple.com>

        REGRESSION (r234330): [mac-wk1] Layout Test fast/repaint/animation-after-layer-scroll.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=188421

        Unreviewed test gardening.

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

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

        [ Mojave WK1 ] Layout Test storage/indexeddb/database-odd-names.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=190350

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Mark test as failing.

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

        [macOS WK1] Layout Test http/tests/security/cross-origin-xsl-redirect-BLOCKED.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189723

        Unreviewed test gardening.

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

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

        Layout Test imported/w3c/web-platform-tests/intersection-observer/containing-block.html is a flaky failure on Debug builds
        https://bugs.webkit.org/show_bug.cgi?id=190808

        Unreviewed test gardening.

        * TestExpectations:

2018-10-22  Dawei Fenton  <realdawei@apple.com>

        Some WK1 repaint tests are flaky on Mojave
        https://bugs.webkit.org/show_bug.cgi?id=190627

        Unreviewed, marked tests as flaky.

        * platform/mac-wk1/TestExpectations:

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

        [iOS] [Datalist] fast/forms/datalist/datalist-show-hide.html fails
        https://bugs.webkit.org/show_bug.cgi?id=190777

        Reviewed by Tim Horton.

        Refactor this test such that it passes on both iOS and macOS. This test verifies that datalist suggestions menu
        UI can be shown and hidden. On macOS, we focus and then blur the input field; on iOS, we tap in the datalist
        button to show the suggestions UI, and then tap in the text field to bring back the regular keyboard.

        * fast/forms/datalist/datalist-show-hide-expected.txt:
        * fast/forms/datalist/datalist-show-hide.html:
        * platform/ios/TestExpectations:

        Unskip the layout test on iOS.

        * resources/ui-helper.js:
        (window.UIHelper.isShowingDataListSuggestions):

        Tweak this helper function to resolve with either true or false (Boolean types), instead of the strings "true"
        and "false".

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

        [ MacOS WK1 ] Layout Test platform/mac/media/audio-session-category-video-paused.html is flaky Timeout 
        https://bugs.webkit.org/show_bug.cgi?id=189680

        Unreviewed Test Gardening

        * platform/mac-wk1/TestExpectations:

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

        Unskip test fast/writing-mode/english-rl-text-with-spelling-marker.html in iOS WebKit2

        Following r235149 we mark spelling errors in iOS WebKit2.

        * platform/ios-wk1/TestExpectations: Skip in legacy WebKit until we fix <https://webkit.org/b/188762>.
        * platform/ios/TestExpectations: Unskip test.

2018-10-19  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Add stubs for WebGPUSwapChain and WebGPURenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=190742

        Reviewed by Dean Jackson.

        Updated basic webgpu feature detection test to check for WebGPURenderingContext.

        * webgpu/webgpu-enabled-expected.txt: 
        * webgpu/webgpu-enabled.html:

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

        [iOS] [Datalist] Can't pick datalist suggestions in a stock WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=190621
        <rdar://problem/45310649>

        Reviewed by Tim Horton.

        Refactor an existing layout test to run on both iOS and macOS. On both platforms, it checks that the top
        suggestion respects option element order in the document, as well as the current contents of the text field.
        On macOS, we use arrow keys and hit return to select a suggestion; on iOS, we tap the suggestions button and
        simulate hitting the done button on the input view to dismiss the keyboard.

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

        Enable this test on iOS.

        * resources/ui-helper.js:
        (window.UIHelper.resignFirstResponder):
        (window.UIHelper):

2018-10-19  John Wilander  <wilander@apple.com>

        Only cap lifetime of persistent cookies created client-side through document.cookie when resource load statistics is enabled
        https://bugs.webkit.org/show_bug.cgi?id=190687
        <rdar://problem/45349024>

        Reviewed by Alex Christensen.

        The test case now makes use of internals.setResourceLoadStatisticsEnabled()
        and was thus moved to http/tests/resourceLoadStatistics/.

        * TestExpectations:
            Removed skip of previous test location.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-expected.txt: Renamed from LayoutTests/http/tests/cookies/capped-lifetime-for-cookie-set-in-js-expected.txt.
        * http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html: Renamed from LayoutTests/http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html.
        * http/tests/webAPIStatistics/canvas-read-and-write-data-collection-expected.txt:
            Removed line containing "isMarkedForCookieBlocking: No."
        * http/tests/webAPIStatistics/font-load-data-collection-expected.txt:
            Removed line containing "isMarkedForCookieBlocking: No."
        * http/tests/webAPIStatistics/navigator-functions-accessed-data-collection-expected.txt:
            Removed line containing "isMarkedForCookieBlocking: No."
        * http/tests/webAPIStatistics/screen-functions-accessed-data-collection-expected.txt:
            Removed line containing "isMarkedForCookieBlocking: No."
        * platform/ios/TestExpectations:
            Removed pass of previous test location. The whole http/tests/resourceLoadStatistics/ is marked pass for relevant platforms.
        * platform/mac-wk2/TestExpectations:
            Removed pass of previous test location. The whole http/tests/resourceLoadStatistics/ is marked pass for relevant platforms.

2018-10-19  Commit Queue  <commit-queue@webkit.org>

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

        "It regresses JetStream 2 by 5% on some iOS devices"
        (Requested by saamyjoon on #webkit).

        Reverted changeset:

        "[JSC] JSC should have "parseFunction" to optimize Function
        constructor"
        https://bugs.webkit.org/show_bug.cgi?id=190340
        https://trac.webkit.org/changeset/237254

2018-10-19  Charlie Turner  <cturner@igalia.com>

        [EME] Fix crash during tracing in  gst_qtdemux_request_protection_context
        https://bugs.webkit.org/show_bug.cgi?id=190738

        Reviewed by Xabier Rodriguez-Calvar.

        Add failing test expectations for the GTK port. These tests are
        not mirrored in the top-level TestExpectations file, since there
        are no passing baselines for these tests there. The testing
        infrastructure will report them as unexpected passing when they
        are marked as [ Failure ] there, since their output matches the
        failing output in this directory, and if you don't have an
        expected test, then they fail as [ Missing ], and putting failing
        baselines in the top-level cross-platform directory also seem
        wrong...

        The following two tests produce a dumpRenderTree output for
        unknown reasons, and so they have been marked as Missing for now.

        platform/gtk/imported/w3c/web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html
        platform/gtk/imported/w3c/web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html

        * platform/gtk/TestExpectations: Update expectations.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearKey-encrypted-webm-event-mse-actual.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input.https-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https-expected.txt: Added.

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

        [CG] Adopt CG SPI for non-even cornered rounded rects
        https://bugs.webkit.org/show_bug.cgi?id=190155

        Reviewed by Simon Fraser.

        This test fails on iOS simulator because of just one pixel difference.
        I think it happens because of anti aliasing the color at the border of
        the black shadow. Since this test is testing the radius attribute of the
        CSS box-shadow and this should not be affected by whether the shadow has
        non-even rounded corners or not, I am going to change it to have even 
        rounded corners.

        * fast/box-shadow/box-shadow-with-zero-radius-expected.html:
        * fast/box-shadow/box-shadow-with-zero-radius.html:

2018-10-18  Justin Fan  <justin_fan@apple.com>

        Add test expectations for webgpu-enabled.html
        https://bugs.webkit.org/show_bug.cgi?id=190739

        Unreviewed test gardening.

        Added forgotten expectations for webgpu-enabled, and updated some expectations 
        to match the WebGPU -> WebMetal naming and new WebGPU tests.

        * platform/ios/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:
        * webgpu/webgpu-enabled-expected.txt: Added.

2018-10-18  Justin Michaud  <justin_michaud@apple.com>

        Add new image type for CSS painting API
        https://bugs.webkit.org/show_bug.cgi?id=190697

        Reviewed by Dean Jackson.

        * fast/css-custom-paint/basic-expected.txt:
        * fast/css-custom-paint/basic.html:

2018-10-18  Jer Noble  <jer.noble@apple.com>

        [MSE] timestampOffset can introduce floating-point rounding errors to incoming samples
        https://bugs.webkit.org/show_bug.cgi?id=190590
        <rdar://problem/45275626>

        Reviewed by Eric Carlson.

        * media/media-source/media-source-sequence-timestamps-expected.txt:
        * media/media-source/media-source-timestampoffset-rounding-error-expected.txt: Added.
        * media/media-source/media-source-timestampoffset-rounding-error.html: Added.
        * media/media-source/mock-media-source.js:
        (makeASample):

2018-10-18  Jer Noble  <jer.noble@apple.com>

        Enable WKPreferences._lowPowerVideoAudioBufferSizeEnabled by default
        https://bugs.webkit.org/show_bug.cgi?id=190315
        <rdar://problem/45047807>

        Reviewed by Eric Carlson.

        * media/audio-controls-timeline-in-media-document-expected.txt:
        * media/audio-controls-timeline-in-media-document.html:

2018-10-18  Jer Noble  <jer.noble@apple.com>

        Safari is not able to adapt between H264 streams with EditList and without EditList
        https://bugs.webkit.org/show_bug.cgi?id=190638
        <rdar://problem/45342208>

        Reviewed by Eric Carlson.

        * media/media-source/media-source-append-overlapping-dts-expected.txt: Added.
        * media/media-source/media-source-append-overlapping-dts.html: Added.

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

        [WebVTT] Region parameter and value should be separated by ':'
        https://bugs.webkit.org/show_bug.cgi?id=190735

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/captions-regions.vtt:
        * media/track/captions-webvtt/header-regions.vtt:

2018-10-18  Jer Noble  <jer.noble@apple.com>

        Add support for MediaKeyEncryptionScheme
        https://bugs.webkit.org/show_bug.cgi?id=190173

        Reviewed by Eric Carlson.

        * media/encrypted-media/mock-navigator-requestMediaKeySystemAccess-expected.txt:
        * media/encrypted-media/mock-navigator-requestMediaKeySystemAccess.html:

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

        Handle MDNS resolution of candidates through libwebrtc directly
        https://bugs.webkit.org/show_bug.cgi?id=190681

        Reviewed by Eric Carlson.

        * TestExpectations:
        Test should no longer be flaky as we no longer enforce a timer for resolving MDNS candidates.

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

        delete expression should not throw without a reference
        https://bugs.webkit.org/show_bug.cgi?id=190637

        Reviewed by Yusuke Suzuki.

        * js/basic-strict-mode-expected.txt:
        * js/script-tests/basic-strict-mode.js:
        Update test cases.

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

        [GTK] fast/selectors/read-only-read-write-input-basics.html failing since r237245
        https://bugs.webkit.org/show_bug.cgi?id=190711

        Unreviewed test gardening.

        Adjust layout test baselines after r237245. Make fast/selectors/read-only-read-write-input-basics-expected.txt
        contain PASS expectations for color inputs, and remove port-specific iOS/macOS WebKit2 expectations. Since color
        inputs are disabled in legacy WebKit, move the layout test expectation in platform/mac to platform/mac-wk1.

        * fast/selectors/read-only-read-write-input-basics-expected.txt:
        * platform/ios-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Removed.
        * platform/mac-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Removed.

2018-10-18  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening after r237249.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt: Added.

2018-10-18  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        [JSC] JSC should have "parseFunction" to optimize Function constructor
        https://bugs.webkit.org/show_bug.cgi?id=190340

        Reviewed by Mark Lam.

        * fast/dom/attribute-event-listener-errors-expected.txt:
        * fast/events/attribute-listener-deletion-crash-expected.txt:
        * fast/events/window-onerror-syntax-error-in-attr-expected.txt:
        * js/dom/invalid-syntax-for-function-expected.txt:
        * js/dom/script-start-end-locations-expected.txt:

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

        Enable the datalist element by default on iOS and macOS
        https://bugs.webkit.org/show_bug.cgi?id=190594
        <rdar://problem/45281159>

        Reviewed by Ryosuke Niwa and Tim Horton.

        * TestExpectations:

        Mark a couple of datalist tests as failures, with corresponding Bugzilla links.

        * fast/forms/datalist/datalist-fallback-content-expected.html:
        * fast/forms/datalist/datalist-fallback-content.html:

        Refactor this ref test. This was checking that a text input field with an associated datalist with fallback
        content looks identical to an text input field without a datalist, but this simply isn't the case with our
        current implementation due to the presence of the list button. Instead, add a div to cover the list button in
        both cases, and further augment this test to check that inputs of type color behave the same.

        * fast/forms/datalist/range-snap-to-datalist-expected.txt: Added.

        Add missing expectations for this test that were never checked in. Since sliderTickSnappingThreshold simply
        returns 0, this test behaves as expected, though behavior here may change when we add a make the "snapping
        threshold" nonzero.

        * fast/forms/datalist/validity-assertion-inserting-into-datalist-expected.txt: Renamed from LayoutTests/fast/forms/validity-assertion-inserting-into-datalist-expected.txt.
        * fast/forms/datalist/validity-assertion-inserting-into-datalist.html: Renamed from LayoutTests/fast/forms/validity-assertion-inserting-into-datalist.html.
        * fast/selectors/read-only-read-write-input-basics-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
        * platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.

        Add missing expectations.

        * platform/ios-wk1/TestExpectations:

        Don't run datalist tests in WebKitLegacy by marking them as [ WontFix ].

        * platform/ios-wk2/accessibility/roles-exposed-expected.txt: Added.
        * platform/ios-wk2/fast/borders/empty-outline-border-assert-expected.txt: Added.
        * platform/ios-wk2/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
        * platform/ios-wk2/fast/forms/label/labelable-elements-expected.txt: Added.
        * platform/ios-wk2/fast/forms/label/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
        * platform/ios-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Copied from LayoutTests/fast/selectors/read-only-read-write-input-basics-expected.txt.
        * platform/ios-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt: Added.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt.
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
        * platform/ios-wk2/imported/w3c/web-platform-tests/shadow-dom/input-element-list-expected.txt: Added.
        * platform/ios-wk2/mathml/presentation/foreign-element-in-token-expected.txt: Added.

        Add baselines for WebKit2, where we enable the datalist element and color inputs.

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

        Don't run datalist tests in WebKitLegacy by marking them as [ WontFix ].

        * platform/mac-wk2/accessibility/roles-exposed-expected.txt: Copied from LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt.
        * platform/mac-wk2/fast/borders/empty-outline-border-assert-expected.txt: Added.
        * platform/mac-wk2/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
        * platform/mac-wk2/fast/forms/label/labelable-elements-expected.txt: Added.
        * platform/mac-wk2/fast/forms/label/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
        * platform/mac-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Copied from LayoutTests/fast/selectors/read-only-read-write-input-basics-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
        * platform/mac-wk2/imported/w3c/web-platform-tests/shadow-dom/input-element-list-expected.txt: Added.
        * platform/mac-wk2/mathml/presentation/foreign-element-in-token-expected.txt: Added.

        Add baselines for WebKit2, where we enable the datalist element and color inputs.

        * platform/mac/TestExpectations:
        * platform/mac/accessibility/roles-exposed-expected.txt:
        * platform/mac/fast/selectors/read-only-read-write-input-basics-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:

        Re-rebaseline test expectations that involve input type color, now that color inputs are off by default in WebKitLegacy.

        * platform/win/TestExpectations:

        Remove various datalist test skips and failures on macOS and iOS; ensure that the test failures that are still
        present are tracked with links to Bugzilla.

2018-10-17  Justin Michaud  <justin_michaud@apple.com>

        Parse paint() and store paint callbacks for CSS Painting API
        https://bugs.webkit.org/show_bug.cgi?id=190657

        Reviewed by Dean Jackson.

        * fast/css-custom-paint/basic-expected.txt:
        * fast/css-custom-paint/basic.html:

2018-10-17  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement WebGPU bindings up through WebGPUDevice creation
        https://bugs.webkit.org/show_bug.cgi?id=190653

        Reviewed by Dean Jackson.

        Small test to validate creation of a WebGPUDevice when WebGPU is enabled.

        * webgpu/webgpu-enabled.html: Added.

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

        [Apple Pay] Increment the API version to 5
        https://bugs.webkit.org/show_bug.cgi?id=190686
        <rdar://problem/45348523>

        Reviewed by Simon Fraser.

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

2018-10-17  Chris Fleizach  <cfleizach@apple.com>

        AX: Certain tags should identify their context to iOS API
        https://bugs.webkit.org/show_bug.cgi?id=190622
        <rdar://problem/45308194>

        Reviewed by Zalan Bujtas.

        * accessibility/ios-simulator/text-context-attributes.html: Added.
        * accessibility/ios-simulator/text-context-attributes-expcted.txt: Added.

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

        Flaky IntersectionObserver web platform tests involving style updates
        https://bugs.webkit.org/show_bug.cgi?id=189091

        Reviewed by Simon Fraser.

        Remove expectation for tests that are no longer flaky.

        Skip IntersectionObserver tests on WK1.

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

2018-10-17  Charlie Turner  <cturner@igalia.com>

        [EME] media/encrypted-media/mock-MediaKeySystemAccess.html crashes in CDM::createInstance
        https://bugs.webkit.org/show_bug.cgi?id=190578

        Reviewed by Xabier Rodriguez-Calvar.

        * platform/gtk/TestExpectations:

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

        Regression(r236795) Check boxes are sometimes checked when they should not be
        https://bugs.webkit.org/show_bug.cgi?id=190651
        <rdar://problem/45319934>

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/dom/HTMLInputElement/checkbox-dirty-checkedness-flag-expected.txt: Added.
        * fast/dom/HTMLInputElement/checkbox-dirty-checkedness-flag.html: Added.

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

        window.performance should not become null after the window loses its browsing context
        https://bugs.webkit.org/show_bug.cgi?id=190636

        Reviewed by Ryosuke Niwa.

        Extend layout test coverage.

        * http/tests/dom/cross-origin-detached-window-properties-expected.txt:
        * http/tests/dom/cross-origin-detached-window-properties.html:
        * http/tests/dom/same-origin-detached-window-properties-expected.txt:
        * http/tests/dom/same-origin-detached-window-properties.html:

2018-10-16  Timothy Hatcher  <timothy@apple.com>

        Add <meta name="supported-color-schemes"> to control what color schemes the page supports
        https://bugs.webkit.org/show_bug.cgi?id=190526
        rdar://problem/45230140

        Reviewed by Dean Jackson.

        * css-dark-mode/supported-color-schemes-expected.txt: Added.
        * css-dark-mode/supported-color-schemes.html: Added.

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

        Web Inspector: Canvas: capture previously saved states and add them to the recording payload
        https://bugs.webkit.org/show_bug.cgi?id=190473

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/recording-2d-expected.txt:
        * inspector/canvas/recording-2d.html:
        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer):
        (TestPage.registerInitializer.async.logRecording): Added.
        (TestPage.registerInitializer.logRecording): Deleted.
        * inspector/model/recording-expected.txt:
        * inspector/model/recording.html:

2018-10-16  Justin Michaud  <justin_michaud@apple.com>

        Implement feature flag and bindings for CSS Painting API
        https://bugs.webkit.org/show_bug.cgi?id=190237

        Reviewed by Ryosuke Niwa.

        Add basic tests for the CSS Painting API registerPaint function,
        and test the custom bindings.

        * fast/css-custom-paint/basic-expected.txt: Added.
        * fast/css-custom-paint/basic.html: Added.
        * fast/css-custom-paint/registerPaintBindings-expected.txt: Added.
        * fast/css-custom-paint/registerPaintBindings.html: Added.
        * platform/ios-wk1/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        [WebVTT] Support inline WebVTT styles
        https://bugs.webkit.org/show_bug.cgi?id=190369

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/css-styling.vtt: Added.
        * media/track/captions-webvtt/no-css-styling.vtt: Added.
        * media/track/track-cue-css-expected.html: Added.
        * media/track/track-cue-css.html: Added.

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

        window.navigator should not become null after the window loses its browsing context
        https://bugs.webkit.org/show_bug.cgi?id=190595

        Reviewed by Ryosuke Niwa.

        Extend layout test coverage.

        * fast/frames/detached-frame-property-expected.txt:
        * fast/frames/detached-frame-property.html:
        * http/tests/dom/cross-origin-detached-window-properties-expected.txt:
        * http/tests/dom/cross-origin-detached-window-properties.html:
        * http/tests/dom/same-origin-detached-window-properties-expected.txt:
        * http/tests/dom/same-origin-detached-window-properties.html:

2018-10-16  Charlie Turner  <cturner@igalia.com>

        [EME] Multiple ClearKey tests crashing in gst_qtdemux_request_protection_context
        https://bugs.webkit.org/show_bug.cgi?id=190577

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations:

2018-10-15  Timothy Hatcher  <timothy@apple.com>

        Add support for prefers-color-scheme media query
        https://bugs.webkit.org/show_bug.cgi?id=190499
        rdar://problem/45212025

        Reviewed by Dean Jackson.

        * css-dark-mode/prefers-color-scheme-expected.txt: Added.
        * css-dark-mode/prefers-color-scheme.html: Added.
        * platform/gtk/TestExpectations: Skip css-dark-mode.
        * platform/ios/TestExpectations: Skip css-dark-mode.
        * platform/mac-wk1/TestExpectations: Skip css-dark-mode.
        * platform/win/TestExpectations: Skip css-dark-mode.
        * platform/wincairo/TestExpectations: Skip css-dark-mode.
        * platform/wpe/TestExpectations: Skip css-dark-mode.

2018-10-15  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Cleanup Table test utilities
        https://bugs.webkit.org/show_bug.cgi?id=190538
        <rdar://problem/45237730>

        Reviewed by Joseph Pecoraro.

        Cleanup Table test utilities by exposing removing the artificial dependency
        between TableDelegate and TableDataSource, and exposing a cleaner set of
        utility methods to InspectorTest. This patch changes `InspectorTest.createTable`
        to take no parameters, and adds `InspectorTest.createTableWithDelegate` for
        tests that need to supply a custom delegate.

        * inspector/table/resources/table-utilities.js:
        (TestPage.registerInitializer.InspectorTest.TableDataSource):
        (TestPage.registerInitializer.InspectorTest.TableDelegate):
        (TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tablePopulateCell):
        (TestPage.registerInitializer.createDataSource):
        (TestPage.registerInitializer.createTableInternal):
        (TestPage.registerInitializer.InspectorTest.createTable):
        (TestPage.registerInitializer.InspectorTest.createTableWithDelegate):
        (TestPage.registerInitializer):

        * inspector/table/table-selection-expected.txt:
        Update with new test suite name.

        * inspector/table/table-selection.html:

2018-10-15  Charles Vazac  <cvazac@gmail.com>

        Web Inspector: Expose Server Timing Response Headers in Network Tab
        https://bugs.webkit.org/show_bug.cgi?id=190440

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/server-timing-entry-expected.txt:
        * inspector/unit-tests/server-timing-entry.html:

2018-10-15  Alex Christensen  <achristensen@webkit.org>

        Garden WK2 tests after r237104
        https://bugs.webkit.org/show_bug.cgi?id=190522

        * platform/wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: Removed.
        I added  this wk2 expectation in r234658 after r234640.  r237104 effectively did the inverse of r234640,
        so behavior is back to how it was before then.  This makes the expectations reflect such.

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

        Experiment: target=_blank on anchors should imply rel=noopener
        https://bugs.webkit.org/show_bug.cgi?id=190481

        Reviewed by Alex Christensen.

        Update existing tests to reflect behavior change.

        * TestExpectations:
        * http/tests/navigation/no-referrer-reset.html:
        * http/tests/security/resources/referrer-policy-redirect-link.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
        * http/tests/security/xssAuditor/link-opens-new-window.html:

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

        [Apple Pay] New shipping methods are ignored when updating after the shippingaddresschange event
        https://bugs.webkit.org/show_bug.cgi?id=190560
        <rdar://problem/44559075>

        Reviewed by Youenn Fablet.

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

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

        [iOS] Can't select text after dismissing the keyboard when changing focus
        https://bugs.webkit.org/show_bug.cgi?id=190563
        <rdar://problem/44613559>

        Reviewed by Tim Horton.

        Add a new layout test to check that the user can make a selection by long pressing after the keyboard is
        dismissed due to changing the focused element.

        * editing/selection/ios/select-text-after-changing-focus-expected.txt: Added.
        * editing/selection/ios/select-text-after-changing-focus.html: Added.
        * resources/ui-helper.js:

        Also tweak the behavior of `UIHelper.waitForKeyboardToHide()`, so that it resolves immediately if the keyboard
        is not shown. This allows us to ensure that tests which use `UIHelper.waitForKeyboardToHide()` are robust in the
        case where they wait for another action to complete (e.g. a simulated tap) prior to registering a keyboard
        hiding callback.

        (window.UIHelper.waitForKeyboardToHide.return.new.Promise):
        (window.UIHelper.waitForKeyboardToHide):

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

        [Apple Pay] Payment authorization results with ApplePayErrors should never be considered final
        https://bugs.webkit.org/show_bug.cgi?id=190559
        <rdar://problem/37250908>

        Reviewed by Anders Carlsson.

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

2018-10-15  Commit Queue  <commit-queue@webkit.org>

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

        "this regressed JetStream 2 by 6% on iOS" (Requested by
        saamyjoon on #webkit).

        Reverted changeset:

        "[JSC] JSC should have "parseFunction" to optimize Function
        constructor"
        https://bugs.webkit.org/show_bug.cgi?id=190340
        https://trac.webkit.org/changeset/237054

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

        Changing view scale should zoom to initial scale if the page is already at initial scale
        https://bugs.webkit.org/show_bug.cgi?id=190570
        <rdar://problem/45261877>

        Reviewed by Tim Horton.

        * fast/viewport/ios/initial-scale-after-changing-view-scale-expected.txt: Added.
        * fast/viewport/ios/initial-scale-after-changing-view-scale.html: Added.

        Add a new layout test to verify that:
        1.  Changing view scale before the page scale factor is changed by the user zooms to the new initial scale.
        2.  Changing view scale after the user changes the page scale to something different than initial scale does not
            cause the page to zoom to the new initial scale.
        3.  Changing view scale after the user changes the page scale factor back to initial scale causes the page to
            zoom to the new initial scale.

        * resources/basic-gestures.js:

        Make a small tweak in `doubleTapToZoomAtPoint` to ensure that both single taps as well as zooming are complete
        before invoking UIScriptController completion.

        (return.new.Promise):

2018-10-15  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>

        [Cairo] Incorrect rendering for 135-deg skews
        https://bugs.webkit.org/show_bug.cgi?id=190513

        Reviewed by Žan Doberšek.

        * fast/transforms/skew-x-135deg-with-gradient-expected.html: Added.
        * fast/transforms/skew-x-135deg-with-gradient.html: Added.
        * fast/transforms/skew-y-135deg-with-gradient-expected.html: Added.
        * fast/transforms/skew-y-135deg-with-gradient.html: Added.

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

        Restrict browsing context lookup by name to frames that are related to one another
        https://bugs.webkit.org/show_bug.cgi?id=190475

        Reviewed by Alex Christensen.

        * http/tests/dom/new-window-can-target-opener-expected.txt: Added.
        * http/tests/dom/new-window-can-target-opener.html: Added.
        * http/tests/dom/noopener-window-cannot-target-opener-expected.txt: Added.
        * http/tests/dom/noopener-window-cannot-target-opener.html: Added.
        * http/tests/dom/noopener-window-not-targetable-expected.txt: Added.
        * http/tests/dom/noopener-window-not-targetable.html: Added.
        * http/tests/dom/noopener-window-not-targetable2-expected.txt: Added.
        * http/tests/dom/noopener-window-not-targetable2.html: Added.
        * http/tests/dom/noreferrer-window-not-targetable-expected.txt: Added.
        * http/tests/dom/noreferrer-window-not-targetable.html: Added.
        * http/tests/dom/opened-window-not-targetable-after-disowning-opener-expected.txt: Added.
        * http/tests/dom/opened-window-not-targetable-after-disowning-opener.html: Added.
        * http/tests/dom/resources/new-window-can-target-opener-win.html: Added.
        * http/tests/dom/resources/noopener-window-cannot-target-opener-win.html: Added.
        Add layout test coverage.

        * fast/dom/Window/a-rel-noopener-expected.txt:
        * fast/dom/Window/area-rel-noopener-expected.txt:
        * fast/dom/Window/resources/rel-noopener.js:
        * http/tests/navigation/no-referrer-target-blank-expected.txt:
        * http/tests/navigation/resources/no-referrer-helper.php:
        * platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt:
        * platform/wk2/imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt:
        Update / rebaseline existing tests to reflect behavior change.

2018-10-15  YUHAN WU  <yuhan_wu@apple.com>

        Implement error handler of MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=190438

        Reviewed by Youenn Fablet.

        Since dataavailable event has not been implemented, skip three MediaRecorder-related tests now.
        We will need to reenable those tests once implementing the dataavailable event for MediaRecorder.

        * TestExpectations:

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

        Window's properties such as 'location' should not become null when it loses its browsing context
        https://bugs.webkit.org/show_bug.cgi?id=190539

        Reviewed by Alex Christensen.

        * http/tests/dom/cross-origin-detached-window-properties-expected.txt: Added.
        * http/tests/dom/cross-origin-detached-window-properties.html: Added.
        * http/tests/dom/resources/post-message-to-parent-when-loaded.html: Added.
        * http/tests/dom/same-origin-detached-window-properties-expected.txt: Added.
        * http/tests/dom/same-origin-detached-window-properties.html: Added.
        Add layout test coverage.

        * fast/frames/detached-frame-property-expected.txt:
        * fast/frames/detached-frame-property.html:
        * http/tests/security/named-window-property-from-same-origin-inactive-document-expected.txt:
        * http/tests/security/named-window-property-from-same-origin-inactive-document.html:
        * http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document-expected.txt:
        * http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
        * http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
        Update existing layout tests to reflect behavior change.

2018-10-15  Claudio Saavedra  <csaavedra@igalia.com>

        [GStreamer] MediaStream test failing since r236877

        Unreviewed gardening
        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:

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

        [iOS] Allow SPI clients to lay out at arbitrarily scaled sizes and scale to fit the view
        https://bugs.webkit.org/show_bug.cgi?id=190504
        <rdar://problem/45117760>

        Reviewed by Tim Horton.

        Add two new layout tests on iOS that change WKWebView's view scale, and measure the resulting window sizes and
        lengths of viewport units.

        * fast/viewport/ios/constant-width-viewport-after-changing-view-scale-expected.txt: Added.
        * fast/viewport/ios/constant-width-viewport-after-changing-view-scale.html: Added.

        Add a test page with a viewport meta tag that has a constant width and an explicit initial scale of 0.5.

        * fast/viewport/ios/device-width-viewport-after-changing-view-scale-expected.txt: Added.
        * fast/viewport/ios/device-width-viewport-after-changing-view-scale.html: Added.

        Add a test page with a viewport meta tag at device-width, with initial scale 1.

        * resources/ui-helper.js:
        (window.UIHelper.setViewScale):

        Add a convenience function that wraps a UI script invocation of `setViewScale` in a promise.

        (window.UIHelper):

2018-10-12  Dawei Fenton  <realdawei@apple.com>

        [Mojave Wk2] Layout Test http/tests/cache/disk-cache/disk-cache-validation-attachment.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=190323

        Unreviewed, mark test as Flaky.

        * platform/mac-wk2/TestExpectations:

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

        Layout Test editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=190520

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [JSC] JSC should have "parseFunction" to optimize Function constructor
        https://bugs.webkit.org/show_bug.cgi?id=190340

        Reviewed by Mark Lam.

        * fast/dom/attribute-event-listener-errors-expected.txt:
        * fast/events/attribute-listener-deletion-crash-expected.txt:
        * fast/events/window-onerror-syntax-error-in-attr-expected.txt:
        * js/dom/invalid-syntax-for-function-expected.txt:
        * js/dom/script-start-end-locations-expected.txt:

2018-10-11  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer] Support arbitrary video resolution in getUserMedia API
        https://bugs.webkit.org/show_bug.cgi?id=189734

        Implement arbitrary video resolution for the getUserMedia API in GStreamer.

        Fix the MockRealtimeMediaSource device list to make devices properties match
        test expectations.

        Reactivate tests that were failling because of that.

        Reviewed by Xabier Rodriguez-Calvar.

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

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

        Layout Test fast/forms/fieldset/fieldset-elements-htmlcollection.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=190472

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-10-11  Alejandro G. Castro  <alex@igalia.com>

        [GTK][WPE] Add mediaDevices.enumerateDevices support
        https://bugs.webkit.org/show_bug.cgi?id=185761

        Reviewed by Youenn Fablet.

        Remove the failure expectation for the test
        media-devices-enumerate-devices.html. Just for the record we have
        also checked the following tests.

        fast/mediastream/media-devices-enumerate-devices.html
        fast/mediastream/resources/enumerate-devices-frame.html
        http/tests/media/media-stream/enumerate-devices-source-id.html
        http/tests/media/media-stream/enumerate-devices-source-id-persistent.html
        http/tests/media/media-stream/resources/enumerate-devices-source-id-frame.html

        * platform/gtk/TestExpectations:

2018-10-10  Devin Rousso  <drousso@apple.com>

        Web Inspector: create special Network waterfall for media events
        https://bugs.webkit.org/show_bug.cgi?id=189773
        <rdar://problem/44626605>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/dom/didFireEvent-expected.txt: Added.
        * http/tests/inspector/dom/didFireEvent.html: Added.

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

2018-10-10  Brent Fulgham  <bfulgham@apple.com>

        Only report the supported WebGL version
        https://bugs.webkit.org/show_bug.cgi?id=190434
        <rdar://problem/45024677>

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/gl-getstring-expected.txt:
        * fast/canvas/webgl/gl-getstring.html:

2018-10-10  Tim Horton  <timothy_horton@apple.com>

        Share more WKShareSheet code between macOS and iOS, and fix a few bugs
        https://bugs.webkit.org/show_bug.cgi?id=190420

        Reviewed by Simon Fraser.

        * fast/events/ios/share-expected.txt: Removed.
        * fast/events/ios/share.html: Removed.
        * fast/web-share/share.html: Added.
        * fast/web-share/share-expected.txt: Added.
        * resources/ui-helper.js:
        (window.UIHelper.setShareSheetCompletesImmediatelyWithResolution):
        (window.UIHelper.invokeShareSheetWithResolution): Deleted.
        Move the existing share sheet test to fast/web-share so it runs on both macOS and iOS.

        * fast/web-share/share-with-no-url.html: Added.
        * fast/web-share/share-with-no-url-expected.txt: Added.
        Add a new test that the sheet is successfully invoked even when a URL is not provided.

2018-10-10  Devin Rousso  <drousso@apple.com>

        Web Inspector: notify the frontend when a canvas has started recording via console.record
        https://bugs.webkit.org/show_bug.cgi?id=190306

        Reviewed by Brian Burg.

        * inspector/canvas/recording-2d.html:
        * inspector/canvas/recording-bitmaprenderer.html:
        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl.html:
        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer.window.startRecording):
        Wait to complete the test until the "LastFrame" event is fired, ensuring that any running
        commands don't affect the next test case.

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

        Remove the frames() timing function
        https://bugs.webkit.org/show_bug.cgi?id=190034
        <rdar://problem/44827544>

        Reviewed by Dean Jackson.

        * legacy-animation-engine/transitions/frames-timing-function-expected.txt:
        * legacy-animation-engine/transitions/transitions-parsing-expected.txt:
        * transitions/frames-timing-function-expected.txt:
        * transitions/transitions-parsing-expected.txt:

2018-10-09  Devin Rousso  <drousso@apple.com>

        Web Inspector: show redirect requests in Network and Timelines tabs
        https://bugs.webkit.org/show_bug.cgi?id=150005
        <rdar://problem/5378164>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/resource-timing-expected.txt:
        * http/tests/inspector/network/resource-timing.html:

        * http/tests/inspector/network/resources/delay.php: Added.
        * http/tests/inspector/network/resources/redirect.php: Added.

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

        REGRESSION(r234620): SVGLangSpace::svgAttributeChanged() should invalidate the renderer of the SVGGeometryElement descendant only
        https://bugs.webkit.org/show_bug.cgi?id=190411

        Reviewed by Simon Fraser.

        * svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr-expected.txt: Added.
        * svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr.html: Added.

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

        Anchor target should be ignored on activation when the download attribute is set
        https://bugs.webkit.org/show_bug.cgi?id=190408

        Reviewed by Geoffrey Garen.

        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed.html: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed.html: Added.
        Add layout test coverage.

        * http/tests/download/anchor-load-after-download.html:
        * http/tests/workers/service/resources/registration-task-queue-scheduling-1.js:
        Update existing WK2-only layout tests to call testRunner.setCanOpenWindows() since they rely on
        opening a new window. We failed to notice the issue because these tests are not run on WK1.

        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:
        Skip new tests on WebKit1 since the download attribute is only supported on WebKit2.

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

        Unreviewed, skip fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html on iOS.

        The download attribute is not supported on iOS yet.

        * platform/ios-wk2/TestExpectations:

2018-10-09  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
        https://bugs.webkit.org/show_bug.cgi?id=190403

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/create-context-webmetal.html:
        Fix missing parenthesis.

        * inspector/canvas/resources/shaderProgram-utilities.js:
        (createProgram):
        (TestPage.registerInitializer.awaitProgramAdded):
        (TestPage.registerInitializer):
        (TestPage.registerInitializer.window.initializeTestSuite):
        Replace the `WI.CanvasManager` events (which were removed) with listeners for events on the
        specific `WI.Canvas`.

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

        REGRESSION (Safari 12): Download of Blob URL fails
        https://bugs.webkit.org/show_bug.cgi?id=190351
        <rdar://problem/45091181>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html: Added.

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

        Add support for IceCandidate stats
        https://bugs.webkit.org/show_bug.cgi?id=190329

        Reviewed by Eric Carlson.

        * webrtc/candidate-stats-expected.txt: Added.
        * webrtc/candidate-stats.html: Added.
        * webrtc/routines.js:
        * webrtc/video-stats.html:

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

        [GStreamer] Stealing cross-origin video pixel with HLS
        https://bugs.webkit.org/show_bug.cgi?id=190003

        Reviewed by Xabier Rodriguez-Calvar.

        * platform/gtk/TestExpectations: Unflag now-passing test.

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

        Fix inspector/canvas/recording.html after r236952

        Unreviewed. Test gardening.

        * inspector/canvas/recording-expected.txt:
        * inspector/canvas/recording.html:
        Recordings default to only capturing a single frame, so add a parameter to ensure that we
        are capturing multiple frames.

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

        [Cocoa] [WK2] Add support for text alignment and text lists in font attributes
        https://bugs.webkit.org/show_bug.cgi?id=190342
        <rdar://problem/44767118>

        Reviewed by Tim Horton.

        * editing/mac/attributed-string/attributed-string-for-typing-expected.txt:
        * editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-expected.txt:
        * platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt:

        Rebaseline these two layout tests, now that typing attributes include an NSParagraphStyle.

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

        WebGPU: Rename old WebGPU prototype to WebMetal
        https://bugs.webkit.org/show_bug.cgi?id=190325
        <rdar://problem/44990443>

        Reviewed by Dean Jackson.

        Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

        * fast/canvas/webgpu/webgpu-runtime-flag-expected.txt: Removed.
        * fast/canvas/webmetal/webmetal-dispatch-expected.txt: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-dispatch-expected.txt.
        * fast/canvas/webmetal/webmetal-dispatch.html: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-dispatch.html.
        * fast/canvas/webmetal/webmetal-runtime-flag-expected.txt: Added.
        * fast/canvas/webmetal/webmetal-runtime-flag.html: Renamed from LayoutTests/fast/canvas/webgpu/webgpu-runtime-flag.html.
        * inspector/canvas/create-context-webmetal-expected.txt: Renamed from LayoutTests/inspector/canvas/create-context-webgpu-expected.txt.
        * inspector/canvas/create-context-webmetal.html: Renamed from LayoutTests/inspector/canvas/create-context-webgpu.html.
        * inspector/canvas/resolveCanvasContext-webgpu-expected.txt: Removed.
        * inspector/canvas/resolveCanvasContext-webmetal-expected.txt: Added.
        * inspector/canvas/resolveCanvasContext-webmetal.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

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

        Web Inspector: allow multiple canvases to be recorded at the same time
        https://bugs.webkit.org/show_bug.cgi?id=190305

        Reviewed by Brian Burg.

        * inspector/canvas/recording-2d.html:
        * inspector/canvas/recording-bitmaprenderer.html:
        * inspector/canvas/recording-expected.html:
        * inspector/canvas/recording-webgl.html:
        * inspector/canvas/recording.html:
        * inspector/canvas/resources/recording-utilities.js:
        (TestPage.registerInitializer.window.startRecording.handleRecordingProgress):
        (TestPage.registerInitializer.window.startRecording):
        (TestPage.registerInitializer.window.consoleRecord):
        (TestPage.registerInitializer):

2018-10-08  Dean Jackson  <dino@apple.com>

        CrashTracer: backboardd at Recursion :: QuartzCore: CA::Render::Updater::prepare_sublayer0
        https://bugs.webkit.org/show_bug.cgi?id=190376
        <rdar://problem/44986520>

        Reviewed by Tim Horton.

        * compositing/layer-creation/deep-tree.html:

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

        Make <input type=color> a runtime enabled (on-by-default) feature
        https://bugs.webkit.org/show_bug.cgi?id=189162

        Reviewed by Wenson Hsieh and Tim Horton.

        Rebaseline layout tests after enabling input type=color by default.

        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
        * platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
        * platform/ios/fast/forms/color/input-appearance-color-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter-expected.txt: Added.
        * platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/color-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:
        * platform/mac/fast/selectors/read-only-read-write-input-basics-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:

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

        Move test expectations from ios-12 to ios directory
        https://bugs.webkit.org/show_bug.cgi?id=189839

        Unreviewed test gardening..

        * platform/ios-11/http/tests/quicklook/hide-referer-on-navigation-expected.txt: Removed.
        * platform/ios-11/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt: Removed.
        * platform/ios-11/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.https-expected.txt: Removed.
        * platform/ios-11/platform/ios/ios/fast/text/opticalFont-expected.txt: Removed.
        * platform/ios-11/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
        * platform/ios-11/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt: Removed.
        * platform/ios-11/quicklook/powerpoint-expected.txt: Removed.
        * platform/ios-11/quicklook/powerpoint-legacy-expected.txt: Removed.
        * platform/ios-11/quicklook/word-expected.txt: Removed.
        * platform/ios-11/quicklook/word-legacy-expected.txt: Removed.
        * platform/ios-11/svg/batik/text/longTextOnPath-expected.txt: Removed.
        * platform/ios-12/TestExpectations: Removed.
        * platform/ios/TestExpectations:

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

        Attempt to fix test failure after 236915
        https://bugs.webkit.org/show_bug.cgi?id=190352

        Unreviewed Test Gardening

        * platform/mac-highsierra/hkdf.https.worker-expected.txt: Removed.
        * platform/mac/imported/w3c/canvas/2d.shadow.gradient.basic-expected.png: Removed.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt:

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

        Moving files to fix failures introduced in r236915
        https://bugs.webkit.org/show_bug.cgi?id=190352

        Unreviewed test gardening 

        * platform/mac-highsierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt: Copied from LayoutTests/platform/mac/hkdf.https.worker-expected.txt.
        * platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt: Renamed from LayoutTests/platform/mac/hkdf.https.worker-expected.txt.

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

        Web Inspector: group media network entries by the node that triggered the request
        https://bugs.webkit.org/show_bug.cgi?id=189606
        <rdar://problem/44438527>

        Reviewed by Brian Burg.

        * http/tests/inspector/network/resource-initiatorNode-expected.txt: Added.
        * http/tests/inspector/network/resource-initiatorNode.html: Added.

        * inspector/canvas/requestNode.html:
        Test case no longer needed since the document is always requested once it's available.

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

        [Payment Request] Requests should be aborted after details settle when the user cancels
        https://bugs.webkit.org/show_bug.cgi?id=190333

        Reviewed by Alex Christensen.

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

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

        REGRESSION (r235630?): [Mojave WK1] Layout test compositing/filters/opacity-change-on-filtered-paints-into-ancestor.html is a flaky image failure
        https://bugs.webkit.org/show_bug.cgi?id=189756

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Layout Tests editing/deleting/delete-emoji.html editing/deleting/delete-emoji-1.html editing/deleting/delete-emoji-9.html are passing.
        https://bugs.webkit.org/show_bug.cgi?id=190353

        Unreviewed. Remove the tests from TestExpectations file.

        * platform/mac/TestExpectations:

2018-10-08  Dawei Fenton  <realdawei@apple.com>

        Layout Tests editing/deleting/delete-emoji.html editing/deleting/delete-emoji-1.html editing/deleting/delete-emoji-9.html are passing.
        https://bugs.webkit.org/show_bug.cgi?id=190353

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Rebaseline imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.html for Mojave
        https://bugs.webkit.org/show_bug.cgi?id=190352

        Unreviewed test Gardening

        * platform/mac-highsierra/hkdf.https.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt.
        * platform/mac/hkdf.https.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker-expected.txt.
        * platform/mac/imported/w3c/canvas/2d.shadow.gradient.basic-expected.png: Added.

2018-10-05  Devin Rousso  <drousso@apple.com>

        Web Inspector: refactor constructor of WI.Resource
        https://bugs.webkit.org/show_bug.cgi?id=190318

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/har/har-basic.html:
        * inspector/unit-tests/resource-collection.html:

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

        Try to unflake inspector/layers/layerTreeDidChange.html

        Unreviewed. Test gardening.

        * inspector/layers/layerTreeDidChange.html:
        Force a layout early in the test to try to force layout tree
        update events in the expected sequence.

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

        [Web Animations] REGRESSION (r236809): crash under AnimationTimeline::updateCSSAnimationsForElement()
        https://bugs.webkit.org/show_bug.cgi?id=190307
        <rdar://problem/45009901>

        Reviewed by Dean Jackson.

        This test was also crashing even though it should not have been using the new animation engine. Adding the
        flag to opt into the legacy animation engine.

        * legacy-animation-engine/animations/animation-shorthand-removed.html:

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

        A Document / Window should lose its browsing context as soon as its iframe is removed from the document
        https://bugs.webkit.org/show_bug.cgi?id=190282

        Reviewed by Ryosuke Niwa.

        Update existing layout test to reflect behavior change.

        * fast/dom/Window/BarInfo-after-frame-removed.html:
        * fast/dom/Window/dom-access-from-closure-iframe-expected.txt:
        * fast/dom/Window/dom-access-from-closure-window-expected.txt:
        * fast/dom/Window/dom-access-from-closure-window-with-gc-expected.txt:
        * fast/dom/Window/resources/dom-access-from-closure-iframe-child.html:
        * fast/dom/Window/resources/dom-access-from-closure-window-child.html:
        * fast/events/resources/before-unload-return-string-conversion-frame.html:
        * fast/parser/resources/set-parent-to-javascript-url.html:
        * http/tests/media/media-stream/disconnected-frame.html:
        * http/tests/security/contentSecurityPolicy/resources/checkDidSameOriginChildWindowLoad.js:
        (checkDidLoad):
        * http/tests/security/named-window-property-from-same-origin-inactive-document-expected.txt:
        * http/tests/security/named-window-property-from-same-origin-inactive-document.html:
        * http/tests/security/xss-DENIED-contentWindow-eval-expected.txt:
        * http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document-expected.txt:
        * http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document.html:

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

        Unreviewed test gardening for WinCairo (and one cross-platform test). 

        * TestExpectations:
        Remove a cross-platform failure that seems to be passing on all platforms now.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.

2018-10-04  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Table should support multiple selection and Cmd-click behavior
        https://bugs.webkit.org/show_bug.cgi?id=189705
        <rdar://problem/44571170>

        Reviewed by Devin Rousso.

        * inspector/table/resources/table-utilities.js: Added.
        (TestPage.registerInitializer.InspectorTest.TableDataSource):
        (TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.get items):
        (TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.tableNumberOfRows):
        (TestPage.registerInitializer.InspectorTest.TableDelegate):
        (TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tableSelectionDidChange):
        (TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tablePopulateCell):
        (TestPage.registerInitializer.InspectorTest.createTable):
        (TestPage.registerInitializer):

        * inspector/table/table-selection-expected.txt: Added.
        * inspector/table/table-selection.html: Added.
        * inspector/unit-tests/index-set-expected.txt: Added.
        * inspector/unit-tests/index-set.html: Added.

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

        MutationRecord doesn't keep JS wrappers of target, addedNodes, and removedNodes alive
        https://bugs.webkit.org/show_bug.cgi?id=190277

        Reviewed by Antti Koivisto.

        Added two regression tests for making sure mutation observers and mutation records keep JS wrappers
        of the enqueued nodes alive. Also see r236799 for a previous failed attempt to add a similar test.

        * fast/dom/MutationObserver/mutation-observer-keeps-js-wrappers-of-nodes-alive-expected.txt: Added.
        * fast/dom/MutationObserver/mutation-observer-keeps-js-wrappers-of-nodes-alive.html: Added.
        * fast/dom/MutationObserver/mutation-record-keeps-js-wrappers-of-nodes-alive-expected.txt: Added.
        * fast/dom/MutationObserver/mutation-record-keeps-js-wrappers-of-nodes-alive.html: Added.

2018-10-04  Devin Rousso  <drousso@apple.com>

        Web Inspector: merge ProbeManager into DebuggerManager
        https://bugs.webkit.org/show_bug.cgi?id=190225

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/debugger/debugger-test.js:
        (TestPage.registerInitializer.InspectorTest.startTracingProbes):
        (TestPage.registerInitializer):
        * http/tests/inspector/resources/probe-test.js:
        (TestPage.registerInitializer.ProtocolTest.Probe.installTracingListeners):
        (TestPage.registerInitializer):

2018-10-04  Devin Rousso  <drousso@apple.com>

        Web Inspector: some files not listed in OpenResourceDialog
        https://bugs.webkit.org/show_bug.cgi?id=190272

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/resource-query-controller-expected.txt:
        * inspector/unit-tests/resource-query-controller.html:

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

        [WebAuthN] Move time out control from WebProcess to UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=189642
        <rdar://problem/44476765>

        Reviewed by Chris Dumez.

        This patch also fixes some flaky behaviours regarding to the dirty ASN.1 decoder.

        * http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html: Copied from LayoutTests/http/wpt/webauthn/public-key-credential-create-failure-local.https.html.
        * http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html: Copied from LayoutTests/http/wpt/webauthn/public-key-credential-get-failure-local.https.html.
        * http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/resources/util.js:

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

        Regression(r236779): Crash when changing the input element type from inside an 'input' event listener
        https://bugs.webkit.org/show_bug.cgi?id=190252

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/dom/HTMLInputElement/change-type-in-click-event-listener-expected.txt: Added.
        * fast/dom/HTMLInputElement/change-type-in-click-event-listener.html: Added.
        * fast/dom/HTMLInputElement/change-type-in-input-event-listener-expected.txt: Added.
        * fast/dom/HTMLInputElement/change-type-in-input-event-listener.html: Added.

2018-10-04  YUHAN WU  <yuhan_wu@apple.com>

        runtime flag and IDL for MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=190018

        Reviewed by Youenn Fablet and Chris Dumez.

        * platform/win/TestExpectations:
        * fast/mediacapturefromelement/CanvasCaptureMediaStream-capture-out-of-DOM-element-expected.txt:
        * fast/mediacapturefromelement/CanvasCaptureMediaStream-framerate-0-expected.txt:
        * fast/mediacapturefromelement/CanvasCaptureMediaStream-imagebitmaprenderingcontext-expected.txt:

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

        Unreviewed, rolling out r236803.

        Caused crashes on some bots

        Reverted changeset:

        "Regression(r236779): Crash when changing the input element
        type from inside an 'input' event listener"
        https://bugs.webkit.org/show_bug.cgi?id=190252
        https://trac.webkit.org/changeset/236803

2018-10-03  Justin Michaud  <justin_michaud@apple.com>

        Registered custom properties should allow inheritance to be controlled
        https://bugs.webkit.org/show_bug.cgi?id=190038

        Reviewed by Antti Koivisto.

        Add tests to check css registered custom properties with inherits. Also test
        calc expression evaluation for inherited registered custom properties.

        * css-custom-properties-api/inherits-expected.txt: Added.
        * css-custom-properties-api/inherits.html: Added.
        * css-custom-properties-api/length-expected.txt: Added.
        * css-custom-properties-api/length.html: Added.
        * css-custom-properties-api/length2-expected.txt: Added.
        * css-custom-properties-api/length2.html: Added.

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

        Add VP8 support to WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=189976

        Reviewed by Eric Carlson.

        * webrtc/audio-peer-connection-g722.html:
        * webrtc/routines.js:
        * webrtc/video-mute-vp8-expected.txt: Added.
        * webrtc/video-mute-vp8.html: Added.

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

        [WebCrypto] ECDSA could not deal with invalid signature inputs
        https://bugs.webkit.org/show_bug.cgi?id=189879
        <rdar://problem/44701276>

        Reviewed by Brent Fulgham.

        * crypto/subtle/ecdsa-verify-malformed-parameters-expected.txt:
        * crypto/subtle/ecdsa-verify-malformed-parameters.html:

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

        [Web Animations] REGRESSION: setting 'animation-name: none' after a 'fill: forwards' animation has completed does not revert to the unanimated style
        https://bugs.webkit.org/show_bug.cgi?id=190257
        <rdar://problem/41341473>

        Reviewed by Dean Jackson.

        Add a test that checks that an animation with fill: forwards no longer applies to an element once it's been removed.

        * animations/animation-fill-forwards-removal-expected.txt: Added.
        * animations/animation-fill-forwards-removal.html: Added.

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

        Regression(r236779): Crash when changing the input element type from inside an 'input' event listener
        https://bugs.webkit.org/show_bug.cgi?id=190252

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/dom/HTMLInputElement/change-type-in-click-event-listener-expected.txt: Added.
        * fast/dom/HTMLInputElement/change-type-in-click-event-listener.html: Added.
        * fast/dom/HTMLInputElement/change-type-in-input-event-listener-expected.txt: Added.
        * fast/dom/HTMLInputElement/change-type-in-input-event-listener.html: Added.

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

        Unreviewed, rolling out r236781.

        The test added with this commit is timing out consistently.

        Reverted changeset:

        "GC can collect JS wrappers of nodes in the mutation records
        waiting to be delivered"
        https://bugs.webkit.org/show_bug.cgi?id=190115
        https://trac.webkit.org/changeset/236781

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

        Enable H264 simulcast
        https://bugs.webkit.org/show_bug.cgi?id=190167

        Reviewed by Eric Carlson.

        * TestExpectations:
        * webrtc/simulcast-h264-expected.txt: Added.
        * webrtc/simulcast-h264.html: Added.

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

        Enable selectionAcrossShadowBoundariesEnabled by default in WebKitLegacy
        https://bugs.webkit.org/show_bug.cgi?id=190238

        Reviewed by Antti Koivisto.

        Removed the unnecessary webkit-test-runner directive.

        * editing/pasteboard/copy-paste-across-shadow-boundaries-1.html:
        * editing/pasteboard/copy-paste-across-shadow-boundaries-2.html:
        * editing/pasteboard/copy-paste-across-shadow-boundaries-3.html:
        * editing/pasteboard/copy-paste-across-shadow-boundaries-4.html:
        * editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html:
        * editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html:
        * editing/pasteboard/copy-paste-with-shadow-content.html:
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html:
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html:
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html:
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html:
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html:
        * editing/selection/selection-across-shadow-boundaries-readonly-1.html:
        * editing/selection/selection-across-shadow-boundaries-readonly-2.html:
        * editing/selection/selection-across-shadow-boundaries-readonly-3.html:
        * editing/selection/selection-across-shadow-boundaries-user-select-all-1.html:

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

        [WinCairo][BuildBot] archive-test-results fails to delete pywebsocket.ws.log-err.txt
        https://bugs.webkit.org/show_bug.cgi?id=190236

        Unreviewed test gardening.

        * platform/wincairo/TestExpectations: Skipped http/wpt and imported/w3c.

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

        Copying content with shadow DOM doesn't copy any contents
        https://bugs.webkit.org/show_bug.cgi?id=157443

        Reviewed by Wenson Hsieh.

        Added tests for copying and pasting across shadow boundaries with HTML and plain text.

        * editing/pasteboard/copy-paste-across-shadow-boundaries-1-expected.txt: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-1.html: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-2-expected.txt: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-2.html: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-3-expected.txt: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-3.html: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-4-expected.txt: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-4.html: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1-expected.txt: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2-expected.txt: Added.
        * editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html: Added.
        * editing/pasteboard/copy-paste-with-shadow-content-expected.txt: Added.
        * editing/pasteboard/copy-paste-with-shadow-content.html: Added.

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

        GC can collect JS wrappers of nodes in the mutation records waiting to be delivered
        https://bugs.webkit.org/show_bug.cgi?id=190115

        Reviewed by Geoffrey Garen.

        Added a regression test.

        * fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive-expected.txt: Added.
        * fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html: Added.

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

        radio / checkbox inputs should fire "click, input, change" events in order when clicked
        https://bugs.webkit.org/show_bug.cgi?id=190223

        Reviewed by Ryosuke Niwa.

        Update existing test to reflect behavior change. I have verified that our new behavior
        on this test is consistent with Gecko and Chrome.

        * fast/forms/radio/radio-group-keyboard-change-event-expected.txt:
        * fast/forms/radio/radio-group-keyboard-change-event.html:

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

        fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection
        https://bugs.webkit.org/show_bug.cgi?id=190218

        Reviewed by Alex Christensen.

        Update existing tests to reflect behavior change, after checking that our behavior is consistent
        with Gecko and Blink on these tests.

        * fast/forms/fieldset/fieldset-elements-expected.txt:
        * fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt: Added.
        * fast/forms/fieldset/fieldset-elements-htmlcollection.html: Added.
        * fast/forms/fieldset/fieldset-elements.html:
        * fast/forms/fieldset/fieldset-form-collection-radionode-list-expected.txt: Removed.
        * fast/forms/fieldset/fieldset-form-collection-radionode-list.html: Removed.

2018-10-02  Devin Rousso  <drousso@apple.com>

        Web Inspector: prevent layer events from firing until the layer information is re-requested
        https://bugs.webkit.org/show_bug.cgi?id=190159

        Reviewed by Joseph Pecoraro.

        * inspector/layers/layerTreeDidChange-expected.txt: Added.
        * inspector/layers/layerTreeDidChange.html: Added.

2018-10-02  Devin Rousso  <drousso@apple.com>

        Web Inspector: rename frontend managers to be more consistent with backend agents
        https://bugs.webkit.org/show_bug.cgi?id=190160

        Reviewed by Joseph Pecoraro.

        * 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/dom/shapes-test.js:
        * http/tests/inspector/network/har/har-page.html:
        * http/tests/inspector/network/loadResource-insecure-resource.html:
        * 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/websocket/tests/hybi/inspector/before-load.html:
        * http/tests/websocket/tests/hybi/inspector/resolveWebSocket.html:
        * inspector/canvas/requestNode.html:
        * inspector/codemirror/resources/prettyprinting/utilities.js:
        (TestPage.registerInitializer.loadPrettyPrintingTestAndExpectedResults):
        (TestPage.registerInitializer.window.addPrettyPrintingTests):
        (TestPage.registerInitializer):
        * inspector/console/clearMessages.html:
        * inspector/console/command-line-api.html:
        * inspector/console/console-api.html:
        * inspector/console/console-count.html:
        * inspector/console/console-table.html:
        * inspector/console/console-time.html:
        * inspector/console/message-stack-trace.html:
        * inspector/console/messageAdded-from-named-evaluations.html:
        * inspector/console/messageRepeatCountUpdated.html:
        * inspector/console/messagesCleared.html:
        * inspector/console/webcore-logging-expected.txt:
        * inspector/console/webcore-logging.html:
        * inspector/controller/runtime-controller-import.html:
        * inspector/controller/runtime-controller.html:
        * inspector/css/add-rule.html:
        * inspector/css/createStyleSheet.html:
        * inspector/css/css-property.html:
        * inspector/css/getAllStyleSheets.html:
        * inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
        * inspector/css/matched-style-properties.html:
        * inspector/css/modify-css-property.html:
        * inspector/css/modify-rule-selector.html:
        * inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
        * inspector/css/pseudo-element-matches.html:
        * inspector/css/selector-dynamic-specificity.html:
        * inspector/css/selector-specificity.html:
        * inspector/css/shadow-scoped-style.html:
        * inspector/css/stylesheet-events-basic.html:
        * inspector/css/stylesheet-events-imports.html:
        * inspector/css/stylesheet-events-inspector-stylesheet.html:
        * inspector/css/stylesheet-events-multiple-documents.html:
        * inspector/css/stylesheet-with-mutations.html:
        * inspector/debugger/csp-exceptions.html:
        * inspector/debugger/js-stacktrace.html:
        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.window.findScript):
        (TestPage.registerInitializer.window.loadMainPageContent):
        (TestPage.registerInitializer.window.logResolvedBreakpointLinesWithContext):
        (TestPage.registerInitializer.window.logLinesWithContext):
        * inspector/debugger/stepping/stepping-through-autoContinue-breakpoint.html:
        * inspector/dom-debugger/dom-breakpoints.html:
        * inspector/dom-debugger/xhr-breakpoints.html:
        * inspector/dom/breakpoint-for-event-listener.html:
        * inspector/dom/csp-big5-hash.html:
        * inspector/dom/csp-hash.html:
        * inspector/dom/customElementState.html:
        * inspector/dom/domutilities-csspath.html:
        * inspector/dom/domutilities-path-dump.html:
        * inspector/dom/domutilities-xpath.html:
        * inspector/dom/event-listener-add-remove.html:
        * inspector/dom/getEventListenersForNode.html:
        * inspector/dom/getOuterHTML.html:
        * inspector/dom/hideHighlight.html:
        * inspector/dom/highlightFrame.html:
        * inspector/dom/highlightNode.html:
        * inspector/dom/highlightNodeList.html:
        * inspector/dom/highlightSelector.html:
        * inspector/dom/insertAdjacentHTML.html:
        * inspector/dom/inspect.html:
        * inspector/dom/pseudo-element-dynamic.html:
        * inspector/dom/pseudo-element-static.html:
        * inspector/dom/push-node-by-path-to-frontend.html:
        * inspector/dom/setEventListenerDisabled.html:
        * inspector/dom/setInspectedNode.html:
        * inspector/dom/setOuterHTML-no-document-element.html:
        * inspector/dom/setOuterHTML.html:
        * inspector/dom/shadow-and-non-shadow-children.html:
        * inspector/dom/shadowRootType.html:
        * inspector/dom/template-content.html:
        * inspector/formatting/resources/utilities.js:
        (TestPage.registerInitializer.loadFormattingTestAndExpectedResults):
        (TestPage.registerInitializer.window.addFormattingTests):
        (TestPage.registerInitializer):
        * inspector/indexeddb/clearObjectStore.html:
        * inspector/indexeddb/deleteDatabaseNamesWithSpace.html:
        * inspector/indexeddb/requestData.html:
        * inspector/indexeddb/requestDatabase.html:
        * inspector/indexeddb/requestDatabaseNames.html:
        * inspector/layers/layer-tree-manager.html:
        * inspector/model/dom-node.html:
        * inspector/model/frame-extra-scripts.html:
        * inspector/model/script-resource-relationship.html:
        * inspector/model/stack-trace.html:
        * inspector/page/empty-or-missing-resources.html:
        * inspector/page/hidpi-snapshot-size.html:
        * inspector/page/main-frame-resource.html:
        * inspector/runtime/change-execution-context-identifier.html:
        * inspector/runtime/saveResult.html:
        * inspector/storage/domStorage-events.html:
        * inspector/worker/console-basic.html:
        * inspector/worker/resources-in-worker.html:

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

        [Curl] Fix missing values of  resource timing API.
        https://bugs.webkit.org/show_bug.cgi?id=190193

        Reviewed by Alex Christensen.

        * platform/wincairo/TestExpectations:

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

        [WebVTT] Cue with line setting is not rendered correctly
        https://bugs.webkit.org/show_bug.cgi?id=190168

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/line-position.vtt: Added.
        * media/track/track-cue-line-position-expected-mismatch.html: Added.
        * media/track/track-cue-line-position.html: Added.

2018-10-02  Carlos Eduardo Ramalho  <cadubentzen@gmail.com>

        [GTK] fast/forms/color/input-appearance-color.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=189350

        Reviewed by Michael Catanzaro.

        Update test expectations to match changes introduced in r235435.

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

2018-10-01  Dean Jackson  <dino@apple.com>

        Remove CSS Animation Triggers
        https://bugs.webkit.org/show_bug.cgi?id=190175
        <rdar://problem/44925626>

        Reviewed by Simon Fraser.

        Remove a bunch of tests that no longer have an implementation.

        * TestExpectations:
        * animations/trigger-computed-style-expected.txt: Removed.
        * animations/trigger-computed-style.html: Removed.
        * animations/trigger-container-scroll-boundaries-expected.txt: Removed.
        * animations/trigger-container-scroll-boundaries.html: Removed.
        * animations/trigger-container-scroll-empty-expected.txt: Removed.
        * animations/trigger-container-scroll-empty.html: Removed.
        * animations/trigger-container-scroll-simple-expected.txt: Removed.
        * animations/trigger-container-scroll-simple.html: Removed.
        * animations/trigger-parsing-expected.txt: Removed.
        * animations/trigger-parsing.html: Removed.
        * fast/css/compare-animation-trigger-expected.txt: Removed.
        * fast/css/compare-animation-trigger.html: Removed.
        * legacy-animation-engine/animations/trigger-computed-style-expected.txt: Removed.
        * legacy-animation-engine/animations/trigger-computed-style.html: Removed.
        * legacy-animation-engine/animations/trigger-container-scroll-boundaries-expected.txt: Removed.
        * legacy-animation-engine/animations/trigger-container-scroll-boundaries.html: Removed.
        * legacy-animation-engine/animations/trigger-container-scroll-empty-expected.txt: Removed.
        * legacy-animation-engine/animations/trigger-container-scroll-empty.html: Removed.
        * legacy-animation-engine/animations/trigger-container-scroll-simple-expected.txt: Removed.
        * legacy-animation-engine/animations/trigger-container-scroll-simple.html: Removed.
        * legacy-animation-engine/animations/trigger-parsing-expected.txt: Removed.
        * legacy-animation-engine/animations/trigger-parsing.html: Removed.
        * legacy-animation-engine/fast/css/compare-animation-trigger-expected.txt: Removed.
        * legacy-animation-engine/fast/css/compare-animation-trigger.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/wincairo/TestExpectations:

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

        Unreviewed, rolling out r236624 and r236671.
        https://bugs.webkit.org/show_bug.cgi?id=190207

        The change in r236624 introduced crashes on the bots
        (Requested by ryanhaddad on #webkit).

        Reverted changesets:

        "Refactoring: eliminate raw pointer usage in Fullscreen code"
        https://bugs.webkit.org/show_bug.cgi?id=188747
        https://trac.webkit.org/changeset/236624

        "Unify implementation in VideoFullscreenInterfaceAVKit"
        https://bugs.webkit.org/show_bug.cgi?id=190091
        https://trac.webkit.org/changeset/236671

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

        [WPE] Enable more Cache Storage and Service Workers tests
        https://bugs.webkit.org/show_bug.cgi?id=190198

        Reviewed by Michael Catanzaro.

        * platform/wpe/TestExpectations: Unskip most tests and add expectations for a few of them.

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

        [GTK] Enable more Cache Storage and Service Workers tests
        https://bugs.webkit.org/show_bug.cgi?id=190196

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations: Unskip most tests are add some failure annotations.

2018-10-02  Thibault Saunier  <tsaunier@igalia.com>

        [GTK][WPE] Blacklist more tests that are requiring webrtc <-> webaudio bridging
        https://bugs.webkit.org/show_bug.cgi?id=189829

        Reviewed by Alejandro G. Castro.

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

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

        [WinCairo] Enable some wpt tests.
        https://bugs.webkit.org/show_bug.cgi?id=190129

        Unreviewed test gardening..

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

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

        [WinCairo] Unreviewed test gardening.

        * platform/wincairo/TestExpectations:

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

        Removed a failing test expectation on imported/w3c/web-platform-tests/shadow-dom/slotchange.html
        since we haven't seen a single failure after the fix in r236440.

        * platform/mac/TestExpectations:

2018-10-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Update delete-emoji expected results
        https://bugs.webkit.org/show_bug.cgi?id=190182

        Unreviewed.

        Simply update the expected results.

        * platform/mac-highsierra/editing/deleting/delete-emoji-1-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-1-expected.txt.
        * platform/mac-highsierra/editing/deleting/delete-emoji-9-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-9-expected.txt.
        * platform/mac-highsierra/editing/deleting/delete-emoji-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-expected.txt.
        * platform/mac/TestExpectations:
        * platform/mac/editing/deleting/delete-emoji-1-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-9-expected.txt:
        * platform/mac/editing/deleting/delete-emoji-expected.txt:

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

        Add a new variant of serializePreservingVisualAppearance which takes VisibleSelection
        https://bugs.webkit.org/show_bug.cgi?id=190108

        Reviewed by Wenson Hsieh.

        Rebaselined the test since the bug that interchange new lines are inserted in the last table cell is fixed.
        Also updated the description in the test to reflect this change.

        * editing/pasteboard/paste-table-003-expected.txt:
        * editing/pasteboard/paste-table-003.html:

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

        Unreviewed, rebaseline tests after r236632.

        * platform/ios/css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
        * platform/ios/css3/blending/repaint/blend-mode-turn-off-isolation-expected.txt:
        * platform/ios/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.

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

        Remove StorageProcess
        https://bugs.webkit.org/show_bug.cgi?id=189975

        Reviewed by Geoffrey Garen.

        Since Service Worker management is in netowrk process now, we should terminate network 
        process instead of storage process.

        * http/wpt/service-workers/persistent-importScripts.html:

2018-10-01  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Import a JS CBOR coder
        https://bugs.webkit.org/show_bug.cgi?id=189877
        <rdar://problem/44701124>

        Reviewed by Chris Dumez.

        This patch import a 3rd party JS CBOR coder from https://github.com/paroga/cbor-js.
        The library is MIT licensed, which should be fine to use within WebKit.

        As a benefit from the library, tests are updated to check CBOR binaries.

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

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

        [iOS] Special keys are misidentified in DOM keyboard events
        https://bugs.webkit.org/show_bug.cgi?id=189974

        Reviewed by Wenson Hsieh.

        Add tests to ensure that we do not regress key identification for special keys.

        Update the expected results for test fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html
        now that we correctly identify some more keys.

        * fast/events/ios/keydown-keyup-arrow-keys-in-non-editable-element-expected.txt: Added.
        * fast/events/ios/keydown-keyup-arrow-keys-in-non-editable-element.html: Added.
        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
        * fast/events/ios/keypress-keys-in-non-editable-element-expected.txt: Added.
        * fast/events/ios/keypress-keys-in-non-editable-element.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.typeCharacter): Actually type the specified character in DumpRenderTree.

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

        REGRESSION (r235948?): Layout Test media/media-controls-accessibility.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189674

        Unreviewed test gardening..

        * platform/mac/TestExpectations: Remove flaky expectation.

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

        [macOS Sierra] Layout Test http/wpt/cache-storage/cache-put-keys.https.any.worker.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184204

        Reviewed by Chris Dumez.

        * platform/mac-wk2/TestExpectations:

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

        Make crossOriginObject.then undefined for promises
        https://bugs.webkit.org/show_bug.cgi?id=190094

        Reviewed by Darin Adler.

        Update existing tests to reflect behavior change.

        * http/tests/navigation/process-swap-window-open-expected.txt:
        * http/tests/navigation/process-swap-window-open.html:
        * http/wpt/cross-origin-window-policy/resources/utils.js:
        (testCrossOriginOption):

2018-10-01  Alicia Boya García  <aboya@igalia.com>

        [MSE][GStreamer] Reset running time in PlaybackPipeline::flush()
        https://bugs.webkit.org/show_bug.cgi?id=190076

        Reviewed by Philippe Normand.

        A test where a seek is followed by a redundant append is added. This
        test timed out in the GStreamer MSE implementation before the
        accompanying patch fixed it.

        The MIME type declared in test-48khz-manifest.json has also been
        changed, from non-standard `audio/x-m4a` to `audio/mp4;
        codecs="mp4a.40.2"`, as implied by the MSE specs. This should not
        affect other tests because no other tests were reading this type
        string before.

        * media/media-source/content/test-48khz-manifest.json:
        * media/media-source/media-source-seek-redundant-append-expected.txt: Added.
        * media/media-source/media-source-seek-redundant-append.html: Added.
        * media/video-test.js:

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

        [Web Animations] Fix test regressions after enabling Web Animations with CSS Integration
        https://bugs.webkit.org/show_bug.cgi?id=190032

        Unreviewed. We need to opt into the legacy animation engine for these tests to fix some crashes in other
        tests due to webkit.org/b/186946.

        * legacy-animation-engine/animations/cross-fade-webkit-mask-image.html:
        * legacy-animation-engine/transitions/delay.html:
        * legacy-animation-engine/transitions/transition-timing-function.html:

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

        [MediaStream] Clean up RealtimeMediaSource settings change handling
        https://bugs.webkit.org/show_bug.cgi?id=189998
        <rdar://problem/44797884>

        Reviewed by Youenn Fablet.

        * webrtc/video-disabled-black.html:

2018-09-29  Commit Queue  <commit-queue@webkit.org>

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

        Caused various eventSender tests, including fast/css/pseudo-
        active-style-sharing*, to fail (Requested by smfr on #webkit).

        Reverted changeset:

        "Regression(r236512): http/tests/navigation/keyboard-events-
        during-provisional-navigation.html is flaky"
        https://bugs.webkit.org/show_bug.cgi?id=190052
        https://trac.webkit.org/changeset/236631

2018-09-28  Zamiul Haque  <zhaque@apple.com>

        Angled gradient backgrounds in body render vertically when body height is 0
        https://bugs.webkit.org/show_bug.cgi?id=177232
        <rdar://problem/34548230>.

        Reviewed by Tim Horton.

        Added tests to make sure that angled background gradients inside of a 
        body tag of height 0 render as empty white screens.

        * angled-background-repeating-gradient-rendering-vertical.html: Added.
        * angled-background-repeating-gradient-rendering-vertical-expected.html: Added.

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

        The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString
        https://bugs.webkit.org/show_bug.cgi?id=190090

        Reviewed by Ryosuke Niwa.

        Update test that was returning a value in a beforeunload event listener instead of using an
        event handler. The test needs to use an event handler (window.onbeforeunload) as an event
        listener does not have a return value. I have verified that our behavior is consistent with
        Chrome and Firefox on this test, both with an event listener and an event handler.

        * fast/loader/form-submission-after-beforeunload-cancel.html:

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

        RenderLayer::removeOnlyThisLayer() should not call updateLayerPositions()
        https://bugs.webkit.org/show_bug.cgi?id=190093

        Reviewed by Dean Jackson and Zalan Bujtas.
        
        The ordering of the repaints changes.
        
        blend-mode-turn-off-isolation-no-effect.html now issues a repaint, which is expected now.
        Isolation is so rare that this is not a problem.

        * css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
        * css3/blending/repaint/blend-mode-turn-off-isolation-expected.txt:
        * css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt:
        * fast/repaint/absolute-position-change-containing-block-expected.txt:

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

        Web Inspector: crash in InspectorNetworkAgent::didReceiveResponse when loading denied x-frame resources
        https://bugs.webkit.org/show_bug.cgi?id=190046

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/resources/x-frame-options.php: Added.
        * http/tests/inspector/network/x-frame-options-expected.txt: Added.
        * http/tests/inspector/network/x-frame-options.html: Added.

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

        [WebAuthN] Polish WebAuthN auto-test environment
        https://bugs.webkit.org/show_bug.cgi?id=189283
        <rdar://problem/44117828>

        Reviewed by Chris Dumez.

        This patch does the following few things:
        1. Update tests that employ old mocking mechnism to the new one.
        2. Move tests from http/tests/webauthn to http/wpt/webauthn. As a result, we have one unified place for
        all WebAuthN tests: http/wpt/webauthn.
        3. Add a helper function to check DOMException message as well.

        * TestExpectations:
        * http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Removed.
        * http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Removed.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https-expected.txt: Removed.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https.html: Removed.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Removed.
        * http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Removed.
        * http/tests/webauthn/resources/last-layer-frame.https.html: Removed.
        * http/tests/webauthn/resources/util.js: Removed.
        * http/wpt/credential-management/credentialscontainer-store-basics.https.html:
        * http/wpt/webauthn/idl.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-failure.https.html:
        * http/wpt/webauthn/public-key-credential-create-success.https-expected.txt: Removed.
        * http/wpt/webauthn/public-key-credential-create-success.https.html: Removed.
        * http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https.html.
        * http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure.https.html:
        * http/wpt/webauthn/public-key-credential-get-success.https-expected.txt: Removed.
        * http/wpt/webauthn/public-key-credential-get-success.https.html: Removed.
        * http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https.html.
        * http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Added.
        * http/wpt/webauthn/resources/last-layer-frame.https.html: Added.
        * http/wpt/webauthn/resources/second-layer-frame.https.html: Renamed from LayoutTests/http/tests/webauthn/resources/second-layer-frame.https.html.
        * http/wpt/webauthn/resources/util.js:
        * platform/gtk/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * platform/wpe/TestExpectations:

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

        Refactoring: eliminate raw pointer usage in Fullscreen code
        https://bugs.webkit.org/show_bug.cgi?id=188747
        <rdar://problem/43541164>

        Reviewed by Alex Christensen.

        Test was causing false pass results due to the webkitPresentationMode being correctly set
        to "inline" during the close() operation; modify the test to only perform the close()
        operation when the presetation mode is changed to "picture-in-picture".

        * media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
        * media/controls/ipad/resources/picture-in-picture.html:

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

        Drop support for cross-origin-window-policy header
        https://bugs.webkit.org/show_bug.cgi?id=190081

        Reviewed by Ryosuke Niwa.

        * http/wpt/cross-origin-window-policy/allow-postmessage-expected.txt: Removed.
        * http/wpt/cross-origin-window-policy/allow-postmessage-from-deny-expected.txt: Removed.
        * http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html: Removed.
        * http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html.headers: Removed.
        * http/wpt/cross-origin-window-policy/allow-postmessage.html: Removed.
        * http/wpt/cross-origin-window-policy/cross-origin-window-policy-header-expected.txt: Removed.
        * http/wpt/cross-origin-window-policy/cross-origin-window-policy-header.html: Removed.
        * http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target-expected.txt: Removed.
        * http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target.html: Removed.
        * http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target-expected.txt: Removed.
        * http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target.html: Removed.
        * http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html: Removed.
        * http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html.headers: Removed.
        * http/wpt/cross-origin-window-policy/resources/destination.html: Removed.
        * http/wpt/cross-origin-window-policy/resources/navigate-parent-via-anchor.html: Removed.
        * http/wpt/cross-origin-window-policy/resources/navigation-from-subframe-frame.py: Removed.
        * http/wpt/cross-origin-window-policy/resources/serve-cross-origin-window-policy-header.py: Removed.
        * http/wpt/cross-origin-window-policy/resources/utils.js: Removed.

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

        [Apple Pay] Remove the "in-store" button type
        https://bugs.webkit.org/show_bug.cgi?id=190079

        Reviewed by Tim Horton.

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

2018-09-28  Dawei Fenton  <realdawei@apple.com>

        WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
        https://bugs.webkit.org/show_bug.cgi?id=189641

        Unreviewed, skip tests that are timing out.

        * TestExpectations:

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

        document.open() should throw errors for cross-origin calls
        https://bugs.webkit.org/show_bug.cgi?id=189371
        <rdar://problem/44282700>

        Reviewed by Youenn Fablet.

        Tweak a couple of existing tests to reflect behavior change.

        * fast/dom/HTMLDocument/document-open-return-value.html:
        * fast/parser/tokenizer-close-during-document-write.html:

2018-09-28  Commit Queue  <commit-queue@webkit.org>

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

        caused three API test timeouts (Requested by jernoble on
        #webkit).

        Reverted changeset:

        "Refactoring: eliminate raw pointer usage in Fullscreen code"
        https://bugs.webkit.org/show_bug.cgi?id=188747
        https://trac.webkit.org/changeset/236605

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

        Refactoring: eliminate raw pointer usage in Fullscreen code
        https://bugs.webkit.org/show_bug.cgi?id=188747
        <rdar://problem/43541164>

        Reviewed by Alex Christensen.

        Test was causing false pass results due to the webkitPresentationMode being correctly set
        to "inline" during the close() operation; modify the test to only perform the close()
        operation when the presetation mode is changed to "picture-in-picture".

        * media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
        * media/controls/ipad/resources/picture-in-picture.html:

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

        REGRESSION (r236573): [iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=190067

        Unreviewed, re-land ios-specific expected result for this test as they were inadvertently
        dropped in r236573.

        * platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
        * platform/ios/TestExpectations:

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

        [Curl] Fix priority issue with multiple cookies with different level of path.
        https://bugs.webkit.org/show_bug.cgi?id=189920

        Reviewed by Fujii Hironori.

        * http/tests/cookies/cookie-with-multiple-level-path-expected.txt: Added.
        * http/tests/cookies/cookie-with-multiple-level-path.html: Added.
        * http/tests/cookies/resources/cookie-with-multiple-level-path.php: Added.

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

        [iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=190067

        Unreviewed test gardening.

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

2018-09-27  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Non-redirected top frame navigation should not get captured in statistics
        https://bugs.webkit.org/show_bug.cgi?id=190055
        <rdar://problem/44843460>

        Reviewed by Chris Dumez.

        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-expected.txt: Added.
        * http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html: Added.

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

        Regression(r236512): fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html and editing/pasteboard/emacs-ctrl-a-k-y.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=190048

        Reviewed by Ryosuke Niwa.

        Update editing/pasteboard/emacs-ctrl-a-k-y.html to address flakiness:
        - Stop dumping editing callbacks as some of them may get logged in a slightly different order
          due to IPC ordering, and those are not needed to determine that the test passes.
        - Dump the test as text to avoid needing platform-specific results.

        * editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
        * editing/pasteboard/emacs-ctrl-a-k-y.html:
        * platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
        * platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
        * platform/ios-wk1/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
        * platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
        * platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
        * platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
        * platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
        * platform/win/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
        * platform/wincairo/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
        * platform/wincairo/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Removed.

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

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

        Reviewed by Youenn Fablet.

        Updated web-platform-tests/payment-request/ to tip-of-tree from web-platform-tests.

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

2018-09-27  Alicia Boya García  <aboya@igalia.com>

        [MSE] Fix unwanted sample erase from the decode queue
        https://bugs.webkit.org/show_bug.cgi?id=180643

        Reviewed by Jer Noble.

        Added a test case for the fixed bug.

        * media/media-source/media-source-append-acb-no-frame-lost.html: Added.

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

        Unreviewed, make fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html more deterministic to address flakiness.

        * fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
        * fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:

2018-09-27  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Remove temporary compatibility fix for auto-dismiss popups
        https://bugs.webkit.org/show_bug.cgi?id=189980
        <rdar://problem/44780645>

        Reviewed by Alex Christensen.

        This test was for the temporary compatibility fix in:
        https://bugs.webkit.org/show_bug.cgi?id=183620. This change makes it into a
        test that the compatibility fix is no longer there.

        * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-expected.txt.
        * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener.html.
        * platform/ios-wk2/TestExpectations:
            Removed comment and entry since https://bugs.webkit.org/show_bug.cgi?id=183714 was fixed long ago.
        * platform/ios/TestExpectations:
            Changed test name.
        * platform/mac-wk2/TestExpectations:
            Changed test name.

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

        Unreviewed, rolling out r236557.

        Really roll out r236557 this time because it breaks internal
        builds.

        Reverted changeset:

        "Add VP8 support to WebRTC"
        https://bugs.webkit.org/show_bug.cgi?id=189976
        https://trac.webkit.org/changeset/236557

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

        Add VP8 support to WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=189976

        Reviewed by Eric Carlson.

        * webrtc/audio-peer-connection-g722.html:
        * webrtc/routines.js:
        * webrtc/video-mute-vp8-expected.txt: Added.
        * webrtc/video-mute-vp8.html: Added.

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

        LayoutTest webrtc/video-unmute.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=172879
        <rdar://problem/32548738>

        Reviewed by Eric Carlson.

        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * webrtc/video-unmute.html:
        Resort on routines.js black frame routine.
        Reenable test in mac and ios.

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

        [Apple Pay] Support granular errors in PaymentDetailsUpdate
        https://bugs.webkit.org/show_bug.cgi?id=189938

        Reviewed by Youenn Fablet.

        * http/tests/resources/payment-request.js:
        (validPaymentDetails):
        (updateDetailsOnShippingAddressChange):
        * http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https-expected.txt: Added.
        * http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html: Added.
        * http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https-expected.txt: Added.
        * http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html: Added.
        * platform/mac-wk2/TestExpectations:

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

        document.open() should not propagate URLs to non-fully active documents
        https://bugs.webkit.org/show_bug.cgi?id=189375
        <rdar://problem/44282755>

        Reviewed by Youenn Fablet.

        Update existing test to reflect behavior change. I have verified that this test was
        failing in Firefox and is now passing in Firefox.

        * fast/dom/resource-locations-in-created-html-document.html:

2018-09-27  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=184183
        <rdar://problem/36800576>

        Reviewed by Ryosuke Niwa.

        Drop test for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption as it was
        removed in this patch. This SendOption is no longer useful because it is now the default behavior
        for the WebContent process.

        * fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply-expected.txt: Removed.
        * fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply.html: Removed.

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

        Unreviewed GTK WebAudio rebaseline.

        This time from the 64-bit Release bot...

        * platform/gtk/webaudio/oscillator-custom-expected.wav:
        * platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
        * platform/gtk/webaudio/oscillator-sine-expected.wav:
        * platform/gtk/webaudio/oscillator-square-expected.wav:
        * platform/gtk/webaudio/oscillator-triangle-expected.wav:

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

        Unreviewed GTK WebAudio rebaselines

        * platform/gtk/TestExpectations: webaudio/audioprocessingevent.html doesn't fail.
        * platform/gtk/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Rebaselined.

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

        [GTK] Several tests are failing since r217598
        https://bugs.webkit.org/show_bug.cgi?id=172809

        Unreviewed, GTK platform test expectations rebaseline.

        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/xmlhttprequest/cache-override-expected.txt: Removed.
        * platform/gtk/webaudio/oscillator-custom-expected.wav:
        * platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
        * platform/gtk/webaudio/oscillator-sine-expected.wav:
        * platform/gtk/webaudio/oscillator-square-expected.wav:
        * platform/gtk/webaudio/oscillator-triangle-expected.wav:

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

        [Web Animations] Turn Web Animations with CSS integration on
        https://bugs.webkit.org/show_bug.cgi?id=184819
        <rdar://problem/39597337>

        Reviewed by Dean Jackson.

        * 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/animation-playstate-paused-style-resolution.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/fill-mode-removed.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/leak-document-with-css-animation.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-leak-iframe.html:
        * animations/simultaneous-start-left.html:
        * animations/simultaneous-start-transform.html:
        * animations/spring-function.html:
        * animations/stacking-context-unchanged-while-running.html:
        * animations/stop-animation-on-suspend.html:
        * animations/suspend-resume-animation-events.html:
        * animations/timing-functions.html:
        * animations/transition-and-animation-1.html:
        * animations/transition-and-animation-2.html:
        * animations/transition-and-animation-3.html:
        * animations/trigger-container-scroll-boundaries.html:
        * animations/trigger-container-scroll-empty.html:
        * animations/trigger-container-scroll-simple.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/backing/transform-transition-from-outside-view.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/mismatched-rotated-transform-transition-overlap.html:
        * compositing/layer-creation/mismatched-transform-transition-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/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/scale-rotation-transition-overlap.html:
        * compositing/layer-creation/translate-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * compositing/layer-creation/translate-scale-transition-overlap.html:
        * compositing/layer-creation/translate-transition-overlap.html:
        * compositing/overflow/overflow-positioning.html:
        * compositing/reflections/animation-inside-reflection.html:
        * compositing/reflections/nested-reflection-animated.html:
        * compositing/reflections/nested-reflection-transition.html:
        * compositing/scrolling/touch-scroll-to-clip.html:
        * compositing/transitions/scale-transition-no-start.html:
        * compositing/transitions/singular-scale-transition.html:
        * compositing/visible-rect/animated-from-none.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-with-style-change2.html:
        * fast/animation/css-animation-resuming-when-visible.html:
        * fast/animation/css-animation-throttling-lowPowerMode.html:
        * fast/animation/height-auto-transition-computed-value.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:
        * http/wpt/css/css-animations/start-animation-001.html:
        * imported/blink/transitions/transition-not-interpolable.html:
        * imported/blink/transitions/unprefixed-transform.html:
        * platform/ios/TestExpectations:
        * platform/win/TestExpectations:
        * transitions/remove-transition-style.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/zero-duration-with-non-zero-delay-end.html:

2018-09-26  Devin Rousso  <drousso@apple.com>

        Web Inspector: Hide DOM and XHR breakpoint sections when they are empty
        https://bugs.webkit.org/show_bug.cgi?id=182406
        <rdar://problem/37131512>

        Reviewed by Joseph Pecoraro.

        * inspector/debugger/break-on-uncaught-exception-throw-in-promise.html:
        * inspector/debugger/break-on-uncaught-exception.html:
        * inspector/debugger/breakpoints-disabled-expected.txt:
        * inspector/debugger/breakpoints-disabled.html:
        * inspector/debugger/pause-reason.html:
        * inspector/debugger/setPauseOnAssertions.html:
        * inspector/worker/debugger-pause.html:

2018-09-26  Devin Rousso  <drousso@apple.com>

        Web Inspector: determine hasVisibleEffect for each RecordingAction as it's processed
        https://bugs.webkit.org/show_bug.cgi?id=189860

        Reviewed by Joseph Pecoraro.

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

2018-09-26  Justin Fan  <justin_fan@apple.com>

        WebGL 2: updated passing test expectations for deqp/primitiverestart
        https://bugs.webkit.org/show_bug.cgi?id=189981

        Reviewed by Jon Lee.

        Test-expectation updates for trac.webkit.org/changeset/236490; these are still to be skipped on ews.

        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt:
        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt:
        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt:
        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt:
        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt:
        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt:
        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt:
        * webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt:

2018-09-26  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, rolling out r236524.

        Broke API tests

        Reverted changeset:

        "URLWithUserTypedString should return nil for URLs deemed to
        be invalid by WebCore::URL"
        https://bugs.webkit.org/show_bug.cgi?id=189979
        https://trac.webkit.org/changeset/236524

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

        WebVTT cue alignment broken
        https://bugs.webkit.org/show_bug.cgi?id=190004

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/left-align.vtt: Added.
        * media/track/track-add-remove-cue-expected.txt:
        * media/track/track-add-remove-cue.html:
        * media/track/track-cue-left-align-expected-mismatch.html: Added.
        * media/track/track-cue-left-align.html: Added.
        * media/track/track-cue-mutable-expected.txt:
        * media/track/track-cue-mutable.html:
        * media/track/track-vttcue-expected.txt:
        * media/track/track-vttcue.html:
        * media/track/track-webvtt-tc013-settings-expected.txt:
        * media/track/track-webvtt-tc013-settings.html:
        * media/track/track-webvtt-tc015-positioning-expected.txt:
        * media/track/track-webvtt-tc015-positioning.html:
        * media/track/track-webvtt-tc016-align-positioning-expected.txt:
        * media/track/track-webvtt-tc016-align-positioning.html:
        * media/track/track-webvtt-tc018-align-text-line-position-expected.txt:
        * media/track/track-webvtt-tc018-align-text-line-position.html:
        * media/track/track-webvtt-tc021-valign-expected.txt:
        * media/track/track-webvtt-tc021-valign.html:
        * media/video-test.js:
        (testCues):

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

        Allow override of viewport configuration.
        https://bugs.webkit.org/show_bug.cgi?id=188772.
        <rdar://problem/43538892>.

        Reviewed by Simon Fraser.

        Add test proving that a document without a meta viewport specifying
        width=device-width still gets a layout when this setting is enabled. I also
        added a baseline case to prove that without this setting we do not layout
        at device width.

        * fast/viewport/ios/ipad/empty-viewport-expected.txt: Added.
        * fast/viewport/ios/ipad/empty-viewport.html: Added.
        * fast/viewport/ios/ipad/meta-viewport-disabled-expected.txt: Added.
        * fast/viewport/ios/ipad/meta-viewport-disabled.html: Added.

2018-09-26  Alex Christensen  <achristensen@webkit.org>

        uidna_nameToASCII only needs a buffer capacity of 64
        https://bugs.webkit.org/show_bug.cgi?id=190006

        Reviewed by Chris Dumez.

        * fast/dom/DOMURL/parsing.html:

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

        Selection should work across shadow boundary when initiated by a mouse drag
        https://bugs.webkit.org/show_bug.cgi?id=151380
        <rdar://problem/24363872>

        Reviewed by Antti Koivisto and Wenson Hsieh.

        Added regression tests using ref tests since getSelection() doesn't expose any node inside a shadow tree.

        * editing/selection/selection-across-shadow-boundaries-mixed-editability-1-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-2-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-3-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-4-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-5-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html: Added.
        * editing/selection/selection-across-shadow-boundaries-readonly-1-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-readonly-1.html: Added.
        * editing/selection/selection-across-shadow-boundaries-readonly-2-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-readonly-2.html: Added.
        * editing/selection/selection-across-shadow-boundaries-readonly-3-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-readonly-3.html: Added.
        * editing/selection/selection-across-shadow-boundaries-user-select-all-1-expected.html: Added.
        * editing/selection/selection-across-shadow-boundaries-user-select-all-1.html: Added.

2018-09-26  Alicia Boya García  <aboya@igalia.com>

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

        * TestExpectations:
        * platform/gtk/TestExpectations:

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

        Marking two more media-fragments/ tests as flakey after the iOS12 update
        https://bugs.webkit.org/show_bug.cgi?id=187557

        Unreviewed Test Gardening

        * platform/ios/TestExpectations:

2018-09-25  Justin Fan  <justin_fan@apple.com>

        WebGL 2 Conformance: primitive restart and draw_primitive_restart WebGL2 sample
        https://bugs.webkit.org/show_bug.cgi?id=189625
        <rdar://problem/42882620>

        Reviewed by Dean Jackson.

        Implement support for Primitive Restart Fixed Index as expected 
        by the WebGL 2 specifications. 

        * TestExpectations: Skip some flaky tests between different Mac machines under 2.0.0. 
        * webgl/webgl2-primitive-restart.html: Canary ref test to be run as part of LayoutTests suite.
        * webgl/webgl2-primitive-restart-expected.html:

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

        Unreviewed, rolling out r236420 and r236458.

        This change is not fully correct

        Reverted changesets:

        "Do not do early processing of incoming sync IPC unless we're
        waiting for a sync IPC reply"
        https://bugs.webkit.org/show_bug.cgi?id=186941
        https://trac.webkit.org/changeset/236420

        "Unreviewed, update bug number of http/tests/misc/blob-
        size.html crash on Windows"
        https://trac.webkit.org/changeset/236458

2018-09-25  Justin Fan  <justin_fan@apple.com>

        WebGL 2 conformance: expected test results for the deqp suite (mac-mojave-wk2)
        https://bugs.webkit.org/show_bug.cgi?id=189942

        Reviewed by Jon Lee.

        Add expected results for the deqp suite with the new detailed format, for this spade for macOS Mojave.

        * webgl/2.0.0/deqp/.../*-expected.txt: Added expected results.

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

        [WebAuthN] Make AuthenticatorManager
        https://bugs.webkit.org/show_bug.cgi?id=189279
        <rdar://problem/44116792>

        Reviewed by Chris Dumez.

        Most of the new tests are rewritten from the LocalAuthenticator API tests. Old mock tests are temporarily skipped
        for the new mock tests.

        * TestExpectations:
        * http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-failure-local.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-create-success-local.https.html: Added.
        * http/wpt/webauthn/public-key-credential-create-success.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-failure-local.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-get-success-local.https.html: Added.
        * http/wpt/webauthn/public-key-credential-get-success.https.html:
        * http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available-expected.txt: Added.
        * http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available.html: Added.
        * http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available-expected.txt: Removed.
        * http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available.html: Removed.
        * http/wpt/webauthn/resources/util.js:
        * platform/mac-wk2/TestExpectations:

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

        REGRESSION: (r235948) Layout Test compositing/backing/backing-store-attachment-fill-forwards-animation.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189598#c0

        Unreviewed test gardening.

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

2018-09-25  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Update constraints supported by getDisplayMedia
        https://bugs.webkit.org/show_bug.cgi?id=189930

        Reviewed by Youenn Fablet.

        * http/tests/media/media-stream/get-display-media-prompt-expected.txt:
        * http/tests/media/media-stream/get-display-media-prompt.html:

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

        [resource-timing] imported/w3c/web-platform-tests/resource-timing/resource_timing.worker.html times out on WK1
        https://bugs.webkit.org/show_bug.cgi?id=189908

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Mark test as a failure since it is hitting a WPT harness timeout.
        * platform/mac/TestExpectations: Remove expectation in favor of a mac-wk1 specific one.

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

        Unreviewed, correct a typo in a bug URL.

        * platform/mac/TestExpectations:

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

        Unreviewed, update bug number of http/tests/misc/blob-size.html crash on Windows

        * platform/win/TestExpectations:

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

        Mark two tests as flakey.

        * platform/mac/TestExpectations:

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

        Cap lifetime of persistent cookies created client-side through document.cookie
        https://bugs.webkit.org/show_bug.cgi?id=189933
        <rdar://problem/44741888>

        Reviewed by Chris Dumez.

        * TestExpectations:
            Skipped the new test by default since the behavior change is for
            Cocoa platforms only.
        * http/tests/cookies/capped-lifetime-for-cookie-set-in-js-expected.txt: Added.
        * http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html: Added.
        * http/tests/cookies/resources/cookie-utilities.js:
        * platform/ios/TestExpectations:
            Marked the new test as [ Pass ].
        * platform/mac-wk2/TestExpectations:
            Marked the new test as [ Pass ].

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

        Remove filterRes parameter from filters
        https://bugs.webkit.org/show_bug.cgi?id=129565
        <rdar://problem/44714340>

        Reviewed by Dean Jackson.

        Remove support for the "filterRes" attribute on SVG filters. It's marked as
        deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres
        and no longer supported by Chrome or Firefox.
        
        Removed existing filterRes tests, added new test checking that it has no effect.

        * html5lib/resources/tests11.dat: Edited to remove filterRes. This seems to have been superseded by
            imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests11.html
        * platform/gtk/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Removed.
        * platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Removed.
        * platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Removed.
        * platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Removed.
        * platform/gtk/svg/filters/filterRes-expected.png: Removed.
        * platform/gtk/svg/filters/filterRes1-expected.png: Removed.
        * platform/gtk/svg/filters/filterRes3-expected.png: Removed.
        * platform/mac/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt: Removed.
        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Removed.
        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Removed.
        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Removed.
        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Removed.
        * platform/mac/svg/filters/filterRes-expected.png: Removed.
        * platform/mac/svg/filters/filterRes1-expected.png: Removed.
        * platform/mac/svg/filters/filterRes2-expected.png: Removed.
        * platform/mac/svg/filters/filterRes3-expected.png: Removed.
        * svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt:
        * svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg:
        * svg/dom/SVGAnimatedInteger-expected.txt:
        * svg/dom/SVGAnimatedInteger.html: Change to use feConvolveMatrix orderX.
        * svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt: Removed.
        * svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html: Removed.
        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt: Removed.
        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html: Removed.
        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt: Removed.
        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html: Removed.
        * svg/filters/filterRes-is-noop-expected.svg: Added.
        * svg/filters/filterRes-is-noop.svg: Added.
        * svg/filters/filterRes.svg: Removed.
        * svg/filters/filterRes1-expected.txt: Removed.
        * svg/filters/filterRes1.svg: Removed.
        * svg/filters/filterRes2-expected.png: Removed.
        * svg/filters/filterRes2-expected.txt: Removed.
        * svg/filters/filterRes2.svg: Removed.
        * svg/filters/filterRes3-expected.txt: Removed.
        * svg/filters/filterRes3.svg: Removed.

2018-09-24  Justin Michaud  <justin_michaud@apple.com>

        Import WPT tests for css custom properties api
        https://bugs.webkit.org/show_bug.cgi?id=189764

        Reviewed by Ryosuke Niwa.

        * platform/mac-wk1/TestExpectations:

2018-09-24  Matt Lewis  <jlewis3@apple.com>

        Skipped accessibility/mac/focus-setting-selection-syncronizing-not-clearing.html on High Sierra+.
        https://bugs.webkit.org/show_bug.cgi?id=189094

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        imported/w3c/web-platform-tests/shadow-dom/slotchange.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=167652

        Reviewed by Saam Barati.

        Added a regression test for signaling a lot of slot elements.

        * fast/shadow-dom/signal-slot-list-retains-js-wrappers-expected.txt: Added.
        * fast/shadow-dom/signal-slot-list-retains-js-wrappers.html: Added.

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

        Release assert when using paper-textarea due to autocorrect IDL attribute missing CEReactions
        https://bugs.webkit.org/show_bug.cgi?id=174629
        <rdar://problem/33407620>

        Reviewed by Simon Fraser.

        Added a regression test for mutating autocorrect and autocapitalize IDL attributes during connected callback.

        * fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash-expected.txt: Added.
        * fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash.html: Added.

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

        [Curl] Enable http/tests/misc tests.
        https://bugs.webkit.org/show_bug.cgi?id=189931

        Unreviewed test gardening.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/misc/acid2-expected.txt: Added.
        * platform/wincairo/http/tests/misc/acid2-pixel-expected.txt: Added.
        * platform/wincairo/http/tests/misc/error404-expected.txt: Added.
        * platform/wincairo/http/tests/misc/favicon-as-image-expected.txt: Added.
        * platform/wincairo/http/tests/misc/frame-access-during-load-expected.txt: Added.
        * platform/wincairo/http/tests/misc/generated-content-inside-table-expected.txt: Added.
        * platform/wincairo/http/tests/misc/iframe404-expected.txt: Added.
        * platform/wincairo/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2-expected.txt: Added.
        * platform/wincairo/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png: Added.
        * platform/wincairo/http/tests/misc/slow-loading-image-in-pattern-expected.txt: Added.

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

        Update some test results under compositing/overflow
        https://bugs.webkit.org/show_bug.cgi?id=189857

        Reviewed by Tim Horton.
        
        Unskip some tests under compositing/overflow, and land new macOS and iOS expectations.

        * compositing/overflow/overflow-auto-with-touch-expected.txt:
        * compositing/overflow/overflow-overlay-with-touch-expected.txt:
        * compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * compositing/overflow/scrolling-without-painting-expected.txt:
        * compositing/overflow/textarea-scroll-touch-expected.txt:
        * compositing/overflow/updating-scrolling-content-expected.txt:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/compositing/overflow/nested-scrolling-expected.txt:
        * platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-auto-with-touch-expected.txt.
        * platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-auto-with-touch-expected.txt.
        * platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-overlay-with-touch-expected.txt.
        * platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt: Copied from LayoutTests/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
        * platform/ios/compositing/overflow/scrolling-without-painting-expected.txt: Copied from LayoutTests/compositing/overflow/scrolling-without-painting-expected.txt.
        * platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt: Copied from LayoutTests/compositing/overflow/textarea-scroll-touch-expected.txt.
        * platform/ios/compositing/overflow/updating-scrolling-content-expected.txt: Copied from LayoutTests/compositing/overflow/updating-scrolling-content-expected.txt.
        * platform/mac/TestExpectations:
        * platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt:

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

        Continued test gardening of media-fragment/ tests for ios 12
        https://bugs.webkit.org/show_bug.cgi?id=187557

        Unreviewed test gardening

        * platform/ios/TestExpectations:

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

        Remove the old "AcceleratedCompositingForOverflowScroll" code
        https://bugs.webkit.org/show_bug.cgi?id=189870

        Reviewed by Zalan Bujtas.

        The "AcceleratedCompositingForOverflowScroll" code was added to allow overflow:scroll to use
        composited scrolling if an overflow:scroll could be made a stacking context without affecting
        z-order. We need overflow:scroll to be accelerated always, so a different approach is needed.
        Remove this old code (unused by any platform?) to make working on new code easier.
        
        Keep some of the tests; they will be useful later.

        * compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Removed.
        * compositing/overflow/automatically-opt-into-composited-scrolling.html: Removed.
        * compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
        * compositing/overflow/composited-scrolling-creates-a-stacking-container.html: Removed.
        * compositing/overflow/composited-scrolling-paint-phases.html:
        * compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html:
        * compositing/overflow/dynamic-composited-scrolling-status.html:
        * compositing/overflow/iframe-inside-overflow-clipping.html:
        * compositing/overflow/nested-scrolling.html:
        * compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html:
        * compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html:
        * compositing/overflow/scrolling-content-clip-to-viewport.html:
        * compositing/overflow/scrolling-without-painting.html:
        * compositing/overflow/textarea-scroll-touch.html:
        * compositing/overflow/updating-scrolling-content.html:
        * compositing/rtl/rtl-overflow-scrolling.html:
        * platform/gtk/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Removed.
        * platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.
        * platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.

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

        Do not do early processing of incoming sync IPC unless we're waiting for a sync IPC reply
        https://bugs.webkit.org/show_bug.cgi?id=186941

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * http/tests/misc/blob-size-expected.txt: Added.
        * http/tests/misc/blob-size.html: Added.

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

        Unreviewed, skip imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window.html

        This newly imported test flakily times out.

        * TestExpectations:

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

        Unreviewed WPE gardening. Managing failing WebGL tests in the 2.0.0
        version of the Khronos conformance suite.

        * platform/wpe/TestExpectations: Skip the GLSL test cases of which one
        is DoS-ing AMD GPUs on Linux. This needs more research to isolate the
        culprit and properly fix the underlying problem.
        * platform/wpe/webgl/2.0.0/: 44 test baselines added.

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

        [iOS] Key code is 0 for many hardware keyboard keys
        https://bugs.webkit.org/show_bug.cgi?id=189604

        Reviewed by Wenson Hsieh.

        Update existing test and test result and add a new test to ensure we dispatch DOM keydown
        and DOM keyup events dispatched for special keys.

        * fast/events/ios/keydown-keyup-in-non-editable-content-expected.txt: Update expected result.
        * fast/events/ios/keydown-keyup-in-non-editable-content.html: Remove logic to test arrow keys
        as these are tested in test keydown-keyup-special-keys-in-non-editable-element.html. Also
        update manual instructions to use <kbd> to format keyboard keys.
        * fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:

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

        feMorphology filter in CSS doesn't update when element moves
        https://bugs.webkit.org/show_bug.cgi?id=189895

        Reviewed by Dean Jackson.
        
        Test that moves a box inside a filtered div. Masking is necessary to work
        around bugs in feMorphology invalidation (webkit.org/b/189896).

        * css3/filters/invalidate-sourceAlpha-expected.html: Added.
        * css3/filters/invalidate-sourceAlpha.html: Added.

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

        CSS reference filter with feDisplacementMap shows buffer corruption on Retina displays
        https://bugs.webkit.org/show_bug.cgi?id=188486
        <rdar://problem/43189750>

        Reviewed by Dean Jackson.

        * css3/filters/hidpi-feDisplacementMap-expected.html: Added.
        * css3/filters/hidpi-feDisplacementMap.html: Added.

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

        Garbled rendering of image when applied feConvolveMatrix to it, on Retina display
        https://bugs.webkit.org/show_bug.cgi?id=189748
        <rdar://problem/44621494>

        Reviewed by Jon Lee.

        * css3/filters/hidpi-feConvolveMatrix-expected.html: Added.
        * css3/filters/hidpi-feConvolveMatrix.html: Added.

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

        Ensure PointerEvent is not visible when disabled
        https://bugs.webkit.org/show_bug.cgi?id=189889
        <rdar://problem/44708253>

        Reviewed by Eric Carlson.

        A test that explicitly disables PointerEvents and checks
        that the interface is not visible.

        * pointerevents/disabled-expected.html: Added.
        * pointerevents/disabled.html: Added.

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

        [ iOS ] Layout Tests in media/media-fragments/ are flaky - Remved Debug only as tests are flakey on Release. 
        https://bugs.webkit.org/show_bug.cgi?id=187557

        Unreviewed Test Gardening

        * platform/ios/TestExpectations:

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

        [ iOS ] Layout Tests in media/media-fragments/ are flaky
        https://bugs.webkit.org/show_bug.cgi?id=187557

        Unreviewed Test Gardening

        * platform/ios/TestExpectations:

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

        Try to make payment-response-reference-cycle-leak.https.html not be flaky.

        Unreviewed.

        * http/tests/paymentrequest/payment-response-reference-cycle-leak.https.html:
        Doubled the number of repetitions (from 40 to 80).

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

        [WebVTT] Change name of WebVTT region attribute 'height' to 'lines'.
        https://bugs.webkit.org/show_bug.cgi?id=189862

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/captions-regions.vtt:
        * media/track/captions-webvtt/header-regions.vtt:
        * media/track/regions-webvtt/vtt-region-constructor-expected.txt:
        * media/track/regions-webvtt/vtt-region-constructor.html:
        * media/track/regions-webvtt/vtt-region-display-expected.txt:
        * media/track/regions-webvtt/vtt-region-display.html:
        * media/track/regions-webvtt/vtt-region-list-expected.txt:
        * media/track/regions-webvtt/vtt-region-list.html:
        * media/track/regions-webvtt/vtt-region-parser-expected.txt:
        * media/track/regions-webvtt/vtt-region-parser.html:

2018-09-24  Yoav Weiss  <yoav@yoav.ws>

        Import WPT resource-timing tests
        https://bugs.webkit.org/show_bug.cgi?id=189903

        Reviewed by Youenn Fablet.

        * TestExpectations:: Added a few failing tests.
        * platform/mac/TestExpectations:: Added a timeout test.

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

        Unreviewed - Skip pointer events tests on legacy WebKit.

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

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

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

        Reviewed by Eric Carlson.

        Media controls prevent in some cases to collect the document.
        Remove the controls to remove a source of flakiness for this test.

        * http/tests/media/clearkey/resources/mywebkitmediasessionframe.htm:
        * platform/mac/TestExpectations:

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

        Cannot start a drag inside a shadow tree when an inclusive-ancestor of its shadow host is a draggable element
        https://bugs.webkit.org/show_bug.cgi?id=136836

        Reviewed by Wenson Hsieh.

        Added regression tests for dragging a element with a shadow tree, which is fixed in this bug
        as well as dragging an element inside a shadow tree, which was already functional but had no tests.

        * TestExpectations:
        * fast/shadow-dom/dragging-element-inside-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/dragging-element-inside-shadow-tree.html: Added.
        * fast/shadow-dom/dragging-element-with-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/dragging-element-with-shadow-tree.html: Added.
        * platform/ios/TestExpectations: Don't mark the entirety of fast/shadow-dom as PASS.
        * platform/mac-wk1/TestExpectations:

2018-09-21  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION(r236336): computed CSSProperty doesn't have a value for _text
        https://bugs.webkit.org/show_bug.cgi?id=189864

        Reviewed by Joseph Pecoraro.

        * inspector/css/pseudo-element-matches-for-pseudo-element-node.html:

        `CSS.types.CSSComputedStyleProperty` doesn't include a `text` value, which was used to print
         each property's text. Modify the test to generate it's own text via `name` and `value`.

2018-09-21  Justin Michaud  <justin_michaud@apple.com>

        Implement initialValue support for CSS Custom Properties and Values API
        https://bugs.webkit.org/show_bug.cgi?id=189819

        Reviewed by Simon Fraser.

        * css-custom-properties-api/initialValue-expected.html: Added.
        * css-custom-properties-api/initialValue.html: Added.
        * css-custom-properties-api/initialValueJS-expected.txt: Added.
        * css-custom-properties-api/initialValueJS.html: Added.
        * css-custom-properties-api/registerProperty-expected.txt:
        * css-custom-properties-api/registerProperty.html:
        * platform/win/TestExpectations:

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

        [macOS EWS] Layout test accessibility/smart-invert-reference.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189818

        Unreviewed test gardening.

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

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

        Custom elements in a reaction queue can lose its JS wrapper and become HTMLUnknownElement
        https://bugs.webkit.org/show_bug.cgi?id=184307

        Reviewed by Keith Miller.

        Added a test for enqueuing a lot of custom elements into the reaction queue via innerHTML setter.
        WebKit should retain the JS wrappers of all custom elements.

        * fast/custom-elements/custom-elements-reaction-queue-retains-js-wrapper-expected.txt: Added.
        * fast/custom-elements/custom-elements-reaction-queue-retains-js-wrapper.html: Added.

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

        Unreviewed, speed up storage/websql/transaction-database-expand-quota.html

        This test was so slow that is sometimes timed out on the debug bots.

        * storage/websql/transaction-database-expand-quota-expected.txt:
        * storage/websql/transaction-database-expand-quota.html:

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

        Unreviewed test gardening, consolidate expectation file for EventTarget-dispatchEvent.html.

        * platform/ios-11/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt: Removed.
        * platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:

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

        REGRESSION (r235948?): Layout Test media/media-controls-accessibility.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189674

        Unreviewed test gardening.

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

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

        [Win10] Update test expectations for failing tests.
        https://bugs.webkit.org/show_bug.cgi?id=189858

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        WebSQL: User cannot grant quota increase if the JS provides an expected usage value that is too low
        https://bugs.webkit.org/show_bug.cgi?id=189801
        <rdar://problem/43592498>

        Reviewed by Youenn Fablet.

        Add layout test coverage.

        * storage/websql/transaction-database-expand-quota-expected.txt: Added.
        * storage/websql/transaction-database-expand-quota.html: Added.

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

        Add RTCCodecStats support
        https://bugs.webkit.org/show_bug.cgi?id=189792
        <rdar://problem/32370668>

        Reviewed by Eric Carlson.

        * webrtc/video-stats.html:

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

        [iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=189802

        Unreviewed test gardening

        It is more difficult to squish the alpha channel than the other channels using an SVG filters.
        Thus the cropping bars need to be slightly wider to cover the imperfections in the filter.
        Made the bars even more slightly wider, since apparenlty they weren't quite wide enough for iOS.

        * fast/gradients/conic-gradient-alpha-expected.html:
        * fast/gradients/conic-gradient-alpha.html:
        * platform/ios-12/TestExpectations:

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

        Make "overflow: overlay" a synonym for "overflow: auto"
        https://bugs.webkit.org/show_bug.cgi?id=189811

        Reviewed by Zalan Bujtas.
        
        Add a modern CSS parsing/computed style test for overflow, superseding
        fast/css/overflow-property.html.

        * fast/css/getComputedStyle/getComputedStyle-overflow-expected.txt: Added.
        * fast/css/getComputedStyle/getComputedStyle-overflow.html: Added.
        * fast/css/overflow-property-expected.txt: Removed.
        * fast/css/overflow-property.html: Removed.

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

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

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Mark http/tests/media/clearkey/collect-webkit-media-session.html as flaky.

2018-09-21  Devin Rousso  <drousso@apple.com>

        Web Inspector: remove Legacy Style Editor
        https://bugs.webkit.org/show_bug.cgi?id=189808

        Reviewed by Joseph Pecoraro.

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

        * inspector/css/css-property-expected.txt:
        * inspector/css/css-property.html:
        * inspector/css/modify-css-property.html:
        * inspector/css/shadow-scoped-style.html:
        Update tests for functionality that has been deleted.

        * inspector/unit-tests/test-harness-expect-functions-expected.txt:
        * inspector/unit-tests/test-harness-expect-functions.html:
        The changes to `WI.CSSRule` now make it small enough that `InspectorTest` will print it as
        JSON instead of an object instance. Change the test to use different objects so this doesn't
        happen.

        * inspector/unit-tests/text-utilities-expected.txt: Removed.
        * inspector/unit-tests/text-utilities.html: Removed.
        * inspector/css/generate-css-rule-string-expected.txt: Removed.
        * inspector/css/generate-css-rule-string.html: Removed.
        Remove tests for functionality that has been deleted.

        * inspector/codemirror/prettyprinting-css-rules.html: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-colon-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-colon.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-comma-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-comma.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-rules-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-rules.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-values-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-values.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-append-semicolon-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-append-semicolon.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/invalid-property-is-not-removed.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/keep-prefixed-value-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/keep-prefixed-value.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-newline-between-values-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-newline-between-values.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-colon.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-comment.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-semicolon.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-comment.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-comment-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-comment.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-invalid-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-property.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Removed.
        * inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Removed.
        Remove all tests for the "css-rule" CodeMirror mode since it's been removed.

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

        REGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189607
        <rdar://problem/44652315>

        Reviewed by Dean Jackson.

        * animations/suspend-resume-animation-events.html: Ensure the test always opts into Web Animations backing CSS Animations and Transitions.
        * platform/mac-wk2/TestExpectations: Mark the test as no longer flaky.

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

        Layout Test webanimations/accelerated-animation-suspension.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=189836

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Layout Test css-custom-properties-api/registerProperty.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=189834

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        [Web Animations] Accelerated animations don't get suspended
        https://bugs.webkit.org/show_bug.cgi?id=189783
        <rdar://problem/44652315>

        Unreviewed, correct a merge error in the previous commit.

        * animations/suspend-resume-animation-events.html:

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

        [Web Animations] Accelerated animations don't get suspended
        https://bugs.webkit.org/show_bug.cgi?id=189783
        <rdar://problem/43033568>

        Reviewed by Dean Jackson.

        Add a new test that checks whether an accelerated animation is correctly paused after suspending animations.

        * webanimations/accelerated-animation-suspension-expected.txt: Added.
        * webanimations/accelerated-animation-suspension.html: Added.
        * platform/win/TestExpectations:

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

        [Web Animations] DocumentTimeline::updateAnimations() is called endlessly
        https://bugs.webkit.org/show_bug.cgi?id=189784
        <rdar://problem/41705679>

        Reviewed by Dean Jackson.

        Add a new test that checks that setting "display: none" on an element with an accelerated CSS animation on it
        will no longer update the animation timeline.

        * webanimations/accelerated-animation-interruption-display-none-expected.txt: Added.
        * webanimations/accelerated-animation-interruption-display-none.html: Added.
        * platform/win/TestExpectations:

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

        Restrict the total combined size of backdrop filters
        https://bugs.webkit.org/show_bug.cgi?id=189812
        <rdar://problem/44532782>

        Reviewed by Simon Fraser.

        Tests that have an acceptable number of backdrops, an excessive
        number of backdrops, and then some that add and remove backdrops
        at various points in the tree to confirm we do recursive checks
        correctly.

        * css3/filters/backdrop/layer-tree-as-text.js: Added.
        * css3/filters/backdrop/resource-use-add-more-layers-expected.txt: Added.
        * css3/filters/backdrop/resource-use-add-more-layers.html: Added.
        * css3/filters/backdrop/resource-use-excessive-expected.txt: Added.
        * css3/filters/backdrop/resource-use-excessive.html: Added.
        * css3/filters/backdrop/resource-use-ok-expected.txt: Added.
        * css3/filters/backdrop/resource-use-ok.html: Added.
        * css3/filters/backdrop/resource-use-remove-some-layers-expected.txt: Added.
        * css3/filters/backdrop/resource-use-remove-some-layers.html: Added.
        * css3/filters/backdrop/resource-use.css: Added.

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

        Continued test gardening after r236236
        https://bugs.webkit.org/show_bug.cgi?id=189641

        Unreviewed test gardening 

        * TestExpectations:

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

        Release assert under RenderView::pageOrViewLogicalHeight
        https://bugs.webkit.org/show_bug.cgi?id=189798
        <rdar://problem/43659749>

        Reviewed by Simon Fraser.

        * printing/crash-while-formatting-subframe-for-printing-expected.txt: Added.
        * printing/crash-while-formatting-subframe-for-printing.html: Added.

2018-09-20  Sihui Liu  <sihui_liu@apple.com>

        REGRESSION(r196265): WKWebView fires mouseover, mouseenter, and mouseleave events even when it's in a background window
        https://bugs.webkit.org/show_bug.cgi?id=187545
        <rdar://problem/42401575>

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        * fast/events/inactive-window-no-mouse-event-expected.txt: Added.
        * fast/events/inactive-window-no-mouse-event.html: Added.
        * platform/mac-wk2/TestExpectations:

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

        [Win] TestRunner::queueLoad() fails to generate correct url for some urls.
        https://bugs.webkit.org/show_bug.cgi?id=189679

        Reviewed by Fujii Hironori.

        * platform/wincairo/TestExpectations:

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

        [iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=189802

        Unreviewed test gardening.

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

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

        REGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189607

        Unreivewed test gardening.

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

2018-09-20  Dawei Fenton  <realdawei@apple.com>

        WebGL 2 updated test expectations.
        https://bugs.webkit.org/show_bug.cgi?id=189686

        Unreviewed, skip tests that are timing out.

        * platform/ios-wk2/TestExpectations:

2018-09-20  Oriol Brufau  <obrufau@igalia.com>

        Fix 'border' serialization with both common and uncommon values
        https://bugs.webkit.org/show_bug.cgi?id=189597

        Reviewed by Simon Fraser.

        Fix existing tests to check that 'border' serializes to empty string if there
        are uncommon values.

        * fast/css/getPropertyValue-border-expected.txt:
        * fast/css/getPropertyValue-border.html:
        * fast/dom/css-shorthand-common-value-expected.txt:
        * fast/dom/css-shorthand-common-value.html:

2018-09-20  Dawei Fenton  <realdawei@apple.com>

        WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
        https://bugs.webkit.org/show_bug.cgi?id=189641

        Unreviewed test gardening.

        * TestExpectations: Mark tests as Failure Slow.
        * platform/mac/TestExpectations:

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

        Synchronize CSSOM View test suite against upstream WPT
        https://bugs.webkit.org/show_bug.cgi?id=189787

        Reviewed by Antonio Gomes.

        * tests-options.json: Mark smooth scrolling tests as slow.
        * ios/TestExpectations: Mark as failing since frames are not scrollable on iOS.

2018-09-20  Justin Michaud  <justin_michaud@apple.com>

        Implement CSS Custom Properties and Values Skeleton
        https://bugs.webkit.org/show_bug.cgi?id=189694

        Reviewed by Simon Fraser.

        Add test to check that the CSS.registerProperty method exists.

        * css-custom-properties-api/registerProperty-expected.txt: Added.
        * css-custom-properties-api/registerProperty.html: Added.
        * platform/ios-wk1/TestExpectations:
        * platform/mac-wk1/TestExpectations:

2018-09-20  Dawei Fenton  <realdawei@apple.com>

        WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
        https://bugs.webkit.org/show_bug.cgi?id=189641

        Unreviewed, marked tests as failing.

        * TestExpectations:

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

        [iOS] Support testing more hardware special keys
        https://bugs.webkit.org/show_bug.cgi?id=189793

        Reviewed by Simon Fraser.

        For now, many of the DOM keydown and keyup events for special hardware keys are wrong.
        We will fix this up in a subsequent commit(s).

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

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

        [WebVTT] Update the parser according to the new region syntax.
        https://bugs.webkit.org/show_bug.cgi?id=189767

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/captions-regions.vtt:
        * media/track/captions-webvtt/header-regions.vtt:
        * media/track/regions-webvtt/vtt-region-parser-expected.txt:
        * media/track/regions-webvtt/vtt-region-parser.html:

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

        [macOS Sierra] Layout Test http/wpt/cache-storage/cache-put-keys.https.any.worker.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=184204

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Mark test as flaky and remove an entry for a test that doesn't exist in the repository anymore.

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

        [EME][WPE] Add WebM initData in the expected result of clearkey-generate-request-disallowed-input test
        https://bugs.webkit.org/show_bug.cgi?id=189747

        Reviewed by Xabier Rodriguez-Calvar.

        Since r235610 the WebM initData is supported.

        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:
        Add an expcted result for WebM initData.

2018-09-19  Justin Fan  <justin_fan@apple.com>

        WebGL 2 partial passes and failing test expectations for conformance/conformance2 layout tests
        https://bugs.webkit.org/show_bug.cgi?id=189686

        Reviewed by Dean Jackson.

        * TestExpectations: Still skipping all of deqp, but now enabling all non-crashing/timing out tests.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:
        * webgl/2.0.0/conformance/.../*expected.txt: Failures now report results of individual sub-tests for more granular implementation testing.
        * webgl/2.0.0/conformance2/.../*expected.txt:
        * platform/ios-simulator/webgl/2.0.0/.../*expected.txt: ios-simulator-specific expectations added.

2018-09-19  Dawei Fenton  <realdawei@apple.com>

        storage/indexeddb/modern/transactions-stop-on-navigation.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=186339

        Unreviewed, mark test as flaky.

        * platform/mac-wk2/TestExpectations:

2018-09-19  Dawei Fenton  <realdawei@apple.com>

        Marked imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-onnegotiationneeded.html as flak on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=176078

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-09-19  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Add optional cap on partitioned cache max age
        https://bugs.webkit.org/show_bug.cgi?id=189711
        <rdar://problem/39246837>

        Reviewed by Antti Koivisto and Chris Dumez.

        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-expected.txt: Added.
        * http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html: Added.
        * http/tests/resourceLoadStatistics/resources/cached-permanent-redirect.php: Added.
        * http/tests/resourceLoadStatistics/resources/echo-query.php: Added.
        * platform/ios/TestExpectations:
            New test marked as [ Pass ].
        * platform/mac-wk2/TestExpectations:
            New test marked as [ Pass ].
        * platform/wk2/TestExpectations:
            New test marked as [ Skip ] because it's not supported on non-Cocoa platforms.

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

        Layout Test webrtc/video-mute.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=177501

        Reviewed by Eric Carlson.

        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        * webrtc/routines.js: Increase counter to make test more robust.

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

        [iOS] Layout Test imported/w3c/web-platform-tests/beacon/beacon-basic-blob.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189728

        Unreviewed, send console logging to stderr to adress flakiness.

        * TestExpectations:

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

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

        Unreviewed test gardening.

        * platform/wpe/TestExpectations: Add some expectations to match GTK.
        * platform/wpe/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt: Update after r236002.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-cors-safelisted-request-headers-expected.txt: Removed (defer to generic expectation).
        * platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-get-fail-non-simple-expected.txt: Removed (defer to generic expectation).
        * platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-post-with-non-cors-safelisted-content-type-expected.txt: Removed (defer to generic expectation).
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-expected.txt: Update after r235354.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-sync-expected.txt: Update after r235354.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-expected.txt: Update after r235354.
        * platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-sync-expected.txt: Update after r235354.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt: Update after r236001.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Update after r236001.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt: Update after r236001.
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt: Removed (defer to generic expectation after r236001).
        * platform/wpe/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt: Removed (defer to generic expectation after r236001).

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

        Implement sender/receiver getStats
        https://bugs.webkit.org/show_bug.cgi?id=189707

        Reviewed by Eric Carlson.

        * webrtc/video-stats-expected.txt:
        * webrtc/video-stats.html:

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

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

        Unreviewed test gardening.

        * platform/gtk/TestExpectations: Add some expectations.

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

        [GStreamer] Add support for AV1 decoding
        https://bugs.webkit.org/show_bug.cgi?id=189647

        Reviewed by Žan Doberšek.

        Layout test for AV1 canPlay() compatiblity checking. Right now
        GStreamer-based ports are the only ones expecting to support AV1.

        * media/media-can-play-av1-expected.txt: Added.
        * media/media-can-play-av1.html: Added.
        * platform/ios/media/media-can-play-av1-expected.txt: Added.
        * platform/mac/media/media-can-play-av1-expected.txt: Added.

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

        http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=189710

        Reviewed by Ryosuke Niwa.

        Update the test to stop relying on the test page posting a message to the auxiliary window
        to trigger a navigation. Instead, the auxiliary window now takes care of navigating itself
        after it is loaded. This is more robust, especially considering that the test page is cross
        origin and thus is not getting a load event for the auxiliary window.

        * http/tests/navigation/resources/navigate-back-same-origin-helper.html: Added.
        * http/tests/navigation/resources/navigate-helper.html: Removed.
        * http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html:

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

        [WPE][GTK] Assorted gardening

        Unreviewed test gardening
        * platform/gtk/TestExpectations: Add new mediastream failures.
        * platform/wpe/TestExpectations: Ditto.
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt: rebaseline

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

        [macOS WK1] Mark intersection-observer/no-document-leak.html as a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=189731

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        [iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=189727

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        [iOS] Layout test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html and fetch-mixed-content-to-outscope.https.html are flaky failures
        https://bugs.webkit.org/show_bug.cgi?id=189726

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        Support Images Module Level 4's double-position gradient color stop syntax
        https://bugs.webkit.org/show_bug.cgi?id=186154
        <rdar://problem/44158152>

        Reviewed by Simon Fraser.

        Test that uses two angles or positions per color stop.

        * TestExpectations:
        * fast/gradients/conic-two-hints-expected.html: Added.
        * fast/gradients/conic-two-hints.html: Added.
        * fast/gradients/linear-two-hints-angle-expected.html: Added.
        * fast/gradients/linear-two-hints-angle.html: Added.
        * fast/gradients/linear-two-hints-expected.html: Added.
        * fast/gradients/linear-two-hints.html: Added.
        * fast/gradients/radial-two-hints-expected.html: Added.
        * fast/gradients/radial-two-hints.html: Added.
        * platform/ios-12/TestExpectations:
        * platform/mac/TestExpectations:

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

        Enable Unified Plan by default
        https://bugs.webkit.org/show_bug.cgi?id=189675

        Reviewed by Eric Carlson.

        * webrtc/video-addLegacyTransceiver-expected.txt:
        * webrtc/video-addLegacyTransceiver.html:

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

        [WebVTT] change "middle" to "center" for consistency with CSS
        https://bugs.webkit.org/show_bug.cgi?id=158478

        Reviewed by Eric Carlson.

        * media/track/track-add-remove-cue-expected.txt:
        * media/track/track-add-remove-cue.html:
        * media/track/track-cue-mutable-expected.txt:
        * media/track/track-cue-mutable.html:
        * media/track/track-cue-rendering-snap-to-lines-not-set-expected.txt:
        * media/track/track-vttcue-expected.txt:
        * media/track/track-vttcue.html:
        * media/track/track-webvtt-tc013-settings-expected.txt:
        * media/track/track-webvtt-tc013-settings.html:
        * media/track/track-webvtt-tc014-alignment-expected.txt:
        * media/track/track-webvtt-tc014-alignment.html:
        * media/track/track-webvtt-tc016-align-positioning-expected.txt:
        * media/track/track-webvtt-tc016-align-positioning.html:
        * media/track/track-webvtt-tc018-align-text-line-position-expected.txt:
        * media/track/track-webvtt-tc018-align-text-line-position.html:
        * media/track/track-webvtt-tc020-cue-size-align-expected.txt:
        * media/track/track-webvtt-tc020-cue-size-align.html:
        * media/track/track-webvtt-tc021-valign-expected.txt:
        * media/track/track-webvtt-tc021-valign.html:

2018-09-18  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Gardening after r236124

        Quick gardening. There might be more tests that are now passing or
        need updated results but this was the most obvious for now.
        Unreviewed gardening.
        * platform/wpe/TestExpectations:
        * platform/wpe/svg/custom/pan-direction-expected.txt:

2018-09-18  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [EME][GStreamer] The current EME implementation doesn't support the waitingforkey event
        https://bugs.webkit.org/show_bug.cgi?id=185590

        Reviewed by Philippe Normand.

        Updated status of
        imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https
        and expectations.

        * platform/wpe/TestExpectations:
        * platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https-expected.txt:

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

        Layout Test legacy-animation-engine/animations/play-state-in-shorthand.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=185651

        Unreviewed test gardening.

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

2018-09-17  Justin Fan  <justin_fan@apple.com>

        Updated expected test [ PASS ] messages for new test-harness format for webgl tests
        https://bugs.webkit.org/show_bug.cgi?id=189677

        Reviewed by Dean Jackson.

        Update generate-webgl-tests.py's test expectation template
        for my new version of webgl-test-harness.js for the webgl 2 suite,
        and update all webgl/2.0.0 test expectations to match.

        * webgl/resources/webgl-expectation-template.txt: 
        * webgl/2.0.0/.../*expected.txt: Modified all *expected.txts to match.

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

        Add support for HEVC codec types in Media Capabilities
        https://bugs.webkit.org/show_bug.cgi?id=189565

        Reviewed by Eric Carlson.

        * media/hevc-codec-parameters-expected.txt: Added.
        * media/hevc-codec-parameters.html: Added.

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

        Web Inspector: generate CSSKeywordCompletions from backend values
        https://bugs.webkit.org/show_bug.cgi?id=189041

        Reviewed by Joseph Pecoraro.

        * inspector/css/getSupportedCSSProperties-expected.txt:
        * inspector/css/getSupportedCSSProperties.html:

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

        track.onmute isn't called for a remote MediaStreamTrack when its counter part track is removed from the peer connection
        https://bugs.webkit.org/show_bug.cgi?id=176281
        <rdar://problem/44525674>

        Reviewed by Eric Carlson.

        * webrtc/remove-track-expected.txt: Added.
        * webrtc/remove-track.html: Added.

2018-09-17  Dawei Fenton  <realdawei@apple.com>

        Fixed typo in TestExpectations file.
        https://bugs.webkit.org/show_bug.cgi?id=188020.

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

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

        [Curl] Respond with requested authentication scheme for authentication challenge.
        https://bugs.webkit.org/show_bug.cgi?id=189318

        Reviewed by Alex Christensen.

        * platform/wincairo/TestExpectations:

2018-09-17  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.

        Use a mask over the animated rectangle to allow for a 1px rounding error when seeking to fix flakiness.

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

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

        Enable VCP for iOS and reenable it for MacOS
        https://bugs.webkit.org/show_bug.cgi?id=189635
        <rdar://problem/43621029>

        Reviewed by Eric Carlson.

        * platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:
        For platforms suppporting VCP, arbitrary size should be supported.
        * webrtc/routines.js:

2018-09-17  Alexey Proskuryakov  <ap@apple.com>

        Revert https://trac.webkit.org/r235910, because the new test times out.
        Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts
        https://bugs.webkit.org/show_bug.cgi?id=188008

        * fast/text/variations/ipc2-expected.txt: Removed.
        * fast/text/variations/ipc2.html: Removed.
        * platform/mac-wk1/TestExpectations:

2018-09-17  Dawei Fenton  <realdawei@apple.com>

        Layout Test imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html is a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=188020.

        Unreviewed test gardening.

        * platform/ios/TestExpectations:

2018-09-17  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Add new failure

        Unreviewed gardening.
        * platform/wpe/TestExpectations:

2018-09-17  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK][WPE] Update baseline for fast/dom/navigator-detached-no-crash

        In GTK it's just a matter of updating the baseline. In WPE
        there's some JS output that just needs to be ignored.
        * platform/gtk/TestExpectations:
        * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/wpe/TestExpectations:

2018-09-17  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Mark crashing animations test.

        animations/play-state-start-paused.html crashing.
        Unreviewed gardening.
        * platform/wpe/TestExpectations:

2018-09-17  Claudio Saavedra  <csaavedra@igalia.com>

        [WPE] Unmark now passing tests

        Unreviewed gardening.
        * platform/wpe/TestExpectations:

2018-09-17  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Unmark now passing tests.

        Unreviewed gardening.
        * platform/gtk/TestExpectations:
s
2018-09-17  Sihui Liu  <sihui_liu@apple.com>

        Move IndexedDB to Network Process
        https://bugs.webkit.org/show_bug.cgi?id=189415
        <rdar://problem/44396973>

        Reviewed by Chris Dumez.

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

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

        Unreviewed test gardening, mark fast/text/variations/ipc2.html as slow.

        * platform/mac-wk2/TestExpectations:

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

        XMLHttpRequest::createResponseBlob() should create a Blob with type for empty response
        https://bugs.webkit.org/show_bug.cgi?id=189627

        Reviewed by Alexey Proskuryakov.

        * fast/files/xhr-response-blob-expected.txt:
        * fast/files/xhr-response-blob.html:

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

        Additional tests for conic gradients
        https://bugs.webkit.org/show_bug.cgi?id=189566

        Reviewed by Simon Fraser.

        Adding tests that actually test the gradient nature of gradients.
        This is done by using an svg filter to consolidate the sections
        of the gradient to sections we can actuall test the color of. Also,
        the seams are clipped out, to reduce noise. Since gradients are 
        highly noise prone, this is the best way to check and make sure
        that gradients are functional without sevear noise issues.

        * TestExpectations:
        * fast/gradients/conic-gradient-alpha-expected.html: Added.
        * fast/gradients/conic-gradient-alpha.html: Added.
        * fast/gradients/conic-gradient-expected.html: Added.
        * fast/gradients/conic-gradient-extended-stops-expected.html: Added.
        * fast/gradients/conic-gradient-extended-stops.html: Added.
        * fast/gradients/conic-gradient.html: Added.
        * platform/ios-12/TestExpectations:
        * platform/mac/TestExpectations:

2018-09-14  Justin Fan  <justin_fan@apple.com>

        WebGL 2 conformance: rgb-format-support.html
        https://bugs.webkit.org/show_bug.cgi?id=189610
        <rdar://problem/44403343>

        Reviewed by Dean Jackson.

        Enabled rgb-format-support.html, and updated expectation for gl-teximage.html.

        * TestExpectations:
        * platform/mac/TestExpectations:
        * webgl/2.0.0/conformance2/rendering/rgb-format-support-expected.txt:

2018-09-14  Justin Michaud  <justin_michaud@apple.com>

        Add support for spreadMethod=reflect and repeat on SVG gradients (for CoreGraphics platforms)
        https://bugs.webkit.org/show_bug.cgi?id=5968

        Add new svg tests for linear gradients with spreadMethod, and alpha values specified in
        both stop-opacity and color.

        Reviewed by Simon Fraser.

        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-10-b-expected.png:
        * svg/gradients/spreadMethod-expected.svg: Added.
        * svg/gradients/spreadMethod.svg: Added.
        * svg/gradients/spreadMethodAlpha-expected.svg: Added.
        * svg/gradients/spreadMethodAlpha.svg: Added.
        * svg/gradients/spreadMethodClose0-expected-mismatch.svg: Added.
        * svg/gradients/spreadMethodClose0.svg: Added.
        * svg/gradients/spreadMethodClose1-expected-mismatch.svg: Added.
        * svg/gradients/spreadMethodClose1.svg: Added.
        * svg/gradients/spreadMethodClose2-expected.svg: Added.
        * svg/gradients/spreadMethodClose2.svg: Added.
        * svg/gradients/spreadMethodDiagonal-expected.svg: Added.
        * svg/gradients/spreadMethodDiagonal.svg: Added.
        * svg/gradients/spreadMethodDiagonal2-expected.svg: Added.
        * svg/gradients/spreadMethodDiagonal2.svg: Added.
        * svg/gradients/spreadMethodDuplicateStop-expected.svg: Added.
        * svg/gradients/spreadMethodDuplicateStop.svg: Added.
        * svg/gradients/spreadMethodReversed-expected.svg: Added.
        * svg/gradients/spreadMethodReversed.svg: Added.
        * svg/gradients/stopAlpha-expected.svg: Added.
        * svg/gradients/stopAlpha.svg: Added.

2018-09-14  Ross Kirsling  <ross.kirsling@sony.com>

        [WinCairo] Unreviewed test gardening.

        * TestExpectations: Remove duplicative line introduced in r235959.
        * platform/wincairo/TestExpectations:

2018-09-14  Woodrow Wang  <woodrow_wang@apple.com>

        Add stability to tests for web API statistics
        https://bugs.webkit.org/show_bug.cgi?id=189560
        <rdar://problem/44396413>

        Reviewed by Chris Dumez.

        Using js-test added some data to the font loading collection, which made the tests dependent on
        js-test.js. Thus, if any changes were made to js-test.js the tests for web API statistics would
        fail. This patch removes the dependency on js-test. Also, this patch speeds up each test 
        significantly by bypassing the timer in ResourceLoadObserver for recording the statistics.  

        * http/tests/webAPIStatistics/canvas-read-and-write-data-collection-expected.txt:
        * http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html:
        * http/tests/webAPIStatistics/font-load-data-collection-expected.txt:
        * http/tests/webAPIStatistics/font-load-data-collection.html:
        * http/tests/webAPIStatistics/navigator-functions-accessed-data-collection-expected.txt:
        * http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html:
        * http/tests/webAPIStatistics/screen-functions-accessed-data-collection-expected.txt:
        * http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html:

2018-09-14  Eric Carlson  <eric.carlson@apple.com>

        Support arbitrary video resolution in getUserMedia API
        https://bugs.webkit.org/show_bug.cgi?id=178109
        <rdar://problem/35083128>

        Reviewed by Youenn Fablet.

        * fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
        * fast/mediastream/apply-constraints-advanced-expected.txt:
        * fast/mediastream/apply-constraints-advanced.html:
        * fast/mediastream/apply-constraints-video.html:

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

        Web Inspector: Record actions performed on ImageBitmapRenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=181341

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/recording-2d-expected.txt:
        * inspector/canvas/recording-bitmaprenderer-expected.txt: Added.
        * inspector/canvas/recording-bitmaprenderer.html: Added.
        * inspector/canvas/recording-webgl-expected.txt:
        * inspector/canvas/recording-webgl-snapshots-expected.txt:
        * inspector/canvas/resources/recording-utilities.js:
        Simplify the test output to avoid unrelated failures, such as if line numbers change.
        Also remove non-human-readable text, as it makes it more difficult for those unfamiliar with
        the test to determine if any differences are acceptable.

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

        Remove some obsolete XHR tests
        https://bugs.webkit.org/show_bug.cgi?id=189581

        Reviewed by Youenn Fablet.

        * TestExpectations: Drop reference to removed test.

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

        Capturing event listeners are called during bubbling phase for shadow hosts
        https://bugs.webkit.org/show_bug.cgi?id=174288

        Reviewed by Darin Adler.

        Added a W3C style testharness.js test and rebaselined two tests. See below for rationals of rebaselines.

        * fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees-expected.txt: Added.
        * fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html: Added.

        * media/media-load-event-expected.txt: Rebaselined. The logging of oncanplaythrough event is now happening
        before canplaythrough() is called because the logging is done by waitForEvent which uses a capturing event
        listener whereas canplaythrough is called by a event handler, which is non-capturing.

        * platform/ios-11/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
        * platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:

2018-09-13  Justin Fan  <justin_fan@apple.com>

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

        Unreviewed small change for only the few webgl 2 tests' harness; completely passing 
        tests now only report the PASS line, to avoid discrepancies between e.g. feature ability 
        of different graphics cards causing diffs to fail.

        * 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/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-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/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/uniform-block-layout-match-expected.txt:
        * webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-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/renderbuffers/framebuffer-test-expected.txt:
        * webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:
        * webgl/2.0.0/resources/webkit-webgl-test-harness.js:
        (window.webglTestHarness.notifyFinished):

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

        Layout Test imported/w3c/web-platform-tests/streams/piping/error-propagation-backward.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=188070

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Mark test as flaky.
        * platform/mac-wk1/TestExpectations: Ditto.

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

        Fix color stop blending in conic gradients for stops past 1
        https://bugs.webkit.org/show_bug.cgi?id=189532
        <rdar://problem/44158221>

        Reviewed by Simon Fraser.

        Tests that last stop in the gradient is correct.

        * fast/gradients/conic-repeating-last-stop-expected.html: Added.
        * fast/gradients/conic-repeating-last-stop.html: Added.
        * platform/ios-12/TestExpectations:
        * platform/mac/TestExpectations:

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

        Unreviewed, rolling out r235954.

        Breaks the watchOS build.

        Reverted changeset:

        "Move IndexedDB to Network Process"
        https://bugs.webkit.org/show_bug.cgi?id=189415
        https://trac.webkit.org/changeset/235954

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

        Regression(PSON): setting window.opener to null allows process swapping in cases that are not web-compatible
        https://bugs.webkit.org/show_bug.cgi?id=189590
        <rdar://problem/44422725>

        Reviewed by Geoffrey Garen.

        Add layout test coverage.

        * http/tests/navigation/resources/navigate-helper.html: Added.
        * http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin-expected.txt: Added.
        * http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html: Added.

2018-09-13  Dean Jackson  <dino@grorg.org>

        https://bugs.webkit.org/show_bug.cgi?id=189594

        Mark this test as failing on WK1.

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

2018-09-13  Dean Jackson  <dino@grorg.org>

        Header parsing for experimental and internal debug features
        https://bugs.webkit.org/show_bug.cgi?id=189486
        <rdar://problem/44320618>

        Add feature headers to more tests.

        * fast/animation/css-animation-resuming-when-visible-with-style-change2.html:
        * legacy-animation-engine/animations/duplicate-keys-expected.html:

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

        Rebaseline imported/w3c/web-platform-tests/web-share/idlharness.https.html after r235925.

        Unreviewed test gardening.

        * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt:

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

        [GTK] Enable media-source/interfaces.html.
        https://bugs.webkit.org/show_bug.cgi?id=183613

        Unreviewed test gardening.

        The platform-neutral expectation applies to the GTK port as well.

        * platform/gtk/TestExpectations: Remove expectation.
        * platform/gtk/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt: Removed.

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

        Introduce RTCRtpSendParameters
        https://bugs.webkit.org/show_bug.cgi?id=189563

        Reviewed by Eric Carlson.

        * webrtc/video-getParameters-expected.txt:
        * webrtc/video-getParameters.html:

2018-09-12  Dean Jackson  <dino@grorg.org>

        Header parsing for experimental and internal debug features
        https://bugs.webkit.org/show_bug.cgi?id=189486
        <rdar://problem/44320618>

        Another test fix.

        * legacy-animation-engine/animations/duplicate-keys.html:

2018-09-12  Dean Jackson  <dino@grorg.org>

        Header parsing for experimental and internal debug features
        https://bugs.webkit.org/show_bug.cgi?id=189486
        <rdar://problem/44320618>

        And even more test fixes!

        * animations/stop-animation-on-suspend.html:
        * compositing/scrolling/touch-scroll-to-clip.html:

2018-09-12  Dean Jackson  <dino@grorg.org>

        Header parsing for experimental and internal debug features
        https://bugs.webkit.org/show_bug.cgi?id=189486
        <rdar://problem/44320618>

        More test fixes.

        * legacy-animation-engine/animations/animation-border-overflow.html:
        * legacy-animation-engine/animations/cross-fade-border-image-source.html:
        * legacy-animation-engine/animations/cross-fade-list-style-image.html:
        * legacy-animation-engine/animations/cross-fade-webkit-mask-box-image.html:
        * legacy-animation-engine/fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
        * legacy-animation-engine/transitions/extra-transition.html:
        * legacy-animation-engine/transitions/svg-transitions.html:
        * legacy-animation-engine/transitions/transition-in-delay-phase.html:
        * legacy-animation-engine/transitions/visited-link-color.html:

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

        Header parsing for experimental and internal debug features
        https://bugs.webkit.org/show_bug.cgi?id=189486
        <rdar://problem/44320618>

        Fix failing tests by explicitly turning off Web Animations for CSS animations.
        Previously the test system was doing this, even though the feature was
        supposed to be enabled.

        * legacy-animation-engine/*.html:

2018-09-12  Alicia Boya García  <aboya@igalia.com>

        Unreviewed GTK test gardening.

        * TestExpectations:
        * platform/gtk/TestExpectations:

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

        imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html hits assertion
        https://bugs.webkit.org/show_bug.cgi?id=189493

        Reviewed by Alex Christensen.

        Unskip the test now that it doesn't hit a debug assertion.

        * TestExpectations:

2018-09-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Complete support for Paste as Quotation
        https://bugs.webkit.org/show_bug.cgi?id=189504

        Reviewed by Wenson Hsieh.

        Took a few existing tests of the Paste as Quotation behavior and modified them to use the
        new PasteAsQuotation command. The only difference in the results is that the blockquote has
        the "type" attribute set to "cite".

        * editing/pasteboard/4930986-1-paste-as-quotation-expected.txt: Added.
        * editing/pasteboard/4930986-1-paste-as-quotation.html: Added.
        * editing/pasteboard/4930986-2-paste-as-quotation-expected.txt: Added.
        * editing/pasteboard/4930986-2-paste-as-quotation.html: Added.
        * editing/pasteboard/4930986-3-paste-as-quotation-expected.txt: Added.
        * editing/pasteboard/4930986-3-paste-as-quotation.html: Added.

2018-09-12  Sihui Liu  <sihui_liu@apple.com>

        Move IndexedDB to Network Process
        https://bugs.webkit.org/show_bug.cgi?id=189415

        Reviewed by Geoffrey Garen.

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

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

        Header parsing for experimental and internal debug features
        https://bugs.webkit.org/show_bug.cgi?id=189486
        <rdar://problem/44320618>

        Reviewed by Tim Horton.

        New webkit-test-runner headers.

        * 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.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-multiple-keyframes.html:
        * animations/animation-internals-api.html:
        * animations/animation-offscreen-to-onscreen.html:
        * animations/animation-playstate-paused-style-resolution.html:
        * 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.html:
        * animations/fill-mode-removed.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/leak-document-with-css-animation.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-leak-iframe.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/trigger-container-scroll-boundaries.html:
        * animations/trigger-container-scroll-empty.html:
        * animations/trigger-container-scroll-simple.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/backing/transform-transition-from-outside-view.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/mismatched-rotated-transform-transition-overlap.html:
        * compositing/layer-creation/mismatched-transform-transition-overlap.html:
        * compositing/layer-creation/multiple-keyframes-animation-overlap.html:
        * compositing/layer-creation/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/scale-rotation-transition-overlap.html:
        * compositing/layer-creation/translate-animation-overlap.html:
        * compositing/layer-creation/translate-scale-animation-overlap.html:
        * compositing/layer-creation/translate-scale-transition-overlap.html:
        * compositing/layer-creation/translate-transition-overlap.html:
        * compositing/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-from-none.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/animation/height-auto-transition-computed-value.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:
        * http/wpt/css/css-animations/start-animation-001.html:
        * imported/blink/transitions/transition-not-interpolable.html:
        * imported/blink/transitions/unprefixed-transform.html:
        * platform/mac/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/extra-transition.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.html:
        * transitions/transition-drt-api.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-end.html:
        * transitions/zero-duration-with-non-zero-delay-start.html:
        * webanimations/accelerated-transition-by-removing-property.html:
        * webanimations/accessing-current-time-after-clearing-css-animation-effect.html:
        * webanimations/accessing-current-time-after-finished-css-animation-target-removal.html:
        * webanimations/css-animation-effect-target-change-and-animation-removal-crash.html:
        * webanimations/css-animations.html:
        * webanimations/empty-keyframes-crash.html:
        * webanimations/partly-accelerated-transition-by-removing-property.html:
        * webanimations/setting-css-animation-none-after-clearing-effect.html:
        * webanimations/setting-css-animation-timing-property-via-style-after-clearing-effect.html:

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

        Web Inspector: fix test case failures in js-isLikelyStackTrace.html
        https://bugs.webkit.org/show_bug.cgi?id=180664

        Reviewed by Devin Rousso.

        * inspector/console/js-isLikelyStackTrace-expected.txt:
        * inspector/console/js-isLikelyStackTrace.html:
        Avoid Inspector Internal InjectedScript code in backtraces by producing
        the exception stacks in the page itself without going through inspector
        test evaluation code. This produces exception stacks more like a page.
        Also add some explicit tests for strings that we'd expect to be classified
        as exception stacks.

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

        Layout Test fast/text/variations/ipc2.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=189550

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2018-09-11  Olivia Barnett  <obarnett@apple.com>

        Implement the Web Share API for mac
        https://bugs.webkit.org/show_bug.cgi?id=189443

        Reviewed by Tim Horton.

        * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-securecontext.http-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-url-invalid.https-expected.txt: Added.
        * platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https-expected.txt: Added.
        Updated test expectations.

2018-09-11  Myles C. Maxfield  <mmaxfield@apple.com>

        Unreviewed test fix after r235910
        https://bugs.webkit.org/show_bug.cgi?id=188008

        * platform/mac-wk1/TestExpectations:

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

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

        Reviewed by Timothy Hatcher.

        * platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
        Reset test expectations to go along with fix.

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

        Add and expose Internal features from WebKit
        https://bugs.webkit.org/show_bug.cgi?id=189442
        <rdar://problem/44243404>

        Reviewed by Simon Fraser.

        Skip some tests that rely on an experimental feature that has
        moved to internal. A follow-up patch will allow WKTR to enable
        them on demand.

        * platform/mac/TestExpectations:

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

        [MediaCapabilities] Implement MediaEngineConfigurationFactory registration
        https://bugs.webkit.org/show_bug.cgi?id=189438

        Reviewed by Eric Carlson.

        * media/mediacapabilities/mediacapabilities-types-expected.txt:

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

        :first-child, :last-child, :nth-child, and :nth-of-type don't work on shadow root's children
        https://bugs.webkit.org/show_bug.cgi?id=166748
        <rdar://problem/29649177>

        Reviewed by Yusuke Suzuki.

        Added ref tests for matching positional pseudo classes on direct child of shadow roots
        during style resolutions and DOM API matching with C++ selector checker and selector compilers.

        Also added a test for invalidating these selectors.

        * fast/shadow-dom/nth-node-on-shadow-child-expected.html: Added.
        * fast/shadow-dom/nth-node-on-shadow-child-invalidation-expected.html: Added.
        * fast/shadow-dom/nth-node-on-shadow-child-invalidation.html: Added.
        * fast/shadow-dom/nth-node-on-shadow-child-no-jit-expected.html: Added.
        * fast/shadow-dom/nth-node-on-shadow-child-no-jit.html: Added.
        * fast/shadow-dom/nth-node-on-shadow-child.html: Added.

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

        Updated the test expectation as this test also causes a crash in release builds.

        * TestExpectations:

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

        [macOS] [WK2] Support changing foreground colors via color panel
        https://bugs.webkit.org/show_bug.cgi?id=189382
        <rdar://problem/44227311>

        Reviewed by Ryosuke Niwa.

        Adjust an existing layout test that applies a text color with alpha. Currently, this results in a font element
        being emitted with the `color` attribute, but this is incorrect, since the `color` attribute of a font element
        does not support "rgba(…)" values.

        Instead, split this into two cases: verify that setting the color to an opaque color (with alpha = 1) emits a
        font element with the correct `color` attribute, and fall back to using an inline style when the color is
        partially transparent.

        * editing/style/inline-style-container-expected.txt:
        * editing/style/inline-style-container.html:

2018-09-11  Justin Fan  <justin_fan@apple.com>

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

        Reviewed by Dean Jackson.

        Small update to the test-harness file used for the new 2.0.0 suite tests, as well as 
        expectation updates for the unskipped tests. 

        * 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/renderbuffers/framebuffer-test-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-09-11  Myles C. Maxfield  <mmaxfield@apple.com>

        Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts
        https://bugs.webkit.org/show_bug.cgi?id=188008

        Reviewed by Alex Christensen.

        * fast/text/variations/ipc2-expected.txt: Added.
        * fast/text/variations/ipc2.html: Added.

2018-09-11  Woodrow Wang  <woodrow_wang@apple.com>

        Add Web API Statistics Collection
        https://bugs.webkit.org/show_bug.cgi?id=187773
        <rdar://problem/44155162>

        Reviewed by Brent Fulgham.

        Added new tests and expectations for the web API statistics data collection.

        * TestExpectations:
        * http/tests/webAPIStatistics/canvas-read-and-write-data-collection-expected.txt: Added.
        * http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html: Added.
        * http/tests/webAPIStatistics/font-load-data-collection-expected.txt: Added.
        * http/tests/webAPIStatistics/font-load-data-collection.html: Added.
        * http/tests/webAPIStatistics/navigator-functions-accessed-data-collection-expected.txt: Added.
        * http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html: Added.
        * http/tests/webAPIStatistics/screen-functions-accessed-data-collection-expected.txt: Added.
        * http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:

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

        Modify more tests to use document.scrollingElement to access viewport scroll properties
        https://bugs.webkit.org/show_bug.cgi?id=189495

        After r235806, it is wrong to use document.body to access scroll properties of the viewport
        in standard mode. New tests added since r227781 are modified to use
        document.scrollingElement instead and avoid flaky behavior. For consistency, we do the same
        for old tests in quirks mode. Note that WPT tests as well as the following tests using
        document.body on purpose are not modified:
        - fast/dom/Element/*
        - events/scroll-in-scaled-page-with-overflow-hidden.html
        - compositing/ios/overflow-scroll-update-overlap.html
        - body-stuck-with-dirty-bit-with-columns.html

        Reviewed by Antonio Gomes.

        * compositing/rtl/rtl-absolute-overflow-scrolled.html:
        * compositing/rtl/rtl-fixed-overflow-scrolled.html:
        * editing/caret/ios/absolute-caret-position-after-scroll.html:
        * editing/caret/ios/fixed-caret-position-after-scroll.html:
        * editing/execCommand/delete-no-scroll.html:
        * editing/input/resources/reveal-utilities.js:
        (performJumpAtTheEdgeTest):
        * editing/pasteboard/copy-crash.html:
        * editing/selection/ios/absolute-selection-after-scroll.html:
        * editing/selection/ios/fixed-selection-after-scroll.html:
        * fast/autoresize/autoresize-with-iframe-expected.txt:
        * fast/autoresize/autoresize-with-iframe.html:
        * fast/autoresize/basic-expected.txt:
        * fast/autoresize/basic.html:
        * fast/autoresize/turn-off-autoresize-expected.txt:
        * fast/autoresize/turn-off-autoresize.html:
        * fast/css/element-scrollByLines-scrollByPages-obsolete.html:
        * fast/dom/non-numeric-values-numeric-parameters-expected.txt:
        * fast/dom/non-numeric-values-numeric-parameters.html:
        * fast/dom/resources/check-scroll-position-onload.html:
        * fast/dom/scroll-position-for-new-loads.html:
        * fast/events/attempt-scroll-with-no-scrollbars.html:
        * fast/events/fire-scroll-event.html:
        * fast/events/frame-scroll-fake-mouse-move.html:
        * fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe-expected.txt:
        * fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe.html:
        * fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html:
        * fast/events/mouse-cursor-image-set.html:
        * fast/events/mouse-cursor-multiframecur.html:
        * fast/events/mouse-cursor.html:
        * fast/events/no-scroll-on-input-text-selection-expected.txt:
        * fast/events/no-scroll-on-input-text-selection.html:
        * fast/events/platform-wheelevent-paging-x-in-non-scrolling-page-expected.txt:
        * fast/events/platform-wheelevent-paging-x-in-non-scrolling-page.html:
        * fast/events/platform-wheelevent-paging-x-in-scrolling-page-expected.txt:
        * fast/events/platform-wheelevent-paging-x-in-scrolling-page.html:
        * fast/events/platform-wheelevent-paging-xy-in-scrolling-page-expected.txt:
        * fast/events/platform-wheelevent-paging-xy-in-scrolling-page.html:
        * fast/events/platform-wheelevent-paging-y-in-non-scrolling-page-expected.txt:
        * fast/events/platform-wheelevent-paging-y-in-non-scrolling-page.html:
        * fast/events/platform-wheelevent-paging-y-in-scrolling-page-expected.txt:
        * fast/events/platform-wheelevent-paging-y-in-scrolling-page.html:
        * fast/events/scale-and-scroll-body-expected.txt:
        * fast/events/scale-and-scroll-body.html:
        * fast/events/scale-and-scroll-window-expected.txt:
        * fast/events/scale-and-scroll-window.html:
        * fast/events/scroll-after-click-on-tab-index.html:
        * fast/events/scroll-to-anchor-in-overflow-hidden.html:
        * fast/events/touch/ios/touchmove-cancelable-after-touchstart-expected.txt:
        * fast/events/touch/ios/touchmove-cancelable-after-touchstart.html:
        * fast/forms/autofocus-opera-003.html:
        * fast/forms/input-readonly-autoscroll.html:
        * fast/forms/resources/common.js:
        (getAbsoluteRect):
        * fast/frames/iframe-scroll-page-up-down.html:
        * fast/frames/transparent-scrollbar.html:
        * fast/harness/results.html:
        * fast/html/empty-fragment-id-goto-top-expected.txt:
        * fast/html/empty-fragment-id-goto-top.html:
        * fast/images/imagemap-scroll.html:
        * fast/loader/scroll-position-restored-on-back-non-cached.html:
        * fast/loader/scroll-position-restored-on-back.html:
        * fast/multicol/body-stuck-with-dirty-bit-with-columns.html:
        * fast/repaint/resources/iframe-scroll-repaint-iframe.html:
        * fast/scrolling/ios/iframe-scroll-into-view.html:
        * fast/scrolling/latching/scroll-div-latched-div.html:
        * fast/scrolling/latching/scroll-div-latched-mainframe.html:
        * fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
        * fast/scrolling/latching/scroll-iframe-fragment.html:
        * fast/scrolling/latching/scroll-iframe-latched-iframe.html:
        * fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
        * fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
        * fast/scrolling/latching/scroll-select-bottom-test.html:
        * fast/scrolling/latching/scroll-select-latched-mainframe.html:
        * fast/scrolling/latching/scroll-select-latched-select.html:
        * fast/scrolling/rtl-point-in-iframe.html:
        * fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction.html:
        * fast/table/assert-when-visual-overflow-is-cleared.html:
        * fast/transforms/selection-bounds-in-transformed-view.html:
        * http/tests/navigation/anchor-frames-cross-origin-expected.txt:
        * http/tests/navigation/resources/frame-with-anchor-cross-origin.html:
        * jquery/resources/test/unit/offset.js:
        * legacy-animation-engine/fast/harness/results.html:
        * media/video-controls-to-not-scroll-page-on-load.html:
        * media/video-main-content-allow-then-scroll-expected.txt:
        * media/video-main-content-allow-then-scroll.html:
        * scrollbars/scrollbar-large-overflow-rectangle.html:
        * tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
        * tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
        * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
        * tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html:
        * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
        * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
        * tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:
        * tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
        * tiled-drawing/scrolling/latched-to-deleted-node.html:
        * tiled-drawing/scrolling/non-fast-region/top-content-inset-header.html:
        * tiled-drawing/scrolling/non-fast-region/top-content-inset.html:
        * tiled-drawing/scrolling/non-fast-region/wheel-event-plugin.html:
        * tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe.html:

== Rolled over to ChangeLog-2018-09-11 ==
