2019-07-15  Rob Buis  <rbuis@igalia.com>

        MathML WPT test for RadicalDegreeBottomRaisePercent fails
        https://bugs.webkit.org/show_bug.cgi?id=183631

        Reviewed by Frédéric Wang.

        Adjust test expectations.

        * platform/ios/mathml/presentation/roots-expected.txt:
        * platform/mac/mathml/presentation/roots-expected.txt:
        * platform/win/mathml/presentation/roots-expected.txt:

2019-07-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Improve wasm wpt test results by fixing miscellaneous issues
        https://bugs.webkit.org/show_bug.cgi?id=199783

        Reviewed by Mark Lam.

        * platform/ios-simulator/TestExpectations:
        * platform/win/TestExpectations:

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

        Enable a debug WebRTC mode without any encryption
        https://bugs.webkit.org/show_bug.cgi?id=199177
        <rdar://problem/52074986>

        Reviewed by Eric Carlson.

        * webrtc/disable-encryption-expected.txt: Added.
        * webrtc/disable-encryption.html: Added.

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

        Filter SDP c lines
        https://bugs.webkit.org/show_bug.cgi?id=199791

        Reviewed by Eric Carlson.

        * webrtc/datachannel/filter-ice-candidate.html:

2019-07-14  Dean Jackson  <dino@apple.com>

        WebGL not supported on WKWebView on UIKit for Mac
        https://bugs.webkit.org/show_bug.cgi?id=199785
        <rdar://problem/52911449>

        Reviewed by Antoine Quint.

        Even though we don't yet run tests on UIKit for Mac, we
        should have the most simple "is WebGL working?" ref test.

        * webgl/smell-test-expected.html: Added.
        * webgl/smell-test.html: Added.

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

        [Text autosizing] [iPadOS] Further adjust our heuristics to determine text autosizing candidates
        https://bugs.webkit.org/show_bug.cgi?id=199780
        <rdar://problem/52289088>

        Reviewed by Simon Fraser.

        Rebaseline an existing idempotent text autosizing test, and add an additional test case.

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

2019-07-13  Simon Fraser  <simon.fraser@apple.com>

        Don't do async overflow scrolling for visibility:hidden scrollers
        https://bugs.webkit.org/show_bug.cgi?id=199779

        Reviewed by Dean Jackson.

        * compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers.html: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt: Added.

2019-07-13  Zalan Bujtas  <zalan@apple.com>

        Cannot bring up custom media controls at all on v.youku.com
        https://bugs.webkit.org/show_bug.cgi?id=199699
        <rdar://problem/51835327>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/visibility-hidden-iframe-click-expected.txt: Added.
        * fast/events/touch/ios/visibility-hidden-iframe-click.html: Added.
        * fast/events/touch/ios/visibility-hidden-nested-iframe-click-expected.txt: Added.
        * fast/events/touch/ios/visibility-hidden-nested-iframe-click.html: Added.

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

        Stopping a cloned MediaStream video track should not stop any other video track
        https://bugs.webkit.org/show_bug.cgi?id=199635

        Reviewed by Eric Carlson.

        * fast/mediastream/mediastreamtrack-video-clone-expected.txt:
        * fast/mediastream/mediastreamtrack-video-clone.html:

2019-07-12  Timothy Hatcher  <timothy@apple.com>

        Drop DarkModeCSSEnabled as an experimental feature and always enable it.
        https://bugs.webkit.org/show_bug.cgi?id=199725
        rdar://problem/52970972

        Reviewed by Megan Gardner.

        Removed <!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
        from all dark mode tests.

        * css-dark-mode/color-scheme-css-parse.html:
        * css-dark-mode/color-scheme-css.html:
        * css-dark-mode/color-scheme-meta.html:
        * css-dark-mode/color-scheme-priority.html:
        * css-dark-mode/color-scheme-scrollbar.html:
        * css-dark-mode/default-colors.html:
        * css-dark-mode/older-syntax/supported-color-schemes-css.html:
        * css-dark-mode/older-syntax/supported-color-schemes-meta.html:
        * css-dark-mode/older-systems/color-scheme-css.html:
        * css-dark-mode/older-systems/color-scheme-meta.html:
        * css-dark-mode/older-systems/prefers-color-scheme.html:
        * css-dark-mode/prefers-color-scheme-picture-element.html:
        * css-dark-mode/prefers-color-scheme.html:

2019-07-11  Myles C. Maxfield  <mmaxfield@apple.com>

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653
        <rdar://problem/51692592>

        Reviewed by Simon Fraser.

        * TestExpectations:
        * fast/text/design-system-ui-10-expected-mismatch.html: Added.
        * fast/text/design-system-ui-10.html: Added.
        * fast/text/design-system-ui-11-expected-mismatch.html: Added.
        * fast/text/design-system-ui-11.html: Added.
        * fast/text/design-system-ui-12-expected-mismatch.html: Added.
        * fast/text/design-system-ui-12.html: Added.
        * fast/text/design-system-ui-13-expected-mismatch.html: Added.
        * fast/text/design-system-ui-13.html: Added.
        * fast/text/design-system-ui-14-expected-mismatch.html: Added.
        * fast/text/design-system-ui-14.html: Added.
        * fast/text/design-system-ui-15-expected-mismatch.html: Added.
        * fast/text/design-system-ui-15.html: Added.
        * fast/text/design-system-ui-16-expected-mismatch.html: Added.
        * fast/text/design-system-ui-16.html: Added.
        * fast/text/design-system-ui-2-expected.html: Added.
        * fast/text/design-system-ui-2.html: Added.
        * fast/text/design-system-ui-3-expected-mismatch.html: Added.
        * fast/text/design-system-ui-3.html: Added.
        * fast/text/design-system-ui-4-expected-mismatch.html: Added.
        * fast/text/design-system-ui-4.html: Added.
        * fast/text/design-system-ui-5-expected-mismatch.html: Added.
        * fast/text/design-system-ui-5.html: Added.
        * fast/text/design-system-ui-6-expected.html: Added.
        * fast/text/design-system-ui-6.html: Added.
        * fast/text/design-system-ui-7-expected.html: Added.
        * fast/text/design-system-ui-7.html: Added.
        * fast/text/design-system-ui-8-expected-mismatch.html: Added.
        * fast/text/design-system-ui-8.html: Added.
        * fast/text/design-system-ui-9-expected-mismatch.html: Added.
        * fast/text/design-system-ui-9.html: Added.
        * fast/text/design-system-ui-expected.html: Added.
        * fast/text/design-system-ui.html: Added.
        * platform/mac/TestExpectations:

2019-07-11  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK][WPE] Rebaseline css3/blending tests with an empty homedir.

        It seems this tests are sensible to some configuration of some
        library as they produce different output (the layers with more left
        margin) depending on that. The test pass on both cases, but the
        check with the expected result fails, so it is flagged as failing.

        This rebaselines the results to those that happen when running with
        an empty/temporal homedir on Debian 10 to match what happens on the
        bots. For more info see bugs 169916 and 199738.

        Unreviewed gardening commit.

        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
        * platform/wpe/TestExpectations: css3/blending/svg-isolation-isolated-group.html passes with an empty homedir.
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt:
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png:
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt:

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

        [iOS] fast/events/ios/rotation/orientationchange-event-listener-on.body.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=199732
        <rdar://problem/52693087>

        Reviewed by Alex Christensen.

        Stop logging in each event listener to not be reliant on the order in which listener are called.
        Instead, simply make sure all event listeners that should be called were actually called.

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

2019-07-11  Ryosuke Niwa  <rniwa@webkit.org>

        Make the test added in r247327 more reliable.

        * editing/selection/ios/autoscroll-with-top-content-inset-2.html:

2019-07-11  Russell Epstein  <russell_e@apple.com>

        Layout Test fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html is Failing Consistently on iOS-WK2.
        https://bugs.webkit.org/show_bug.cgi?id=199731

        Unreviewed Test Gardening

        * platform/ios-wk2/TestExpectations:

2019-07-11  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Implement GPUError and error scopes
        https://bugs.webkit.org/show_bug.cgi?id=199655

        Reviewed by Myles C. Maxfield.

        Add a test to cover the cases outlined in the WebGPU error handling design doc.

        * webgpu/error-scopes-test-expected.txt: Added.
        * webgpu/error-scopes-test.html: Added.

2019-07-11  Commit Queue  <commit-queue@webkit.org>

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

        Caused performance regression. (Requested by deanj on
        #webkit).

        Reverted changeset:

        "Disable speculative loading if cache is not to be used for
        the load"
        https://bugs.webkit.org/show_bug.cgi?id=199644
        https://trac.webkit.org/changeset/247314

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

        [iOS WK2] Can't place caret or select in content that overflows a contenteditable element
        https://bugs.webkit.org/show_bug.cgi?id=199741
        rdar://problem/50545233

        Reviewed by Wenson Hsieh.
        
        Re-enable editing/caret/ios, fixing the result of emoji.html which for some reason was
        checked in as an html file (the test still fails).

        * editing/caret/ios/caret-in-overflow-area-expected.txt: Added.
        * editing/caret/ios/caret-in-overflow-area.html: Added.
        * editing/caret/ios/emoji-expected.txt: Renamed from LayoutTests/editing/caret/ios/emoji-expected.html.
        * editing/caret/ios/fixed-caret-position-after-scroll-expected.txt:
        * editing/caret/ios/fixed-caret-position-after-scroll.html:
        * editing/selection/ios/place-selection-in-overflow-area-expected.txt: Added.
        * editing/selection/ios/place-selection-in-overflow-area.html: Added.
        * editing/selection/ios/selection-extends-into-overflow-area-expected.txt: Added.
        * editing/selection/ios/selection-extends-into-overflow-area.html: Added.
        * platform/ios-wk2/TestExpectations:

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

        Add test expectations and baselines for iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=199329

        Reviewed by Jonathan Bedard.

        * platform/ios-12/*: Move iOS 12 specific baselines to their own directory.
        * platform/ios/*: Add iOS 13 baselines and test expectations.

2019-07-11  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening. Update expectations after r247346.

        * platform/gtk/TestExpectations:

2019-07-11  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Implement support for ARIA roles insertion, deletion, subscript, superscript, and time
        https://bugs.webkit.org/show_bug.cgi?id=199692

        Reviewed by Chris Fleizach.

        Add the new roles to the existing role-exposure tests and update expectations accordingly.

        * accessibility/gtk/object-attributes-expected.txt:
        * accessibility/gtk/object-attributes.html:
        * 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-wk2/accessibility/roles-exposed-expected.txt:
        * platform/mac/accessibility/roles-computedRoleString-expected.txt:
        * platform/mac/accessibility/roles-exposed-expected.txt:
        * platform/wpe/accessibility/roles-computedRoleString-expected.txt:
        * platform/wpe/accessibility/roles-exposed-expected.txt:

2019-07-10  Saam Barati  <sbarati@apple.com>

        [WHLSL] Import all tests that pass without compiler changes from the JS reference test suite
        https://bugs.webkit.org/show_bug.cgi?id=199595

        Rubber stamped by Robin Morisset.

        * webgpu/whlsl-argument-evaluation-order-expected.txt: Added.
        * webgpu/whlsl-argument-evaluation-order.html: Added.
        * webgpu/whlsl-array-length-spec-tests-expected.txt: Added.
        * webgpu/whlsl-array-length-spec-tests.html: Added.
        * webgpu/whlsl-array-spec-tests-expected.txt:
        * webgpu/whlsl-array-spec-tests.html:
        * webgpu/whlsl-bad-add-expected.txt: Added.
        * webgpu/whlsl-bad-add.html: Added.
        * webgpu/whlsl-bools-expected.txt: Added.
        * webgpu/whlsl-bools.html: Added.
        * webgpu/whlsl-casts-expected.txt: Added.
        * webgpu/whlsl-casts.html: Added.
        * webgpu/whlsl-comment-parsing-expected.txt: Added.
        * webgpu/whlsl-comment-parsing.html: Added.
        * webgpu/whlsl-copy-expected.txt: Added.
        * webgpu/whlsl-copy.html: Added.
        * webgpu/whlsl-dereference-ordering-expected.txt: Added.
        * webgpu/whlsl-dereference-ordering.html: Added.
        * webgpu/whlsl-double-not-expected.txt: Added.
        * webgpu/whlsl-double-not.html: Added.
        * webgpu/whlsl-duplicates-expected.txt: Added.
        * webgpu/whlsl-duplicates.html: Added.
        * webgpu/whlsl-increment-decrement-expected.txt: Added.
        * webgpu/whlsl-increment-decrement.html: Added.
        * webgpu/whlsl-index-ander-expected.txt: Added.
        * webgpu/whlsl-index-ander.html: Added.
        * webgpu/whlsl-index-setter-getter-expected.txt: Added.
        * webgpu/whlsl-index-setter-getter.html: Added.
        * webgpu/whlsl-logical-negation-expected.txt: Added.
        * webgpu/whlsl-logical-negation.html: Added.
        * webgpu/whlsl-lots-of-local-variables-expected.txt: Added.
        * webgpu/whlsl-lots-of-local-variables.html: Added.
        * webgpu/whlsl-lvalues-expected.txt: Added.
        * webgpu/whlsl-lvalues.html: Added.
        * webgpu/whlsl-null-arg-expected.txt: Added.
        * webgpu/whlsl-null-arg.html: Added.
        * webgpu/whlsl-operator-overload-expected.txt: Added.
        * webgpu/whlsl-operator-overload.html: Added.
        * webgpu/whlsl-overload-expected.txt: Added.
        * webgpu/whlsl-overload.html: Added.
        * webgpu/whlsl-setter-spec-tests-expected.txt: Added.
        * webgpu/whlsl-setter-spec-tests.html: Added.
        * webgpu/whlsl-store-null-expected.txt: Added.
        * webgpu/whlsl-store-null.html: Added.
        * webgpu/whlsl-struct-expected.txt: Added.
        * webgpu/whlsl-struct.html: Added.
        * webgpu/whlsl-switch-expected.txt: Added.
        * webgpu/whlsl-switch.html: Added.
        * webgpu/whlsl-variable-shadowing-expected.txt: Added.
        * webgpu/whlsl-variable-shadowing.html: Added.
        * webgpu/whlsl-vector-syntax-expected.txt: Added.
        * webgpu/whlsl-vector-syntax.html: Added.

2019-07-10  Truitt Savell  <tsavell@apple.com>

        Marking webgpu/whlsl-builtin-vectors-2.html as Slow after https://trac.webkit.org/changeset/247319/webkit
        https://bugs.webkit.org/show_bug.cgi?id=199651

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        AX: VoiceOver ignored role="presentation" on <table> HTML elements
        https://bugs.webkit.org/show_bug.cgi?id=199659

        Reviewed by Zalan Bujtas.

        * accessibility/ios-simulator/tables-lists-expected.txt:
        * accessibility/ios-simulator/tables-lists.html:

2019-07-10  Ryosuke Niwa  <rniwa@webkit.org>

        [iOS] REGRESSION(r244851): Revealing caret sometimes fails when content inset is used
        https://bugs.webkit.org/show_bug.cgi?id=199662

        Reviewed by Simon Fraser.

        Added a regression test.

        * editing/selection/ios/autoscroll-with-top-content-inset-2-expected.txt: Added.
        * editing/selection/ios/autoscroll-with-top-content-inset-2.html: Added.

2019-07-10  Saam Barati  <sbarati@apple.com>

        [WHLSL Import more JS reference spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199651

        Rubber stamped by Robin Morisset.

        * webgpu/whlsl-builtin-vectors-2-expected.txt: Added.
        * webgpu/whlsl-builtin-vectors-2.html: Added.
        * webgpu/whlsl-builtin-vectors-expected.txt: Added.
        * webgpu/whlsl-builtin-vectors.html: Added.
        * webgpu/whlsl-getter-setter-type-expected.txt: Added.
        * webgpu/whlsl-getter-setter-type.html: Added.
        * webgpu/whlsl-loops-spec-tests-expected.txt: Added.
        * webgpu/whlsl-loops-spec-tests.html: Added.
        * webgpu/whlsl-null-array-ref.html: Added.
        * webgpu/whlsl-override-subscript-expected.txt: Added.
        * webgpu/whlsl-override-subscript.html: Added.
        * webgpu/whlsl-plus-equals-expected.txt: Added.
        * webgpu/whlsl-plus-equals.html: Added.
        * webgpu/whlsl-recursive-structs-expected.txt: Added.
        * webgpu/whlsl-recursive-structs.html: Added.
        * webgpu/whlsl-ternary-spec-test-expected.txt: Added.
        * webgpu/whlsl-ternary-spec-test.html: Added.
        * webgpu/whlsl-wrong-argument-length-expected.txt: Added.
        * webgpu/whlsl-wrong-argument-length.html: Added.
        * webgpu/whlsl-wrong-types-expected.txt: Added.
        * webgpu/whlsl-wrong-types.html: Added.

2019-07-10  Commit Queue  <commit-queue@webkit.org>

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

        Caused perf regression. (Requested by deanj on #webkit).

        Reverted changeset:

        "[iPadOS] Viewport pops while loading sohu.com, xinhuanet.com,
        and various other websites"
        https://bugs.webkit.org/show_bug.cgi?id=199575
        https://trac.webkit.org/changeset/247223

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

        Disable speculative loading if cache is not to be used for the load
        https://bugs.webkit.org/show_bug.cgi?id=199644

        Reviewed by Chris Dumez.

        * http/wpt/fetch/disable-speculative-for-reload-expected.txt: Added.
        * http/wpt/fetch/disable-speculative-for-reload.html: Added.
        * http/wpt/fetch/resources/iframe-with-image.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load-count.py: Added.
        (main):
        * http/wpt/fetch/resources/image-load.py: Added.
        (main):

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

        openDatabase property should not be enumerable on DOMWindow
        https://bugs.webkit.org/show_bug.cgi?id=199672
        <rdar://problem/52809000>

        Reviewed by Chris Dumez.

        * storage/websql/openDatabase-deprecation-expected.txt: Added.
        * storage/websql/openDatabase-deprecation.html: Added.

2019-07-10  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK][WPE] Enable support for CSS_COMPOSITING
        https://bugs.webkit.org/show_bug.cgi?id=199513

        Reviewed by Michael Catanzaro.

        Rebaseline the tests that pass after enabling CSS_COMPOSITING.
        The feature works is most of the cases, but there are still some tests/cases not working.

        There are also some new failures marked related to SVG blending (css3/blending/svg*), but those were already failing before.
        So its unrelated to this change.

        * platform/gtk/TestExpectations:
        * platform/gtk/css3/blending/background-blend-mode-default-value-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-different-image-formats-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-image-color-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-image-image-expected.png:
        * platform/gtk/css3/blending/background-blend-mode-single-layer-no-blending-expected.png:
        * platform/gtk/css3/blending/blend-mode-background-expected.png:
        * platform/gtk/css3/blending/blend-mode-background-expected.txt:
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-overflow-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-overflow-expected.txt: Added.
        * platform/gtk/css3/blending/blend-mode-simple-expected.png: Added.
        * platform/gtk/css3/blending/blend-mode-simple-expected.txt: Added.
        * platform/gtk/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
        * platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
        * platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
        * platform/wpe/TestExpectations:
        * platform/wpe/css3/blending/background-blend-mode-default-value-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-default-value-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-gif-color-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-color-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-color-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-image-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-image-image-expected.txt: Added.
        * platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.png: Added.
        * platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-background-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-background-expected.txt: Copied from LayoutTests/platform/gtk/css3/blending/blend-mode-background-expected.txt.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-overflow-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-overflow-expected.txt: Added.
        * platform/wpe/css3/blending/blend-mode-simple-expected.png: Added.
        * platform/wpe/css3/blending/blend-mode-simple-expected.txt: Added.
        * platform/wpe/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt: Added.
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png: Added.
        * platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt: Added.

2019-07-09  Andres Gonzalez  <andresg_22@apple.com>

        AX: HTML datalist accessibility is not exposed by WebKit
        https://bugs.webkit.org/show_bug.cgi?id=196998
        <rdar://problem/49962521>

        Reviewed by Chris Fleizach.

        * accessibility/datalist-expected.txt: Added.
        * accessibility/datalist.html: Added.

2019-07-09  Saam Barati  <sbarati@apple.com>

        [WHLSL] Import another round of JS spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199647

        Reviewed by Myles C. Maxfield.

        This patch also removes the unneded <!-- webkit-test-runner [ experimental:WebGPUEnabled=true ] -->
        comments in various tests.

        * webgpu/bind-groups.html:
        * webgpu/blit-commands.html:
        * webgpu/map-read-buffers.html:
        * webgpu/map-write-buffers.html:
        * webgpu/msl-harness-test.html:
        * webgpu/pipeline-layouts.html:
        * webgpu/queue-creation.html:
        * webgpu/render-command-encoding.html:
        * webgpu/shader-modules.html:
        * webgpu/textures-textureviews.html:
        * webgpu/whlsl-array-spec-tests.html:
        * webgpu/whlsl-bad-ander-expected.txt: Added.
        * webgpu/whlsl-bad-ander.html: Added.
        * webgpu/whlsl-bad-literals-expected.txt: Added.
        * webgpu/whlsl-bad-literals.html: Added.
        * webgpu/whlsl-bitwise-bool-ops.html:
        * webgpu/whlsl-enum-spec-tests.html:
        * webgpu/whlsl-equality.html:
        * webgpu/whlsl-float-math-expected.txt: Added.
        * webgpu/whlsl-float-math.html: Added.
        * webgpu/whlsl-index-getter-setter-expected.txt: Added.
        * webgpu/whlsl-index-getter-setter.html: Added.
        * webgpu/whlsl-int-bit-math-expected.txt: Added.
        * webgpu/whlsl-int-bit-math.html: Added.
        * webgpu/whlsl-int-literal-compare.html:
        * webgpu/whlsl-make-array-ref-spec-tests-expected.txt: Added.
        * webgpu/whlsl-make-array-ref-spec-tests.html: Added.
        * webgpu/whlsl-matrices-spec-tests.html:
        * webgpu/whlsl-pointer-spec-tests-expected.txt: Added.
        * webgpu/whlsl-pointer-spec-tests.html: Added.
        * webgpu/whlsl-postfix-prefix-expected.txt: Added.
        * webgpu/whlsl-postfix-prefix.html: Added.
        * webgpu/whlsl-return-spec-tests.html:
        * webgpu/whlsl-simple-getter-setter.html:
        * webgpu/whlsl-simple-tests.html:
        * webgpu/whlsl-simple-while-loop.html:
        * webgpu/whlsl-test-harness-test.html:
        * webgpu/whlsl-type-mismatch.html:
        * webgpu/whlsl-uint-bitwise.html:

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

        Unreviewed test gardening, address TestExpectations linter warning.

        * TestExpectations: Delete entry for fast/content-observation since
        the directory doesn't exist anymore.

2019-07-09  Saam Barati  <sbarati@apple.com>

        [WHLSL] Add another group of WHLSL JS reference spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199642

        Reviewed by Robin Morisset.

        * webgpu/whlsl-array-spec-tests-expected.txt: Added.
        * webgpu/whlsl-array-spec-tests.html: Added.
        * webgpu/whlsl-enum-spec-tests-expected.txt: Added.
        * webgpu/whlsl-enum-spec-tests.html: Added.
        * webgpu/whlsl-equality-expected.txt: Added.
        * webgpu/whlsl-equality.html: Added.
        * webgpu/whlsl-matrices-spec-tests-expected.txt: Added.
        * webgpu/whlsl-matrices-spec-tests.html: Added.
        * webgpu/whlsl-return-spec-tests-expected.txt: Added.
        * webgpu/whlsl-return-spec-tests.html: Added.
        * webgpu/whlsl-simple-getter-setter-expected.txt: Added.
        * webgpu/whlsl-simple-getter-setter.html: Added.
        * webgpu/whlsl-simple-while-loop-expected.txt: Added.
        * webgpu/whlsl-simple-while-loop.html: Added.

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

        XHR CORS requests logged twice in the server
        https://bugs.webkit.org/show_bug.cgi?id=199492
        <rdar://problem/52757558>

        Reviewed by Chris Dumez.

        * http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads-expected.txt: Added.
        * http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads.html: Added.
        * http/wpt/fetch/resources/fetch-xhr-load.py: Added.
        (main):
        * http/wpt/fetch/resources/xhr-and-fetch.html: Added.

2019-07-09  Rob Buis  <rbuis@igalia.com>

        Remove rel=subresource tests
        https://bugs.webkit.org/show_bug.cgi?id=199616

        Reviewed by Ryosuke Niwa.

        Remove rel=subresource references by deleting or using rel=prefetch
        instead.

        * TestExpectations:
        * fast/dom/HTMLLinkElement/cachedresource-types.html:
        * http/tests/misc/link-rel-prefetch-and-subresource.html: Removed.
        * webarchive/test-link-rel-subresource-beforeload-expected.webarchive: Removed.
        * webarchive/test-link-rel-subresource-beforeload.html: Removed.

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

        [Pointer Events] Scroll indicators should not show for scrollable content with touch-action: none
        https://bugs.webkit.org/show_bug.cgi?id=199618

        Reviewed by Simon Fraser.

        Add a new test that swipes "overflow: scroll" content which would show scroll indicators without scrolling
        prior to this patch.

        * pointerevents/ios/touch-action-none-no-scroll-indicators-expected.html: Added.
        * pointerevents/ios/touch-action-none-no-scroll-indicators.html: Added.

2019-07-09  Charlie Turner  <cturner@igalia.com>

        [GStreamer] HLS media test gardening
        https://bugs.webkit.org/show_bug.cgi?id=199620

        Unreviewed gardening commit.

        * platform/gtk/TestExpectations:

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

        REGRESSION(r244906): Crash in WebCore::positionOffsetValue
        https://bugs.webkit.org/show_bug.cgi?id=199613
        <rdar://problem/51518172>

        Reviewed by Zalan Bujtas.

        * fast/css/getComputedStyle/sticky-scroll-container-crash-expected.txt: Added.
        * fast/css/getComputedStyle/sticky-scroll-container-crash.html: Added.

2019-07-09  Cathie Chen  <cathiechen@igalia.com>

        Support writing-mode and direction for scrollIntoViewOptions.
        https://bugs.webkit.org/show_bug.cgi?id=161611

        Reviewed by Frédéric Wang and Simon Fraser.

        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt: Removed.

2019-07-08  Saam Barati  <sbarati@apple.com>

        [WHLSL Import 23 new JS reference spec tests
        https://bugs.webkit.org/show_bug.cgi?id=199604

        Reviewed by Myles C. Maxfield.

        This moves some stuff down into whlsl-test-harness which are needed by
        all tests. This also adds a new checkFail that ensures the program never
        runs (e.g, it has a compile error).

        * webgpu/js/whlsl-test-harness.js:
        (async.checkFail):
        (const.webGPUPromiseTest):
        * webgpu/whlsl-bitwise-bool-ops-expected.txt:
        * webgpu/whlsl-bitwise-bool-ops.html:
        * webgpu/whlsl-int-literal-compare-expected.txt: Added.
        * webgpu/whlsl-int-literal-compare.html: Added.
        * webgpu/whlsl-simple-tests-expected.txt: Added.
        * webgpu/whlsl-simple-tests.html: Added.
        * webgpu/whlsl-type-mismatch-expected.txt: Added.
        * webgpu/whlsl-type-mismatch.html: Added.
        * webgpu/whlsl-uint-bitwise-expected.txt: Added.
        * webgpu/whlsl-uint-bitwise.html: Added.

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

        [iOS 13] paste-does-not-fire-promises-while-sanitizing-web-content.html times out when run with multiple iterations
        https://bugs.webkit.org/show_bug.cgi?id=199597

        Reviewed by Tim Horton.

        Make this test more robust to work around bugs in iOS 13 that currently prevent some single tap gestures from
        being recognized, due to conflicts with double tap gesture recognizers.
        -   Make both the subframe and editable element taller, so that they're easier to hit.
        -   Tap twice when attempting to trigger a paste, in hopes that at least one of the taps will be recognized as a
            single click.
        -   Make several event listeners one-shot, to prevent the double tap gesture from triggering paste twice.

        * editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html:

2019-07-08  Keith Miller  <keith_miller@apple.com>

        Enable Intl.PluralRules and Intl.NumberFormatToParts by default
        https://bugs.webkit.org/show_bug.cgi?id=199288

        Reviewed by Yusuke Suzuki.

        Remove runtime flag from testing.

        * js/intl-numberformat-format-to-parts.html:
        * js/intl-pluralrules.html:
        * js/script-tests/intl-numberformat-format-to-parts.js:
        * js/script-tests/intl-pluralrules.js:

2019-07-08  Daniel Bates  <dabates@apple.com>

        [iOS] Support select all in non-editable element
        https://bugs.webkit.org/show_bug.cgi?id=199257
        <rdar://problem/52553667>

        Reviewed by Wenson Hsieh.

        Add a test to ensure that we can perform Select All even when a non-editable element is focused.

        Also disallow testing of Command + A until we fix <https://bugs.webkit.org/show_bug.cgi?id=199475>.
        Otherwise, the test fast/events/ios/key-events-comprehensive/key-events-meta.html fails since
        Command + A now triggers page selection even in a non-editable (the purpose of this change)
        and hence Command + C also triggers the copy command. The triggering of these commands causes
        the test to fail the Command + A and Command + C sub-tests since no keypress event is dispatched
        for the key that triggered these key commands. This is expected, but Command + A should not have
        triggered selection as key-tester.js calls preventDefault() from a keypress handler. That's
        the bug. See <https://bugs.webkit.org/show_bug.cgi?id=199475> for more details.

        * editing/selection/ios/select-all-non-editable-text-using-keyboard-expected.txt: Added.
        * editing/selection/ios/select-all-non-editable-text-using-keyboard.html: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt: Updated result.
        * fast/events/ios/resources/key-tester.js: Disallow Command + A until we fix <https://bugs.webkit.org/show_bug.cgi?id=199475>.
        * platform/ios/TestExpectations: Skip the test until the fix for <rdar://problem/48322899>
        has shipped.

2019-07-08  Daniel Bates  <dabates@apple.com>

        Command + . generates Escape with key identifier Period, should be Escape
        https://bugs.webkit.org/show_bug.cgi?id=199393
        <rdar://problem/52498001>

        Reviewed by Wenson Hsieh.

        Update test result.

        * fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt:

2019-07-08  Charlie Turner  <cturner@igalia.com>

        [GTK] Some media fragment tests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=132248

        Reviewed by Eric Carlson.

        These tests look like they're flakey due to a small stop time. I'm
        surmising that based on the bot's load, we step over the 0.5 mark
        often. When I run this locally, despite running the fragment tests
        100 times, I saw no timeouts.

        I have seen crashes in the flakiness dashboard, but I would prefer
        for these to have separate bugs so that we can squash them rather
        than allowing them to linger. Having them expected to crash means
        we have no crash logs to investigate.

        Updated the baselines in the LayoutTests/ directory to reflect the
        new stop time delta.

        * media/media-fragments/media-fragments.js:
        (pause): Increase stop delta, on simulator builds the stddev
        crossed the 0.5s mark, and I suspect on GTK builds, our bots being
        heavily loaded cause the majority of timeouts.
        * platform/gtk/TestExpectations: Remove expectations.

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

        Add test expectations and baselines for Catalina
        https://bugs.webkit.org/show_bug.cgi?id=199328

        Reviewed by Jonathan Bedard.

        * platfrom/mac/*: Adding Catalina test expectations and baselines.
        * platform/mac-mojave/*: Migrating Mojave baselines from platform/mac directory.

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

        [iPadOS] Viewport pops while loading sohu.com, xinhuanet.com, and various other websites
        https://bugs.webkit.org/show_bug.cgi?id=199575
        <rdar://problem/51842220>

        Reviewed by Simon Fraser.

        Adjusts an existing layout test, and introduces a new test to verify that the shrink-to-fit heuristic is given a
        chance to run before document load. See WebKit ChangeLog for more details.

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

        Tweak this layout test to add the temporarily overflowing element after document load.

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

        Unable to paste from Notes into Excel 365 spreadsheet
        https://bugs.webkit.org/show_bug.cgi?id=199565
        <rdar://problem/43615497>

        Reviewed by Chris Dumez.

        Add a test to verify that promises scheduled right before a programmatic paste resolve in the middle of the
        paste, while creating a document for web content sanitization. See WebCore ChangeLog for more details.

        * editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content-expected.txt: Added.
        * editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html: Added.

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

        Unable to play videos on xfinity.com/stream on macOS Catalina
        https://bugs.webkit.org/show_bug.cgi?id=199576
        <rdar://problem/50101264>

        Reviewed by Alex Christensen.

        Rebaseline existing test.

        * http/wpt/fetch/request-abort-expected.txt:

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

        [Pointer Events] "touch-action: none" does not prevent double-tap-to-zoom
        https://bugs.webkit.org/show_bug.cgi?id=199571
        <rdar://problem/51715002>

        Reviewed by Wenson Hsieh.

        Add two new tests that check that setting "touch-action: none" on an element does not allow double-tap-to-zoom
        and that "touch-action: manipulation" allows it.

        * pointerevents/ios/touch-action-manipulation-double-tap-to-zoom-expected.txt: Added.
        * pointerevents/ios/touch-action-manipulation-double-tap-to-zoom.html: Added.
        * pointerevents/ios/touch-action-none-double-tap-to-zoom-expected.txt: Added.
        * pointerevents/ios/touch-action-none-double-tap-to-zoom.html: Added.
        * pointerevents/utils.js:
        (const.ui.new.UIController.prototype.doubleTapToZoom):

2019-07-08  Charlie Turner  <cturner@igalia.com>

        [GStreamer] media/video-volume.html broken after switching from cubic to linear scaling
        https://bugs.webkit.org/show_bug.cgi?id=199505

        Reviewed by Xabier Rodriguez-Calvar.

        PulseAudio has a conversion process from volume's in
        double-precision to uint32_t volumes. Depending on the environment
        can introduce rounding errors. Be more lenient in our comparison
        code.

        * media/video-volume-expected.txt: Update baseline
        * media/video-volume.html: Compare volume values within a
        reasonable tolerance.

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

        [Pointer Events] Enable only on the most recent version of the supported iOS family
        https://bugs.webkit.org/show_bug.cgi?id=199562
        <rdar://problem/52766511>

        Reviewed by Dean Jackson.

        * js/dom/navigator-maxtouchpoints-expected.txt: Since ENABLE_POINTER_EVENTS is now disabled by default, navigator.maxTouchPoints
        is "undefined" in thed default case.
        * platform/mac/js/dom/navigator-maxtouchpoints-expected.txt: But 0 on macOS.

2019-07-07  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Difficult to control videos on iqiyi.com as the actions are mouse hover
        https://bugs.webkit.org/show_bug.cgi?id=199542
        <rdar://problem/51886813>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/tap-on-1px-height-content-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-1px-height-content.html: Added.
        * fast/events/touch/ios/content-observation/tap-on-1px-width-content-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-1px-width-content.html: Added.

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

        Import css/cssom-view testcases from WPT.
        https://bugs.webkit.org/show_bug.cgi?id=199509

        Reviewed by Frédéric Wang.

        * TestExpectations:
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Added.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Added.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt: Added.
        * tests-options.json:

2019-07-05  Youenn Fablet  <youenn@apple.com> and Simon Fraser  <simon.fraser@apple.com>

        Trigger a compositing update when video element is changing
        https://bugs.webkit.org/show_bug.cgi?id=199522
        <rdar://problem/47297159>

        Reviewed by Simon Fraser.

        * compositing/video/video-update-rendering-expected.txt: Added.
        * compositing/video/video-update-rendering.html: Added.

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

        [iOS] Crash in WebKit::WebPage::positionInformation via Range::startPosition
        https://bugs.webkit.org/show_bug.cgi?id=199503

        Reviewed by Wenson Hsieh.

        Added a regression test for the crash.

        * editing/input/delete-text-in-composition-expected.txt: Added.
        * editing/input/delete-text-in-composition.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.ensurePositionInformationUpdateForElement): Added.

2019-07-02  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Standard library is too big to directly include in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=198186
        <rdar://problem/51288898>

        Reviewed by Saam Barati.

        The standard library doesn't include any matrix constructors that broadcast a single value
        to every field in a matrix. https://bugs.webkit.org/show_bug.cgi?id=199333

        * webgpu/whlsl-matrix.html:

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

        [ContentChangeObserver] REGRESSION (r247015): facebook photo/video upload button is unresponsive to user interaction.
        https://bugs.webkit.org/show_bug.cgi?id=199502
        <rdar://problem/52547473>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition3-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition3.html: Added.

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

        [iOS] Local capture MediaStreamTrack does not render in portrait mode
        https://bugs.webkit.org/show_bug.cgi?id=199519
        <rdar://problem/52689720>

        Reviewed by Eric Carlson.

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

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

        Unreviewed, rolling out r247115.

        Breaks lldbWebKitTester (and by extension, test-webkitpy)

        Reverted changeset:

        "[WHLSL] Standard library is too big to directly include in
        WebCore"
        https://bugs.webkit.org/show_bug.cgi?id=198186
        https://trac.webkit.org/changeset/247115

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

        Click events on outer page are not being dispatched correctly after touch-zooming within an iframe
        https://bugs.webkit.org/show_bug.cgi?id=185001
        <rdar://problem/40569615>

        Reviewed by Simon Fraser.

        Add a new layout test to verify that after interacting with an element with touch event handlers in a cross-
        origin subframe, the user is still able to click on elements on the top level document.

        * http/tests/events/touch/ios/click-after-handling-touch-in-cross-origin-frame.https-expected.txt: Added.
        * http/tests/events/touch/ios/click-after-handling-touch-in-cross-origin-frame.https.html: Added.
        * http/tests/events/touch/ios/resources/touch-target.html: Added.

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

        Touching media controls sometimes shows software keyboard
        https://bugs.webkit.org/show_bug.cgi?id=199490
        <rdar://problem/52076270>

        Reviewed by Eric Carlson.

        Adds a new layout test to verify that the keyboard only appears after a handled touch event if the focused
        element is inside a hidden editable area; otherwise, the keyboard should not be present.

        * fast/events/touch/ios/do-not-show-keyboard-after-preventing-touchstart-expected.txt: Added.
        * fast/events/touch/ios/do-not-show-keyboard-after-preventing-touchstart.html: Added.

        This test passes as long as we didn't begin showing the keyboard after tapping.

        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart-expected.txt:
        * fast/events/touch/ios/show-keyboard-after-preventing-touchstart.html:

        Adjust this existing test to make the focused textarea hidden.

        * resources/ui-helper.js:
        (window.UIHelper.hasInputSession):

        Add a new testing hook to check whether there is an active input session.

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

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999
        <rdar://problem/51979477>

        Reviewed by Dean Jackson.

        Update some WK1-specific expectations.

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

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

        [ContentChangeObserver] didFinishTransition triggers a nested style recalc via isConsideredClickable
        https://bugs.webkit.org/show_bug.cgi?id=199506
        <rdar://problem/52656221>

        Reviewed by Ryosuke Niwa.

        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-and-recursive-update-style-expected.txt: Added.
        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-and-recursive-update-style.html: Added.

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

        [ContentChangeObserver] Limit mouseOut dispatching after synthetic click to YouTube.com
        https://bugs.webkit.org/show_bug.cgi?id=199497
        <rdar://problem/52361019>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html:
        * fast/events/touch/ios/content-observation/mouse-out-event-should-not-fire-on-click-expected.txt: Added.
        * fast/events/touch/ios/content-observation/mouse-out-event-should-not-fire-on-click.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html.

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

        Some layers inside overflow:scroll don't move back to correct positions when the contents are shrunk
        https://bugs.webkit.org/show_bug.cgi?id=199464
        rdar://problem/52613285

        Reviewed by Sam Weinig.

        * compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html: Added.

2019-07-03  Justin Fan  <justin_fan@apple.com>

        [WHLSL] Support float4x4 in test harness
        https://bugs.webkit.org/show_bug.cgi?id=199484

        Reviewed by Myles C. Maxfield.

        Support WHLSL float4x4 parameters in the WHLSL test harness.

        * webgpu/js/whlsl-test-harness.js:
        (isScalar):
        (convertTypeToArrayType):
        (convertTypeToWHLSLType):
        (Data):
        (makeFloat4):
        (makeFloat4x4):
        (processArrays):
        (async.callFloat4x4Function):
        (isVectorType): Deleted. Replaced with isScalar.

        Add some float4x4 sanity checks:
        * webgpu/whlsl-test-harness-test-expected.txt:
        * webgpu/whlsl-test-harness-test.html:

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

        RELEASE_ASSERT in WebCore: WebCore::ScrollingStateTree::insertNode()
        https://bugs.webkit.org/show_bug.cgi?id=199479
        rdar://problem/52392556

        Reviewed by Zalan Bujtas.

        * scrollingcoordinator/scrolling-tree/scrolling-proxy-with-no-scrolling-layer-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/scrolling-proxy-with-no-scrolling-layer.html: Added.

2019-07-02  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Standard library is too big to directly include in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=198186
        <rdar://problem/51288898>

        Reviewed by Saam Barati.

        The standard library doesn't include any matrix constructors that broadcast a single value
        to every field in a matrix. https://bugs.webkit.org/show_bug.cgi?id=199333

        * webgpu/whlsl-matrix.html:

2019-07-03  Daniel Bates  <dabates@apple.com>

        Skip the test added in r246810 as it requires the simulator to be preconfigured with a Pinyin keyboard
        <rdar://problem/52608620>

        We will remove this prerequisite in <https://bugs.webkit.org/show_bug.cgi?id=199472>.

        * platform/ios/TestExpectations:

2019-07-03  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (iOS 13): Tapping an element with a click event handler no longer clears the selection
        https://bugs.webkit.org/show_bug.cgi?id=199430

        Reviewed by Tim Horton.

        Add and adjust layout tests to verify that calling preventDefault() on mousedown on iOS causes an existing
        selection to not be cleared, and that tapping in an element with a click handler clears out the selection.

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

        Renamed from LayoutTests/editing/selection/ios/persist-selection-after-tapping-on-element-with-click-handler.html,
        and adjusted to call preventDefault() on mousedown events instead of click events. Also, remove a bit of
        trailing whitespace.

2019-07-03  Russell Epstein  <russell_e@apple.com>

        Rebaseline fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html
        https://bugs.webkit.org/show_bug.cgi?id=199459

        Unreviewed Test Gardening.

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

2019-07-03  Zalan Bujtas  <zalan@apple.com>

        REGRESSION (r244356): Drop down menus collapse without user input - Ebay.com
        https://bugs.webkit.org/show_bug.cgi?id=199457
        <rdar://problem/52386563>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-async-clickable-change-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-async-clickable-change.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-clickable-change-expected.txt: Added.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-clickable-change.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html.
        * fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html:

2019-07-03  Andres Gonzalez  <andresg_22@apple.com>

        Safari hanging while loading pages - WebCore::AccessibilityRenderObject::visiblePositionRangeForLine.
        https://bugs.webkit.org/show_bug.cgi?id=199434
        <rdar://problem/52475140>

        Reviewed by Chris Fleizach.

        Disabled the tests that were passing for workaround. The workaround had
        to be roll out cause it is hanging Safari.
        * TestExpectations:
        * platform/ios-wk2/TestExpectations:

2019-07-02  Fujii Hironori  <Hironori.Fujii@sony.com>

        imported/blink/animations/display-inline-style-adjust.html isn't a valid ref test
        https://bugs.webkit.org/show_bug.cgi?id=199311

        Reviewed by Simon Fraser.

        These tests are depending on platform font metrics. They were
        created for a Blink bug, doesn't seem useful for WebKit. Just
        removed them.

        * imported/blink/animations/display-inline-style-adjust.html: Deleted.
        * legacy-animation-engine/imported/blink/animations/display-inline-style-adjust.html: Deleted.
        * platform/gtk/TestExpectations: Unmarked them.
        * platform/ios/TestExpectations: Ditto.
        * platform/wpe/TestExpectations: Ditto.

2019-07-02  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Assertion fires when animating the 'class' attribute of an SVG element
        https://bugs.webkit.org/show_bug.cgi?id=197372

        Reviewed by Ryosuke Niwa.

        * svg/animations/animated-bool-externalResourcesRequired-instances-expected.svg: Added.
        * svg/animations/animated-bool-externalResourcesRequired-instances.svg: Added.
        * svg/animations/animated-string-class-instances-expected.svg: Added.
        * svg/animations/animated-string-class-instances.svg: Added.
        * svg/animations/animated-string-href-expected.svg: Added.
        * svg/animations/animated-string-href.svg: Added.

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

        [macOS WK2] REGRESSION (r242313): Layout Test scrollingcoordinator/mac/multiple-fixed.html is a flaky time out and image diff
        https://bugs.webkit.org/show_bug.cgi?id=195635

        Unreviewed test gardening.

        Move test expectation entry to a more specific file.

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

2019-07-02  Saam Barati  <sbarati@apple.com>

        [WHLSL] Change whlsl-two-dimensional-array.html to not be flaky on AMD Radeon Pro GPUs
        https://bugs.webkit.org/show_bug.cgi?id=199424

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-two-dimensional-array.html:

2019-07-02  Andres Gonzalez  <andresg_22@apple.com>

        Enhance support of aria-haspopup per ARIA 1.1 specification.
        https://bugs.webkit.org/show_bug.cgi?id=199216
        <rdar://problem/46221342>

        Reviewed by Chris Fleizach.

        * accessibility/button-with-aria-haspopup-role-expected.txt:
        * accessibility/button-with-aria-haspopup-role.html:
        * accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt:
        * accessibility/ios-simulator/button-with-aria-haspopup-role.html:

2019-07-02  Saam Barati  <sbarati@apple.com>

        [WHLSL] Import bitwise bool tests
        https://bugs.webkit.org/show_bug.cgi?id=199093

        Reviewed by Myles C. Maxfield.

        This patch makes it so that we can mark bools as input and output types in the
        WHLSL harness. Since bool is not something WHLSL itself allows as an entrypoint
        input/output type (because we don't specify its bit pattern), we convert between
        bool and int in the input and output of the function. For now,  we don't support
        a buffer of bools for the input type as a simplification, so we don't have to worry
        about dynamically converting an int buffer to a bool buffer. We could add this
        in the future if we found it helpful, but we don't have a strong reason for supporting
        it right now.
        
        This patch also starts the process of importing the WHLSL test suite by importing bool
        bit op tests.

        * webgpu/js/whlsl-test-harness.js:
        (convertTypeToArrayType):
        (whlslArgumentType):
        (convertToWHLSLOutputType):
        (convertToWHLSLInputType):
        (Data):
        (Harness.prototype.get isWHLSL):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype._setUpArguments):
        (callVoidFunction):
        * webgpu/whlsl-bitwise-bool-ops-expected.txt: Added.
        * webgpu/whlsl-bitwise-bool-ops.html: Added.
        * webgpu/whlsl-test-harness-test-expected.txt:
        * webgpu/whlsl-test-harness-test.html:

2019-07-02  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] Fix CookieJarCurl::getRawCookie.
        https://bugs.webkit.org/show_bug.cgi?id=199300

        Reviewed by Fujii Hironori.

        * http/tests/inspector/page/get-cookies-expected.txt: Added.
        * http/tests/inspector/page/get-cookies.html: Added.
        * http/tests/inspector/page/resources/set-cookie.php: Added.
        * platform/wincairo-wk1/TestExpectations:
        * platform/wincairo/TestExpectations:

2019-07-02  Daniel Bates  <dabates@apple.com>

        [iOS] Cannot tab cycle through credit card fields on antonsvpatisserie.com checkout page
        https://bugs.webkit.org/show_bug.cgi?id=196053
        <rdar://problem/49093034>

        Reviewed by Wenson Hsieh.

        Add some tests.

        * fast/events/ios/tab-cycle-expected.txt: Added.
        * fast/events/ios/tab-cycle.html: Added.
        * fast/events/ios/tab-into-text-field-inside-iframe-expected.txt: Added.
        * fast/events/ios/tab-into-text-field-inside-iframe.html: Added.

2019-07-02  Daniel Bates  <dabates@apple.com>

        Left and right option key has Unidentified key identifier
        https://bugs.webkit.org/show_bug.cgi?id=199392
        <rdar://problem/52497604>

        Reviewed by Wenson Hsieh.

        Update test results.

        * fast/events/ios/key-events-comprehensive/key-events-control-option-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-option-expected.txt:
        * fast/events/ios/key-events-comprehensive/key-events-option-shift-expected.txt:

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

        Crash when adding inline stylesheet to shadow tree in document with null base URL
        https://bugs.webkit.org/show_bug.cgi?id=199400

        Reviewed by Zalan Bujtas.

        * fast/shadow-dom/stylesheet-in-shadow-without-base-url-crash-expected.txt: Added.
        * fast/shadow-dom/stylesheet-in-shadow-without-base-url-crash.html: Added.

2019-07-01  Justin Michaud  <justin_michaud@apple.com>

        [Wasm-References] Disable references by default
        https://bugs.webkit.org/show_bug.cgi?id=199390

        Reviewed by Saam Barati.

        * workers/wasm-references.html:

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

        Web Inspector: REGRESSION(r245498): Timelines: CPU: discontinuities are filled in by the next record
        https://bugs.webkit.org/show_bug.cgi?id=198927

        Reviewed by Matt Baker.

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

2019-07-01  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/blink/fast/multicol/span/overflow-on-viewport.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199387

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

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

        [iOS 13] editing/selection/ios/dispatch-mouse-events-when-modifying-selection-quirk.html fails on trunk
        https://bugs.webkit.org/show_bug.cgi?id=199384

        Reviewed by Tim Horton.

        Adjust this test to show the callout menu by tapping on the caret rect, rather than the center of the editable
        area. Currently, tapping the center of the editable area twice results in a double tap, which fails to trigger
        the callout bar.

        * editing/selection/ios/dispatch-mouse-events-when-modifying-selection-quirk.html:

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

        It should not be possible to trigger a load while in the middle of restoring a page in PageCache
        https://bugs.webkit.org/show_bug.cgi?id=199190
        <rdar://problem/52114552>

        Reviewed by Brady Eidson.

        Add layout test coverage.

        * http/tests/security/navigate-when-restoring-cached-page-expected.txt: Added.
        * http/tests/security/navigate-when-restoring-cached-page.html: Added.
        * http/tests/security/resources/navigate-when-restoring-cached-page-frame.html: Added.
        * http/tests/security/resources/navigate-when-restoring-cached-page-victim.html: Added.

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

        Unreviewed, rolling out r246844.

        Broke 12 tests in imported/w3c/web-platform-
        tests/pointerevents/

        Reverted changeset:

        "[Pointer Events] Respect pointer capture when dispatching
        mouse boundary events and updating :hover"
        https://bugs.webkit.org/show_bug.cgi?id=198999
        https://trac.webkit.org/changeset/246844

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

        Unreviewed, rolling out r246958.

        Broke inspector/dom/getAccessibilityPropertiesForNode.html

        Reverted changeset:

        "Enhance support of aria-haspopup per ARIA 1.1 specification."
        https://bugs.webkit.org/show_bug.cgi?id=199216
        https://trac.webkit.org/changeset/246958

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

        [iOS] Exiting from fullscreen scrolls to top of page
        https://bugs.webkit.org/show_bug.cgi?id=199338
        <rdar://problem/51273017>

        Reviewed by Jer Noble.

        * fullscreen/fullscreen-restore-scroll-position-expected.txt: Added.
        * fullscreen/fullscreen-restore-scroll-position.html: Added.

2019-07-01  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/mozilla/svg/text/selectSubString.svg is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199370

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

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

        Tapping on the bottom part of youtube video behaves as if controls were visible
        https://bugs.webkit.org/show_bug.cgi?id=199349
        <rdar://problem/51955744>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition2-expected.txt: Added.
        * fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition2.html: Added.

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

        iOS: REGRESSION(async scroll): Caret doesn't scroll when scrolling textarea
        https://bugs.webkit.org/show_bug.cgi?id=198217
        <rdar://problem/51097296>

        Reviewed by Simon Fraser.

        Add a new layout test to check that the text selection views are updated after scrolling in a fast overflow
        scrolling container.

        * editing/selection/ios/update-selection-after-overflow-scroll-expected.txt: Added.
        * editing/selection/ios/update-selection-after-overflow-scroll.html: Added.

2019-06-30  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed, rolling out r246959.

        svg/clip-path/clip-hidpi.svg is flaky on mac-wk2-ews

        Reverted changeset:

        "LayoutTests svg/clip-path/clip-hidpi.svg isn't working as
        expected due to a syntax error"
        https://bugs.webkit.org/show_bug.cgi?id=199313
        https://trac.webkit.org/changeset/246959

2019-06-30  Fujii Hironori  <Hironori.Fujii@sony.com>

        LayoutTests svg/clip-path/clip-hidpi.svg isn't working as expected due to a syntax error
        https://bugs.webkit.org/show_bug.cgi?id=199313

        Reviewed by Carlos Garcia Campos.

        * svg/clip-path/clip-hidpi.svg: Fix the syntax error by replacing '->' with '=>'.
        Call testRunner.waitUntilDone() before testRunner.notifyDone().
        * svg/clip-path/clip-hidpi-expected.svg: Call testRunner.setBackingScaleFactor().

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

        Enhance support of aria-haspopup per ARIA 1.1 specification.
        https://bugs.webkit.org/show_bug.cgi?id=199216
        <rdar://problem/46221342>

        Reviewed by Chris Fleizach.

        * accessibility/button-with-aria-haspopup-role-expected.txt:
        * accessibility/button-with-aria-haspopup-role.html:
        * accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt:
        * accessibility/ios-simulator/button-with-aria-haspopup-role.html:

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

        Remove a PLATFORM(IOS_FAMILY) related to repaint offsets in composited scrolling layers
        https://bugs.webkit.org/show_bug.cgi?id=199342

        Reviewed by Zalan Bujtas.

        * fast/events/touch/ios/touch-event-regions/scrolled-overflow-expected.txt: Added.
        * fast/events/touch/ios/touch-event-regions/scrolled-overflow.html: Added.

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

        [Text autosizing][iPadOS] bing.com is hard to read even with boosted text because of the line height
        https://bugs.webkit.org/show_bug.cgi?id=199318
        <rdar://problem/51826096>

        Reviewed by Wenson Hsieh.

        * fast/text-autosizing/ios/idempotentmode/line-height-boosting-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/line-height-boosting.html: Added.

2019-06-27  Ryosuke Niwa  <rniwa@webkit.org>

        Fix the test added in r246868 on iOS debug simulator.

        * editing/pasteboard/paste-contents-with-side-effects.html:

2019-06-27  Daniel Bates  <dabates@apple.com>

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

        Reviewed by Wenson Hsieh.

        Add a test to ensure that pressing Command + A performs a "select all" even when there
        is an existing range selection.

        * fast/events/ios/select-all-with-existing-selection-expected.txt: Added.
        * fast/events/ios/select-all-with-existing-selection.html: Added.

2019-06-27  Russell Epstein  <russell_e@apple.com>

        Layout Test fast/parser/parser-yield-timing.html was flaky due to strict tolerance, increased tolerance.
        https://bugs.webkit.org/show_bug.cgi?id=199280

        Reviewed by Tim Horton.

        * fast/parser/parser-yield-timing-expected.txt:
        * fast/parser/parser-yield-timing.html:
        * platform/mac-wk1/TestExpectations:

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

        REGRESSION (r246888): fast/dom/navigator-detached-no-crash.html failing on Apple High Sierra Release WK2 (Tests)
        https://bugs.webkit.org/show_bug.cgi?id=199284

        Unreviewed test gardening.

        * platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt: Rebaseline test after r246888.

2019-06-27  Russell Epstein  <russell_e@apple.com>

        Layout Test fast/parser/parser-yield-timing.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199280

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        pointerevents/ios/pointer-events-implicit-capture.html fails on iOS
        https://bugs.webkit.org/show_bug.cgi?id=199259

        Reviewed by Dean Jackson.

        The assumptions made by this test were incorrect. The "gotpointercapture" event should not be dispatched
        until the next pointer event is dispatched after setting pointer capture. Even though pointer capture is
        set implicitly on "pointerdown" on non-mouse devices, the event will only be fired once a "pointermove" or
        "pointerup" event is dispatched.

        * pointerevents/ios/pointer-events-implicit-capture.html:

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

        Unreviewed, fix test failures after r246876.

        * inspector/worker/console-basic-expected.txt:

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

        Unreviewed test gardening, rebaseline test after r246876.

        * inspector/worker/console-basic-expected.txt:

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

        Unreviewed. Skip WebGPU tests on High Sierra since WebGPU is disabled.

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

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

        REGRESSION (touch-action): Can't scroll vertically when touching a horizontally-scrollable element on instagram.com
        https://bugs.webkit.org/show_bug.cgi?id=199268
        <rdar://problem/52246473>

        Reviewed by Antoine Quint.

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

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

        Web Inspector: throw an error if console.count/console.countReset is called with an object that throws an error from toString
        https://bugs.webkit.org/show_bug.cgi?id=199252

        Reviewed by Joseph Pecoraro.

        * inspector/console/console-count.html:
        * inspector/console/console-count-expected.txt:
        * inspector/console/console-api-expected.txt:

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

        [WHLSL] Implement arrays and MakeArrayReference
        https://bugs.webkit.org/show_bug.cgi?id=198414

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-huge-array-expected.txt: Added.
        * webgpu/whlsl-huge-array.html: Added.
        * webgpu/whlsl-make-array-reference-expected.txt: Added.
        * webgpu/whlsl-make-array-reference.html: Added.
        * webgpu/whlsl-simple-arrays-expected.txt: Added.
        * webgpu/whlsl-simple-arrays.html: Added.
        * webgpu/whlsl-two-dimensional-array-expected.txt: Added.
        * webgpu/whlsl-two-dimensional-array.html: Added.

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

        [Async overflow scrolling] Fix missing or misplaced content inside overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=199253

        Reviewed by Zalan Bujtas.

        * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * compositing/scrolling/async-overflow-scrolling/hidden-relative-layer-content-in-scroller-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/hidden-relative-layer-content-in-scroller.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller.html: Added.
        * compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller.html: Added.
        * compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:

2019-06-26  Ryosuke Niwa  <rniwa@webkit.org>

        ReplacementFragment should not have script observable side effects
        https://bugs.webkit.org/show_bug.cgi?id=199147

        Reviewed by Wenson Hsieh.

        Added regression tests.

        * editing/pasteboard/paste-contents-with-side-effects-expected.txt: Added.
        * editing/pasteboard/paste-contents-with-side-effects.html: Added.

2019-06-26  Andy Estes  <aestes@apple.com>

        [Payment Request] Set state to Closed when show() is called during an active session
        https://bugs.webkit.org/show_bug.cgi?id=199239

        Reviewed by Alex Christensen.

        Copied from web-platform-tests/payment-request/payment-is-showing.https.html and modified to
        use UIHelper instead of test_driver.bless.

        * http/tests/paymentrequest/payment-is-showing.https-expected.txt: Added.
        * http/tests/paymentrequest/payment-is-showing.https.html: Added.
        * http/tests/paymentrequest/resources/blank.html: Added.

2019-06-26  Russell Epstein  <russell_e@apple.com>

        Layout Test http/tests/performance/performance-resource-timing-resourcetimingbufferfull-shrinking-buffer-crash.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199242

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

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

        [iPadOS] eddm.usps.com scrolls horizontally due to explicit width set in viewport meta tag
        https://bugs.webkit.org/show_bug.cgi?id=199219
        <rdar://problem/50425765>

        Reviewed by Tim Horton.

        Add a new test to verify that if the meta viewport tag specifies a wide fixed width value, we will still try to
        shrink the page down to fit within the viewport.

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

2019-06-26  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Implement console.countReset
        https://bugs.webkit.org/show_bug.cgi?id=199200

        Reviewed by Devin Rousso.

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

2019-06-26  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=199012

        Reviewed by Saam Barati.

        Make the tests still pass if the machine doesn't support WebGPU.

        * webgpu/adapter-options-expected.txt: Removed.
        * webgpu/adapter-options.html: Removed.
        * webgpu/bind-groups.html:
        * webgpu/blend-color-triangle-strip-expected.html:
        * webgpu/blend-color-triangle-strip.html:
        * webgpu/blend-triangle-strip-expected.html:
        * webgpu/blend-triangle-strip.html:
        * webgpu/blit-commands-expected.html:
        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races-expected.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/color-write-mask-triangle-strip-expected.html:
        * webgpu/color-write-mask-triangle-strip.html:
        * webgpu/command-buffers.html:
        * webgpu/depth-enabled-triangle-strip-expected.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles-expected.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/js/create-worker-device.js: Removed.
        * webgpu/js/webgpu-functions.js:
        (drawWhiteSquareOnBlueBackgroundInSoftware):
        (drawGreenSquareInSoftware):
        (drawGreenAndBlueCheckerboardInSoftware):
        (async.mapWriteDataToBuffer):
        * webgpu/map-read-buffers.html:
        * webgpu/map-write-buffers.html:
        * webgpu/pipeline-layouts.html:
        * webgpu/propertyresolver/ander-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/ander-abstract-lvalue.html:
        * webgpu/propertyresolver/ander-expected.html:
        * webgpu/propertyresolver/ander-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/ander-lvalue-expected.html:
        * webgpu/propertyresolver/ander-lvalue.html:
        * webgpu/propertyresolver/ander.html:
        * webgpu/propertyresolver/getter-expected.html:
        * webgpu/propertyresolver/getter.html:
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-ander-expected.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-ander-lvalue.html:
        * webgpu/propertyresolver/indexer-ander.html:
        * webgpu/propertyresolver/indexer-getter-expected.html:
        * webgpu/propertyresolver/indexer-getter.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-setter-expected.html:
        * webgpu/propertyresolver/indexer-setter-lvalue-expected.html:
        * webgpu/propertyresolver/indexer-setter-lvalue.html:
        * webgpu/propertyresolver/indexer-setter.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-expected.html:
        * webgpu/propertyresolver/setter-abstract-lvalue.html:
        * webgpu/propertyresolver/setter-lvalue-expected.html:
        * webgpu/propertyresolver/setter-lvalue.html:
        * webgpu/queue-creation.html:
        * webgpu/render-command-encoding.html:
        * webgpu/render-pipelines.html:
        * webgpu/shader-modules.html:
        * webgpu/simple-triangle-strip-expected.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/texture-triangle-strip-expected.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/textures-textureviews.html:
        * webgpu/vertex-buffer-triangle-strip-expected.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/viewport-scissor-rect-triangle-strip-expected.html:
        * webgpu/viewport-scissor-rect-triangle-strip.html:
        * webgpu/webgpu-enabled-expected.txt: Removed.
        * webgpu/webgpu-enabled-in-worker-expected.txt: Removed.
        * webgpu/webgpu-enabled-in-worker.html: Removed.
        * webgpu/webgpu-enabled.html: Removed.
        * webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html:
        * webgpu/whlsl-arbitrary-vertex-attribute-locations.html:
        * webgpu/whlsl-buffer-fragment-expected.html:
        * webgpu/whlsl-buffer-fragment.html:
        * webgpu/whlsl-buffer-length-expected.txt:
        * webgpu/whlsl-buffer-length.html:
        * webgpu/whlsl-buffer-vertex-expected.html:
        * webgpu/whlsl-buffer-vertex.html:
        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt:
        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html:
        * webgpu/whlsl-compute-expected.txt:
        * webgpu/whlsl-compute.html:
        * webgpu/whlsl-dereference-pointer-should-type-check-expected.html:
        * webgpu/whlsl-dereference-pointer-should-type-check.html:
        * webgpu/whlsl-do-while-loop-break-expected.html:
        * webgpu/whlsl-do-while-loop-break.html:
        * webgpu/whlsl-do-while-loop-continue-expected.html:
        * webgpu/whlsl-do-while-loop-continue.html:
        * webgpu/whlsl-do-while-loop-expected.html:
        * webgpu/whlsl-do-while-loop.html:
        * webgpu/whlsl-dont-crash-parsing-enum-expected.html:
        * webgpu/whlsl-dont-crash-parsing-enum.html:
        * webgpu/whlsl-dot-expressions-expected.html:
        * webgpu/whlsl-dot-expressions.html:
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt:
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-2-expected.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-2.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-3-expected.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-3.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-expected.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime.html:
        * webgpu/whlsl-expected.html:
        * webgpu/whlsl-loops-break-expected.html:
        * webgpu/whlsl-loops-break.html:
        * webgpu/whlsl-loops-continue-expected.html:
        * webgpu/whlsl-loops-continue.html:
        * webgpu/whlsl-loops-expected.html:
        * webgpu/whlsl-loops.html:
        * webgpu/whlsl-matrix-2-expected.txt:
        * webgpu/whlsl-matrix-2.html:
        * webgpu/whlsl-matrix-expected.txt:
        * webgpu/whlsl-matrix.html:
        * webgpu/whlsl-nested-dot-expression-rvalue-expected.html:
        * webgpu/whlsl-nested-dot-expression-rvalue.html:
        * webgpu/whlsl-nested-loop-expected.html:
        * webgpu/whlsl-nested-loop.html:
        * webgpu/whlsl-null-dereference-expected.txt:
        * webgpu/whlsl-null-dereference.html:
        * webgpu/whlsl-oob-access-expected.txt:
        * webgpu/whlsl-oob-access.html:
        * webgpu/whlsl-read-modify-write-high-zombies-expected.txt:
        * webgpu/whlsl-read-modify-write-high-zombies.html:
        * webgpu/whlsl-return-local-variable-expected.html:
        * webgpu/whlsl-return-local-variable.html:
        * webgpu/whlsl-store-to-property-updates-properly-expected.html:
        * webgpu/whlsl-store-to-property-updates-properly.html:
        * webgpu/whlsl-textures-getdimensions-expected.txt:
        * webgpu/whlsl-textures-getdimensions.html:
        * webgpu/whlsl-textures-load-expected.html:
        * webgpu/whlsl-textures-load.html:
        * webgpu/whlsl-textures-sample-expected.html:
        * webgpu/whlsl-textures-sample.html:
        * webgpu/whlsl-while-loop-break-expected.html:
        * webgpu/whlsl-while-loop-break.html:
        * webgpu/whlsl-while-loop-continue-expected.html:
        * webgpu/whlsl-while-loop-continue.html:
        * webgpu/whlsl-zero-initialize-values-2-expected.html:
        * webgpu/whlsl-zero-initialize-values-2.html:
        * webgpu/whlsl-zero-initialize-values-expected.html:
        * webgpu/whlsl-zero-initialize-values.html:
        * webgpu/whlsl.html:

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

        Incorrect clippping with overflow:scroll inside oveflow:hidden with border-radius
        https://bugs.webkit.org/show_bug.cgi?id=199135
        rdar://problem/51882383

        Reviewed by Zalan Bujtas.

        * compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container.html: Added.

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

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999
        <rdar://problem/51979477>

        Reviewed by Dean Jackson.

        Update some WK1-specific expectations.

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

2019-06-26  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/mozilla/svg/text/selectSubString-2.svg is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199196

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

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

        [ContentChangeObserver] Dispatch synthetic mouse event asynchronously in completePendingSyntheticClickForContentChangeObserver
        https://bugs.webkit.org/show_bug.cgi?id=199220
        <rdar://problem/51787961>

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-crash-expected.txt: Added.
        * fast/events/touch/ios/content-observation/animation-end-with-visiblity-change-crash.html: Added.

2019-06-25  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/blink/editing/selection/deleteFromDocument-crash.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199213

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-06-25  Justin Fan  <justin_fan@apple.com>

        [WHLSL] Make whlsl-test-harness actually generate WHLSL shaders by default
        https://bugs.webkit.org/show_bug.cgi?id=199028

        Reviewed by Saam Barati.

        whlsl-test-harness.js now generates WHLSL shaders and invokes WebKit's WHLSL compiler.
        MSL mode remains to facilitate further harness tesing.
        In addition, if WebGPU is not supported, synchronous Harness methods do nothing.
        Asynchronous methods will throw a WebGPUUnsupportedError that "rejects" the returned Promise.

        * TestExpectations:
        * platform/mac/TestExpectations:
        * webgpu/js/whlsl-test-harness.js:
        (WebGPUUnsupportedError): Layout tests should catch these to fail gracefully if WebGPU is not supported.
        (Data):
        (Data.prototype.async.getArrayBuffer):
        (Data.prototype.get isBuffer): Renamed from isPointer.
        (Harness):
        (Harness.prototype.async.requestDevice): Can be used to re-acquire a GPUDevice.
        (Harness.prototype.set isWHLSL): Determines whether harness will generate WHLSL or MSL shaders.
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.callVoidFunction):
        (Harness.prototype.get device):
        (Harness.prototype._clearResults):
        (Harness.prototype._setUpArguments):
        (Harness.prototype._callFunction):
        (Data.prototype.get isPointer): Deleted.
        (Harness.prototype._initialize): Deleted.
        (Harness.prototype.async.callVoidFunction): Deleted.
        (harness._initialize.async): Deleted.
        * webgpu/msl-harness-test-expected.txt: Renamed from LayoutTests/webgpu/whlsl-harness-test-expected.txt.
        * webgpu/msl-harness-test.html: Copied from LayoutTests/webgpu/whlsl-harness-test.html.
        * webgpu/whlsl-test-harness-test-expected.html: Added.
        * webgpu/whlsl-test-harness-test.html: Renamed from LayoutTests/webgpu/whlsl-harness-test.html.

2019-06-25  Daniel Bates  <dabates@apple.com>

        Non-editable text selections should be modifiable with hardware keyboard
        https://bugs.webkit.org/show_bug.cgi?id=199204
        <rdar://problem/51651496>

        Reviewed by Wenson Hsieh.

        Add a test, skipped for now, until we have the fix for <rdar://problem/48322899>.

        * editing/selection/ios/select-non-editable-text-using-keyboard-expected.txt: Added.
        * editing/selection/ios/select-non-editable-text-using-keyboard.html: Added.
        * platform/ios/TestExpectations:
        * resources/ui-helper.js:
        (window.UIHelper.callFunctionAndWaitForEvent): Added.

2019-06-25  Daniel Bates  <dabates@apple.com>

        [iOS] Should not process key events in non-editable elements using IME
        https://bugs.webkit.org/show_bug.cgi?id=199122
        <rdar://problem/52006654>

        Reviewed by Brent Fulgham.

        Add a test to ensure that we do not process key events as being handled by the Input Manager
        when using a Chinese keyboard layout and targeting a non-editable element.

        * fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt: Added.
        * fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard.html: Added.

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

        [macOS WK2] REGRESSION (r242313): Layout Test scrollingcoordinator/mac/multiple-fixed.html is a flaky time out and image diff
        https://bugs.webkit.org/show_bug.cgi?id=195635

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2019-06-25  John Wilander  <wilander@apple.com>

        Migrate LayoutTests/http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store* test cases to setEnableFeature() and jsTestIsAsync
        https://bugs.webkit.org/show_bug.cgi?id=199180
        <rdar://problem/52085369>

        Reviewed by Brent Fulgham.

        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-expected.txt:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-expected.txt:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html:
        * http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html:

2019-06-25  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/mozilla/svg/text/textpath-selection.svg is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199196

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

2019-06-25  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Implement console.timeLog
        https://bugs.webkit.org/show_bug.cgi?id=199184

        Reviewed by Devin Rousso.

        * inspector/console/console-time-expected.txt:
        * inspector/console/console-time.html:
        Add new timeLog tests.

        * js/console-expected.txt:
        New timeLog method.

        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        Unskip test.

2019-06-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed test gardening

        * TestExpectations: Added webkit.org/b/184066 to imported/w3c/web-platform-tests/IndexedDB/nested-cloning-large-multiple.html and others.
        Added webkit.org/b/184065 to imported/w3c/web-platform-tests/IndexedDB/keypath-exceptions.htm.

2019-06-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo] Unreviewed test gardening

        * platform/wincairo/TestExpectations: Added webkit.org/b/199186 to fonts/use-typo-metrics-1.html.
        Removed duplicated storage/indexeddb/key-type-array-private.html and storage/indexeddb/key-type-array.html.

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

        [Text autosizing] [iPadOS] Revise our heuristics to determine idempotent text autosizing candidates
        https://bugs.webkit.org/show_bug.cgi?id=198763
        <rdar://problem/51826266>

        Reviewed by Simon Fraser.

        Rebaseline an existing text autosizing test, and introduce some new test cases that correspond to several common
        patterns of autosizable (or non-autosizable) text on websites that were surveyed.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html:
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html: Renamed from LayoutTests/fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip.html.

        Rename this existing layout test too, to avoid using the term "skip" in the name of a layout test.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip-expected.txt: Removed.

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

        REGRESSION (r246725 ): Crashes on twitch.tv
        https://bugs.webkit.org/show_bug.cgi?id=199176

        Reviewed by Zalan Bujtas.

        * scrollingcoordinator/scrolling-tree/scroller-with-negative-z-child-expected.txt: Added.
        * scrollingcoordinator/scrolling-tree/scroller-with-negative-z-child.html: Added.

2019-06-24  Alexey Shvayka  <shvaikalesh@gmail.com>

        Add Array.prototype.{flat,flatMap} to unscopables
        https://bugs.webkit.org/show_bug.cgi?id=194322

        Reviewed by Keith Miller.

        * js/array-unscopables-properties-expected.txt:
        * js/script-tests/array-unscopables-properties.js:

2019-06-24  Jer Noble  <jer.noble@apple.com>

        iOS 12.2 Drawing portrait video to canvas is sideways
        https://bugs.webkit.org/show_bug.cgi?id=196772
        <rdar://problem/49781802>

        Reviewed by Eric Carlson.

        * media/content/no-rotation.mp4:
        * media/media-source/only-bcp47-language-tags-accepted-as-valid-expected.txt:
        * media/video-orientation-canvas-expected.txt: Added.
        * media/video-orientation-canvas.html: Added.
        * media/video-test.js:
        (waitFor):

2019-06-24  Daniel Bates  <dabates@apple.com>

        m_focusedElement != &element in WebPage::elementDidBlur() sometimes
        https://bugs.webkit.org/show_bug.cgi?id=198928
        <rdar://problem/51814327>

        Reviewed by Brent Fulgham.

        Update test result now that we do not mutate the focused frame on tap.

        * TestExpectations: Skip problematic test editing/deleting/smart-delete-paragraph-003.html;
        See <https://bugs.webkit.org/show_bug.cgi?id=198928#c16>, <https://bugs.webkit.org/show_bug.cgi?id=198928#c17>,
        and <https://bugs.webkit.org/show_bug.cgi?id=199039> for more details.
        * fast/events/ios/should-be-able-to-dismiss-form-accessory-after-tapping-outside-iframe-with-focused-field-expected.txt:

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

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

        Reviewed by Dean Jackson.

        This test now works reliably, even if it fails the actual assertions.

        * platform/mac/TestExpectations:

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

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

        Reviewed by Dean Jackson.

        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        * platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        * platform/mac-highsierra/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Removed.
        Since we've fixed the issue with event dispatch in WK1, we can remove these platform-specific expectations.
        * platform/mac/TestExpectations: We no longer skip this test which works reliably.
        * pointerevents/mouse/pointer-capture.html: We modify this test to correctly expect the "gotpointercapture" event only once the next
        pointer event has been dispatched.

2019-06-24  Greg Doolittle  <gr3g@apple.com>

        Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt>
        https://bugs.webkit.org/show_bug.cgi?id=194754

        Reviewed by Chris Fleizach.

        * accessibility/img-alt-attribute-unassigned-value-expected.txt: Added.
        * accessibility/img-alt-attribute-unassigned-value.html: Added.
        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:

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

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999
        <rdar://problem/51979477>

        Unreviewed.

        Rolling back all changes made for this bug (r246728 + r246716 + r246674) as it regressed one test
        (imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame.html).

        * platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Added.
        * platform/mac-highsierra/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt:
        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_click_during_capture-expected.txt: Removed.
        * 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:

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

        [WinCairo] Unreviewed test gardening

        * platform/wincairo/TestExpectations:

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

        [Async overflow scroll] Clipped composited layers inside overflow scroll jitter and get incorrectly clipped
        https://bugs.webkit.org/show_bug.cgi?id=199133
        rdar://problem/43614439

        Reviewed by Antti Koivisto.
        
        New baselines for:
        - clipping layers no longer have offsetFromRenderer(), which they didn't need.
        - positioned nodes don't print scrollBehavior (they are always "Stationary")
        - "Moves" positioned nodes are replaced with overflow scroll proxy nodes

        * compositing/backing/backing-store-attachment-empty-keyframe-expected.txt:
        * compositing/geometry/clip-expected.txt:
        * compositing/geometry/clip-inside-expected.txt:
        * compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
        * compositing/layer-creation/clipping-scope/nested-scroller-overlap.html:
        * compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * compositing/overflow/clip-descendents-expected.txt:
        * compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants.html:
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll.html: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested.html: Added.
        * compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer.html: Added.
        * compositing/scrolling/async-overflow-scrolling/layer-in-overflow.html: Added.
        * compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
        * compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness.html:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
        * platform/ios-wk2/compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt: Added.
        * platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt: Added.
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
        * platform/ios-wk2/compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt: Copied from LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt: Copied from LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt.
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-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/nested-overflow-scroll-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:
        * platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
        * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
        * scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt.
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt.
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested.html: Added.
        * scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow.html: Added.
        * scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
        * scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
        * scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
        * scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:

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

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

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

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

        Unreviewed test gardening.

        This test some being flaky as of r245809, the fix for wkb.ug/198191.

        * platform/mac/TestExpectations:

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

        Accessibility objects contained in links should honor the aria-haspopup attribute in the ancestor link.
        https://bugs.webkit.org/show_bug.cgi?id=199107
        <rdar://problem/43663611>

        Reviewed by Chris Fleizach.

        * accessibility/element-haspopup-expected.txt:
        * accessibility/element-haspopup.html: Added cases for a <p> element contained within <a>.
        * accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt: Added.
        * accessibility/ios-simulator/button-with-aria-haspopup-role.html: Added. Existed for MacOS and now also for iOS.
        * accessibility/ios-simulator/element-haspopup-expected.txt: Copied from LayoutTests/accessibility/element-haspopup-expected.txt.
        * accessibility/ios-simulator/element-haspopup.html: Added.

2019-06-21  Sihui Liu  <sihui_liu@apple.com>

        openDatabase should return an empty object when WebSQL is disabled
        https://bugs.webkit.org/show_bug.cgi?id=198805

        Reviewed by Geoffrey Garen.

        Modify test expectation as openDatabase is not a function but an attribute of window now.

        * js/dom/global-function-resolve-expected.txt:
        * js/dom/script-tests/global-function-resolve.js:

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

        [WHLSL] Code that accesses an undefined variable crashes
        https://bugs.webkit.org/show_bug.cgi?id=198775

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-use-undefined-variable-2-expected.txt: Added.
        * webgpu/whlsl-use-undefined-variable-2.html: Added.
        * webgpu/whlsl-use-undefined-variable-expected.txt: Added.
        * webgpu/whlsl-use-undefined-variable.html: Added.

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

        Unreviewed, rolling out r246611.

        Introduced a flakey test.

        Reverted changeset:

        "iOS 12.2 Drawing portrait video to canvas is sideways"
        https://bugs.webkit.org/show_bug.cgi?id=196772
        https://trac.webkit.org/changeset/246611

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

        [WHLSL] read modify write expressions do no work as expected
        https://bugs.webkit.org/show_bug.cgi?id=195864

        Unreviewed test gardening.

        * webgpu/whlsl-read-modify-write-expected.txt: Added.

2019-06-21  Tim Horton  <timothy_horton@apple.com>

        Preview of <picture> element doesn't match element bounds
        https://bugs.webkit.org/show_bug.cgi?id=199049
        <rdar://problem/51474402>

        Reviewed by Simon Fraser.

        * fast/text-indicator/text-indicator-uses-img-size-inside-picture-expected.txt: Added.
        * fast/text-indicator/text-indicator-uses-img-size-inside-picture.html: Added.

2019-06-21  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

        Reviewed by Dean Jackson.

        Add a new test that checks that calling preventDefault() within a "pointerdown" event handler correctly prevents
        the dispatch of compatibility mouse events even with a slow tap. 

        * pointerevents/ios/pointer-events-no-mousedown-when-prevent-default-called-on-pointerdown-expected.txt: Added.
        * pointerevents/ios/pointer-events-no-mousedown-when-prevent-default-called-on-pointerdown.html: Added.

2019-06-21  Russell Epstein  <russell_e@apple.com>

        Layout Test animations/change-one-anim.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=190882

        Unreviewed Test Gardening.

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

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

        Safari crashes after ~2028 OfflineAudioContext objects are created (they never get garbage collected, consuming a thread each)
        https://bugs.webkit.org/show_bug.cgi?id=198964
        <rdar://problem/51891520>

        Reviewed by Jer Noble.

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

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

        Unreviewed, rolling out r246655.

        Introduced a failing test

        Reverted changeset:

        "Web Inspector: AXI: Audit: image label test is throwing
        spurious errors on elements with existing alt attr, but no
        value: <img alt>"
        https://bugs.webkit.org/show_bug.cgi?id=194754
        https://trac.webkit.org/changeset/246655

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

        [WHLSL] read modify write expressions do no work as expected
        https://bugs.webkit.org/show_bug.cgi?id=195864

        Reviewed by Saam Barati.

        * webgpu/whlsl-read-modify-write.html: Added.

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

        Unreviewed GTK gardening. Rebaseline css-dark-mode/default-colors.html.

        * platform/gtk/TestExpectations:
        * platform/gtk/css-dark-mode/default-colors-expected.txt:

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

        Unreviewed GTK gardening. Skip touch event tests.

        Since r245788 touch events support is enabled at runtime depending on whether there's an actual touch device
        attached or not. We need to skip the tests in the bots since they don't have a touch screen.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/events/event-attribute-expected.txt: Removed.
        * platform/gtk/fast/events/touch/document-create-touch-list-expected.txt: Removed.

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

        [Pointer Events] Respect pointer capture when dispatching mouse boundary events and updating :hover
        https://bugs.webkit.org/show_bug.cgi?id=198999

        Reviewed by Dean Jackson.

        Record progressions in two WPT tests and mark updated failures in two other WPT tests.

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

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

        fast/events/ios/click-event-and-display-contents.html times out on iPad
        https://bugs.webkit.org/show_bug.cgi?id=199068
        <rdar://problem/51899547>

        Reviewed by Dean Jackson.

        Querying the bounds of a "display: contents" element will always return 0 width and height. So let's position the element at 0,0
        so that we can send a tap at that location and reliably tap on that element.

        * fast/events/ios/click-event-and-display-contents.html:

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

        Make it possible to include clipping in GraphicsLayer tree dumps
        https://bugs.webkit.org/show_bug.cgi?id=199096

        Reviewed by Zalan Bujtas.

        * compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt:
        * compositing/clipping/border-radius-async-overflow-clipping-layer.html:
        * compositing/clipping/border-radius-overflow-hidden-stacking-context-expected.txt:
        * compositing/clipping/border-radius-overflow-hidden-stacking-context.html:
        * platform/mac-wk1/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt:

2019-06-20  Greg Doolittle  <gr3g@apple.com>

        Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt>
        https://bugs.webkit.org/show_bug.cgi?id=194754

        Reviewed by Chris Fleizach.

        * accessibility/img-alt-attribute-unassigned-value-expected.txt: Added.
        * accessibility/img-alt-attribute-unassigned-value.html: Added.
        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:

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

        [WHLSL] Property resolver needs to recurse on newValueExpression for RMW operations
        https://bugs.webkit.org/show_bug.cgi?id=199037

        Reviewed by Myles C. Maxfield.

        * webgpu/whlsl-read-modify-write-high-zombies-expected.txt: Added.
        * webgpu/whlsl-read-modify-write-high-zombies.html: Added.

2019-06-20  Justin Fan  <justin_fan@apple.com>

        [WebGPU] High Sierra/Intel HD Graphics 4000: whlsl-harness-test.html crashes during dispatch call.
        https://bugs.webkit.org/show_bug.cgi?id=199076

        Unreviewed test gardening.

        * platform/mac/TestExpectations: Skip the test on High Sierra.

2019-06-20  Justin Michaud  <justin_michaud@apple.com>

        [WASM-References] Add extra tests for Wasm references + fix element parsing and subtyping bugs
        https://bugs.webkit.org/show_bug.cgi?id=199044

        Reviewed by Saam Barati.

        Add wasm references spec tests as well as a worker test. 

        * workers/wasm-references.html: Added.
        * workers/wasm-references/test.js: Added.
        (const._fail):
        (const.isNotA.assert.isNotA):
        (const):
        (switch.typeof):
        (Builder):
        (Builder.prototype.setChecked):
        (Builder.prototype.setPreamble):
        (Builder.prototype._functionIndexSpaceKeyHash):
        (Builder.prototype._registerFunctionToIndexSpace):
        (Builder.prototype._getFunctionFromIndexSpace):
        (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
        (Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.const.codeBuilder.End.switch.case.string_appeared_here.e):
        (Builder.prototype._registerSectionBuilders.this.Unknown):
        (done):
        (runTest.worker.onmessage):
        (runTest):
        (doGC):
        * workers/wasm-references/worker.js: Added.
        (const._fail):
        (const.isNotA.assert.isNotA):

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

        Changing settings of a MediaStreamTrack clone should not alter the settings of the original track
        https://bugs.webkit.org/show_bug.cgi?id=198840

        Reviewed by Eric Carlson.

        * fast/mediastream/mediastreamtrack-video-clone-expected.txt: Added.
        * fast/mediastream/mediastreamtrack-video-clone.html: Added.

2019-06-20  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/blink/fast/css/user-select-none.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=199071

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

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

        Moving expectations files
        https://bugs.webkit.org/show_bug.cgi?id=196495

        Unreviewed test gardening.

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

2019-06-20  Alexander Mikhaylenko  <exalm7659@gmail.com>

        [GTK] Enable navigation swipe layout tests
        https://bugs.webkit.org/show_bug.cgi?id=198995

        Reviewed by Michael Catanzaro.

        Enable the existing tests for the swipe gesture.

        swipe/pushState-programmatic-back-while-swiping-crash.html is not applicable because
        it deals with NSEvents directly, skip it.

        swipe/main-frame-pinning-requirement.html is flaky, same as on Mac.

        swipe/pushstate-with-manual-scrollrestoration.html passes, don't mark it as failure.

        * platform/gtk/TestExpectations:

2019-06-20  Alexander Mikhaylenko  <exalm7659@gmail.com>

        [GTK] HTTP layout tests don't run in flatpak
        https://bugs.webkit.org/show_bug.cgi?id=199067

        Reviewed by Michael Catanzaro.

        Set PERL5LIB environment variable in Apache config.

        * http/conf/flatpak-httpd.conf:

2019-06-18  Darin Adler  <darin@apple.com>

        Tidy up the remaining bits of the AtomicString to AtomString rename
        https://bugs.webkit.org/show_bug.cgi?id=198990

        Reviewed by Michael Catanzaro.

        * js/dopey-rope-with-16-bit-propertyname-expected.txt: Rename to AtomString.
        * js/dopey-rope-with-16-bit-propertyname.html: Ditto.

2019-06-19  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up common texture functions
        https://bugs.webkit.org/show_bug.cgi?id=198704
        <rdar://problem/51668841>

        Reviewed by Saam Barati.

        Make the text tests play better with js-test-pre.js.

        * webgpu/whlsl-buffer-length.html:
        * webgpu/whlsl-compute-expected.txt:
        * webgpu/whlsl-compute.html:
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html:
        * webgpu/whlsl-null-dereference-expected.txt:
        * webgpu/whlsl-null-dereference.html:
        * webgpu/whlsl-oob-access-expected.txt:
        * webgpu/whlsl-oob-access.html:
        * webgpu/whlsl-textures-getdimensions-expected.txt: Added.
        * webgpu/whlsl-textures-getdimensions.html: Copied from LayoutTests/webgpu/whlsl-buffer-length.html.
        * webgpu/whlsl-textures-load-expected.html: Added.
        * webgpu/whlsl-textures-load.html: Added.
        * webgpu/whlsl-textures-sample-expected.html: Added.
        * webgpu/whlsl-textures-sample.html: Added.

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

        Make preload/link-header-preload-imagesrcset.html work on DPR != 1
        https://bugs.webkit.org/show_bug.cgi?id=198533

        Reviewed by Youenn Fablet.

        Remove unneeded iOS test expectations.

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

2019-06-19  Justin Fan  <justin_fan@apple.com>

        [WHLSL] Create a shading language test harness
        https://bugs.webkit.org/show_bug.cgi?id=198978

        Reviewed by Myles C. Maxfield.

        Introduce a test harness that can be used to test WebGPU shader compilation and functionality.
        Currently using MSL. 
        Will be replaced with WHLSL as it gains the minimum features needed to support.

        * webgpu/js/whlsl-test-harness.js: Added.
        (isVectorType):
        (convertTypeToArrayType):
        (convertTypeToWHLSLType):
        (Data):
        (Data.prototype.async.getArrayBuffer):
        (Data.prototype.get type):
        (Data.prototype.get isPointer):
        (Data.prototype.get buffer):
        (Data.prototype.get byteLength):
        (Harness.prototype._initialize):
        (Harness.prototype.async.callTypedFunction):
        (Harness.prototype.async.callVoidFunction):
        (Harness.prototype._setUpArguments):
        (Harness.prototype._callFunction):
        (Harness):
        (harness._initialize.async):
        (makeBool):
        (makeInt):
        (makeUchar):
        (makeUint):
        (makeFloat):
        (makeFloat4):
        (async.callBoolFunction):
        (async.callIntFunction):
        (async.callUcharFunction):
        (async.callUintFunction):
        (async.callFloatFunction):
        (async.callFloat4Function):
        (callVoidFunction):
        * webgpu/whlsl-harness-test-expected.txt: Added.
        * webgpu/whlsl-harness-test.html: Added.

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

        [WHLSL] The checker needs to resolve types for the anonymous variables in ReadModifyWrite expressions
        https://bugs.webkit.org/show_bug.cgi?id=198988

        Reviewed by Dean Jackson and Myles C. Maxfield.

        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables-expected.txt: Added.
        * webgpu/whlsl-checker-should-set-type-of-read-modify-write-variables.html: Added.

2019-06-19  Nikita Vasilyev  <nvasilyev@apple.com>

        REGRESSION(r240946): Web Inspector: Styles: Pasting multiple properties has issues
        https://bugs.webkit.org/show_bug.cgi?id=198505
        <rdar://problem/51374780>

        Reviewed by Matt Baker.

        * inspector/css/modify-css-property.html:
        Listen for PropertiesChanged on the specific inline style declaration.
        In Debug, PropertiesChanged may fire on a computed style declaration first,
        causing the test to fail.

        * inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
        Drive-by: fix trailing white space.

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

        REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=199012

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Limit the failure expectation to High Sierra.

2019-06-19  Russell Epstein  <russell_e@apple.com>

        Layout Tests in imported/w3c/web-platform-tests/websockets/ are flakey failures after r246406.
        https://bugs.webkit.org/show_bug.cgi?id=199013

        Unreviewed Test Gardening.

        * TestExpectations:

2019-06-19  Jer Noble  <jer.noble@apple.com>

        iOS 12.2 Drawing portrait video to canvas is sideways
        https://bugs.webkit.org/show_bug.cgi?id=196772
        <rdar://problem/49781802>

        Reviewed by Eric Carlson.

        * media/content/no-rotation.mp4:
        * media/media-source/only-bcp47-language-tags-accepted-as-valid-expected.txt:
        * media/video-orientation-canvas-expected.html: Added.
        * media/video-orientation-canvas.html: Added.
        * media/video-test.js:
        (waitFor):

2019-06-19  Alicia Boya García  <aboya@igalia.com>

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

        * platform/gtk/TestExpectations:

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

        Revert parts of r246538 so that frame scrolling is reverted to using layer positions.
        Overflow scroll will still scroll by changing boundsOrigin.
        
        The bug was caused by confusion about insetClipLayer and scrollContainerLayer; macOS
        positions the clip layer using FrameView::yPositionForInsetClipLayer(), so it's not just
        a simple scroll container, and this change broke positioning for fixed position layers.

        * 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:
        * platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt:
        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
        * 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:
        * platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-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:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:

2019-06-19  Russell Epstein  <russell_e@apple.com>

        webgpu/blend-color-triangle-strip.html is a flakey failure since introduction.
        https://bugs.webkit.org/show_bug.cgi?id=198921

        Unreviewed Test Gardening.

        * platform/mac-wk2/TestExpectations:

2019-06-19  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=199013

        Unreviewed Test Gardening.

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

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

        RequestedScrollPosition shouldn't be applied after node reattach
        https://bugs.webkit.org/show_bug.cgi?id=198994
        <rdar://problem/51439685>

        Reviewed by Simon Fraser.

        * scrollingcoordinator/ios/scroll-position-after-reattach-expected.html: Added.
        * scrollingcoordinator/ios/scroll-position-after-reattach.html: Added.

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

        REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=199012

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        resize-observer/element-leak.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=198666

        Reviewed by Frédéric Wang.

        It takes a very long time to construct iframes which create and remove 1000 elements. This would cause timeout sometimes.
        In order to make it more effective, reduce the number of elements to 200 and put them into a container first,
        then attach the container to DOM tree.

        * resize-observer/resources/element-leak-frame.html:

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

        Text Selection gesture has changed behavior, change test to match new behavior
        https://bugs.webkit.org/show_bug.cgi?id=198980
        <rdar://problem/51713918>

        Reviewed by Wenson Hsieh.

        Long press and drag now starts a selection and entends the range, rather than changing
        the start of the text selection. Update the test to match the new behavior. 

        * fast/events/touch/ios/long-press-then-drag-to-select-text.html:

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

        [WHLSL] Support matrices
        https://bugs.webkit.org/show_bug.cgi?id=198876
        <rdar://problem/51768882>

        Reviewed by Dean Jackson and Myles Maxfield.

        * webgpu/whlsl-matrix-2-expected.txt: Added.
        * webgpu/whlsl-matrix-2.html: Added.
        * webgpu/whlsl-matrix-expected.txt: Added.
        * webgpu/whlsl-matrix.html: Added.

2019-06-18  Russell Epstein  <russell_e@apple.com>

        Layout Test imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=198977

        Unreviewed Test Gardening.

        * platform/mac-wk1/TestExpectations:

2019-06-18  Russell Epstein  <russell_e@apple.com>

        Layout test http/tests/websocket/tests/hybi/send-object-tostring-check.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=176030

        Unreviewed Test Gardening.

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

2019-06-18  Daniel Bates  <dabates@apple.com>

        REGRESSION (r240757): Cannot dismiss the keyboard on http://apple.com/apple-tv-plus
        https://bugs.webkit.org/show_bug.cgi?id=198922
        <rdar://problem/50300056>

        Reviewed by Wenson Hsieh.

        Add a test to ensure that pressing Done hides the keyboard after tapping outside the focused
        element's frame.

        * fast/events/ios/should-be-able-to-dismiss-form-accessory-after-tapping-outside-iframe-with-focused-field-expected.txt: Added.
        * fast/events/ios/should-be-able-to-dismiss-form-accessory-after-tapping-outside-iframe-with-focused-field.html: Added.
        * resources/ui-helper.js:
        (window.UIHelper.dismissFormAccessoryView): Added.

2019-06-18  Alexey Shvayka  <shvaikalesh@gmail.com>

        [ESNExt] String.prototype.matchAll
        https://bugs.webkit.org/show_bug.cgi?id=186694

        Reviewed by Yusuke Suzuki.

        Implement String.prototype.matchAll.
        (https://tc39.es/ecma262/#sec-string.prototype.matchall)

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

2019-06-18  Keith Miller  <keith_miller@apple.com>

        Add support for WeakRef
        https://bugs.webkit.org/show_bug.cgi?id=198710

        Reviewed by Yusuke Suzuki.

        Add an asyncTestStart that mirrors the asyncTestStart behavior in
        the JSC cli.

        * http/tests/resources/js-test-pre.js:
        (asyncTestStart):
        * js/script-tests/weakref-async-is-collected.js: Added.
        (makeWeakRef):
        (turnEventLoop):
        (async.foo):
        (async.test):
        * js/script-tests/weakref-eventually-collects-values.js: Added.
        (makeWeakRef):
        (turnEventLoop):
        (let.weakRefs.async.test):
        * js/script-tests/weakref-microtasks-dont-collect.js: Added.
        (asyncTestStart.1.makeWeakRef):
        (turnEventLoop):
        (async.foo):
        (async.test):
        * js/script-tests/weakref-weakset-consistency.js: Added.
        (makeWeakRef):
        (turnEventLoop):
        (async.foo):
        (async.test):
        * js/weakref-async-is-collected-expected.txt: Added.
        * js/weakref-async-is-collected.html: Added.
        * js/weakref-eventually-collects-values-expected.txt: Added.
        * js/weakref-eventually-collects-values.html: Added.
        * js/weakref-microtasks-dont-collect-expected.txt: Added.
        * js/weakref-microtasks-dont-collect.html: Added.
        * js/weakref-weakset-consistency-expected.txt: Added.
        * js/weakref-weakset-consistency.html: Added.
        * resources/js-test-pre.js:
        (asyncTestStart):

2019-06-18  Daniel Bates  <dabates@apple.com>

        [iOS] Pressing key while holding Command should not insert character
        https://bugs.webkit.org/show_bug.cgi?id=198925
        <rdar://problem/51778811>

        Reviewed by Brent Fulgham.

        Add a test that Command + Shift + v does not insert a v as we don't expect it
        to as of the time of writing. A more comprehensive test would be needed to
        ensure that all unhandled key commands with Command modifiers do not insert
        a character. For now, the added test seems good enough.

        * fast/events/ios/command+shift+v-should-not-insert-v-expected.txt: Added.
        * fast/events/ios/command+shift+v-should-not-insert-v.html: Added.

2019-06-18  Russell Epstein  <russell_e@apple.com>

        [iOS] Layout Test http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is frequently failing or timing out.
        https://bugs.webkit.org/show_bug.cgi?id=198185.

        Unreviewed Test Gardening.

        * platform/ios-wk2/TestExpectations:

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

        Web Inspector: parseQueryParameters fails to successfully parse query parameter values that contain "="
        https://bugs.webkit.org/show_bug.cgi?id=198971
        <rdar://problem/51852782>

        Reviewed by Joseph Pecoraro.

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

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

        [WHLSL] Do not generate duplicate constructors/copy constructors in synthesizeConstructors
        https://bugs.webkit.org/show_bug.cgi?id=198580

        Reviewed by Robin Morisset.

        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors-expected.txt: Added.
        * webgpu/whlsl-duplicate-types-should-not-produce-duplicate-ctors.html: Added.

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

        Convert macOS to scroll by changing layer boundsOrigin
        https://bugs.webkit.org/show_bug.cgi?id=198917

        Reviewed by Antti Koivisto.

        * compositing/iframes/scrolling-iframe-expected.txt:
        * compositing/overflow/textarea-scroll-touch-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt:
        * compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt:
        * compositing/repaint/scroller-with-foreground-layer-repaints-expected.txt:
        * compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:

2019-06-18  Zan Dobersek  <zdobersek@igalia.com>

        [WebGL] Extensions3DOpenGLES::bindVertexArrayOES() should allow zero array object
        https://bugs.webkit.org/show_bug.cgi?id=198929

        Reviewed by Carlos Garcia Campos.

        Enable the passing tests and update one baseline.

        * platform/wpe/TestExpectations:
        * platform/wpe/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt:

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

        [WHLSL] Make .length work
        https://bugs.webkit.org/show_bug.cgi?id=198890

        Reviewed by Myles Maxfield.

        * TestExpectations:
        * webgpu/whlsl-buffer-length-expected.txt: Added.
        * webgpu/whlsl-buffer-length.html: Added.
        * webgpu/whlsl-buffer-vertex.html:
        * webgpu/whlsl-compute.html:
        * webgpu/whlsl-null-dereference.html:
        * webgpu/whlsl-oob-access.html:

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

        scrollingcoordinator/ios/sync-layer-positions-after-scroll.html is a flaky failure on iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=172001

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

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

        Add missing test result after r246471. EWS didn't show any failure when it was missing.

        * compositing/overflow/composited-scrolling-paint-phases-expected.txt: Added.

2019-06-16  Darin Adler  <darin@apple.com>

        Convert some uses of fixed width and fixed precision floating point formatting to use shortest instead
        https://bugs.webkit.org/show_bug.cgi?id=198896

        Reviewed by Sam Weinig.

        * fast/loader/stateobjects/pushstate-frequency-expected.txt:
        * fast/loader/stateobjects/pushstate-frequency-iframe-expected.txt:
        * fast/loader/stateobjects/replacestate-frequency-expected.txt:
        * fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt:
        Updated to expect cleaner output without ".000000".

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

        Make layerTreeAsText() output a bit less verbose
        https://bugs.webkit.org/show_bug.cgi?id=198870

        Reviewed by Tim Horton.

        * compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases-expected.txt:
        * platform/gtk/compositing/overflow/composited-scrolling-paint-phases-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:
        * platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt: Removed.

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

        Add tests for prefetch redirects
        https://bugs.webkit.org/show_bug.cgi?id=197371

        Reviewed by Youenn Fablet.

        Add a test to verify prefetch redirections are cached in the prefetch
        cache and reused when navigating.

        * http/wpt/prefetch/link-prefetch-main-resource-redirect-expected.txt: Added.
        * http/wpt/prefetch/link-prefetch-main-resource-redirect.html: Added.
        * http/wpt/prefetch/resources/main-resource-redirect-no-prefetch.py: Added.
        (main):
        * http/wpt/prefetch/resources/navigate.html: Added.
        * http/wpt/prefetch/resources/prefetched-main-resource-redirect.py: Added.
        (main):
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        Unreviewed. Temporarily mark webgpu/whlsl-oob-access.html as flaky.

        * TestExpectations:

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

        Web Inspector: rework http/tests/inspector/network/resource-sizes-network.html to print the actual values so other platforms don't FAIL
        https://bugs.webkit.org/show_bug.cgi?id=198877
        <rdar://problem/50381370>

        Reviewed by Joseph Pecoraro.

        * http/tests/inspector/network/resources/resource-size-test.js:
        (TestPage.registerInitializer.window.addResourceSizeTest):

        * http/tests/inspector/network/resource-sizes-disk-cache.html:
        * http/tests/inspector/network/resource-sizes-disk-cache-expected.txt:

        * http/tests/inspector/network/resource-sizes-memory-cache.html:
        * http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
        * platform/gtk/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
        * platform/mac/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
        * platform/mac-sierra/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:

        * http/tests/inspector/network/resource-sizes-network.html:
        * http/tests/inspector/network/resource-sizes-network-expected.txt:
        * platform/gtk/http/tests/inspector/network/resource-sizes-network-expected.txt:
        * platform/mac/http/tests/inspector/network/resource-sizes-network-expected.txt:
        * platform/mac-sierra/http/tests/inspector/network/resource-sizes-network-expected.txt:

2019-06-14  John Wilander  <wilander@apple.com>

        Repeatedly check for IDB removal to address flakiness in http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html
        https://bugs.webkit.org/show_bug.cgi?id=198185
        <rdar://problem/51074251>

        Unreviewed test gardening.

        There's an asynchronosity in the removal of IDB entries so this test case
        needs to check repeatedly until the removal has happened.

        * http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
        * platform/ios-simulator-wk2/TestExpectations:
            Removed skip.

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

        [iOS] Split up fast/events/ios/key-events-meta-alt-combinations.html and add more tests
        https://bugs.webkit.org/show_bug.cgi?id=198834
        <rdar://problem/50103348>

        Reviewed by Brent Fulgham.

        The test fast/events/ios/key-events-meta-alt-combinations.html frequently times out. Let's try
        to break up this test into multiple files. Also add more modifier combination tests and group
        all these combination tests under a new direcdtory: fast/events/ios/key-events-comprehensive.

        * fast/events/ios/key-events-comprehensive/key-events-control-expected.txt: Renamed from LayoutTests/fast/events/ios/key-events-control-expected.txt.
        * fast/events/ios/key-events-comprehensive/key-events-control-option-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-control-option.html: Copied from LayoutTests/fast/events/ios/key-events-control.html.
        * fast/events/ios/key-events-comprehensive/key-events-control-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-control-shift.html: Copied from LayoutTests/fast/events/ios/key-events-control.html.
        * fast/events/ios/key-events-comprehensive/key-events-control.html: Renamed from LayoutTests/fast/events/ios/key-events-control.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta-control-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-control.html: Copied from LayoutTests/fast/events/ios/key-events-meta.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt: Renamed from LayoutTests/fast/events/ios/key-events-meta-expected.txt.
        * fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-option.html: Renamed from LayoutTests/fast/events/ios/key-events-meta-alt-combinations.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-meta-shift.html: Copied from LayoutTests/fast/events/ios/key-events-meta.html.
        * fast/events/ios/key-events-comprehensive/key-events-meta.html: Renamed from LayoutTests/fast/events/ios/key-events-meta.html.
        * fast/events/ios/key-events-comprehensive/key-events-option-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-option-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-option-shift.html: Added.
        * fast/events/ios/key-events-comprehensive/key-events-option.html: Added.
        * fast/events/ios/key-events-comprehensive/key-events-shift-expected.txt: Added.
        * fast/events/ios/key-events-comprehensive/key-events-shift.html: Added.
        * fast/events/ios/key-events-meta-alt-combinations-expected.txt: Removed.

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

        [Pointer Events] button property is -1 for pointerdown and pointerup
        https://bugs.webkit.org/show_bug.cgi?id=198868
        <rdar://problem/51758109>

        Reviewed by Dean Jackson.

        * pointerevents/mouse/pointer-button-and-buttons-expected.txt: Added.
        * pointerevents/mouse/pointer-button-and-buttons.html: Added.
        * pointerevents/utils.js:
        (prototype._handlePointerEvent):

2019-06-14  John Wilander  <wilander@apple.com>

        Move http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html off of testRunner.setAlwaysAcceptCookies()
        https://bugs.webkit.org/show_bug.cgi?id=198863
        <rdar://problem/47854589>

        Unreviewed test gardening.

        testRunner.setAlwaysAcceptCookies() is not working right (tracked
        in rdar://problem/51757107). Therefore, we need to change
        http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html
        to make it work properly.

        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
        * http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:

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

        [WHLSL] Implement out-of-bounds and nullptr behavior
        https://bugs.webkit.org/show_bug.cgi?id=198600
        <rdar://problem/51668853>

        Reviewed by Robin Morisset.

        * webgpu/whlsl-null-dereference-expected.txt: Added.
        * webgpu/whlsl-null-dereference.html: Added.
        * webgpu/whlsl-oob-access-expected.txt: Added.
        * webgpu/whlsl-oob-access.html: Added.

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

        Cloning a MediaStreamTrack does not clone the logger
        https://bugs.webkit.org/show_bug.cgi?id=198844

        Reviewed by Eric Carlson.

        * fast/mediastream/MediaStreamTrack-clone-expected.txt:
        * fast/mediastream/MediaStreamTrack-clone.html:

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

        webgpu/compute-squares.html test was deleted in https://trac.webkit.org/changeset/246427
        https://bugs.webkit.org/show_bug.cgi?id=198841

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Removing expectation for deleted teest

2019-06-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-06-13  Devin Rousso  <drousso@apple.com>

        Web Inspector: REGRESSION(r246178): extra spaces added in at-rules when formatting CSS
        https://bugs.webkit.org/show_bug.cgi?id=198806

        Reviewed by Joseph Pecoraro.

        * inspector/formatting/resources/css-tests/keyframes.css:
        * inspector/formatting/resources/css-tests/keyframes-expected.css:
        * inspector/formatting/resources/css-tests/media-query.css:
        * inspector/formatting/resources/css-tests/media-query-expected.css:
        * inspector/formatting/resources/css-tests/selectors.css:
        * inspector/formatting/resources/css-tests/selectors-expected.css:
        * inspector/formatting/resources/css-tests/wrapping.css:
        * inspector/formatting/resources/css-tests/wrapping-expected.css:

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

        REGRESSION (r246103) [ Mojave+ WK1 ] Layout Test scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=198800
        <rdar://problem/51679634>

        Reviewed by Tim Horton.

        This test now passes reliably on WK1.

        * platform/mac-wk1/TestExpectations:

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up compute
        https://bugs.webkit.org/show_bug.cgi?id=198644

        Reviewed by Saam Barati.

        This doesn't thoroughly test compute, but it's at least enough to unblock the WHLSL testing effort.

        * webgpu/compute-squares-expected.txt: Deleted. Covered by webgpu/whlsl-compute.html.
        * webgpu/compute-squares.html: Deleted. Ditto.
        * webgpu/whlsl-compute-expected.txt: Added.
        * webgpu/whlsl-compute.html: Added.

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

        [ContentChangeObserver] LayoutTest/fast/content-observation/click-event-suppression-on-content-change.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=198848
        <rdar://problem/51689630>

        Reviewed by Dean Jackson.

        1. Enable content observation for this test.
        2. Add role attribute to trigger fast click-through -less flaky with the sleeps. 
        3. Use UIHelper functions.

        * fast/content-observation/click-event-suppression-on-content-change.html: Removed.
        * fast/events/touch/ios/content-observation/click-event-suppression-on-content-change-expected.txt: Renamed from LayoutTests/fast/content-observation/click-event-suppression-on-content-change-expected.txt.
        * fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html: Added.

2019-06-13  Daniel Bates  <dabates@apple.com>

        [iOS] Normalize test result of fast/events/ios/keyboard-event-key-attribute.html to handle possible modifier dispatch
        https://bugs.webkit.org/show_bug.cgi?id=198835
        <rdar://problem/46082708>

        Reviewed by Darin Adler.

        WebKit now knows how to handle flag change events on iOS and dispatch DOM events just like Mac.
        Until USE(UIKIT_KEYBOARD_ADDITIONS) is enabled by default WebKit does not expect to receive
        modifier flag changes. But once this compile time flag is enabled it will and the test
        fast/events/ios/keyboard-event-key-attribute.html will fail because it types '@' and only
        expects to see a single keydown for '@' even though it actually requires two key downs to
        generate an '@': Shift, and 2 (on a US keyboard layout). We have a bunch of other tests to
        check that modifier key presses generate DOM events. So, let's just normalize the result of
        this test to ignore Shift keydowns.

        * fast/events/ios/keyboard-event-key-attribute.html:

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

        Test gardening after r246406
        https://bugs.webkit.org/show_bug.cgi?id=198774

        Unreviewed test gardening.

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

2019-06-13  Jonathan Bedard  <jbedard@apple.com>

        run-webkit-tests: Correctly garden fast/events/ios, fast/forms/ios tests
        https://bugs.webkit.org/show_bug.cgi?id=198798

        Reviewed by Aakash Jain.

        Any expectations for fast/events/ios and fast/forms/ios tests are overriden
        in ios-wk2 expectations, remove them since they don't do anything.

        * platform/ios-device/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ipad/TestExpectations:

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

        webgpu/compute-squares.html is crashing on HighSierra
        https://bugs.webkit.org/show_bug.cgi?id=198841

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations: Skipping on High Sierra

2019-06-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r246396 and r246397.
        https://bugs.webkit.org/show_bug.cgi?id=198837

        Breaks internal builds (Requested by ShawnRoberts on #webkit).

        Reverted changesets:

        "[WHLSL] Hook up compute"
        https://bugs.webkit.org/show_bug.cgi?id=198644
        https://trac.webkit.org/changeset/246396

        "[WHLSL] Hook up compute"
        https://bugs.webkit.org/show_bug.cgi?id=198644
        https://trac.webkit.org/changeset/246397

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

        twitch.tv: embedded video hovers down the screen when scrolling on iPad
        https://bugs.webkit.org/show_bug.cgi?id=198832
        <rdar://problem/51541439>

        Reviewed by Simon Fraser.

        * compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling-expected.html: Added.
        * compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling.html: Added.

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

        Import WPT websockets tests
        https://bugs.webkit.org/show_bug.cgi?id=198774

        Reviewed by Geoffrey Garen.

        * platform/mac-wk1/TestExpectations:
        * TestExpectations:
        * tests-options.json:

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

        "display: contents" Content click does not trigger
        https://bugs.webkit.org/show_bug.cgi?id=198559
        <rdar://problem/51488524>

        Reviewed by Antti Koivisto.

        Add a new test that checks that tapping on an element with "display: contents" correctly gets a "click" event.

        * fast/events/ios/click-event-and-display-contents-expected.txt: Added.
        * fast/events/ios/click-event-and-display-contents.html: Added.

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

        Update service worker test and expectation after revision 246363
        https://bugs.webkit.org/show_bug.cgi?id=198808

        Reviewed by Geoffrey Garen.

        * TestExpectations:
        Skip timing out test in Debug

2019-06-13  Miguel Gomez  <magomez@igalia.com>

        Unreviewed GTK+ gardening. Update expectations after r246397.

        * platform/gtk/TestExpectations:

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Hook up compute
        https://bugs.webkit.org/show_bug.cgi?id=198644

        Reviewed by Saam Barati.

        This doesn't thoroughly test compute, but it's at least enough to unblock the WHLSL testing effort.

        * webgpu/compute-squares-expected.txt: Deleted. Covered by webgpu/whlsl-compute.html.
        * webgpu/compute-squares.html: Deleted. Ditto.
        * webgpu/whlsl-compute-expected.txt: Added.
        * webgpu/whlsl-compute.html: Added.

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Implement array references
        https://bugs.webkit.org/show_bug.cgi?id=198163

        Reviewed by Saam Barati.

        * webgpu/buffer-resource-triangles-expected.html: Deleted. This test doens't make any sense and triggers
        Metal to read out-of-bounds of a vertex buffer.
        * webgpu/buffer-resource-triangles.html: Deleted.
        * webgpu/whlsl-buffer-fragment-expected.html: Added.
        * webgpu/whlsl-buffer-fragment.html: Added.
        * webgpu/whlsl-buffer-vertex-expected.html: Added.
        * webgpu/whlsl-buffer-vertex.html: Added.
        * webgpu/whlsl-dont-crash-parsing-enum.html:
        * webgpu/whlsl.html:

2019-06-12  Justin Fan  <justin_fan@apple.com>

        [WebGL] ANGLE Extension directive location incorrectly enforced for webgl 1.0
        https://bugs.webkit.org/show_bug.cgi?id=198811

        Reviewed by Dean Jackson.

        ANGLE was updated so that this case should not be an error.

        * webgl/webgl-extension-directive-location-no-error-expected.txt: Added.
        * webgl/webgl-extension-directive-location-no-error.html: Added.

2019-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform
        https://bugs.webkit.org/show_bug.cgi?id=198746
        <rdar://problem/51620347>

        Reviewed by Don Olmstead.

        * svg/clip-path/clip-hidpi-expected.svg: Added.
        * svg/clip-path/clip-hidpi.svg: Added.
        * svg/clip-path/clip-opacity-translate-expected.svg: Added.
        * svg/clip-path/clip-opacity-translate.svg: Added.

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Educate the property resolver about IndexExpressions
        https://bugs.webkit.org/show_bug.cgi?id=198399

        Unreviewed test gardening.

        Failing WebGPU tests should fail instead of time out.

        * webgpu/blend-color-triangle-strip.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/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/propertyresolver/ander-abstract-lvalue.html:
        * webgpu/propertyresolver/ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/ander-lvalue.html:
        * webgpu/propertyresolver/ander.html:
        * webgpu/propertyresolver/getter.html:
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-ander-lvalue.html:
        * webgpu/propertyresolver/indexer-ander.html:
        * webgpu/propertyresolver/indexer-getter.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html:
        * webgpu/propertyresolver/indexer-setter-lvalue.html:
        * webgpu/propertyresolver/indexer-setter.html:
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html:
        * webgpu/propertyresolver/setter-abstract-lvalue.html:
        * webgpu/propertyresolver/setter-lvalue.html:
        * webgpu/simple-triangle-strip.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:
        * webgpu/viewport-scissor-rect-triangle-strip.html:
        * webgpu/whlsl-arbitrary-vertex-attribute-locations.html:
        * webgpu/whlsl-dereference-pointer-should-type-check.html:
        * webgpu/whlsl-do-while-loop-break.html:
        * webgpu/whlsl-do-while-loop-continue.html:
        * webgpu/whlsl-do-while-loop.html:
        * webgpu/whlsl-dont-crash-parsing-enum.html:
        * webgpu/whlsl-dot-expressions.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-2.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime-3.html:
        * webgpu/whlsl-ensure-proper-variable-lifetime.html:
        * webgpu/whlsl-loops-break.html:
        * webgpu/whlsl-loops-continue.html:
        * webgpu/whlsl-loops.html:
        * webgpu/whlsl-nested-dot-expression-rvalue.html:
        * webgpu/whlsl-nested-loop.html:
        * webgpu/whlsl-return-local-variable.html:
        * webgpu/whlsl-store-to-property-updates-properly.html:
        * webgpu/whlsl-while-loop-break.html:
        * webgpu/whlsl-while-loop-continue.html:
        * webgpu/whlsl-zero-initialize-values-2.html:
        * webgpu/whlsl-zero-initialize-values.html:
        * webgpu/whlsl.html:

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

        paddingBoxRect() is wrong with RTL scrollbars on the left
        https://bugs.webkit.org/show_bug.cgi?id=198816

        Reviewed by Jon Lee.

        * compositing/geometry/rtl-overflow-scroll-expected.html: Added.
        * compositing/geometry/rtl-overflow-scroll.html: Added.

2019-06-12  Eric Carlson  <eric.carlson@apple.com>

        [High Sierra / Mojave Debug WK2] Layout Test media/video-restricted-invisible-autoplay-allowed-when-visible.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=190885
        <rdar://problem/45590590>

        Reviewed by Youenn Fablet.

        * media/video-restricted-invisible-autoplay-allowed-when-visible.html: Increase the amount of
         time it takes for the test to fail so it isn't flaky on slow machines.

2019-06-12  Daniel Bates  <dabates@apple.com>

        [iOS] Adjust tests platform/ipad/fast/forms/{select-form-run-twice, unfocus-inside-fixed-hittest}.html following r243808
        https://bugs.webkit.org/show_bug.cgi?id=198799
        <rdar://problem/50181023>

        Reviewed by Brent Fulgham.

        Following r243808 we no longer defocus a <select> on iPad when its popover is dismissed as a
        result of picking a value for it. This is to make the behavior of <select> on iPad like the Mac. 
        However the tests platform/ipad/fast/forms/{select-form-run-twice, unfocus-inside-fixed-hittest}.html
        depend on the old behavior. So, we need to update them to no longer expect a defocusing of the
        <select>/the end of form control interaction.

        * platform/ipad/fast/forms/select-form-run-twice.html:
        * platform/ipad/fast/forms/unfocus-inside-fixed-hittest.html:

2019-06-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [WHLSL] Educate the property resolver about IndexExpressions
        https://bugs.webkit.org/show_bug.cgi?id=198399

        Reviewed by Saam Barati.

        * webgpu/propertyresolver/ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/ander-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue.html: Added.
        * webgpu/propertyresolver/ander.html: Added.
        * webgpu/propertyresolver/getter-expected.html: Added.
        * webgpu/propertyresolver/getter.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander.html: Added.
        * webgpu/propertyresolver/indexer-getter-expected.html: Added.
        * webgpu/propertyresolver/indexer-getter.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-lvalue.html: Added.

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

        scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out on WK1 testers
        https://bugs.webkit.org/show_bug.cgi?id=198800

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations: Updating expecations for test

2019-06-12  Jiewen Tan  <jiewen_tan@apple.com>

        REGRESSION (r245043) [Mac WK2 Debug] ASSERTION FAILED: m_services.isEmpty() && transports.size() <= maxTransportNumber seen with two http/wpt/webauthn/public-key-credential-* tests
        https://bugs.webkit.org/show_bug.cgi?id=197917
        <rdar://problem/51524958>

        Reviewed by Brent Fulgham.

        * platform/mac-wk2/TestExpectations:

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

        (Async scrolling) Handle 'position:fixed' inside 'position:sticky' correctly.
        https://bugs.webkit.org/show_bug.cgi?id=198788
        <rdar://problem/51589759>

        Reviewed by Simon Fraser.

        * scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-frame-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-frame.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-stacking-context-expected.html: Added.
        * scrollingcoordinator/ios/fixed-inside-sticky-stacking-context.html: Added.

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

        Update WPT service workers test up to 0df7c68
        https://bugs.webkit.org/show_bug.cgi?id=198720

        Reviewed by Eric Carlson.

        * TestExpectations:
        * tests-options.json:

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

        Unreviewed, rolling out r246350.

        r246350 Introduced a failing and timing out test svg/clip-path
        /clip-hidpi.svg

        Reverted changeset:

        "[cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform"
        https://bugs.webkit.org/show_bug.cgi?id=198746
        https://trac.webkit.org/changeset/246350

2019-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform
        https://bugs.webkit.org/show_bug.cgi?id=198746
        <rdar://problem/51665805>

        Reviewed by Don Olmstead.

        * svg/clip-path/clip-hidpi-expected.svg: Added.
        * svg/clip-path/clip-hidpi.svg: Added.
        * svg/clip-path/clip-opacity-translate-expected.svg: Added.
        * svg/clip-path/clip-opacity-translate.svg: Added.

2019-06-12  Fujii Hironori  <Hironori.Fujii@sony.com>

        [GTK] Some reftest fail with only one or two pixel differences in diff image
        https://bugs.webkit.org/show_bug.cgi?id=168426

        Unreviewed test gardening.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        svg/clip-path/clip-opacity.html results in 0.01% image diff. Marked it as ImageOnlyFailure of Bug 168426.

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

        [iOS] Idempotent text autosizing needs to react properly to viewport changes
        https://bugs.webkit.org/show_bug.cgi?id=198736
        <rdar://problem/50591911>

        Reviewed by Zalan Bujtas.

        Add a new layout test that programmatically adjusts the meta viewport initial scale, and dumps the resulting
        computed sizes of several paragraphs of text, after adjusting for text autosizing.

        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale-expected.txt: Added.
        * fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html: Added.

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

        LayoutTests/fast/events/touch/ios/double-tap-for-double-click* test cases are failing
        https://bugs.webkit.org/show_bug.cgi?id=198764
        <rdar://problem/51035459>

        Reviewed by Wenson Hsieh.

        * fast/events/touch/ios/double-tap-for-double-click1.html:
        * fast/events/touch/ios/double-tap-for-double-click2.html:
        * fast/events/touch/ios/double-tap-for-double-click3.html:

2019-06-11  Commit Queue  <commit-queue@webkit.org>

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

        New test is failing, and commit is causing another test to
        fail. (Requested by ShawnRoberts on #webkit).

        Reverted changeset:

        "Web Inspector: AXI: Audit: image label test is throwing
        spurious errors on elements with existing alt attr, but no
        value: <img alt>"
        https://bugs.webkit.org/show_bug.cgi?id=194754
        https://trac.webkit.org/changeset/246320

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

        Sort the computed styles list
        https://bugs.webkit.org/show_bug.cgi?id=198743

        Reviewed by Simon Fraser

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:

        * fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-font-family-expected.txt:

        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

        * svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/ios/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
        * platform/wpe/svg/css/getComputedStyle-basic-expected.txt:

2019-06-11  Daniel Bates  <dabates@apple.com>

        [iOS] Adjust test fast/events/ios/keyup.html to ignore Shift keyups
        https://bugs.webkit.org/show_bug.cgi?id=198768
        <rdar://problem/46082743>

        Reviewed by Brent Fulgham.

        Ignore Shift keyups as in the future they will be emitted. We have existing test coverage for them
        currently skipped in OpenSource that will be unskipped in the future once we enable ENABLE(FULL_KEYBOARD_ACCESS).

        * fast/events/ios/keyup.html:

2019-06-11  Daniel Bates  <dabates@apple.com>

        Fix up test result following r245161.
        <rdar://problem/51032967>

        Until we get UIKit support, almost all keys, including the numpad comma key (on JIS keyboards)
        report Dead for their key property and Unidentified for their keyIdentifier property.

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

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

        r246018 introduced a falkey test on WK1
        https://bugs.webkit.org/show_bug.cgi?id=196508

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2019-06-11  Daniel Bates  <dabates@apple.com>

        Import Content Security Policy Web Platform Tests
        https://bugs.webkit.org/show_bug.cgi?id=198676
        <rdar://problem/51533785>

        Reviewed by Youenn Fablet.

        Import tests as of 3840f46213d9a991acc9288e3863530f7502c05e (origin/master).

        * TestExpectations: Skip some tests for features we do not support.
        * platform/mac-wk1/TestExpectations: Skip some tests.
        * platform/win/TestExpectations: Ditto.
        * tests-options.json:

2019-06-11  Daniel Bates  <dabates@apple.com>

        Skip test http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html as
        testRunner.queueLoad() does not support loading data URLs in Legacy WebKit on Mac and iOS

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

2019-06-11  Daniel Bates  <dabates@apple.com>

        [Win] Layout test http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=198758

        It is a longstanding known issue (since 2015) that navigating to a blob URL times out on Windows.
        Further investigation is needed. Skip another test for now.

        * platform/win/TestExpectations:

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

        compositing/fixed-with-main-thread-scrolling.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=198757

        Unreviewed test gardening.

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

2019-06-11  Greg Doolittle  <gr3g@apple.com>

        Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt>
        https://bugs.webkit.org/show_bug.cgi?id=194754
        <rdar://problem/48144534>

        Reviewed by Chris Fleizach.

        * accessibility/img-alt-attribute-empty-string-expected.txt: Added.
        * accessibility/img-alt-attribute-empty-string.html: Added.
        * accessibility/img-alt-attribute-no-value-expected.txt: Added.
        * accessibility/img-alt-attribute-no-value.html: Added.

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

        http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure and timeout
        https://bugs.webkit.org/show_bug.cgi?id=198185

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Skipping test on iOS

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

        Unreviewed, fix test failures after r246292.

        * inspector/timeline/timeline-recording.html:
        * inspector/timeline/timeline-recording-expected.txt:
        Filter the contents of `sampleStackTraces` and `sampleDurations` when exporting.

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

        REGRESSION (iOS): Can't scroll litter-robot.com checkout form's dropdown menus
        https://bugs.webkit.org/show_bug.cgi?id=198753
        <rdar://problem/51355686>

        Reviewed by Simon Fraser.

        * fast/scrolling/ios/overflow-scroll-user-interaction-disabled-expected.txt: Added.
        * fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html: Added.

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

        MediaStreamAudioSourceNode::setFormat should check for m_sourceSampleRate equality
        https://bugs.webkit.org/show_bug.cgi?id=198740
        <rdar://problem/47088939>

        Reviewed by Eric Carlson.

        * platform/mac/TestExpectations:

2019-06-11  Fujii Hironori  <Hironori.Fujii@sony.com>

        [cairo][SVG] Putting multiple path elements in clippath causes rendering artifacts
        https://bugs.webkit.org/show_bug.cgi?id=198701

        Reviewed by Carlos Garcia Campos.

        * platform/gtk/TestExpectations:
        * platform/wpe/TestExpectations:
        Unskipped svg/gradients/spreadMethodDiagonal3.svg and svg/gradients/spreadMethodDiagonal4.svg.

        * svg/clip-path/clip-opacity-expected.html: Added.
        * svg/clip-path/clip-opacity.html: Added.
        * svg/clip-path/svg-in-html-expected.html: Added.
        * svg/clip-path/svg-in-html.html: Added.

2019-06-10  Daniel Bates  <dabates@apple.com>

        [CSP] Blob URLs should inherit their CSP policy
        https://bugs.webkit.org/show_bug.cgi?id=198579
        <rdar://problem/51366878>

        Reviewed by Brent Fulgham.

        Actually add the tests that I inadvertently omitted from r246277.

        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html: Added.

2019-06-10  Sam Weinig  <weinig@apple.com>

        Remove Dashboard support
        https://bugs.webkit.org/show_bug.cgi?id=198615

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        * cssom/cssvalue-comparison-expected.txt:
        * cssom/cssvalue-comparison.html:
        * fast/canvas/canvas-gradient-addStop-error-expected.txt:
        * fast/canvas/canvas-gradient-addStop-error.html:
        * fast/canvas/fill-stroke-clip-reset-path-expected.txt:
        * fast/canvas/fill-stroke-clip-reset-path.html:
        * fast/css/dashboard-regions-attr-crash-expected.txt: Removed.
        * fast/css/dashboard-regions-attr-crash.html: Removed.
        * fast/css/dashboard-regions-undefined-length-assertion-expected.txt: Removed.
        * fast/css/dashboard-regions-undefined-length-assertion.html: Removed.
        * fast/xmlhttprequest/set-dangerous-headers-in-dashboard-expected.txt: Removed.
        * fast/xmlhttprequest/set-dangerous-headers-in-dashboard.html: Removed.
        * http/tests/xmlhttprequest/default-content-type-dashboard-expected.txt: Removed.
        * http/tests/xmlhttprequest/default-content-type-dashboard.html: Removed.
        * http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard-expected.txt: Removed.
        * http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html: Removed.
        * legacy-animation-engine/cssom/cssvalue-comparison-expected.txt:
        * legacy-animation-engine/cssom/cssvalue-comparison.html:
        * mathml/mathml-in-dashboard-expected.txt: Removed.
        * mathml/mathml-in-dashboard.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/ios-wk1/TestExpectations:
        * platform/ios/TestExpectations:
        * platform/ios/mathml/mathml-in-dashboard-expected.txt: Removed.
        * platform/mac/TestExpectations:
        * platform/mac/fast/css/dashboard-region-parser-expected.txt: Removed.
        * platform/mac/fast/css/dashboard-region-parser.html: Removed.
        * platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk-expected.txt: Removed.
        * platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk.html: Removed.
        * platform/mac/mathml/mathml-in-dashboard-expected.png: Removed.
        * platform/mac/mathml/mathml-in-dashboard-expected.txt: Removed.
        * platform/mac/svg/custom/embedded-svg-disallowed-in-dashboard-expected.png: Removed.
        * platform/mac/svg/custom/manually-parsed-embedded-svg-disallowed-in-dashboard-expected.png: Removed.
        * platform/mac/svg/custom/manually-parsed-svg-disallowed-in-dashboard-expected.png: Removed.
        * platform/mac/svg/custom/svg-disallowed-in-dashboard-object-expected.png: Removed.
        * platform/win/TestExpectations:
        * platform/wincairo/TestExpectations:
        * svg/custom/embedded-svg-allowed-in-dashboard-expected.txt: Removed.
        * svg/custom/embedded-svg-allowed-in-dashboard.xml: Removed.
        * svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard-expected.txt: Removed.
        * svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html: Removed.
        * svg/custom/manually-parsed-svg-allowed-in-dashboard-expected.txt: Removed.
        * svg/custom/manually-parsed-svg-allowed-in-dashboard.html: Removed.
        * svg/custom/svg-allowed-in-dashboard-object-expected.txt: Removed.
        * svg/custom/svg-allowed-in-dashboard-object.html: Removed.

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

        [ iOS Sim WK2 ] Layout Test editing/deleting/delete-emoji* is failing

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations: Remove failure expectation.
        * platform/ios/editing/deleting/delete-emoji-1-expected.txt: Rebaseline test.
        * platform/ios/editing/deleting/delete-emoji-9-expected.txt: Ditto.
        * platform/ios/editing/deleting/delete-emoji-expected.txt: Ditto.

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

        Event region should be set on scrolledContentsLayer if it exists
        https://bugs.webkit.org/show_bug.cgi?id=198717
        <rdar://problem/51572169>

        Reviewed by Simon Fraser.

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

2019-06-10  Daniel Bates  <dabates@apple.com>

        [CSP] Blob URLs should inherit their CSP policy
        https://bugs.webkit.org/show_bug.cgi?id=198579
        <rdar://problem/51366878>

        Reviewed by Brent Fulgham.

        Add tests to ensure that a self navigation to a Blob or Data URL inherits its CSP policy from
        its parent document.

        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html: Added.

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

        [WHLSL] Auto initialize local variables
        https://bugs.webkit.org/show_bug.cgi?id=198426

        Reviewed by Myles Maxfield.

        * webgpu/whlsl-zero-initialize-values-2-expected.html: Added.
        * webgpu/whlsl-zero-initialize-values-2.html: Added.
        * webgpu/whlsl-zero-initialize-values-expected.html: Added.
        * webgpu/whlsl-zero-initialize-values.html: Added.

2019-06-10  Timothy Hatcher  <timothy@apple.com>

        Integrate dark mode support for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=198687
        rdar://problem/51545643

        Reviewed by Tim Horton.

        * platform/ios/TestExpectations:

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

        Call was negotiated with H264 Base Profile 42e01f but encoded in High Profile
        https://bugs.webkit.org/show_bug.cgi?id=195124
        <rdar://problem/48453085>

        Reviewed by Eric Carlson.

        * webrtc/video-h264-expected.txt: Added.
        * webrtc/video-h264.html: Added.

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

        resize-observer/element-leak.html fails on Windows platform
        https://bugs.webkit.org/show_bug.cgi?id=197908

        Reviewed by Ryosuke Niwa.

        We have conservative GC, the removed objects might keep alive for a while. Change the test case
        to 20 iframes. This would make the result more accurate.

        * platform/win/TestExpectations:
        * resize-observer/element-leak-expected.txt:
        * resize-observer/element-leak.html:

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

        [ Mac Debug ] REGRESSION (r242975) Layout Test storage/indexeddb/modern/deletedatabase-2-private.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=196445
        <rdar://problem/49483061>

        Reviewed by Brady Eidson.

        Unflake the test by making sure to wait for the onerror event before continuing the test.

        * platform/mac-wk2/TestExpectations:
        * storage/indexeddb/modern/resources/deletedatabase-2.js:
        (prepareDatabase.event.target.onerror):
        (continueTest1.request.onsuccess): Deleted.

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

        Unreviewed, rolling out r246138.

        Broke internal builds

        Reverted changeset:

        "[WHLSL] Educate the property resolver about IndexExpressions"
        https://bugs.webkit.org/show_bug.cgi?id=198399
        https://trac.webkit.org/changeset/246138

2019-06-07  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: longhand CSS properties overridden by shorthands miss strikethrough
        https://bugs.webkit.org/show_bug.cgi?id=198629
        <rdar://problem/51504160>

        Reviewed by Devin Rousso.

        * inspector/css/overridden-property-expected.txt:
        * inspector/css/overridden-property.html:

2019-06-07  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Remove GPUBuffer.setSubData and implement GPUDevice.createBufferMapped
        https://bugs.webkit.org/show_bug.cgi?id=198591

        Reviewed by Myles C. Maxfield.

        GPUBuffer.setSubData has been removed from the WebGPU implementation.
        GPUDevice.createBufferMapped has been added to the WebGPU implementation.
        Replace all setSubData calls with appropriate replacements.

        * webgpu/blend-triangle-strip.html:
        * webgpu/blit-commands.html:
        * webgpu/buffer-command-buffer-races.html:
        * webgpu/buffer-resource-triangles.html:
        * webgpu/compute-squares.html:
        * webgpu/depth-enabled-triangle-strip.html:
        * webgpu/draw-indexed-triangles.html:
        * webgpu/js/webgpu-functions.js:
        (createBufferWithData):
        (async.mapWriteDataToBuffer):
        * webgpu/map-read-buffers-expected.txt:
        * webgpu/map-read-buffers.html:
        * webgpu/texture-triangle-strip.html:
        * webgpu/vertex-buffer-triangle-strip.html:

2019-06-07  Per Arne Vollan  <pvollan@apple.com>

        Layout Test fast/events/fire-mousedown-while-pressing-mouse-button.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=198679

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Restrict fast clicks everywhere to desktop content mode
        https://bugs.webkit.org/show_bug.cgi?id=198610
        <rdar://problem/50114230>

        Reviewed by Dean Jackson.

        Add a new test that enables fast clicks but also sets a mobile content mode.
        
        We also mark fast/visual-viewport/ios/min-scale-greater-than-one.html as non-flaky
        since the flakiness was due to the fast clicks everywhere behavior being enabled on iPhone.

        Finally, we can now remove the hack where ui.tap() in the Pointer Events utility returned
        a promise with a one-second delay since the issue of double-taps being recognized instead of
        two consecutive single taps across two tests has been resolved.

        * fast/events/ios/ipad/fast-click-always-mobile-content-mode-expected.txt: Added.
        * fast/events/ios/ipad/fast-click-always-mobile-content-mode.html: Added.
        * platform/ios-simulator-wk2/TestExpectations:
        * pointerevents/utils.js:

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

        http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=198663

        Unreviewed test gardening.

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

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

        scrollingcoordinator/mac/nested-sticky.html is a flaky Timeout and ImageOnlyFailure
        https://bugs.webkit.org/show_bug.cgi?id=198661

        Unreviewed test gardening.

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

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

        position:fixed inside overflow positioning nodes is jumpy
        https://bugs.webkit.org/show_bug.cgi?id=198647
        <rdar://problem/51514437>

        Reviewed by Frédéric Wang.

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

2019-06-07  Enrique Ocaña González  <eocanha@igalia.com>

        [MSE][GStreamer] Avoid QUOTA_EXCEEDED_ERR when seeking to a buffered range just before the buffered one
        https://bugs.webkit.org/show_bug.cgi?id=166620

        Reviewed by Xabier Rodriguez-Calvar.

        Added a test to check that, after the memory is filled by appending a continuous
        range, a seek right before it and a new append can be done without getting a
        QuotaExceededError on GStreamer ports. On the rest of the ports, QuotaExceededError
        is never thrown and the expectations just check that the right buffered ranges
        remain.

        * media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.
        * media/media-source/media-source-append-before-last-range-no-quota-exceeded.html: Added.
        * platform/gtk/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.
        * platform/wpe/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.


2019-06-07  Joonghun Park  <jh718.park@samsung.com>

        Implement tab-size with units
        https://bugs.webkit.org/show_bug.cgi?id=179022

        Reviewed by Simon Fraser.

        This change is ported from Blink.
        The committed revision is https://src.chromium.org/viewvc/blink?revision=189430&view=revision.

        Additionally, this patch lets css "number" value be allowed as tab-size's property value,
        not css "integer" value,
        according to https://drafts.csswg.org/css-text-3/#tab-size-property.

        * TestExpectations:
        * css3/tab-size-expected.txt: Added.
        * css3/tab-size.html: Added.
        * fast/css/tab-size-expected.html:
        * fast/css/tab-size.html:

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

        Allow WebKitTestRunner to terminate network process after it finishes service worker file operations
        https://bugs.webkit.org/show_bug.cgi?id=198584

        Reviewed by Geoffrey Garen.

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

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

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

        Causing test failures in 7 content-observation tests.
        (Requested by ShawnRoberts on #webkit).

        Reverted changeset:

        "Restrict fast clicks everywhere to desktop content mode"
        https://bugs.webkit.org/show_bug.cgi?id=198610
        https://trac.webkit.org/changeset/246165

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

        Web Inspector: Formatter: pretty-print CSS using a Worker
        https://bugs.webkit.org/show_bug.cgi?id=197829
        <rdar://problem/36891532>

        Reviewed by Timothy Hatcher.

        * inspector/formatting/formatting-css.html: Added.
        * inspector/formatting/formatting-css-expected.txt: Added.
        * inspector/formatting/resources/css-tests/basic-expected.css: Added.
        * inspector/formatting/resources/css-tests/basic.css: Added.
        * inspector/formatting/resources/css-tests/gradient-expected.css: Added.
        * inspector/formatting/resources/css-tests/gradient.css: Added.
        * inspector/formatting/resources/css-tests/keyframes-expected.css: Added.
        * inspector/formatting/resources/css-tests/keyframes.css: Added.
        * inspector/formatting/resources/css-tests/media-query-expected.css: Added.
        * inspector/formatting/resources/css-tests/media-query.css: Added.
        * inspector/formatting/resources/css-tests/selectors-expected.css: Added.
        * inspector/formatting/resources/css-tests/selectors.css: Added.
        * inspector/formatting/resources/css-tests/wrapping-expected.css: Added.
        * inspector/formatting/resources/css-tests/wrapping.css: Added.
        * inspector/formatting/resources/utilities.js:
        (TestPage.registerInitializer.runFormattingTest):

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

        REGRESSION (r243270) [ iOS Sim Release ] Layout Test imported/w3c/web-platform-tests/IndexedDB/keypath-special-identifiers.htm is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=198573
        <rdar://problem/51447519>

        Unreviewed.

        * platform/ios-simulator-wk2/TestExpectations:
        Marking test as slow.

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

        REGRESSION (r243121): Load event should not be fired while animating the 'externalResourcesRequired' attribute 
        https://bugs.webkit.org/show_bug.cgi?id=198576

        Reviewed by Simon Fraser.

        * svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt: Added.
        * svg/animations/animate-externalResourcesRequired-no-load-event.html: Added.

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

        Restrict fast clicks everywhere to desktop content mode
        https://bugs.webkit.org/show_bug.cgi?id=198610
        <rdar://problem/50114230>

        Reviewed by Dean Jackson.

        Add a new test that enables fast clicks but also sets a mobile content mode.

        * fast/events/ios/ipad/fast-click-always-mobile-content-mode-expected.txt: Added.
        * fast/events/ios/ipad/fast-click-always-mobile-content-mode.html: Added.

2019-06-06  Alexey Shvayka  <shvaikalesh@gmail.com>

        JSON.parse throws incorrect exception when called w/o arguments
        https://bugs.webkit.org/show_bug.cgi?id=198574

        Reviewed by Yusuke Suzuki.

        SyntaxError should be thrown if JSON.parse is called w/o arguments.
        (steps 1-2 of https://tc39.github.io/ecma262/#sec-json.parse)

        * js/dom/JSON-parse-expected.txt:

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

        Position fixed is buggy with overflow:auto scrolling inside iframes
        https://bugs.webkit.org/show_bug.cgi?id=154399
        <rdar://problem/24742251>

        Reviewed by Frederic Wang and Simon Fraser.

        * scrollingcoordinator/ios/fixed-frame-overflow-swipe-expected.html: Added.
        * scrollingcoordinator/ios/fixed-frame-overflow-swipe.html: Added.

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

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

        Unreviewed, rebaselining this test for WK1.

        * platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt:

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

        [Curl] Report all request headers to web inspector.
        https://bugs.webkit.org/show_bug.cgi?id=191653

        Reviewed by Fujii Hironori.

        * platform/wincairo/TestExpectations:
        * platform/wincairo/http/tests/inspector/network/resource-request-headers-expected.txt: Added.

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

        [WHLSL] Educate the property resolver about IndexExpressions
        https://bugs.webkit.org/show_bug.cgi?id=198399

        Reviewed by Saam Barati.

        * webgpu/propertyresolver/ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/ander-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/ander-lvalue.html: Added.
        * webgpu/propertyresolver/ander.html: Added.
        * webgpu/propertyresolver/getter-expected.html: Added.
        * webgpu/propertyresolver/getter.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-ander-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-ander.html: Added.
        * webgpu/propertyresolver/indexer-getter-expected.html: Added.
        * webgpu/propertyresolver/indexer-getter.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/indexer-setter-lvalue.html: Added.
        * webgpu/propertyresolver/indexer-setter.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-abstract-lvalue.html: Added.
        * webgpu/propertyresolver/setter-lvalue-expected.html: Added.
        * webgpu/propertyresolver/setter-lvalue.html: Added.

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

        [CSP] Data URLs should inherit their CSP policy
        https://bugs.webkit.org/show_bug.cgi?id=198572
        <rdar://problem/50660927>

        Reviewed by Brent Fulgham.

        Add a test to ensure that a framed data URL inherits its CSP policy from its parent document.

        * http/tests/security/contentSecurityPolicy/subframe-with-data-url-inheritance-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/subframe-with-data-url-inheritance.html: Added.

2019-06-05  Alex Christensen  <achristensen@webkit.org>

        Re-enable safe browsing in WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=196161
        <rdar://problem/49171413>

        Reviewed by Ryosuke Niwa.

        * platform/mac-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt:

== Rolled over to ChangeLog-2019-06-05 ==
