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

        Layout Test http/wpt/cache-storage/cache-quota-add.any.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197952
        <rdar://problem/50859168>

        Unreviewed.

        * platform/ios-simulator-wk2/TestExpectations:
        Mark test as slow as per flakiness dashboard.

2019-05-16  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>

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