2019-06-05  Saam Barati  <sbarati@apple.com>

        [WHLSL] Implement loop expressions
        https://bugs.webkit.org/show_bug.cgi?id=195808
        <rdar://problem/50746309>

        Reviewed by Myles Maxfield.

        * webgpu/whlsl-do-while-loop-break-expected.html: Added.
        * webgpu/whlsl-do-while-loop-break.html: Added.
        * webgpu/whlsl-do-while-loop-continue-expected.html: Added.
        * webgpu/whlsl-do-while-loop-continue.html: Added.
        * webgpu/whlsl-do-while-loop-expected.html: Added.
        * webgpu/whlsl-do-while-loop.html: Added.
        * webgpu/whlsl-loops-break-expected.html: Added.
        * webgpu/whlsl-loops-break.html: Added.
        * webgpu/whlsl-loops-continue-expected.html: Added.
        * webgpu/whlsl-loops-continue.html: Added.
        * webgpu/whlsl-loops-expected.html: Added.
        * webgpu/whlsl-loops.html: Added.
        * webgpu/whlsl-nested-loop-expected.html: Added.
        * webgpu/whlsl-nested-loop.html: Added.
        * webgpu/whlsl-while-loop-break-expected.html: Added.
        * webgpu/whlsl-while-loop-break.html: Added.
        * webgpu/whlsl-while-loop-continue-expected.html: Added.
        * webgpu/whlsl-while-loop-continue.html: Added.

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

        Upstream content mode support into open source from WebKitAdditions
        https://bugs.webkit.org/show_bug.cgi?id=198484
        <rdar://problem/51355671>

        Reviewed by Andy Estes.

        Explicitly opt a few tests into desktop or mobile content mode.

        * fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html:
        * fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode-expected.html:
        * fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html:
        * media/modern-media-controls/media-controller/ios/media-controller-ios-layout-traits-modern-compatibility-mode.html:
        * platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode.html:
        * platform/ipad/fast/viewport/empty-meta.html:
        * platform/ipad/fast/viewport/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html:
        * platform/ipad/media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html:

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

        imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=198573

        Unreviewed test gardening.

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

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

        REGRESSION (~r244378) fast/events/touch/ios/content-observation/stuck-with-hover-state.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=198571
        <rdar://problem/50349265>

        Reviewed by Brent Fulgham.

        testRunner.notifyDone() is called prematurely.

        * fast/events/touch/ios/content-observation/stuck-with-hover-state.html:

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

        http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html is a flaky failure on Mojave
        https://bugs.webkit.org/show_bug.cgi?id=176240

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2019-06-05  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, add GTK baselines for new mediacapabilities test.

        This test was added in r245636 with baselines for the mac port, but not for the GTK port.

        * platform/gtk/media/mediacapabilities/mediacapabilities-types-expected.txt: Added.

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

        Mark two tests added in r246016 as slow.
        https://bugs.webkit.org/show_bug.cgi?id=198459

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

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

        Reviewed by Myles C. Maxfield.

        Import the last changes in the CSS Text suite.

        * TestExpectations: A few tests pass now
          - white-space-intrinsic-size-004.html
          - white-space-pre-wrap-trailing-spaces-003.html

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

        [Pointer Events] Add support for chorded button interactions
        https://bugs.webkit.org/show_bug.cgi?id=198462

        Reviewed by Dean Jackson.

        Update some tests and their expectations due to MouseEvent.buttons now returning the correct value in DRT and WKTR
        and MouseEvent.button now being a "short" instead of an "unsigned short".

        * fast/events/constructors/mouse-event-constructor-expected.txt:
        * fast/events/constructors/mouse-event-constructor.html: Update the test to test the boundary values for "short" instead
        of "unsigned short" as well as the new "magic" value of -2 for no button, which ends up being reported as 0.
        * fast/events/constructors/wheel-event-constructor-expected.txt:
        * fast/events/constructors/wheel-event-constructor.html: Update the test to test the boundary values for "short" instead
        of "unsigned short" as well as the new "magic" value of -2 for no button, which ends up being reported as 0.
        * fast/events/fire-mousedown-while-pressing-mouse-button.html: Rewrite this test to always use MouseEvent.buttons and
        adjust the bitmask expectations which were way off.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt:
        * platform/mac-highsierra/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt:
        * platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt:
        This test fails differently in WK1 and WK2 and will be addressed in a future patch.

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

        [ContentChangeObserver] Gmail text editing controls require two taps
        https://bugs.webkit.org/show_bug.cgi?id=198541
        <rdar://problem/51375055>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove-no-clickable.html: Added.

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

        Layout test landed flaky in 245873 [ Release ] http/wpt/service-workers/service-worker-networkprocess-crash.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=198435
        <rdar://problem/51314295>

        Reviewed by Alex Christensen.

        Make the test more robust by retrying the null test more than once.

        * http/wpt/service-workers/service-worker-networkprocess-crash-expected.txt:
        * http/wpt/service-workers/service-worker-networkprocess-crash.html:

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

        Crash when calling XMLHttpRequest.setRequestHeader() in a worker
        https://bugs.webkit.org/show_bug.cgi?id=198534
        <rdar://problem/51393912>

        Reviewed by Alex Christensen.

        Add layout test coverage.

        * fast/workers/resources/worker-xhr-setRequestHeader.js: Added.
        * fast/workers/worker-xhr-setRequestHeader-expected.txt: Added.
        * fast/workers/worker-xhr-setRequestHeader.html: Added.

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

        Sticky positioning is jumpy in many overflow cases
        https://bugs.webkit.org/show_bug.cgi?id=198532
        <rdar://problem/51400532>

        Reviewed by Simon Fraser.

        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-1-expected.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-1.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-2-expected.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-2.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-1-expected.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-1.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-2-expected.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-2.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-stacking-context-no-stick-expected.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-stacking-context-no-stick.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-stacking-context-stick-expected.html: Added.
        * scrollingcoordinator/ios/sticky-overflow-stacking-context-stick.html: Added.

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

        [WinCairo] Implement cpu and memory measuring functions.
        https://bugs.webkit.org/show_bug.cgi?id=198466

        Reviewed by Don Olmstead.

        * platform/wincairo/TestExpectations:

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

        [Pointer Events] Expose navigator.maxTouchPoints
        https://bugs.webkit.org/show_bug.cgi?id=198468
        <rdar://problem/51273029>

        Reviewed by Chris Dumez.

        * js/dom/navigator-maxtouchpoints-expected.txt: Added.
        * js/dom/navigator-maxtouchpoints.html: Added.
        * platform/mac-highsierra-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/win/js/dom/navigator-maxtouchpoints-expected.txt: Added.

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

        The "mouseenter" and "pointerenter" events are fired from the bottom up
        https://bugs.webkit.org/show_bug.cgi?id=198036
        <rdar://problem/50940350>

        Reviewed by Darin Adler.

        * fast/events/mouseenter-mouseleave-capture-expected.txt:
        * fast/events/mouseenter-mouseleave-expected.txt:
        * fast/events/mouseenterleave-on-subframe-expected.txt:
        * fast/events/shadow-event-path-expected.txt:
        * fast/shadow-dom/mouseenter-mouseleave-across-shadow-boundary-expected.txt:
        * fast/shadow-dom/mouseenter-mouseleave-inside-shadow-tree-expected.txt:
        * fast/shadow-dom/mouseenter-mouseleave-on-slot-parent-expected.txt:
        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk2/fast/events/shadow-event-path-expected.txt:
        * platform/mac/fast/events/shadow-event-path-2-expected.txt:
        * pointerevents/ios/enter-leave-order-expected.txt: Added.
        * pointerevents/ios/enter-leave-order.html: Added.
        * pointerevents/mouse/enter-leave-order-expected.txt: Added.
        * pointerevents/mouse/enter-leave-order.html: Added.

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

        JS wrapper of target in ResizeObserverEntry/ResizeObserver shouldn't get collected ahead
        https://bugs.webkit.org/show_bug.cgi?id=197457

        Reviewed by Ryosuke Niwa.

        * platform/win/TestExpectations:
        * resize-observer/element-leak-expected.txt: Added.
        * resize-observer/element-leak.html: Added.
        * resize-observer/resize-observer-entry-keeps-js-wrapper-of-target-alive-expected.txt: Added.
        * resize-observer/resize-observer-entry-keeps-js-wrapper-of-target-alive.html: Added.
        * resize-observer/resize-observer-keeps-js-wrapper-of-target-alive-expected.txt: Added.
        * resize-observer/resize-observer-keeps-js-wrapper-of-target-alive.html: Added.
        * resize-observer/resources/element-leak-frame.html: Added.

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

        Allow resizing of camera video feeds to very small resolutions
        https://bugs.webkit.org/show_bug.cgi?id=198421

        Reviewed by Alex Christensen.

        Update tests to expect 1x1 minimum capture resolution.

        * fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
        * fast/mediastream/apply-constraints-video-expected.txt:
        * fast/mediastream/apply-constraints-video.html:
        * fast/mediastream/get-user-media-constraints-expected.txt:
        * fast/mediastream/getUserMedia-video-rescaling-expected.txt: Added.
        * fast/mediastream/getUserMedia-video-rescaling.html: Added.

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

        Web Inspector: remove RemoteObject.prototype.getPropertyDescriptorsAsObject
        https://bugs.webkit.org/show_bug.cgi?id=198395

        Reviewed by Matt Baker.

        * inspector/runtime/awaitPromise.html:

2019-06-03  Rob Buis  <rbuis@igalia.com>

        Implement imagesrcset and imagesizes attributes on link rel=preload
        https://bugs.webkit.org/show_bug.cgi?id=192950

        Reviewed by Youenn Fablet.

        Write special expectation for link-header-preload-imagesrcset.html because test runner
        uses different dimensions on iOS.

        * platform/ios-simulator-12-wk2/imported/w3c/web-platform-tests/preload/dynamic-adding-preload-imagesrcset-expected.txt: Added.
        * platform/ios-simulator-12-wk2/imported/w3c/web-platform-tests/preload/link-header-preload-imagesrcset-expected.txt: Added.

2019-06-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] JSObject::attemptToInterceptPutByIndexOnHole should use getPrototype instead of getPrototypeDirect
        https://bugs.webkit.org/show_bug.cgi?id=198477
        <rdar://problem/51299504>

        Reviewed by Saam Barati.

        Ensure that JSWindow::getPrototype is used.

        * http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt: Added.
        * http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html: Added.
        * http/tests/security/resources/cross-frame-iframe-for-object-getPrototypeOf-in-put-test.html: Added.

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

        Flaky Test: inspector/canvas/recording.html
        https://bugs.webkit.org/show_bug.cgi?id=198470

        Reviewed by Timothy Hatcher.

        * inspector/canvas/recording.html:
        The ordering of <canvas> in `WI.canvasManager.canvases` isn't always the same, so we should
        perform the action on every <canvas> since we know we'll be recording at least one of them.

2019-06-02  Devin Rousso  <drousso@apple.com>

        Flaky Test: inspector/canvas/recording.html
        https://bugs.webkit.org/show_bug.cgi?id=198470

        Reviewed by Matt Baker.

        * inspector/canvas/recording.html:
        Don't rely on `frameCount` to automatically stop the recording, as that's dependent on when
        the <canvas> paints and is less controllable/deterministic.

2019-06-01  Simon Fraser  <simon.fraser@apple.com>

        [Async overflow scroll] Flashing content when scrolling async overflow with a negative z-index child
        https://bugs.webkit.org/show_bug.cgi?id=198458

        Reviewed by Dean Jackson.

        * compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
        * platform/ios-wk2/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:

2019-06-01  Simon Fraser  <simon.fraser@apple.com>

        Async overflow scroll on iOS paints slowly if it has a negative z-index child
        https://bugs.webkit.org/show_bug.cgi?id=196508
        rdar://problem/49532709

        Reviewed by Dean Jackson.

        * compositing/geometry/scroller-with-clipping-and-foreground-layers-expected.html: Added.
        * compositing/geometry/scroller-with-clipping-and-foreground-layers.html: Added.
        * compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt: Added.
        * compositing/repaint/scroller-with-foreground-layer-repaints.html: Added.
        * platform/ios-wk2/compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt: Added.
        * platform/mac-wk1/compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt: Added.

2019-06-01  Simon Fraser  <simon.fraser@apple.com>

        Non-composited negative z-order children should not trigger creation of a foreground layer
        https://bugs.webkit.org/show_bug.cgi?id=198455

        Reviewed by Sam Weinig.
        
        Change existing tests that use negative z-order layers to trigger foreground layer
        creation to use compositing on those negative z-order layers.

        * compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt:
        * compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html:
        * compositing/geometry/bounds-ignores-hidden-expected.txt:
        * compositing/geometry/bounds-ignores-hidden.html:
        * compositing/layer-creation/composited-negative-z-subtree-expected.txt: Added.
        * compositing/layer-creation/composited-negative-z-subtree.html: Added.
        * compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
        * compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html:
        * platform/ios-wk2/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt:
        * platform/ios-wk2/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
        * platform/mac-wk1/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:

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

        Web Inspector: Canvas: split recording tests into separate files so they don't timeout
        https://bugs.webkit.org/show_bug.cgi?id=198459
        <rdar://problem/51332026>

        Reviewed by Joseph Pecoraro.

        * inspector/canvas/recording.html:
        * inspector/canvas/recording-expected.txt:

        * inspector/canvas/recording-2d.html: Removed.
        * inspector/canvas/recording-2d-expected.txt: Removed.
        * inspector/canvas/console-record-2d.html: Added.
        * inspector/canvas/console-record-2d-expected.txt: Added.
        * inspector/canvas/recording-2d-frameCount.html: Added.
        * inspector/canvas/recording-2d-frameCount-expected.txt: Added.
        * inspector/canvas/recording-2d-full.html: Added.
        * inspector/canvas/recording-2d-full-expected.txt: Added.
        * inspector/canvas/recording-2d-memoryLimit.html: Added.
        * inspector/canvas/recording-2d-memoryLimit-expected.txt: Added.
        * inspector/canvas/recording-2d-saves.html: Added.
        * inspector/canvas/recording-2d-saves-expected.txt: Added.
        * inspector/canvas/resources/recording-2d.js: Added.

        * inspector/canvas/recording-bitmaprenderer.html: Removed.
        * inspector/canvas/recording-bitmaprenderer-expected.txt: Removed.
        * inspector/canvas/console-record-bitmaprenderer.html: Added.
        * inspector/canvas/console-record-bitmaprenderer-expected.txt: Added.
        * inspector/canvas/recording-bitmaprenderer-frameCount.html: Added.
        * inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt: Added.
        * inspector/canvas/recording-bitmaprenderer-full.html: Added.
        * inspector/canvas/recording-bitmaprenderer-full-expected.txt: Added.
        * inspector/canvas/recording-bitmaprenderer-memoryLimit.html: Added.
        * inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt: Added.
        * inspector/canvas/resources/recording-bitmaprenderer.js: Added.

        * inspector/canvas/recording-webgl.html: Removed.
        * inspector/canvas/recording-webgl-expected.txt: Removed.
        * inspector/canvas/console-record-webgl.html: Added.
        * inspector/canvas/console-record-webgl-expected.txt: Added.
        * inspector/canvas/recording-webgl-frameCount.html: Added.
        * inspector/canvas/recording-webgl-frameCount-expected.txt: Added.
        * inspector/canvas/recording-webgl-full.html: Added.
        * inspector/canvas/recording-webgl-full-expected.txt: Added.
        * inspector/canvas/recording-webgl-memoryLimit.html: Added.
        * inspector/canvas/recording-webgl-memoryLimit-expected.txt: Added.
        * inspector/canvas/resources/recording-webgl.js: Added.

        * inspector/canvas/recording-webgl2.html: Removed.
        * inspector/canvas/recording-webgl2-expected.txt: Removed.
        * inspector/canvas/console-record-webgl2.html: Added.
        * inspector/canvas/console-record-webgl2-expected.txt: Added.
        * inspector/canvas/recording-webgl2-frameCount.html: Added.
        * inspector/canvas/recording-webgl2-frameCount-expected.txt: Added.
        * inspector/canvas/recording-webgl2-full.html: Added.
        * inspector/canvas/recording-webgl2-full-expected.txt: Added.
        * inspector/canvas/recording-webgl2-memoryLimit.html: Added.
        * inspector/canvas/recording-webgl2-memoryLimit-expected.txt: Added.
        * inspector/canvas/resources/recording-webgl2.js: Added.

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

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

        Web Inspector: Canvas: in tests don't manually stop recording if a frame count is specified
        https://bugs.webkit.org/show_bug.cgi?id=198457
        <rdar://problem/48248697>

        Reviewed by Joseph Pecoraro.

        If a `frameCount` is specified, the recording will stop by itself, so if we hit the
        `LastFrame`, there's no need to manually stop the recording at that point. Otherwise,
        stopping it early may cause the recording to think that the last frame is incomplete.

        * inspector/canvas/resources/recording-utilities.js:
        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl2-snapshots.html:

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

        Make tests that use UIHelper more robust under certain configurations
        https://bugs.webkit.org/show_bug.cgi?id=198442
        <rdar://problem/51301737>

        Reviewed by Megan Gardner.

        Replace usages of `UIHelper.isIOS` with `UIHelper.isIOSFamily`.

        * fast/dom/iframe-inner-size-scaling.html:
        * fast/forms/datalist/datalist-show-hide.html:
        * fast/forms/datalist/datalist-textinput-suggestions-order.html:
        * fast/scrolling/ios/reveal-focused-element-right-above-keyboard-on-ipad.html:

        Also remove a workaround here that forces `isIOS` to return `true`.

        * resources/ui-helper.js:
        (window.UIHelper.isIOSFamily):
        (window.UIHelper.isWebKit2):
        (window.UIHelper.humanSpeedDoubleTapAt):
        (window.UIHelper.humanSpeedZoomByDoubleTappingAt):
        (window.UIHelper.zoomByDoubleTappingAt):
        (window.UIHelper.async.doubleActivateAt):
        (window.UIHelper.async.doubleActivateAtSelectionStart):
        (window.UIHelper.async.selectWordByDoubleTapOrClick):
        (window.UIHelper.keyDown):
        (window.UIHelper.deactivateFormControl):
        (window.UIHelper.typeCharacter):
        (window.UIHelper.inputViewBounds):
        (window.UIHelper.contentOffset):
        (window.UIHelper.isIOS): Deleted.

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

        Add an option to mute audio capture automatically when page is not visible
        https://bugs.webkit.org/show_bug.cgi?id=198307

        Reviewed by Eric Carlson.

        * platform/ios/mediastream/audio-muted-in-background-tab-expected.txt: Added.
        * platform/ios/mediastream/audio-muted-in-background-tab.html: Added.

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

        Updating expectations for failing tests
        <rdar://problem/47088939>

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Detab.

        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html:

2019-05-31  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: CSS Changes: modifications aren't shared for rules that match multiple elements
        https://bugs.webkit.org/show_bug.cgi?id=195264
        <rdar://problem/48550023>

        Reviewed by Devin Rousso.

        Test arrays with repeating items for Array.diffArrays.

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

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

        [iOS] Reveal the focused element when it's immediately above software keyboard
        https://bugs.webkit.org/show_bug.cgi?id=198412

        Reviewed by Wenson Hsieh.

        Added a regression test. Note that this test always passes on non-iPad platforms either
        before or after this patch as _zoomToRevealFocusedElement forces scrolling in that case.

        * fast/scrolling/ios/reveal-focused-element-right-above-keyboard-on-ipad-expected.txt: Added.
        * fast/scrolling/ios/reveal-focused-element-right-above-keyboard-on-ipad.html: Added.

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

        [Mac WK2 Debug] Layout Test scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=197425

        Unreviewed test gardening.
        
        Speculative fix for flakey test; trigger layout inside the subframe.

        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame.html:

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

        iOS: Main frame should be scrollable when pinch zoomed or software keyboard is up
        https://bugs.webkit.org/show_bug.cgi?id=198244

        Reviewed by Simon Fraser.

        Added regression tests.

        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard-expected.txt: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-1-expected.txt: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-1.html: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-2-expected.txt: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-2.html: Added.

2019-05-31  Commit Queue  <commit-queue@webkit.org>

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

        Broke quip (Requested by rniwa on #webkit).

        Reverted changeset:

        "iOS: Main frame should be scrollable when pinch zoomed or
        software keyboard is up"
        https://bugs.webkit.org/show_bug.cgi?id=198244
        https://trac.webkit.org/changeset/245953

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

        Move code that sets compositing paint phases into a single function
        https://bugs.webkit.org/show_bug.cgi?id=198420

        Reviewed by Zalan Bujtas.

        * compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt: Added.
        * compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html: Added.
        * platform/ios-wk2/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt: Added.
        * platform/mac-wk1/compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt: Added.

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

        tile-coverage-iframe-to-zero-coverage.html flakey after r245974
        https://bugs.webkit.org/show_bug.cgi?id=198438

        Unreviewed test gardening.
        
        layerTreeAsText() doesn't force layouts on subframes (webkit.org/b/198439) so
        have the test force an update on the subframe via a dummy layerTreeAsText() call.

        * tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt:
        * tiled-drawing/tile-coverage-iframe-to-zero-coverage.html:

2019-05-31  Saam Barati  <sbarati@apple.com>

        [WHLSL] Make sure we properly emit code for "&*x"
        https://bugs.webkit.org/show_bug.cgi?id=198198

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-store-to-property-updates-properly-expected.html: Added.
        * webgpu/whlsl-store-to-property-updates-properly.html: Added.

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

        [Async overflow scrolling] Flashes of missing layer backing store when scrolling an overflow
        https://bugs.webkit.org/show_bug.cgi?id=198363

        Reviewed by Tim Horton.

        Reset results.

        * fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
        * tiled-drawing/tiled-backing-in-window-expected.txt:

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

        Unreviewed, rolling out r245946.

        Breaks the watchOS build.

        Reverted changeset:

        "Add an option to mute audio capture automatically when page
        is not visible"
        https://bugs.webkit.org/show_bug.cgi?id=198307
        https://trac.webkit.org/changeset/245946

2019-05-31  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-30  Ryosuke Niwa  <rniwa@webkit.org>

        iOS: Main frame should be scrollable when pinch zoomed or software keyboard is up
        https://bugs.webkit.org/show_bug.cgi?id=198244

        Reviewed by Simon Fraser.

        Added regression tests.

        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard-expected.txt: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-1-expected.txt: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-1.html: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-2-expected.txt: Added.
        * fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-2.html: Added.

2019-05-30  Jer Noble  <jer.noble@apple.com>

        Video playback in Safari should continue when CarPlay is plugged in
        https://bugs.webkit.org/show_bug.cgi?id=198345
        <rdar://problem/45505750>

        Reviewed by Eric Carlson.

        * media/video-isplayingtoautomotiveheadunit-expected.txt: Added.
        * media/video-isplayingtoautomotiveheadunit.html: Added.

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

        Add an option to mute audio capture automatically when page is not visible
        https://bugs.webkit.org/show_bug.cgi?id=198307

        Reviewed by Eric Carlson.

        * platform/ios/mediastream/audio-muted-in-background-tab-expected.txt: Added.
        * platform/ios/mediastream/audio-muted-in-background-tab.html: Added.

2019-05-30  Saam Barati  <sbarati@apple.com>

        [WHLSL] Enforce variable lifetimes
        https://bugs.webkit.org/show_bug.cgi?id=195794
        <rdar://problem/50746293>

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-ensure-proper-variable-lifetime-2-expected.html: Added.
        * webgpu/whlsl-ensure-proper-variable-lifetime-2.html: Added.
        * webgpu/whlsl-ensure-proper-variable-lifetime-3-expected.html: Added.
        * webgpu/whlsl-ensure-proper-variable-lifetime-3.html: Added.
        * webgpu/whlsl-ensure-proper-variable-lifetime-expected.html: Added.
        * webgpu/whlsl-ensure-proper-variable-lifetime.html: Added.
        * webgpu/whlsl-return-local-variable-expected.html: Added.
        * webgpu/whlsl-return-local-variable.html: Added.

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

        Unreviewed, rolling out r245890, 245887.

        Breaks internal builds.

        Reverted changeset:
        "Video playback in Safari should continue when CarPlay is plugged in"
        https://bugs.webkit.org/show_bug.cgi?id=198345
        https://trac.webkit.org/changeset/245887/webkit


2019-05-30  Dean Jackson  <dino@apple.com>

        Media documents on iPad are too wide in split screen
        https://bugs.webkit.org/show_bug.cgi?id=198405
        <rdar://problem/50974548>

        Reviewed by Tim Horton.

        Make old test iPhone-specific. Add an iPad-specific test.
        And mark all the expectations correctly.

        * media/modern-media-controls/media-documents/media-document-video-ipad-sizing-expected.txt: Copied from LayoutTests/media/modern-media-controls/media-documents/media-document-video-ios-sizing-expected.txt.
        * media/modern-media-controls/media-documents/media-document-video-ipad-sizing.html: Copied from LayoutTests/media/modern-media-controls/media-documents/media-document-video-ios-sizing.html.
        * media/modern-media-controls/media-documents/media-document-video-iphone-sizing-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-documents/media-document-video-ios-sizing-expected.txt.
        * media/modern-media-controls/media-documents/media-document-video-iphone-sizing.html: Renamed from LayoutTests/media/modern-media-controls/media-documents/media-document-video-ios-sizing.html.
        * platform/ios/TestExpectations:
        * platform/ipad/TestExpectations:
        * platform/mac/TestExpectations:

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

        Web Inspector: Audit: there should be a default test for WebInspectorAudit.Resources functionality
        https://bugs.webkit.org/show_bug.cgi?id=196710
        <rdar://problem/49712348>

        Reviewed by Joseph Pecoraro.

        * inspector/audit/manager-start-setup.html:
        * inspector/audit/manager-start-setup-expected.txt:
        * inspector/model/auditTestCase-expected.txt:
        * inspector/model/auditTestCaseResult-expected.txt:
        * inspector/model/auditTestGroup-expected.txt:
        * inspector/unit-tests/object-utilities.html:
        * inspector/unit-tests/object-utilities-expected.txt:

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

        Inserting a newline in contenteditable causes two characters to be added instead of one
        https://bugs.webkit.org/show_bug.cgi?id=197894
        <rdar://problem/49700998>

        Reviewed by Wenson Hsieh and Chris Fleizach.

        * accessibility/ios-simulator/set-selected-text-range-after-newline-expected.txt: Added.
        * accessibility/ios-simulator/set-selected-text-range-after-newline.html: Added.
        * accessibility/ios-simulator/text-marker-list-item-expected.txt:
        * accessibility/set-selected-text-range-after-newline-expected.txt: Added.
        * accessibility/set-selected-text-range-after-newline.html: Added.
        * platform/win/TestExpectations:

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

        Web Inspector: Audit: tests are unable to get the current Audit version
        https://bugs.webkit.org/show_bug.cgi?id=198270

        Reviewed by Timothy Hatcher.

        * inspector/audit/run.html:
        * inspector/audit/run-expected.txt:
        * inspector/audit/version.html:

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

        [Web GPU] Vertex Buffers/Input State API updates
        https://bugs.webkit.org/show_bug.cgi?id=194258
        <rdar://problem/47806127>

        Reviewed by Myles C. Maxfield.

        Update WebGPU tests for the new vertex buffer attributes model.

        * webgpu/blend-triangle-strip.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/js/webgpu-functions.js:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/whlsl-arbitrary-vertex-attribute-locations.html:
        * webgpu/whlsl-dereference-pointer-should-type-check.html:
        * webgpu/whlsl-dont-crash-parsing-enum.html:
        * webgpu/whlsl-dot-expressions.html:
        * webgpu/whlsl-nested-dot-expression-rvalue.html:
        * webgpu/whlsl.html:

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

        Missing caret when focusing an editable field if the selection was set when WKWebView wasn't first responder
        https://bugs.webkit.org/show_bug.cgi?id=198356
        <rdar://problem/50798593>

        Reviewed by Tim Horton.

        Add a new layout test to exercise this scenario.

        * editing/selection/ios/caret-when-focusing-editable-element-with-selection-expected.txt: Added.
        * editing/selection/ios/caret-when-focusing-editable-element-with-selection.html: Added.

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

        [iOS] Do not linkify telephone numbers inside <a> elements.
        https://bugs.webkit.org/show_bug.cgi?id=198378

        Reviewed by Chris Dumez.

        * fast/dom/linkify-phone-numbers-expected.html: Added.
        * fast/dom/linkify-phone-numbers.html: Added.

2019-05-30  Jer Noble  <jer.noble@apple.com>

        Video playback in Safari should continue when CarPlay is plugged in
        https://bugs.webkit.org/show_bug.cgi?id=198345
        <rdar://problem/45505750>

        Reviewed by Eric Carlson.

        * media/video-isplayingtoautomotiveheadunit-expected.txt: Added.
        * media/video-isplayingtoautomotiveheadunit.html: Added.

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

        REGRESSION (r244182) [Mac WK2] Layout Test 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

        Reviewed by Simon Fraser.

        * platform/mac-wk2/TestExpectations:

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

        Reestablish WebSWClientConnection in case of network process crash
        https://bugs.webkit.org/show_bug.cgi?id=198333

        Reviewed by Alex Christensen.

        * http/wpt/service-workers/service-worker-networkprocess-crash-expected.txt: Added.
        * http/wpt/service-workers/service-worker-networkprocess-crash.html: Added.

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

        Scrolling node ordering wrong when a layer has both positioning and fixed/sticky node
        https://bugs.webkit.org/show_bug.cgi?id=198329

        Reviewed by Darin Adler.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/sticky-in-overflow.html: Added.

2019-05-28  Yacine Bandou  <yacine.bandou@softathome.com>

        [MSE][GStreamer] update the readyState correctly in MediaPlayerPrivateGStreamerMSE
        https://bugs.webkit.org/show_bug.cgi?id=197834

        Reviewed by Xabier Rodriguez-Calvar.

        Add a new test that checks if the MediaElement receives the "canplaythrough"
        event when the media content is entirely injected to MSE sourceBuffer.

        * media/media-source/media-source-canplaythrough-event-expected.txt: Added.
        * media/media-source/media-source-canplaythrough-event.html: Added.

2019-05-28  Saam Barati  <sbarati@apple.com>

        [WHLSL] Type of dereference is the type of the thing we point to, not a pointer to that type
        https://bugs.webkit.org/show_bug.cgi?id=198321

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-dereference-pointer-should-type-check-expected.html: Added.
        * webgpu/whlsl-dereference-pointer-should-type-check.html: Added.

2019-05-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Move idempotent text autosizing to StyleTreeResolver
        https://bugs.webkit.org/show_bug.cgi?id=197808
        <rdar://problem/50283983>

        Reviewed by Antti Koivisto.

        * fast/text-autosizing/ios/idempotentmode/css-exposure-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/css-exposure.html: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip-expected.html: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip.html: Added.
        * platform/ipad/fast/text-autosizing/text-size-adjust-inline-style-expected.html: Removed.
        * platform/ipad/fast/text-autosizing/text-size-adjust-inline-style.html: Removed.
        We're intentionally not honoring percentages, because this is the most common way that
        text autosizing is disabled (by setting it to 100%) on the Web today. However, Web authors
        that have done this did it without knowing the full extent of the behavior change, and 
        the new idempotent text autosizing code path seems to be a progression in most cases
        we've seen.

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

        Use scroll-velocity-based tile coverage for overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=198294
        rdar://problem/48942184

        Reviewed by Tim Horton.

        * tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage-expected.txt: Added.
        * tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage.html: Added.
        * tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage-expected.txt: Added.
        * tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage.html: Added.
        * tiled-drawing/scrolling/overflow/overflow-tile-coverage-expected.txt: Added.
        * tiled-drawing/scrolling/overflow/overflow-tile-coverage.html: Added.

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

        createAnswer() SDP Rejected by setLocalDescription()
        https://bugs.webkit.org/show_bug.cgi?id=195930
        <rdar://problem/49030489>

        Reviewed by Eric Carlson.

        * webrtc/h264-packetization-mode-expected.txt: Added.
        * webrtc/h264-packetization-mode.html: Added.

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

        Unreviewed, rolling out r245475.

        Newly imported test is flaky. Features need flags.

        Reverted changeset:

        "Implement imagesrcset and imagesizes attributes on link
        rel=preload"
        https://bugs.webkit.org/show_bug.cgi?id=192950
        https://trac.webkit.org/changeset/245475

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

        REGRESSION (r244182): inspector/canvas/recording-webgl-snapshots.html became flaky on WK1
        https://bugs.webkit.org/show_bug.cgi?id=196875
        <rdar://problem/49873252>

        Reviewed by Said Abou-Hallawa.

        Remove the `frameLimit` configuration on these tests, as they're short enough that when
        running in debug, the timing between the `InspectorCanvasAgent` automatically stopping the
        recording and the test page's `LastFrame` event (which will manually stop the recording) is
        too close and can result in a race condition.

        Instead, just wait for the test page to say "done" (`LastFrame`) before stopping the
        recording, ensuring that the full "flow" of the recording is under the control of the test.

        This isn't an issue when using Web Inspector "normally" (e.g. not in a test), because the
        frontend UI will "ignore" these types of errors, not to mention it would be much harder for
        a person to get the timing just right to even encounter this situation.

        * inspector/canvas/recording-webgl-snapshots.html:
        * inspector/canvas/recording-webgl2-snapshots.html:
        * platform/mac/TestExpectations:

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

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

        Reviewed by Jon Lee.

        We raised an issue on the WPT test which was testing the event timestamp in an invalid manner (see https://github.com/w3c/pointerevents/issues/284
        and https://github.com/web-platform-tests/wpt/issues/170160). As a result this test now passes reliably, so we can update the expected out and
        the TestExpectations.

        * platform/mac/TestExpectations:

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

        [async scrolling] Fixed positioning inside stacking context overflow scroll is jumpy
        https://bugs.webkit.org/show_bug.cgi?id=198292

        Reviewed by Darin Adler.

        * scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll-2-expected.html: Added.
        * scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll-2.html: Added.
        * scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll-expected.html: Added.
        * scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll.html: Added.

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

        [CURL] Fix crashing SocketStreamHandle.
        https://bugs.webkit.org/show_bug.cgi?id=197873

        Reviewed by Fujii Hironori.

        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

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

        [css-grid] Preserve repeat() notation when serializing declared values
        https://bugs.webkit.org/show_bug.cgi?id=197840

        Reviewed by Manuel Rego Casasnovas.

        Update test expectations.

        * fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
        * fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
        * fast/css-grid-layout/grid-repeat-calc-expected.txt:
        * fast/css-grid-layout/grid-repeat-calc.html:
        * fast/css-grid-layout/named-grid-line-get-set-expected.txt:
        * fast/css-grid-layout/named-grid-line-get-set.html:

2019-05-27  Carlos Garcia Campos  <cgarcia@igalia.com>

        Touch support is reported even when the device doesn't have a touch screen
        https://bugs.webkit.org/show_bug.cgi?id=139681

        Reviewed by Michael Catanzaro.

        Remove expectations for tests that are passing now.

        * platform/gtk/TestExpectations:

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

        Resource Load Statistics: Downgrade document.referrer to the referrer's eTLD+1 if the page was navigated to with a prevalent resource referrer containing link decoration
        https://bugs.webkit.org/show_bug.cgi?id=198227
        <rdar://problem/51117258>

        Reviewed by Alex Christensen.

        * http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource-expected.txt: Added.
        * http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource.html: Added.

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

        media/video-remote-control-playpause.html is timing out after r245712
        https://bugs.webkit.org/show_bug.cgi?id=198238

        Reviewed by Eric Carlson.

        * platform/mac/TestExpectations:
        Removed old flaky expectation that is no longer valid according dashboard.

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

        [Async overflow scrolling] Absolute positioned element inside async overflow scroll didn't get composited sometimes
        https://bugs.webkit.org/show_bug.cgi?id=198237

        Reviewed by Antti Koivisto.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller.html: Added.

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

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

        Reviewed by Antti Koivisto.

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

2019-05-24  Joonghun Park  <jh718.park@samsung.com>

        Make computed width of non-replaced inline return computed style.
        https://bugs.webkit.org/show_bug.cgi?id=197814

        Reviewed by Antti Koivisto.

        Currently, Computed width of non-replaced inline incorrectly returns "auto"
        instead of the computed value.
        This patch changes the behavior according to
        https://drafts.csswg.org/cssom/#resolved-value as below.

        'If the property applies to the element or pseudo-element
        and the resolved value of the display property is not none or contents,
        then the resolved value is the used value.
        Otherwise the resolved value is the computed value.'

        * fast/css/getComputedStyle/getComputedStyle-resolved-values-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-with-pseudo-element-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html:
        * legacy-animation-engine/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element-expected.txt:
        * legacy-animation-engine/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html:

2019-05-24  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Allow vertex attributes to have arbitrary names in the shader
        https://bugs.webkit.org/show_bug.cgi?id=198235

        Reviewed by Dean Jackson and Justin Fan.

        * webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html: Added.
        * webgpu/whlsl-arbitrary-vertex-attribute-locations.html: Added.

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

        scrollingcoordinator/scrolling-tree/fixed-inside-frame.html is no longer flaky
        https://bugs.webkit.org/show_bug.cgi?id=194253

        Unreviewed test gardening.

        * platform/ios-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations: Removing failed expectations

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

        Rebase compositing/rtl/rtl-overflow-scrolling.html
        https://bugs.webkit.org/show_bug.cgi?id=198220
        <rdar://problem/51114177>

        Unreviewed test gardening.
        
        New result is a progression (scrollX, which is an offset, should not be negative).

        * platform/ios-wk2/compositing/rtl/rtl-overflow-scrolling-expected.txt:

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

        Asssertion failure in dispatchSubtreeModifiedEvent due to TextFieldInputType updating UA shadow tree inside Element::removedFromAncestor
        https://bugs.webkit.org/show_bug.cgi?id=198216

        Reviewed by Brent Fulgham.

        Added a regression test.

        * fast/forms/datalist/datalist-removal-assertion-expected.txt: Added.
        * fast/forms/datalist/datalist-removal-assertion.html: Added.

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

        With async overflow scrolling, programmatic scroll to a negative offset fails to clamp the scroll offset
        https://bugs.webkit.org/show_bug.cgi?id=198208
        <rdar://problem/49720087>

        Reviewed by Zalan Bujtas.

        * fast/scrolling/programmatic-scroll-to-negative-offset-expected.txt: Added.
        * fast/scrolling/programmatic-scroll-to-negative-offset.html: Added.

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

        run-webkit-tests: Remove feature detection support
        https://bugs.webkit.org/show_bug.cgi?id=198105

        Reviewed by Jonathan Bedard.

        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        Added Skip for all compositing, animations/3d and transforms/3d tests temporarily.

2019-05-23  Saam barati  <sbarati@apple.com>

        [WHLSL] Property resolver needs to recurse to handle the base when simplifying rvalues
        https://bugs.webkit.org/show_bug.cgi?id=198193

        Reviewed by Myles Maxfield.

        * webgpu/whlsl-nested-dot-expression-rvalue-expected.html: Added.
        * webgpu/whlsl-nested-dot-expression-rvalue.html: Added.

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

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

        Unreviewed test gardening. Updating expectations for Release as well

        * platform/mac-wk2/TestExpectations:

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

        fast/css-grid-layout/flex-content-sized-columns-resize.html is a flaky ImageOnlyFailure
        https://bugs.webkit.org/show_bug.cgi?id=187828#add_comment

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Updating for flkay test

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

        fast/css/sticky/sticky-left-percentage.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=198195

        Unreviewed test gardening.

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

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

        CacheStorageConnection callbacks should be completed on network connection close
        https://bugs.webkit.org/show_bug.cgi?id=195757

        Reviewed by Alex Christensen.

        * http/wpt/cache-storage/cache-storage-networkprocess-crash-expected.txt: Added.
        * http/wpt/cache-storage/cache-storage-networkprocess-crash.html: Added.

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

        Multiple videos (with audios) with autoplay & playinline not working. Only one video play at a time.
        https://bugs.webkit.org/show_bug.cgi?id=193312
        <rdar://problem/47189864>

        Reviewed by Jer Noble.

        * webrtc/concurrentVideoPlayback-expected.txt: Added.
        * webrtc/concurrentVideoPlayback.html: Added.

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

        Updating test expectations for failing tests.
        <rdar://problem/47088939>

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [Pointer Events] Compatibility mouse events can only be prevented while the pointer is pressed
        https://bugs.webkit.org/show_bug.cgi?id=198178

        Reviewed by Dean Jackson.

        Add a test that listens "mousemove" events and checks it is not dispatched after preventDefault() is called when handling
         "pointerdown" but it is dispatched after releasing the mouse pointer and moving it again.

        * pointerevents/mouse/compatibility-mouse-events-prevention-mouse-released-expected.txt: Added.
        * pointerevents/mouse/compatibility-mouse-events-prevention-mouse-released.html: Added.

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

        [Pointer Events] The mouseover, mouseout, mouseenter, and mouseleave events should not be prevented while the pointer is down
        https://bugs.webkit.org/show_bug.cgi?id=198177

        Reviewed by Dean Jackson.

        Add a test that listens to all mouse events and checks which are dispatched in the case preventDefault() is called when handling
        "pointerdown" and when it isn't.

        * platform/mac-wk1/TestExpectations: Skipping the test on WK1 where the sequence of dispatched mouse events does not match.
        * pointerevents/mouse/compatibility-mouse-events-prevention-mouse-pressed-expected.txt: Added.
        * pointerevents/mouse/compatibility-mouse-events-prevention-mouse-pressed.html: Added.

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

        Add Mojave+ back to media/track/track-cue-rendering-vertical.html expectation
        https://bugs.webkit.org/show_bug.cgi?id=136627

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Create scrolling tree nodes for descendants of position:absolute inside stacking-context overflow
        https://bugs.webkit.org/show_bug.cgi?id=198154

        Reviewed by Antti Koivisto.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt: Copied from LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt.
        * scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow.html: Added.
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:

2019-05-23  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Implement property resolver
        https://bugs.webkit.org/show_bug.cgi?id=195925
        <rdar://problem/48219643>

        Reviewed by Saam Barati and Robin Morisset.

        * webgpu/whlsl-dot-expressions-expected.html: Added.
        * webgpu/whlsl-dot-expressions.html: Added.

2019-05-22  Myles C. Maxfield  <mmaxfield@apple.com>

        font-optical-sizing applies the wrong variation value
        https://bugs.webkit.org/show_bug.cgi?id=197528
        <rdar://problem/50152854>

        Reviewed by Antti Koivisto.

        * fast/text/variations/optical-sizing-trak-2-expected-mismatch.html: Added.
        * fast/text/variations/optical-sizing-trak-2.html: Added.
        * fast/text/variations/optical-sizing-trak-expected.html: Added.
        * fast/text/variations/optical-sizing-trak.html: Added.
        * fast/text/variations/optical-sizing-units-2-expected-mismatch.html: Added.
        * fast/text/variations/optical-sizing-units-2.html: Added.
        * fast/text/variations/optical-sizing-units-expected.html: Added.
        * fast/text/variations/optical-sizing-units.html: Added.
        * fast/text/variations/resources/Amstelvar/Amstelvar-Roman-VF104.ttf: Added.
        This font havariations/s been approved by the lawyers to add for layout tests.
        * fast/text/variations/resources/Amstelvar/COPYRIGHT.md: Added.
        * fast/text/variations/resources/Amstelvar/OFL.txt: Added.
        * platform/win/TestExpectations:

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

        Subselectors not searched when determining property whitelist for selector
        https://bugs.webkit.org/show_bug.cgi?id=198147
        <rdar://problem/50405208>

        Reviewed by Zalan Bujtas.

        * fast/lists/marker-style-subselector-whitelist-expected.txt: Added.
        * fast/lists/marker-style-subselector-whitelist.html: Added.

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

        [iOS] The shouldIgnoreMetaViewport test option incorrectly persists across layout tests
        https://bugs.webkit.org/show_bug.cgi?id=198135
        <rdar://problem/51001306>

        Reviewed by Alexey Proskuryakov.

        Attempt to fix a handful of viewport tests that currently try to wait for the next visible content rect update,
        but end up timing out in the process. Instead, only wait for the presentation update, which is guaranteed to
        happen.

        * 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/initial-scale-after-changing-view-scale.html:
        * fast/viewport/ios/minimum-scale-after-changing-view-scale.html:

2019-05-22  Saam barati  <sbarati@apple.com>

        WHLSL: fix enum parsing
        https://bugs.webkit.org/show_bug.cgi?id=198087

        Reviewed by Myles Maxfield.

        * webgpu/whlsl-dont-crash-parsing-enum-expected.html: Added.
        * webgpu/whlsl-dont-crash-parsing-enum.html: Added.

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

        REGRESSION(r245148): Removing inputmode="none" does not bring up software keyboard
        https://bugs.webkit.org/show_bug.cgi?id=198141

        Reviewed by Geoffrey Garen.

        Added a regression test.

        * fast/forms/ios/inputmode-removing-none-expected.txt: Added.
        * fast/forms/ios/inputmode-removing-none.html: Added.

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

        <rdar://problem/50058173> REGRESSION (r243347) Layout tests fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on* are failing

        Unreviewed test gardening.

        I confirmed that “cancelable” is no longer true because
        WebPageProxy::handleTouchEventSynchronously() is dispatching the events
        asynchronously, so setCanPreventNativeGestures is set to false.

        The exception is because the “touchEnd” event has no touches.

        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block-expected.txt:
        * 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-expected.txt:
        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html:

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

        Fix scrolling tree state for more obscure combinations of positioning and paint order
        https://bugs.webkit.org/show_bug.cgi?id=198139

        Reviewed by Antti Koivisto.

        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt: Added.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers.html: Added.
        * scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow.html: Added.

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

        Inner scroller of nested overflow:scrolls jitters when scrolling
        https://bugs.webkit.org/show_bug.cgi?id=198131

        Reviewed by Antti Koivisto.

        * fast/scrolling/ios/overflow-scroll-overlap-6-expected.txt: Progression
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/nested-overflow-scroll.html: Added.

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

        Unreviewed, rolling out r245598.

        Breaks watchOS build.

        Reverted changeset:

        "font-optical-sizing applies the wrong variation value"
        https://bugs.webkit.org/show_bug.cgi?id=197528
        https://trac.webkit.org/changeset/245598

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

        [iOS] Compatibility mouse events aren't prevented by calling preventDefault() on pointerdown
        https://bugs.webkit.org/show_bug.cgi?id=198124
        <rdar://problem/50410863>

        Reviewed by Tim Horton.

        We're adding an iOS-specific expectation since this test prints out the pointer type detected while it runs, which is "touch"
        on iOS and "mouse" in the expectation that already exists for macOS.

        * platform/ios/imported/w3c/web-platform-tests/pointerevents/pointerevent_suppress_compat_events_on_click-expected.txt: Added.

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

        [WebAuthN] Support Attestation Conveyance Preference
        https://bugs.webkit.org/show_bug.cgi?id=192722
        <rdar://problem/49939647>

        Reviewed by Brent Fulgham.

        * 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-create-success-local.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-local.https.html:
        * http/wpt/webauthn/public-key-credential-create-success-u2f.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:

2019-05-22  Jer Noble  <jer.noble@apple.com>

        Hide MediaCapabilities.encodingInfo() when the platform does not support it.
        https://bugs.webkit.org/show_bug.cgi?id=197476

        Reviewed by Eric Carlson.

        * platform/ios/media/mediacapabilities/mediacapabilities-encodingInfo-undefined-expected.txt: Added.
        * platform/ios/media/mediacapabilities/mediacapabilities-encodingInfo-undefined.html: Added.
        * platform/ios/media/mediacapabilities/mediacapabilities-types-expected.txt: Added.
        * platform/mac/media/mediacapabilities/mediacapabilities-encodingInfo-undefined-expected.txt: Added.
        * platform/mac/media/mediacapabilities/mediacapabilities-encodingInfo-undefined.html: Added.
        * platform/mac/media/mediacapabilities/mediacapabilities-types-expected.txt: Added.

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

        Implement Feature policy self/none/* parsing
        https://bugs.webkit.org/show_bug.cgi?id=198078

        Reviewed by Eric Carlson.

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

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

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

        * TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/gtk/fast/forms/input-align-expected.png:
        * platform/gtk/fast/forms/input-align-expected.txt:
        * platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
        * platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
        * platform/gtk/media/controls-after-reload-expected.txt:
        * platform/gtk/printing/page-with-10mm-left-margin-expected.txt:
        * platform/gtk/printing/page-with-zero-margin-expected.txt:
        * platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:

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

        Layout Test http/wpt/cache-storage/cache-put-stream.https.any.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=181107
        <rdar://problem/36188028>

        Unreviewed.

        * platform/mac-wk2/TestExpectations:
        Marking more tests as slow.

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

        Layout Test http/tests/security/showModalDialog-sync-cross-origin-page-load2.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=198112

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2019-05-21  Myles C. Maxfield  <mmaxfield@apple.com>

        font-optical-sizing applies the wrong variation value
        https://bugs.webkit.org/show_bug.cgi?id=197528
        <rdar://problem/50152854>

        Reviewed by Antti Koivisto.

        * fast/text/variations/optical-sizing-trak-2-expected-mismatch.html: Added.
        * fast/text/variations/optical-sizing-trak-2.html: Added.
        * fast/text/variations/optical-sizing-trak-expected.html: Added.
        * fast/text/variations/optical-sizing-trak.html: Added.
        * fast/text/variations/optical-sizing-units-2-expected-mismatch.html: Added.
        * fast/text/variations/optical-sizing-units-2.html: Added.
        * fast/text/variations/optical-sizing-units-expected.html: Added.
        * fast/text/variations/optical-sizing-units.html: Added.
        * fast/text/variations/resources/Amstelvar/Amstelvar-Roman-VF104.ttf: Added.
        This font havariations/s been approved by the lawyers to add for layout tests.
        * fast/text/variations/resources/Amstelvar/COPYRIGHT.md: Added.
        * fast/text/variations/resources/Amstelvar/OFL.txt: Added.

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

        Layer flashing and poor perf during scrolling of message list on gmail.com and hotmail.com - overlap testing needs to constrained to clipping scopes
        https://bugs.webkit.org/show_bug.cgi?id=198091
        <rdar://problem/49403082>

        Reviewed by Antti Koivisto.

        * TestExpectations:
        * compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt: Added.
        * compositing/layer-creation/clipping-scope/nested-scroller-overlap.html: Added.
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt: Added.
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller.html: Added.
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-stacking-context-scroller-expected.txt: Added.
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-stacking-context-scroller.html: Added.
        * compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt: Added.
        * compositing/layer-creation/clipping-scope/scroller-with-negative-z-children.html: Added.
        * compositing/layer-creation/clipping-scope/shared-layers-in-scroller-expected.txt: Added.
        * compositing/layer-creation/clipping-scope/shared-layers-in-scroller.html: Added.
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt: Added.
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt: Added.
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/overlap-constrained-inside-stacking-context-scroller-expected.txt: Added.
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt: Added.
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/shared-layers-in-scroller-expected.txt: Added.
        * platform/mac-wk2/TestExpectations:

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

        RTL/overflow scroll tests fail with async overflow enabled
        https://bugs.webkit.org/show_bug.cgi?id=196013
        <rdar://problem/49066649>

        Reviewed by Simon Fraser.

        * compositing/ios/rtl-overflow-scrolling-2-expected.html: Added.
        * compositing/ios/rtl-overflow-scrolling-2.html: Added.

        Add a reftest version for better coverage.

        * compositing/rtl/rtl-overflow-scrolling.html:
        * platform/ios-wk1/TestExpectations:
        * platform/ios-wk2/TestExpectations:
        * platform/ios-wk2/compositing/rtl/rtl-overflow-scrolling-expected.txt: Added.

2019-05-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        [WPE] Add initial accessibility support using ATK
        https://bugs.webkit.org/show_bug.cgi?id=197413

        Reviewed by Michael Catanzaro.

        Unskip accessibility tests that are passing now and add platform specific results.

        * platform/wpe/TestExpectations:
        * platform/wpe/accessibility/add-children-pseudo-element-expected.txt: Added.
        * platform/wpe/accessibility/aria-fallback-roles-expected.txt: Added.
        * platform/wpe/accessibility/aria-hidden-negates-no-visibility-expected.txt: Added.
        * platform/wpe/accessibility/aria-label-on-label-element-expected.txt: Added.
        * platform/wpe/accessibility/aria-labelledby-overrides-aria-label-expected.txt: Added.
        * platform/wpe/accessibility/aria-labelledby-overrides-label-expected.txt: Added.
        * platform/wpe/accessibility/aria-option-role-expected.txt: Added.
        * platform/wpe/accessibility/aria-roledescription-expected.txt: Added.
        * platform/wpe/accessibility/aria-switch-sends-notification-expected.txt: Added.
        * platform/wpe/accessibility/aria-tab-roles-expected.txt: Added.
        * platform/wpe/accessibility/aria-table-attributes-expected.txt: Added.
        * platform/wpe/accessibility/aria-table-content-expected.txt: Added.
        * platform/wpe/accessibility/aria-toggle-button-with-title-expected.txt: Added.
        * platform/wpe/accessibility/auto-fill-crash-expected.txt: Added.
        * platform/wpe/accessibility/button-with-aria-haspopup-role-expected.txt: Added.
        * platform/wpe/accessibility/color-well-expected.txt: Added.
        * platform/wpe/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
        * platform/wpe/accessibility/dimensions-include-descendants-expected.txt: Added.
        * platform/wpe/accessibility/double-nested-inline-element-missing-from-tree-expected.txt: Added.
        * platform/wpe/accessibility/empty-image-with-title-expected.txt: Added.
        * platform/wpe/accessibility/file-upload-button-stringvalue-expected.txt: Added.
        * platform/wpe/accessibility/help-text-expected.txt: Added.
        * platform/wpe/accessibility/image-link-expected.txt: Added.
        * platform/wpe/accessibility/image-map1-expected.txt: Added.
        * platform/wpe/accessibility/image-map2-expected.txt: Added.
        * platform/wpe/accessibility/inline-continuations-expected.txt: Added.
        * platform/wpe/accessibility/label-with-pseudo-elements-expected.txt: Added.
        * platform/wpe/accessibility/list-detection-expected.txt: Added.
        * platform/wpe/accessibility/lists-expected.txt: Added.
        * platform/wpe/accessibility/math-multiscript-attributes-expected.txt: Added.
        * platform/wpe/accessibility/media-emits-object-replacement-expected.txt: Added.
        * platform/wpe/accessibility/menu-list-crash2-expected.txt: Added.
        * platform/wpe/accessibility/minimal-table-with-aria-is-data-table-expected.txt: Added.
        * platform/wpe/accessibility/press-targets-center-point-expected.txt: Added.
        * platform/wpe/accessibility/radio-button-title-label-expected.txt: Added.
        * platform/wpe/accessibility/render-counter-text-expected.txt: Added.
        * platform/wpe/accessibility/roles-computedRoleString-expected.txt: Added.
        * platform/wpe/accessibility/roles-exposed-expected.txt: Added.
        * platform/wpe/accessibility/set-selected-text-range-contenteditable-expected.txt: Added.
        * platform/wpe/accessibility/svg-remote-element-expected.txt: Added.
        * platform/wpe/accessibility/tabindex-elements-are-accessible-expected.txt: Added.
        * platform/wpe/accessibility/table-attributes-expected.txt: Added.
        * platform/wpe/accessibility/table-cell-spans-expected.txt: Added.
        * platform/wpe/accessibility/table-cells-expected.txt: Added.
        * platform/wpe/accessibility/table-cells-roles-expected.txt: Added.
        * platform/wpe/accessibility/table-column-headers-with-captions-expected.txt: Added.
        * platform/wpe/accessibility/table-one-cell-expected.txt: Added.
        * platform/wpe/accessibility/table-roles-hierarchy-expected.txt: Added.
        * platform/wpe/accessibility/table-sections-expected.txt: Added.
        * platform/wpe/accessibility/table-with-rules-expected.txt: Added.
        * platform/wpe/accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.
        * platform/wpe/accessibility/transformed-element-expected.txt: Added.

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

        [iOS] Layout viewport size on google.com increases after rotating to landscape and back
        https://bugs.webkit.org/show_bug.cgi?id=198062
        <rdar://problem/50547895>

        Reviewed by Maciej Stachowiak.

        Add a UIHelper method to simulate device rotation to a given orientation, and use it in a new layout test that
        simulates rotation to and from landscape orientation, and verifies that the initial scale did not change from
        its expected value of 1.

        * fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation-expected.txt: Added.
        * fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.rotateDevice.return.new.Promise.):
        (window.UIHelper.rotateDevice):
        (window.UIHelper):

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

        Fix security check in ScriptController::canAccessFromCurrentOrigin()
        https://bugs.webkit.org/show_bug.cgi?id=196730
        <rdar://problem/49731231>

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

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

2019-05-20  Gabe Giosia  <giosia@google.com>

        Range getBoundingClientRect returning zero rect on simple text node with <br> before it
        https://bugs.webkit.org/show_bug.cgi?id=182181

        Reviewed by Antti Koivisto.
        
        Test getBoundingClientRect with a Range that contains a line break.

        * fast/dom/Range/getBoundingClientRect-expected.txt:
        * fast/dom/Range/getBoundingClientRect.html:

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

        Unreviewed test gardening after r245482.

        * platform/mac/TestExpectations: Explicitly mark webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format.html
        as slow for High Sierra.

2019-05-20  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.

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

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

        [ Mac WK2 iOS Sim] Layout Test 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
        <rdar://problem/49345360>

        Reviewed by Alex Christensen.

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

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

        Wait to get frame until after layout has been run
        https://bugs.webkit.org/show_bug.cgi?id=197999
        <rdar://problem/50800345>

        Reviewed by Alex Christensen.

        * fast/dom/window-inner-width-crash-expected.txt: Added.
        * fast/dom/window-inner-width-crash.html: Added.

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

        [Pointer Events] Listening to a "pointerover", "pointerenter", "pointerout" or "pointerleave" event alone does not fire the event on iOS
        https://bugs.webkit.org/show_bug.cgi?id=197882
        <rdar://problem/50769116>

        Reviewed by Dean Jackson.

        Add new tests that check that adding a "pointerover", "pointerenter", "pointerout" or "pointerleave" event listener alone dispatches the
        event as expected.

        * pointerevents/ios/pointerenter-alone-expected.txt: Added.
        * pointerevents/ios/pointerenter-alone.html: Added.
        * pointerevents/ios/pointerleave-alone-expected.txt: Added.
        * pointerevents/ios/pointerleave-alone.html: Added.
        * pointerevents/ios/pointerout-alone-expected.txt: Added.
        * pointerevents/ios/pointerout-alone.html: Added.
        * pointerevents/ios/pointerover-alone-expected.txt: Added.
        * pointerevents/ios/pointerover-alone.html: Added.

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

        [Pointer Events] The pointerup, pointerout and pointerleave events may be fired twice
        https://bugs.webkit.org/show_bug.cgi?id=198028
        <rdar://problem/50769425>

        Reviewed by Dean Jackson.

        Add a new test that checks that we're firing a "pointermove" event when the touch pressure
        changes, even when the touch is stationary, and that a single "pointerup" event is fired
        as the touch ends and the pressure changes. The relevant code change is done in WebKitAdditions.

        * pointerevents/ios/pressure-change-expected.txt: Added.
        * pointerevents/ios/pressure-change.html: Added.
        * pointerevents/utils.js:
        (prototype._handlePointerEvent):
        (prototype.stationary):
        (prototype._action):

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

        [Pointer Events] A pointer should be marked as primary for all of its events
        https://bugs.webkit.org/show_bug.cgi?id=197909
        <rdar://problem/50801608>

        Reviewed by Dean Jackson.

        Update tests to match expectations that only the first touch of a sequence is the primary pointer,
        which applies to all of its events, even after the even is no longer touching the digitizer.

        * pointerevents/ios/over-enter-out-leave.html:
        * pointerevents/ios/pointer-event-order.html:
        * pointerevents/ios/pointer-events-implicit-capture.html:
        * pointerevents/ios/pointer-events-is-primary-expected.txt:
        * pointerevents/ios/pointer-events-is-primary.html:

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

        Layers painting into shared backing need to contribute to overlap
        https://bugs.webkit.org/show_bug.cgi?id=198021

        Reviewed by Zalan Bujtas.

        * compositing/shared-backing/sharing-child-contributes-to-overlap-expected.html: Added.
        * compositing/shared-backing/sharing-child-contributes-to-overlap.html: Added.

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

        [WebAuthN] Allow authenticators that support both CTAP and U2F to try U2F if CTAP fails in authenticatorGetAssertion
        https://bugs.webkit.org/show_bug.cgi?id=197974
        <rdar://problem/50879746>

        Reviewed by Brent Fulgham.

        * http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
        * http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
        * http/wpt/webauthn/public-key-credential-get-failure-hid.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:
        * http/wpt/webauthn/resources/util.js:

2019-05-17  Joonghun Park  <pjh0718@gmail.com>

        Implement CSS `display: flow-root` (modern clearfix)
        https://bugs.webkit.org/show_bug.cgi?id=165603

        Reviewed by Zalan Bujtas.

        This change follows https://drafts.csswg.org/css-display-3/#valdef-display-flow-root as below.

        'display: flow-root' generates a block container box, and lays out its contents using flow layout.
        It always establishes a new block formatting context for its contents.

        * TestExpectations:

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

        Add a website policy to disable the legacy -webkit-overflow-scrolling:touch behavior
        https://bugs.webkit.org/show_bug.cgi?id=197943
        <rdar://problem/49078202>

        Reviewed by Brent Fulgham.

        * fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode-expected.html: Added.
        * fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html: Added.
        * platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode-expected.txt: Added.
        * platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode.html: Added.
        * platform/ios/TestExpectations: Skip the new tests since they depend on code in WebKitAdditions.

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

        Implement imagesrcset and imagesizes attributes on link rel=preload
        https://bugs.webkit.org/show_bug.cgi?id=192950

        Reviewed by Youenn Fablet.

        Write special expectation for link-header-preload-imagesrcset.html because test runner
        uses different dimensions on iOS.

        * platform/ios-simulator-12-wk2/imported/w3c/web-platform-tests/preload/dynamic-adding-preload-imagesrcset-expected.txt: Added.
        * platform/ios-simulator-12-wk2/imported/w3c/web-platform-tests/preload/link-header-preload-imagesrcset-expected.txt: Added.

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

        media/controls-after-reload.html failing on iOS after unskip

        Unreviewed test gardening.

        * platform/ios/TestExpectations: Skipping in iOS

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

        REGRESSION (r245170): gmail.com inbox table header flickers
        https://bugs.webkit.org/show_bug.cgi?id=198005
        <rdar://problem/50907718>

        Reviewed by Antti Koivisto.

        * compositing/shared-backing/overlap-after-end-sharing-expected.html: Added.
        * compositing/shared-backing/overlap-after-end-sharing.html: Added.

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

        REGRESSION (r245170): gmail.com header flickers when hovering over the animating buttons
        https://bugs.webkit.org/show_bug.cgi?id=197975
        <rdar://problem/50865946>

        Reviewed by Antti Koivisto.

        * compositing/shared-backing/overlap-after-shared-to-composited-expected.html: Added.
        * compositing/shared-backing/overlap-after-shared-to-composited.html: Added.

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

        SVGElement should detach itself from all its properties before it is deleted
        https://bugs.webkit.org/show_bug.cgi?id=197954

        Reviewed by Simon Fraser.

        * svg/dom/svg-properties-detach-change-expected.txt: Added.
        * svg/dom/svg-properties-detach-change.html : Added.

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

        Allow sequential playback of media files when initial playback started with a user gesture
        https://bugs.webkit.org/show_bug.cgi?id=197959
        <rdar://problem/50655207>

        Reviewed by Youenn Fablet.

        * media/media-fullscreen.js: Insert a pause between tests to clear the user gesture
        used in the first test.
        * media/playlist-inherits-user-gesture-expected.txt: Added.
        * media/playlist-inherits-user-gesture.html: Added.

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

        Unmark several skipped tests in wk2
        https://bugs.webkit.org/show_bug.cgi?id=197987

        Unreviewed test gardening

        * platform/wk2/TestExpectations:

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

        [iOS] Respect scrolling="no" on composited frames
        https://bugs.webkit.org/show_bug.cgi?id=197972
        <rdar://problem/50252398>

        Reviewed by Simon Fraser.

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

        Also fix overflow:hidden test so that the frame content forces composition.

        * fast/scrolling/ios/frame-scrolling-no-expected.html: Added.
        * fast/scrolling/ios/frame-scrolling-no.html: Added.

2019-05-16  Greg Doolittle  <gr3g@apple.com>

        AX: Unship some ARIA string reflectors that are to-be-replaced by element reflection
        https://bugs.webkit.org/show_bug.cgi?id=197764
        <rdar://problem/50649689>

        Reviewed by Chris Fleizach.

        Specifically these:
        - ariaActiveDescendant
        - ariaControls
        - ariaDescribedBy
        - ariaDetails
        - ariaErrorMessage
        - ariaFlowTo
        - ariaLabelledBy
        - ariaOwns

        * accessibility/ARIA-reflection-expected.txt: Updated.
        * accessibility/ARIA-reflection.html: Updated.

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

        Storage Access API: Call completion handlers in NetworkConnectionToWebProcess::hasStorageAccess() and NetworkConnectionToWebProcess::requestStorageAccess() when feature is off
        https://bugs.webkit.org/show_bug.cgi?id=197967
        <rdar://problem/50753129>

        Reviewed by Brent Fulgham.

        * http/tests/storageAccess/has-storage-access-true-if-feature-off.html:
        * platform/mac-wk2/TestExpectations:
            Test case marked as [ Pass ].

2019-05-16  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] Invalid AssignmentTargetType should be an early error.
        https://bugs.webkit.org/show_bug.cgi?id=197603

        Reviewed by Keith Miller.

        * fast/events/window-onerror4-expected.txt:
        * ietestcenter/Javascript/11.13.1-1-1-expected.txt:
        * ietestcenter/Javascript/11.13.1-1-2-expected.txt:
        * ietestcenter/Javascript/11.13.1-1-3-expected.txt:
        * ietestcenter/Javascript/11.13.1-1-4-expected.txt:
        * js/basic-strict-mode-expected.txt:
        * js/dom/assign-expected.txt:
        * js/dom/line-column-numbers-expected.txt:
        * js/dom/line-column-numbers.html:
        * js/dom/postfix-syntax-expected.txt:
        * js/dom/prefix-syntax-expected.txt:
        * js/dom/script-tests/line-column-numbers.js:
        * js/function-toString-parentheses-expected.txt:
        * js/parser-syntax-check-expected.txt:
        * js/parser-xml-close-comment-expected.txt:
        * js/script-tests/function-toString-parentheses.js:
        * js/script-tests/parser-syntax-check.js:
        Update tests & expectations to reflect new SyntaxErrors.

        * js/script-tests/toString-prefix-postfix-preserve-parens.js:
        * js/toString-prefix-postfix-preserve-parens-expected.txt:
        None of the prefix/postfix tests make sense here now that they're all SyntaxErrors;
        remove them and just leave the typeof tests.

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