2016-10-19  Ryosuke Niwa  <rniwa@webkit.org>

        Annotate more DOM and HTML IDLs with CEReactions
        https://bugs.webkit.org/show_bug.cgi?id=163653

        Reviewed by Darin Adler.

        Added a regression test to make sure webkitdropzone IDL attribute on HTMLElement
        honors CEReactions semantics using the web-platform-tests' infrastructure I added.

        * fast/custom-elements/reactions-for-webkit-extensions-expected.txt: Added.
        * fast/custom-elements/reactions-for-webkit-extensions.html: Added.

2016-10-19  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r207557.

        This change caused animations/font-variations tests to time
        out on pre-Sierra Macs.

        Reverted changeset:

        "[macOS] [iOS] Disable variation fonts on macOS El Capitan and
        iOS 9"
        https://bugs.webkit.org/show_bug.cgi?id=163374
        http://trac.webkit.org/changeset/207557

2016-10-19  Nan Wang  <n_wang@apple.com>

        AX: crash: com.apple.WebCore: WebCore::AccessibilityObject::findMatchingObjects + 600
        https://bugs.webkit.org/show_bug.cgi?id=163682

        Reviewed by Chris Fleizach.

        * accessibility/mac/search-predicate-crash-expected.txt: Added.
        * accessibility/mac/search-predicate-crash.html: Added.

2016-10-19  Myles C. Maxfield  <mmaxfield@apple.com>

        [macOS] [iOS] Disable variation fonts on macOS El Capitan and iOS 9
        https://bugs.webkit.org/show_bug.cgi?id=163374

        Reviewed by Darin Adler.

        Moving animations/font-variation-settings* tests to animations/font-variations
        in order to make them easier to mark as failing.

        Mark the relevant tests as failing on El Capitan and iOS 9.

        * animations/font-variations/font-variation-settings-expected.html: Renamed from LayoutTests/animations/font-variation-settings-expected.html.
        * animations/font-variations/font-variation-settings-order-expected.html: Renamed from LayoutTests/animations/font-variation-settings-order-expected.html.
        * animations/font-variations/font-variation-settings-order.html: Renamed from LayoutTests/animations/font-variation-settings-order.html.
        * animations/font-variations/font-variation-settings-unlike-expected.html: Renamed from LayoutTests/animations/font-variation-settings-unlike-expected.html.
        * animations/font-variations/font-variation-settings-unlike.html: Renamed from LayoutTests/animations/font-variation-settings-unlike.html.
        * animations/font-variations/font-variation-settings.html: Renamed from LayoutTests/animations/font-variation-settings.html.
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

2016-10-19  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Media Controller: click-to-start support
        https://bugs.webkit.org/show_bug.cgi?id=163659
        <rdar://problem/28845656>

        Reviewed by Dean Jackson.

        New test coverage for the StartSupport class.

        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/start-support/start-support-audio-expected.txt: Added.
        * media/modern-media-controls/start-support/start-support-audio.html: Added.
        * media/modern-media-controls/start-support/start-support-autoplay-expected.txt: Added.
        * media/modern-media-controls/start-support/start-support-autoplay.html: Added.
        * media/modern-media-controls/start-support/start-support-click-to-start-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-controller/media-controller-click-to-start-expected.txt.
        * media/modern-media-controls/start-support/start-support-click-to-start.html: Renamed from LayoutTests/media/modern-media-controls/media-controller/media-controller-click-to-start.html.
        * media/modern-media-controls/start-support/start-support-error-expected.txt: Added.
        * media/modern-media-controls/start-support/start-support-error.html: Added.
        * media/modern-media-controls/start-support/start-support-fullscreen-expected.txt: Added.
        * media/modern-media-controls/start-support/start-support-fullscreen.html: Added.
        * media/modern-media-controls/start-support/start-support-manual-play-expected.txt: Added.
        * media/modern-media-controls/start-support/start-support-manual-play.html: Added.
        * media/modern-media-controls/start-support/start-support-no-source-expected.txt: Added.
        * media/modern-media-controls/start-support/start-support-no-source.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-10-19  Aaron Chu  <aaron_chu@apple.com>

        Web Inspector: AXI: expose computed tree node and heading level
        https://bugs.webkit.org/show_bug.cgi?id=130825
        <rdar://problem/16442349>

        Reviewed by Joseph Pecoraro.

        Included logging of the two newly exposed accessibility properties:
        Heading Level and Hierarchical Level.

        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
        * inspector/dom/getAccessibilityPropertiesForNode.html:

2016-10-19  Zalan Bujtas  <zalan@apple.com>

        Use anonymous table row for new child at RenderTableRow::addChild() if available.
        https://bugs.webkit.org/show_bug.cgi?id=163651
        <rdar://problem/28705022>

        Reviewed by David Hyatt.

        * fast/table/crash-when-table-has-continuation-and-content-inserted-expected.txt: Added.
        * fast/table/crash-when-table-has-continuation-and-content-inserted.html: Added.

2016-10-19  Chris Dumez  <cdumez@apple.com>

        MouseEvent's coordinates should be 0 for simulated clicks
        https://bugs.webkit.org/show_bug.cgi?id=163648

        Reviewed by Darin Adler.

        Add layout test coverage. I verified that this test is passing in
        Firefox and Chrome as well.

        * fast/events/element-click-no-coords-expected.txt: Added.
        * fast/events/element-click-no-coords.html: Added.

2016-10-19  Nan Wang  <n_wang@apple.com>

        AX: [Mac] Meter element should use AXValueDescription to descrbe the status of the value
        https://bugs.webkit.org/show_bug.cgi?id=163610

        Reviewed by Chris Fleizach.

        * accessibility/mac/meter-gauge-value-description-expected.txt: Added.
        * accessibility/mac/meter-gauge-value-description.html: Added.

2016-10-19  Ryan Haddad  <ryanhaddad@apple.com>

        Marking WPT html/webappapis/animation-frames/callback-* tests as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=163361

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-10-19  Javier Fernandez  <jfernandez@igalia.com>

        Web Inspector: Debugger buttons positioned incorrectly, align-content default value is unexpected
        https://bugs.webkit.org/show_bug.cgi?id=163572

        Reviewed by Sergio Villar Senin.

        Modified test cases for initial values.
        Added regression test for the align-content issue.

        * css3/flexbox/flexbox-lines-must-be-stretched-by-default-expected.txt: Added.
        * css3/flexbox/flexbox-lines-must-be-stretched-by-default.html: Added.
        * fast/css/ensure-flexbox-compatibility-with-initial-values-expected.txt:

2016-10-19  Jer Noble  <jer.noble@apple.com>

        [Mac][MSE] Movies with a 'mvex' box have a zero-duration
        https://bugs.webkit.org/show_bug.cgi?id=163641

        Reviewed by Darin Adler.

        * media/media-source/content/test-fragmented-manifest.json:
        * media/media-source/content/test-fragmented.mp4:
        * platform/mac/TestExpectations:

2016-10-18  Ryosuke Niwa  <rniwa@webkit.org>

        Import the latest custom elements tests from W3C
        https://bugs.webkit.org/show_bug.cgi?id=163640

        Reviewed by Chris Dumez.

        Removed the test re-imported via web-platform-tests in r206838.

        * fast/custom-elements/lifecycle-callback-timing-expected.txt: Removed.
        * fast/custom-elements/lifecycle-callback-timing.html: Removed.

2016-10-18  Chris Dumez  <cdumez@apple.com>

        [Web IDL] Drop webkit-specific extended attributes that are no longer useful
        https://bugs.webkit.org/show_bug.cgi?id=163643

        Reviewed by Ryosuke Niwa.

        Add layout test to check that Notification.permission is now deletable.

        * fast/notifications/notification-permisssion-deletable-expected.txt: Added.
        * fast/notifications/notification-permisssion-deletable.html: Added.

2016-10-18  Mark Lam  <mark.lam@apple.com>

        Invoking Object.prototype.__proto__ accessors directly should throw a TypeError.
        https://bugs.webkit.org/show_bug.cgi?id=154377
        <rdar://problem/27330808>

        Reviewed by Filip Pizlo and Saam Barati.

        * http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
        * http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
        * http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto-expected.txt:
        * http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto-expected.txt:
        * http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto.html:
        * js/dom/activation-proto-expected.txt:
        * js/dom/script-tests/activation-proto.js:
        * js/object-literal-shorthand-construction-expected.txt:
        * js/script-tests/object-literal-shorthand-construction.js:
        * js/script-tests/sloppy-getter-setter-global-object.js:
        * js/sloppy-getter-setter-global-object-expected.txt:

2016-10-18  Chris Dumez  <cdumez@apple.com>

        [Web IDL] Kill support for [LegacyConstructorTemplate=Event] / [LegacyInitializedByEventConstructor]
        https://bugs.webkit.org/show_bug.cgi?id=163630

        Reviewed by Darin Adler.

        Update / rebaseline existing tests to reflect minor behavior changes.

        * fast/events/constructors/event-constructors-expected.txt:
        * fast/events/constructors/event-constructors.html:
        * fast/events/constructors/ui-event-constructor-expected.txt:

2016-10-18  Chris Dumez  <cdumez@apple.com>

        Changing details.open should cause a toggle event to be fired asynchronously
        https://bugs.webkit.org/show_bug.cgi?id=163568

        Reviewed by Darin Adler.

        Rebaseline existing test now that a new ontoggle attribute is exposed.

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

2016-10-18  Chris Dumez  <cdumez@apple.com>

        Provide better form validation messages
        https://bugs.webkit.org/show_bug.cgi?id=163584

        Reviewed by Darin Adler.

        Update existing tests now that form validation messages differ.

        * fast/forms/number/number-validation-message-expected.txt:
        * fast/forms/number/number-validation-message.html:
        * fast/forms/validationMessage-expected.txt:
        * platform/mac/fast/forms/validation-message-appearance-expected.txt:

2016-10-18  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html as flaky on Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=163453

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-18  Chris Dumez  <cdumez@apple.com>

        Leverage new union type support for HTMLSelectElement.add() / HTMLOptionsCollection.add()
        https://bugs.webkit.org/show_bug.cgi?id=163608

        Reviewed by Ryosuke Niwa.

        Rebaseline existing tests now that exception messages are different.

        * fast/dom/HTMLSelectElement/add-expected.txt:
        * fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
        * fast/dom/incompatible-operations-expected.txt:

2016-10-18  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r201471): Keyboard remains visible when swiping back on twitter.com
        https://bugs.webkit.org/show_bug.cgi?id=163581
        <rdar://problem/27739558>

        Reviewed by Simon Fraser.

        Added a regression test for hiding a keyboard when the focused element is removed from the DOM.

        * fast/forms/ios/hide-keyboard-on-node-removal-expected.txt: Added.
        * fast/forms/ios/hide-keyboard-on-node-removal.html: Added.

2016-10-18  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=163598

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-10-18  Ryan Haddad  <ryanhaddad@apple.com>

        Add flaky expectation for tiled-drawing/scrolling/latched-div-with-scroll-snap.html that was errantly removed.

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-18  Said Abou-Hallawa  <sabouhallawa@apple.com>

        SVGCSSParser: m_implicitShorthand value is not reset after adding the shorthand property
        https://bugs.webkit.org/show_bug.cgi?id=116470

        Reviewed by Simon Fraser.

        * fast/css/implicit-property-restore-expected.txt: Added.
        * fast/css/implicit-property-restore.html: Added.

        * fast/css/remove-shorthand-expected.txt:
        Rebase-line the test expected results because of fixing the leak of
        m_implicitShorthand. The bug was happening because "background: ..." property
        comes immediately before the "list-style: ...." property.

2016-10-18  Ryan Haddad  <ryanhaddad@apple.com>

        Marking inspector/debugger/breakpoint-action-eval.html as a flaky timeout on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=163604

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-18  Ryan Haddad  <ryanhaddad@apple.com>

        Marking scroll-restoration-fragment-scrolling-cross-origin.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=161360

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-10-18  Chris Dumez  <cdumez@apple.com>

        Update TrackEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163580

        Reviewed by Sam Weinig.

        Update existing test to reflect behavior change. We now correctly throw a TypeError
        when passing an unexpected track object type to the TrackEvent constructor.

        * fast/events/constructors/track-event-constructor-expected.txt:
        * fast/events/constructors/track-event-constructor.html:

2016-10-18  Nael Ouedraogo  <nael.ouedraogo@crf.canon.fr>

        Rebase test in fast/mediastream

        [GTK] Test gardening after r206956
        https://bugs.webkit.org/show_bug.cgi?id=163596

        Unreviewed.

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

2016-10-18  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Resolve constraints and enumerate devices in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=162147
        <rdar://problem/28803569>

        Reviewed by Darin Adler.

        * fast/mediastream/getusermedia-expected.txt: Updated.
        * fast/mediastream/getusermedia.html: Ditto.
        * fast/mediastream/mock-media-source-expected.txt: Ditto.

2016-10-18  Caitlin Potter  <caitp@igalia.com>

        [JSC] ES6 Method functions should not have prototype
        https://bugs.webkit.org/show_bug.cgi?id=162530

        Reviewed by Saam Barati.

        Update expected error message to no longer indicate "strict mode"
        (which is not always true), and add additional tests for the presence
        of "caller" and "arguments" on accessor MethodDefinitions.

        * js/basic-strict-mode-expected.txt:
        * js/caller-property-expected.txt:
        * js/class-syntax-method-names-expected.txt:
        * js/es6-function-properties-expected.txt:
        * js/non-strict-function-properties-expected.txt:
        * js/script-tests/caller-property.js:
        * js/script-tests/class-syntax-method-names.js:
        * js/script-tests/es6-function-properties.js:
        (k.get getter):
        (k.set setter):
        (get checkProperties):
        * js/script-tests/non-strict-function-properties.js:

2016-10-18  Javier Fernandez  <jfernandez@igalia.com>

        [css-grid] Different width of grid container between initial load and refresh
        https://bugs.webkit.org/show_bug.cgi?id=163535

        Reviewed by Manuel Rego Casasnovas.

        Tests to ensure repeated layouts on grid elements produce the same results when using
        orthogonal grid items.

        * fast/css-grid-layout/repeating-layout-must-produce-the-same-results-expected.txt: Added.
        * fast/css-grid-layout/repeating-layout-must-produce-the-same-results.html: Added.

2016-10-17  Sergio Villar Senin  <svillar@igalia.com>

        [css-grid] Constrain by min|max-height on auto repeat computation
        https://bugs.webkit.org/show_bug.cgi?id=163540

        Reviewed by Darin Adler.

        Some new test cases to verify that min-height is used on the auto repeat tracks computation
        whenever the height is indefinite and max-height is not.

        * fast/css-grid-layout/grid-auto-fill-rows-expected.txt:
        * fast/css-grid-layout/grid-auto-fill-rows.html:
        * fast/css-grid-layout/grid-indefinite-size-auto-repeat-crash-expected.txt:
        * fast/css-grid-layout/grid-indefinite-size-auto-repeat-crash.html:

2016-10-17  Megan Gardner  <megan_gardner@apple.com>

        Add test and infrastructure for link popover
        https://bugs.webkit.org/show_bug.cgi?id=163406

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/iphone7/force-press-on-link-expected.txt: Added.
        * fast/events/touch/ios/iphone7/force-press-on-link.html: Added.

2016-10-17  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Add toggles for debugger pauses at console.assert failures
        https://bugs.webkit.org/show_bug.cgi?id=139542
        <rdar://problem/19281600>

        Reviewed by Timothy Hatcher.

        * inspector/debugger/pause-on-assert.html:
        * inspector/debugger/pause-reason.html:
        These tests need to enable pause on assertions.

        * inspector/debugger/setPauseOnAssertions-expected.txt: Added.
        * inspector/debugger/setPauseOnAssertions.html: Added.
        Specific tests for the new protocol method.

2016-10-17  Ryan Haddad  <ryanhaddad@apple.com>

        Marking platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html as flaky on ios-simulator debug.
        https://bugs.webkit.org/show_bug.cgi?id=163362

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2016-10-17  Simon Fraser  <simon.fraser@apple.com>

        Implement DOMRect/DOMRectReadOnly
        https://bugs.webkit.org/show_bug.cgi?id=163464

        Reviewed by Darin Adler.
        
        New test and new results for global constructor tests.

        * geometry/DOMRect-001-expected.txt: Added.
        * geometry/DOMRect-001.html: Added.
        * js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
        * js/dom/global-constructors-attributes-expected.txt:
        * platform/efl/js/dom/global-constructors-attributes-expected.txt:
        * platform/gtk/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac/js/dom/global-constructors-attributes-expected.txt:
        * platform/win/js/dom/global-constructors-attributes-expected.txt:

2016-10-17  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Basic MediaController
        https://bugs.webkit.org/show_bug.cgi?id=163539
        <rdar://problem/28797542>

        Reviewed by Darin Adler.

        Testing the properties of the new MediaController class and the availability and behavior of the
        createControls() global function.

        * media/modern-media-controls/media-controller/media-controller-click-to-start-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-click-to-start.html: Added.
        * media/modern-media-controls/media-controller/media-controller-constructor-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-constructor.html: Added.
        * media/modern-media-controls/media-controller/media-controller-resize-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-resize.html: Added.

2016-10-17  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Skip layout tests under crypto/workers/subtle

        * platform/gtk/TestExpectations:

2016-10-17  Nan Wang  <n_wang@apple.com>

        AX: [Mac] mapping for output elements
        https://bugs.webkit.org/show_bug.cgi?id=163471

        Reviewed by Chris Fleizach.

        * accessibility/mac/output-element-expected.txt: Added.
        * accessibility/mac/output-element.html: Added.

2016-10-17  Simon Fraser  <simon.fraser@apple.com>

        Implement DOMPoint/DOMPointReadOnly
        https://bugs.webkit.org/show_bug.cgi?id=133916

        Reviewed by Darin Adler.
        
        New Web Platform-style test, and rebaselines.

        * geometry/DOMPoint-001-expected.txt: Added.
        * geometry/DOMPoint-001.html: Added.
        * js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
        * js/dom/global-constructors-attributes-expected.txt:
        * platform/efl/js/dom/global-constructors-attributes-expected.txt:
        * platform/gtk/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac/js/dom/global-constructors-attributes-expected.txt:
        * platform/win/js/dom/global-constructors-attributes-expected.txt:

2016-10-17  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline mathml/mathml-in-dashboard.html for mac.

        Unreviewed test gardening.

        * platform/mac/mathml/mathml-in-dashboard-expected.txt: Added.

2016-10-16  Nan Wang  <n_wang@apple.com>

        AX: [Mac] roleDescription for AXTextField input types
        https://bugs.webkit.org/show_bug.cgi?id=163419
        <rdar://problem/28766192>

        Reviewed by Darin Adler.

        * platform/mac/accessibility/roles-exposed-expected.txt:

2016-10-16  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed GTK test gardening

        * mathml/mathml-in-dashboard-expected.txt:
        * platform/gtk/TestExpectations:

2016-10-16  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Styles for StartButton are missing
        https://bugs.webkit.org/show_bug.cgi?id=163499
        <rdar://problem/28792009>

        Reviewed by Darin Adler.

        New test checking StartButton instances have the right CSS styles applied to their DOM structure.

        * media/modern-media-controls/start-button/start-button-styles-expected.txt: Added.
        * media/modern-media-controls/start-button/start-button-styles.html: Added.

2016-10-16  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        [EFL] Meter tests have been failed since r207280

        Unreviewed EFL gardening. And add new baseline for meter-element.html.

        * platform/efl/TestExpectations: Mark 2 tests to failure.
        * platform/efl/fast/dom/HTMLMeterElement/meter-element-expected.txt: Added.

2016-10-15  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Delete the animated image catchup code
        https://bugs.webkit.org/show_bug.cgi?id=163410

        Reviewed by Simon Fraser.

        This animated gif has one red frame, one green frame and two red frames.
        The test page renders only two frames from this this image on a canvas. The
        test passes if the second frame (the green one) is rendered on the canvas
        even if drawImage() is called after the duration of the first frame.

        * fast/images/ordered-animated-image-frames-expected.html: Added.
        * fast/images/ordered-animated-image-frames.html: Added.
        * fast/images/resources/animated-red-green-blue.gif: Added.

2016-10-15  Myles C. Maxfield  <mmaxfield@apple.com>

        Test that duplicate axis values in font-variation-settings are resolved correctly
        https://bugs.webkit.org/show_bug.cgi?id=163489

        Reviewed by Darin Adler.

        * fast/text/variations/duplicate-axis-expected.html: Added.
        * fast/text/variations/duplicate-axis.html: Added.

2016-10-15  Sam Weinig  <sam@webkit.org>

        MessageEvent's source property should be a (DOMWindow or MessagePort)? rather than a EventTarget?
        https://bugs.webkit.org/show_bug.cgi?id=163475

        Reviewed by Simon Fraser.

        * fast/dom/message-port-deleted-by-accessor.html:
        Switch source parameter to null to avoid accidental type error.

        * fast/events/constructors/message-event-constructor-expected.txt:
        * fast/events/constructors/message-event-constructor.html:
        Update test expect a thrown type error, as is now expected, for non-window or MessagePort EventTargets.

2016-10-15  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] macOS inline controls
        https://bugs.webkit.org/show_bug.cgi?id=163444
        <rdar://problem/27989473>

        Reviewed by Dean Jackson.

        Testing the properties of the new MacOSMediaControls and MacOSInlineMediaControls classes.

        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html: Added.
        * media/modern-media-controls/macos-media-controls/macos-media-controls-expected.txt: Added.
        * media/modern-media-controls/macos-media-controls/macos-media-controls.html: Added.

2016-10-14  Antti Koivisto  <antti@apple.com>

        100% CPU on homedepot.com page
        https://bugs.webkit.org/show_bug.cgi?id=163452
        <rdar://problem/28730708>

        Reviewed by Simon Fraser.

        * fast/animation/animation-style-update-size-expected.txt: Added.
        * fast/animation/animation-style-update-size.html: Added.

2016-10-14  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r207319.

        Regressed Dromaeo and may have caused crashes under
        GuardMalloc (rdar://problem/28780835)

        Reverted changeset:

        "[Web IDL] Add support for [SameObject] extended attribute"
        https://bugs.webkit.org/show_bug.cgi?id=163414
        http://trac.webkit.org/changeset/207319

2016-10-14  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-grid] Changing the argument on fit-content() doesn't cause the grid to be relayout
        https://bugs.webkit.org/show_bug.cgi?id=163434

        Reviewed by Sergio Villar Senin.

        * fast/css-grid-layout/grid-change-fit-content-argument-expected.txt: Added.
        * fast/css-grid-layout/grid-change-fit-content-argument.html: Added.

2016-10-14  Joseph Pecoraro  <pecoraro@apple.com>

        test262: Failure with RegExp.prototype.compile when pattern is undefined
        https://bugs.webkit.org/show_bug.cgi?id=163431

        Reviewed by Yusuke Suzuki.

        * js/regexp-compile-expected.txt:
        * js/script-tests/regexp-compile.js:

2016-10-14  Antoine Quint  <graouts@apple.com>

        REGRESSION (r207299): media/modern-media-controls/pip-button/pip-button.html and media/modern-media-controls/skip-back-button/skip-back-button.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=163411

        Reviewed by Antoine Quint.

        Ensure all buttons have their required images loaded before we check on the mask-image set through CSS.

        * media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html:
        * media/modern-media-controls/forward-button/forward-button.html:
        * media/modern-media-controls/fullscreen-button/fullscreen-button.html:
        * media/modern-media-controls/mute-button/mute-button.html:
        * media/modern-media-controls/pip-button/pip-button.html:
        * media/modern-media-controls/rewind-button/rewind-button.html:
        * media/modern-media-controls/skip-back-button/skip-back-button.html:
        * media/modern-media-controls/tracks-button/tracks-button.html:

2016-10-14  Youenn Fablet  <youenn@apple.com>

        Make NetworkCache aware of fetch cache mode
        https://bugs.webkit.org/show_bug.cgi?id=163332

        Reviewed by Antti Koivisto.

        * platform/ios-simulator/TestExpectations:
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt: Added.
        * platform/win/TestExpectations:
        * platform/wk2/TestExpectations:

2016-10-13  Joseph Pecoraro  <pecoraro@apple.com>

        Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
        https://bugs.webkit.org/show_bug.cgi?id=163426

        Reviewed by Geoffrey Garen.

        * js/exception-expression-offset-expected.txt:
        * js/script-tests/exception-expression-offset.js:
        (testException):
        Correct existing tests and add new tests for multiple and intermixed
        dot / bracket accesses.

2016-10-13  Alex Christensen  <achristensen@webkit.org>

        Hosts of URLs with non-special schemes should be case-sensitive, and non-ASCII characters in such hosts should be punycode-encoded
        https://bugs.webkit.org/show_bug.cgi?id=163413

        Reviewed by Tim Horton.

        * contentfiltering/block-after-add-data-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-add-data-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-response-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-response-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt:
        * fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
        * fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
        * fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
        * fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
        * fast/css/getComputedStyle/computed-style-border-image-expected.txt:
        * fast/css/getComputedStyle/computed-style-border-image.html:
        * fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
        * fast/css/getComputedStyle/computed-style-cross-fade.html:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:
        * fast/css/getComputedStyle/getComputedStyle-list-style-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html:
        * fast/loader/url-parse-1-expected.txt:
        * fast/url/host-lowercase-per-scheme-expected.txt:
        * fast/url/safari-extension-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
        Update test expectations.  This is how they were before r207162, showing that this change to the URLParser increases compatibility.

2016-10-13  Chris Dumez  <cdumez@apple.com>

        [Web IDL] Add support for [SameObject] extended attribute
        https://bugs.webkit.org/show_bug.cgi?id=163414

        Reviewed by Darin Adler.

        Add layout test coverage.

        * js/dom/SameObject-support-expected.txt: Added.
        * js/dom/SameObject-support.html: Added.

2016-10-13  Nan Wang  <n_wang@apple.com>

        AX: [Mac] better accessibility support for Summary elements
        https://bugs.webkit.org/show_bug.cgi?id=163367
        <rdar://problem/28745010>

        Reviewed by Chris Fleizach.

        * accessibility/mac/details-summary-expected.txt:
        * accessibility/mac/details-summary-role-description-expected.txt:
        * accessibility/mac/details-summary-role-description.html:
        * accessibility/mac/details-summary.html:

2016-10-13  Ryan Haddad  <ryanhaddad@apple.com>

        Marking inspector/debugger/breakpoints/resolved-dump-each-line.html as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=161951

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Stepping highlight for dot/bracket expressions in if statements highlights subset of the expression
        https://bugs.webkit.org/show_bug.cgi?id=163378
        <rdar://problem/28749376>

        Reviewed by Saam Barati.

        * inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
        * inspector/debugger/breakpoints/resolved-dump-each-line-expected.txt:
        * inspector/debugger/breakpoints/resources/dump-general.js:
        * inspector/debugger/stepping/stepping-misc-expected.txt:
        * inspector/debugger/stepping/stepping-misc.html:
        Add tests for these kinds of special cases.

2016-10-13  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] MediaControls base class
        https://bugs.webkit.org/show_bug.cgi?id=163387
        <rdar://problem/28753955>

        Reviewed by Dean Jackson.

        Testing the properties of the new MediaControls class.

        * media/modern-media-controls/media-controls/media-controls-constructor-expected.txt: Added.
        * media/modern-media-controls/media-controls/media-controls-constructor.html: Added.
        * media/modern-media-controls/media-controls/media-controls-placard-expected.txt: Added.
        * media/modern-media-controls/media-controls/media-controls-placard.html: Added.
        * media/modern-media-controls/media-controls/media-controls-start-button-expected.txt: Added.
        * media/modern-media-controls/media-controls/media-controls-start-button.html: Added.

2016-10-13  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] TimeControl and TimeLabel
        https://bugs.webkit.org/show_bug.cgi?id=163356
        <rdar://problem/28741376>

        Reviewed by Dean Jackson.

        Adding tests for the new TimeControl and TimeLabel classes.

        * media/modern-media-controls/time-control/time-control-expected.txt: Added.
        * media/modern-media-controls/time-control/time-control.html: Added.
        * media/modern-media-controls/time-label/time-label-expected.txt: Added.
        * media/modern-media-controls/time-label/time-label.html: Added.

2016-10-13  Jer Noble  <jer.noble@apple.com>

        CRASH at WebCore::SourceBuffer::removeCodedFrames + 37
        https://bugs.webkit.org/show_bug.cgi?id=163336

        Reviewed by Alex Christensen.

        * media/media-source/media-source-remove-crash-expected.txt: Added.
        * media/media-source/media-source-remove-crash.html: Added.

2016-10-13  Sergio Villar Senin  <svillar@igalia.com>

        [css-grid] Use min-size instead of min-content contribution for intrinsic maximums resolution
        https://bugs.webkit.org/show_bug.cgi?id=163283

        Reviewed by Manuel Rego Casasnovas.

        Uncommented a bunch of failing test cases that are working fine now.

        * fast/css-grid-layout/grid-intrinsic-maximums-expected.html:
        * fast/css-grid-layout/grid-intrinsic-maximums.html:

2016-10-11  Sergio Villar Senin  <svillar@igalia.com>

        [css-grid] Fix intrinsic maximums resolution with fit-content and auto
        https://bugs.webkit.org/show_bug.cgi?id=163282

        Reviewed by Manuel Rego Casasnovas.

        New test cases to verify that all tracks with intrinsic max track sizing functions are used
        in step 2.5 of the track sizing algorith. Some of the new test cases are commented due to
        http://wkb.ug/163283.

        * fast/css-grid-layout/grid-intrinsic-maximums-expected.html: Added.
        * fast/css-grid-layout/grid-intrinsic-maximums.html: Added.

2016-10-13  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Rebaseline tests affected by r207280 and report 3 new failures on accesibility tests.
        https://bugs.webkit.org/show_bug.cgi?id=163383

        Unreviewed gardening.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt:
        * platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt:
        * platform/gtk/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
        * platform/gtk/fast/dom/HTMLMeterElement/meter-element-expected.txt: Added.
        * platform/gtk/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Added.
        * platform/gtk/fast/dom/HTMLMeterElement/meter-optimums-expected.txt:
        * platform/gtk/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
        * platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.txt:

2016-10-13  Antti Koivisto  <antti@apple.com>

        Support scoped style for user agent shadow trees
        https://bugs.webkit.org/show_bug.cgi?id=163212
        <rdar://problem/28715318>

        Reviewed by Ryosuke Niwa and Andreas Kling.

        * fast/dom/HTMLMeterElement/meter-clone-expected.txt:
        * fast/dom/HTMLMeterElement/meter-clone.html:
        * fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:
        * platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt:
        * platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
        * platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt:

2016-10-12  Chris Dumez  <cdumez@apple.com>

        Update WebKitMediaKeyMessageEvent / WebKitMediaKeyNeededEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163369

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/events/webkit-media-key-events-constructor-expected.txt: Added.
        * fast/events/webkit-media-key-events-constructor.html: Added.

2016-10-12  Chris Dumez  <cdumez@apple.com>

        Update HTMLSelectElement::recalcListItems() to ignore nested optgroup elements
        https://bugs.webkit.org/show_bug.cgi?id=163358

        Reviewed by Kent Tamura.

        Add layout test coverage.

        * fast/dom/HTMLSelectElement/nested-optgroup-expected.txt: Added.
        * fast/dom/HTMLSelectElement/nested-optgroup.html: Added.

2016-10-12  Zalan Bujtas  <zalan@apple.com>

        RenderRubyRun should not mark child renderers dirty at the end of layout.
        https://bugs.webkit.org/show_bug.cgi?id=163359
        <rdar://problem/28711840>

        Reviewed by David Hyatt.

        * fast/ruby/rubyrun-has-bad-child-expected.txt: Added.
        * fast/ruby/rubyrun-has-bad-child.html: Added.

2016-10-12  Simon Fraser  <simon.fraser@apple.com>

        polygonPathFromPoints calls uncheckedAppend, but assertion size() < capacity() fails
        https://bugs.webkit.org/show_bug.cgi?id=163276

        Reviewed by Sam Weinig.

        * css3/masking/large-clip-path-expected.txt: Added.
        * css3/masking/large-clip-path.html: Added.

2016-10-12  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: step-into `console.log(o)` should not step through inspector javascript
        https://bugs.webkit.org/show_bug.cgi?id=161656
        <rdar://problem/28181123>

        Reviewed by Timothy Hatcher.

        * inspector/debugger/stepping/stepping-internal-scripts-expected.txt: Added.
        * inspector/debugger/stepping/stepping-internal-scripts.html: Added.
        Ensure step-into a console.log statement steps past it, and doesn't pause
        inside the non-visible internal script.

2016-10-12  Yusuke Suzuki  <utatane.tea@gmail.com>

        Unreviewed, add expected file for new test after r207239
        https://bugs.webkit.org/show_bug.cgi?id=163245

        Add an "expected.txt" file.

        * js/dom/domjit-accessor-node-type-expected.txt: Added.

2016-10-12  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Sliders: scrubber and volume
        https://bugs.webkit.org/show_bug.cgi?id=163328
        <rdar://problem/28733838>

        Reviewed by Dean Jackson.

        Testing the properties of the new Slider class and its subclasses.

        * media/modern-media-controls/resources/media-controls-utils.js: Added.
        (rgba):
        (shouldBeEqualToRGBAColor):
        * media/modern-media-controls/scrubber/scrubber-expected.txt: Added.
        * media/modern-media-controls/scrubber/scrubber.html: Added.
        * media/modern-media-controls/slider/slider-constructor-expected.txt: Added.
        * media/modern-media-controls/slider/slider-constructor.html: Added.
        * media/modern-media-controls/slider/slider-fill-expected.txt: Added.
        * media/modern-media-controls/slider/slider-fill.html: Added.
        * media/modern-media-controls/slider/slider-styles-expected.txt: Added.
        * media/modern-media-controls/slider/slider-styles.html: Added.
        * media/modern-media-controls/volume-slider/volume-slider-expected.txt: Added.
        * media/modern-media-controls/volume-slider/volume-slider-value-expected.txt: Added.
        * media/modern-media-controls/volume-slider/volume-slider-value.html: Added.
        * media/modern-media-controls/volume-slider/volume-slider.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-10-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add experimental support for the "formatForeColor" inputType
        https://bugs.webkit.org/show_bug.cgi?id=163348
        <rdar://problem/28739334>

        Reviewed by Ryosuke Niwa.

        Adds a new test verifying that input events with inputType "formatForeColor" are dispatched when changing
        foreground color, and that their data attributes are as expected.

        * fast/events/input-events-forecolor-data-expected.txt: Added.
        * fast/events/input-events-forecolor-data.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-10-12  Yusuke Suzuki  <utatane.tea@gmail.com>

        [DOMJIT][JSC] Explore the way to embed nodeType into JSC::JSType in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=163245

        Reviewed by Filip Pizlo.

        * js/dom/domjit-accessor-node-type.html: Added.

2016-10-12  Chris Dumez  <cdumez@apple.com>

        Update more events to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163339

        Reviewed by Ryosuke Niwa.

        Update existing tests to reflect minor behavior changes.

        * fast/events/constructors/storage-event-constructor-expected.txt:
        * fast/events/constructors/storage-event-constructor.html:
        * fast/events/constructors/webgl-context-event-constructor-expected.txt:
        * fast/events/constructors/webgl-context-event-constructor.html:

2016-10-12  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Improve support for logging Proxy objects in console
        https://bugs.webkit.org/show_bug.cgi?id=163323
        <rdar://problem/28432553>

        Reviewed by Timothy Hatcher.

        * inspector/console/console-log-proxy-expected.txt: Added.
        * inspector/console/console-log-proxy.html: Added.
        Add a test specific to console logs of Proxy objects to ensure the get
        trap is not used in different cases.

        * inspector/model/remote-object-expected.txt:
        * inspector/model/remote-object.html:
        * platform/mac/inspector/model/remote-object-expected.txt:
        Update results for Proxy objects and include a test for a multi-level
        Proxy object, which should preview the target.

2016-10-12  Joseph Pecoraro  <pecoraro@apple.com>

        Emit DebugHooks uniformly with pause locations instead of having separate pause locations and op_debug emits
        https://bugs.webkit.org/show_bug.cgi?id=162809

        Reviewed by Geoffrey Garen.

        * inspector/debugger/stepping/stepping-control-flow-expected.txt:
        * inspector/debugger/stepping/stepping-control-flow.html:
        Add new tests for stepping through conditional expressions with constants,
        logical operations, binary operations, and unary negations.

        * inspector/debugger/stepping/stepping-loops-expected.txt:
        * inspector/debugger/stepping/stepping-loops.html:
        Update tests for changes in stepping behavior in for loops.

2016-10-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Tests that fail since the new URLParser has been enabled on r207162.
        https://bugs.webkit.org/show_bug.cgi?id=163335

        Unreviewed gardening.

        Rebaseline 12 tests that don't look like real failures, and report the other 36 that look as such.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/css-generated-content/malformed-url-expected.txt: Added.
        * platform/gtk/fast/loader/redirect-to-invalid-url-using-javascript-calls-policy-delegate-expected.txt: Added.
        * platform/gtk/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt: Added.
        * platform/gtk/fast/loader/url-parse-1-expected.txt: Added.
        * platform/gtk/fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt: Added.
        * platform/gtk/fast/url/invalid-idn-expected.txt: Added.
        * platform/gtk/fast/url/segments-userinfo-vs-host-expected.txt: Added.
        * platform/gtk/fast/url/tab-and-newline-stripping-expected.txt: Added.
        * platform/gtk/fast/url/url-credentials-escaping-expected.txt: Added.
        * platform/gtk/http/tests/eventsource/eventsource-cors-non-http-expected.txt: Added.
        * platform/gtk/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/failure-expected.txt: Added.

2016-10-12  Chris Dumez  <cdumez@apple.com>

        Update remaining DOM events to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163319

        Reviewed by Darin Adler.

        Rebaseline several existing tests to reflect minor behavior changes:
        - We now properly use the default member value when an explicit undefined
          is passed.
        - We throw more exceptions when bad input is passed.
        - Exception messages are sometimes slightly different.

        * fast/events/constructors/before-load-event-constructor-expected.txt:
        * fast/events/constructors/before-load-event-constructor.html:
        * fast/events/constructors/composition-event-constructor-expected.txt:
        * fast/events/constructors/composition-event-constructor.html:
        * fast/events/constructors/error-event-constructor-expected.txt:
        * fast/events/constructors/error-event-constructor.html:
        * fast/events/constructors/focus-event-constructor-expected.txt:
        * fast/events/constructors/focus-event-constructor.html:
        * fast/events/constructors/hash-change-event-constructor-expected.txt:
        * fast/events/constructors/hash-change-event-constructor.html:
        * fast/events/constructors/pop-state-event-constructor-expected.txt:
        * fast/events/constructors/pop-state-event-constructor.html:
        * fast/events/constructors/transition-event-constructor-expected.txt:
        * fast/events/constructors/transition-event-constructor.html:
        * fast/events/constructors/webkit-animation-event-constructor-expected.txt:
        * fast/events/constructors/webkit-animation-event-constructor.html:
        * fast/events/constructors/webkit-transition-event-constructor-expected.txt:
        * fast/events/constructors/webkit-transition-event-constructor.html:

2016-10-11  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        [EFL] Mark url tests to failure

        Unreviewed EFL gardening on Oct. 12th.

        URL tests have been failed since r207162.

        * platform/efl/TestExpectations:

2016-10-11  Dean Jackson  <dino@apple.com>

        Fix a typo in the test.

        * fast/media/mq-color-gamut.html:

2016-10-11  Ryan Haddad  <ryanhaddad@apple.com>

        Skipping loader/stateobjects tests on mac and ios-simulator debug.
        https://bugs.webkit.org/show_bug.cgi?id=163307

        Unreviewed test gardening.

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

2016-10-11  Dean Jackson  <dino@apple.com>

        color-gamut media query shouldn't ASSERT on invalid values
        https://bugs.webkit.org/show_bug.cgi?id=163303
        <rdar://problem/28724566>

        Reviewed by Simon Fraser.

        Add a 'none' test.

        * fast/media/mq-color-gamut-expected.html:
        * fast/media/mq-color-gamut.html:

2016-10-11  Chris Dumez  <cdumez@apple.com>

        Update MediaStream events to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163289

        Reviewed by Sam Weinig.

        Update existing test cases now that we throw more exceptions on bad input.

        * fast/events/constructors/overconstrained-error-event-constructor-expected.txt:
        * fast/events/constructors/overconstrained-error-event-constructor.html:
        * fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt:
        * fast/mediastream/MediaStreamTrackEvent-constructor.html:

2016-10-11  Dean Jackson  <dino@apple.com>

        Implement prefers-reduced-motion media query
        https://bugs.webkit.org/show_bug.cgi?id=163250
        <rdar://problem/28704129>

        Reviewed by Simon Fraser.

        One test checks the system value. The other test overrides
        the system values to make sure as much as possible is working.

        * fast/media/mq-prefers-reduced-motion-expected.html: Added.
        * fast/media/mq-prefers-reduced-motion-forced-value-expected.html: Added.
        * fast/media/mq-prefers-reduced-motion-forced-value.html: Added.
        * fast/media/mq-prefers-reduced-motion.html: Added.

2016-10-11  Ryan Haddad  <ryanhaddad@apple.com>

        Skip tests added with r207155 that rely on touch events.

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2016-10-11  Chris Dumez  <cdumez@apple.com>

        Update CloseEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163293

        Reviewed by Darin Adler.

        Update existing test to reflect a small behavior change. Passing an explicit
        undefined as 'reason' members now initializes the attribute to the empty
        string (the member's default value) instead of the string "undefined". This
        new behavior matches Chrome and Firefox.

        * fast/events/constructors/close-event-constructor-expected.txt:
        * fast/events/constructors/close-event-constructor.html:

2016-10-11  Alex Christensen  <achristensen@webkit.org>

        Enable URLParser by default
        https://bugs.webkit.org/show_bug.cgi?id=162660
        <rdar://28601706>

        Reviewed by Sam Weinig.

        Many failing tests are now passing.

        The tests in fast/url look like they are an old test suite, some of which we were failing.
        We now pass many more of the tests.  Those results are updated.
        Some URLs in the suite are invalid, and we now "fail" those tests.  Rather than update the
        tests, I just changed the expectation to FAIL, which seems to be tolerable in this directory
        because there were many tests whose result was FAIL.  Each such case is explained below.

        * fast/dom/DOMURL/parsing-expected.txt:
        * fast/dom/DOMURL/parsing.html:
        Percent-encoded values in the host are supposed to be decoded according to the spec.
        %2f decodes to '/' which is an invalid domain character.

        * fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
        * fast/dom/DOMURL/set-href-attribute-hash.html:
        Added a space to the domain (which is an invalid domain character and the others in this
        test are not according to the spec) in order to continue to test that setting the hash of
        an invalid URL does not change its href.

        * fast/dom/DOMURL/set-href-attribute-protocol-expected.txt:
        * fast/dom/DOMURL/set-href-attribute-protocol.html:
        * fast/dom/HTMLAnchorElement/set-href-attribute-protocol-expected.txt:
        * fast/dom/HTMLAnchorElement/set-href-attribute-protocol.html:
        "http:??bar" now canonicalizes to "http://??bar" instead of adding one slash.
                
        * fast/url/file-expected.txt:
        * fast/url/file-http-base-expected.txt:
        Updated results.  Many tests that were failing are now passing.
        
        * fast/url/anchor-expected.txt:
        Percent-encoding of non-ASCII characters in fragments now matches Firefox.
        
        * fast/url/host-expected.txt:
        Wide characters in the host such as http://%ef%bc%85%ef%bc%90%ef%bc%90.com/ should fail to parse.
        This matches Chrome and the spec.
        URLs with an empty host with a port should fail to parse.
        This matches Chrome, Firefox, and the spec.
        
        * fast/url/host-lowercase-per-scheme-expected.txt:
        According to spec, hosts of non-special URLs should be parsed the same as special URL hosts.
        Different browsers seem to have the existing behavior for different reasons.
        See https://github.com/whatwg/url/issues/148 and https://bugs.webkit.org/show_bug.cgi?id=162885

        * fast/url/idna2003-expected.txt:
        * fast/url/invalid-urls-utf8-expected.txt:
        Host encoding is now done according to the spec.

        * fast/url/invalid-idn-expected.txt:
        Neither Chrome, Firefox, nor the spec change invalid hosts to about:blank.
        
        * fast/url/ipv4-expected.txt:
        * fast/url/ipv6-expected.txt:
        "http://[0:0::0:0:8:]/" should indeed be compressed to "http://[::8]/"
        This kind of deterministic compression makes it so that two IPv6 addresses that are equal will
        parse to URLs that are also equal, even if they are written differently.

        * fast/url/path-expected.txt:
        * fast/url/relative-expected.txt:
        * fast/url/relative-win-expected.txt:
        * fast/url/safari-extension-expected.txt:
        Proper canonicalization of non-special hosts should be scheme://host/ or scheme:/// if there is no host.
        safari-extension is not special.
        Hosts should always be canonicalized to lowercase.
        
        * fast/url/segments-expected.txt:
        * fast/url/segments-from-data-url-expected.txt:
        The path of "foo://" should be "/" not "//".
        Extra slashes immediately after scheme:// should be ignored.
        URLs with no host but a port like "http:@:80/www.apple.com" are now invalid, matching Chrome, Firefox, and the spec.

        * fast/url/segments-userinfo-vs-host-expected.txt:
        '@' can be in the user.  If it is, it is percent encoded.  This matches Chrome and Firefox.
        "foo://" has a path of "/" not "//"
        Extra slashes after the scheme such as in "foo://///////" are now ignored according to spec.
        
        * fast/url/standard-url-expected.txt:
        * fast/url/tab-and-newline-stripping-expected.txt:
        http://[2001:5::042:44::0370:7334]/ is an invalid IPv6 address, so parsing it should fail.
        It passed with URL::parse because we used to only check that the characters inside the []
        were valid ipv6 characters, not that they made any sense or were in any kind of bounds.

        * fast/url/url-credentials-escaping-expected.txt:
        Credential encoding is now according to spec.
        
        * http/tests/appcache/resources/x-frame-options-prevents-framing-test.html:
        http:/path1/path2 relative to http://host/path3 now canonicalizes to http://host/path1/path2
        instead of http://path1/path2 so this test, which I believe was missing the second slash in error,
        needs to be fixed.
        
        * imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt:
        Having a '}' in the host of a URL used to be invalid and it is now percent-escaped, matching Chrome and the spec.
        This test still passes on w3c-test.org.  We can look into why it is failing locally later.
        See webkit.org/b/163127

        * fast/loader/redirect-to-invalid-url-using-javascript-calls-policy-delegate-expected.txt:
        * fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt:
        * fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt:
        http://HoSt is now being correctly interpreted as the host, and it is being punycode encoded if it's
        non-ASCII and lowercased if it is.
         
        * fast/forms/ValidityState-typeMismatch-url.html:
        * fast/forms/ValidityState-typeMismatch-url-expected.txt:
        Spaces in the host are invalid.  This matches Firefox and the spec.
        
        * http/tests/inspector/network/copy-as-curl.html:
        '{' and '}' are now percent encoded in the URL path.  This matches Firefox, Chrome, and the spec.
        
        * fast/loader/location-port.html:
        * fast/loader/location-port-expected.txt:
        parsing or setting ports in URLs with no host is no longer supported.  This matches Firefox and Chrome.
        
        * security/block-test-expected.txt:
        * platform/mac/security/block-test-expected.txt:
        out-of-bounds ports now cause parsing failures.
        
        * imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/failure-expected.txt:
        "http://[]/" now fails to parse because it is an invalid IPv6 host.
        
        * fast/url/ipv6-expected.txt:
        IPv4 addresses at the end of IPv6 addresses are now serialized as the equivalent hex value in IPv6 form.
        This matches Chrome and the spec, and makes it so that equal IPv6 addresses written in different forms are equal.
        
        * fast/loader/url-parse-1-expected.txt:
        Extra or missing slashes and spaces around scheme:// are now handled according to the spec.
        
        * http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt:
        The non-standard apple logo character is represented here by its non-standard Latin1 representation, 0xF0.
        It was encoded as 0xF0 UTF-8 then percent encoded, which is %EF%A3%BF.
        It is now encoded as the UTF-8 then percent encoded representation of its unicode value, 0xF8FF which matches other browsers.
        This test is still valid, because it still verifies that the URLs in r199590 are rejected, and they still are.
        See webkit.org/b/163127

        * http/tests/contentextensions/make-https-expected.txt:
        * contentfiltering/block-after-add-data-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-add-data-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-response-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-response-then-deny-unblock-expected.txt:
        * contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt:
        * contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt:
        * fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
        * fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
        * fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
        * fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
        * fast/css/getComputedStyle/computed-style-border-image-expected.txt:
        * fast/css/getComputedStyle/computed-style-border-image.html:
        * fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
        * fast/css/getComputedStyle/computed-style-cross-fade.html:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:
        * fast/css/getComputedStyle/getComputedStyle-list-style-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html:
        URLs with non-special schemes and no slash after the host now do when canonicalized.
        
        * fast/css-generated-content/malformed-url.html:
        This tested what happens when you have an invalid host.  | is now a valid host character.
        I changed it to have a % in the host to test the same behavior.
        
        * fast/loader/window-open-to-invalid-url-disallowed.html:
        * fast/loader/window-open-to-invalid-url-disallowed-expected.txt:
        * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html:
        * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt:
        * fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html:
        * fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
        "http://a=a&b=b" is no longer an invalid URL.  We used to consider the '&' character to be an invalid domain character
        and we don't any more.  This matches Chrome, Firefox, and the spec.
        To keep this test testing what happens if you have an invalid URL, I changed the '&' to a '%' which is an invalid domain character.
        
        * fast/loader/file-URL-with-port-number.html:
        File URLs with a port but no host are now invalid, matching Chrome and Firefox.  File URLs with a port and a host are Ok, though.

        * platform/ios-simulator-wk1/fast/loader: Added.
        * platform/ios-simulator-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt: Added.
        * platform/ios-simulator-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt: Added.
        * platform/ios-simulator-wk1/fast/loader/window-open-to-invalid-url-disallowed-expected.txt: Added.
        * platform/ios-simulator-wk1/imported/w3c/web-platform-tests/XMLHttpRequest: Added.
        * platform/ios-simulator-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt: Added.
        * platform/mac-wk1/fast/loader: Added.
        * platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt: Added.
        * platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt: Added.
        * platform/mac-wk1/fast/loader/window-open-to-invalid-url-disallowed-expected.txt: Added.
        * platform/mac-wk1/imported: Added.
        * platform/mac-wk1/imported/w3c: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest: Added.
        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt: Added.
        * platform/mac/security/block-test-expected.txt:
        Differences between the URLParser and NSURL's parser cause differences in output for WK1 where NSURLRequests are made without serializing WebCore::ResourceRequests.
        In particular, '{' in the host is newly accepted as a valid URL by URLParser, but it is percent-encoded by NSURL's parser.
        See rdar://problem/28701914

2016-10-11  Daniel Bates  <dabates@apple.com>

        [iOS] REGRESSION (r197953): User gesture required to load video in iOS 9-built apps
        https://bugs.webkit.org/show_bug.cgi?id=163244
        <rdar://problem/27250015>

        Reviewed by Jer Noble.

        Add tests to ensure that Settings::setRequiresUserGestureToLoadVideo() behaves as expected.

        * media/loadedmetadata-fires-without-user-gesture-when-setRequiresUserGestureToLoadVideo-false-expected.txt: Added.
        * media/loadedmetadata-fires-without-user-gesture-when-setRequiresUserGestureToLoadVideo-false.html: Added.
        * media/media-controls.js:
        (clickPlayButton): Added.
        * media/require-user-gesture-to-load-video-expected.txt: Added.
        * media/require-user-gesture-to-load-video.html: Added.
        * media/video-controls-transformed.html: Write in terms of clickPlayButton().
        * media/video-controls-visible-audio-only.html: Ditto.
        * media/video-fullscreeen-only-playback.html: Ditto.
        * media/video-play-audio-require-user-gesture.html: Ditto.
        * media/video-play-require-user-gesture.html: Ditto.
        * media/video-test.js:
        (passTest): Added.
        * platform/ios-simulator/TestExpectations: Skip test media/require-user-gesture-to-load-video.html as
        we need to fix <https://bugs.webkit.org/show_bug.cgi?id=163291> to support tapping the play button on iOS.

2016-10-11  Daniel Bates  <dabates@apple.com>

        [iOS] Sandbox QuickLook previews
        https://bugs.webkit.org/show_bug.cgi?id=163240
        <rdar://problem/25961633>

        Reviewed by Brent Fulgham.

        Add tests to ensure that we sandbox QuickLook previews.

        * http/tests/quicklook/at-import-stylesheet-blocked-expected.txt: Added.
        * http/tests/quicklook/at-import-stylesheet-blocked.html: Added.
        * http/tests/quicklook/base-url-blocked-expected.txt: Added.
        * http/tests/quicklook/base-url-blocked.html: Added.
        * http/tests/quicklook/cross-origin-iframe-blocked-expected.txt: Added.
        * http/tests/quicklook/cross-origin-iframe-blocked.html: Added.
        * http/tests/quicklook/csp-header-ignored-expected.txt: Added.
        * http/tests/quicklook/csp-header-ignored.html: Added.
        * http/tests/quicklook/document-domain-is-empty-string-expected.txt: Added.
        * http/tests/quicklook/document-domain-is-empty-string.html: Added.
        * http/tests/quicklook/external-stylesheet-blocked-expected.txt: Added.
        * http/tests/quicklook/external-stylesheet-blocked.html: Added.
        * http/tests/quicklook/hide-referer-on-navigation-expected.txt: Added.
        * http/tests/quicklook/hide-referer-on-navigation.html: Added.
        * http/tests/quicklook/resources/at-import-stylesheet-blocked.docx: Added.
        * http/tests/quicklook/resources/base-url-blocked.docx: Added.
        * http/tests/quicklook/resources/cross-origin-iframe-blocked.docx: Added.
        * http/tests/quicklook/resources/document-domain-is-empty-string.docx: Added.
        * http/tests/quicklook/resources/external-stylesheet-blocked.docx: Added.
        * http/tests/quicklook/resources/fail.html: Added.
        * http/tests/quicklook/resources/hide-referer-on-navigation.docx: Added.
        * http/tests/quicklook/resources/http-equiv-blocked.docx: Added.
        * http/tests/quicklook/resources/pass.docx: Added.
        * http/tests/quicklook/resources/submit-form-blocked.docx: Added.
        * http/tests/quicklook/resources/tap-at-point-and-notify-done.js: Added.
        (tapAtPointAndNotifyDone):
        (uiScript):
        (tapAtPoint):
        * http/tests/quicklook/resources/top-navigation-blocked.docx: Added.
        * http/tests/quicklook/resources/word-document-with-csp-block-frame-ancestors.php: Added.
        * http/tests/quicklook/submit-form-blocked-expected.txt: Added.
        * http/tests/quicklook/submit-form-blocked.html: Added.
        * http/tests/quicklook/top-navigation-blocked-expected.txt: Added.
        * http/tests/quicklook/top-navigation-blocked.html: Added.
        * platform/ios-simulator-wk1/TestExpectations: Skip tests that cannot run in DumpRenderTree
        because uiController.singleTapAtPoint() is not implemented.

2016-10-10  Sam Weinig  <sam@webkit.org>

        Use IDLTypes in more places
        https://bugs.webkit.org/show_bug.cgi?id=163247

        Reviewed by Darin Adler.

        * fast/events/constructors/message-event-constructor-expected.txt:
        * fast/mediastream/MediaStreamConstructor-expected.txt:
        Update tests for different error message.

2016-10-11  Antoine Quint  <graouts@apple.com>

        [mac] LayoutTest media/modern-media-controls/play-pause-button/play-pause-button.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=163249

        Reviewed by Antoine Quint.

        Wait until all icon images are loaded before running the assertions. We can determine whether
        a button's icon image is loaded by checking it's been sized.

        * TestExpectations:
        * media/modern-media-controls/play-pause-button/play-pause-button.html:

2016-10-11  Antoine Quint  <graouts@apple.com>

        [mac] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=163248

        Reviewed by Antoine Quint.

        Wait until all icon images are loaded before running the assertions. We can determine whether
        a button's icon image is loaded by checking it's been sized.

        * TestExpectations:
        * media/modern-media-controls/airplay-button/airplay-button.html:

2016-10-11  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Buttons container
        https://bugs.webkit.org/show_bug.cgi?id=163238
        <rdar://problem/28701864>

        Reviewed by Dean Jackson.

        Adding tests for the new ButtonsContainer class.

        * media/modern-media-controls/buttons-container/buttons-container-buttons-property-expected.txt: Added.
        * media/modern-media-controls/buttons-container/buttons-container-buttons-property.html: Added.
        * media/modern-media-controls/buttons-container/buttons-container-constructor-expected.txt: Added.
        * media/modern-media-controls/buttons-container/buttons-container-constructor.html: Added.
        * media/modern-media-controls/buttons-container/buttons-container-layout-expected.txt: Added.
        * media/modern-media-controls/buttons-container/buttons-container-layout.html: Added.

2016-10-11  Youenn Fablet  <youenn@apple.com>

        [Fetch API] Support Request cache mode
        https://bugs.webkit.org/show_bug.cgi?id=162281

        Reviewed by Alex Christensen.

        Activating request-cache.html tests for WK1, but not yet for WK2.

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

2016-10-11  Chris Dumez  <cdumez@apple.com>

        Update IDBVersionChangeEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163266

        Reviewed by Darin Adler.

        Update existing layout test covering the IDBVersionChangeEvent constructor
        to test to EventInit dictionary members as well.

        * storage/indexeddb/modern/idbversionchangeevent-constructor-expected.txt:
        * storage/indexeddb/modern/idbversionchangeevent-constructor.html:

2016-10-10  Adam Bergkvist  <adam.bergkvist@ericsson.com> and Alejandro G. Castro <alex@igalia.com>

        WebRTC: Make MediaEndpointPeerConnection handle remotely assigned mids correctly
        https://bugs.webkit.org/show_bug.cgi?id=163202

        Reviewed by Eric Carlson.

        Test the case when an RTCRtpTransceiver gets its mid assigned from a remote session
        description.

        * fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid-expected.txt: Added.
        * fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html: Added.
        * platform/mac/TestExpectations:
        Skip above test until the Mac port builds with WEB_RTC.

2016-10-10  Gyuyoung Kim  <gyuyoung.kim@navercorp.com>

        [EFL] Skip imported/w3c/web-platform-tests for a while

        Unreviewed EFL gardening.

        Many imported/w3c/web-platform-tests have been failed, timeout, and crash.
        So skip the tests until fixing all problems.

        Additionally this patch removes duplciated tests.

        * platform/efl/TestExpectations:

2016-10-10  Chris Dumez  <cdumez@apple.com>

        Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163254

        Reviewed by Darin Adler.

        Update existing tests now that:
        - Exception messages are now slightly different in some cases.
        - We now throw when an invalid relatedTarget type is passed in the dictionary.

        * fast/events/constructors/mouse-event-constructor.html:
        * fast/events/constructors/wheel-event-constructor.html:
        * platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt:
        * platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt:

2016-10-10  Chris Dumez  <cdumez@apple.com>

        Add support for languagechange event
        https://bugs.webkit.org/show_bug.cgi?id=163222

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/dom/window-languagechange-event-expected.txt: Added.
        * fast/dom/window-languagechange-event.html: Added.

2016-10-10  Nan Wang  <n_wang@apple.com>

        AX: Expose invalid status for input types with that information
        https://bugs.webkit.org/show_bug.cgi?id=163252
        <rdar://problem/28704409>

        Reviewed by Chris Fleizach.

        * accessibility/mac/invalid-status-for-input-types-expected.txt: Added.
        * accessibility/mac/invalid-status-for-input-types.html: Added.

2016-10-10  Ryan Haddad  <ryanhaddad@apple.com>

        Marking two media/modern-media-controls tests as failing.
        https://bugs.webkit.org/show_bug.cgi?id=163248

        Unreviewed test gardening.

        * TestExpectations:

2016-10-10  Ryan Haddad  <ryanhaddad@apple.com>

        TestExpectations cleanup for LayoutTests that no longer exist.

        Unreviewed test gardening.

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

2016-10-10  Ryan Haddad  <ryanhaddad@apple.com>

        Marking tiled-drawing/scrolling/latched-div-with-scroll-snap.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=162505

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-10  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Placards
        https://bugs.webkit.org/show_bug.cgi?id=163110
        <rdar://problem/28669342>

        Reviewed by Dean Jackson.

        Testing the properties of the new Placard class and its subclasses.

        * media/modern-media-controls/airplay-placard/airplay-placard-expected.txt: Added.
        * media/modern-media-controls/airplay-placard/airplay-placard.html: Added.
        * media/modern-media-controls/pip-placard/pip-placard-expected.txt: Added.
        * media/modern-media-controls/pip-placard/pip-placard.html: Added.
        * media/modern-media-controls/placard/placard-expected.txt: Added.
        * media/modern-media-controls/placard/placard.html: Added.

2016-10-10  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/replaced/preferred-widths.html as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=116621

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-10  Chris Dumez  <cdumez@apple.com>

        Add support for Navigator.languages attribute
        https://bugs.webkit.org/show_bug.cgi?id=163220

        Reviewed by Darin Adler.

        Rebase existing test to reflect change.

        * fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:

2016-10-10  Chris Dumez  <cdumez@apple.com>

        Update MessageEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163187

        Reviewed by Darin Adler.

        Rebaseline existing test now that:
        - Exception messages are sometimes a bit different
        - We properly use the default member value when input is an explicit undefined
        - We throw in more cases of bad input

        * fast/events/constructors/message-event-constructor-expected.txt:
        * fast/events/constructors/message-event-constructor.html:

2016-10-10  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Buttons
        https://bugs.webkit.org/show_bug.cgi?id=163109
        <rdar://problem/28668954>

        Reviewed by Dean Jackson.

        Adding new tests for all new button types introduced, including any custom JS properties
        and backing DOM structure that they may have, as well as checking which assets are loaded.

        * media/modern-media-controls/airplay-button/airplay-button-expected.txt: Added.
        * media/modern-media-controls/airplay-button/airplay-button-on-expected.txt: Added.
        * media/modern-media-controls/airplay-button/airplay-button-on.html: Added.
        * media/modern-media-controls/airplay-button/airplay-button.html: Added.
        * media/modern-media-controls/aspect-ratio-button/aspect-ratio-button-expected.txt: Added.
        * media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html: Added.
        * media/modern-media-controls/forward-button/forward-button-expected.txt: Added.
        * media/modern-media-controls/forward-button/forward-button.html: Added.
        * media/modern-media-controls/fullscreen-button/fullscreen-button-expected.txt: Added.
        * media/modern-media-controls/fullscreen-button/fullscreen-button.html: Added.
        * media/modern-media-controls/mute-button/mute-button-expected.txt: Added.
        * media/modern-media-controls/mute-button/mute-button.html: Added.
        * media/modern-media-controls/pip-button/pip-button-expected.txt: Added.
        * media/modern-media-controls/pip-button/pip-button.html: Added.
        * media/modern-media-controls/play-pause-button/play-pause-button-expected.txt: Added.
        * media/modern-media-controls/play-pause-button/play-pause-button.html: Added.
        * media/modern-media-controls/rewind-button/rewind-button-expected.txt: Added.
        * media/modern-media-controls/rewind-button/rewind-button.html: Added.
        * media/modern-media-controls/skip-back-button/skip-back-button-expected.txt: Added.
        * media/modern-media-controls/skip-back-button/skip-back-button.html: Added.
        * media/modern-media-controls/start-button/start-button-expected.txt: Added.
        * media/modern-media-controls/start-button/start-button.html: Added.
        * media/modern-media-controls/tracks-button/tracks-button-expected.txt: Added.
        * media/modern-media-controls/tracks-button/tracks-button.html: Added.
        * platform/ios-simulator/media/modern-media-controls/airplay-button/airplay-button-on-expected.txt: Added.

2016-10-10  Nan Wang  <n_wang@apple.com>

        AX: Update AXPlaceHolder algorithm
        https://bugs.webkit.org/show_bug.cgi?id=163229

        Reviewed by Chris Fleizach.

        * accessibility/placeholder-expected.txt:
        * accessibility/placeholder.html:

2016-10-10  Yusuke Suzuki  <utatane.tea@gmail.com>

        [DOMJIT] Implement Node accessors in DOMJIT
        https://bugs.webkit.org/show_bug.cgi?id=163005

        Reviewed by Filip Pizlo.

        * js/dom/domjit-accessor-monomorphic-expected.txt: Added.
        * js/dom/domjit-accessor-monomorphic.html: Added.
        * js/dom/domjit-accessor-polymorphic-expected.txt: Added.
        * js/dom/domjit-accessor-polymorphic.html: Added.

2016-10-10  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/controls/airplay-picker.html as flaky on ElCapitan+.
        https://bugs.webkit.org/show_bug.cgi?id=163231

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-10  Wenson Hsieh  <wenson_hsieh@apple.com>

        Support InputEvent.data for the new InputEvent spec
        https://bugs.webkit.org/show_bug.cgi?id=163113
        <rdar://problem/28681935>

        Reviewed by Darin Adler.

        Adds 2 new layout tests verifying the data attribute of `beforeinput` and `input` events when typing, pasting,
        and selecting candidate replacements in plain text and contenteditable areas.

        Also tweaks an existing test to ensure that `data` is an attribute of an InputEvent.

        * fast/events/input-events-fired-when-typing-expected.txt:
        * fast/events/input-events-fired-when-typing.html:
        * fast/events/input-events-paste-data-expected.txt: Added.
        * fast/events/input-events-paste-data.html: Added.
        * fast/events/input-events-typing-data-expected.txt: Added.
        * fast/events/input-events-typing-data.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-10-10  Ryan Haddad  <ryanhaddad@apple.com>

        Marking storage/indexeddb/modern/abort-requests-cancelled* tests as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=156070

        Unreviewed test gardening.

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

2016-10-10  Jer Noble  <jer.noble@apple.com>

        Address flaky airplay-* LayouTests
        https://bugs.webkit.org/show_bug.cgi?id=163044

        Reviewed by Brent Fulgham.

        * media/airplay-autoplay.html:
        * platform/mac/TestExpectations:

2016-10-10  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/xmlhttprequest/onabort-response-getters.html as flaky on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=162647

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2016-10-10  Youenn Fablet  <youennf@gmail.com>

        Sync web-platform-tests up to revision 33f4da1
        https://bugs.webkit.org/show_bug.cgi?id=163205

        Reviewed by Alex Christensen.

        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt:
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
        * platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt:
        * tests-options.json:

2016-10-10  Youenn Fablet  <youenn@apple.com>

        [Fetch API] Memory cache should not bypass redirect mode
        https://bugs.webkit.org/show_bug.cgi?id=162959

        Reviewed by Darin Adler.

        * http/tests/fetch/redirectmode-and-preload-expected.txt: Added.
        * http/tests/fetch/redirectmode-and-preload.html: Added.
        * http/tests/fetch/resources/redirect-with-cache.php:

2016-10-09  Antti Koivisto  <antti@apple.com>

        Enable optimized stylesheet updates in shadow trees
        https://bugs.webkit.org/show_bug.cgi?id=163180

        Reviewed by Darin Adler.

        * fast/shadow-dom/scoped-style-invalidation-expected.txt: Added.
        * fast/shadow-dom/scoped-style-invalidation.html: Added.

2016-10-09  Gyuyoung Kim  <gyuyoung.kim@navercorp.com>

        Unreviewed, EFL Gardening on Oct. 10th - 2

        Mark missing test to Skip because the tests aren't supported by EFL yet.
        Unskip passing tests and add *PASS* to some flaky tests because I guess
        it is still flaky.

        * platform/efl/TestExpectations:

2016-10-09  Wenson Hsieh  <wenson_hsieh@apple.com>

        Support InputEvent.inputType for the new InputEvent spec
        https://bugs.webkit.org/show_bug.cgi?id=163025
        <rdar://problem/28658092>

        Reviewed by Darin Adler.

        Adds new layout tests to check that various actions, such as cutting, pasting and undoing can
        be prevented via the InputEvent fired in a `beforechange` handler.

        * fast/events/before-input-prevent-biu-expected.txt: Added.
        * fast/events/before-input-prevent-biu.html: Added.
        * fast/events/before-input-prevent-cut-expected.txt: Added.
        * fast/events/before-input-prevent-cut.html: Added.
        * fast/events/before-input-prevent-paste-expected.txt: Added.
        * fast/events/before-input-prevent-paste.html: Added.
        * fast/events/before-input-prevent-typing-expected.txt: Added.
        * fast/events/before-input-prevent-typing.html: Added.
        * fast/events/before-input-prevent-undo-expected.txt: Added.
        * fast/events/before-input-prevent-undo.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-10-09  Gyuyoung Kim  <gyuyoung.kim@navercorp.com>

        [EFL] Gardening timout tests, failure tests on Oct. 10th.

        Unreviewed EFL gardening.

        * platform/efl/TestExpectations:

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

        REGRESSION(r165103): labels list doesn't get invalidated when other lists are invalidated at document level
        https://bugs.webkit.org/show_bug.cgi?id=163145

        Reviewed by Darin Adler.

        Added a regression test.

        * fast/dom/NodeList/form-labels-length-expected.txt: Added.
        * fast/dom/NodeList/form-labels-length.html: Added.

2016-10-09  Chris Dumez  <cdumez@apple.com>

        Update KeyboardEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163176

        Reviewed by Darin Adler.

        Rebaseline existing test now that the exception message is slightly
        different in some cases. Also add test coverage for passing
        modifierAltGraph / modifierCapsLock in initialization dictionary.

        * fast/events/constructors/keyboard-event-constructor-expected.txt:
        * fast/events/constructors/keyboard-event-constructor.html:

2016-10-09  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Miscellaneous unreviewed test gardening

        * platform/gtk/TestExpectations:

2016-10-09  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Skip new custom elements tests, they're all failing

        * platform/gtk/TestExpectations:

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

        Promise attribute getters should reject promises in case of casted-this errors
        https://bugs.webkit.org/show_bug.cgi?id=163167

        Reviewed by Darin Adler.

        * fast/text/font-face-set-javascript-expected.txt:
        * fast/text/font-face-set-javascript.html:

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

        [Mac] Write HTML to the pasteboard when copying image in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=163100

        Reviewed by Darin Adler.

        Convert editing/pasteboard/copy-standalone-image.html into a ref test
        and unskip on WebKit2 now that it passes there as well. Before this
        patch, the test would fail on WebKit2 (the pasted image would not be
        displayed).

        * editing/pasteboard/copy-standalone-image-expected.html: Added.
        * editing/pasteboard/copy-standalone-image.html:
        * platform/gtk/editing/pasteboard/copy-standalone-image-expected.png: Removed.
        * platform/gtk/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
        * platform/ios-simulator-wk2/editing/pasteboard/copy-standalone-image-expected.png: Removed.
        * platform/ios-simulator/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
        * platform/mac/editing/pasteboard/copy-standalone-image-expected.png: Removed.
        * platform/mac/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
        * platform/win/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
        * platform/wk2/TestExpectations:

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

        Update CustomEvent to stop using legacy [ConstructorTemplate=Event]
        https://bugs.webkit.org/show_bug.cgi?id=163174

        Reviewed by Darin Adler.

        Update existing layout test to reflect minor behavior change.

        * fast/events/constructors/custom-event-constructor-expected.txt:
        * fast/events/constructors/custom-event-constructor.html:

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

        Add support for ClipboardEvent
        https://bugs.webkit.org/show_bug.cgi?id=163164

        Reviewed by Darin Adler.

        Extended layout test coverage.

        * editing/pasteboard/clipboard-event-expected.txt: Added.
        * editing/pasteboard/clipboard-event.html: Added.
        * fast/events/clipboard-event-constructor-expected.txt: Added.
        * fast/events/clipboard-event-constructor.html: Added.
        * fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
        * http/tests/workers/worker-importScriptsOnError-expected.txt:
        * inspector/model/remote-object-get-properties-expected.txt:
        * js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac/js/dom/global-constructors-attributes-expected.txt:
        * platform/win/js/dom/global-constructors-attributes-expected.txt:

2016-10-08  Ryan Haddad  <ryanhaddad@apple.com>

        Marking js/regress-141098.html as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=163046

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-08  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/media/track-in-band-hls-metadata.html as a flaky timeout on mac.
        https://bugs.webkit.org/show_bug.cgi?id=140022

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-08  Ryan Haddad  <ryanhaddad@apple.com>

        Marking storage/indexeddb/key-generator.html as flaky on mac-wk2 debug.
        https://bugs.webkit.org/show_bug.cgi?id=161653

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-08  Youenn Fablet  <youennf@gmail.com>

        [Fetch API] Request constructor should provide exception messages
        https://bugs.webkit.org/show_bug.cgi?id=162382

        Reviewed by Darin Adler.

        * fetch/fetch-url-serialization-expected.txt: Rebasing test expectation.

2016-10-07  Chris Dumez  <cdumez@apple.com>

        window.navigator.language incorrectly returns all lowercase string
        https://bugs.webkit.org/show_bug.cgi?id=163096

        Reviewed by Darin Adler.

        Update existing test so that it does not lowercase navigator.language
        before checking it. This way, we can make sure it returns en-US and
        not en-us.

        * js/dom/navigator-language-expected.txt:
        * js/dom/navigator-language.html:

2016-10-07  Yusuke Suzuki  <utatane.tea@gmail.com>

        REGRESSION (r206853?): LayoutTest js/regress-141098.html failing
        https://bugs.webkit.org/show_bug.cgi?id=163046

        Reviewed by Saam Barati.

        This is attempt-to-fix patch since I cannot reproduce this flakiness.
        We reduce the number of frames to back off from the stack overflow to
        catch the closer frame limit to the actual stack limit.

        * js/script-tests/regress-141098.js:

2016-10-07  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, mark a test as failing on iOS simulator

        This was intended to be a part of r206944.

        * platform/ios-simulator/TestExpectations:

2016-10-07  Wenson Hsieh  <wenson_hsieh@apple.com>

        Support onbeforeinput event handling for the new InputEvent spec
        https://bugs.webkit.org/show_bug.cgi?id=163021
        <rdar://problem/28658073>

        Reviewed by Darin Adler.

        Tweak an existing test to hook into the 'input' event instead of 'webkitEditableContentChanged', as well as
        tests added in r206843 to verify that `onbeforeinput` handlers are invoked with InputEvents. Also introduces
        new unit tests verifying that calling preventDefault on InputEvents fired by `onbeforeinput` correctly prevent
        text from being inserted or deleted.

        * editing/undo/undo-after-event-edited.html:
        * fast/events/before-input-events-different-start-end-elements-expected.txt: Added.
        * fast/events/before-input-events-different-start-end-elements.html: Added.
        * fast/events/before-input-events-prevent-default-expected.txt: Added.
        * fast/events/before-input-events-prevent-default-in-textfield-expected.txt: Added.
        * fast/events/before-input-events-prevent-default-in-textfield.html: Added.
        * fast/events/before-input-events-prevent-default.html: Added.
        * fast/events/input-events-fired-when-typing-expected.txt:
        * fast/events/input-events-fired-when-typing.html:
        * platform/ios-simulator/TestExpectations:

2016-10-07  Nan Wang  <n_wang@apple.com>

        AX: <figcaption> should be AXTitleUIElement for other content inside the <figure>
        https://bugs.webkit.org/show_bug.cgi?id=108996

        Reviewed by Chris Fleizach.

        * accessibility/mac/figure-element-expected.txt: Added.
        * accessibility/mac/figure-element.html: Added.

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking inspector/debugger/stepping tests as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=161951

        Unreviewed test gardening.

        * TestExpectations:

2016-10-07  Jonathan Bedard  <jbedard@apple.com>

        js/function-apply-aliased.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=127860

        Reviewed by Darin Adler.

        This test no longer times out.  Reintegrating into test suites.

        * TestExpectations: Stopped skipping js/function-apply-aliased.html.

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking inspector/console/addInspectedNode.html as flaky on mac-debug.
        https://bugs.webkit.org/show_bug.cgi?id=155138

        Unreviewed test gardening.

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

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/cache/disk-cache/memory-cache-revalidation-updates-disk-cache.html as flaky on mac-wk2 debug.
        https://bugs.webkit.org/show_bug.cgi?id=162975

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html as flaky on mac-wk2
        https://bugs.webkit.org/show_bug.cgi?id=163139

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-07  Chris Dumez  <cdumez@apple.com>

        Regression(r201970): productSub / vendor / vendorSub should not be exposed on WorkerNavigator
        https://bugs.webkit.org/show_bug.cgi?id=163124

        Reviewed by Ryosuke Niwa.

        Update existing test to reflect behavior change.

        * fast/workers/resources/worker-navigator.js:
        * fast/workers/worker-navigator-expected.txt:

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/xmlhttprequest/auth-reject-protection-space.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=163136

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking storage/indexeddb/key-type-array.html as flaky on mac-debug.
        https://bugs.webkit.org/show_bug.cgi?id=161720

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-07  Nan Wang  <n_wang@apple.com>

        AX: AXRoleDescription for details and summary elements
        https://bugs.webkit.org/show_bug.cgi?id=163094

        Reviewed by Chris Fleizach.

        * accessibility/mac/details-summary-role-description-expected.txt: Added.
        * accessibility/mac/details-summary-role-description.html: Added.

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking imported/blink/storage/indexeddb/blob-valid-after-deletion.html as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=163122

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-07  Zalan Bujtas  <zalan@apple.com>

        https://vuldb.com/?cvssv3.2012 takes long time to load.
        https://bugs.webkit.org/show_bug.cgi?id=162994
        <rdar://problem/28593746>

        Reviewed by Darin Adler.

        It takes ~100 seconds to run this test case without the fix (300ms with the fix).
        Surely it will timeout if it gets regressed. 

        * fast/selectors/slow-style-sharing-with-long-cousin-list-expected.txt: Added.
        * fast/selectors/slow-style-sharing-with-long-cousin-list.html: Added.
        * platform/mac/TestExpectations: Skip perf test in debug.

2016-10-07  Ryan Haddad  <ryanhaddad@apple.com>

        Marking contentextensions tests as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=162942

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-07  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        WebRTC: Test gardening
        https://bugs.webkit.org/show_bug.cgi?id=163106

        Reviewed by Philippe Normand.

        * fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
        Update expected results to include webkit prefix on RTCPeerConnection name. (Not GTK+
        specific.)
        * platform/gtk/TestExpectations:
        Skip some tests since the GTK+ MediaPlayer, used with MediaStreams, isn't capable enough.

2016-10-06  Myles C. Maxfield  <mmaxfield@apple.com>

        Variation fonts don't affect glyph advances
        https://bugs.webkit.org/show_bug.cgi?id=163093

        Reviewed by Darin Adler.

        * platform/ios-simulator/TestExpectations: Mark the test
        as failing on iOS because that OS doesn't have Skia.
        * fast/text/variations/advances-expected.txt: Added.
        * fast/text/variations/advances.html: Added.

2016-10-06  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        [EFL] Skip to test imported/w3c/web-platform-tests/

        Unreivewed EFL gardening

        Too many tests have been failures, timeout, and crash.
        Skip it for a while until we fix it.

        * platform/efl/TestExpectations:

2016-10-06  Commit Queue  <commit-queue@webkit.org>

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

        triggers apparent codegen bug on ARM 32-bit (Requested by smfr
        on #webkit).

        Reverted changeset:

        "Support transitions/animations of background-position with
        right/bottom-relative values"
        https://bugs.webkit.org/show_bug.cgi?id=162048
        http://trac.webkit.org/changeset/206713

2016-10-06  Ryosuke Niwa  <rniwa@webkit.org>

        Upgrading and constructing element should always report exception instead of rethrowing
        https://bugs.webkit.org/show_bug.cgi?id=162996

        Reviewed by Darin Adler.

        Updated the tests to expect exceptions thrown during custom element constructions are always reported.

        * fast/custom-elements/Document-createElement-expected.txt:
        * fast/custom-elements/Document-createElement.html:
        * fast/custom-elements/defined-pseudo-class-expected.txt:
        * fast/custom-elements/defined-pseudo-class.html:
        * fast/custom-elements/upgrading/Node-cloneNode.html:
        * fast/custom-elements/upgrading/upgrading-parser-created-element.html:

2016-10-06  Jiewen Tan  <jiewen_tan@apple.com>

        Add a dummy SubtleCrypto interface
        https://bugs.webkit.org/show_bug.cgi?id=162992
        <rdar://problem/28643573>

        Reviewed by Brent Fulgham.

        * crypto/resources/common.js:
        * crypto/subtle/gc-2-expected.txt: Added.
        * crypto/subtle/gc-2.html: Added.
        * crypto/subtle/gc-3-expected.txt: Added.
        * crypto/subtle/gc-3.html: Added.
        * crypto/subtle/gc-expected.txt: Added.
        * crypto/subtle/gc.html: Added.
        * crypto/webkitSubtle/aes-cbc-192-encrypt-decrypt-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-192-encrypt-decrypt-expected.txt.
        * crypto/webkitSubtle/aes-cbc-192-encrypt-decrypt.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-192-encrypt-decrypt.html.
        * crypto/webkitSubtle/aes-cbc-256-encrypt-decrypt-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-256-encrypt-decrypt-expected.txt.
        * crypto/webkitSubtle/aes-cbc-256-encrypt-decrypt.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-256-encrypt-decrypt.html.
        * crypto/webkitSubtle/aes-cbc-encrypt-decrypt-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-encrypt-decrypt-expected.txt.
        * crypto/webkitSubtle/aes-cbc-encrypt-decrypt-with-padding-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-encrypt-decrypt-with-padding-expected.txt.
        * crypto/webkitSubtle/aes-cbc-encrypt-decrypt-with-padding.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-encrypt-decrypt-with-padding.html.
        * crypto/webkitSubtle/aes-cbc-encrypt-decrypt.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-encrypt-decrypt.html.
        * crypto/webkitSubtle/aes-cbc-generate-key-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-generate-key-expected.txt.
        * crypto/webkitSubtle/aes-cbc-generate-key.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-generate-key.html.
        * crypto/webkitSubtle/aes-cbc-import-jwk-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-import-jwk-expected.txt.
        * crypto/webkitSubtle/aes-cbc-import-jwk.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-import-jwk.html.
        * crypto/webkitSubtle/aes-cbc-invalid-length-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-invalid-length-expected.txt.
        * crypto/webkitSubtle/aes-cbc-invalid-length.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-invalid-length.html.
        * crypto/webkitSubtle/aes-cbc-unwrap-failure-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-unwrap-failure-expected.txt.
        * crypto/webkitSubtle/aes-cbc-unwrap-failure.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-unwrap-failure.html.
        * crypto/webkitSubtle/aes-cbc-unwrap-rsa-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-unwrap-rsa-expected.txt.
        * crypto/webkitSubtle/aes-cbc-unwrap-rsa.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-unwrap-rsa.html.
        * crypto/webkitSubtle/aes-cbc-wrap-rsa-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-wrap-rsa-expected.txt.
        * crypto/webkitSubtle/aes-cbc-wrap-rsa-non-extractable-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-wrap-rsa-non-extractable-expected.txt.
        * crypto/webkitSubtle/aes-cbc-wrap-rsa-non-extractable.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html.
        * crypto/webkitSubtle/aes-cbc-wrap-rsa.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-wrap-rsa.html.
        * crypto/webkitSubtle/aes-cbc-wrong-key-class-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-wrong-key-class-expected.txt.
        * crypto/webkitSubtle/aes-cbc-wrong-key-class.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-wrong-key-class.html.
        * crypto/webkitSubtle/aes-export-key-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-export-key-expected.txt.
        * crypto/webkitSubtle/aes-export-key.html: Renamed from LayoutTests/crypto/subtle/aes-export-key.html.
        * crypto/webkitSubtle/aes-kw-key-manipulation-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-kw-key-manipulation-expected.txt.
        * crypto/webkitSubtle/aes-kw-key-manipulation.html: Renamed from LayoutTests/crypto/subtle/aes-kw-key-manipulation.html.
        * crypto/webkitSubtle/aes-kw-wrap-unwrap-aes-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-kw-wrap-unwrap-aes-expected.txt.
        * crypto/webkitSubtle/aes-kw-wrap-unwrap-aes.html: Renamed from LayoutTests/crypto/subtle/aes-kw-wrap-unwrap-aes.html.
        * crypto/webkitSubtle/aes-postMessage-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-postMessage-expected.txt.
        * crypto/webkitSubtle/aes-postMessage.html: Renamed from LayoutTests/crypto/subtle/aes-postMessage.html.
        * crypto/webkitSubtle/argument-conversion-expected.txt: Renamed from LayoutTests/crypto/subtle/argument-conversion-expected.txt.
        * crypto/webkitSubtle/argument-conversion.html: Renamed from LayoutTests/crypto/subtle/argument-conversion.html.
        * crypto/webkitSubtle/array-buffer-view-offset-expected.txt: Renamed from LayoutTests/crypto/subtle/array-buffer-view-offset-expected.txt.
        * crypto/webkitSubtle/array-buffer-view-offset.html: Renamed from LayoutTests/crypto/subtle/array-buffer-view-offset.html.
        * crypto/webkitSubtle/crypto-key-algorithm-gc-expected.txt: Renamed from LayoutTests/crypto/subtle/crypto-key-algorithm-gc-expected.txt.
        * crypto/webkitSubtle/crypto-key-algorithm-gc.html: Renamed from LayoutTests/crypto/subtle/crypto-key-algorithm-gc.html.
        * crypto/webkitSubtle/crypto-key-usages-gc-expected.txt: Renamed from LayoutTests/crypto/subtle/crypto-key-usages-gc-expected.txt.
        * crypto/webkitSubtle/crypto-key-usages-gc.html: Renamed from LayoutTests/crypto/subtle/crypto-key-usages-gc.html.
        * crypto/webkitSubtle/hmac-check-algorithm-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-check-algorithm-expected.txt.
        * crypto/webkitSubtle/hmac-check-algorithm.html: Renamed from LayoutTests/crypto/subtle/hmac-check-algorithm.html.
        * crypto/webkitSubtle/hmac-export-key-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-export-key-expected.txt.
        * crypto/webkitSubtle/hmac-export-key.html: Renamed from LayoutTests/crypto/subtle/hmac-export-key.html.
        * crypto/webkitSubtle/hmac-generate-key-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-export-key.html.
        * crypto/webkitSubtle/hmac-generate-key.html: Renamed from LayoutTests/crypto/subtle/hmac-generate-key.html.
        * crypto/webkitSubtle/hmac-import-jwk-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-import-jwk-expected.txt.
        * crypto/webkitSubtle/hmac-import-jwk.html: Renamed from LayoutTests/crypto/subtle/hmac-import-jwk.html.
        * crypto/webkitSubtle/hmac-postMessage-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-postMessage-expected.txt.
        * crypto/webkitSubtle/hmac-postMessage.html: Renamed from LayoutTests/crypto/subtle/hmac-postMessage.html.
        * crypto/webkitSubtle/hmac-sign-verify-empty-key-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-sign-verify-empty-key-expected.txt.
        * crypto/webkitSubtle/hmac-sign-verify-empty-key.html: Renamed from LayoutTests/crypto/subtle/hmac-sign-verify-empty-key.html.
        * crypto/webkitSubtle/hmac-sign-verify-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-sign-verify-expected.txt.
        * crypto/webkitSubtle/hmac-sign-verify.html: Renamed from LayoutTests/crypto/subtle/hmac-sign-verify.html.
        * crypto/webkitSubtle/import-jwk-expected.txt: Renamed from LayoutTests/crypto/subtle/import-jwk-expected.txt.
        * crypto/webkitSubtle/import-jwk.html: Renamed from LayoutTests/crypto/subtle/import-jwk-expected.html.
        * crypto/webkitSubtle/jwk-export-use-values-expected.txt: Renamed from LayoutTests/crypto/subtle/jwk-export-use-values-expected.txt.
        * crypto/webkitSubtle/jwk-export-use-values.html: Renamed from LayoutTests/crypto/subtle/jwk-export-use-values.html.
        * crypto/webkitSubtle/jwk-import-use-values-expected.txt: Renamed from LayoutTests/crypto/subtle/jwk-import-use-values-expected.txt.
        * crypto/webkitSubtle/jwk-import-use-values.html: Renamed from LayoutTests/crypto/subtle/jwk-import-use-values.html.
        * crypto/webkitSubtle/resources/rsa-indexeddb-non-exportable.js: Renamed from LayoutTests/crypto/subtle/resources/rsa-indexeddb-non-exportable.js.
        * crypto/webkitSubtle/resources/rsa-indexeddb.js: Renamed from LayoutTests/crypto/subtle/resources/rsa-indexeddb.js.
        * crypto/webkitSubtle/rsa-export-generated-keys-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-export-generated-keys-expected.txt.
        * crypto/webkitSubtle/rsa-export-generated-keys.html: Renamed from LayoutTests/crypto/subtle/rsa-export-generated-keys.html.
        * crypto/webkitSubtle/rsa-export-key-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-export-key-expected.txt.
        * crypto/webkitSubtle/rsa-export-key.html: Renamed from LayoutTests/crypto/subtle/rsa-export-key.html.
        * crypto/webkitSubtle/rsa-export-private-key-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-export-private-key-expected.txt.
        * crypto/webkitSubtle/rsa-export-private-key.html: Renamed from LayoutTests/crypto/subtle/rsa-export-private-key.html.
        * crypto/webkitSubtle/rsa-indexeddb-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb-expected.txt.
        * crypto/webkitSubtle/rsa-indexeddb-non-exportable-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb-non-exportable-expected.txt.
        * crypto/webkitSubtle/rsa-indexeddb-non-exportable-private-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb-non-exportable-private-expected.txt.
        * crypto/webkitSubtle/rsa-indexeddb-non-exportable-private.html: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb-non-exportable-private.html.
        * crypto/webkitSubtle/rsa-indexeddb-non-exportable.html: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb-non-exportable.html.
        * crypto/webkitSubtle/rsa-indexeddb-private-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb-private-expected.txt.
        * crypto/webkitSubtle/rsa-indexeddb-private.html: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb-private.html.
        * crypto/webkitSubtle/rsa-indexeddb.html: Renamed from LayoutTests/crypto/subtle/rsa-indexeddb.html.
        * crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-oaep-generate-non-extractable-key-expected.txt.
        * crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key.html: Renamed from LayoutTests/crypto/subtle/rsa-oaep-generate-non-extractable-key.html.
        * crypto/webkitSubtle/rsa-oaep-key-manipulation-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-oaep-key-manipulation-expected.txt.
        * crypto/webkitSubtle/rsa-oaep-key-manipulation.html: Renamed from LayoutTests/crypto/subtle/rsa-oaep-key-manipulation.html.
        * crypto/webkitSubtle/rsa-oaep-plaintext-length-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-oaep-plaintext-length-expected.txt.
        * crypto/webkitSubtle/rsa-oaep-plaintext-length.html: Renamed from LayoutTests/crypto/subtle/rsa-oaep-plaintext-length.html.
        * crypto/webkitSubtle/rsa-oaep-wrap-unwrap-aes-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-oaep-wrap-unwrap-aes-expected.txt.
        * crypto/webkitSubtle/rsa-oaep-wrap-unwrap-aes.html: Renamed from LayoutTests/crypto/subtle/rsa-oaep-wrap-unwrap-aes.html.
        * crypto/webkitSubtle/rsa-postMessage-expected.txt: Renamed from LayoutTests/crypto/subtle/rsa-postMessage-expected.txt.
        * crypto/webkitSubtle/rsa-postMessage.html: Renamed from LayoutTests/crypto/subtle/rsa-postMessage.html.
        * crypto/webkitSubtle/rsaes-pkcs1-v1_5-decrypt-expected.txt: Renamed from LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-decrypt-expected.txt.
        * crypto/webkitSubtle/rsaes-pkcs1-v1_5-decrypt.html: Renamed from LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-decrypt.html.
        * crypto/webkitSubtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes-expected.txt: Renamed from LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes-expected.txt.
        * crypto/webkitSubtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html: Renamed from LayoutTests/crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-expected.txt: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent-expected.txt: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent-expected.txt.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent.html: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent.html.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key.html: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk-expected.txt: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-expected.txt.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk-small-key-expected.txt: Added.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk-small-key.html: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-small-key.html.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-import-jwk.html: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-sign-verify-expected.txt: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-sign-verify-expected.txt.
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-sign-verify.html: Renamed from LayoutTests/crypto/subtle/rsassa-pkcs1-v1_5-sign-verify.html.
        * crypto/webkitSubtle/sha-1-expected.txt: Renamed from LayoutTests/crypto/subtle/sha-1-expected.txt.
        * crypto/webkitSubtle/sha-1.html: Renamed from LayoutTests/crypto/subtle/sha-1.html.
        * crypto/webkitSubtle/sha-224-expected.txt: Renamed from LayoutTests/crypto/subtle/sha-224-expected.txt.
        * crypto/webkitSubtle/sha-224.html: Renamed from LayoutTests/crypto/subtle/sha-224.html.
        * crypto/webkitSubtle/sha-256-expected.txt: Renamed from LayoutTests/crypto/subtle/sha-256-expected.txt.
        * crypto/webkitSubtle/sha-256.html: Renamed from LayoutTests/crypto/subtle/sha-256.html.
        * crypto/webkitSubtle/sha-384-expected.txt: Renamed from LayoutTests/crypto/subtle/sha-384-expected.txt.
        * crypto/webkitSubtle/sha-384.html: Renamed from LayoutTests/crypto/subtle/sha-384.html.
        * crypto/webkitSubtle/sha-512-expected.txt: Renamed from LayoutTests/crypto/subtle/sha-512-expected.txt.
        * crypto/webkitSubtle/sha-512.html: Renamed from LayoutTests/crypto/subtle/sha-512.html.
        * crypto/webkitSubtle/unimplemented-unwrap-crash-expected.txt: Renamed from LayoutTests/crypto/subtle/unimplemented-unwrap-crash-expected.txt.
        * crypto/webkitSubtle/unimplemented-unwrap-crash.html: Renamed from LayoutTests/crypto/subtle/unimplemented-unwrap-crash.html.
        * crypto/webkitSubtle/unwrapKey-check-usage-expected.txt: Renamed from LayoutTests/crypto/subtle/unwrapKey-check-usage-expected.txt.
        * crypto/webkitSubtle/unwrapKey-check-usage.html: Renamed from LayoutTests/crypto/subtle/unwrapKey-check-usage.html.
        * crypto/webkitSubtle/wrapKey-check-usage-expected.txt: Renamed from LayoutTests/crypto/subtle/wrapKey-check-usage-expected.txt.
        * crypto/webkitSubtle/wrapKey-check-usage.html: Renamed from LayoutTests/crypto/subtle/wrapKey-check-usage.html.
        * crypto/workers/subtle/aes-postMessage-worker-expected.txt: Renamed from LayoutTests/crypto/workers/aes-postMessage-worker-expected.txt.
        * crypto/workers/subtle/aes-postMessage-worker.html: Renamed from LayoutTests/crypto/workers/aes-postMessage-worker.html.
        * crypto/workers/subtle/gc-worker-expected.txt: Added.
        * crypto/workers/subtle/gc-worker.html: Added.
        * crypto/workers/subtle/hmac-postMessage-worker-expected.txt: Renamed from LayoutTests/crypto/workers/hmac-postMessage-worker-expected.txt.
        * crypto/workers/subtle/hmac-postMessage-worker.html: Renamed from LayoutTests/crypto/workers/hmac-postMessage-worker.html.
        * crypto/workers/subtle/hrsa-postMessage-worker-expected.txt: Renamed from LayoutTests/crypto/workers/hrsa-postMessage-worker-expected.txt.
        * crypto/workers/subtle/hrsa-postMessage-worker.html: Renamed from LayoutTests/crypto/workers/hrsa-postMessage-worker.html.
        * crypto/workers/subtle/multiple-postMessage-worker-expected.txt: Renamed from LayoutTests/crypto/workers/multiple-postMessage-worker-expected.txt.
        * crypto/workers/subtle/multiple-postMessage-worker.html: Renamed from LayoutTests/crypto/workers/multiple-postMessage-worker.html.
        * crypto/workers/subtle/resources/aes-postMessage-worker.js: Renamed from LayoutTests/crypto/workers/resources/aes-postMessage-worker.js.
        * crypto/workers/subtle/resources/gc-worker.js: Added.
        * crypto/workers/subtle/resources/hmac-postMessage-worker.js: Renamed from LayoutTests/crypto/workers/resources/hmac-postMessage-worker.js.
        * crypto/workers/subtle/resources/hrsa-postMessage-worker.js: Renamed from LayoutTests/crypto/workers/resources/hrsa-postMessage-worker.js.
        * crypto/workers/subtle/resources/rsa-postMessage-worker.js: Renamed from LayoutTests/crypto/workers/resources/rsa-postMessage-worker.js.
        * crypto/workers/subtle/rsa-postMessage-worker-expected.txt: Renamed from LayoutTests/crypto/workers/rsa-postMessage-worker-expected.txt.
        * crypto/workers/subtle/rsa-postMessage-worker.html: Renamed from LayoutTests/crypto/workers/rsa-postMessage-worker.html.
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator-wk1/TestExpectations:
        * platform/win/TestExpectations:

2016-10-06  Antti Koivisto  <antti@apple.com>

        Mutating styleSheet in shadow tree doesn't update the style
        https://bugs.webkit.org/show_bug.cgi?id=162744
        <rdar://problem/28550588>

        Reviewed by Ryosuke Niwa.

        * fast/shadow-dom/mutating-stylesheet-in-shadow-tree-expected.html: Added.
        * fast/shadow-dom/mutating-stylesheet-in-shadow-tree.html: Added.

2016-10-06  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        WebRTC: Add support for the iceconnectionstatechange event in MediaEndpointPeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=162961

        Reviewed by Eric Carlson.

        Emulate changing the ICE transport sates of three transceivers and observe the resulting
        changes to the aggregated iceConnectionState.

        * fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event-expected.txt: Added.
        * fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html: Added.
        * platform/mac/TestExpectations:
        Skip above test until the Mac port builds with WEB_RTC.

2016-10-06  Ryan Haddad  <ryanhaddad@apple.com>

        Skip accessibility/mac/wk1-set-selected-text-marker-range-input-element.html on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=162999

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-06  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] Icon service and the IconButton class
        https://bugs.webkit.org/show_bug.cgi?id=162970
        <rdar://problem/28631803>

        Reviewed by Dean Jackson.

        Testing all public properties and methods of the iconService singleton and IconButton class.

        * media/modern-media-controls/icon-button/icon-button-active-state-expected.txt: Added.
        * media/modern-media-controls/icon-button/icon-button-active-state.html: Added.
        * media/modern-media-controls/icon-button/icon-button-expected.txt: Added.
        * media/modern-media-controls/icon-button/icon-button.html: Added.
        * media/modern-media-controls/icon-service/icon-service-expected.txt: Added.
        * media/modern-media-controls/icon-service/icon-service.html: Added.
        * media/modern-media-controls/layout-item/layout-item-expected.txt:
        * media/modern-media-controls/layout-item/layout-item.html:
        * platform/ios-simulator/TestExpectations:

2016-10-06  Youenn Fablet  <youenn@apple.com>

        Refresh WPT tests up to c875b42
        https://bugs.webkit.org/show_bug.cgi?id=159712

        Unreviewed.

        * TestExpectations: Removed flakiness expectations for tests introduced in bug 159712.

2016-10-06  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        WebRTC: Add support for the icecandidate event in MediaEndpointPeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=162957

        Reviewed by Eric Carlson.

        Dispatch fake ICE candidates from the WebRTC platform mock (MockMediaEndpoint) and
        inspect the result.

        * fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt: Added.
        * fast/mediastream/RTCPeerConnection-icecandidate-event.html: Added.
        * platform/mac/TestExpectations:
        Skip above test until the Mac port builds with WEB_RTC

2016-10-06  Youenn Fablet  <youenn@apple.com>

        [WK2] 304 revalidation on the network process does not update the validated response
        https://bugs.webkit.org/show_bug.cgi?id=162973

        Reviewed by Darin Adler.

        * http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:
        Rebasing expectation as memory cache revalidation is no longer needed now that the disk cache is updating the response passed to the memory cache.
        The disk cache is doing revalidation on the second load. It receives the updated response with longer validity.
        As the extended validity response is now passed to the memory cache, the memory cache revalidation no longer happens.

2016-10-06  Nan Wang  <n_wang@apple.com>

        AX:[Mac] Unable to edit text input, textarea fields in iframe using VO naivgation
        https://bugs.webkit.org/show_bug.cgi?id=162999

        Reviewed by Chris Fleizach.

        * accessibility/mac/wk1-set-selected-text-marker-range-input-element-expected.txt: Added.
        * accessibility/mac/wk1-set-selected-text-marker-range-input-element.html: Added.

2016-10-05  Yusuke Suzuki  <utatane.tea@gmail.com>

        [JSC] Add @throwXXXError bytecode intrinsic
        https://bugs.webkit.org/show_bug.cgi?id=162995

        Reviewed by Saam Barati.

        * js/Object-assign-expected.txt:

2016-10-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        Introduce InputEvent bindings in preparation for the input events spec
        https://bugs.webkit.org/show_bug.cgi?id=162954

        Reviewed by Ryosuke Niwa.

        Adds a new test verifying that InputEvents are fired when the runtime switch for input events is enabled.

        * fast/events/input-events-fired-when-typing-expected.txt: Added.
        * fast/events/input-events-fired-when-typing.html: Added.
        * fast/events/ios/input-events-fired-when-typing-in-contenteditable-expected.txt: Added.
        * fast/events/ios/input-events-fired-when-typing-in-contenteditable.html: Added.
        * js/dom/global-constructors-attributes-expected.txt:
        * platform/gtk/js/dom/global-constructors-attributes-expected.txt:
        * platform/ios-simulator/TestExpectations:
        * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac/js/dom/global-constructors-attributes-expected.txt:

2016-10-05  Gyuyoung Kim  <gyuyoung.kim@navercorp.com>

        [EFL] Mark timeout tests to *Timeout*

        Unreviewed EFL gardening.

        Timeout has been happened on some tests.

        * platform/efl/TestExpectations:

2016-10-05  Ryosuke Niwa  <rniwa@webkit.org>

        Import v1 custom elements tests from W3C
        https://bugs.webkit.org/show_bug.cgi?id=162987

        Reviewed by Chris Dumez.

        Removed custom elements tests that have been upstreamed to and reimported from web-platform-tests.

        * fast/custom-elements/CustomElementRegistry-expected.txt: Removed.
        * fast/custom-elements/CustomElementRegistry.html: Removed.
        * fast/custom-elements/HTMLElement-constructor-expected.txt: Removed.
        * fast/custom-elements/HTMLElement-constructor.html: Removed.
        * fast/custom-elements/adopted-callback-expected.txt: Removed.
        * fast/custom-elements/adopted-callback.html: Removed.
        * fast/custom-elements/attribute-changed-callback-expected.txt: Removed.
        * fast/custom-elements/attribute-changed-callback.html: Removed.
        * fast/custom-elements/connected-callbacks-expected.txt: Removed.
        * fast/custom-elements/connected-callbacks.html: Removed.
        * fast/custom-elements/disconnected-callbacks-expected.txt: Removed.
        * fast/custom-elements/disconnected-callbacks.html: Removed.

2016-10-05  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement Intl.getCanonicalLocales
        https://bugs.webkit.org/show_bug.cgi?id=162768

        Reviewed by Benjamin Poulain.

        * js/intl-expected.txt: Added tests for Intl.getCanonicalLocales
        * js/script-tests/intl.js: Added test for Intl.getCanonicalLocales

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

        Marking inspector/formatting/formatting-javascript.html as a flaky crash on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=162986

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-10-05  Chris Dumez  <cdumez@apple.com>

        KeyboardEvent.getModifierState() should support "CapsLock" modifier
        https://bugs.webkit.org/show_bug.cgi?id=162861

        Reviewed by Darin Adler.

        Extend layout test coverage to cover 'Caps Lock' modifier.

        * fast/events/special-key-events-in-input-text-expected.txt:
        * fast/events/special-key-events-in-input-text.html:

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

        Missing quotation mark when <q> gets reparented.
        https://bugs.webkit.org/show_bug.cgi?id=162940

        Reviewed by Darin Adler.

        The position of the closing quotation mark is driven by the multicolumn code hence the cover div.

        * fast/css-generated-content/missing-quotes-with-dynamic-content-expected.html: Added.
        * fast/css-generated-content/missing-quotes-with-dynamic-content.html: Added.

2016-10-05  Daniel Bates  <dabates@apple.com>

        [WK2][NetworkSession] Ping requests should follow redirects if applicable
        https://bugs.webkit.org/show_bug.cgi?id=162580
        <rdar://problem/28631274>

        Rename test anchor-ping-and-do-not-follow-redirect-when-sending-ping.html to anchor-ping-and-follow-redirect-when-sending-ping.html
        to reflect what it is actually testing - that we follow a redirect when sending a ping for a <a ping>.

        * http/tests/navigation/ping-attribute/anchor-ping-and-follow-redirect-when-sending-ping-expected.txt: Renamed from LayoutTests/http/tests/navigation/ping-attribute/anchor-ping-and-do-not-follow-redirect-when-sending-ping-expected.txt.
        * http/tests/navigation/ping-attribute/anchor-ping-and-follow-redirect-when-sending-ping.html: Renamed from LayoutTests/http/tests/navigation/ping-attribute/anchor-ping-and-do-not-follow-redirect-when-sending-ping.html.
        * http/tests/navigation/resources/save-ping-and-redirect-to-save-ping.php: Only append the query string
        if we have a non-empty query string to avoid appending a superfluous "?" on redirect.

2016-10-05  Daniel Bates  <dabates@apple.com>

        [WK2][NetworkSession] Ping requests should follow redirects if applicable
        https://bugs.webkit.org/show_bug.cgi?id=162580
        <rdar://problem/28631274>

        Reviewed by Alex Christensen.

        Add tests to ensure that we follow redirects for ping requests that are initiated as part
        of hyperlink auditing.

        Modified http/tests/navigation/resources/save-Ping.php to include the host and request URI
        information in the saved report and updated expected results for existing tests as a result
        of this change.

        * http/tests/contentextensions/block-cookies-in-csp-report-expected.txt:
        * http/tests/contentextensions/block-cookies-in-image-load-in-onunload-expected.txt:
        * http/tests/contentextensions/block-cookies-in-ping-expected.txt:
        * http/tests/contentextensions/hide-on-csp-report-expected.txt:
        * http/tests/contentextensions/hide-on-ping-expected.txt:
        * http/tests/contentextensions/hide-on-ping-with-ping-that-redirects-expected.txt: Added.
        * http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html: Added.
        * http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html.json: Added.
        * http/tests/contentextensions/resources/save-ping-and-redirect-to-save-ping.php: Added.
        * http/tests/contentextensions/resources/save-ping.php:
        * http/tests/navigation/image-load-in-pagehide-handler-expected.txt:
        * http/tests/navigation/image-load-in-unload-handler-expected.txt:
        * http/tests/navigation/ping-attribute/anchor-cookie-expected.txt:
        * http/tests/navigation/ping-attribute/anchor-cross-origin-expected.txt:
        * http/tests/navigation/ping-attribute/anchor-cross-origin-from-https-expected.txt:
        * http/tests/navigation/ping-attribute/anchor-ping-and-do-not-follow-redirect-when-sending-ping-expected.txt: Added.
        * http/tests/navigation/ping-attribute/anchor-ping-and-do-not-follow-redirect-when-sending-ping.html: Added.
        * http/tests/navigation/ping-attribute/anchor-same-origin-expected.txt:
        * http/tests/navigation/ping-attribute/area-cookie-expected.txt:
        * http/tests/navigation/ping-attribute/area-cross-origin-expected.txt:
        * http/tests/navigation/ping-attribute/area-cross-origin-from-https-expected.txt:
        * http/tests/navigation/ping-attribute/area-same-origin-expected.txt:
        * http/tests/navigation/resources/save-Ping.php:
        * http/tests/navigation/resources/save-ping-and-redirect-to-save-ping.php: Added.

2016-10-05  Daniel Bates  <dabates@apple.com>

        Do not follow redirects when sending violation report
        https://bugs.webkit.org/show_bug.cgi?id=162520
        <rdar://problem/27957639>

        Reviewed by Alex Christensen.

        Add tests for Content Security Policy and XSS Auditor to ensure that we do not follow redirects
        when sending a violation report. Modified http/tests/security/contentSecurityPolicy/resources/save-report.php
        to save the URL of the original ping request and conditionally clear cookies. Modified
        http/tests/security/xssAuditor/resources/echo-intertag.pl to support testing for the XSS Auditor.
        These changes together with the existing HTTP Host information that is saved with the report we can detect
        if a redirect occurred when saving a report.

        Updated expected results of existing tests now that we emit the URL of the ping request in the saved report.

        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-https-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-https-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-blocked-data-uri-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-blocked-file-uri-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report.php: Added.
        * http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-blocked-uri-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-only-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-from-javascript-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-scheme-relative-expected.txt:
        * http/tests/security/contentSecurityPolicy/resources/save-report-and-redirect-to-save-report.php: Added.
        * http/tests/security/contentSecurityPolicy/resources/save-report.php:
        * http/tests/security/xssAuditor/report-script-tag-and-do-not-follow-redirect-when-sending-report-expected.txt: Added.
        * http/tests/security/xssAuditor/report-script-tag-and-do-not-follow-redirect-when-sending-report.html: Added.
        * http/tests/security/xssAuditor/report-script-tag-expected.txt:
        * http/tests/security/xssAuditor/report-script-tag-full-block-and-do-not-follow-redirect-when-sending-report-expected.txt: Added.
        * http/tests/security/xssAuditor/report-script-tag-full-block-and-do-not-follow-redirect-when-sending-report.html: Added.
        * http/tests/security/xssAuditor/report-script-tag-full-block-expected.txt:
        * http/tests/security/xssAuditor/report-script-tag-replace-state-expected.txt:
        * http/tests/security/xssAuditor/resources/echo-intertag.pl:

2016-10-04  Chris Dumez  <cdumez@apple.com>

        Implement KeyboardEvent.code from the UI Event spec
        https://bugs.webkit.org/show_bug.cgi?id=149584

        Reviewed by Darin Adler.

        Extend layout test coverage.

        * fast/events/arrow-keys-on-body-expected.txt:
        * fast/events/arrow-keys-on-body.html:
        * fast/events/constructors/keyboard-event-constructor-expected.txt:
        * fast/events/constructors/keyboard-event-constructor.html:
        * fast/events/key-events-in-input-button-expected.txt:
        * fast/events/key-events-in-input-button.html:
        * fast/events/key-events-in-input-text-expected.txt:
        * fast/events/key-events-in-input-text.html:
        * fast/events/keyboardevent-code-expected.txt: Added.
        * fast/events/keyboardevent-code.html: Added.
        * fast/events/special-key-events-in-input-text-expected.txt:
        * fast/events/special-key-events-in-input-text.html:

2016-10-04  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Make it possible for a test to describe a user gesture as a stream of events in JSON format
        https://bugs.webkit.org/show_bug.cgi?id=162934

        Reviewed by Dean Jackson.

        * fast/events/ios/event-stream-single-tap-expected.txt: Added.
        * fast/events/ios/event-stream-single-tap.html: Added.

2016-10-04  Chris Dumez  <cdumez@apple.com>

        Add support for KeyboardEvent.isComposing attribute
        https://bugs.webkit.org/show_bug.cgi?id=162921

        Reviewed by Darin Adler.

        Extend layout test coverage to test KeyboardEvent.isComposing.

        * editing/mac/input/kotoeri-enter-to-confirm-and-newline-expected.txt:
        * editing/mac/input/kotoeri-enter-to-confirm-and-newline.html:
        * fast/events/constructors/keyboard-event-constructor-expected.txt:
        * fast/events/constructors/keyboard-event-constructor.html:

2016-10-03  Ryosuke Niwa  <rniwa@webkit.org>

        ShadowRoot interface should have elementFromPoint
        https://bugs.webkit.org/show_bug.cgi?id=162882

        Reviewed by Chris Dumez.

        Add a W3C style testharness.js test for elementFromPoint on ShadowRoot.

        * fast/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint-expected.txt: Added.
        * fast/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint.html: Added.

2016-10-04  Myles C. Maxfield  <mmaxfield@apple.com>

        font-family: cursive should map to KaiTi in Chinese
        https://bugs.webkit.org/show_bug.cgi?id=162889
        <rdar://problem/28363547>

        Reviewed by Tim Horton.

        * fast/text/cursive-zh-expected.html: Added.
        * fast/text/cursive-zh.html: Added.

2016-10-04  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/cache/disk-cache/disk-cache-media.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=162946

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-04  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/cache/disk-cache/disk-cache-request-max-stale.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=162945

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-04  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/cache/disk-cache/resource-becomes-uncacheable.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=161649

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-04  Ryan Haddad  <ryanhaddad@apple.com>

        Marking transitions/background-position-transitions.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=162881

        Unreviewed test gardening.

        * TestExpectations:

2016-10-04  Chris Dumez  <cdumez@apple.com>

        Return null when window.open() is popup blocked
        https://bugs.webkit.org/show_bug.cgi?id=162897

        Reviewed by Michael Catanzaro.

        Rebaseline existing tests to reflect behavior change.

        * fast/events/popup-blocked-from-fake-button-click-expected.txt:
        * fast/events/popup-blocked-from-fake-button-click.html:
        * fast/events/popup-blocked-from-fake-focus-expected.txt:
        * fast/events/popup-blocked-from-fake-focus.html:
        * fast/events/popup-blocked-from-fake-user-gesture-expected.txt:
        * fast/events/popup-blocked-from-fake-user-gesture.html:
        * fast/events/popup-blocked-from-untrusted-click-event-on-anchor-expected.txt:
        * fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
        * fast/events/popup-blocking-timers3-expected.txt:
        * fast/events/popup-blocking-timers3.html:
        * fast/events/popup-blocking-timers4-expected.txt:
        * fast/events/popup-blocking-timers4.html:
        * fast/events/popup-blocking-timers6-expected.txt:
        * fast/events/popup-blocking-timers6.html:

2016-10-04  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/cache/disk-cache/disk-cache-204-status-code.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=162685

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-04  Ryan Haddad  <ryanhaddad@apple.com>

        Land TestExpectations for rdar://problem/28586837.

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-04  Youenn Fablet  <youenn@apple.com>

        [mac-wk1] LayoutTest http/tests/security/cached-cross-origin-preloading-css-stylesheet.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=162791

        Reviewed by Alex Christensen.

        Flackiness was due to one preload sometimes arriving after the test was finished.
        This causes the issue of not having the preload actually being checked against CORS and the console error was not displayed.
        Making the test wait 1 second after all loads finish to ensure the preload will also finishes.

        Cleaning the test and improving it by:
        - making each load to take 1 second (so that preload is not finished when actual load happens
        - adding some comments explaining each subtest
        - printing DONE at the end of all loads.

        * http/tests/security/cached-cross-origin-preloading-css-stylesheet-expected.txt:
        * http/tests/security/cached-cross-origin-preloading-css-stylesheet.html:
        * platform/mac-wk1/TestExpectations: Removed flaky expectation.

2016-10-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Implement rendering of font-variation-settings
        https://bugs.webkit.org/show_bug.cgi?id=162782

        Reviewed by Zalan Bujtas.

        * fast/text/variations/duplicate-expected.html: Added.
        * fast/text/variations/duplicate.html: Added.
        * fast/text/variations/exist-expected-mismatch.html: Added.
        * fast/text/variations/exist.html: Added.
        * fast/text/variations/getComputedStyle.html:
        * fast/text/variations/inheritance-expected.html: Added.
        * fast/text/variations/inheritance.html: Added.
        * fast/text/variations/order-expected.html: Added.
        * fast/text/variations/order.html: Added.
        * fast/text/variations/outofbounds-expected.html: Added.
        * fast/text/variations/outofbounds.html: Added.

2016-10-03  Ryan Haddad  <ryanhaddad@apple.com>

        Marking svg/custom/animate-initial-pause-unpause.html as flaky on mac and ios-simulator-wk2 debug.
        https://bugs.webkit.org/show_bug.cgi?id=127116

        Unreviewed test gardening.

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

2016-10-03  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/events/tabindex-focus-blur-all.html as a flaky timeout on mac-debug.
        https://bugs.webkit.org/show_bug.cgi?id=162830

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-10-03  Brent Fulgham  <bfulgham@apple.com>

        Avoid null dereference when changing focus in design mode.
        https://bugs.webkit.org/show_bug.cgi?id=162877
        <rdar://problem/28061261>

        Reviewed by Chris Dumez.

        * fast/frames/iframe-focus-crash-expected.txt: Added.
        * fast/frames/iframe-focus-crash.html: Added.
        * fast/frames/resources/iframe-focus-crash.html: Added.

2016-10-03  Chris Dumez  <cdumez@apple.com>

        Add support for KeyboardEvent.key attribute
        https://bugs.webkit.org/show_bug.cgi?id=36267

        Reviewed by Darin Adler.

        Extend layout test coverage.

        * fast/events/constructors/keyboard-event-constructor-expected.txt:
        * fast/events/constructors/keyboard-event-constructor.html:
        * fast/events/key-events-in-input-button-expected.txt:
        * fast/events/key-events-in-input-button.html:
        * fast/events/key-events-in-input-text-expected.txt:
        * fast/events/key-events-in-input-text.html:
        * fast/events/keyboardevent-key-expected.txt: Added.
        * fast/events/keyboardevent-key.html: Added.
        * fast/events/special-key-events-in-input-text-expected.txt:
        * fast/events/special-key-events-in-input-text.html:
        * platform/ios-simulator/TestExpectations:

2016-10-03  Chris Dumez  <cdumez@apple.com>

        Add support for KeyboardEvent.key attribute
        https://bugs.webkit.org/show_bug.cgi?id=36267

        Reviewed by Darin Adler.

        Extend layout test coverage.

        * fast/events/constructors/keyboard-event-constructor-expected.txt:
        * fast/events/constructors/keyboard-event-constructor.html:
        * fast/events/key-events-in-input-button-expected.txt:
        * fast/events/key-events-in-input-button.html:
        * fast/events/key-events-in-input-text-expected.txt:
        * fast/events/key-events-in-input-text.html:
        * fast/events/keyboardevent-key-expected.txt: Added.
        * fast/events/keyboardevent-key.html: Added.
        * fast/events/special-key-events-in-input-text-expected.txt:
        * fast/events/special-key-events-in-input-text.html:
        * platform/ios-simulator/TestExpectations:

2016-10-03  Ryan Haddad  <ryanhaddad@apple.com>

        Marking storage/indexeddb/index-cursor.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=161926

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-03  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/security/anchor-download-allow-data.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=161745

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-10-03  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] LayoutItem and Button classes
        https://bugs.webkit.org/show_bug.cgi?id=162868
        <rdar://problem/28590166>

        Reviewed by Dean Jackson.

        Testing all public properties and methods of the LayoutItem and Button classes.

        * media/modern-media-controls/button/button-expected.txt: Added.
        * media/modern-media-controls/button/button.html: Added.
        * media/modern-media-controls/layout-item/layout-item-expected.txt: Added.
        * media/modern-media-controls/layout-item/layout-item.html: Added.

2016-10-03  Andy Estes  <aestes@apple.com>

        ASSERTION FAILED: url.containsOnlyASCII() in WebCore::checkEncodedString() when parsing an invalid CSS cursor URL
        https://bugs.webkit.org/show_bug.cgi?id=162763
        <rdar://problem/28572758>

        Reviewed by Youenn Fablet.

        * fast/css/cursor-with-invalid-url.html: Added.
        * fast/css/cursor-with-invalid-url-expected.txt: Added.

2016-10-03  Andy Estes  <aestes@apple.com>

        ASSERTION FAILED: result in WebCore::CSSParser::parseURI
        https://bugs.webkit.org/show_bug.cgi?id=141638
        <rdar://problem/27709952>

        Reviewed by Andreas Kling.

        * fast/css/url-with-multi-byte-unicode-escape-expected.txt: Added a test for an unquoted URL.
        * fast/css/url-with-multi-byte-unicode-escape.html:

2016-10-03  Chris Dumez  <cdumez@apple.com>

        td.scope should only return known values
        https://bugs.webkit.org/show_bug.cgi?id=162755

        Reviewed by Sam Weinig.

        Update existing test to reflect behavior change.

        * fast/dom/element-attribute-js-null-expected.txt:
        * fast/dom/element-attribute-js-null.html:

2016-10-02  Chris Dumez  <cdumez@apple.com>

        Add support for KeyboardEvent.getModifierState() operation
        https://bugs.webkit.org/show_bug.cgi?id=162855

        Reviewed by Darin Adler.

        Add layout test coverage.

        * fast/events/constructors/keyboard-event-getModifierState-expected.txt: Added.
        * fast/events/constructors/keyboard-event-getModifierState.html: Added.

2016-10-02  Chris Dumez  <cdumez@apple.com>

        Add support for KeyboardEvent.repeat attribute
        https://bugs.webkit.org/show_bug.cgi?id=162854

        Reviewed by Darin Adler.

        Extend layout test coverage.

        * fast/events/constructors/keyboard-event-constructor-expected.txt:
        * fast/events/constructors/keyboard-event-constructor.html:

2016-10-02  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r206692 and r206718.

        Seems to have caused >200 failures on Sierra

        Reverted changesets:

        "Implement rendering of font-variation-settings"
        https://bugs.webkit.org/show_bug.cgi?id=162782
        http://trac.webkit.org/changeset/206692

        "Tried to fix the build after r206692."
        http://trac.webkit.org/changeset/206718

2016-10-01  Simon Fraser  <simon.fraser@apple.com>

        Support transitions/animations of background-position with right/bottom-relative values
        https://bugs.webkit.org/show_bug.cgi?id=162048

        Reviewed by Dean Jackson.

        * transitions/background-position-transitions-expected.txt: Added.
        * transitions/background-position-transitions.html: Added.
        * transitions/resources/transition-test-helpers.js:
        * transitions/svg-transitions-expected.txt:

2016-10-01  Simon Fraser  <simon.fraser@apple.com>

        Bad cast when CSS position programmatically changed from -webkit-sticky to fixed
        https://bugs.webkit.org/show_bug.cgi?id=160826

        Reviewed by Zalan Bujtas.

        * fast/scrolling/sticky-to-fixed-expected.txt: Added.
        * fast/scrolling/sticky-to-fixed.html: Added.

2016-09-30  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Stepping to a line with an autoContinue breakpoint should still pause
        https://bugs.webkit.org/show_bug.cgi?id=161712
        <rdar://problem/28193970>

        Reviewed by Brian Burg.

        * inspector/debugger/stepping/stepping-through-autoContinue-breakpoint-expected.txt: Added.
        * inspector/debugger/stepping/stepping-through-autoContinue-breakpoint.html: Added.

2016-09-30  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Stepping over/out of a function sometimes resumes instead of taking you to caller
        https://bugs.webkit.org/show_bug.cgi?id=162802
        <rdar://problem/28569982>

        Reviewed by Mark Lam.

        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.createLocation):
        (TestPage.registerInitializer.window.setBreakpointsOnLinesWithBreakpointComment):
        Helper to set breakpoints everywhere in a file that has a BREAKPOINT comment.

        * inspector/debugger/stepping/stepping-pause-in-inner-step-to-parent-expected.txt: Added.
        * inspector/debugger/stepping/stepping-pause-in-inner-step-to-parent.html: Added.
        Test that stepping out and over end up in the parent. Before this change
        we would never have made it back into entry and the test failed.

2016-09-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Implement rendering of font-variation-settings
        https://bugs.webkit.org/show_bug.cgi?id=162782

        Reviewed by Zalan Bujtas.

        * fast/text/variations/duplicate-expected.html: Added.
        * fast/text/variations/duplicate.html: Added.
        * fast/text/variations/exist-expected-mismatch.html: Added.
        * fast/text/variations/exist.html: Added.
        * fast/text/variations/getComputedStyle.html:
        * fast/text/variations/inheritance-expected.html: Added.
        * fast/text/variations/inheritance.html: Added.
        * fast/text/variations/order-expected.html: Added.
        * fast/text/variations/order.html: Added.
        * fast/text/variations/outofbounds-expected.html: Added.
        * fast/text/variations/outofbounds.html: Added.

2016-09-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Implement animation of font-variation-settings
        https://bugs.webkit.org/show_bug.cgi?id=162783

        Reviewed by Simon Fraser.

        Animation tests need a little infrastructure to be able to tell if two computed
        values for font-variation-settings are equivalent.

        * animations/font-variation-settings-expected.html: Added.
        * animations/font-variation-settings-order-expected.html: Added.
        * animations/font-variation-settings-order.html: Added.
        * animations/font-variation-settings-unlike-expected.html: Added.
        * animations/font-variation-settings-unlike.html: Added.
        * animations/font-variation-settings.html: Added.
        * animations/resources/animation-test-helpers.js:
        (compareFontVariationSettings):
        (getPropertyValue):
        (comparePropertyValue):

2016-09-30  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] layout nodes
        https://bugs.webkit.org/show_bug.cgi?id=162799
        <rdar://problem/28569301>

        Reviewed by Dean Jackson.

        Testing all public properties and methods of the LayoutNode class.

        * media/modern-media-controls/layout-node/addChild-expected.txt: Added.
        * media/modern-media-controls/layout-node/addChild.html: Added.
        * media/modern-media-controls/layout-node/children-expected.txt: Added.
        * media/modern-media-controls/layout-node/children.html: Added.
        * media/modern-media-controls/layout-node/constructor-expected.txt: Added.
        * media/modern-media-controls/layout-node/constructor.html: Added.
        * media/modern-media-controls/layout-node/height-expected.txt: Added.
        * media/modern-media-controls/layout-node/height.html: Added.
        * media/modern-media-controls/layout-node/insertAfter-expected.txt: Added.
        * media/modern-media-controls/layout-node/insertAfter.html: Added.
        * media/modern-media-controls/layout-node/insertBefore-expected.txt: Added.
        * media/modern-media-controls/layout-node/insertBefore.html: Added.
        * media/modern-media-controls/layout-node/parent-expected.txt: Added.
        * media/modern-media-controls/layout-node/parent.html: Added.
        * media/modern-media-controls/layout-node/remove-expected.txt: Added.
        * media/modern-media-controls/layout-node/remove.html: Added.
        * media/modern-media-controls/layout-node/removeChild-expected.txt: Added.
        * media/modern-media-controls/layout-node/removeChild.html: Added.
        * media/modern-media-controls/layout-node/subclassing-expected.txt: Added.
        * media/modern-media-controls/layout-node/subclassing.html: Added.
        * media/modern-media-controls/layout-node/visible-expected.txt: Added.
        * media/modern-media-controls/layout-node/visible.html: Added.
        * media/modern-media-controls/layout-node/width-expected.txt: Added.
        * media/modern-media-controls/layout-node/width.html: Added.
        * media/modern-media-controls/layout-node/x-expected.txt: Added.
        * media/modern-media-controls/layout-node/x.html: Added.
        * media/modern-media-controls/layout-node/y-expected.txt: Added.
        * media/modern-media-controls/layout-node/y.html: Added.

2016-09-30  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/media/hls/hls-video-resize.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=162507

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-09-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Parse font-variation-settings
        https://bugs.webkit.org/show_bug.cgi?id=162781

        Reviewed by Simon Fraser.

        * fast/text/variations/getComputedStyle-expected.txt: Added.
        * fast/text/variations/getComputedStyle.html: Added.

2016-09-30  Ryan Haddad  <ryanhaddad@apple.com>

        Mark inspector/debugger/breakpoints tests as slow on release, skipped on debug.

        Unreviewed test gardening.

        * TestExpectations:

2016-09-30  Joseph Pecoraro  <pecoraro@apple.com>

        Rebaseline results after r206654.

        Better location for unary expressions.

        * js/stack-trace-expected.txt:

2016-09-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Fix fast/text/trak-optimizeLegibility.html
        https://bugs.webkit.org/show_bug.cgi?id=162779

        Reviewed by Simon Fraser.

        * fast/text/trak-optimizeLegibility.html:
        * platform/ios-simulator/fast/text/trak-optimizeLegibility-expected.txt:
        * platform/mac-elcapitan/fast/text/trak-optimizeLegibility-expected.txt: Removed.
        * platform/mac/fast/text/trak-optimizeLegibility-expected.txt:

2016-09-30  Zalan Bujtas  <zalan@apple.com>

        Unreviewed, rolling out r206611.

        Scroll perf did not recover.

        Reverted changeset:

        "Unreviewed, rolling out r206483."
        https://bugs.webkit.org/show_bug.cgi?id=162750
        http://trac.webkit.org/changeset/206611

2016-09-30  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline js/dom/stack-trace.html after r206654.

        Unreviewed test gardening.

        * js/dom/stack-trace-expected.txt:

2016-09-30  Chris Dumez  <cdumez@apple.com>

        FileSaver.js does not work in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=162788

        Reviewed by Sam Weinig.

        Add layout test coverage.

        * fast/dom/HTMLAnchorElement/anchor-download-synthetic-click-expected.txt:
        * fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click.html: Added.

2016-09-30  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/images/gif-loop-count.html as flaky on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=162739

        Unreviewed test gardening.

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

2016-09-30  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/security/cached-cross-origin-preloading-css-stylesheet.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=162791

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-09-28  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Stepping through `a(); b(); c();` it is unclear where we are and what is about to execute
        https://bugs.webkit.org/show_bug.cgi?id=161658
        <rdar://problem/28181254>

        Reviewed by Geoffrey Garen.

        * inspector/debugger/stepping/stepping-loops-expected.txt:
        * inspector/debugger/stepping/stepping-misc-expected.txt:
        Updated pause location for unary expressions.

2016-09-30  Joseph Pecoraro  <pecoraro@apple.com>

        Breakpoints on blank lines or comments don't break
        https://bugs.webkit.org/show_bug.cgi?id=9885
        <rdar://problem/6134406>

        Reviewed by Mark Lam.

        * inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt: Added.
        * inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html: Added.
        * inspector/debugger/breakpoints/resolved-dump-each-line-expected.txt: Added.
        * inspector/debugger/breakpoints/resolved-dump-each-line.html: Added.
        * inspector/debugger/breakpoints/resources/dump-functions.js: Added.
        * inspector/debugger/breakpoints/resources/dump-general.js: Added.
        Test for resolved breakpoint locations in all kinds of different source code.

        * inspector/debugger/breakpoints/resources/dump.js: Added.
        (TestPage.registerInitializer):
        (TestPage.registerInitializer.window.addDumpAllPauseLocationsTestCase):
        (TestPage.registerInitializer.window.addDumpEachLinePauseLocationTestCase):
        Shared code to run different generalized tests for logging all resolved
        breakpoint locations or the resolved breakpoint location if a breakpoint
        is set on each individual line.

        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.insertCaretIntoStringAtIndex):
        (TestPage.registerInitializer.window.findScript):
        (TestPage.registerInitializer.window.loadLinesFromSourceCode):
        (TestPage.registerInitializer.window.loadMainPageContent):
        (TestPage.registerInitializer.window.logResolvedBreakpointLinesWithContext):
        (TestPage.registerInitializer.window.logLinesWithContext):
        Make some more code shared and provide a way to log two locations,
        used to see where a breakpoint was set and where it resolved to.

        * inspector/debugger/setBreakpoint-expected.txt:
        Update error message. Should not include a period.

2016-09-30  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Stepping out of a function finishes the line that called it.
        https://bugs.webkit.org/show_bug.cgi?id=155325
        <rdar://problem/25094578>

        Reviewed by Mark Lam.

        * inspector/debugger/break-on-exception-throw-in-promise.html:
        Drive-by remove debug only code that shouldn't have been checked in.

        * inspector/debugger/resources/log-pause-location.js: Added.
        (TestPage.registerInitializer.String.prototype.myPadStart):
        (TestPage.registerInitializer.insertCaretIntoStringAtIndex):
        (TestPage.registerInitializer.logLinesWithContext):
        (TestPage.registerInitializer.window.logPauseLocation):
        (TestPage.registerInitializer.window.step):
        (TestPage.registerInitializer.window.initializeSteppingTestSuite):
        (TestPage.registerInitializer.window.addSteppingTestCase):
        (TestPage.registerInitializer.window.loadMainPageContent):
        Shared code for stepping tests that runs in the inspected page.

        (global):
        When the test page is loaded outside of the test runner,
        create buttons for each of the different entry test functions.
        This makes it very easy to inspect the test page and run
        through an individual test.

        * inspector/debugger/stepping/stepInto-expected.txt: Added.
        * inspector/debugger/stepping/stepInto.html: Added.
        * inspector/debugger/stepping/stepOut-expected.txt: Added.
        * inspector/debugger/stepping/stepOut.html: Added.
        * inspector/debugger/stepping/stepOver-expected.txt: Added.
        * inspector/debugger/stepping/stepOver.html: Added.
        * inspector/debugger/stepping/stepping-arrow-functions-expected.txt: Added.
        * inspector/debugger/stepping/stepping-arrow-functions.html: Added.
        * inspector/debugger/stepping/stepping-classes-expected.txt: Added.
        * inspector/debugger/stepping/stepping-classes.html: Added.
        * inspector/debugger/stepping/stepping-control-flow-expected.txt: Added.
        * inspector/debugger/stepping/stepping-control-flow.html: Added.
        * inspector/debugger/stepping/stepping-function-calls-expected.txt: Added.
        * inspector/debugger/stepping/stepping-function-calls.html: Added.
        * inspector/debugger/stepping/stepping-function-default-parameters-expected.txt: Added.
        * inspector/debugger/stepping/stepping-function-default-parameters.html: Added.
        * inspector/debugger/stepping/stepping-literal-construction-expected.txt: Added.
        * inspector/debugger/stepping/stepping-literal-construction.html: Added.
        * inspector/debugger/stepping/stepping-loops-expected.txt: Added.
        * inspector/debugger/stepping/stepping-loops.html: Added.
        * inspector/debugger/stepping/stepping-misc-expected.txt: Added.
        * inspector/debugger/stepping/stepping-misc.html: Added.
        * inspector/debugger/stepping/stepping-switch-expected.txt: Added.
        * inspector/debugger/stepping/stepping-switch.html: Added.
        * inspector/debugger/stepping/stepping-template-string-expected.txt: Added.
        * inspector/debugger/stepping/stepping-template-string.html: Added.
        * inspector/debugger/stepping/stepping-try-catch-finally-expected.txt: Added.
        * inspector/debugger/stepping/stepping-try-catch-finally.html: Added.
        Test stepping in different common scenarios.

        * inspector/debugger/regress-133182.html:
        * inspector/debugger/regress-133182-expected.txt:
        * inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt:
        * inspector/debugger/tail-deleted-frames-from-vm-entry.html:
        Rebaseline. No need for a double step. And the second pause doesn't make any sense
        in the tail deleted frames test.

2016-09-30  Chris Dumez  <cdumez@apple.com>

        [WK2][iOS] Add radiusX / radiusY / rotationAngle to WebPlatformTouchPoint
        https://bugs.webkit.org/show_bug.cgi?id=162787
        <rdar://problem/28554292>

        Reviewed by Benjamin Poulain.

        Extend Touch constructor test coverage to cover radiusX / radiusY / rotationAngle
        attributes.

        * fast/events/touch/touch-constructor.html:

2016-09-30  Saam Barati  <sbarati@apple.com>

        Arrow functions should not allow duplicate parameter names
        https://bugs.webkit.org/show_bug.cgi?id=162741

        Reviewed by Filip Pizlo.

        * js/parser-syntax-check-expected.txt:
        * js/script-tests/parser-syntax-check.js:

2016-09-30  Megan Gardner  <megan_gardner@apple.com>

        Make it possible to test web-related user-interface features
        https://bugs.webkit.org/show_bug.cgi?id=162657

        Reviewed by Simon Fraser.

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

2016-09-30  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Change the MemoryCache and CachedResource adjustSize functions to take a long argument
        https://bugs.webkit.org/show_bug.cgi?id=162708
        <rdar://problem/28555702>

        Reviewed by Brent Fulgham.

        * TestExpectations: Remove failed tests.

2016-09-30  Chris Dumez  <cdumez@apple.com>

        Add support for ImageData.data attribute
        https://bugs.webkit.org/show_bug.cgi?id=162767

        Reviewed by Sam Weinig.

        Add layout test coverage.

        * fast/canvas/canvas-imageData-expected.txt:
        * fast/canvas/script-tests/canvas-imageData.js:

2016-09-30  Youenn Fablet  <youenn@apple.com>

        DumpRenderTree crashed in com.apple.WebCore: WTF::Optional<WebCore::FetchBodyOwner::BlobLoader>::operator bool const + 12
        https://bugs.webkit.org/show_bug.cgi?id=162483

        Reviewed by Alex Christensen.

        * fetch/closing-while-fetching-blob-expected.txt: Added.
        * fetch/closing-while-fetching-blob.html: Added.

2016-09-29  Chris Dumez  <cdumez@apple.com>

        Add support for download attribute on area elements
        https://bugs.webkit.org/show_bug.cgi?id=162765

        Reviewed by Brent Fulgham.

        Add layout test coverage.

        * http/tests/download/area-download-expected.txt: Added.
        * http/tests/download/area-download.html: Added.
        * http/tests/download/resources/FAIL-notify-done.html: Added.

2016-09-29  Jiewen Tan  <jiewen_tan@apple.com>

        Expose CryptoKey to web workers
        https://bugs.webkit.org/show_bug.cgi?id=162640
        <rdar://problem/28182204>

        Reviewed by Brent Fulgham.

        * crypto/resources/common.js: Renamed from LayoutTests/crypto/subtle/resources/common.js.
        * crypto/subtle/aes-cbc-192-encrypt-decrypt.html:
        * crypto/subtle/aes-cbc-256-encrypt-decrypt.html:
        * crypto/subtle/aes-cbc-encrypt-decrypt-with-padding.html:
        * crypto/subtle/aes-cbc-encrypt-decrypt.html:
        * crypto/subtle/aes-cbc-generate-key.html:
        * crypto/subtle/aes-cbc-import-jwk.html:
        * crypto/subtle/aes-cbc-invalid-length.html:
        * crypto/subtle/aes-cbc-unwrap-failure.html:
        * crypto/subtle/aes-cbc-unwrap-rsa.html:
        * crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html:
        * crypto/subtle/aes-cbc-wrap-rsa.html:
        * crypto/subtle/aes-cbc-wrong-key-class.html:
        * crypto/subtle/aes-export-key.html:
        * crypto/subtle/aes-kw-key-manipulation.html:
        * crypto/subtle/aes-kw-wrap-unwrap-aes.html:
        * crypto/subtle/aes-postMessage-expected.txt:
        * crypto/subtle/aes-postMessage.html:
        * crypto/subtle/argument-conversion.html:
        * crypto/subtle/array-buffer-view-offset.html:
        * crypto/subtle/crypto-key-algorithm-gc.html:
        * crypto/subtle/crypto-key-usages-gc.html:
        * crypto/subtle/hmac-check-algorithm.html:
        * crypto/subtle/hmac-export-key.html:
        * crypto/subtle/hmac-generate-key.html:
        * crypto/subtle/hmac-import-jwk.html:
        * crypto/subtle/hmac-postMessage-expected.txt:
        * crypto/subtle/hmac-postMessage.html:
        * crypto/subtle/hmac-sign-verify-empty-key.html:
        * crypto/subtle/hmac-sign-verify.html:
        * crypto/subtle/import-jwk.html:
        * crypto/subtle/jwk-export-use-values.html:
        * crypto/subtle/jwk-import-use-values.html:
        * crypto/subtle/postMessage-worker-expected.txt: Removed.
        * crypto/subtle/rsa-export-generated-keys.html:
        * crypto/subtle/rsa-export-key.html:
        * crypto/subtle/rsa-export-private-key.html:
        * crypto/subtle/rsa-indexeddb-non-exportable-private.html:
        * crypto/subtle/rsa-indexeddb-non-exportable.html:
        * crypto/subtle/rsa-indexeddb-private.html:
        * crypto/subtle/rsa-indexeddb.html:
        * crypto/subtle/rsa-oaep-generate-non-extractable-key.html:
        * crypto/subtle/rsa-oaep-key-manipulation.html:
        * crypto/subtle/rsa-oaep-plaintext-length.html:
        * crypto/subtle/rsa-oaep-wrap-unwrap-aes.html:
        * crypto/subtle/rsa-postMessage.html:
        * crypto/subtle/rsaes-pkcs1-v1_5-decrypt.html:
        * crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-small-key.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-sign-verify.html:
        * crypto/subtle/sha-1.html:
        * crypto/subtle/sha-224.html:
        * crypto/subtle/sha-256.html:
        * crypto/subtle/sha-384.html:
        * crypto/subtle/sha-512.html:
        * crypto/subtle/unimplemented-unwrap-crash.html:
        * crypto/subtle/unwrapKey-check-usage.html:
        * crypto/subtle/wrapKey-check-usage.html:
        * crypto/workers/aes-postMessage-worker-expected.txt: Added.
        * crypto/workers/aes-postMessage-worker.html: Added.
        * crypto/workers/hmac-postMessage-worker-expected.txt: Added.
        * crypto/workers/hmac-postMessage-worker.html: Renamed from LayoutTests/crypto/subtle/postMessage-worker.html.
        * crypto/workers/hrsa-postMessage-worker-expected.txt: Added.
        * crypto/workers/hrsa-postMessage-worker.html: Added.
        * crypto/workers/multiple-postMessage-worker-expected.txt: Added.
        * crypto/workers/multiple-postMessage-worker.html: Added.
        * crypto/workers/resources/aes-postMessage-worker.js: Added.
        * crypto/workers/resources/hmac-postMessage-worker.js: Renamed from LayoutTests/crypto/subtle/resources/postMessage-worker.js.
        * crypto/workers/resources/hrsa-postMessage-worker.js: Added.
        * crypto/workers/resources/rsa-postMessage-worker.js: Added.
        * crypto/workers/rsa-postMessage-worker-expected.txt: Added.
        * crypto/workers/rsa-postMessage-worker.html: Added.
        * js/dom/global-constructors-attributes-dedicated-worker-expected.txt:

2016-09-29  Nan Wang  <n_wang@apple.com>

        AX: iOS: Tapping <input> in Safari zooms in a bit when page has max scale = 1
        https://bugs.webkit.org/show_bug.cgi?id=162471

        Reviewed by Simon Fraser.

        Moved focus input related tests to the right place.

        * fast/forms/ios/user-scalable-does-not-scale-for-keyboard-focus-with-author-defined-scale-expected.txt: Added.
        * fast/forms/ios/user-scalable-does-not-scale-for-keyboard-focus-with-author-defined-scale.html: Added.
        * fast/forms/ios/user-scalable-does-not-scale-for-keyboard-focus-with-user-scalable-no-expected.txt: Added.
        * fast/forms/ios/user-scalable-does-not-scale-for-keyboard-focus-with-user-scalable-no.html: Added.
        * fast/forms/ios/user-scalable-scales-for-keyboard-focus-with-no-author-defined-scale-expected.txt: Added.
        * fast/forms/ios/user-scalable-scales-for-keyboard-focus-with-no-author-defined-scale.html: Added.
        * fast/viewport/ios/user-scalable-does-not-scale-for-keyboard-focus-with-author-defined-scale-expected.txt: Removed.
        * fast/viewport/ios/user-scalable-does-not-scale-for-keyboard-focus-with-author-defined-scale.html: Removed.
        * fast/viewport/ios/user-scalable-scales-for-keyboard-focus-with-no-author-defined-scale-expected.txt: Removed.
        * fast/viewport/ios/user-scalable-scales-for-keyboard-focus-with-no-author-defined-scale.html: Removed.

2016-09-29  Chris Dumez  <cdumez@apple.com>

        [iOS] Update Touch constructor test to cover clientX / clientY attributes
        https://bugs.webkit.org/show_bug.cgi?id=162757

        Reviewed by Sam Weinig.

        Update Touch constructor test to cover clientX / clientY attributes.

        * fast/events/touch/touch-constructor.html:

2016-09-29  Chris Dumez  <cdumez@apple.com>

        [iOS] Add test for Touch constructor
        https://bugs.webkit.org/show_bug.cgi?id=162736
        <rdar://problem/28520007>

        Reviewed by Ryosuke Niwa.

        Add test for Touch constructor. There are no expected results because
        the test (folder) is skipped in the open source.

        * fast/events/touch/touch-constructor.html: Added.

2016-09-28  Ada Chan  <adachan@apple.com>

        Fix flaky test media/click-placeholder-not-pausing.html
        https://bugs.webkit.org/show_bug.cgi?id=162661

        Reviewed by Eric Carlson.

        This test became flaky after r201474 when we started to delay showing
        the inline placeholder until we are sure the video layer has been moved
        into the video fullscreen layer. This means we can't guarantee that the
        placeholder is visible right away after the video's presentation mode
        changes to "picture-in-picture".

        To fix this, wait for the placeholder to become visible before clicking it.

        * media/click-placeholder-not-pausing.html:
        * platform/mac-wk2/TestExpectations:

2016-09-29  Commit Queue  <commit-queue@webkit.org>

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

        May have caused iOS perf regression (Requested by smfr on
        #webkit).

        Reverted changeset:

        "REGRESSION (r204552): Yelp carousel animation is not smooth."
        https://bugs.webkit.org/show_bug.cgi?id=162632
        http://trac.webkit.org/changeset/206483

2016-09-29  Ryan Haddad  <ryanhaddad@apple.com>

        Removing El Capitan modifier from flaky test media/restore-from-page-cache.html.
        https://bugs.webkit.org/show_bug.cgi?id=158747

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-09-29  Antoine Quint  <graouts@apple.com>

        [Modern Media Controls] scheduler for layout nodes
        https://bugs.webkit.org/show_bug.cgi?id=162726
        <rdar://problem/28543043>

        Reviewed by Dean Jackson.

        Testing the basic functionality for the LayoutNode scheduler.

        * media/modern-media-controls/scheduler/not-reentrant-expected.txt: Added.
        * media/modern-media-controls/scheduler/not-reentrant.html: Added.
        * media/modern-media-controls/scheduler/single-callback-when-registered-multiple-times-expected.txt: Added.
        * media/modern-media-controls/scheduler/single-callback-when-registered-multiple-times.html: Added.

2016-09-28  Ryosuke Niwa  <rniwa@webkit.org>

        Text nodes assigned to a linked slot are not clickable
        https://bugs.webkit.org/show_bug.cgi?id=162091
        <rdar://problem/28383300>

        Reviewed by Antti Koivisto.

        Added a regression test for clicking inside a text node assigned to a slot inside a hyperlink.

        Unfortunately, there is not a way to make this a W3C style test until the web platform tests
        start supporting WebDriver.

        * fast/shadow-dom/click-text-inside-linked-slot-expected.txt: Added.
        * fast/shadow-dom/click-text-inside-linked-slot.html: Added.
        * platform/ios-simulator-wk2/TestExpectations:

2016-09-29  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/images/load-img-with-empty-src.html as crashing.
        https://bugs.webkit.org/show_bug.cgi?id=162696

        Unreviewed test gardening.

        * TestExpectations:

2016-09-29  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/images/pdf-as-image-with-annotations.html as crashing.
        https://bugs.webkit.org/show_bug.cgi?id=162696

        Unreviewed test gardening.

        * TestExpectations:

2016-09-29  Saam Barati  <sbarati@apple.com>

        parser-syntax-check should display the output of syntax errors
        https://bugs.webkit.org/show_bug.cgi?id=162738

        Reviewed by Joseph Pecoraro.

        It's good to have this test display the syntax error messages
        when we're expecting a syntax error because it will both allow
        us to track changes in error messages and verify that we get
        the expected error message when writing new tests.

        * js/parser-syntax-check-expected.txt:
        * js/script-tests/parser-syntax-check.js:
        (runTest):

2016-09-29  Simon Fraser  <simon.fraser@apple.com>

        Fix hit testing on display:block <svg> elements
        https://bugs.webkit.org/show_bug.cgi?id=162717
        rdar://problem/23261130

        Reviewed by Zalan Bujtas.
        
        Test hit testing on inline and block <svg> elements.

        * svg/hittest/block-svg-expected.txt: Added.
        * svg/hittest/block-svg.html: Added.

2016-09-29  Saam Barati  <sbarati@apple.com>

        We don't properly propagate non-simple-parameter-list when parsing a setter
        https://bugs.webkit.org/show_bug.cgi?id=160483

        Reviewed by Joseph Pecoraro.

        * js/parser-syntax-check-expected.txt:
        * js/script-tests/parser-syntax-check.js:

2016-09-29  Nan Wang  <n_wang@apple.com>

        AX: Meter: [Mac] Content in label element should be used as AXTitle or AXDescription
        https://bugs.webkit.org/show_bug.cgi?id=162586

        Reviewed by Chris Fleizach.

        * accessibility/mac/aria-label-on-label-element-expected.txt:
        * accessibility/mac/aria-label-on-label-element.html:
        * accessibility/mac/meter-with-label-element-expected.txt: Added.
        * accessibility/mac/meter-with-label-element.html: Added.

2016-09-28  Chris Dumez  <cdumez@apple.com>

        Import touch-events web-platform-tests
        https://bugs.webkit.org/show_bug.cgi?id=162713

        Reviewed by Alex Christensen.

        Skip on all platforms that do not have Touch enabled.

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

2016-09-28  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/images/object-image.html as crashing.
        https://bugs.webkit.org/show_bug.cgi?id=162696

        Unreviewed test gardening.

        * TestExpectations:

2016-09-28  Chris Dumez  <cdumez@apple.com>

        Log console messages when the anchor download attribute is ignored
        https://bugs.webkit.org/show_bug.cgi?id=162703

        Reviewed by Alex Christensen.

        Log console messages when the anchor download attribute is ignored so
        that the developer can better understand what's happening.

        * fast/dom/HTMLAnchorElement/anchor-download-synthetic-click-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:

2016-09-28  Chris Dumez  <cdumez@apple.com>

        Add support for DOMTokenList.supports()
        https://bugs.webkit.org/show_bug.cgi?id=162659

        Reviewed by Ryosuke Niwa.

        Add layout test coverage. Our pass rate is identical to Firefox 49,
        everything passes except HTMLElement.dropzone. Chrome 53's pass rate
        is lower because relList is not a DOMTokenList on anchor / area,
        they do not support HTMLElement.dropzone and their
        DOMTokenList.supports() is case-sensitive.

        * fast/dom/DOMTokenList-supports-expected.txt: Added.
        * fast/dom/DOMTokenList-supports.html: Added.

2016-09-28  Ryosuke Niwa  <rniwa@webkit.org>

        DOMTokenList’s value and stringifier should not return parsed tokens
        https://bugs.webkit.org/show_bug.cgi?id=161076

        Reviewed by Chris Dumez.

        Added more test cases and rebaselined tests. Most of changes are due to the change that DOMTokenList's value
        and stringifier now returns the original attribute value with extra whitespaces.

        * fast/dom/HTMLLinkElement/sizes-setter-expected.txt:
        * fast/dom/HTMLLinkElement/sizes-setter.html:
        * fast/dom/HTMLOutputElement/dom-settable-token-list-expected.txt:
        * fast/dom/HTMLOutputElement/htmloutputelement-expected.txt:
        * fast/dom/HTMLOutputElement/htmloutputelement.html:
        * fast/dom/HTMLOutputElement/script-tests/dom-settable-token-list.js:
        * fast/frames/sandbox-attribute-expected.txt:
        * fast/frames/sandbox-attribute.html:

2016-09-28  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/images/animated-gif-restored-from-bfcache.html as flaky on mac-wk2 debug.
        https://bugs.webkit.org/show_bug.cgi?id=162510

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-09-28  Ryan Haddad  <ryanhaddad@apple.com>

        Mark fast/images/pdf-as-image-too-big.html as crashing.
        https://bugs.webkit.org/show_bug.cgi?id=162696

        Unreviewed test gardening.

        * TestExpectations:

2016-09-28  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for more crashing fast/images tests.
        https://bugs.webkit.org/show_bug.cgi?id=162696

        Unreviewed test gardening.

        * TestExpectations:

2016-09-28  Chris Dumez  <cdumez@apple.com>

        It should be possible to dispatch events on template documents
        https://bugs.webkit.org/show_bug.cgi?id=162687

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/dom/template-document-dispatchEvent-expected.txt: Added.
        * fast/dom/template-document-dispatchEvent.html: Added.

2016-09-28  Ryan Haddad  <ryanhaddad@apple.com>

        Update TestExpectations for crashing fast/images tests.
        https://bugs.webkit.org/show_bug.cgi?id=162696

        Unreviewed test gardening.

        * TestExpectations:

2016-09-28  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/cache/disk-cache/disk-cache-redirect.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=162524

        Unreviewed test gardening.

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

2016-09-28  Youenn Fablet  <youenn@apple.com>

        WebCore::ResourceErrorBase::setType is crashing
        https://bugs.webkit.org/show_bug.cgi?id=162484
        <rdar://problem/28390828>

        Reviewed by Alex Christensen.

        * http/tests/xmlhttprequest/on-network-timeout-error-during-preflight-expected.txt: Added.
        * http/tests/xmlhttprequest/on-network-timeout-error-during-preflight.html: Added.
        * tests-options.json: Marking test as slow.

2016-09-28  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] In SourceBufferPrivateAVFObjC::abort(), support reseting parser to the last appended initialization segment.
        https://bugs.webkit.org/show_bug.cgi?id=135164

        Reviewed by Eric Carlson.

        * media/media-source/media-source-abort-resets-parser-expected.txt: Added.
        * media/media-source/media-source-abort-resets-parser.html: Added.

2016-09-28  Alejandro G. Castro  <alex@igalia.com>

        Add WebIDL special operation support: serializer
        https://bugs.webkit.org/show_bug.cgi?id=156293

        Reviewed by Youenn Fablet.

        Verify the new API of the objects and check what happens when user
        modifies the values and types of the attributes, or adds a null value.

        * fast/mediastream/RTCIceCandidate-expected.txt:
        * fast/mediastream/RTCIceCandidate.html:
        * fast/mediastream/RTCSessionDescription-expected.txt:
        * fast/mediastream/RTCSessionDescription.html:

2016-09-28  Khaled Hosny  <khaledhosny@eglug.org>

        Use new woff2 API
        https://bugs.webkit.org/show_bug.cgi?id=162608

        Reviewed by Michael Catanzaro.

        * fast/text/resources/header-totalsfntsize-001.ttf: Added.
        * fast/text/resources/header-totalsfntsize-001.woff2: Added.
        * fast/text/woff2-totalsfntsize-expected.html: Added.
        * fast/text/woff2-totalsfntsize.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2016-09-27  Nan Wang  <n_wang@apple.com>

        AX: CrashTracer: com.apple.WebKit.WebContent at WebCore::AXObjectCache::localCaretRectForCharacterOffset(WebCore::RenderObject*&, WebCore::CharacterOffset const&) + 116
        https://bugs.webkit.org/show_bug.cgi?id=162654

        Reviewed by Chris Fleizach.

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

2016-09-27  Ryosuke Niwa  <rniwa@webkit.org>

        Toggling display: none on a parent element of a slot which shares style with its parent doesn't update the slot's visibility
        https://bugs.webkit.org/show_bug.cgi?id=158421

        Reviewed by Darin Adler.

        Add a regression test now that the bug has been fixed by r206403.

        * fast/shadow-dom/shadow-layout-after-toggling-display-slot-parent-expected.html: Added.
        * fast/shadow-dom/shadow-layout-after-toggling-display-slot-parent.html: Added.

2016-09-27  Chris Dumez  <cdumez@apple.com>

        [iOS] Fix several Touch-related layout tests
        https://bugs.webkit.org/show_bug.cgi?id=162651

        Reviewed by Darin Adler.

        Fix several Touch-related layout tests. The first parameter to our Touch
        constructor must be a Window but several of our tests were passing in a
        Document.

        * platform/ios-simulator/ios/touch/construct-Touch-expected.txt:
        * platform/ios-simulator/ios/touch/resources/construct-Touch.js:
        * platform/ios-simulator/ios/touch/resources/construct-TouchList.js:

2016-09-27  Zalan Bujtas  <zalan@apple.com>

        REGRESSION (r204552): Yelp carousel animation is not smooth.
        https://bugs.webkit.org/show_bug.cgi?id=162632

        Reviewed by Simon Fraser.

        * compositing/hidpi-composited-container-and-graphics-layer-gap-changes-expected.html: Added.
        * compositing/hidpi-composited-container-and-graphics-layer-gap-changes.html: Added.
        * compositing/hidpi-negative-composited-bounds-on-device-pixel-expected.html: Added.
        * compositing/hidpi-negative-composited-bounds-on-device-pixel.html: Added.

2016-09-27  Chris Dumez  <cdumez@apple.com>

        <a download> does not honor the same-origin requirement
        https://bugs.webkit.org/show_bug.cgi?id=156100

        Reviewed by Alex Christensen.

        Update existing cross origin test as it expected the suggested filename to
        be ignored but the file to still be downloaded (Chrome behavior) instead
        of the download attribute to be completely ignored and therefore navigate
        (Firefox behavior).

        * TestExpectations:
        * http/tests/resources/pass-notify-done.html: Added.
        * http/tests/security/anchor-download-block-crossorigin-expected.txt:
        * http/tests/security/anchor-download-block-crossorigin.html:

2016-09-27  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/xmlhttprequest/onabort-response-getters.html as failing on Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=162647

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-09-27  Ryan Haddad  <ryanhaddad@apple.com>

        Marking imported/w3c/web-platform-tests/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html as failing on ios-simulator-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=162645

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2016-09-27  Chris Dumez  <cdumez@apple.com>

        It should be possible to dispatch events on documents created using DOMParser
        https://bugs.webkit.org/show_bug.cgi?id=26147

        Reviewed by Ryosuke Niwa.

        Add layout test coverage.

        * fast/dom/parsed-document-dispatchEvent-expected.txt: Added.
        * fast/dom/parsed-document-dispatchEvent.html: Added.

2016-09-27  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement.html as flaky on Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=162638

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-09-27  Ryosuke Niwa  <rniwa@webkit.org>

        Import w3c shadow DOM tests and fix one assertion
        https://bugs.webkit.org/show_bug.cgi?id=162629

        Reviewed by Chris Dumez.

        Deleted the duplicated copies of tests in fast/shadow/ since this patch re-imports them via web-platform-tests.

        * fast/shadow-dom/Element-interface-attachShadow-expected.txt: Removed.
        * fast/shadow-dom/Node-prototype-cloneNode-expected.txt: Removed.

2016-09-27  Ryan Haddad  <ryanhaddad@apple.com>

        Marking imported/w3c/web-platform-tests/media-source/mediasource-liveseekable.html as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=162626

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-09-27  Chris Dumez  <cdumez@apple.com>

        Second parameter to MutationObserver.observe() should be optional
        https://bugs.webkit.org/show_bug.cgi?id=162627

        Reviewed by Ryosuke Niwa.

        Rebaseline existing test now that the exception messages are slightly
        different.

        * fast/dom/MutationObserver/observe-exceptions-expected.txt:

2016-09-27  Dan Bernstein  <mitz@apple.com>

        [iOS] REGRESSION (r182126): Selection highlight and handles aren’t visible with WKSelectionGranularityCharacter
        https://bugs.webkit.org/show_bug.cgi?id=162577
        <rdar://problem/28481984>

        Reviewed by Simon Fraser.

        * TestExpectations:
        * editing/selection/character-granularity-rect-expected.txt: Added.
        * editing/selection/character-granularity-rect.html: Added.
        * platform/ios-simulator-wk2/TestExpectations:

2016-09-27  Jer Noble  <jer.noble@apple.com>

        Remove deprecated ENCRYPTED_MEDIA implementation.
        https://bugs.webkit.org/show_bug.cgi?id=161010

        Reviewed by Eric Carlson.

        * fast/events/constructors/media-key-event-constructor-expected.txt: Removed.
        * fast/events/constructors/media-key-event-constructor.html: Removed.
        * media/encrypted-media/encrypted-media-can-play-type-expected.txt: Removed.
        * media/encrypted-media/encrypted-media-can-play-type-webm-expected.txt: Removed.
        * media/encrypted-media/encrypted-media-can-play-type-webm.html: Removed.
        * media/encrypted-media/encrypted-media-can-play-type.html: Removed.
        * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac/fast/events/constructors/media-key-event-constructor-expected.txt: Removed.
        * platform/mac/js/dom/global-constructors-attributes-expected.txt:

2016-09-27  Chris Dumez  <cdumez@apple.com>

        [WK2] Navigating to a Blob URL does not trigger a download
        https://bugs.webkit.org/show_bug.cgi?id=162574

        Reviewed by Darin Adler.

        Rebaseline now that the suggested download name is "unknown" by default
        for blob downloads as well.

        * fast/dom/HTMLAnchorElement/anchor-download-expected.txt:
        * fast/dom/HTMLAnchorElement/anchor-nodownload-set-expected.txt:

2016-09-27  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r205883): Letterpressed text is invisible
        https://bugs.webkit.org/show_bug.cgi?id=162590

        Reviewed by Simon Fraser.

        Letterpress is only implemented on iOS, so letterpress-different.html is marked
        as only passing on iOS. letterpress-paint.html makes sure that letterpressed paint
        is not invisible.

        * TestExpectations:
        * fast/text/letterpress-different-expected-mismatch.html: Added.
        * fast/text/letterpress-different.html: Added.
        * fast/text/letterpress-paint-expected-mismatch.html: Added.
        * fast/text/letterpress-paint.html: Added.
        * platform/ios-simulator/TestExpectations:

2017-09-26  Ryan Haddad  <ryanhaddad@apple.com>

        Marking css3/filters/backdrop/backdrop-filter-with-reflection* tests as flaky on Sierra WK1.
        https://bugs.webkit.org/show_bug.cgi?id=162591

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-09-26  Ryan Haddad  <ryanhaddad@apple.com>

        Remove 100ms timeout for media/media-source/media-source-delaying-load-event.html to try to fix flakiness.
        https://bugs.webkit.org/show_bug.cgi?id=162566

        Reviewed by Alexey Proskuryakov.

        * media/media-source/media-source-delaying-load-event.html:

2016-09-26  Antti Koivisto  <antti@apple.com>

        Setter on style element's textContent or cssText doesn't trigger style recalc
        https://bugs.webkit.org/show_bug.cgi?id=160331
        <rdar://problem/27609715>

        Reviewed by Ryosuke Niwa and Daniel Bates.

        * fast/shadow-dom/shadow-style-text-mutation-expected.html: Added.
        * fast/shadow-dom/shadow-style-text-mutation.html: Added.

2016-09-26  Antti Koivisto  <antti@apple.com>

        Input elements don't work inside shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=160427

        Reviewed by Darin Adler.

        * fast/shadow-dom/composed-tree-shadow-child-subtree-expected.txt: Added.
        * fast/shadow-dom/composed-tree-shadow-child-subtree.html: Added.
        * fast/shadow-dom/input-element-in-shadow-expected.html: Added.
        * fast/shadow-dom/input-element-in-shadow.html: Added.

2016-09-26  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/media-document-audio-repaint.html as flaky on Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=155757

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-09-26  Chris Dumez  <cdumez@apple.com>

        [WK2] BlobDownloadClient should use asynchronous IPC to decide destination path
        https://bugs.webkit.org/show_bug.cgi?id=162568

        Reviewed by Alex Christensen.

        * fast/dom/HTMLAnchorElement/anchor-download-expected.txt:
        * fast/dom/HTMLAnchorElement/anchor-nodownload-set-expected.txt:
        * http/tests/security/anchor-download-allow-blob-expected.txt:
        Rebaseline several Blob download tests now that the "Download started"
        message always comes first (as it should).

        * platform/mac-wk2/TestExpectations:
        Unskip test that is no longer flaky.

2016-09-26  Nan Wang  <n_wang@apple.com>

        AX: Progress: [Mac] Content in label element should be used as AXTitle or AXDescription
        https://bugs.webkit.org/show_bug.cgi?id=162573

        Reviewed by Chris Fleizach.

        * accessibility/mac/progress-with-label-element-expected.txt: Added.
        * accessibility/mac/progress-with-label-element.html: Added.

2016-09-26  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/media-controls-drag-timeline-set-controls-property.html as flaky on Yosemite Debug WK2.
        https://bugs.webkit.org/show_bug.cgi?id=161659

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

== Rolled over to ChangeLog-2016-09-26 ==
