2016-12-09  Romain Bellessort  <romain.bellessort@crf.canon.fr>

        [Readable Streams API] Implement ReadableByteStreamController desiredSize
        https://bugs.webkit.org/show_bug.cgi?id=165599

        Reviewed by Darin Adler.

        Added test to check ReadableByteStreamController desiredSize value.

        * streams/readable-byte-stream-controller-expected.txt: Added expectation for new test.
        * streams/readable-byte-stream-controller.js: Added new test for desiredSize.

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

        document.pointerLockElement exposes a node inside a shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=165702

        Reviewed by Simon Fraser.

        Added tests for pointer locks inside a shadow root as well as one assigned to a slot.

        * fast/shadow-dom/pointerlockelement-in-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/pointerlockelement-in-shadow-tree.html: Added.
        * fast/shadow-dom/pointerlockelement-in-slot-expected.txt: Added.
        * fast/shadow-dom/pointerlockelement-in-slot.html: Added.
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:

2016-12-09  Daniel Bates  <dabates@apple.com>

        Add reflected nonce attribute to HTML Link element IDL
        https://bugs.webkit.org/show_bug.cgi?id=165709

        Reviewed by Ryosuke Niwa.

        Add a test to ensure that we reflect the nonce attribute for the HTML link, script,
        and style elements.

        * fast/dom/nonce-attribute-reflection-expected.txt: Added.
        * fast/dom/nonce-attribute-reflection.html: Added.

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

        Marking inspector/debugger/csp-exceptions.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=165292

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        [Part 2 of 2] Add support for PKCS8 format while doing SubtleCrypto.importKey/exportKey
        https://bugs.webkit.org/show_bug.cgi?id=129978
        <rdar://problem/21799829>

        Reviewed by Brent Fulgham.

        * crypto/subtle/import-key-malformed-parameters-expected.txt:
        * crypto/subtle/import-key-malformed-parameters.html:
        * crypto/subtle/rsa-export-key-malformed-parameters-expected.txt:
        * crypto/subtle/rsa-export-key-malformed-parameters.html:
        * crypto/subtle/rsa-import-jwk-key-export-pkcs8-key-expected.txt: Added.
        * crypto/subtle/rsa-import-jwk-key-export-pkcs8-key.html: Added.
        * crypto/subtle/rsa-import-jwk-key-export-spki-key-expected.txt:
        * crypto/subtle/rsa-import-jwk-key-export-spki-key.html:
        * crypto/subtle/rsa-import-key-malformed-parameters-expected.txt:
        * crypto/subtle/rsa-import-key-malformed-parameters.html:
        * crypto/subtle/rsa-import-pkcs8-key-export-jwk-key-expected.txt: Added.
        * crypto/subtle/rsa-import-pkcs8-key-export-jwk-key.html: Added.
        * crypto/subtle/rsa-import-pkcs8-key-export-pkcs8-key-expected.txt: Added.
        * crypto/subtle/rsa-import-pkcs8-key-export-pkcs8-key.html: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-pkcs8-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-pkcs8.html: Added.
        * crypto/subtle/rsa-oaep-import-pkcs8-key-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-pkcs8-key.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-pkcs8-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-pkcs8.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-pkcs8-key-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-pkcs8-key.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-pkcs8-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-pkcs8.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-pkcs8-key-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-pkcs8-key.html: Added.
        * crypto/workers/subtle/resources/rsa-export-pkcs8-key.js: Added.
        * crypto/workers/subtle/resources/rsa-import-pkcs8-key.js: Added.
        * crypto/workers/subtle/rsa-export-pkcs8-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-export-pkcs8-key.html: Added.
        * crypto/workers/subtle/rsa-import-pkcs8-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-import-pkcs8-key.html: Added.

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

        Web Inspector: Some resources fetched via Fetch API do not have data
        https://bugs.webkit.org/show_bug.cgi?id=165230
        <rdar://problem/29449220>

        Reviewed by Alex Christensen.

        * http/tests/inspector/network/fetch-response-body-expected.txt: Added.
        * http/tests/inspector/network/fetch-response-body.html: Added.
        * http/tests/inspector/network/resources/data.html: Added.
        * http/tests/inspector/network/resources/data.json: Added.
        * http/tests/inspector/network/resources/data.svg: Added.
        * http/tests/inspector/network/resources/data.txt: Added.
        * http/tests/inspector/network/resources/echo.php: Added.
        * http/tests/inspector/network/xhr-response-body-expected.txt: Added.
        * http/tests/inspector/network/xhr-response-body.html: Added.
        Tests for viewing content of XHR and Fetch requested resources
        with different kinds of content.

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

        document.webkitFullscreenElement leaks elements inside a shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=158471

        Reviewed by Chris Dumez.

        Added tests for calling webkitFullscreenElement and webkitCurrentFullScreenElement on a fullscreened element
        to make sure they return the shadow host instead.

        Also added two unrelated test cases for temporal regressions I introduced while working on this patch.

        Skip the fullscreen tests on iOS WK2 since eventSender doesn't work there.

        * fast/shadow-dom/activeElement-for-focused-element-in-another-shadow-expected.txt: Added.
        * fast/shadow-dom/activeElement-for-focused-element-in-another-shadow.html: Added.
        * fast/shadow-dom/blur-on-shadow-host-with-focused-shadow-content-expected.txt: Added.
        * fast/shadow-dom/blur-on-shadow-host-with-focused-shadow-content.html: Added.
        * fast/shadow-dom/fullscreen-in-shadow-fullscreenElement-expected.txt: Added.
        * fast/shadow-dom/fullscreen-in-shadow-fullscreenElement.html: Added.
        * fast/shadow-dom/fullscreen-in-shadow-webkitCurrentFullScreenElement-expected.txt: Added.
        * fast/shadow-dom/fullscreen-in-shadow-webkitCurrentFullScreenElement.html: Added.
        * fast/shadow-dom/fullscreen-in-slot-fullscreenElement-expected.txt: Added.
        * fast/shadow-dom/fullscreen-in-slot-fullscreenElement.html: Added.
        * fast/shadow-dom/fullscreen-in-slot-webkitCurrentFullScreenElement-expected.txt: Added.
        * fast/shadow-dom/fullscreen-in-slot-webkitCurrentFullScreenElement.html: Added.
        * platform/ios-simulator-wk2/TestExpectations:

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

        [Cocoa] Validation message for required checkbox doesn’t conform the the Apple Style Guide
        https://bugs.webkit.org/show_bug.cgi?id=165661

        Reviewed by Dan Bernstein.

        Update / rebaseline tests.

        * fast/forms/ios/validation-bubble-dismiss-on-tap-expected.txt:
        * fast/forms/ios/validation-bubble-dismiss-on-tap.html:
        * fast/forms/validation-messages-expected.txt:
        * fast/forms/validation-messages.html:
        * platform/ios-simulator-wk2/fast/forms/validation-messages-expected.txt:

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

        Unreviewed, followup after r209598.

        * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:

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

        ASSERTION FAILED: !beforeChild->isRubyRun() in WebCore::RenderRubyAsBlock::addChild
        https://bugs.webkit.org/show_bug.cgi?id=141433
        <rdar://problem/27711351>

        Reviewed by Dean Jackson.

        * fast/ruby/assert-with-listitem-and-block-ruby-expected.txt: Added.
        * fast/ruby/assert-with-listitem-and-block-ruby.html: Added.

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

        [Modern Media Controls] Implement the pageScaleFactor property
        https://bugs.webkit.org/show_bug.cgi?id=165660

        Reviewed by Dean Jackson.

        Add a new test to check that we correctly zoom and size the media controls when the page
        scale factor is a value other than 1.

        * media/modern-media-controls/media-controller/media-controller-scale-factor-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-scale-factor.html: Added.

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

        Unreviewed, rolling out r209574.

        This change broke the Windows build.

        Reverted changeset:

        "[WebIDL] Remove custom bindings for Geolocation"
        https://bugs.webkit.org/show_bug.cgi?id=165625
        http://trac.webkit.org/changeset/209574

2016-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Fedora also needs a PHP7 config file alternative
        https://bugs.webkit.org/show_bug.cgi?id=165606

        Reviewed by Michael Catanzaro.

        * http/conf/fedora-httpd-2.4-php7.conf: Added.

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

        Custom Elements from a different document are not customized when created with innerHTML
        https://bugs.webkit.org/show_bug.cgi?id=165617

        Reviewed by Antti Koivisto.

        Added a W3C style testharness.js test.

        * fast/custom-elements/adopting-from-frameless-document-expected.txt: Added.
        * fast/custom-elements/adopting-from-frameless-document.html: Added.

2016-12-09  Daniel Bates  <dabates@apple.com>

        [CSP] Policy of window opener not applied to about:blank window
        https://bugs.webkit.org/show_bug.cgi?id=165531
        <rdar://problem/29426639>

        Reviewed by Brent Fulgham.

        Add a test to ensure that an about:blank window inherits the CSP policy of its
        opener document.

        * http/tests/security/contentSecurityPolicy/image-blocked-in-about-blank-window-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/image-blocked-in-about-blank-window-blocked.html: Added.

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

        [Modern Media Controls] Remaining time label first appears way to the left
        https://bugs.webkit.org/show_bug.cgi?id=165637

        Reviewed by Dean Jackson.

        Add a new test that checks that marking a property as dirty during a layout correctly commits
        that property on the next frame.

        * media/modern-media-controls/layout-node/node-made-dirty-during-layout-expected.txt: Added.
        * media/modern-media-controls/layout-node/node-made-dirty-during-layout.html: Added.

2016-12-08  Jiewen Tan  <jiewen_tan@apple.com>

        [WebCrypto] Remove NoInterfaceObject attribute from SubtleCrypto Interface
        https://bugs.webkit.org/show_bug.cgi?id=165629
        <rdar://problem/29586203>

        Reviewed by Chris Dumez.

        * js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
        * platform/mac/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:

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

        [Modern Media Controls] Exiting fullscreen with paused media shows the start button
        https://bugs.webkit.org/show_bug.cgi?id=165640

        Reviewed by Dean Jackson.

        Modify the existing test that enters fullscreen and returns to inline controls with paused media
        to check that the start button is not shown upon returning to inline controls.

        * media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline-expected.txt:
        * media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html:

2016-12-08  Myles C. Maxfield  <mmaxfield@apple.com>

        ASSERTION FAILED: locale in WebCore::lastHyphenLocation
        https://bugs.webkit.org/show_bug.cgi?id=164182

        Reviewed by Zalan Bujtas.

        * fast/text/hyphenation-unknown-locale-expected.txt: Added.
        * fast/text/hyphenation-unknown-locale.html: Added.

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

        ASSERTION FAILED: m_items.isEmpty() in CustomElementReactionQueue destructor
        https://bugs.webkit.org/show_bug.cgi?id=162029
        <rdar://problem/28945851>

        Reviewed by Chris Dumez.

        Added a regression test that reliably reproduces the crash in DumpRenderTree / WebKitTestRunner.

        Also added a W3C style testharness.js test for the behavior I broke in an earlier iteration of the patch.

        * fast/custom-elements/disconnected-callback-in-detached-iframe-expected.txt: Added.
        * fast/custom-elements/disconnected-callback-in-detached-iframe.html: Added.
        * fast/custom-elements/element-queue-during-document-destruction-expected.txt: Added.
        * fast/custom-elements/element-queue-during-document-destruction.html: Added.

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

        Marking compositing/rtl/rtl-fixed-overflow.html as failing on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165541

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-12-08  Daniel Bates  <dabates@apple.com>

        Implement Strict Mixed Content Checking
        https://bugs.webkit.org/show_bug.cgi?id=165438
        <rdar://problem/26103867>

        Reviewed by Brent Fulgham and Andy Estes.

        Add tests to ensure that we do not regress strict mixed content checking.

        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/duplicate-directive-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/duplicate-directive.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-blob-url-iframe-in-iframe-expected.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-blob-url-iframe-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/dump-securitypolicyviolation-and-notify-done.js: Added.
        (logMessage):
        (securityPolicyViolationToString):
        (checkNotify):
        (recordSecurityPolicyViolation):
        (window.onload):
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/fail.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-data-url-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-css-report-only.php: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-css.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-and-without-policy.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-in-blob-url-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-in-javascript-url-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-with-enforced-and-report-policies.php: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-plugin.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-script.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-xhr.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-secure-image-after-upgrade-redirect.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-secure-image-after-upgrade.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/red-square.png: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/transform-functions.xsl: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe.html: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe.html: Added.
        * platform/ios-simulator/TestExpectations: Skip plugin tests as plugins are not supported on iOS.

2016-12-08  Sam Weinig  <sam@webkit.org>

        [WebIDL] Remove custom bindings for Geolocation
        https://bugs.webkit.org/show_bug.cgi?id=165625

        Reviewed by Alex Christensen.

        * fast/dom/Geolocation/argument-types-expected.txt:
        * fast/dom/Geolocation/not-enough-arguments-expected.txt:
        * fast/dom/Geolocation/script-tests/argument-types.js:
        Update tests for improved error messages / adherence to WebIDL.

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip passing flexbox tests
        https://bugs.webkit.org/show_bug.cgi?id=165626

        Reviewed by Dean Jackson.

        * TestExpectations:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        @supports fails combinations of conjuctions, disjunctions, and negations of simple conditions
        https://bugs.webkit.org/show_bug.cgi?id=137566
        <rdar://problem/18600949>

        Reviewed by Dean Jackson.

        * TestExpectations:
        Test passes now with new @supports parser.

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Add strict checking for right parens to selector functions like :matches, :not etc.
        https://bugs.webkit.org/show_bug.cgi?id=165624

        Reviewed by Dean Jackson.

        * TestExpectations:

2016-12-08  Jiewen Tan  <jiewen_tan@apple.com>

        [WebCrypto] Replace webkitSubtle with subtle for all crypto/workers/subtle/ tests
        https://bugs.webkit.org/show_bug.cgi?id=165540

        Reviewed by Brent Fulgham.

        * crypto/workers/subtle/aes-postMessage-worker.html:
        * crypto/workers/subtle/hmac-postMessage-worker.html:
        * crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
        * crypto/workers/subtle/hrsa-postMessage-worker.html:
        * crypto/workers/subtle/multiple-postMessage-worker.html:
        * crypto/workers/subtle/resources/hrsa-postMessage-worker.js:
        * crypto/workers/subtle/rsa-postMessage-worker.html:

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

        Rebaseline some css tests for ios-simulator.

        Unreviewed test gardening.

        * platform/ios-simulator/fast/css/font_property_normal-expected.txt:
        * platform/ios-simulator/fast/css/image-set-unprefixed-expected.txt:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip grid tests
        https://bugs.webkit.org/show_bug.cgi?id=165623

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
        * fast/css-grid-layout/grid-auto-flow-get-set.html:
        * fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
        * fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
        * fast/css-grid-layout/grid-template-shorthand-get-set.html:
        * fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
        * fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
        * fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:

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

        Overlapping text at AppleSeed forum's footer.
        https://bugs.webkit.org/show_bug.cgi?id=165613

        Reviewed by Simon Fraser.

        This is a test case for r207219.

        * fast/text/float-with-sibling-text-overlaps-when-text-decoration-changes-expected.html: Added.
        * fast/text/float-with-sibling-text-overlaps-when-text-decoration-changes.html: Added.

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip background parsing tests
        https://bugs.webkit.org/show_bug.cgi?id=165619

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/backgrounds/background-position-parsing-2-expected.txt:
        * fast/backgrounds/background-position-parsing-2.html:
        * 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:

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

        Web Inspector: Unable to delete breakpoint from worker script
        https://bugs.webkit.org/show_bug.cgi?id=165578

        Reviewed by Matt Baker.

        * inspector/worker/debugger-shared-breakpoint-expected.txt: Added.
        * inspector/worker/debugger-shared-breakpoint.html: Added.
        Ensure setting / removing a breakpoint affects all Workers that share
        a resource with the same URL.

        * inspector/worker/resources/worker-debugger-pause.js:
        Add an echo command that will be useful to ensure Workers are not paused.

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

        Rebaseline fast/selectors/nth-last-child-bounds.html after r209548.

        Unreviewed test gardening.

        * fast/selectors/nth-child-bounds-expected.txt:

2016-12-08  Jeremy Jones  <jeremyj@apple.com>

        pointer lock should exit when a js alert is shown
        https://bugs.webkit.org/show_bug.cgi?id=165423
        rdar://problem/29430803

        Reviewed by Jer Noble.

        * platform/mac/TestExpectations:
        * pointer-lock/lock-lost-on-alert-expected.txt: Added.
        * pointer-lock/lock-lost-on-alert.html: Added.

2016-12-08  Sam Weinig  <sam@webkit.org>

        [WebIDL] WebGLContextAttributes should be a dictionary
        https://bugs.webkit.org/show_bug.cgi?id=165572

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/context-creation-attributes-expected.txt:
        Update test results.

2016-12-05  Sam Weinig  <sam@webkit.org>

        [WebIDL] Add support for converting dictionaries to JS
        https://bugs.webkit.org/show_bug.cgi?id=165367

        Reviewed by Darin Adler and Alex Christensen.

        * crypto/subtle/rsa-oaep-generate-key-expected.txt:
        * crypto/subtle/rsa-oaep-generate-key.html:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt:
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html:
        * crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key-expected.txt:
        * crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key.html:
        * crypto/webkitSubtle/rsa-oaep-key-manipulation-expected.txt:
        * crypto/webkitSubtle/rsa-oaep-key-manipulation.html:
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-expected.txt:
        * crypto/webkitSubtle/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:
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key.html:
        * crypto/workers/subtle/resources/rsa-generate-key.js:
        * crypto/workers/subtle/rsa-generate-key-expected.txt:
        Update tests and expected results to show that CryptoKeyPair is now a vanilla object, not a platform object.

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip/remove more tests
        https://bugs.webkit.org/show_bug.cgi?id=165611

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css/parse-color-int-or-percent-crash.html:
        * fast/css/string-quote-binary-expected.txt: Removed.
        * fast/css/string-quote-binary.html: Removed.
        * fast/masking/parsing-mask-expected.txt:
        * fast/masking/parsing-mask.html:
        * fast/selectors/nth-child-bounds.html:
        * fast/selectors/nth-last-child-bounds-expected.txt:
        * fast/selectors/nth-last-child-bounds.html:
        * fast/text/text-combine-crash.html:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip more tests
        https://bugs.webkit.org/show_bug.cgi?id=165610

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css/css-selector-text-expected.txt:
        * fast/css/css-selector-text.html:
        * fast/css/css-set-selector-text-expected.txt:
        * fast/css/css-set-selector-text.html:
        * fast/css/parsing-css-nth-child-expected.txt:
        * fast/css/parsing-css-nth-child.html:

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

        Do not create multicolumn context for certain type of renderers.
        https://bugs.webkit.org/show_bug.cgi?id=135601
        <rdar://problem/27686300>

        Reviewed by David Hyatt.

        * fast/multicol/no-multicol-for-textareas-expected.txt: Added.
        * fast/multicol/no-multicol-for-textareas.html: Added.

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip more tests
        https://bugs.webkit.org/show_bug.cgi?id=165609

        Reviewed by Zalan Bujtas.

        A note on the parsing-css-attribute-* tests. These tests attempted to test namespaces, but
        you really can't do that easily. A @namespace rule is only valid within the scope of its
        stylesheet, and the test was assuming the namespace would apply outside of the stylesheet
        scope.

        The old parser would not properly reject prefixes that didn't point to any valid namespace,
        and so it was possible to test prefixes. The new parser rejects these invalid prefixes, so just
        remove the namespace component of these two tests.

        * TestExpectations:
        * fast/css/attr-parsing-expected.txt:
        * fast/css/attr-parsing.html:
        * fast/css/invalid-cursor-property-crash.html:
        * fast/css/parsing-css-attribute-case-insensitive-value-1.html:
        * fast/css/parsing-css-attribute-case-insensitive-value-2.html:
        * fast/shadow-dom/slotted-pseudo-element-css-text-expected.txt:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip more tests
        https://bugs.webkit.org/show_bug.cgi?id=165608

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css/font-property-priority-expected.txt:
        * fast/css/image-set-unprefixed.html:
        * fast/css/parsing-text-emphasis-expected.txt:
        * fast/css/parsing-text-emphasis.html:
        * fast/css/uri-token-parsing-expected.txt:
        * fast/css/uri-token-parsing.html:
        * platform/mac/fast/css/font_property_normal-expected.txt:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] REGRESSION: Values of 0 should not be allowed for -webkit-aspect-ratio
        https://bugs.webkit.org/show_bug.cgi?id=165607

        Reviewed by Simon Fraser.

        * TestExpectations:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip more tests
        https://bugs.webkit.org/show_bug.cgi?id=165605

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex-expected.txt:
        * fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex.html:
        * fast/selectors/querySelector-pseudo-element-expected.txt:
        * fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-any-expected.txt:
        * fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-any.html:
        * fast/selectors/querySelector-pseudo-element.html:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip more tests
        https://bugs.webkit.org/show_bug.cgi?id=165604

        Reviewed by Zalan Bujtas.

        * TestExpectations:

2016-12-08  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip more tests
        https://bugs.webkit.org/show_bug.cgi?id=165602

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css/remove-shorthand-expected.txt:
        * fast/css/transform-inline-style-expected.txt:
        * fast/regions/region-styling/parsing-region-style-rule.html:
        * fast/shapes/parsing/parsing-shape-image-threshold-expected.txt:
        * fast/shapes/parsing/parsing-shape-image-threshold.html:
        * fast/shapes/shape-outside-floats/shape-outside-animation-expected.txt:
        * fast/shapes/shape-outside-floats/shape-outside-animation.html:
        * platform/mac/svg/webarchive/svg-cursor-subresources-expected.txt:
        * svg/webarchive/svg-cursor-subresources.svg:
        * transitions/transitions-parsing-expected.txt:
        * transitions/transitions-parsing.html:

2016-12-08  Antti Koivisto  <antti@apple.com>

        :after and :before don't work on :host
        https://bugs.webkit.org/show_bug.cgi?id=164675
        <rdar://problem/29231874>

        Reviewed by Andreas Kling.

        * fast/shadow-dom/shadow-host-with-before-after-expected.html: Added.
        * fast/shadow-dom/shadow-host-with-before-after.html: Added.

2016-12-08  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r209490): [ios-simulator] LayoutTest fast/shadow-dom/media-shadow-manipulation.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=165590

        Unreviewed. Revert r209490 on this test and make the check conditional
        since iOS and Mac implements video element differently.

        In any case, these tests aren't testing anything useful after r209486.
        We should consider removing them or make them use internals.shadowRoot instead in a near term.

        * fast/shadow-dom/media-shadow-manipulation-expected.txt:
        * fast/shadow-dom/media-shadow-manipulation.html:

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Remove font test that tests something nobody supports
        https://bugs.webkit.org/show_bug.cgi?id=165596

        Reviewed by Zalan Bujtas.

        Remove this test that thinks "default" should be a special keyword in fonts. No
        other browser treat this as special. Our old parser did, but it's just from some
        reading of ancient CSS2 specs and not for any real-world reason.

        * TestExpectations:
        * fast/css/font-family-parse-keyword.html: Removed.
        * fast/css/font-family-parse-keyword-expected.html: Removed.

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        REGRESSION: font shorthand parsing is broken
        https://bugs.webkit.org/show_bug.cgi?id=165594

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css/font-shorthand-html-expected.txt:

2016-12-07  Jeremy Jones  <jeremyj@apple.com>

        Exit pointer lock when page goes into page cache.
        https://bugs.webkit.org/show_bug.cgi?id=165425
        rdar://problem/29430834

        Reviewed by Jer Noble.

        * platform/mac/TestExpectations:
        * pointer-lock/lock-lost-on-navigation-expected.txt: Added.
        * pointer-lock/lock-lost-on-navigation.html: Added.
        * pointer-lock/resources/lock-lost-on-navigation2.html: Added.

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip calc() tests
        https://bugs.webkit.org/show_bug.cgi?id=165583

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * fast/css/flex-shrink-calculated-value-expected.txt:
        * fast/css/flex-shrink-calculated-value.html:
        * fast/css/negative-calc-values-expected.txt:
        * fast/css/negative-calc-values.html:
        * fast/css/text-shadow-calc-value-expected.txt:
        * fast/css/text-shadow-calc-value.html:
        * fast/css/webkit-line-clamp-calculated-value-expected.txt:
        * fast/css/webkit-line-clamp-calculated-value.html:
        * fast/css/z-index-calculated-value-expected.txt:
        * fast/css/z-index-calculated-value.html:

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

        [Modern Media Controls] Tracks panel does not display in the right location in fullscreen and cannot be dismissed
        https://bugs.webkit.org/show_bug.cgi?id=165575

        Reviewed by Dean Jackson.

        Add new tests to check we correctly position the tracks panel in fullscreen, including when we drag the controls bar.

        * media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls-expected.txt: Added.
        * media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html: Added.
        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt: Added.
        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html: Added.

2016-12-07  Jeremy Jones  <jeremyj@apple.com>

        pointer-lock/lock-lost-on-esc-in-fullscreen.html timeout on mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=165589

        Unreviewed skipping test that is timing out.

        * platform/mac-wk1/TestExpectations:

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

        Fix the filename for a newly added test expectation file.

        Unreviewed test gardening.

        * tiled-drawing/scrolling/scroll-snap/scroll-snap-scrolling-jumps-to-top-expected.txt: Renamed from LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-scrolling-jumps-to-top.txt.

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

        [Modern Media Controls] Use a small picture-in-picture button in fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=165587

        Reviewed by Dean Jackson.

        Rebaseline tests to account for the smaller picture-in-picture button in fullscreen.

        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:

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

        Marking inspector/debugger/async-stack-trace.html as flaky on macOS.
        https://bugs.webkit.org/show_bug.cgi?id=165584

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Marking inspector/worker/debugger-scripts.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=165582

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip media tests
        https://bugs.webkit.org/show_bug.cgi?id=165580

        Reviewed by Jon Lee.

        The new parser will still create rules for hover/pointer queries with
        unknown identifiers. Patch the tests to account for this.

        * TestExpectations:
        * fast/media/mq-any-hover-invalid-expected.txt:
        * fast/media/mq-any-hover-invalid.html:
        * fast/media/mq-any-pointer-invalid-expected.txt:
        * fast/media/mq-any-pointer-invalid.html:
        * fast/media/mq-hover-invalid-expected.txt:
        * fast/media/mq-hover-invalid.html:
        * fast/media/mq-pointer-invalid-expected.txt:
        * fast/media/mq-pointer-invalid.html:

2016-12-07  Dean Jackson  <dino@apple.com>

        Remove runtime toggle for pointer-lock
        https://bugs.webkit.org/show_bug.cgi?id=165577
        <rdar://problems/29566996>

        Reviewed by Jon Lee.

        Remove any runtime calls to check if pointer-lock is enabled. It's
        either compiled in or out.

        * platform/mac/TestExpectations: Enable the pointer-lock tests that should work.
        * pointer-lock/pointer-lock-api.html: Fix a bad DOM call.
        * pointer-lock/pointerlock-interface-disabled-expected.txt: Removed.
        * pointer-lock/pointerlock-interface-disabled.html: Removed.

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unskip gradients tests
        https://bugs.webkit.org/show_bug.cgi?id=165576

        Reviewed by Dean Jackson.

        Keywords like left, center, top, right and bottom are preserved when serializing in
        the new parser.

        * TestExpectations:
        * fast/gradients/css3-gradient-parsing-expected.txt:
        * fast/gradients/css3-gradient-parsing.html:
        * fast/gradients/unprefixed-gradient-parsing-expected.txt:
        * fast/gradients/unprefixed-gradient-parsing.html:

2016-12-07  John Wilander  <wilander@apple.com>

        Allow commas in Accept, Accept-Language, and Content-Language request headers for simple CORS
        https://bugs.webkit.org/show_bug.cgi?id=165566
        <rdar://problem/29560983>

        Reviewed by Alex Christensen.

        * http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html:
            Added ',' to the tests as well as two examples from
            two sites where we found a regression.

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Stop skipping tests in the css3 LayoutTests subdirectory
        https://bugs.webkit.org/show_bug.cgi?id=165574

        Reviewed by Dean Jackson.

        * TestExpectations:
        Stop skipping two tests.

        * css3/font-variant-parsing-expected.txt:
        * css3/font-variant-parsing.html:
        Patched to yield the correct results when multiple values are specified for the
        same sub-property.

        * css3/supports-cssom-expected.txt:
        * css3/supports-cssom.html:
        Patched to account for the new result for @namespace insertion failure (see
        corresponding WebCore ChangeLog for explanation), and also patched to get rid
        of excess whitespace, since the new parser doesn't preserve whitespace formatting
        when serializing @supports.

2016-12-07  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, Skip imported/w3c/WebCryptoAPI/generateKey/test_failures.html

        This is a superset test for all test_failures*.html. No need for it as we run
        all the sub tests.

        * TestExpectations:

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

        [Modern Media Controls] Remove aspect ratio button
        https://bugs.webkit.org/show_bug.cgi?id=165571

        Reviewed by Dean Jackson.

        We no longer have an AspectRatioButton.

        * media/modern-media-controls/aspect-ratio-button/aspect-ratio-button-expected.txt: Removed.
        * media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html: Removed.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html:

2016-12-07  Jeremy Jones  <jeremyj@apple.com>

        One esc to exit fullscreen and pointer lock
        https://bugs.webkit.org/show_bug.cgi?id=165416
        rdar://problem/29430711

        Reviewed by Jer Noble.

        * platform/mac-wk2/TestExpectations:
        * pointer-lock/lock-lost-on-esc-in-fullscreen-expected.txt: Added.
        * pointer-lock/lock-lost-on-esc-in-fullscreen.html: Added.

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Remove tests that depend on SVG CSS OM that has been removed
        https://bugs.webkit.org/show_bug.cgi?id=165565

        Reviewed by Jon Lee.

        * TestExpectations:
        * svg/dom/SVGColor-expected.txt: Removed.
        * svg/dom/SVGColor.html: Removed.
        * svg/dom/SVGPaint-expected.txt: Removed.
        * svg/dom/SVGPaint.html: Removed.
        * svg/dom/rgb-color-parser-expected.txt: Removed.
        * svg/dom/rgb-color-parser.html: Removed.

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

        Marking compositing/layer-creation/fixed-overlap-extent-rtl.html as failing on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165541

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Consolidate string/ident/url serialization functions
        https://bugs.webkit.org/show_bug.cgi?id=165552

        Reviewed by Zalan Bujtas.

        * fast/css/content-language-only-whitespace-expected.txt:
        * fast/css/content-language-with-whitespace-expected.txt:

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

        Marking imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html as flaky on El Capitan WK2.
        https://bugs.webkit.org/show_bug.cgi?id=165392

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Web Inspector: Add ability to distinguish if a Script was parsed as a module
        https://bugs.webkit.org/show_bug.cgi?id=164900
        <rdar://problem/29323817>

        Reviewed by Timothy Hatcher.

        * inspector/model/parse-script-syntax-tree-expected.txt:
        * inspector/model/parse-script-syntax-tree.html:
        * inspector/model/resources/module.js: Added.
        (import.string_appeared_here.myModule):
        * inspector/model/resources/other-module.js: Added.
        (myOtherModule):
        * inspector/model/resources/program.js: Added.
        (myProgram):
        * inspector/model/script-sourceType-expected.txt: Added.
        * inspector/model/script-sourceType.html: Added.

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

        Web Inspector: Update Esprima to support new features / syntax (**, async/await, trailing comma)
        https://bugs.webkit.org/show_bug.cgi?id=164830
        <rdar://problem/29293814>

        Reviewed by Timothy Hatcher.

        * inspector/formatting/resources/javascript-tests/arrow-functions-expected.js:
        * inspector/formatting/resources/javascript-tests/arrow-functions.js:
        * inspector/formatting/resources/javascript-tests/classes-expected.js:
        * inspector/formatting/resources/javascript-tests/classes.js:
        * inspector/formatting/resources/javascript-tests/functions-expected.js:
        * inspector/formatting/resources/javascript-tests/functions.js:
        * inspector/formatting/resources/javascript-tests/other-statements-expected.js:
        * inspector/formatting/resources/javascript-tests/other-statements.js:
        * inspector/formatting/resources/javascript-tests/unary-binary-expressions-expected.js:
        * inspector/formatting/resources/javascript-tests/unary-binary-expressions.js:
        * inspector/model/parse-script-syntax-tree-expected.txt:
        * inspector/model/parse-script-syntax-tree.html:
        Coverage for new supported syntax.

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

        Rebaseline tests after r209486. Also updated media-shadow-manipulation.html now that range is null.

        * fast/shadow-dom/color-input-element-shadow-manipulation-expected.txt:
        * fast/shadow-dom/file-input-element-shadow-manipulation-expected.txt:
        * fast/shadow-dom/media-shadow-manipulation-expected.txt:
        * fast/shadow-dom/media-shadow-manipulation.html:
        * fast/shadow-dom/range-input-element-shadow-manipulation-expected.txt:
        * fast/shadow-dom/textarea-shadow-manipulation-expected.txt:

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

        Marking two compositing tests as failing.
        https://bugs.webkit.org/show_bug.cgi?id=165530

        Unreviewed test gardening.

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

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

        ASSERTION FAILED: count >= 1 in WebCore::RenderMultiColumnSet::columnCount
        https://bugs.webkit.org/show_bug.cgi?id=136365
        <rdar://problem/27686727>

        Reviewed by Simon Fraser.

        * fast/multicol/assert-on-column-count-when-zoomed-in-expected.txt: Added.
        * fast/multicol/assert-on-column-count-when-zoomed-in.html: Added.

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

        document.caretRangeFromPoint doesn't retarget the resultant Range correctly.
        https://bugs.webkit.org/show_bug.cgi?id=165146

        Reviewed by Sam Weinig.

        Added a regression test for caretRangeFromPoint retargeting the result.

        * fast/shadow-dom/caret-range-from-point-in-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/caret-range-from-point-in-shadow-tree.html: Added.

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

        [Modern Media Controls] Entering fullscreen and returning to inline shows fullscreen controls
        https://bugs.webkit.org/show_bug.cgi?id=165536

        Reviewed by Tim Horton.

        Add a new test that checks we're using the right media controls presentation as we enter and exit fullscreen.

        * media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html: Added.

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

        Scroll position jumps to the origin when scrolling without momentum at the end of a scroll snapping container
        https://bugs.webkit.org/show_bug.cgi?id=165474
        <rdar://problem/29534305>

        Reviewed by Simon Fraser.

        Added a new test verifying that if a scroll gesture ends without momentum at the bottom of a scroll snapping
        container, the scroll position won't jump to the top.

        * tiled-drawing/scrolling/scroll-snap/scrolling-jumps-to-top-expected.txt: Added.
        * tiled-drawing/scrolling/scroll-snap/scrolling-jumps-to-top.html: Added.

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

        REGRESSION (r209447): LayoutTests compositing/layer-creation/fixed-position-out-of-view-scaled.html and compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html failing
        https://bugs.webkit.org/show_bug.cgi?id=165530

        New baseline for WK1 (which has RTL/compositing isseus), and mark a test as flakey in WK1.

        * platform/mac-wk1/TestExpectations:
        * platform/mac-wk1/compositing/layer-creation/fixed-overlap-extent-rtl-expected.txt: Added.

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

        AX: menu type toolbar should be mapped correctly on Mac
        https://bugs.webkit.org/show_bug.cgi?id=165537

        Reviewed by Chris Fleizach.

        * accessibility/mac/menu-type-toolbar-expected.txt: Added.
        * accessibility/mac/menu-type-toolbar.html: Added.

2016-12-07  Geoffrey Garen  <ggaren@apple.com>

        Fixed a test failure seen in web-timing-minimal-performance-now.html
        https://bugs.webkit.org/show_bug.cgi?id=165542

        Reviewed by Beth Dakin.

        This test was always slightly wrong, but it is much more likely to fail
        as of <https://trac.webkit.org/changeset/209462>.

        * fast/dom/Window/web-timing-minimal-performance-now.html: < is not a
        correct test for monotonicity. < tests for stricly increasing. <= is a
        correct test for monotonicity. All computer clocks have some granularity,
        so computer clocks are monotonic but not strictly increasing: you can
        sample the clock twice in the same tick.

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

        Web Inspector: Remove unused and mostly untested Page domain commands and events
        https://bugs.webkit.org/show_bug.cgi?id=165507

        Reviewed by Brian Burg.

        * inspector/page/javascriptDialogEvents-expected.txt: Removed.
        * inspector/page/javascriptDialogEvents.html: Removed.
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        Remove test skipped by all platforms.

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        Fix a bad result that I landed by accident.

        * fast/css/object-position/parsing-object-position-expected.txt:

2016-12-07  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Turn back on a bunch of layout tests
        https://bugs.webkit.org/show_bug.cgi?id=165529

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        * css3/parsing-css3-nthchild-expected.txt:
        * css3/parsing-css3-nthchild.html:
        * css3/scroll-snap/scroll-snap-position-values-expected.txt:
        * css3/scroll-snap/scroll-snap-position-values.html:
        * editing/execCommand/insert-list-with-noneditable-content-expected.txt:
        * fast/css/object-position/parsing-object-position-expected.txt:
        * fast/css/object-position/parsing-object-position.html:
        * fast/css/parsing-css-number-types-expected.txt:
        * fast/css/parsing-css-wrap-expected.txt:
        * fast/css/script-tests/transform-origin-parsing.js:
        * fast/css/transform-inline-style-remove-expected.txt:
        * fast/css/transform-origin-parsing-expected.txt:
        * fast/css/variables/custom-property-dynamic-update-expected.html:
        * fast/events/mouse-cursor-expected.txt:
        * fast/inspector-support/style-expected.txt:
        * platform/mac/svg/webarchive/svg-script-subresouces-expected.txt:

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

        Rebaseline fast/table/003.html after r209421.
        https://bugs.webkit.org/show_bug.cgi?id=165513

        Unreviewed test gardening.

        * platform/ios-simulator/fast/table/003-expected.txt:

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

        [Modern Media Controls] Use tap and pinch gestures on iOS
        https://bugs.webkit.org/show_bug.cgi?id=165518

        Reviewed by Dean Jackson.

        With the addition of new gesture recognizer source files, some tests were failing
        due to linking to only a subset of the modern media controls resources.

        * media/modern-media-controls/airplay-button/airplay-button.html:
        * media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html:
        * media/modern-media-controls/button/button.html:
        * media/modern-media-controls/buttons-container/buttons-container-buttons-property.html:
        * media/modern-media-controls/buttons-container/buttons-container-constructor.html:
        * media/modern-media-controls/buttons-container/buttons-container-layout.html:
        * media/modern-media-controls/fullscreen-button/fullscreen-button.html:
        * media/modern-media-controls/icon-button/icon-button-active-state.html:
        * media/modern-media-controls/icon-button/icon-button.html:
        * media/modern-media-controls/mute-button/mute-button.html:
        * media/modern-media-controls/pip-button/pip-button.html:
        * media/modern-media-controls/placard/placard.html:
        * media/modern-media-controls/play-pause-button/play-pause-button.html:
        * media/modern-media-controls/skip-back-button/skip-back-button.html:
        * media/modern-media-controls/start-button/start-button-styles.html:
        * media/modern-media-controls/start-button/start-button.html:
        * media/modern-media-controls/tracks-button/tracks-button.html:

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

        Marking http/tests/security/module-incorrect-mime-types.html as flaky on ios-simulator-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=165344

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

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

        Two tiled drawing tests failing with visual viewports enabled.
        https://bugs.webkit.org/show_bug.cgi?id=165489

        Reviewed by Dean Jackson.
        
        Unfail and rebaseline.

        * platform/mac-wk2/TestExpectations:
        * tiled-drawing/scrolling/frames/coordinated-frame-expected.txt:
        * tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt:

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

        After preventing a beforeinput event, an input event is fired when formatting rich text
        https://bugs.webkit.org/show_bug.cgi?id=165435
        <rdar://problem/29522314>

        Reviewed by Ryosuke Niwa.

        Augmented a layout test to verify that when preventing beforeinput events, a corresponding input event is not
        fired in addition to the style not being applied to the text.

        * fast/events/before-input-prevent-biu.html:

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

        Fix behavior of background-attachment:fixed with visual viewports
        https://bugs.webkit.org/show_bug.cgi?id=165465
        
        Fixed backgrounds are working correctly. Unskip and land a new image result for this test.

        * TestExpectations:
        * tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.png:

2016-12-06  Mark Lam  <mark.lam@apple.com>

        GetByID IC is wrongly unwrapping the global proxy this value for getter/setters.
        https://bugs.webkit.org/show_bug.cgi?id=165401

        Reviewed by Saam Barati.

        Set the test loose now that this bug is fixed.

        * TestExpectations:
        * js/script-tests/prototype-assignment.js:

2016-12-06  Dean Jackson  <dino@apple.com>

        Apply styling to media documents with modern controls
        https://bugs.webkit.org/show_bug.cgi?id=165499
        <rdar://problems/29543847>

        Reviewed by Antoine Quint.

        Make sure that the small test video has the correct background,
        and is not anchored to the top left of the page.

        * media/modern-media-controls/media-documents/background-color-and-centering-expected.html: Added.
        * media/modern-media-controls/media-documents/background-color-and-centering.html: Added.

2016-12-05  Jiewen Tan  <jiewen_tan@apple.com>

        [Part 1 of 2] Add support for SPKI format while doing SubtleCrypto.importKey/exportKey
        https://bugs.webkit.org/show_bug.cgi?id=129978
        <rdar://problem/21799829>

        Reviewed by Brent Fulgham.

        * crypto/subtle/import-key-malformed-parameters-expected.txt:
        * crypto/subtle/import-key-malformed-parameters.html:
        * crypto/subtle/rsa-export-key-malformed-parameters-expected.txt:
        * crypto/subtle/rsa-export-key-malformed-parameters.html:
        * crypto/subtle/rsa-import-jwk-key-export-spki-key-expected.txt: Added.
        * crypto/subtle/rsa-import-jwk-key-export-spki-key.html: Added.
        * crypto/subtle/rsa-import-key-malformed-parameters-expected.txt:
        * crypto/subtle/rsa-import-key-malformed-parameters.html:
        * crypto/subtle/rsa-import-spki-key-export-jwk-key-expected.txt: Added.
        * crypto/subtle/rsa-import-spki-key-export-jwk-key.html: Added.
        * crypto/subtle/rsa-import-spki-key-export-spki-key-expected.txt: Added.
        * crypto/subtle/rsa-import-spki-key-export-spki-key.html: Added.
        * crypto/subtle/rsa-import-spki-small-key-expected.txt: Added.
        * crypto/subtle/rsa-import-spki-small-key.html: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-spki-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-spki.html: Added.
        * crypto/subtle/rsa-oaep-import-spki-key-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-spki-key.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-spki-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-spki.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-spki-key-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-spki-key.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-spki-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-spki.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-spki-key-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-spki-key.html: Added.
        * crypto/workers/subtle/resources/rsa-export-spki-key.js: Added.
        * crypto/workers/subtle/resources/rsa-import-spki-key.js: Added.
        * crypto/workers/subtle/rsa-export-spki-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-export-spki-key.html: Added.
        * crypto/workers/subtle/rsa-import-spki-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-import-spki-key.html: Added.

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

        [Modern Media Controls] Media controls use the fullscreen layout after going from inline to fullscreen to PiP to inline
        https://bugs.webkit.org/show_bug.cgi?id=165494

        Reviewed by Dean Jackson.

        Add a new tests that goes from inline to fullscreen to PiP to inline and checks the controls have the right type on the way.

        * media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html: Added.

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

        [Modern Media Controls] Rendering issues with controls bar when captions are on
        https://bugs.webkit.org/show_bug.cgi?id=165390

        Reviewed by Dean Jackson.

        We add a new test that checks we have the expected element structure with a single <div> containing
        the captions and the media controls elements. Three other tests needed updating since they made
        assumptions on the DOM structure that were no longer holding.

        * media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen-expected.txt:
        * media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen.html:
        * media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/media-controller/media-controller-single-container-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-single-container.html: Added.

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

        [Modern Media Controls] Automatically hide the controls bar when the mouse is idle
        https://bugs.webkit.org/show_bug.cgi?id=165492

        Reviewed by Dean Jackson.

        We add new tests to check the following scenarios:

        1. media-controller-auto-hide-mouse-enter-and-mouse-leave.html checks that, during media playback,
        as the mouse enters the media the controls bar becomes visible, and as the mouse exits the media,
        the controls bar becomes faded.

        2. media-controller-auto-hide-mouse-enter-over-controls-bar.html checks that, during media playback,
        as the mouse enters the media and remains idle over the controls bar, the controls bar remain visible.

        3. media-controller-auto-hide-mouse-leave-after-play.html checks that when the media goes from paused
        to playing, having the mouse enter and leave the media does not hide the media controls until the initial
        auto-hide timer started as the playback status changed has elapsed.

        4. media-controller-auto-hide-pause.html checks that the controls bar remains visible as the media is paused.

        5. media-controller-auto-hide-rewind-with-mouse-enter.html checks that the controls bar becomes visible
        as the mouse enters the media.

        6. media-controller-auto-hide.html checks that the controls bar becomes faded after the auto-hide timer
        has elapsed after initial playback.

        * media/modern-media-controls/media-controller/media-controller-auto-hide-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-and-mouse-leave-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-and-mouse-leave.html: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-over-controls-bar-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-over-controls-bar.html: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-leave-after-play.html: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-pause-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-pause.html: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide-rewind-with-mouse-enter.html: Added.
        * media/modern-media-controls/media-controller/media-controller-auto-hide.html: Added.

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

        Test fast/selectors/040.html fails on iOS Simulator following <https://trac.webkit.org/changeset/209404>
        (https://bugs.webkit.org/show_bug.cgi?id=79694)

        Skip test fast/selectors/040.html as we do not visually highlight a programmatic selection on iOS from
        observation.

        * platform/ios-simulator/TestExpectations:

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

        Can not select whole line when using flexbox
        https://bugs.webkit.org/show_bug.cgi?id=165299

        Reviewed by David Hyatt.

        * fast/flexbox/flexbox-fail-to-select-same-line-expected.html: Added.
        * fast/flexbox/flexbox-fail-to-select-same-line.html: Added.

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

        YouTube sometimes pauses when switching tabs
        https://bugs.webkit.org/show_bug.cgi?id=165468

        Reviewed by Eric Carlson.

        * media/media-session-restrictions.html: Added.
        * platform/ios-simulator/media/media-session-restrictions-expected.txt: Added.
        * platform/mac/media/media-session-restrictions-expected.txt: Added.

2016-12-06  Mark Lam  <mark.lam@apple.com>

        Introduce the concept of Immutable Prototype Exotic Objects to comply with the spec.
        https://bugs.webkit.org/show_bug.cgi?id=165227
        <rdar://problem/29442665>

        Reviewed by Saam Barati.

        The new prototype-assignment.js test is currently only enabled for LLInt only
        run in the JSC tests until webkit.org/b/165401 is fixed.

        * TestExpectations:
        - Skip js/prototype-assignment.html for now until webkit.org/b/165401 is fixed.

        * http/tests/security/window-named-valueOf-expected.txt:
        * js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt:
        * js/dom/proxy-is-not-allowed-in-global-prototype-chain.html:
        - Updated error messages.

        * js/prototype-assignment-expected.txt: Added.
        * js/prototype-assignment.html: Added.
        * js/script-tests/prototype-assignment.js: Added.
        (else):
        (reportError):
        (shouldEqual):
        (shouldThrow):
        (stringify):
        (makeTestID):
        (doInternalSetPrototypeOf):
        (ordinarySetPrototypeOf):
        (setImmutablePrototype):
        (windowProxySetPrototypeOf):
        (initSetterExpectation):
        (throwIfNoExceptionPending):
        (objectSetPrototypeOf):
        (setUnderscoreProto):
        (reflectSetPrototypeOf):
        (newObjectProto.toString):
        (this.testObject.targets.push.value):
        (this.testProxy.targets.push.setPrototypeOf):
        (Symbol):
        (test):
        (runTests):
        * js/setPrototypeOf-expected.txt:

2016-12-06  Dave Hyatt  <hyatt@apple.com>

        REGRESSION (Safari 10): Scrolling not working inside height 100% table
        https://bugs.webkit.org/show_bug.cgi?id=164366
        <rdar://problem/29095535>

        Reviewed by Zalan Bujtas.

        * fast/table/overflow-percent-height-regression-expected.html: Added.
        * fast/table/overflow-percent-height-regression.html: Added.

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

        Rebaseline fast/shadow-dom/slotted-pseudo-element-css-text.html after r209396.

        Unreviewed test gardening.

        * fast/shadow-dom/slotted-pseudo-element-css-text-expected.txt:

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

        Mark two tiled-drawing tests as flakey. Layout viewport rect computation has issues in subframes,
        covered by https://bugs.webkit.org/show_bug.cgi?id=165489.

        * platform/mac-wk2/TestExpectations:
        * tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt:

2016-12-06  Dave Hyatt  <hyatt@apple.com>

        REGRESSION (r209396): animations/font-variations/font-variation-settings* tests timing out
        https://bugs.webkit.org/show_bug.cgi?id=165475

        Reviewed by Myles C. Maxfield.

        The new parser only allows strings for @keyframe names when @-webkit-keyframe is used. Patch
        the tests to use identifiers instead.

        * animations/font-variations/font-variation-settings-order.html:
        * animations/font-variations/font-variation-settings-unlike.html:
        * animations/font-variations/font-variation-settings.html:

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

        Improve the behavior of scroll-into-view when the target is inside position:fixed
        https://bugs.webkit.org/show_bug.cgi?id=165354

        Reviewed by Zalan Bujtas.

        * fast/overflow/scroll-anchor-in-position-fixed-expected.txt: Added.
        * fast/overflow/scroll-anchor-in-position-fixed.html: Added.
        * fast/transforms/selection-bounds-in-transformed-view.html:
        * fast/visual-viewport/zoomed-scroll-into-view-fixed-expected.txt: Added.
        * fast/visual-viewport/zoomed-scroll-into-view-fixed.html: Added.
        * fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed-expected.txt: Added.
        * fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html: Added.
        * platform/ios-simulator/TestExpectations:

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

        [Cocoa] REGRESSION(r205396): Intermediate CTRuns with initial advances get double counted when glyph origins are enabled
        https://bugs.webkit.org/show_bug.cgi?id=165084

        Reviewed by Simon Fraser.

        * fast/text/initial-advance-in-intermediate-run-complex-expected.html: Added.
        * fast/text/initial-advance-in-intermediate-run-complex.html: Added.
        * platform/ios-simulator/TestExpectations: Disable the test on iOS because it relies
        on Arial being used to draw Arabic, which we explicitly don't allow.

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

        Enable visual viewports by default on Mac, and iOS Wk2
        https://bugs.webkit.org/show_bug.cgi?id=165452

        Reviewed by Zalan Bujtas.

        Skip, fix or adjust tests for visual viewports.

        * TestExpectations:
        * animations/trigger-container-scroll-boundaries.html:
        * animations/trigger-container-scroll-empty.html:
        * animations/trigger-container-scroll-simple.html:
        * compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html:
        * compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt:
        * compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt:
        * fast/scrolling/ios/remove-scrolling-role-expected.txt:
        * fast/zooming/client-rect-in-fixed-zoomed-expected.txt:
        * fast/zooming/client-rect-in-fixed-zoomed.html:
        * platform/ios-simulator-wk2/compositing/geometry/fixed-in-composited-expected.txt: Removed.
        * platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt:
        * platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
        * platform/ios-simulator-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt:
        * platform/ios-simulator-wk2/compositing/layer-creation/no-compositing-for-sticky-expected.txt:
        * platform/ios-simulator-wk2/fast/overflow/position-fixed-transform-clipping-expected.txt:
        * platform/ios-simulator/compositing/absolute-inside-out-of-view-fixed-expected.txt:
        * platform/ios-simulator/compositing/geometry/fixed-in-composited-expected.txt:
        * scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt:
        * scrollingcoordinator/ios/ui-scrolling-tree-expected.txt:
        * tiled-drawing/fixed-layout-size-fixed-attachment-cover.html:
        * tiled-drawing/fixed-layout-size-fixed-attachment-local.html:
        * tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
        * tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
        * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
        * tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
        * tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
        * tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
        * tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
        * tiled-drawing/scrolling/frames/coordinated-frame-expected.txt:
        * tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt:
        * tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt:
        * tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt:
        * tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt:
        * tiled-drawing/scrolling/frames/frameset-frame-scrollability-expected.txt:
        * tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt:
        * tiled-drawing/scrolling/frames/remove-coordinated-frame-expected.txt:
        * tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
        * tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
        * tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
        * tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
        * tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:

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

        Skip modern-media-controls tests until flakiness can be resolved.
        https://bugs.webkit.org/show_bug.cgi?id=164784

        Unreviewed test gardening.

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

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

        Make fast/selectors/040.html actually test background-color painting for ::selection when run in DRT
        https://bugs.webkit.org/show_bug.cgi?id=79694

        Reviewed by Beth Dakin.

        Currently the test case fast/selectors/040.html doesn't actually test that we
        honor the background-color of ::selection when run in DRT. In particular, it
        doesn't programmatically select any text and hence the DRT results reflect a
        paragraph of non-selected text. Instead, we should programmatically select the
        test paragraph so that DRT can capture the painting of background-color for ::selection.

        * fast/selectors/040-expected.html: Added.
        * fast/selectors/040.html:
        * platform/efl/fast/selectors/040-expected.png: Removed.
        * platform/efl/fast/selectors/040-expected.txt: Removed.
        * platform/gtk/fast/selectors/040-expected.png: Removed.
        * platform/gtk/fast/selectors/040-expected.txt: Removed.
        * platform/ios-simulator/fast/selectors/040-expected.txt: Removed.
        * platform/mac/fast/selectors/040-expected.png: Removed.
        * platform/mac/fast/selectors/040-expected.txt: Removed.
        * platform/win/fast/selectors/040-expected.txt: Removed.

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

        Test insecure-xhr-sync-in-main-frame.html fails with CORS error if run before r203542
        https://bugs.webkit.org/show_bug.cgi?id=165407

        Reviewed by Alexey Proskuryakov.

        Make the test insecure-xhr-sync-in-main-frame.html demonstrate a mixed content failure
        instead of a CORS failure when run before r203542.

        In r203542 the test http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html
        was added to ensure that we block loading insecure data via XHR from an HTTPS page. When
        this test is run prior to r203542 it fails due to a CORS errors as opposed to showing
        the intended JavaScript alert failure message. The CORS error is due to loading a
        cross-origin resource that did not return an appropriate Access-Control-Allow-Origin header
        to allow reading of the response.

        * http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame-expected.txt: Update expected result
        based on the change below.
        * http/tests/security/mixedContent/resources/insecure-xhr-sync-in-main-frame-window.html:
        Load a resource that returns "Access-Control-Allow-Origin: *" so that origin (http, 127.0.0.1, 8000)
        can read the response returned from origin (https, 127.0.0.1, 8443).

2016-12-06  Tim Horton  <timothy_horton@apple.com>

        PDF markup/annotations visible in Mail on macOS but not on iOS
        https://bugs.webkit.org/show_bug.cgi?id=165444
        <rdar://problem/28942896>

        Reviewed by Simon Fraser.

        * platform/ios-simulator/TestExpectations:

2016-12-06  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Avoid more test
        https://bugs.webkit.org/show_bug.cgi?id=165463

        Reviewed by Zalan Bujtas.

        * TestExpectations:

2016-12-06  Sam Weinig  <sam@webkit.org>

        [WebIDL] Add support for converting dictionaries to JS
        https://bugs.webkit.org/show_bug.cgi?id=165367

        Reviewed by Darin Adler and Alex Christensen.

        * crypto/subtle/rsa-oaep-generate-key-expected.txt:
        * crypto/subtle/rsa-oaep-generate-key.html:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt:
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html:
        * crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key-expected.txt:
        * crypto/webkitSubtle/rsa-oaep-generate-non-extractable-key.html:
        * crypto/webkitSubtle/rsa-oaep-key-manipulation-expected.txt:
        * crypto/webkitSubtle/rsa-oaep-key-manipulation.html:
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key-expected.txt:
        * crypto/webkitSubtle/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:
        * crypto/webkitSubtle/rsassa-pkcs1-v1_5-generate-key.html:
        * crypto/workers/subtle/resources/rsa-generate-key.js:
        * crypto/workers/subtle/rsa-generate-key-expected.txt:
        Update tests and expected results to show that CryptoKeyPair is now a vanilla object, not a platform object.

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

        [Modern Media Controls] Controls bar in fullscreen cannot be dragged
        https://bugs.webkit.org/show_bug.cgi?id=165448

        Reviewed by Simon Fraser.

        Add a new test that simulates a dragging interaction of the controls bar in fullscreen.

        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles-expected.txt:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles.html:
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Skip more bad tests
        https://bugs.webkit.org/show_bug.cgi?id=165449

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        The font tests have illegal declarations where the
        ordering of the sub-properties is all wrong. Skip for
        now until we can rewrite them.

        The negative-calc value test is wrong, since tab-size
        takes only positive integers, so a calc that resolves
        to a negative number must be rejected. Avoid the test
        for now until we can rewrite it.

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

        ERROR: post-layout: dirty renderer(s) - Encountered with LayoutTest media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html
        https://bugs.webkit.org/show_bug.cgi?id=165312

        Reviewed by Simon Fraser.

        Restore previously skipped tests.

        * platform/mac/TestExpectations:

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Tweak more layout tests to pass
        https://bugs.webkit.org/show_bug.cgi?id=165447

        Reviewed by Zalan Bujtas.

        * TestExpectations:
        Add a few more tests to avoid.

        * fast/css/parsing-font-variant-ligatures-expected.txt:
        * fast/css/parsing-font-variant-ligatures.html:
        Remove the assumption that multiple occurrences of the
        same value are allowed.

        * fast/filter-image/parse-filter-image-expected.txt:
        * fast/filter-image/parse-filter-image.html:
        Change the test to require url(), since you cannot omit it
        and expect the filter to parse properly.

2016-12-05  Dean Jackson  <dino@apple.com>

        MediaDocuments crash with modern media controls
        https://bugs.webkit.org/show_bug.cgi?id=165446
        <rdar://problem/29524959>

        Reviewed by Antoine Quint.

        * media/modern-media-controls/media-documents/insert-style-should-not-crash-expected.txt: Added.
        * media/modern-media-controls/media-documents/insert-style-should-not-crash.html: Added.

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Avoid more tests
        https://bugs.webkit.org/show_bug.cgi?id=165445

        Reviewed by Tim Horton.

        * TestExpectations:
        Just skip the custom property test, since it's a ref test.

2016-12-05  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Object.shallowEqual([{}], [{}]) should return true
        https://bugs.webkit.org/show_bug.cgi?id=165397

        Reviewed by Brian Burg.

        Added passing and failing inputs for TestHarness.prototype.expectShallowEqual.

        * inspector/unit-tests/test-harness-expect-functions-expected.txt:
        * inspector/unit-tests/test-harness-expect-functions.html:

2016-12-05  Dean Jackson  <dino@apple.com>

        pointer lock needs to be feature detectable
        https://bugs.webkit.org/show_bug.cgi?id=165426
        <rdar://problem/29486715>

        Reviewed by Antoine Quint.

        Checks that the API is hidden when the feature is turned off.

        * pointer-lock/pointerlock-interface-disabled-expected.txt: Added.
        * pointer-lock/pointerlock-interface-disabled.html: Added.
        * pointer-lock/pointerlock-interface-expected.txt: Added.
        * pointer-lock/pointerlock-interface.html: Added.

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Skip a grid test
        https://bugs.webkit.org/show_bug.cgi?id=165427

        Reviewed by Zalan Bujtas.

        * TestExpectations:

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Avoid more invalid tests
        https://bugs.webkit.org/show_bug.cgi?id=165424

        Reviewed by Dean Jackson.

        * TestExpectations:
        Avoid the aspect-ratio test, since it thinks whitespace should not be allowed, even though
        it should be. Avoid a couple of grid tests that assume the grid breadth can't be 0fr, even
        though it can be. Non-negative means < 0, not <= 0 like the old parser assumes.

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix invalid column-span test
        https://bugs.webkit.org/show_bug.cgi?id=165420

        Reviewed by Dean Jackson.

        * fast/multicol/newmulticol/spanner-becomes-regular-block.html:

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Avoid more tests
        https://bugs.webkit.org/show_bug.cgi?id=165417

        Reviewed by Simon Fraser.

        * TestExpectations:

2016-12-05  Antti Koivisto  <antti@apple.com>

        keyframes do not work when defined inside a style in a shadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=164608
        <rdar://problem/29210251>

        Reviewed by Darin Adler.

        * fast/shadow-dom/shadow-host-animation-expected.html: Added.
        * fast/shadow-dom/shadow-host-animation.html: Added.

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

        Skip three media/modern-media-controls tests.
        https://bugs.webkit.org/show_bug.cgi?id=165312

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Unreviewed, rolling out r209299.

        This change appears to have caused LayoutTest failures on
        Sierra WK1.

        Reverted changeset:

        "Improve the behavior of scroll-into-view when the target is
        inside position:fixed"
        https://bugs.webkit.org/show_bug.cgi?id=165354
        http://trac.webkit.org/changeset/209299

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix column tests with illegal syntax
        https://bugs.webkit.org/show_bug.cgi?id=165411

        Reviewed by Zalan Bujtas.

        Patch column-span layout tests that use invalid syntax
        to use the spec-compliant syntax instead (none instead of 1).

        * fast/multicol/newmulticol/remove-spanner4.html:
        * fast/multicol/newmulticol/remove-spanner5.html:
        * fast/multicol/newmulticol/remove-spanner6.html:
        * fast/multicol/span/span-as-immediate-child-property-removal.html:

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Avoid a few more tests
        https://bugs.webkit.org/show_bug.cgi?id=165404

        Reviewed by Zalan Bujtas.

        * TestExpectations:

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix flex property parsing test
        https://bugs.webkit.org/show_bug.cgi?id=165402

        Reviewed by Simon Fraser.

        flex-grow and flex-shrink must occur together. They cannot be before and after
        the flex-basis. Since this test is about valid property declarations, just fix it
        by removing the invalid ones.

        * css3/flexbox/flex-property-parsing-expected.txt:
        * css3/flexbox/flex-property-parsing.html:

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

        Marking media/modern-media-controls/seek-backward-support/seek-backward-support.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165386

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-12-05  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Remove calc column-span test
        https://bugs.webkit.org/show_bug.cgi?id=165393

        Reviewed by Zalan Bujtas.

        "1" is not a legal value for column-span, let alone allowing it to support a calc that
        resolves to 1.

        * fast/css/webkit-column-span-calculated-value-expected.txt: Removed.
        * fast/css/webkit-column-span-calculated-value.html: Removed.

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

        Marking media/modern-media-controls/media-controller/media-controller-resize.html as flaky on macOS.
        https://bugs.webkit.org/show_bug.cgi?id=164571

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-12-04  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Eliminate in-place lowercasing in the parser.
        https://bugs.webkit.org/show_bug.cgi?id=165368

        Reviewed by Darin Adler.

        * fast/media/mq-pointer-expected.txt:

2016-12-04  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Assertion Failures breakpoint should respect global Breakpoints enabled setting
        https://bugs.webkit.org/show_bug.cgi?id=165277
        <rdar://problem/29467098>

        Reviewed by Mark Lam.

        New test for DebuggerManager.prototype.breakPointsEnabled.

        * inspector/debugger/breakpoints-disabled-expected.txt: Added.
        * inspector/debugger/breakpoints-disabled.html: Added.

2016-12-03  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Remove Inspector test of Bison errors
        https://bugs.webkit.org/show_bug.cgi?id=165362

        Reviewed by Simon Fraser.

        The old parser logs invalid property declaration errors whenever a Bison error
        occurs. This catches only a fraction of declaration errors,
        since Bison accepts practically everything and leaves it up to the specific
        parser functions to determine validity of a property.

        The new parser does not have this error reporting. The old reporting will be
        removed from CSSParser when the new parser turns on. This patch removes the
        test of Bison errors.

        * inspector/console/css-source-locations-expected.txt: Removed.
        * inspector/console/css-source-locations.html: Removed.

2016-12-02  Sam Weinig  <sam@webkit.org>

        optional sequence values not handled correctly by binding generator
        https://bugs.webkit.org/show_bug.cgi?id=142562

        Reviewed by Darin Adler.

        * fast/canvas/webgl/resources/typed-array-worker.js:
        * fast/dom/Window/window-postmessage-args-expected.txt:
        * fast/dom/Window/window-postmessage-args.html:
        * fast/events/message-port-deleted-document.html:
        * fast/events/message-port-deleted-frame.html:
        * fast/events/message-port-inactive-document.html:
        * fast/events/message-port-multi-expected.txt:
        * fast/events/message-port.html:
        * fast/workers/worker-context-multi-port-expected.txt:
        * fast/workers/worker-multi-port-expected.txt:
        * webgl/1.0.2/resources/webgl_test_files/conformance/typedarrays/resources/typed-array-worker.js:
        * webgl/1.0.3/resources/webgl_test_files/conformance/typedarrays/resources/typed-array-worker.js:
        Update for new exceptions and stricter enforcement of the postMessage signature. 

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

        Improve the behavior of scroll-into-view when the target is inside position:fixed
        https://bugs.webkit.org/show_bug.cgi?id=165354

        Reviewed by Zalan Bujtas.

        * fast/overflow/scroll-anchor-in-position-fixed-expected.txt: Added.
        * fast/overflow/scroll-anchor-in-position-fixed.html: Added.
        * fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed-expected.txt: Added.
        * fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-11-30  Simon Fraser  <simon.fraser@apple.com>

        localToAbsolute() does incorrect conversion for elements inside position:fixed with zooming
        https://bugs.webkit.org/show_bug.cgi?id=165244

        Reviewed by Zalan Bujtas.
        
        Test getBoundingClientRect() (which internally calls localToAbsolute())
        for an element inside position:fixed after zooming.

        * fast/visual-viewport/zoomed-fixed-expected.txt: Rebaseline
        * fast/zooming/client-rect-in-fixed-zoomed-expected.txt: Added.
        * fast/zooming/client-rect-in-fixed-zoomed.html: Added.
        * platform/ios-simulator/TestExpectations: Skip new test on iOS; test requires window.scrollTo to be synchronous.


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

        [Modern Media Controls] Update the media controls size as the media element is resized
        https://bugs.webkit.org/show_bug.cgi?id=165346

        Reviewed by Dean Jackson.

        Write an accurate test to check for media controls updating their size to match the
        media's layout size and no longer mark that test as flaky.

        * TestExpectations:
        * media/modern-media-controls/media-controller/media-controller-resize-expected.txt:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * platform/ios-simulator/TestExpectations:

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/dom/Window/window-resize-contents.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=165352

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Turn off more tests until new parser is on
        https://bugs.webkit.org/show_bug.cgi?id=165349

        Reviewed by Dean Jackson.

        * TestExpectations:

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline fast/text/crash-complex-text-surrogate.html after r209279.

        Unreviewed test gardening.

        * platform/ios-simulator/fast/text/crash-complex-text-surrogate-expected.txt:
        * platform/mac-yosemite/fast/text/crash-complex-text-surrogate-expected.txt:

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix errors in numerous layout tests
        https://bugs.webkit.org/show_bug.cgi?id=165343

        Reviewed by Zalan Bujtas.

        * fast/backgrounds/repeat/parsing-background-repeat-expected.txt:
        * fast/backgrounds/repeat/script-tests/parsing-background-repeat.js:
        The old parser partially applies shorthands, even if it rejects later on.
        The new parser properly rejects the entire shorthand. Fix the test so that
        the numbers at the end are not unitless so that the entire shorthand parses, allowing
        the components to be obtained.

        * fast/css/unknown-pseudo-element-matching-expected.txt:
        * fast/css/unknown-pseudo-element-matching.html:
        * fast/text/crash-complex-text-surrogate.html:
        The old parser allows the tag name to be omitted following a namespace bar (|). This
        is not legal according to the namespaces spec, and the new parser behaves correctly.
        For the crash test, it's important that all the code still runs, so we know the crash
        doesn't happen, so I patched the test to put in '*' for the tag names to keep everything
        the same.

        For the unknown-pseudo-element test, I just removed the five invalid cases.

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Turn off the large value test, since clamping is not the same.
        https://bugs.webkit.org/show_bug.cgi?id=165341

        Reviewed by Zalan Bujtas.

        * TestExpectations:

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Marking three imported/w3c/web-platform-tests/IndexedDB/idbindex-* tests as flaky on macOS debug.
        https://bugs.webkit.org/show_bug.cgi?id=165222

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [Modern Media Controls] Add rewind and fast-forward support
        https://bugs.webkit.org/show_bug.cgi?id=165294

        Reviewed by Dean Jackson.

        New test for the LayoutNode.parentOfType() method and the seeking buttons.

        * media/modern-media-controls/forward-button/forward-button.html:
        * media/modern-media-controls/layout-node/layout-node-parent-of-type-expected.txt: Added.
        * media/modern-media-controls/layout-node/layout-node-parent-of-type.html: Added.
        * media/modern-media-controls/rewind-button/rewind-button.html:
        * media/modern-media-controls/seek-backward-support/seek-backward-support-expected.txt: Added.
        * media/modern-media-controls/seek-backward-support/seek-backward-support.html: Added.
        * media/modern-media-controls/seek-forward-support/seek-forward-support-expected.txt: Added.
        * media/modern-media-controls/seek-forward-support/seek-forward-support.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/scrubber-support/scrubber-support-click.html as a flaky failure.
        https://bugs.webkit.org/show_bug.cgi?id=165327

        Unreviewed test gardening.

        * TestExpectations:

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/inspector/network/xhr-request-data-encoded-correctly.html as a flaky timeout.
        https://bugs.webkit.org/show_bug.cgi?id=164033

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-12-02  John Wilander  <wilander@apple.com>

        Require preflight for non-standard CORS-safelisted request headers Accept, Accept-Language, and Content-Language
        https://bugs.webkit.org/show_bug.cgi?id=165178
        <rdar://problem/18792250>

        Reviewed by Youenn Fablet.

        Fetch currently only restricts the header Content-Type for simple requests:
        https://fetch.spec.whatwg.org/#cors-safelisted-request-header

        This means simple CORS requests can send unexpected characters in Accept, 
        Accept-Language, and Content-Language header values.

        RFC 7231 implies restrictions on these header values:
        - Accept https://tools.ietf.org/html/rfc7231#section-5.3.2
        - Accept-Language https://tools.ietf.org/html/rfc7231#section-5.3.5
        - Content-Language https://tools.ietf.org/html/rfc7231#section-3.1.3.2

        As per discussions in the W3C WebAppSec group we should try to restrict 
        these header values to help protect servers that do not expect simple CORS 
        requests.

        Non-standard, safelisted header values should trigger a preflight and require
        the headers to be whitelisted in the response's Access-Control-Allow-Headers.
        For Fetch in no-cors mode this change means non-standard header values are not
        allowed to be set.

        * http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt: Added.
        * http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html: Added.
            Tests that:
            - Normal Accept, Accept-Language, and Content-Language headers don't trigger
                a preflight.
            - Abnormal Accept, Accept-Language, and Content-Language headers do trigger 
                a preflight.
            - Abnormal Accept, Accept-Language, and Content-Language headers are 
                accepted if the server whitelists them.
        * http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.php: Added.

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

        ASSERTION FAILED: flowThread->regionInRange(region, startRegion, endRegion) in WebCore::RenderBox::borderBoxRectInRegion
        https://bugs.webkit.org/show_bug.cgi?id=152113
        <rdar://problem/27720221>

        Reviewed by David Hyatt.

        * fast/multicol/assert-with-nested-columns-and-spanner-expected.txt: Added.
        * fast/multicol/assert-with-nested-columns-and-spanner.html: Added.

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Make sure the z-component of transform-origin can be implicit
        https://bugs.webkit.org/show_bug.cgi?id=165326

        Reviewed by Tim Horton.

        * TestExpectations:

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix invalid test font specification
        https://bugs.webkit.org/show_bug.cgi?id=165324

        Reviewed by Sam Weinig.

        * fast/text/trak-optimizeLegibility.html:

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Mark set-selector-text test, since it will need to be rewritten.
        https://bugs.webkit.org/show_bug.cgi?id=165322

        Reviewed by Dean Jackson.

        * TestExpectations:

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

        [Mac][WK1] Implement new HTML interactive form validation user interface
        https://bugs.webkit.org/show_bug.cgi?id=164483

        Reviewed by Simon Fraser.

        Unskip tests for HTML form validation that are now passing on Mac WK1.

        * platform/mac-wk1/TestExpectations:

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165319

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165318

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Require whitespace following condition tokens in media queries
        https://bugs.webkit.org/show_bug.cgi?id=165314

        Reviewed by Dean Jackson.

        This test is invalid according to the media queries spec, which states that whitespace is
        required following "and"/"or" tokens.

        * fast/css/media-rule-no-whitespace-expected.txt: Removed.
        * fast/css/media-rule-no-whitespace.html: Removed.

2016-12-02  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/pip-support/pip-support-click.html as flaky on Sierra.
        https://bugs.webkit.org/show_bug.cgi?id=165311

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix invalid gradients test
        https://bugs.webkit.org/show_bug.cgi?id=165310

        Reviewed by Zalan Bujtas.

        * fast/gradients/generated-gradients.html:
        The content property here is using invalid syntax. It's supposed to be
        space-separated, not comma-separated. The old parser was finding the first
        value and then bailing when it saw the comma, but not rejecting. The new parser
        properly rejected. To keep the test working, just drop all the extra invalid
        gradients and keep the first one.

2016-12-02  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Make sure margin and font set the implicit flag properly
        https://bugs.webkit.org/show_bug.cgi?id=165306

        Reviewed by Zalan Bujtas.

        * TestExpectations:

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

        [Modern Media Controls] Fade controls in when entering and exiting fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=165287

        Reviewed by Dean Jackson.

        Add a new Mac-specific test that checks that we fade controls in when entering fullscreen.

        * media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

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

        [Modern Media Controls] Show and populate the tracks panel
        https://bugs.webkit.org/show_bug.cgi?id=165284

        Reviewed by Dean Jackson.

        Add two new tests to check that we correctly show, populate and interact with the tracks panel.

        * media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel-expected.txt: Added.
        * media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html: Added.
        * media/modern-media-controls/tracks-support/tracks-support-show-and-populate-panel-expected.txt: Added.
        * media/modern-media-controls/tracks-support/tracks-support-show-and-populate-panel.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

2016-12-01  Ryan Haddad  <ryanhaddad@apple.com>

        Removing Release-only flag from flaky test http/tests/cache/disk-cache/disk-cache-request-max-stale.html
        https://bugs.webkit.org/show_bug.cgi?id=159840

        Unreviewed test gardening..

        * platform/ios-simulator-wk2/TestExpectations:

2016-12-01  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/tracks-panel/tracks-panel-hide-click-outside.html as a flaky timeout.
        https://bugs.webkit.org/show_bug.cgi?id=165290

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [iOS] Tapping an element generates a 'click' event that has 0 as timeStamp
        https://bugs.webkit.org/show_bug.cgi?id=165270
        <rdar://problem/29224355>

        Reviewed by Simon Fraser.

        Add layout test coverage.

        * fast/events/ios/click-event-timestamp-expected.txt: Added.
        * fast/events/ios/click-event-timestamp.html: Added.

2016-12-01  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix an invalid shadow DOM test
        https://bugs.webkit.org/show_bug.cgi?id=165273

        Reviewed by Zalan Bujtas.

        * fast/shadow-dom/css-scoping-slot-with-id.html:
        Pseudo-element needs to be rightmost. The rule is illegal, but our old parser
        incorrectly allowed it. Fix the test by just flipping the order so that ::slotted(*)
        occurs last.

2016-12-01  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::unwrapKey to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164747
        <rdar://problem/29258198>

        Reviewed by Brent Fulgham.

        * crypto/subtle/aes-cbc-import-key-unwrap-jwk-rsa-key-private-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-key-unwrap-jwk-rsa-key-private.html: Added.
        * crypto/subtle/aes-cbc-import-key-uwrap-jwk-rsa-key-public-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-key-uwrap-jwk-rsa-key-public.html: Added.
        * crypto/subtle/aes-kw-generate-key-wrap-key-unwrap-key-expected.txt: Added.
        * crypto/subtle/aes-kw-generate-key-wrap-key-unwrap-key.html: Added.
        * crypto/subtle/aes-kw-import-key-unwrap-raw-key-expected.txt: Added.
        * crypto/subtle/aes-kw-import-key-unwrap-raw-key.html: Added.
        * crypto/subtle/rsa-oaep-import-key-unwrap-jwk-oct-key-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-key-unwrap-jwk-oct-key.html: Added.
        * crypto/subtle/unwrapKey-malformed-parameters-expected.txt: Added.
        * crypto/subtle/unwrapKey-malformed-parameters.html: Added.
        * crypto/workers/subtle/aes-cbc-import-key-unwrap-key-expected.txt: Added.
        * crypto/workers/subtle/aes-cbc-import-key-unwrap-key.html: Added.
        * crypto/workers/subtle/aes-kw-import-key-unwrap-key-expected.txt: Added.
        * crypto/workers/subtle/aes-kw-import-key-unwrap-key.html: Added.
        * crypto/workers/subtle/resources/aes-cbc-import-key-unwrap-key.js: Added.
        * crypto/workers/subtle/resources/aes-kw-import-key-unwrap-key.js: Added.
        * crypto/workers/subtle/resources/rsa-oaep-import-key-unwrap-key.js: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-unwrap-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-unwrap-key.html: Added.

2016-12-01  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix font-variant parsing
        https://bugs.webkit.org/show_bug.cgi?id=165266

        Reviewed by Dean Jackson.

        * TestExpectations:

2016-12-01  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Implement IDBObjectStore.getKey().
        https://bugs.webkit.org/show_bug.cgi?id=165256

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/idbobjectstore-getkey-1-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-getkey-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-getkey-1-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-getkey-1.html: Added.
        * storage/indexeddb/modern/resources/idbobjectstore-getkey-1.js: Added.

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

        [Modern Media Controls] Turn off text selection
        https://bugs.webkit.org/show_bug.cgi?id=165261

        Reviewed by Dean Jackson.

        New tests to check that text selection is turned off for StatusLabel, AirplayPlacard and PiPPlacard.

        * media/modern-media-controls/airplay-placard/airplay-placard-text-section-expected.txt: Added.
        * media/modern-media-controls/airplay-placard/airplay-placard-text-section.html: Added.
        * media/modern-media-controls/pip-placard/pip-placard-text-section-expected.txt: Added.
        * media/modern-media-controls/pip-placard/pip-placard-text-section.html: Added.
        * media/modern-media-controls/status-label/status-label-text-selection-expected.txt: Added.
        * media/modern-media-controls/status-label/status-label-text-selection.html: Added.

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

        Parameter to DOMStringList.contains() should be mandatory
        https://bugs.webkit.org/show_bug.cgi?id=165257

        Reviewed by Alex Christensen.

        Extend layout test coverage.

        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/resources/database-basics.js:
        (checkObjectStore):

2016-12-01  Jiewen Tan  <jiewen_tan@apple.com>

        SubtleCrypto::deriveBits always return NOT_SUPPORTED_ERR for now
        https://bugs.webkit.org/show_bug.cgi?id=164745
        <rdar://problem/29258118>

        Reviewed by Darin Adler.

        * crypto/subtle/deriveBits-malformed-parameters-expected.txt: Added.
        * crypto/subtle/deriveBits-malformed-parameters.html: Added.

2016-12-01  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/tracks-panel/tracks-panel-select-track-with-keyboard.html as failing on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165262

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        [Modern Media Controls] Promote the "on" property from AirPlayButton to IconButton
        https://bugs.webkit.org/show_bug.cgi?id=165260

        Reviewed by Dean Jackson.

        New test for the "on" property on IconButton.

        * media/modern-media-controls/airplay-button/airplay-button-on.html:
        * media/modern-media-controls/icon-button/icon-button-on-expected.txt: Added.
        * media/modern-media-controls/icon-button/icon-button-on.html: Added.

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

        [Modern Media Controls] Fix media/modern-media-controls/status-label/status-label.html
        https://bugs.webkit.org/show_bug.cgi?id=165259

        Reviewed by Dean Jackson.

        We broke the test at media/modern-media-controls/status-label/status-label.html with the
        fix for https://bugs.webkit.org/show_bug.cgi?id=165239 since the test would test the
        font-family for a StatusLabel which would only inherited to be -apple-system when hosted
        in a MediaControls instance. We now remove this assertion and added a dedicated test
        for when a StatusLabel is hosted in a MediaControls.

        * media/modern-media-controls/status-label/status-label-expected.txt:
        * media/modern-media-controls/status-label/status-label-font-expected.txt: Added.
        * media/modern-media-controls/status-label/status-label-font.html: Added.
        * media/modern-media-controls/status-label/status-label.html:

2016-12-01  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html as failing on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165258

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-11-30  Sam Weinig  <sam@webkit.org>

        [WebIDL] Remove custom bindings for File and Blob constructors
        https://bugs.webkit.org/show_bug.cgi?id=165218

        Reviewed by Darin Adler.

        * fast/files/blob-constructor-expected.txt:
        * fast/files/file-constructor-expected.txt:
        * fast/files/file-constructor.html:
        * fast/files/script-tests/blob-constructor.js:
        Update for stricter parsing and changed error text. (The error text
        is regressed, but consistent with all generated bindings. I will work
        on making improvements on this soon.)

        * http/tests/fetch/fetch-as-blob.js:
        Update to account for stricter rules about dictionary default values.

2016-12-01  Ryan Haddad  <ryanhaddad@apple.com>

        Marking media/modern-media-controls/audio/audio-controls-buttons.html as a timeout.
        https://bugs.webkit.org/show_bug.cgi?id=165234

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [Modern Media Controls] Provide a UI object to show a list of tracks
        https://bugs.webkit.org/show_bug.cgi?id=165239

        Reviewed by Dean Jackson.

        Adding new tests to cover new TracksPanel functionality.

        * media/modern-media-controls/resources/media-controls-loader.js:
        * media/modern-media-controls/tracks-panel/tracks-panel-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-hide-click-outside-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-hide-click-outside.html: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-hide-esc-key-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-hide-esc-key.html: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-hide-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-hide.html: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-population-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-population.html: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-right-x-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-right-x.html: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-select-track-with-keyboard-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-select-track-with-keyboard.html: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-select-track-with-mouse-expected.txt: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel-select-track-with-mouse.html: Added.
        * media/modern-media-controls/tracks-panel/tracks-panel.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

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

        [JSC] Specifying same module entry point multiple times cause TypeError
        https://bugs.webkit.org/show_bug.cgi?id=164858

        Reviewed by Saam Barati.

        * js/dom/modules/module-load-same-module-from-different-entry-point-in-src-expected.txt: Added.
        * js/dom/modules/module-load-same-module-from-different-entry-point-in-src.html: Added.

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

        [Modern Media Controls] Add support for right-to-left layouts
        https://bugs.webkit.org/show_bug.cgi?id=165229

        Reviewed by Dean Jackson.

        Add a test that toggles the layout direction and checks we correctly flip the volume slider.

        * media/modern-media-controls/media-controller/media-controller-fullscreen-ltr-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

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

        [Modern Media Controls] LayoutNode: only mark properties as dirty if different than current value
        https://bugs.webkit.org/show_bug.cgi?id=165236

        Reviewed by Simon Fraser.

        Update LayoutNode property tests to check that setting a given property to the
        same value doesn't schedule an update.

        * media/modern-media-controls/layout-node/height-expected.txt:
        * media/modern-media-controls/layout-node/height.html:
        * media/modern-media-controls/layout-node/visible-expected.txt:
        * media/modern-media-controls/layout-node/visible.html:
        * media/modern-media-controls/layout-node/width-expected.txt:
        * media/modern-media-controls/layout-node/width.html:
        * media/modern-media-controls/layout-node/x-expected.txt:
        * media/modern-media-controls/layout-node/x.html:
        * media/modern-media-controls/layout-node/y-expected.txt:
        * media/modern-media-controls/layout-node/y.html:

2016-11-30  Jiewen Tan  <jiewen_tan@apple.com>

        SubtleCrypto::deriveKey always return NOT_SUPPORTED_ERR for now
        https://bugs.webkit.org/show_bug.cgi?id=164744
        <rdar://problem/29258083>

        Reviewed by Darin Adler.

        * crypto/subtle/deriveKey-malformed-parameters-expected.txt: Added.
        * crypto/subtle/deriveKey-malformed-parameters.html: Added.

2016-11-26  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::digest to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164742
        <rdar://problem/29258037>

        Reviewed by Darin Adler.

        * crypto/subtle/digest-malformed-parameters-expected.txt: Added.
        * crypto/subtle/digest-malformed-parameters.html: Added.
        * crypto/subtle/sha1-digest-expected.txt: Added.
        * crypto/subtle/sha1-digest.html: Added.
        * crypto/subtle/sha224-digest-expected.txt: Added.
        * crypto/subtle/sha224-digest.html: Added.
        * crypto/subtle/sha256-digest-expected.txt: Added.
        * crypto/subtle/sha256-digest.html: Added.
        * crypto/subtle/sha384-digest-expected.txt: Added.
        * crypto/subtle/sha384-digest.html: Added.
        * crypto/subtle/sha512-digest-expected.txt: Added.
        * crypto/subtle/sha512-digest.html: Added.
        * crypto/workers/subtle/resources/sha1-digest.js: Added.
        * crypto/workers/subtle/resources/sha224-digest.js: Added.
        * crypto/workers/subtle/resources/sha256-digest.js: Added.
        * crypto/workers/subtle/resources/sha384-digest.js: Added.
        * crypto/workers/subtle/resources/sha512-digest.js: Added.
        * crypto/workers/subtle/sha1-digest-expected.txt: Added.
        * crypto/workers/subtle/sha1-digest.html: Added.
        * crypto/workers/subtle/sha224-digest-expected.txt: Added.
        * crypto/workers/subtle/sha224-digest.html: Added.
        * crypto/workers/subtle/sha256-digest-expected.txt: Added.
        * crypto/workers/subtle/sha256-digest.html: Added.
        * crypto/workers/subtle/sha384-digest-expected.txt: Added.
        * crypto/workers/subtle/sha384-digest.html: Added.
        * crypto/workers/subtle/sha512-digest-expected.txt: Added.
        * crypto/workers/subtle/sha512-digest.html: Added.

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

        [Modern Media Controls] UI Library: <audio> controls
        https://bugs.webkit.org/show_bug.cgi?id=164619
        <rdar://problem/29207215>

        Reviewed by Dean Jackson.

        Add tests to check the default size of an <audio> element and which of
        the media controls buttons are enabled in that case.

        * media/modern-media-controls/audio/audio-controls-buttons-expected.txt: Added.
        * media/modern-media-controls/audio/audio-controls-buttons.html: Added.
        * media/modern-media-controls/audio/audio-controls-metrics-expected.txt: Added.
        * media/modern-media-controls/audio/audio-controls-metrics.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

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

        ASSERTION FAILED: layoutState->m_renderer == this in WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage
        https://bugs.webkit.org/show_bug.cgi?id=155364
        <rdar://problem/27720461>

        Reviewed by David Hyatt.

        * fast/replaced/replaced-element-with-percentage-width-inside-flow-asserts-expected.txt: Added.
        * fast/replaced/replaced-element-with-percentage-width-inside-flow-asserts.html: Added.

2016-11-30  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::wrapKey to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164746
        <rdar://problem/29258160>

        Reviewed by Brent Fulgham.

        * crypto/subtle/aes-cbc-import-key-wrap-jwk-rsa-key-private-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-key-wrap-jwk-rsa-key-private.html: Added.
        * crypto/subtle/aes-cbc-import-key-wrap-jwk-rsa-key-public-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-key-wrap-jwk-rsa-key-public.html: Added.
        * crypto/subtle/aes-kw-import-key-wrap-raw-key-expected.txt: Added.
        * crypto/subtle/aes-kw-import-key-wrap-raw-key.html: Added.
        * crypto/subtle/aes-kw-wrap-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/aes-kw-wrap-key-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-import-key-wrap-jwk-oct-key-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-key-wrap-jwk-oct-key.html: Added.
        * crypto/subtle/wrapKey-malformed-parameters-expected.txt: Added.
        * crypto/subtle/wrapKey-malformed-parameters.html: Added.
        * crypto/workers/subtle/aes-cbc-import-key-wrap-key-expected.txt: Added.
        * crypto/workers/subtle/aes-cbc-import-key-wrap-key.html: Added.
        * crypto/workers/subtle/aes-kw-import-key-wrap-key-expected.txt: Added.
        * crypto/workers/subtle/aes-kw-import-key-wrap-key.html: Added.
        * crypto/workers/subtle/resources/aes-cbc-import-key-wrap-key.js: Added.
        * crypto/workers/subtle/resources/aes-kw-import-key-wrap-key.js: Added.
        * crypto/workers/subtle/resources/rsa-oaep-import-key-wrap-key.js: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-wrap-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-wrap-key.html: Added.

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

        REGRESSION: inspector/sampling-profiler/* LayoutTests are flaky timeouts
        https://bugs.webkit.org/show_bug.cgi?id=164388
        <rdar://problem/29101555>

        Reviewed by Saam Barati.

        * platform/mac/TestExpectations:
        Unskip now that tests are no longer flakey.

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

        Skipping crashing test js/dom/modules/module-will-fire-beforeload.html.
        https://bugs.webkit.org/show_bug.cgi?id=164883

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-11-30  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::verify to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164741
        <rdar://problem/29257935>

        Reviewed by Brent Fulgham.

        Besides adding tests for SubtleCrypto::verify, it also enhances
        *generate-key-encrypt-decrypt tests.

        * crypto/subtle/aes-cbc-generate-key-encrypt-decrypt-expected.txt:
        * crypto/subtle/aes-cbc-generate-key-encrypt-decrypt.html:
        * crypto/subtle/hmac-generate-key-sign-verify-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-sign-verify.html: Added.
        * crypto/subtle/hmac-import-key-verify-sha1-expected.txt: Added.
        * crypto/subtle/hmac-import-key-verify-sha1.html: Added.
        * crypto/subtle/hmac-import-key-verify-sha224-expected.txt: Added.
        * crypto/subtle/hmac-import-key-verify-sha224.html: Added.
        * crypto/subtle/hmac-import-key-verify-sha256-expected.txt: Added.
        * crypto/subtle/hmac-import-key-verify-sha256.html: Added.
        * crypto/subtle/hmac-import-key-verify-sha384-expected.txt: Added.
        * crypto/subtle/hmac-import-key-verify-sha384.html: Added.
        * crypto/subtle/hmac-import-key-verify-sha512-expected.txt: Added.
        * crypto/subtle/hmac-import-key-verify-sha512.html: Added.
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt-expected.txt:
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt-label-expected.txt:
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt-label.html:
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt.html:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-encrypt-decrypt-expected.txt:
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-encrypt-decrypt.html:
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key-sign-verify-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key-sign-verify.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha1-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha1.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha224-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha224.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha256-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha256.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha384-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha384.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha512-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-verify-sha512.html: Added.
        * crypto/subtle/verify-malformed-parameters-expected.txt: Added.
        * crypto/subtle/verify-malformed-parameters.html: Added.
        * crypto/workers/subtle/hmac-import-key-verify-expected.txt: Added.
        * crypto/workers/subtle/hmac-import-key-verify.html: Added.
        * crypto/workers/subtle/resources/hmac-import-key-verify.js: Added.
        * crypto/workers/subtle/resources/rsassa-pkcs1-v1_5-import-key-verify.js: Added.
        * crypto/workers/subtle/rsassa-pkcs1-v1_5-import-key-verify-expected.txt: Added.
        * crypto/workers/subtle/rsassa-pkcs1-v1_5-import-key-verify.html: Added.

2016-11-30  Mark Lam  <mark.lam@apple.com>

        Proxy is not allowed in the global prototype chain.
        https://bugs.webkit.org/show_bug.cgi?id=165205

        Reviewed by Geoffrey Garen.

        * js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt: Added.
        * js/dom/proxy-is-not-allowed-in-global-prototype-chain.html: Added.

2016-11-30  Brent Fulgham  <bfulgham@apple.com>

        Use 'childOfType' template when retrieving Shadow DOM elements
        https://bugs.webkit.org/show_bug.cgi?id=165145
        <rdar://problem/29331830>

        Reviewed by Antti Koivisto.

        * fast/shadow-dom/color-input-element-shadow-manipulation-expected.txt: Added.
        * fast/shadow-dom/color-input-element-shadow-manipulation.html: Added.
        * fast/shadow-dom/file-input-element-shadow-manipulation-expected.txt: Added.
        * fast/shadow-dom/file-input-element-shadow-manipulation.html: Added.
        * fast/shadow-dom/keygen-shadow-manipulation-expected.txt: Added.
        * fast/shadow-dom/keygen-shadow-manipulation.html: Added.
        * fast/shadow-dom/media-shadow-manipulation-expected.txt: Added.
        * fast/shadow-dom/media-shadow-manipulation.html: Added.
        * fast/shadow-dom/range-input-element-shadow-manipulation-expected.txt: Added.
        * fast/shadow-dom/range-input-element-shadow-manipulation.html: Added.
        * fast/shadow-dom/textarea-shadow-manipulation-expected.txt: Added.
        * fast/shadow-dom/textarea-shadow-manipulation.html: Added.

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

        Web Inspector: Clicking on link in Web Inspector can cause UIProcess to crash
        https://bugs.webkit.org/show_bug.cgi?id=165157
        <rdar://problem/27896562>

        Reviewed by Brian Burg.

        * inspector/unit-tests/url-utilities-expected.txt:
        * inspector/unit-tests/url-utilities.html:
        Add some tests for expected valid and invalid parseURL cases.
        Note some cases that we don't handle properly and would benefit
        by switching to URL constructor which is a much larger change.

2016-11-30  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix a typo in a layout test for transforms
        https://bugs.webkit.org/show_bug.cgi?id=165203

        Reviewed by Dean Jackson.

        * transitions/transition-end-event-transform.html:

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

        Some animated image do not animate after reseting their animations
        https://bugs.webkit.org/show_bug.cgi?id=165131

        Reviewed by Simon Fraser.
        
        Ensure the image animation is played in order after the animation is reset.

        * fast/images/reset-image-animation-expected.txt: Added.
        * fast/images/reset-image-animation.html: Added.

2016-11-30  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Mark a bunch of tests as able to fail
        https://bugs.webkit.org/show_bug.cgi?id=165199

        Reviewed by Zalan Bujtas.

        * TestExpectations:

2016-11-30  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, mark tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html as flaky

        It seems there are additional causes of test failures when scrolling in iframes. webkit.org/b/165196 will be
        used to track this.

        * platform/mac-wk2/TestExpectations:

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

        [iOS] Add test for HTML form validation popover dismissal on tap
        https://bugs.webkit.org/show_bug.cgi?id=165185

        Reviewed by Simon Fraser.

        Add test for HTML form validation popover dismissal on tap outside the
        popover.

        * fast/forms/ios/validation-bubble-dismiss-on-tap-expected.txt: Added.
        * fast/forms/ios/validation-bubble-dismiss-on-tap.html: Added.

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

        AX: ARIA tree & treeitem roles & aria-expanded state not spoken to VoiceOver iOS 10
        https://bugs.webkit.org/show_bug.cgi?id=164936
        <rdar://problem/29334274>

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/treeitem-expanded-expected.txt: Added.
        * accessibility/ios-simulator/treeitem-expanded.html: Added.

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

        Unreviewed, rolling out r209096, r209104, and r209114.

        Caused over 200 layout test failures on the bots

        Reverted changesets:

        "IndexedDB 2.0: Cache and reuse SQLiteStatements in the SQLite
        backend."
        https://bugs.webkit.org/show_bug.cgi?id=164974
        http://trac.webkit.org/changeset/209096

        "Followup to:"
        https://bugs.webkit.org/show_bug.cgi?id=164974
        http://trac.webkit.org/changeset/209104

        "REGRESSION (r209104): storage/indexeddb/modern/gc-closes-
        database(-private).html timeout."
        https://bugs.webkit.org/show_bug.cgi?id=165186
        http://trac.webkit.org/changeset/209114

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

        [Modern Media Controls] Localization
        https://bugs.webkit.org/show_bug.cgi?id=165176

        Reviewed by Dean Jackson.

        Using the modern media controls module loader to ensure we pick up main.js,
        and also because it's the right thing to do.

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

2016-11-29  Brady Eidson  <beidson@apple.com>

        REGRESSION (r209104): storage/indexeddb/modern/gc-closes-database(-private).html timeout.
        https://bugs.webkit.org/show_bug.cgi?id=165186

        Unreviewed gardening.

        * TestExpectations: Skip these tests for now until I can resolve things properly.

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

        [Modern Media Controls] Show an invalid placard when we fail to load a media file
        https://bugs.webkit.org/show_bug.cgi?id=165180

        Reviewed by Dean Jackson.

        We add tests for the new InvalidPlacard class.

        * media/modern-media-controls/invalid-placard/invalid-placard-expected.txt: Added.
        * media/modern-media-controls/invalid-placard/invalid-placard.html: Added.
        * media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
        * media/modern-media-controls/media-controls/media-controls-constructor.html:
        * media/modern-media-controls/media-controls/media-controls-placard-expected.txt:
        * media/modern-media-controls/media-controls/media-controls-placard.html:
        * media/modern-media-controls/placard-support/placard-support-error-expected.txt: Added.
        * media/modern-media-controls/placard-support/placard-support-error.html: Added.

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

        [Modern Media Controls] Only show controls when the controls attribute is set
        https://bugs.webkit.org/show_bug.cgi?id=165175

        We add new tests to check that the media's "control" attribute is respected. We also update a
        series of tests to be more robust and turn the media "controls" attribute on so that the controls
        bar is displayed as required by the tests.

        Reviewed by Dean Jackson.

        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-off-audio-expected.txt: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-off-audio.html: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-off-expected.txt: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-off.html: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-audio-expected.txt: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-audio.html: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-expected.txt: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on.html: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle-expected.txt: Added.
        * media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle.html: Added.
        * media/modern-media-controls/fullscreen-support/fullscreen-support-click.html:
        * media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
        * media/modern-media-controls/media-controls/media-controls-constructor.html:
        * media/modern-media-controls/pip-support/pip-support-click.html:
        * media/modern-media-controls/placard-support/placard-support-airplay.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt:
        * media/modern-media-controls/scrubber-support/scrubber-support-click.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt:
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
        * media/modern-media-controls/volume-support/volume-support-click.html:
        * media/modern-media-controls/volume-support/volume-support-drag.html:

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

        Marking media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html as flaky on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=165169

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

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

        [Modern Media Controls] Status text stuck saying "Loading" after media starts playing
        https://bugs.webkit.org/show_bug.cgi?id=165162

        Reviewed by Dean Jackson.

        Adding a new test ensuring the status text is the empty string once the media starts playing.

        * media/modern-media-controls/status-support/status-support-playing-expected.txt: Added.
        * media/modern-media-controls/status-support/status-support-playing.html: Added.

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

        Marking js/dom/modules/module-will-fire-beforeload.html as flaky on mac-wk2 debug.
        https://bugs.webkit.org/show_bug.cgi?id=164883

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Marking http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce.html as flaky on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=165165

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

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

        Marking http/tests/storage/callbacks-are-called-in-correct-context.html as a timeout on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=164961

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

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

        Marking http/tests/security/module-correct-mime-types.html as slow on ios-simulator-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=164960

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2016-11-22  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::sign to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164740
        <rdar://problem/29257864>

        Reviewed by Brent Fulgham.

        * crypto/subtle/hmac-import-key-sign-sha1-expected.txt: Added.
        * crypto/subtle/hmac-import-key-sign-sha1.html: Added.
        * crypto/subtle/hmac-import-key-sign-sha224-expected.txt: Added.
        * crypto/subtle/hmac-import-key-sign-sha224.html: Added.
        * crypto/subtle/hmac-import-key-sign-sha256-expected.txt: Added.
        * crypto/subtle/hmac-import-key-sign-sha256.html: Added.
        * crypto/subtle/hmac-import-key-sign-sha384-expected.txt: Added.
        * crypto/subtle/hmac-import-key-sign-sha384.html: Added.
        * crypto/subtle/hmac-import-key-sign-sha512-expected.txt: Added.
        * crypto/subtle/hmac-import-key-sign-sha512.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha1-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha1.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha224-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha224.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha256-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha256.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha384-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha384.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha512-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-key-sign-sha512.html: Added.
        * crypto/subtle/sign-malformed-parameters-expected.txt: Added.
        * crypto/subtle/sign-malformed-parameters.html: Added.
        * crypto/workers/subtle/hmac-import-key-sign-expected.txt: Added.
        * crypto/workers/subtle/hmac-import-key-sign.html: Added.
        * crypto/workers/subtle/resources/hmac-import-key-sign.js: Added.
        * crypto/workers/subtle/resources/rsassa-pkcs1-v1_5-import-key-sign.js: Added.
        * crypto/workers/subtle/rsassa-pkcs1-v1_5-import-key-sign-expected.txt: Added.
        * crypto/workers/subtle/rsassa-pkcs1-v1_5-import-key-sign.html: Added.

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

        Can't download move.simple.com direct deposit transition PDF: Non user-triggered activations of anchors that have a download attribute are ignored
        https://bugs.webkit.org/show_bug.cgi?id=165148
        <rdar://problem/29421771>

        Reviewed by Daniel Bates.

        Update existing test to reflect behavior change.

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

2016-11-29  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Don't request user permission for a device if it has already been granted in the current browsing context
        https://bugs.webkit.org/show_bug.cgi?id=164760

        Reviewed by Youenn Fablet.

        * fast/mediastream/MediaDevices-getUserMedia-expected.txt:
        * fast/mediastream/MediaDevices-getUserMedia.html:

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

        Rebaseline fast/forms/validation-message-appearance.html for mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=165149

        Unreviewed test gardening.

        * platform/mac-wk1/fast/forms/validation-message-appearance-expected.txt: Added.

2016-11-29  Andy Estes  <aestes@apple.com>

        window.name leaks information across domains
        https://bugs.webkit.org/show_bug.cgi?id=158216
        <rdar://problem/14548481>

        Reviewed by Brent Fulgham.

        * fast/events/pageshow-pagehide-on-back-uncached-expected.txt: Updated to account for the
        main frame no longer having a name.
        * fast/events/pageshow-pagehide-on-back-uncached.html: Updated to use the History API
        instead of relying on window.name being retained after a cross-origin navigation.
        * fast/events/script-tests/onunload-back-to-page-cache.js:
        (onpageshow): Ditto.
        * http/tests/security/resources/log-window-name.html: Added.
        * http/tests/security/resources/window-name-test.html: Added.
        * http/tests/security/window-name-after-cross-origin-aux-frame-navigation-expected.txt: Added.
        * http/tests/security/window-name-after-cross-origin-aux-frame-navigation.html: Added.
        * http/tests/security/window-name-after-cross-origin-main-frame-navigation-expected.txt: Added.
        * http/tests/security/window-name-after-cross-origin-main-frame-navigation.html: Added.
        * http/tests/security/window-name-after-cross-origin-sub-frame-navigation-expected.txt: Added.
        * http/tests/security/window-name-after-cross-origin-sub-frame-navigation.html: Added.
        * http/tests/security/window-name-after-same-origin-aux-frame-navigation-expected.txt: Added.
        * http/tests/security/window-name-after-same-origin-aux-frame-navigation.html: Added.
        * http/tests/security/window-name-after-same-origin-main-frame-navigation-expected.txt: Added.
        * http/tests/security/window-name-after-same-origin-main-frame-navigation.html: Added.
        * http/tests/security/window-name-after-same-origin-sub-frame-navigation-expected.txt: Added.
        * http/tests/security/window-name-after-same-origin-sub-frame-navigation.html: Added.

2016-11-29  Wenson Hsieh  <wenson_hsieh@apple.com>

        Scroll snapping on Mac should use AppKit animations
        https://bugs.webkit.org/show_bug.cgi?id=147261
        <rdar://problem/29395293>

        Reviewed by Brent Fulgham.

        Fixes 8 previously failing scroll snapping tests in the tiled-drawing/scrolling/scroll-snap directory and
        removes them from TestExpectations. Also adds a new layout test. See WebCore/ChangeLog for more details.

        * platform/mac-wk2/TestExpectations:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow-expected.txt:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal-expected.txt: Added.
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html: Added.
        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:

2016-11-29  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Queue up completed requests in the client, handle them one by one.
        https://bugs.webkit.org/show_bug.cgi?id=165000

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/resources/transaction-scheduler-6.js: This test had a bug which was masked by previously
          synchronous behavior. Fix that bug!

2016-11-29  Zalan Bujtas  <zalan@apple.com>

        Safari (WebKit) doesn't wrap element within flex when width comes below min-width
        https://bugs.webkit.org/show_bug.cgi?id=136041
        <rdar://problem/25569370>

        Reviewed by Darin Adler.

        * fast/flexbox/flex-wrap-when-min-widht-is-set-1-expected.html: Added.
        * fast/flexbox/flex-wrap-when-min-widht-is-set-1.html: Added.
        * fast/flexbox/flex-wrap-when-min-widht-is-set-2-expected.html: Added.
        * fast/flexbox/flex-wrap-when-min-widht-is-set-2.html: Added.

2016-11-28  Antti Koivisto  <antti@apple.com>

        Slotted nodes ignore transition
        https://bugs.webkit.org/show_bug.cgi?id=160866
        <rdar://problem/29231901>

        Reviewed by Sam Weinig.

        * fast/shadow-dom/shadow-host-transition-expected.html: Added.
        * fast/shadow-dom/shadow-host-transition.html: Added.

2016-11-28  Matt Baker  <mattbaker@apple.com>

        Web Inspector: Debugger should have an option for showing asynchronous call stacks
        https://bugs.webkit.org/show_bug.cgi?id=163230
        <rdar://problem/28698683>

        Reviewed by Joseph Pecoraro.

        Add basic tests for async stack trace data included in Debugger.paused, and
        check that requestAnimationFrame, setTimeout, and setInterval are supported.

        * inspector/debugger/async-stack-trace-expected.txt: Added.
        * inspector/debugger/async-stack-trace.html: Added.

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

        Unreviewed, rolling out r209008.

        This change appears to have caused two fast/mediastrem
        LayoutTests to fail.

        Reverted changeset:

        "[MediaStream] Don't request user permission for a device if
        it has already been granted in the current browsing context"
        https://bugs.webkit.org/show_bug.cgi?id=164760
        http://trac.webkit.org/changeset/209008

2016-11-28  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Don't request user permission for a device if it has already been granted in the current browsing context
        https://bugs.webkit.org/show_bug.cgi?id=164760

        Reviewed by Youenn Fablet.

        * fast/mediastream/MediaDevices-getUserMedia-expected.txt:
        * fast/mediastream/MediaDevices-getUserMedia.html:

2016-11-28  Antti Koivisto  <antti@apple.com>

        Remove FIRST_LINE_INHERITED fake pseudo style
        https://bugs.webkit.org/show_bug.cgi?id=165071

        Reviewed by Andreas Kling.

        Expand the test case a bit.

        * fast/css/pseudo-cache-stale-expected.html:
        * fast/css/pseudo-cache-stale.html:

2016-11-28  Per Arne Vollan  <pvollan@apple.com>

        [Win] WebCrypto tests are failing.
        https://bugs.webkit.org/show_bug.cgi?id=165090

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Rebaseline inspector/dom/getAccessibilityPropertiesForNode.html for macOS.
        https://bugs.webkit.org/show_bug.cgi?id=165087

        Unreviewed test gardening.

        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:

2016-11-26  Sam Weinig  <sam@webkit.org>

        Convert IntersectionObserver over to using RuntimeEnabledFeatures so it can be properly excluded from script
        https://bugs.webkit.org/show_bug.cgi?id=164965

        Reviewed by Simon Fraser.

        * intersection-observer/intersection-observer-entry-interface.html:
        * intersection-observer/intersection-observer-interface.html:
        * resources/testharnessreport.js:
        Switch from enabling IntersectionObserver via internals.settings to using 
        comment header switches.

2016-11-26  Simon Fraser  <simon.fraser@apple.com>

        Composited negative z-index elements are hidden behind the body sometimes
        https://bugs.webkit.org/show_bug.cgi?id=165080
        rdar://problem/22260229

        Reviewed by Zalan Bujtas.

        * compositing/backgrounds/negative-z-index-behind-body-expected.html: Added.
        * compositing/backgrounds/negative-z-index-behind-body-non-propagated-expected.html: Added.
        * compositing/backgrounds/negative-z-index-behind-body-non-propagated.html: Added.
        * compositing/backgrounds/negative-z-index-behind-body.html: Added.

2016-11-26  Simon Fraser  <simon.fraser@apple.com>

        Convert testharnessreport.js to LF linebreaks, from CRLF, which broke patches.

        * resources/testharnessreport.js:
        (convertResult):
        (self.testRunner.add_completion_callback.):
        (self.testRunner.add_completion_callback):

2016-11-25  Myles C. Maxfield  <mmaxfield@apple.com>

        [CSS Font Loading] FontFace.load() promises don't always fire
        https://bugs.webkit.org/show_bug.cgi?id=165037

        Reviewed by Simon Fraser.

        * fast/text/fontfaceset-rebuild-during-loading-2-expected.txt: Added.
        * fast/text/fontfaceset-rebuild-during-loading-2.html: Added.

2016-11-22  Antti Koivisto  <antti@apple.com>

        CrashTracer: [USER] com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::ExtensionStyleSheets::pageUserSheet + 14
        https://bugs.webkit.org/show_bug.cgi?id=165030

        Reviewed by Darin Adler.

        * fast/shadow-dom/shadow-host-move-to-different-document-expected.html: Added.
        * fast/shadow-dom/shadow-host-move-to-different-document.html: Added.

2016-11-20  Megan Gardner  <megan_gardner@apple.com>

        Add iOS text selection tests - long press clear and multi line selection tests
        https://bugs.webkit.org/show_bug.cgi?id=164899

        Reviewed by Darin Adler.

        Test for clearing a selection after a long press.
        Test for checking multi-line select, both increasing and decreasing, using the left selection.
        Test for checking multi-line select, both increasing and decreasing, using the right selection.

        * fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html: Added.
        * fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-expected.txt: Added.
        * fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html: Added.
        * fast/events/touch/ios/long-press-to-select-and-tap-to-clear-expected.txt: Added.
        * fast/events/touch/ios/long-press-to-select-and-tap-to-clear.html: Added.

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

        Update HTML form validation messages
        https://bugs.webkit.org/show_bug.cgi?id=164957
        <rdar://problem/29338669>

        Reviewed by Darin Adler.

        Rebaseline existing tests.

        * fast/forms/number/number-validation-message-expected.txt:
        * fast/forms/number/number-validation-message.html:
        * fast/forms/validation-custom-message-expected.txt:
        * fast/forms/validation-custom-message.html:
        * fast/forms/validation-messages-expected.txt:
        * fast/forms/validation-messages.html:
        * fast/forms/validationMessage-expected.txt:

2016-11-19  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [ATK] Implement selection interface and states for elements supporting aria-selected and for menu roles
        https://bugs.webkit.org/show_bug.cgi?id=164865

        Reviewed by Chris Fleizach.

        New tests for the added support. In addition, update the expectations for
        aria-combobox.html to reflect the corrected ATK mapping of ListBoxRole for
        combobox descendants.

        * accessibility/aria-combobox-expected.txt: Updated.
        * accessibility/aria-combobox-hierarchy.html: Added.
        * accessibility/aria-selected-menu-items.html: Added.
        * accessibility/aria-selected.html: Added.
        * platform/gtk/accessibility/aria-combobox-hierarchy-expected.txt: Added.
        * platform/gtk/accessibility/aria-selected-expected.txt: Added.
        * platform/gtk/accessibility/aria-selected-menu-items-expected.txt: Added.
        * platform/mac/accessibility/aria-combobox-hierarchy-expected.txt: Added.
        * platform/mac/accessibility/aria-selected-expected.txt: Added.
        * platform/mac/accessibility/aria-selected-menu-items-expected.txt: Added.

2016-11-18  Simon Fraser  <simon.fraser@apple.com>

        Make it possible to test non-stable-state scrolling on iOS
        https://bugs.webkit.org/show_bug.cgi?id=164905

        Reviewed by Dan Bernstein.

        * scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt: Added.
        * scrollingcoordinator/ios/non-stable-viewport-scroll.html: Added.

2016-11-19  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [ATK] Expose aria-busy via ATK_STATE_BUSY
        https://bugs.webkit.org/show_bug.cgi?id=164909

        Reviewed by Chris Fleizach.

        * accessibility/aria-busy-expected.txt: Added.
        * accessibility/aria-busy.html: Added.

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

        REGRESSION(r200964): Tab focus navigation is broken on results.en.voyages-sncf.com
        https://bugs.webkit.org/show_bug.cgi?id=164888

        Reviewed by Antti Koivisto.

        Add regression tests for moving the focus across a shadow tree and a SVG use element
        and the one that moves out of a slot element.

        * fast/shadow-dom/focus-navigation-out-of-slot-expected.txt: Added.
        * fast/shadow-dom/focus-navigation-out-of-slot.html: Added.
        * fast/shadow-dom/focus-navigation-passes-shadow-host-expected.txt: Added.
        * fast/shadow-dom/focus-navigation-passes-shadow-host.html: Added.
        * fast/shadow-dom/focus-navigation-passes-svg-use-element-expected.txt: Added.
        * fast/shadow-dom/focus-navigation-passes-svg-use-element.html: Added.
        * platform/ios-simulator/TestExpectations: Skip the newly added tests on iOS.

2016-11-18  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Eliminate a source of flakiness in layout tests by forcing WebPage into "responsive" mode for all tests, with an internals override
        https://bugs.webkit.org/show_bug.cgi?id=164980

        Reviewed by Chris Dumez.

        * fast/scrolling/ios/scroll-events-default-expected.txt: Added.
        * fast/scrolling/ios/scroll-events-default.html: Added.
        * fast/scrolling/ios/scroll-events-responsive-expected.txt: Added.
        * fast/scrolling/ios/scroll-events-responsive.html: Added.
        * fast/scrolling/ios/scroll-events-unresponsive-expected.txt: Added.
        * fast/scrolling/ios/scroll-events-unresponsive.html: Added.

2016-11-18  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::decrypt to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164739
        <rdar://problem/29257848>

        Reviewed by Brent Fulgham.

        * crypto/subtle/aes-cbc-decrypt-malformed-parameters-expected.txt: Added.
        * crypto/subtle/aes-cbc-decrypt-malformed-parameters.html: Added.
        * crypto/subtle/aes-cbc-generate-key-encrypt-decrypt-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-key-encrypt-decrypt.html: Added.
        * crypto/subtle/aes-cbc-import-key-decrypt-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-key-decrypt.html: Added.
        * crypto/subtle/decrypt-malformed-parameters-expected.txt: Added.
        * crypto/subtle/decrypt-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-decrypt-malformed-parameters-expected.txt: Added.
        * crypto/subtle/rsa-oaep-decrypt-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt-label-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt-label.html: Added.
        * crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt.html: Added.
        * crypto/subtle/rsa-oaep-import-key-decrypt-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-key-decrypt-label-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-key-decrypt-label.html: Added.
        * crypto/subtle/rsa-oaep-import-key-decrypt.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-encrypt-decrypt-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-encrypt-decrypt.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-key-decrypt-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-key-decrypt.html: Added.
        * crypto/workers/subtle/aes-cbc-import-key-decrypt-expected.txt: Added.
        * crypto/workers/subtle/aes-cbc-import-key-decrypt.html: Added.
        * crypto/workers/subtle/resources/aes-cbc-import-key-decrypt.js: Added.
        * crypto/workers/subtle/resources/rsa-oaep-import-key-decrypt.js: Added.
        * crypto/workers/subtle/resources/rsaes-pkcs1-v1_5-import-key-decrypt.js: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-decrypt-expected.txt: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-decrypt.html: Added.
        * crypto/workers/subtle/rsaes-pkcs1-v1_5-import-key-decrypt-expected.txt: Added.
        * crypto/workers/subtle/rsaes-pkcs1-v1_5-import-key-decrypt.html: Added.

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

        Unreviewed, rolling out r208837.

        The bots did not show a progression

        Reverted changeset:

        "REGRESSION(r208082): 1% Speedometer regression on iOS"
        https://bugs.webkit.org/show_bug.cgi?id=164852
        http://trac.webkit.org/changeset/208837

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

        AX: "(inverted-colors)" media query only matches on page reload; should match on change
        https://bugs.webkit.org/show_bug.cgi?id=163564
        <rdar://problem/28807350>

        Reviewed by Simon Fraser.

        * fast/media/mq-inverted-colors-live-update-in-subframes-expected.html: Added.
        * fast/media/mq-inverted-colors-live-update-in-subframes.html: Added.
        * fast/media/mq-inverted-colors-live-update-expected.html: Added.
        * fast/media/mq-inverted-colors-live-update.html: Added.
        * fast/media/mq-monochrome-live-update-expected.html: Added.
        * fast/media/mq-monochrome-live-update.html: Added.
        * fast/media/mq-prefers-reduced-motion-live-update-expected.html: Added.
        * fast/media/mq-prefers-reduced-motion-live-update.html: Added.

2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGL2] Implement texStorage2D()
        https://bugs.webkit.org/show_bug.cgi?id=164493

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/webgl2-texStorage-expected.txt: Added.
        * fast/canvas/webgl/webgl2-texStorage.html: Added.

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

        Support IDN2008 with UTS #46 instead of IDN2003
        https://bugs.webkit.org/show_bug.cgi?id=144194

        Reviewed by Darin Adler.

        * fast/encoding/idn-security.html:
        Move some characters with changed IDN encodings to inside the check for old ICU.
        * fast/url/idna2003-expected.txt:
        * fast/url/idna2008-expected.txt:
        Update expected results.  We are now more compliant with IDN2008.

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

        Marking two js/dom/domjit-function-get-element-by-id-* tests as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164797

        Unreviewed test gardening.

        * TestExpectations:

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

        Better testing for accessibility media queries
        https://bugs.webkit.org/show_bug.cgi?id=164954
        <rdar://problem/29338292>

        Reviewed by Myles Maxfield.

        * fast/media/mq-inverted-colors-forced-value-expected.html: Added.
        * fast/media/mq-inverted-colors-forced-value.html: Copied from LayoutTests/fast/media/mq-prefers-reduced-motion-forced-value.html.
        * fast/media/mq-monochrome-forced-value-expected.html: Added.
        * fast/media/mq-monochrome-forced-value.html: Added.
        * fast/media/mq-prefers-reduced-motion-forced-value.html:

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

        Marking http/tests/misc/link-rel-icon-beforeload.html as failing on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=164933

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>

        Unsupported emoji are invisible
        https://bugs.webkit.org/show_bug.cgi?id=164944
        <rdar://problem/28591608>

        Reviewed by Dean Jackson.

        * fast/text/emoji-draws-expected-mismatch.html: Added.
        * fast/text/emoji-draws.html: Added.

2016-11-18  Sam Weinig  <sam@webkit.org>

        [WebIDL] Add support for record types
        https://bugs.webkit.org/show_bug.cgi?id=164935

        Reviewed by Tim Horton.

        * js/dom/webidl-type-mapping-expected.txt:
        * js/dom/webidl-type-mapping.html:
        Add tests for WebIDL record types.

2016-11-17  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::encrypt to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164738
        <rdar://problem/29257812>

        Reviewed by Brent Fulgham.

        * TestExpectations:
        * crypto/subtle/aes-cbc-encrypt-malformed-parameters-expected.txt: Added.
        * crypto/subtle/aes-cbc-encrypt-malformed-parameters.html: Added.
        * crypto/subtle/aes-cbc-import-key-encrypt-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-key-encrypt.html: Added.
        * crypto/subtle/encrypt-malformed-parameters-expected.txt: Added.
        * crypto/subtle/encrypt-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-encrypt-malformed-parameters-expected.txt: Added.
        * crypto/subtle/rsa-oaep-encrypt-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-import-key-encrypt-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-key-encrypt-label-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-key-encrypt-label.html: Added.
        * crypto/subtle/rsa-oaep-import-key-encrypt.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-key-encrypt-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-key-encrypt.html: Added.
        * crypto/workers/subtle/aes-cbc-import-key-encrypt-expected.txt: Added.
        * crypto/workers/subtle/aes-cbc-import-key-encrypt.html: Added.
        * crypto/workers/subtle/resources/aes-cbc-import-key-encrypt.js: Added.
        * crypto/workers/subtle/resources/rsa-oaep-import-key-encrypt.js: Added.
        * crypto/workers/subtle/resources/rsaes-pkcs1-v1_5-import-key-encrypt.js: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-encrypt-expected.txt: Added.
        * crypto/workers/subtle/rsa-oaep-import-key-encrypt.html: Added.
        * crypto/workers/subtle/rsaes-pkcs1-v1_5-import-key-encrypt-expected.txt: Added.
        * crypto/workers/subtle/rsaes-pkcs1-v1_5-import-key-encrypt.html: Added.

2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [CSS Font Loading] FontFaceSet.load() promises don't always fire
        https://bugs.webkit.org/show_bug.cgi?id=164902

        Reviewed by David Hyatt.

        * fast/text/fontfaceset-rebuild-during-loading-expected.txt: Added.
        * fast/text/fontfaceset-rebuild-during-loading.html: Added.

2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [SVG -> OTF Font Converter] Fonts advances are not internally consistent inside the generated font file
        https://bugs.webkit.org/show_bug.cgi?id=164846
        <rdar://problem/29031509>

        Reviewed by Darin Adler.

        * platform/ios-simulator/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/text-intro-01-t-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/text-intro-03-b-expected.txt:
        * platform/ios-simulator/svg/W3C-SVG-1.1/text-intro-04-t-expected.txt:
        * platform/ios-simulator/svg/batik/text/textEffect-expected.txt:
        * platform/ios-simulator/svg/batik/text/textEffect3-expected.txt:
        * platform/ios-simulator/svg/batik/text/textPosition2-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/text-intro-01-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/text-intro-03-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/text-intro-04-t-expected.txt:
        * platform/mac/svg/batik/text/textEffect3-expected.txt:
        * platform/mac/svg/batik/text/textPosition2-expected.txt:
        * platform/mac/svg/custom/svg-fonts-fallback-expected.txt:
        * platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
        * svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:

2016-11-18  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Generator functions should have a displayable name when shown in stack traces
        https://bugs.webkit.org/show_bug.cgi?id=164844
        <rdar://problem/29300697>

        Reviewed by Yusuke Suzuki.

        * inspector/debugger/js-stacktrace-expected.txt:
        * inspector/debugger/js-stacktrace.html:
        Add a test case for console.trace() / Error stack inside of generators.
        Modernize the test to reduce redundency and get nicer output.

2016-11-17  Sam Weinig  <sam@webkit.org>

        [WebIDL] Add support for ByteString
        https://bugs.webkit.org/show_bug.cgi?id=164901

        Reviewed by Darin Adler.

        * js/dom/webidl-type-mapping-expected.txt:
        * js/dom/webidl-type-mapping.html:
        Add tests for ByteString using the new TypeConversions.testByteString attribute.

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

        Implement TextDecoder and TextEncoder
        https://bugs.webkit.org/show_bug.cgi?id=163771

        Reviewed by Sam Weinig.

        * fast/encoding/utf-8-non-ascii-expected.txt: Added.
        * fast/encoding/utf-8-non-ascii.html: Added.
        * js/dom/global-constructors-attributes-dedicated-worker-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-11-17  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline fast/html/keygen.html for Sierra.

        Unreviewed test gardening.

        * platform/mac/fast/html/keygen-expected.txt:

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

        [JSC] Drop arguments.caller
        https://bugs.webkit.org/show_bug.cgi?id=164859

        Reviewed by Saam Barati.

        * js/basic-strict-mode-expected.txt:
        * js/script-tests/basic-strict-mode.js:
        * js/script-tests/strict-throw-type-error.js:
        * js/script-tests/throw-type-error-is-unique.js:
        (test):
        * js/strict-throw-type-error-expected.txt:

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

        Update TestExpectations for media/modern-media-controls/pip-support/pip-support-enabled.html.
        https://bugs.webkit.org/show_bug.cgi?id=164336

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Correct a typo in a TestExpectations file.

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-11-17  Zalan Bujtas  <zalan@apple.com>

        Render tree should be all clean by the end of FrameView::layout().
        https://bugs.webkit.org/show_bug.cgi?id=162834

        Reviewed by Simon Fraser.

        * TestExpectations:

2016-11-17  Brent Fulgham  <bfulgham@apple.com>

        keygen element should not support < 2048 RSA key lengths
        https://bugs.webkit.org/show_bug.cgi?id=164874
        <rdar://problem/22618141>

        Reviewed by Dean Jackson.

        * platform/mac/fast/html/keygen-expected.txt:
        * platform/mac-elcapitan/fast/html/keygen-expected.txt:

2016-11-17  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: Shift clicking on named color value only shows its hex form
        https://bugs.webkit.org/show_bug.cgi?id=162758

        Reviewed by Timothy Hatcher.

        * inspector/model/color.html:
        Updated the WebInspector.Color.prototype.nextFormat test for the new nextFormat logic.

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

        Marking http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164616

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Marking inspector/worker/debugger-multiple-targets-pause.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164872

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Marking imported/w3c/web-platform-tests/IndexedDB/idbcursor_iterating.htm as flaky on mac-wk2 debug.
        https://bugs.webkit.org/show_bug.cgi?id=164870

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-11-16  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Add @supports, @keyframe and media query parsing options
        https://bugs.webkit.org/show_bug.cgi?id=164821

        Reviewed by Sam Weinig and Zalan Bujtas.

        Delete the fallback descriptor tests, since that feature has been
        removed. Update some of the other tests based off some parsing changes
        from using the new parser always.

        * fast/media/media-descriptor-syntax-01-expected.html: Removed.
        * fast/media/media-descriptor-syntax-01.html: Removed.
        * fast/media/media-descriptor-syntax-02-expected.html: Removed.
        * fast/media/media-descriptor-syntax-02.html: Removed.
        * fast/media/media-descriptor-syntax-03-expected.html: Removed.
        * fast/media/media-descriptor-syntax-03.html: Removed.
        * fast/media/media-descriptor-syntax-04-expected.html: Removed.
        * fast/media/media-descriptor-syntax-04.html: Removed.
        * fast/media/media-descriptor-syntax-06-expected.html: Removed.
        * fast/media/media-descriptor-syntax-06.html: Removed.
        * fast/media/media-query-list-02-expected.txt:
        * fast/media/media-query-list-03-expected.txt:
        * fast/media/media-query-list-04-expected.txt:
        * fast/media/media-query-list-05-expected.txt:
        * fast/media/media-query-list-06-expected.txt:
        * fast/media/mq-pointer-expected.txt:
        * fast/media/w3c/test_media_queries-expected.txt:

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

        Remove pass expectation for custom-elements tests on ios-sim because CEReactions were disabled in r208837.
        https://bugs.webkit.org/show_bug.cgi?id=164852

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        [WebCore] Clean up script loading code in XML
        https://bugs.webkit.org/show_bug.cgi?id=161651

        Reviewed by Ryosuke Niwa.

        Add tests that ensure modules are not executed in XHTML documents.

        * js/dom/modules/module-inline-dynamic-in-xhtml-expected.txt: Added.
        * js/dom/modules/module-inline-dynamic-in-xhtml.xhtml: Added.
        * js/dom/modules/module-inline-simple-in-xhtml-expected.txt: Added.
        * js/dom/modules/module-inline-simple-in-xhtml.xhtml: Added.
        * js/dom/modules/module-src-dynamic-in-xhtml-expected.txt: Added.
        * js/dom/modules/module-src-dynamic-in-xhtml.xhtml: Added.
        * js/dom/modules/module-src-simple-in-xhtml-expected.txt: Added.
        * js/dom/modules/module-src-simple-in-xhtml.xhtml: Added.

2016-11-16  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r208082): 1% Speedometer regression on iOS
        https://bugs.webkit.org/show_bug.cgi?id=164852

        Reviewed by Chris Dumez.

        Add failing test expectations for various custom elements now that CEReactions is not working.

        * TestExpectations:

2016-11-16  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r208455): LayoutTests swipe/pushState-cached-back-swipe.html and swipe/main-frame-pinning-requirement.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=164572

        Reviewed by Tim Horton.

        * platform/mac-wk2/TestExpectations: Remove flakiness expectations.

2016-11-16  Brent Fulgham  <bfulgham@apple.com>

        Clear track client when removing a track
        https://bugs.webkit.org/show_bug.cgi?id=164842
        <rdar://problem/29213621>

        Reviewed by Eric Carlson.

        * media/track/audio-track-add-remove-expected.txt: Added.
        * media/track/audio-track-add-remove.html: Added.
        * media/track/video-track-add-remove-expected.txt: Added.
        * media/track/video-track-add-remove.html: Added.

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

        [ES6][WebCore] Change ES6_MODULES compile time flag to runtime flag
        https://bugs.webkit.org/show_bug.cgi?id=164827

        Reviewed by Ryosuke Niwa.

        * TestExpectations:

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

        Marking inspector/worker/debugger-pause.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164833

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-11-16  Ryosuke Niwa  <rniwa@webkit.org>

        slotchange event should bubble and dispatched once
        https://bugs.webkit.org/show_bug.cgi?id=164770

        Reviewed by Antti Koivisto.

        * fast/shadow-dom/slotchange-event-bubbling-expected.txt: Added.
        * fast/shadow-dom/slotchange-event-bubbling.html: Added.

2016-11-16  Simon Fraser  <simon.fraser@apple.com>

        UIScriptController: script with no async tasks fails if an earlier script registered a callback
        https://bugs.webkit.org/show_bug.cgi?id=164762

        Reviewed by Wenson Hsieh.
        
        Move the tests that use runUIScript into their own directory for easier TestExpectations management,
        and fix TestExpectations to match.

        * TestExpectations:
        * fast/harness/uiscriptcontroller/concurrent-ui-side-scripts-expected.txt: Renamed from LayoutTests/fast/harness/concurrent-ui-side-scripts-expected.txt.
        * fast/harness/uiscriptcontroller/concurrent-ui-side-scripts.html: Renamed from LayoutTests/fast/harness/concurrent-ui-side-scripts.html.
        * fast/harness/uiscriptcontroller/ui-side-script-unregister-callback-expected.txt: Copied from LayoutTests/fast/harness/ui-side-script-unregister-callback-expected.txt.
        * fast/harness/uiscriptcontroller/ui-side-script-unregister-callback.html: Copied from LayoutTests/fast/harness/ui-side-script-unregister-callback.html.
        * fast/harness/uiscriptcontroller/ui-side-script-with-callback-expected.txt: Renamed from LayoutTests/fast/harness/ui-side-script-unregister-callback-expected.txt.
        * fast/harness/uiscriptcontroller/ui-side-script-with-callback.html: Renamed from LayoutTests/fast/harness/ui-side-script-unregister-callback.html.
        * fast/harness/uiscriptcontroller/ui-side-scripts-expected.txt: Renamed from LayoutTests/fast/harness/ui-side-scripts-expected.txt.
        * fast/harness/uiscriptcontroller/ui-side-scripts.html: Renamed from LayoutTests/fast/harness/ui-side-scripts.html.
        * platform/mac/TestExpectations:

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

        REGRESSION (r207162): [debug] loader/stateobjects LayoutTests timing out
        https://bugs.webkit.org/show_bug.cgi?id=163307

        Reviewed by Alexey Proskuryakov.

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

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

        Unreviewed gardening.
        https://bugs.webkit.org/show_bug.cgi?id=163127

        * platform/ios-simulator/TestExpectations:
        Unskip passing tests.

2016-11-16  Joseph Pecoraro  <pecoraro@apple.com>

        Fix typo in LayoutTest.

        Unreviewed follow-up comment.

        * inspector/page/setEmulatedMedia-expected.txt:
        * inspector/page/setEmulatedMedia.html:

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

        js/dom/domjit-function-get-element-by-id-licm.html and js/dom/domjit-function-get-element-by-id-changed.html are flaky timeouts
        https://bugs.webkit.org/show_bug.cgi?id=164797

        Reviewed by Saam Barati.

        The performance of the both tests rely on PureGetById.
        However, PureGetById is rolled out temporary[1], these tests become timed out.
        This patch makes the both tests [ PASS TIMEOUT ] until PureGetById patch[1] is
        relanded or impure object optimization patch[2] is landed.

        [1]: https://bugs.webkit.org/show_bug.cgi?id=163305
        [2]: https://bugs.webkit.org/show_bug.cgi?id=164175

        * TestExpectations:

2016-11-16  Jiewen Tan  <jiewen_tan@apple.com>

        Add more tests for SubtleCrypto::importKey and SubtleCrypto::exportKey
        https://bugs.webkit.org/show_bug.cgi?id=164815
        <rdar://problem/29281660>

        Reviewed by Brent Fulgham.

        * crypto/subtle/aes-import-jwk-key-export-jwk-key.html: Added.
        * crypto/subtle/aes-import-jwk-key-export-raw-key.html: Added.
        * crypto/subtle/aes-import-raw-key-export-jwk-key.html: Added.
        * crypto/subtle/aes-import-raw-key-export-raw-key.html: Added.
        * crypto/subtle/hmac-import-jwk-key-export-jwk-key.html: Added.
        * crypto/subtle/hmac-import-jwk-key-export-raw-key.html: Added.
        * crypto/subtle/hmac-import-raw-key-export-jwk-key.html: Added.
        * crypto/subtle/hmac-import-raw-key-export-raw-key.html: Added.
        * crypto/subtle/rsa-import-jwk-key-export-jwk-key-private.html: Added.
        * crypto/subtle/rsa-import-jwk-key-export-jwk-key-public.html: Added.

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

        Updating TestExpectations for two http/tests/security/module-crossorigin tests.
        https://bugs.webkit.org/show_bug.cgi?id=164539

        Unreviewed test gardening.

        * TestExpectations:

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

        Make test sandbox-should-not-persist-on-navigation.html more representative of real-world scenario
        https://bugs.webkit.org/show_bug.cgi?id=164752

        Reviewed by Brent Fulgham.

        Modify the test http-0.9/sandbox-should-not-persist-on-navigation.html so that it loads
        a document on a default port using HTTP 0.9 to trigger the HTTP 0.9 sandbox as this
        is more representative of a real-world scenario where we want a sandbox to be applied
        and is the scenario that is currently covered by our HTTP 0.9 sandbox machinery.

        Currently this test makes use of the pre r208549 behavior where the HTTP 0.9 sandbox
        was applied to a document if one of its subresources loaded on a non-default port
        using HTTP 0.9 in addition to the behavior where the sandbox is applied to a document
        that loads on a default port using HTTP 0.9. Following r208549 we no longer apply the
        sandbox to the document for the former case as this did not improve security much, if
        any. The latter case is more representative of a real-world scenario where we want to
        apply the sandbox policy and reflects our behavior following r208549.

        * http/tests/security/http-0.9/resources/nph-sandbox-should-not-persist-on-navigation.pl: Added.
        * http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation-expected.txt:
        * http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation.html:
        * platform/wk2/TestExpectations: Skip the HTTP-0.9 tests in WebKit2 as it uses internals.registerDefaultPortForProtocol().

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

        Unreviewed, rolling out r208770.

        The test added with this change is timing out on mac-wk1.

        Reverted changeset:

        "UIScriptController: script with no async tasks fails if an
        earlier script registered a callback"
        https://bugs.webkit.org/show_bug.cgi?id=164762
        http://trac.webkit.org/changeset/208770

2016-11-16  Simon Fraser  <simon.fraser@apple.com>

        Fix typo in bug url.

        * platform/mac/TestExpectations:

2016-11-16  Romain Bellessort  <romain.bellessort@crf.canon.fr>

        [Readable Streams API] Implement ReadableByteStreamController close()
        https://bugs.webkit.org/show_bug.cgi?id=164413

        Reviewed by Darin Adler.

        Updated test expectations for close() tests and added tests
        to ensure errors are thrown in various cases defined by spec.

        * streams/readable-byte-stream-controller.js: Updated.

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

        [ES6] Integrate ES6 Modules into WebCore
        https://bugs.webkit.org/show_bug.cgi?id=148897

        Reviewed by Ryosuke Niwa.

        * TestExpectations:
        * http/tests/misc/module-absolute-url-expected.txt: Added.
        * http/tests/misc/module-absolute-url.html: Added.
        * http/tests/misc/module-script-async-expected.txt: Added.
        * http/tests/misc/module-script-async.html: Added.
        * http/tests/misc/resources/module-absolute-url.js: Added.
        * http/tests/misc/resources/module-absolute-url2.js: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-and-scripthash-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-and-scripthash.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-basic-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-basic-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-ignore-unsafeinline-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-ignore-unsafeinline.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-multiple-policies-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-multiple-policies.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-enforced-policy-and-not-in-report-only.php: Added.
        * http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Added.
        * http/tests/security/contentSecurityPolicy/module-eval-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/module-eval-blocked-in-external-script-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/module-eval-blocked-in-external-script.html: Added.
        * http/tests/security/contentSecurityPolicy/module-eval-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/echo-module-script-src.pl: Added.
        * http/tests/security/contentSecurityPolicy/resources/multiple-iframe-module-test.js: Added.
        (testPreescapedPolicy):
        (testExperimentalPolicy):
        (test):
        (iframe.onload):
        (testImpl):
        (finishTesting):
        * http/tests/security/module-correct-mime-types-expected.txt: Added.
        * http/tests/security/module-correct-mime-types.html: Added.
        * http/tests/security/module-crossorigin-error-event-information-expected.txt: Added.
        * http/tests/security/module-crossorigin-error-event-information.html: Added.
        * http/tests/security/module-crossorigin-loads-correctly-credentials-expected.txt: Added.
        * http/tests/security/module-crossorigin-loads-correctly-credentials.html: Added.
        * http/tests/security/module-crossorigin-loads-omit-expected.txt: Added.
        * http/tests/security/module-crossorigin-loads-omit.html: Added.
        * http/tests/security/module-crossorigin-loads-same-origin-expected.txt: Added.
        * http/tests/security/module-crossorigin-loads-same-origin.html: Added.
        * http/tests/security/module-crossorigin-onerror-information-expected.txt: Added.
        * http/tests/security/module-crossorigin-onerror-information.html: Added.
        * http/tests/security/module-incorrect-mime-types-expected.txt: Added.
        * http/tests/security/module-incorrect-mime-types.html: Added.
        * http/tests/security/module-no-mime-type-expected.txt: Added.
        * http/tests/security/module-no-mime-type.html: Added.
        * http/tests/security/resources/cors-script.php:
        * http/tests/security/resources/module-local-script.js: Added.
        * js/dom/modules/module-and-dom-content-loaded-expected.txt: Added.
        * js/dom/modules/module-and-dom-content-loaded.html: Added.
        * js/dom/modules/module-and-window-load-expected.txt: Added.
        * js/dom/modules/module-and-window-load.html: Added.
        * js/dom/modules/module-async-and-window-load-expected.txt: Added.
        * js/dom/modules/module-async-and-window-load.html: Added.
        * js/dom/modules/module-document-write-expected.txt: Added.
        * js/dom/modules/module-document-write-src-expected.txt: Added.
        * js/dom/modules/module-document-write-src.html: Added.
        * js/dom/modules/module-document-write.html: Added.
        * js/dom/modules/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror-expected.txt: Added.
        * js/dom/modules/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html: Added.
        * js/dom/modules/module-execution-error-should-be-propagated-to-onerror-expected.txt: Added.
        * js/dom/modules/module-execution-error-should-be-propagated-to-onerror.html: Added.
        * js/dom/modules/module-execution-order-inline-expected.txt: Added.
        * js/dom/modules/module-execution-order-inline.html: Added.
        * js/dom/modules/module-execution-order-mixed-expected.txt: Added.
        * js/dom/modules/module-execution-order-mixed-with-classic-scripts-expected.txt: Added.
        * js/dom/modules/module-execution-order-mixed-with-classic-scripts.html: Added.
        * js/dom/modules/module-execution-order-mixed.html: Added.
        * js/dom/modules/module-incorrect-relative-specifier-expected.txt: Added.
        * js/dom/modules/module-incorrect-relative-specifier.html: Added.
        * js/dom/modules/module-incorrect-tag-expected.txt: Added.
        * js/dom/modules/module-incorrect-tag.html: Added.
        * js/dom/modules/module-inline-current-script-expected.txt: Added.
        * js/dom/modules/module-inline-current-script.html: Added.
        * js/dom/modules/module-inline-dynamic-expected.txt: Added.
        * js/dom/modules/module-inline-dynamic.html: Added.
        * js/dom/modules/module-inline-simple-expected.txt: Added.
        * js/dom/modules/module-inline-simple.html: Added.
        * js/dom/modules/module-load-event-expected.txt: Added.
        * js/dom/modules/module-load-event-with-src-expected.txt: Added.
        * js/dom/modules/module-load-event-with-src.html: Added.
        * js/dom/modules/module-load-event.html: Added.
        * js/dom/modules/module-load-same-module-from-different-entry-point-dynamic-expected.txt: Added.
        * js/dom/modules/module-load-same-module-from-different-entry-point-dynamic.html: Added.
        * js/dom/modules/module-load-same-module-from-different-entry-point-expected.txt: Added.
        * js/dom/modules/module-load-same-module-from-different-entry-point.html: Added.
        * js/dom/modules/module-not-found-error-event-expected.txt: Added.
        * js/dom/modules/module-not-found-error-event-with-src-and-import-expected.txt: Added.
        * js/dom/modules/module-not-found-error-event-with-src-and-import.html: Added.
        * js/dom/modules/module-not-found-error-event-with-src-expected.txt: Added.
        * js/dom/modules/module-not-found-error-event-with-src.html: Added.
        * js/dom/modules/module-not-found-error-event.html: Added.
        * js/dom/modules/module-src-current-script-expected.txt: Added.
        * js/dom/modules/module-src-current-script.html: Added.
        * js/dom/modules/module-src-dynamic-expected.txt: Added.
        * js/dom/modules/module-src-dynamic.html: Added.
        * js/dom/modules/module-src-simple-expected.txt: Added.
        * js/dom/modules/module-src-simple.html: Added.
        * js/dom/modules/module-type-case-insensitive-expected.txt: Added.
        * js/dom/modules/module-type-case-insensitive.html: Added.
        * js/dom/modules/module-will-fire-beforeload-expected.txt: Added.
        * js/dom/modules/module-will-fire-beforeload.html: Added.
        * js/dom/modules/script-tests/module-document-write-src.js: Added.
        * js/dom/modules/script-tests/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror-throw.js: Added.
        * js/dom/modules/script-tests/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-2.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-cappuccino.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-cocoa.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-matcha.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-with-classic-scripts-2.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-with-classic-scripts-cappuccino.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-with-classic-scripts-cocoa.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-with-classic-scripts-matcha.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed-with-classic-scripts.js: Added.
        * js/dom/modules/script-tests/module-execution-order-mixed.js: Added.
        * js/dom/modules/script-tests/module-inline-dynamic.js: Added.
        (export.default.Cocoa.prototype.taste):
        (export.default.Cocoa):
        * js/dom/modules/script-tests/module-inline-simple.js: Added.
        (export.default.Cocoa.prototype.taste):
        (export.default.Cocoa):
        * js/dom/modules/script-tests/module-load-event-with-src.js: Added.
        * js/dom/modules/script-tests/module-load-same-module-from-different-entry-point.js: Added.
        * js/dom/modules/script-tests/module-not-found-error-event-with-src-and-import.js: Added.
        * js/dom/modules/script-tests/module-src-current-script.js: Added.
        * js/dom/modules/script-tests/module-src-dynamic-cocoa.js: Added.
        (Cocoa.prototype.taste):
        (Cocoa):
        * js/dom/modules/script-tests/module-src-dynamic.js: Added.
        * js/dom/modules/script-tests/module-src-simple-cocoa.js: Added.
        (Cocoa.prototype.taste):
        (Cocoa):
        * js/dom/modules/script-tests/module-src-simple.js: Added.
        * js/dom/modules/script-tests/module-will-fire-beforeload.js: Added.

2016-11-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Preview other CSS @media in browser window (print)
        https://bugs.webkit.org/show_bug.cgi?id=13530
        <rdar://problem/5712928>

        Reviewed by Timothy Hatcher.

        * inspector/page/media-query-list-listener-exception-expected.txt: Copied from LayoutTests/inspector/page/setEmulatedMedia-expected.txt.
        * inspector/page/media-query-list-listener-exception.html: Copied from LayoutTests/inspector/page/setEmulatedMedia.html.
        Rename this test which is about swallowing exceptions and happened to use inspector code.

        * inspector/page/setEmulatedMedia-expected.txt:
        * inspector/page/setEmulatedMedia.html:
        Test for Page.setEmulatedMedia command.

2016-11-15  Jon Lee  <jonlee@apple.com>

        Report active video and audio capture devices separately
        https://bugs.webkit.org/show_bug.cgi?id=164769

        Reviewed by Eric Carlson.

        * fast/mediastream/MediaStream-page-muted-expected.txt: Update test.
        * fast/mediastream/MediaStream-page-muted.html:

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

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

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2016-11-15  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Key collation during SQLite lookups is insanely slow.
        https://bugs.webkit.org/show_bug.cgi?id=164754

        Reviewed by Alex Christensen.

        * TestExpectations: Unskip a test that passes even in debug builds, and re-classify
          a test that used to be too-slow everywhere to be too-slow only in debug builds.

2016-11-15  Simon Fraser  <simon.fraser@apple.com>

        UIScriptController: script with no async tasks fails if an earlier script registered a callback
        https://bugs.webkit.org/show_bug.cgi?id=164762

        Reviewed by Wenson Hsieh.

        * fast/harness/ui-side-script-with-callback-expected.txt: Added.
        * fast/harness/ui-side-script-with-callback.html: Added.

2016-11-15  Simon Fraser  <simon.fraser@apple.com>

        UIScriptController: setting a callback to undefined should unregister it
        https://bugs.webkit.org/show_bug.cgi?id=164796

        Reviewed by Dean Jackson.

        * fast/harness/ui-side-script-unregister-callback-expected.txt: Added.
        * fast/harness/ui-side-script-unregister-callback.html: Added.

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

        Marking http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=161650

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Skip fast/forms/search-cancel-button-change-input.html on ios-simulator since the test relies upon mouse events.

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2016-11-15  Filip Pizlo  <fpizlo@apple.com>

        [mac-wk1 debug] ASSERTION FAILED: thisObject->m_propertyTableUnsafe
        https://bugs.webkit.org/show_bug.cgi?id=162986

        Reviewed by Saam Barati.
        
        This test should not crash anymore.

        * platform/mac-wk1/TestExpectations:

2016-11-15  Jiewen Tan  <jiewen_tan@apple.com>

        js-test-pre.js::shouldReject doesn't need _rejectCallback and _resolveCallback
        https://bugs.webkit.org/show_bug.cgi?id=164758

        Reviewed by Youenn Fablet.

        Since the function returns a promise, it doesn't need _rejectCallback and _resolveCallback.

        * crypto/subtle/generate-key-malformed-parameters.html:
        * crypto/subtle/rsa-generate-key-malformed-parameters.html:
        * crypto/workers/subtle/resources/rsa-generate-key.js:
        * crypto/workers/subtle/rsa-generate-key-expected.txt:
        * resources/js-test-pre.js:

2016-11-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: inspector/worker/debugger-pause.html fails on WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=164787

        Reviewed by Timothy Hatcher.

        * inspector/worker/debugger-pause.html:
        Make this test work for WebKit1 where the VM is shared between the
        page and inspector page. We need to be able to stop the Inspector's
        evaluation, so that we can evaluate and pause on the page, and then
        come back to the inspector afterwards.

2016-11-15  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Implement support for visual viewports
        https://bugs.webkit.org/show_bug.cgi?id=164765

        Reviewed by Tim Horton.

        Adopt the visual viewport scrolling model in iOS WK2.
        
        These tests don't correctly test iOS WK2's async scrolling behavior (webkit.org/b/164779)
        so rebaseline.

        * platform/ios-simulator-wk2/fast/visual-viewport/nonzoomed-rects-expected.txt: Added.
        * platform/ios-simulator-wk2/fast/visual-viewport/rtl-nonzoomed-rects-expected.txt: Added.
        * platform/ios-simulator-wk2/fast/visual-viewport/rtl-zoomed-rects-expected.txt: Added.
        * platform/ios-simulator-wk2/fast/visual-viewport/zoomed-fixed-expected.txt: Added.
        * platform/ios-simulator-wk2/fast/visual-viewport/zoomed-fixed-scroll-down-then-up-expected.txt: Added.
        * platform/ios-simulator-wk2/fast/visual-viewport/zoomed-rects-expected.txt: Added.

2016-11-14  Brent Fulgham  <bfulgham@apple.com>

        Correct handling of changing input type
        https://bugs.webkit.org/show_bug.cgi?id=164759
        <rdar://problem/29211174>

        Reviewed by Darin Adler.

        * fast/forms/search-cancel-button-change-input-expected.txt: Added.
        * fast/forms/search-cancel-button-change-input.html: Added.

2016-11-15  Antti Koivisto  <antti@apple.com>

        slot doesn't work as a flex container
        https://bugs.webkit.org/show_bug.cgi?id=160740
        <rdar://problem/28605080>

        Reviewed by Ryosuke Niwa.

        * fast/shadow-dom/css-scoping-slot-flex-expected.html: Added.
        * fast/shadow-dom/css-scoping-slot-flex.html: Added.
        * fast/shadow-dom/slot-crash-expected.txt:

2016-11-15  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: Need to update implicit/default values for aria-valuemin, aria-valuenow, and aria-valuemax
        https://bugs.webkit.org/show_bug.cgi?id=164773

        Reviewed by Chris Fleizach.

        * accessibility/progressbar-expected.txt: Updated to reflect new behavior.
        * accessibility/progressbar.html: Updated to reflect new behavior.
        * accessibility/spinbutton-implicit-values-expected.txt: Added.
        * accessibility/spinbutton-implicit-values.html: Added.

2016-11-14  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::exportKey to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164722
        <rdar://problem/29251740>

        Reviewed by Brent Fulgham.

        Besides adding test cases for SubtleCrypto::exportKey, this patch also corrects a typo:
        hmac-import-malformed-parameters* => hmac-import-key-malformed-parameters*.

        * crypto/subtle/aes-cbc-generate-export-key-jwk-length-128-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-export-key-jwk-length-128.html: Added.
        * crypto/subtle/aes-cbc-generate-export-key-jwk-length-192-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-export-key-jwk-length-192.html: Added.
        * crypto/subtle/aes-cbc-generate-export-key-jwk-length-256-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-export-key-jwk-length-256.html: Added.
        * crypto/subtle/aes-cbc-generate-export-key-raw-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-export-key-raw.html: Added.
        * crypto/subtle/aes-export-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/aes-export-key-malformed-parameters.html: Added.
        * crypto/subtle/aes-kw-generate-export-key-jwk-length-128-expected.txt: Added.
        * crypto/subtle/aes-kw-generate-export-key-jwk-length-128.html: Added.
        * crypto/subtle/aes-kw-generate-export-key-jwk-length-192-expected.txt: Added.
        * crypto/subtle/aes-kw-generate-export-key-jwk-length-192.html: Added.
        * crypto/subtle/aes-kw-generate-export-key-jwk-length-256-expected.txt: Added.
        * crypto/subtle/aes-kw-generate-export-key-jwk-length-256.html: Added.
        * crypto/subtle/aes-kw-generate-export-raw-key-expected.txt: Added.
        * crypto/subtle/aes-kw-generate-export-raw-key.html: Added.
        * crypto/subtle/export-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/export-key-malformed-parameters.html: Added.
        * crypto/subtle/hmac-export-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/hmac-export-key-malformed-parameters.html: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha1-expected.txt: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha1.html: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha224-expected.txt: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha224.html: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha256-expected.txt: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha256.html: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha384-expected.txt: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha384.html: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha512-expected.txt: Added.
        * crypto/subtle/hmac-generate-export-key-jwk-sha512.html: Added.
        * crypto/subtle/hmac-generate-export-raw-key-expected.txt: Added.
        * crypto/subtle/hmac-generate-export-raw-key.html: Added.
        * crypto/subtle/hmac-import-key-malformed-parameters-expected.txt: Renamed from LayoutTests/crypto/subtle/hmac-import-malformed-parameters-expected.txt.
        * crypto/subtle/hmac-import-key-malformed-parameters.html: Renamed from LayoutTests/crypto/subtle/hmac-import-malformed-parameters.html.
        * crypto/subtle/rsa-export-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/rsa-export-key-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha1-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha1.html: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha224-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha224.html: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha256-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha256.html: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha384-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha384.html: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha512-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-export-key-jwk-sha512.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-jwk-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-export-key-jwk.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha1-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha1.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha224-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha224.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha256-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha256.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha384-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha384.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha512-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-export-key-jwk-sha512.html: Added.
        * crypto/workers/subtle/aes-generate-export-key-jwk-expected.txt: Added.
        * crypto/workers/subtle/aes-generate-export-key-jwk.html: Added.
        * crypto/workers/subtle/aes-generate-export-key-raw-expected.txt: Added.
        * crypto/workers/subtle/aes-generate-export-key-raw.html: Added.
        * crypto/workers/subtle/hmac-generate-export-key-jwk-expected.txt: Added.
        * crypto/workers/subtle/hmac-generate-export-key-jwk.html: Added.
        * crypto/workers/subtle/hmac-generate-export-key-raw-expected.txt: Added.
        * crypto/workers/subtle/hmac-generate-export-key-raw.html: Added.
        * crypto/workers/subtle/resources/aes-generate-export-key-jwk.js: Added.
        * crypto/workers/subtle/resources/aes-generate-export-key-raw.js: Added.
        * crypto/workers/subtle/resources/hmac-generate-export-key-jwk.js: Added.
        * crypto/workers/subtle/resources/hmac-generate-export-key-raw.js: Added.
        * crypto/workers/subtle/resources/rsa-generate-export-key-jwk.js: Added.
        * crypto/workers/subtle/rsa-generate-export-key-jwk-expected.txt: Added.
        * crypto/workers/subtle/rsa-generate-export-key-jwk.html: Added.

2016-11-15  Jon Lee  <jonlee@apple.com>

        Remove HasMediaCaptureDevice
        https://bugs.webkit.org/show_bug.cgi?id=164767
        <rdar://problem/29263696>

        Reviewed by Eric Carlson.

        * fast/mediastream/MediaStream-page-muted-expected.txt: Remove check for HasMediaCaptureDevice.
        * fast/mediastream/MediaStream-page-muted.html:

2016-11-14  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix font-synthesis and text-decoration-skip parsing
        https://bugs.webkit.org/show_bug.cgi?id=164736

        Reviewed by Dean Jackson.

        * fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt:
        * fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html:
        * fast/css3-text/font-synthesis-parse-expected.txt:
        * fast/css3-text/font-synthesis-parse.html:

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

        Disallow loads using HTTP 0.9 at the ResourceHandle/NetworkDataTask level
        https://bugs.webkit.org/show_bug.cgi?id=164662
        <rdar://problem/29268514>

        Reviewed by Reviewed by Alex Christensen and Brady Eidson.

        Add a test to ensure that we block a synchronous XHR load using HTTP 0.9.
        Renamed test image-default-port-blocked.html to image-default-port-allowed.html
        as we now allow a subresource load using HTTP 0.9 on a default port regardless
        of the HTTP version the embedding page used.

        Update test expectations as DRT/WTR do not emit a localized description for the
        error associated with a load failure. Note that a message is emitted to
        Web Inspector console.

        * http/tests/security/http-0.9/iframe-blocked-expected.txt:
        * http/tests/security/http-0.9/iframe-blocked.html: Dump frame load callbacks
        to see that load was cancelled as there is no other unique visible indication
        of success.
        * http/tests/security/http-0.9/image-blocked-expected.txt: Update expected result.
        * http/tests/security/http-0.9/image-default-port-allowed-expected.txt: Renamed from LayoutTests/http/tests/security/http-0.9/image-default-port-blocked-expected.txt.
        * http/tests/security/http-0.9/image-default-port-allowed.html: Renamed from LayoutTests/http/tests/security/http-0.9/image-default-port-blocked.html.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-page-blocked-expected.txt: Update expected result.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-page-blocked.html: Ditto.
        * http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation-expected.txt: Ditto.
        * http/tests/security/http-0.9/worker-connect-src-blocked-expected.txt: Ditto.
        * http/tests/security/http-0.9/worker-importScripts-blocked-expected.txt: Ditto.
        * http/tests/security/http-0.9/xhr-asynchronous-blocked-expected.txt: Ditto.
        * http/tests/security/http-0.9/xhr-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/xhr-blocked.html: Added.
        * platform/wk2/TestExpectations: Skip the HTTP-0.9 tests in WebKit2 that use internals.registerDefaultPortForProtocol().
        The function internals.registerDefaultPortForProtocol only updates the default-port-to-protocol map in the WebContent
        process. However network loads in WebKit2 occur in the NetworkProcess. Further investigation is needed to determine
        the best way to support testing with default ports. Ideally, we would run an HTTP server on port 80 for testing and
        remove the need for internals.registerDefaultPortForProtocol().

2016-11-15  Zalan Bujtas  <zalan@apple.com>

        [MultiCol] Render tree should be all clean by the end of FrameView::layout().
        https://bugs.webkit.org/show_bug.cgi?id=162833

        Reviewed by Simon Fraser.

        This patch actually fixes the renderering of the closing quotation mark. Currently, it is
        not rendered at all.

        * fast/inline/out-of-flow-quotation-text-with-multicolumn-expected.html: Added.
        * fast/inline/out-of-flow-quotation-text-with-multicolumn.html: Added.

2016-11-15  Alejandro G. Castro  <alex@igalia.com>

        WebRTC: update MediaStream-MediaElement-srcObject.html test and unskip it
        https://bugs.webkit.org/show_bug.cgi?id=159343

        Reviewed by Philippe Normand.

        Update the test to use the getUserMedia API and unskip it.

        * fast/mediastream/MediaStream-MediaElement-srcObject-expected.txt:
        Update the result of using the getUserMedia API.
        * fast/mediastream/MediaStream-MediaElement-srcObject.html: Use
        the getUserMedia API from the helper.
        * platform/gtk/TestExpectations: Unskip the test.
        * platform/mac/TestExpectations: Unskip the test.

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

        Web Inspector: Worker debugging should pause all targets and view call frames in all targets
        https://bugs.webkit.org/show_bug.cgi?id=164305
        <rdar://problem/29056192>

        Reviewed by Timothy Hatcher.

        * inspector/debugger/continueUntilNextRunLoop-expected.txt: Added.
        * inspector/debugger/continueUntilNextRunLoop.html: Added.
        New test for new Debugger.continueUntilNextRunLoop protocol method.

        * inspector/worker/debugger-multiple-targets-pause-expected.txt: Added.
        * inspector/worker/debugger-multiple-targets-pause.html: Added.
        * inspector/worker/resources/worker-debugger-thread-1.js: Added.
        * inspector/worker/resources/worker-debugger-thread-2.js: Added.
        This tests uses a 250ms timeout because we have to have the worker thread
        evaluate some work and trigger a pause on other threads before their work
        starts. On debug builds, shorter times, like 100ms, would not be enough.

        * inspector/worker/debugger-pause-expected.txt:
        * inspector/worker/debugger-pause.html:
        Now that all threads pause, the first InspectorTest.log evaluates JavaScript on
        the page and causes a pause. So make the first log empty to keep the test unchanged.

        * inspector/worker/runtime-basic-expected.txt:
        * inspector/unit-tests/target-manager-expected.txt:
        Updated display name of the mainTarget.

2016-11-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGL2] Teach WebGLRenderingContextBase about new texture internal formats
        https://bugs.webkit.org/show_bug.cgi?id=164525

        Reviewed by Dean Jackson.

        Test texture types without drawing. Instead, attach a texture to a framebuffer and
        use readPixels() to make sure the texture retains its data.

        * fast/canvas/webgl/webgl2-texture-upload-enums-expected.txt: Added.
        * fast/canvas/webgl/webgl2-texture-upload-enums.html: Added.

2016-11-14  Ryosuke Niwa  <rniwa@webkit.org>

        document.createElementNS doesn't construct a custom element
        https://bugs.webkit.org/show_bug.cgi?id=164700

        Reviewed by Darin Adler.

        Added W3C style testharness.js tests for createElementNS and DOMImplementation's createDocument.

        * fast/custom-elements/DOMImplementation-createDocument-expected.txt: Added.
        * fast/custom-elements/DOMImplementation-createDocument.html: Added.
        * fast/custom-elements/document-createElementNS-expected.txt: Added.
        * fast/custom-elements/document-createElementNS.html: Added.

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

        Handle filter() image type in new CSS Parser
        https://bugs.webkit.org/show_bug.cgi?id=164673
        <rdar://problems/29231376>

        Reviewed by Darin Adler.

        Remove the test that allows a string value for the
        image source rather than a url().

        * fast/filter-image/filter-image-animation-expected.txt:
        * fast/filter-image/filter-image-animation.html:

2016-11-14  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: In ARIA 1.1, the implicit value for aria-level on headings is 2
        https://bugs.webkit.org/show_bug.cgi?id=164714

        Reviewed by Chris Fleizach.

        Added new test case to existing test and updated expectations.

        * accessibility/gtk/xml-roles-exposed-expected.txt: Updated.
        * accessibility/heading-level-expected.txt: Updated.
        * accessibility/heading-level.html: New test case added.

2016-11-14  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Remove incorrect cursor result
        https://bugs.webkit.org/show_bug.cgi?id=164717

        Reviewed by Dean Jackson.

        * fast/css/cursor-parsing-expected.txt:
        * fast/css/cursor-parsing.html:

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

        Refresh RTCDataChannel abstract infrastructure
        https://bugs.webkit.org/show_bug.cgi?id=164680

        Reviewed by Darin Adler.

        * fast/mediastream/RTCPeerConnection-datachannel-expected.txt:
        * fast/mediastream/RTCPeerConnection-datachannel.html:
        * platform/mac/TestExpectations:

2016-11-14  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r83521): Fix malformed <canvas> tag in fast/canvas/DrawImageSinglePixelStretch.html

        Unreviewed.

        Before: <canvas id="c"</canvas>
        Parsed: <canvas id="c" <="" canvas="" width="200" height="50"></canvas>

        After:  <canvas id="c"></canvas>
        Parsed: <canvas id="c" width="200" height="50"></canvas>

        * fast/canvas/DrawImageSinglePixelStretch.html: Close <canvas>
        tag.  This does not affect test results, but the HTML5 parser
        was covering for this mistake.

2016-11-14  David Kilzer  <ddkilzer@apple.com>

        Bug 164702: WebContent crash due to checked unsigned overflow in WebCore: WebCore::RenderLayerCompositor::requiresCompositingLayer const + 1104
        <https://webkit.org/b/164702>
        <rdar://problem/29236368>

        Reviewed by Darin Adler.

        * inspector/layers/layers-compositing-reasons-expected.txt:
        Update results.
        * inspector/layers/layers-compositing-reasons.html: Update to
        reproduce the crash.  This does not reproduce the original crash
        stack, but does exercise the same crashing code.

2016-11-14  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [ATK] Expose STATE_SINGLE_LINE and STATE_MULTI_LINE for ARIA searchbox role
        https://bugs.webkit.org/show_bug.cgi?id=164712

        Reviewed by Chris Fleizach.

        * accessibility/gtk/singleline-and-multiline-expected.txt: Added.
        * accessibility/gtk/singleline-and-multiline.html: Added.

2016-11-13  Fujii Hironori  <Hironori.Fujii@sony.com>

        [HarfBuzz] HarfBuzzShaper should not assume numGlyphs is greater than 0
        https://bugs.webkit.org/show_bug.cgi?id=164500

        Reviewed by Myles C. Maxfield.

        * fast/text/international/harfbuzz-runs-with-no-glyph-expected.txt: Added.
        * fast/text/international/harfbuzz-runs-with-no-glyph.html: Added.
        * fast/text/international/resources/ignorables.woff: Added.

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

        REGRESSION (204441): newsplex.com map does not load
        https://bugs.webkit.org/show_bug.cgi?id=164705
        <rdar://problem/28753438>

        Reviewed by Darin Adler.

        * fast/dom/getElementsByTagName-HTMLElement-prefix-expected.txt: Added.
        * fast/dom/getElementsByTagName-HTMLElement-prefix.html: Added.

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

        Add a way to get the UI-side scrolling tree as text via UIScriptController
        https://bugs.webkit.org/show_bug.cgi?id=164697

        Reviewed by Zalan Bujtas.

        Add a test that dumps the scrolling state tree with a fixed element.

        * scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Added.
        * scrollingcoordinator/ios/ui-scrolling-tree.html: Added.

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

        [iOS WK2] Share some code with Mac for post-async-scroll state reconciliation
        https://bugs.webkit.org/show_bug.cgi?id=164694

        Reviewed by Zalan Bujtas.

        Test that pans the page, and dumps GraphicsLayers before letting go.

        * TestExpectations:
        * platform/ios-simulator-wk2/TestExpectations:
        * scrollingcoordinator/ios/sync-layer-positions-after-scroll-expected.txt: Added.
        * scrollingcoordinator/ios/sync-layer-positions-after-scroll.html: Added.

2016-11-12  Frederic Wang  <fwang@igalia.com>

        Ensure MathML render tree are clean by the end of FrameView::layout().
        https://bugs.webkit.org/show_bug.cgi?id=162824

        Reviewed by Darin Adler.

        * mathml/invalid-markup-expected.txt: Added.
        * mathml/invalid-markup.html: Added.
        * mathml/mn-as-list-item-assert-expected.txt: Update text expectation now that invalid
        subtree appears in the output.
        * mathml/msubsup-fuzz-expected.txt: Ditto.
        * accessibility/mac/mathml-multiscript.txt: Ditto.

2016-11-11  Ryosuke Niwa  <rniwa@webkit.org>

        event.composedPath() does not include window
        https://bugs.webkit.org/show_bug.cgi?id=164609
        <rdar://problem/29210383>

        Reviewed by Antti Koivisto.

        Added a W3C style testharness.js test for dispatching an inside a shadow tree connected to a document.

        * fast/shadow-dom/event-path-with-window-expected.txt: Added.
        * fast/shadow-dom/event-path-with-window.html: Added.
        * fast/shadow-dom/resources/event-path-test-helpers.js:
        (dispatchEventWithLog): Traverse from document to window. Also include the event object in the log.

2016-11-11  Joseph Pecoraro  <pecoraro@apple.com>

        test262: DataView get methods should allow for missing offset, set methods should allow for missing value
        https://bugs.webkit.org/show_bug.cgi?id=164451

        Reviewed by Darin Adler.

        * fast/canvas/webgl/data-view-test-expected.txt:
        * fast/canvas/webgl/data-view-test.html:
        Create a DataView large enough so that the get/set operations don't fail
        due to out of bounds access, and assert that they do not throw, because
        the undefined offset and value parameters get converted to 0.

        * webgl/1.0.2/conformance/typedarrays/data-view-test-expected.txt:
        This test is wrong. Leave the test alone but update our copy.

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

        Skip editing/input/focus-change-with-marked-text.html everywhere except ios-simulator-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=164666

        Unreviewed test gardening.

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

2016-11-11  Ryosuke Niwa  <rniwa@webkit.org>

        Hovering over a slotted Text node clears hover state
        https://bugs.webkit.org/show_bug.cgi?id=164002
        <rdar://problem/29040471>

        Reviewed by Simon Fraser.

        Added two reference tests for activating and hovering over a Text node.
        The text node should activate :hover and :activate rules in the shadow tree respectively.

        * fast/shadow-dom/activate-over-slotted-content-expected.html: Added.
        * fast/shadow-dom/activate-over-slotted-content.html: Added.
        * fast/shadow-dom/hover-over-slotted-content-expected.html: Added.
        * fast/shadow-dom/hover-over-slotted-content.html: Added.
        * platform/ios-simulator/TestExpectations: Skip the newly added tests since iOS doesn't
        support :hover or :activate via mouse down.

2016-11-11  Brent Fulgham  <bfulgham@apple.com>

        Neutered ArrayBuffers are not properly serialized
        https://bugs.webkit.org/show_bug.cgi?id=164647
        <rdar://problem/29213490>

        Reviewed by David Kilzer.

        * fast/canvas/neutered-imagedata-expected.txt: Added.
        * fast/canvas/neutered-imagedata.html: Added.

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

        [WK2] autocorrect and autocapitalize attributes do not work in contenteditable elements
        https://bugs.webkit.org/show_bug.cgi?id=164538
        <rdar://problem/8418711>

        Reviewed by Ryosuke Niwa.

        Adds new layout tests verifying that `autocorrect` and `autocapitalize` attributes can be used to opt out of
        autocapitalization and autocorrection in a contenteditable area in WK2. Additionally, tests that autocorrection
        and autocapitalization attributes may be changed by setting `element.autocorrect` and `element.autocapitalize`,
        respectively.

        * fast/events/ios/contenteditable-autocapitalize-none-expected.txt: Added.
        * fast/events/ios/contenteditable-autocapitalize-none.html: Added.
        * fast/events/ios/contenteditable-autocorrect-off-expected.txt: Added.
        * fast/events/ios/contenteditable-autocorrect-off.html: Added.

2016-11-11  Antti Koivisto  <antti@apple.com>

        Updating class name doesn't update the slotted content's style
        https://bugs.webkit.org/show_bug.cgi?id=164577
        <rdar://problem/29205873>

        Reviewed by Ryosuke Niwa.

        * fast/shadow-dom/css-scoping-slotted-invalidation-expected.html: Added.
        * fast/shadow-dom/css-scoping-slotted-invalidation.html: Added.

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

        WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
        https://bugs.webkit.org/show_bug.cgi?id=164644

        Reviewed by Brady Eidson.

        Extend layout test coverage to check that:
        - WorkerGlobalScope.indexedDB is on the prototype.
        - WorkerGlobalScope.IDBDatabase constructor is on the instance

        Both are enabled at runtime properties.

        * fast/workers/WorkerGlobalScope-properties-prototype-expected.txt:
        * fast/workers/WorkerGlobalScope-properties-prototype.html:
        * fast/workers/self-hasOwnProperty-expected.txt:
        * fast/workers/self-hasOwnProperty.html:

2016-11-11  Antti Koivisto  <antti@apple.com>

        Shadow DOM: Toggling class in `.class ::slotted(*)` does not trigger style recalc
        https://bugs.webkit.org/show_bug.cgi?id=160864

        Reviewed by Ryosuke Niwa.

        * fast/shadow-dom/css-scoping-host-and-slotted-context-invalidation-expected.html: Added.
        * fast/shadow-dom/css-scoping-host-and-slotted-context-invalidation.html: Added.

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

        [MediaStream] defer resolution of getUserMedia promise made in a background tab
        https://bugs.webkit.org/show_bug.cgi?id=164643
        <rdar://problem/29048317>

        Reviewed by Brady Eidson.

        * fast/mediastream/get-user-media-background-tab-expected.txt: Added.
        * fast/mediastream/get-user-media-background-tab.html: Added.

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

        Rename CryptoKeyUsage to CryptoKeyUsageBitmap and CryptoKey::Usage to CryptoKeyUsage
        https://bugs.webkit.org/show_bug.cgi?id=164624
        <rdar://problem/29210140>

        Reviewed by Brent Fulgham.

        * crypto/subtle/generate-key-malformed-parameters-expected.txt:
        * crypto/subtle/import-key-malformed-parameters-expected.txt:

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

        Add ios-simulator baseline for compositing/tiling/visiblerect-accumulated-offset.html.

        Unreviewed test gardening.

        * platform/ios-simulator/compositing/tiling/visiblerect-accumulated-offset-expected.txt: Added.

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

        Composition state should be cleared when changing focus to a non-editable element
        https://bugs.webkit.org/show_bug.cgi?id=164595
        <rdar://problem/26412551>

        Reviewed by Enrica Casucci.

        Adds a new layout test to ensure that when changing focus from an element with pending composition text to
        another element, the composition is committed and there should not still be a pending composition.

        * editing/input/focus-change-with-marked-text-expected.txt: Added.
        * editing/input/focus-change-with-marked-text.html: Added.
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac/TestExpectations:

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

        [css-grid] ASSERTION FAILED: !m_gridIsDirty in WebCore::RenderGrid::gridRowCount
        https://bugs.webkit.org/show_bug.cgi?id=163450

        Reviewed by Darin Adler.

        The tests shouldn't crash in debug to verify that the bug is fixed.
        On top of that the positioned grid items should appear in the right position too.

        * fast/css-grid-layout/grid-positioned-item-dynamic-change-expected.html: Added.
        * fast/css-grid-layout/grid-positioned-item-dynamic-change.html: Added.
        * fast/css-grid-layout/grid-simplified-layout-positioned-expected.html: Added.
        * fast/css-grid-layout/grid-simplified-layout-positioned.html: Added.

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

        [Modern Media Controls] Media Controller: media tracks control support
        https://bugs.webkit.org/show_bug.cgi?id=164618
        <rdar://problem/27989483>

        Reviewed by Dean Jackson.

        Adding new tests to check that we enable the media tracks button when we have text tracks
        or multiple audio tracks, and that it's disabled otherwise.

        * media/modern-media-controls/tracks-support/tracks-support-audio-tracks-expected.txt: Added.
        * media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html: Added.
        * media/modern-media-controls/tracks-support/tracks-support-no-tracks-expected.txt: Added.
        * media/modern-media-controls/tracks-support/tracks-support-no-tracks.html: Added.
        * media/modern-media-controls/tracks-support/tracks-support-text-tracks-expected.txt: Added.
        * media/modern-media-controls/tracks-support/tracks-support-text-tracks.html: Added.

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

        [DOMJIT] Document#body should have DOMJIT patchpoint
        https://bugs.webkit.org/show_bug.cgi?id=164627

        Reviewed by Darin Adler.

        * js/dom/domjit-accessor-document-body-expected.txt: Added.
        * js/dom/domjit-accessor-document-body.html: Added.

2016-11-10  John Wilander  <wilander@apple.com>

        Add link information to data transfer pasteboard for drag and drop links
        https://bugs.webkit.org/show_bug.cgi?id=163468
        <rdar://problem/20634630>

        Reviewed by Brent Fulgham.

        * editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard-expected.txt: Added.
        * editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard.html: Added.
            This test ensures data transfer is not deleted or overwritten for the types 'text' and 'url'.
        * platform/ios-simulator/TestExpectations:
            Drag & drop is not supported on iOS.

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

        REGRESSION (r208522): LayoutTest fast/loader/reload-zero-byte-plugin.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=164570

        Reviewed by Simon Fraser.

        Unskip test which should no longer be flaky.

        * platform/mac/TestExpectations:

2016-11-10  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0 Support the IDBDatabase.onclose event.
        https://bugs.webkit.org/show_bug.cgi?id=164602

        Reviewed by Alex Christensen.

        * TestExpectations:
        * storage/indexeddb/modern/handle-user-delete-expected.txt:
        * storage/indexeddb/modern/resources/handle-user-delete.js:

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

        Marking swipe/pushState-cached-back-swipe.html and swipe/main-frame-pinning-requirement.html as failing.
        https://bugs.webkit.org/show_bug.cgi?id=164572

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Copied text would contain text inside CDATA sections and comments
        https://bugs.webkit.org/show_bug.cgi?id=164578

        Reviewed by Darin Adler.

        Added a regression test for creating an attributed string from different kinds of Text nodes.
        Comment and CDataSection should not be included in the attributed string.

        * editing/mac/attributed-string/comment-cdata-section-expected.txt: Added.
        * editing/mac/attributed-string/comment-cdata-section.html: Added.
        * platform/mac-yosemite/editing/mac/attributed-string/comment-cdata-section-expected.txt: Added.

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

        test262: DataView / TypedArray methods should throw RangeErrors for negative numbers (ToIndex)
        https://bugs.webkit.org/show_bug.cgi?id=164450

        Reviewed by Darin Adler.

        * fast/canvas/webgl/data-view-crash-expected.txt:
        * fast/canvas/webgl/data-view-test-expected.txt:
        Better error message.

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

        [MediaStream] apply constraints passed to getUserMedia()
        https://bugs.webkit.org/show_bug.cgi?id=164561

        Reviewed by Youenn Fablet.
        <rdar://problem/29191384>

        * fast/mediastream/MediaDevices-getUserMedia.html:
        * fast/mediastream/MediaStream-video-element-expected.txt:
        * fast/mediastream/MediaStream-video-element-track-stop-expected.txt:
        * fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
        * fast/mediastream/MediaStreamTrack-getSettings-expected.txt:

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

        Marking inspector/sampling-profiler tests as flaky timeouts.
        https://bugs.webkit.org/show_bug.cgi?id=164388

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Marking http/tests/cache/disk-cache/disk-cache-request-headers.html as flaky on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=164594

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Marking fast/loader/reload-zero-byte-plugin.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164570

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Unmarking storage/domstorage/sessionstorage/blocked-file-access.html.
        https://bugs.webkit.org/show_bug.cgi?id=164592

        Unreviewed test gardening after r208550.

        * TestExpectations:

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

        Add test that image load over default port using HTTP 0.9 protocol is blocked when page is
        served with a different HTTP version
        https://bugs.webkit.org/show_bug.cgi?id=164552

        Reviewed by Brent Fulgham.

        * http/tests/security/http-0.9/image-default-port-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/image-default-port-blocked.html: Added.

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

        REGRESSION (r195004): Scripts and plugins blocked for subsequent loads in same WebContent
        process after receiving HTTP 0.9 response
        https://bugs.webkit.org/show_bug.cgi?id=164387
        <rdar://problem/28987537>

        Reviewed by Brent Fulgham.

        Add a new test to ensure that the HTTP 0.9 sandbox policy does not persist across navigations.

        Unskip HTTP 0.9 tests and update expected results for existing tests as needed.

        * TestExpectations: Unskip the HTTP 0.9 tests.
        * http/tests/security/http-0.9/default-port-plugin-blocked-expected.txt: Remove duplicate console
        messages now that we emit the console message exactly once per document.
        * http/tests/security/http-0.9/default-port-script-blocked-expected.txt: Ditto.
        * http/tests/security/http-0.9/iframe-blocked-expected.txt: Update expected result now that we
        no longer emit a console message for a blocked load.
        * http/tests/security/http-0.9/image-blocked-expected.txt: Ditto.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed-expected.txt: Remove
        duplicate console messages now that we emit the console message exactly once per document.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-page-blocked-expected.txt: Ditto.
        * http/tests/security/http-0.9/resources/sandbox-should-not-persist-on-navigation.html: Added.
        * http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation-expected.txt: Added.
        * http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation.html: Added.
        * http/tests/security/http-0.9/worker-connect-src-blocked-expected.txt: Update expected result
        now that we no longer apply a sandbox policy to the main resource if a subresource had an HTTP 0.9
        response.
        * http/tests/security/http-0.9/worker-importScripts-blocked-expected.txt: Ditto.
        * http/tests/security/http-0.9/xhr-asynchronous-blocked-expected.txt: Ditto.

2016-11-04  Jiewen Tan  <jiewen_tan@apple.com>

        Update SubtleCrypto::importKey to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=164446
        <rdar://problem/29123621>

        Reviewed by Brent Fulgham.

        Besides adding test cases for SubtleCrypto::importKey. This patch also corrects a typo:
        generate-key-malformed-paramters*.

        * crypto/subtle/aes-cbc-import-jwk-key-length-128-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-length-128.html: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-length-192-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-length-192.html: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-length-256-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-length-256.html: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-minimum-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-minimum.html: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-non-extractable-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-jwk-key-non-extractable.html: Added.
        * crypto/subtle/aes-cbc-import-raw-key-length-128-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-raw-key-length-128.html: Added.
        * crypto/subtle/aes-cbc-import-raw-key-length-192-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-raw-key-length-192.html: Added.
        * crypto/subtle/aes-cbc-import-raw-key-length-256-expected.txt: Added.
        * crypto/subtle/aes-cbc-import-raw-key-length-256.html: Added.
        * crypto/subtle/aes-import-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/aes-import-key-malformed-parameters.html: Added.
        * crypto/subtle/aes-kw-import-jwk-key-length-128-expected.txt: Added.
        * crypto/subtle/aes-kw-import-jwk-key-length-128.html: Added.
        * crypto/subtle/aes-kw-import-jwk-key-length-192-expected.txt: Added.
        * crypto/subtle/aes-kw-import-jwk-key-length-192.html: Added.
        * crypto/subtle/aes-kw-import-jwk-key-length-256-expected.txt: Added.
        * crypto/subtle/aes-kw-import-jwk-key-length-256.html: Added.
        * crypto/subtle/aes-kw-import-raw-key-expected.txt: Added.
        * crypto/subtle/aes-kw-import-raw-key.html: Added.
        * crypto/subtle/generate-key-malformed-parameters-expected.txt: Renamed from LayoutTests/crypto/subtle/generate-key-malformed-paramters-expected.txt.
        * crypto/subtle/generate-key-malformed-parameters.html: Renamed from LayoutTests/crypto/subtle/generate-key-malformed-paramters.html.
        * crypto/subtle/hmac-generate-key-customized-length-expected.txt:
        * crypto/subtle/hmac-generate-key-customized-length.html:
        * crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt:
        * crypto/subtle/hmac-generate-key-malformed-parameters.html:
        * crypto/subtle/hmac-import-raw-key-customized-length-expected.txt:
        * crypto/subtle/hmac-import-raw-key-customized-length.html:
        * crypto/subtle/hmac-import-jwk-key-minimum-expected.txt: Added.
        * crypto/subtle/hmac-import-jwk-key-minimum.html: Added.
        * crypto/subtle/hmac-import-jwk-key-non-extractable-expected.txt: Added.
        * crypto/subtle/hmac-import-jwk-key-non-extractable.html: Added.
        * crypto/subtle/hmac-import-jwk-key-sha1-expected.txt: Added.
        * crypto/subtle/hmac-import-jwk-key-sha1.html: Added.
        * crypto/subtle/hmac-import-jwk-key-sha224-expected.txt: Added.
        * crypto/subtle/hmac-import-jwk-key-sha224.html: Added.
        * crypto/subtle/hmac-import-jwk-key-sha256-expected.txt: Added.
        * crypto/subtle/hmac-import-jwk-key-sha256.html: Added.
        * crypto/subtle/hmac-import-jwk-key-sha384-expected.txt: Added.
        * crypto/subtle/hmac-import-jwk-key-sha384.html: Added.
        * crypto/subtle/hmac-import-jwk-key-sha512-expected.txt: Added.
        * crypto/subtle/hmac-import-jwk-key-sha512.html: Added.
        * crypto/subtle/hmac-import-malformed-parameters-expected.txt: Added.
        * crypto/subtle/hmac-import-malformed-parameters.html: Added.
        * crypto/subtle/hmac-import-raw-key-customized-length-expected.txt: Added.
        * crypto/subtle/hmac-import-raw-key-customized-length.html: Added.
        * crypto/subtle/hmac-import-raw-key-expected.txt: Added.
        * crypto/subtle/hmac-import-raw-key.html: Added.
        * crypto/subtle/import-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/import-key-malformed-parameters.html: Added.
        * crypto/subtle/rsa-import-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/rsa-import-key-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-import-jwk-private-key-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-jwk-private-key.html: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha1-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha1.html: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha224-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha224.html: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha256-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha256.html: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha384-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha384.html: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha512-expected.txt: Added.
        * crypto/subtle/rsa-oaep-import-jwk-public-key-sha512.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-private-key-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-private-key.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-leading-zero-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-leading-zero.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-minimum-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-minimum.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-non-extractable-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-non-extractable.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-private-key-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-private-key.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha1-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha1.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha224-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha224.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha256-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha256.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha384-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha384.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha512-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha512.html: Added.
        * crypto/webkitSubtle/hmac-generate-key-expected.txt:
        * crypto/webkitSubtle/hmac-generate-key.html:
        * crypto/webkitSubtle/hmac-import-jwk-expected.txt:
        * crypto/webkitSubtle/hmac-import-jwk.html:
        * crypto/webkitSubtle/hmac-postMessage-expected.txt:
        * crypto/webkitSubtle/hmac-postMessage.html:
        * crypto/webkitSubtle/hmac-sign-verify-expected.txt:
        * crypto/webkitSubtle/hmac-sign-verify.html:
        * crypto/workers/subtle/aes-import-jwk-key-expected.txt: Added.
        * crypto/workers/subtle/aes-import-jwk-key.html: Added.
        * crypto/workers/subtle/aes-import-raw-key-expected.txt: Added.
        * crypto/workers/subtle/aes-import-raw-key.html: Added.
        * crypto/workers/subtle/hmac-import-jwk-key-expected.txt: Added.
        * crypto/workers/subtle/hmac-import-jwk-key.html: Added.
        * crypto/workers/subtle/hmac-import-raw-key-expected.txt: Added.
        * crypto/workers/subtle/hmac-import-raw-key.html: Added.
        * crypto/workers/subtle/hmac-postMessage-worker-expected.txt:
        * crypto/workers/subtle/hmac-postMessage-worker.html:
        * crypto/workers/subtle/resources/aes-import-jwk-key.js: Added.
        * crypto/workers/subtle/resources/aes-import-raw-key.js: Added.
        * crypto/workers/subtle/resources/hmac-import-jwk-key.js: Added.
        * crypto/workers/subtle/resources/hmac-import-raw-key.js: Added.
        * crypto/workers/subtle/resources/hmac-postMessage-worker.js:
        * crypto/workers/subtle/resources/rsa-import-jwk-private-key.js: Added.
        * crypto/workers/subtle/resources/rsa-import-jwk-public-key.js: Added.
        * crypto/workers/subtle/rsa-import-jwk-private-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-import-jwk-private-key.html: Added.
        * crypto/workers/subtle/rsa-import-jwk-public-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-import-jwk-public-key.html: Added.

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

        Marking media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164598

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Temporarily marking storage/domstorage/sessionstorage/blocked-file-access.html as failing.
        https://bugs.webkit.org/show_bug.cgi?id=164592

        Unreviewed test gardening.

        * TestExpectations:

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

        Web Inspector: AXI: clarify button roles (e.g. toggle or popup button)
        https://bugs.webkit.org/show_bug.cgi?id=130726
        <rdar://problem/16420420>

        Reviewed by Brian Burg.

        Updated related test cases.

        * accessibility/roles-computedRoleString-expected.txt:
        * accessibility/roles-computedRoleString.html:
        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
        * inspector/dom/getAccessibilityPropertiesForNode.html:
        * platform/mac/accessibility/roles-computedRoleString-expected.txt:

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

        [Modern Media Controls] Media Controller: update controls based on fullscreen playback on macOS
        https://bugs.webkit.org/show_bug.cgi?id=164554
        <rdar://problem/29183439>

        Reviewed by Dean Jackson.

        Adding a new test to check that we use fullscreen controls on macOS once we've entered fullscreen.

        * media/modern-media-controls/media-controller/media-controller-fullscreen-change-expected.txt: Added.
        * media/modern-media-controls/media-controller/media-controller-fullscreen-change.html: Added.
        * platform/ios-simulator/TestExpectations:

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

        [css-grid] Fix fr tracks sizing under min|max-size constraints
        https://bugs.webkit.org/show_bug.cgi?id=150674

        Reviewed by Darin Adler.

        * fast/css-grid-layout/flex-sizing-columns-min-max-width-expected.txt: Added.
        * fast/css-grid-layout/flex-sizing-columns-min-max-width.html: Added.
        * fast/css-grid-layout/flex-sizing-rows-min-max-height-expected.txt: Added.
        * fast/css-grid-layout/flex-sizing-rows-min-max-height.html: Added.

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

        WebHTMLView's _attributeStringFromDOMRange should use HTMLConverter instead of NSAttributedString's _initWithDOMRange
        https://bugs.webkit.org/show_bug.cgi?id=164501
        <rdar://problem/29152282>

        Reviewed by Sam Weinig.

        Prior to this patch, attributed-string tests were inadvertently testing NSAttributedString's _initWithDOMRange
        instead of HTMLConverter as intended because _attributeStringFromDOMRange was using _initWithDOMRange.

        This patch aliens [WebHTMLView attributedString] to what we use on copy & paste by using HTMLConverter instead.
        The rebaselined done below highlights the existing behavior difference between AppKit's converter and HTMLConverter.

        I've manually confirmed that these test results didn't change across the large refactoring as seen in:
        https://trac.webkit.org/log/trunk/Source/WebCore/platform/mac/HTMLConverter.mm?rev=166145

        * editing/mac/attributed-string/anchor-element-expected.txt:
        * editing/mac/attributed-string/basic-expected.txt:
        * editing/mac/attributed-string/font-size-expected.txt:
        * editing/mac/attributed-string/font-style-variant-effect-expected.txt:
        * editing/mac/attributed-string/font-weight-expected.txt:
        * editing/mac/attributed-string/letter-spacing-expected.txt:
        * editing/mac/attributed-string/text-decorations-expected.txt:
        * editing/mac/attributed-string/vertical-align-expected.txt:
        * platform/mac-elcapitan/editing/mac/attributed-string/font-style-variant-effect-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/anchor-element-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/basic-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/font-size-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/font-style-variant-effect-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/font-weight-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/letter-spacing-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/text-decorations-expected.txt:
        * platform/mac-yosemite/editing/mac/attributed-string/vertical-align-expected.txt:

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

        [WK2][!NETWORK_SESSION] Add support for downloading file backed blobs
        https://bugs.webkit.org/show_bug.cgi?id=164522

        Reviewed by Alex Christensen.

        Unskip corresponding tests now that they pass on Yosemite and El Capitan.

        * platform/mac-wk2/TestExpectations:

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

        Web Inspector: DebuggerManager.Event.Resumed introduces test flakiness
        https://bugs.webkit.org/show_bug.cgi?id=161951
        <rdar://problem/28295767>

        Reviewed by Brian Burg.

        Rewrite tests to be more deterministic. For tests that
        relied on a Resumed event to happen after a short amount
        of time, instead have the test dispatch an event when it is
        appropriate to continue. Take this opportunity to rewrite
        some tests using new style and best practices.

        * inspector/debugger/break-in-constructor-before-super.html:
        * inspector/debugger/break-on-exception-throw-in-promise.html:
        * inspector/debugger/break-on-exception.html:
        * inspector/debugger/break-on-uncaught-exception-throw-in-promise.html:
        * inspector/debugger/break-on-uncaught-exception.html:
        * inspector/debugger/breakpoint-syntax-error-top-level.html:
        * inspector/debugger/command-line-api-exception-expected.txt:
        * inspector/debugger/command-line-api-exception-nested-catch.html:
        * inspector/debugger/command-line-api-exception.html:
        * inspector/debugger/csp-exceptions.html:
        * inspector/debugger/didSampleProbe-multiple-probes.html:
        * inspector/debugger/evaluateOnCallFrame-CommandLineAPI.html:
        * inspector/debugger/evaluateOnCallFrame-errors.html:
        * inspector/debugger/pause-reason-expected.txt:
        * inspector/debugger/pause-reason.html:
        * inspector/debugger/paused-scopes-expected.txt:
        * inspector/debugger/paused-scopes.html:
        * inspector/debugger/resources/exceptions.js:
        * inspector/debugger/scriptParsed.html:
        * inspector/debugger/sourceURL-repeated-identical-executions.html:
        * inspector/debugger/sourceURLs.html:
        * inspector/debugger/stepping/stepping-pause-in-inner-step-to-parent.html:

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

        [WK2][NETWORK_SESSION] Add support for downloading file backed blobs
        https://bugs.webkit.org/show_bug.cgi?id=164458
        <rdar://problem/28905514>

        Reviewed by Darin Adler.

        Add layout test coverage for downloading blobs, both via <a download> or
        because a load is later converted into a download.

        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download.html: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download.html: Added.
        * platform/ios-simulator-wk1/TestExpectations:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        Web Inspector: Associate Worker Resources with the Worker and not the Page
        https://bugs.webkit.org/show_bug.cgi?id=164342
        <rdar://problem/29075775>

        Reviewed by Timothy Hatcher.

        * inspector/worker/resources-in-worker-expected.txt: Added.
        * inspector/worker/resources-in-worker.html: Added.
        * inspector/worker/resources/dataFetch.json: Added.
        * inspector/worker/resources/dataXHR.json: Added.
        * inspector/worker/resources/resource-utilities.js: Added.
        (loadResourceXHR):
        (loadResourceFetch):
        * inspector/worker/resources/worker-resources.js: Added.
        (importScript):
        (onmessage):

2016-11-09  Brent Fulgham  <bfulgham@apple.com>

        Windows localStorage tests will fail until Bug 155185 is fixed.
        https://bugs.webkit.org/show_bug.cgi?id=155185

        * platform/win/TestExpectations: Mark localStorage tests as expected
        to fail for now.

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

        Marking media/modern-media-controls/pip-support/pip-support-enabled.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164336

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Unreviewed, rolling out r208438.

        crashes

        Reverted changeset:

        "[WK2][NETWORK_SESSION] Add support for downloading file
        backed blobs"
        https://bugs.webkit.org/show_bug.cgi?id=164458
        http://trac.webkit.org/changeset/208438

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

        Marking two media/modern-media-controls tests as flaky.

        Unreviewed test gardening.

        * TestExpectations:
        * platform/mac/TestExpectations:

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

        Change the decoding for some animated images to be asynchronous
        https://bugs.webkit.org/show_bug.cgi?id=161566

        Reviewed by Simon Fraser.

        * fast/images/slower-animation-than-decoding-image-expected.txt: Added.
        * fast/images/slower-animation-than-decoding-image.html: Added.
        * fast/images/slower-decoding-than-animation-image-expected.txt: Added.
        * fast/images/slower-decoding-than-animation-image.html: Added.
        In these tests, CanvasRenderingContext2D.drawImage() is used to better
        control advancing the animation of an animated image. A setTimeout() is
        used instead of the frame duration to schedule when the drawing happens.
        The first test ensures that faster decoding does not overrule the frame
        duration; the setTimeout interval in this case. The second test ensures
        the animation is not advanced unless decoding the next frame has finished.

        * fast/images/stopped-animation-deleted-image-expected.txt: Added.
        * fast/images/stopped-animation-deleted-image.html: Added.
        This test ensures that if an animated image is removed from the document,
        its draw() method won't be called even if the animation timer fires or the
        decoding new frame availability notification is received.

2016-11-04  Brent Fulgham  <bfulgham@apple.com>

        Local HTML should be blocked from localStorage access unless "Disable Local File Restrictions" is checked
        https://bugs.webkit.org/show_bug.cgi?id=155185
        <rdar://problem/11101440>

        Reviewed by Brady Eidson.

        * storage/domstorage/localstorage/blocked-file-access-expected.txt: Added.
        * storage/domstorage/localstorage/blocked-file-access-permitted-by-quirk-expected.txt: Added.
        * storage/domstorage/localstorage/blocked-file-access-permitted-by-quirk.html: Added.
        * storage/domstorage/localstorage/blocked-file-access.html: Added.
        * storage/domstorage/localstorage/resources/allowed-example.html: Added.
        * storage/domstorage/localstorage/resources/blocked-example.html: Added.

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

        URLParser should not consider path of URLs with no host to start at the first slash after the colon
        https://bugs.webkit.org/show_bug.cgi?id=164555

        Reviewed by Tim Horton.

        * fast/url/segments-expected.txt:
        * fast/url/segments-from-data-url-expected.txt:
        * fast/loader/url-parse-1-expected.txt:
        * fetch/fetch-url-serialization-expected.txt:

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

        Implement visual-viewport based position:fixed handling for Mac async scrolling
        https://bugs.webkit.org/show_bug.cgi?id=164495

        Reviewed by Tim Horton.

        Tests that dump the scrolling state tree, and the layer tree.

        * TestExpectations:
        * compositing/tiling/visiblerect-accumulated-offset.html: Added.
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt: Added.
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt: Added.
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up.html: Added.
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down.html: Added.
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt: Added.
        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html: Added.
        * platform/mac-wk2/TestExpectations:
        * platform/mac/compositing/tiling/visiblerect-accumulated-offset-expected.txt: Added.

2016-11-09  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Implement new IDBCursor.continuePrimaryKey function.
        https://bugs.webkit.org/show_bug.cgi?id=164404

        Reviewed by Alex Christensen.

        * storage/indexeddb/cursor-basics-expected.txt:
        * storage/indexeddb/cursor-basics-private-expected.txt:
        * storage/indexeddb/modern/idbcursor-continue-primary-key-1-expected.txt: Added.
        * storage/indexeddb/modern/idbcursor-continue-primary-key-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbcursor-continue-primary-key-1-private.html: Added.
        * storage/indexeddb/modern/idbcursor-continue-primary-key-1.html: Added.
        * storage/indexeddb/modern/resources/idbcursor-continue-primary-key-1.js: Added.

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

        [Modern Media Controls] Media Controller: set status label according to media state
        https://bugs.webkit.org/show_bug.cgi?id=164557
        <rdar://problem/29184097>

        Reviewed by Dean Jackson.

        Add new tests to check that we display the expected StatusLabel text when the media is in the
        "Loading", "Error" and "Live Broadcast" states.

        * http/tests/media/modern-media-controls/status-support/status-support-live-broadcast-expected.txt: Added.
        * http/tests/media/modern-media-controls/status-support/status-support-live-broadcast.html: Added.
        * http/tests/media/modern-media-controls/status-support/status-support-loading-expected.txt: Added.
        * http/tests/media/modern-media-controls/status-support/status-support-loading.html: Added.
        * media/modern-media-controls/status-support/status-support-error-expected.txt: Added.
        * media/modern-media-controls/status-support/status-support-error.html: Added.

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

        [DOMJIT] Implement Node::ownerDocument
        https://bugs.webkit.org/show_bug.cgi?id=164004

        Reviewed by Darin Adler.

        * js/dom/domjit-accessor-owner-document-expected.txt: Added.
        * js/dom/domjit-accessor-owner-document.html: Added.

2016-11-09  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Fix grid layout parsing
        https://bugs.webkit.org/show_bug.cgi?id=164489

        Reviewed by Dean Jackson.

        * fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html:

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

        Correct a typo in the name of a flaky test.
        https://bugs.webkit.org/show_bug.cgi?id=164388

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Add test infrastructure and tests for existing HTTP 0.9 sandbox machinery
        https://bugs.webkit.org/show_bug.cgi?id=164389
        <rdar://problem/29101072>

        Reviewed by Alex Christensen.

        Add tests for the existing HTTP 0.9 sandbox machinery. Until we fix <https://bugs.webkit.org/show_bug.cgi?id=164387>,
        these tests can only be run singly (i.e. pass --run-singly to run-webkit-tests). So, we skip
        these tests to avoid test failures when run-webkit-tests runs in parallel mode (the default
        mode and the mode used on the buildbots).

        * TestExpectations:
        * http/tests/security/http-0.9/default-port-plugin-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/default-port-plugin-blocked.html: Added.
        * http/tests/security/http-0.9/default-port-script-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/default-port-script-blocked.html: Added.
        * http/tests/security/http-0.9/iframe-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/iframe-blocked.html: Added.
        * http/tests/security/http-0.9/image-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/image-blocked.html: Added.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed-expected.txt: Added.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed-ref-test-expected.html: Added.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed-ref-test.html: Added.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-default-port-page-allowed.html: Added.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-page-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/image-on-HTTP-0.9-page-blocked.html: Added.
        * http/tests/security/http-0.9/resources/blue-square.png: Added.
        * http/tests/security/http-0.9/resources/nph-alert-fail.pl: Added.
        * http/tests/security/http-0.9/resources/nph-fail.pl: Added.
        * http/tests/security/http-0.9/resources/nph-image-on-HTTP-0.9-default-port-page-allowed.pl: Added.
        * http/tests/security/http-0.9/resources/nph-image-on-HTTP-0.9-page-blocked.pl: Added.
        * http/tests/security/http-0.9/resources/nph-image.pl: Added.
        * http/tests/security/http-0.9/resources/nph-load-plugin-fail.pl: Added.
        * http/tests/security/http-0.9/resources/nph-worker-fail.pl: Added.
        * http/tests/security/http-0.9/worker-connect-src-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/worker-connect-src-blocked.html: Added.
        * http/tests/security/http-0.9/worker-importScripts-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/worker-importScripts-blocked.html: Added.
        * http/tests/security/http-0.9/xhr-asynchronous-blocked-expected.txt: Added.
        * http/tests/security/http-0.9/xhr-asynchronous-blocked.html: Added.

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

        When editing IME, `compositionend` events should fire after input events
        https://bugs.webkit.org/show_bug.cgi?id=164324
        <rdar://problem/29050438>

        Reviewed by Darin Adler.

        Augments fast/events/input-events-ime-recomposition.html and fast/events/input-events-ime-composition.html to
        verify that compositionend events are fired after input events. Also rebaselines
        fast/events/ime-composition-events-001.html.

        * fast/events/ime-composition-events-001-expected.txt:
        * fast/events/input-events-ime-composition-expected.txt:
        * fast/events/input-events-ime-composition.html:
        * fast/events/input-events-ime-recomposition-expected.txt:
        * fast/events/input-events-ime-recomposition.html:

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

        Setting foreground color when text is selected should fire an input event with color data
        https://bugs.webkit.org/show_bug.cgi?id=164241
        <rdar://problem/29032759>

        Reviewed by Darin Adler.

        Adds a new layout test verifying that selecting text and setting its foreground color will fire input events
        with the correct RGB values in the data attribute.

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

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

        Rendering support for ExtendedColors
        https://bugs.webkit.org/show_bug.cgi?id=164443
        <rdar://problems/29123243>

        Reviewed by Simon Fraser and Darin Adler.

        Tests that use the new color() syntax.

        * css3/color/backgrounds-and-borders-expected.html: Added.
        * css3/color/backgrounds-and-borders.html: Added.
        * css3/color/box-shadows-expected.html: Added.
        * css3/color/box-shadows.html: Added.
        * css3/color/canvas-expected.html: Added.
        * css3/color/canvas.html: Added.
        * css3/color/composited-solid-backgrounds-expected.html: Added.
        * css3/color/composited-solid-backgrounds.html: Added.
        * css3/color/text-expected.html: Added.
        * css3/color/text.html: Added.
        * editing/mac/attributed-string/anchor-element-expected.txt: Updated.
        * editing/mac/attributed-string/basic-expected.txt:

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

        [Modern Media Controls] UI Library: StatusLabel
        https://bugs.webkit.org/show_bug.cgi?id=164544
        <rdar://problem/29179541>

        Reviewed by Dean Jackson.

        Adding new tests for the core properties of the new StatusLabel class, as well as adding a test
        to check we use the correct layout when the StatusLabel has its text set and the time controls
        needs to be replaced with it. We also make a few existing tests use the script loader so that
        they continue to pass with the addition of a new JS class.

        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label-expected.txt: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
        * media/modern-media-controls/macos-media-controls/macos-media-controls.html:
        * media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
        * media/modern-media-controls/media-controls/media-controls-constructor.html:
        * media/modern-media-controls/media-controls/media-controls-placard.html:
        * media/modern-media-controls/media-controls/media-controls-start-button.html:
        * media/modern-media-controls/resources/media-controls-loader.js:
        * media/modern-media-controls/status-label/status-label-expected.txt: Added.
        * media/modern-media-controls/status-label/status-label.html: Added.

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

        [Modern Media Controls] UI Library: iOS inline controls
        https://bugs.webkit.org/show_bug.cgi?id=164513
        <rdar://problem/27989475>

        Reviewed by Dean Jackson.

        Adding new tests for the IOSInlineMediaControls class.

        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles-expected.txt: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles.html: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor-expected.txt: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor.html: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles-expected.txt: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles.html: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout-expected.txt: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout.html: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles-expected.txt: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles.html: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls-expected.txt: Added.
        * media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html: Added.
        * media/modern-media-controls/resources/media-controls-loader.js:

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

        LayoutTest fast/visual-viewport/rtl-zoomed-rects.html failing
        https://bugs.webkit.org/show_bug.cgi?id=164491

        Mark fast/visual-viewport/rtl-zoomed-rects.html as failing on Yosemite and El Capitan
        in WK1.

        * platform/mac-wk1/TestExpectations:

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

        Use Blob URL instead of webkit-fake-url when pasting an image
        https://bugs.webkit.org/show_bug.cgi?id=49141

        Reviewed by Darin Adler.

        Add layout test coverage checking that the image shows as expected and that the
        resulting URL is indeed a Blob URL.

        * editing/pasteboard/paste-image-as-blob-url-expected.txt: Added.
        * editing/pasteboard/paste-image-as-blob-url.html: Added.
        * editing/pasteboard/paste-image-using-image-data-expected.html: Added.
        * editing/pasteboard/paste-image-using-image-data.html: Added.

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

        [JSC] The implementation of 8 bit operation in MacroAssembler should care about uint8_t / int8_t
        https://bugs.webkit.org/show_bug.cgi?id=164432

        Reviewed by Michael Saboff.

        Use ownerDocument. Once DOMJIT for ownerDocument is landed, this will use branch8.

        * js/dom/domjit-accessor-owner-document-type-check-expected.txt: Added.
        * js/dom/domjit-accessor-owner-document-type-check.html: Added.

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

        [Modern Media Controls] UI Library: macOS fullscreen controls
        https://bugs.webkit.org/show_bug.cgi?id=164414
        <rdar://problem/27989474>

        Reviewed by Dean Jackson.

        Adding new tests for the MacOSFullscreenMediaControls class as well as making other tests
        adopt the media-controls-loader.js utility.

        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles.html: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt: Added.
        * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html: Added.
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
        * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
        * media/modern-media-controls/macos-media-controls/macos-media-controls.html:
        * media/modern-media-controls/media-controls/media-controls-constructor.html:
        * media/modern-media-controls/media-controls/media-controls-placard.html:
        * media/modern-media-controls/media-controls/media-controls-start-button.html:
        * media/modern-media-controls/resources/media-controls-loader.js:

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

        Add test coverage for radiusX / radiusY in WebPlatformTouchPoint.
        https://bugs.webkit.org/show_bug.cgi?id=162801
        <rdar://problem/28807455>

        Reviewed by Darin Adler.

        Add test coverage for radiusX / radiusY in WebPlatformTouchPoint.

        * fast/events/touch/ios/touch-event-radius-expected.txt: Added.
        * fast/events/touch/ios/touch-event-radius.html: Added.

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

        [WebRTC] Introduce asynchronous backend for other RTCPeerConnection API
        https://bugs.webkit.org/show_bug.cgi?id=164409

        Reviewed by Eric Carlson.

        Rebasing test as patch changes the order in which error cases are checked in case of setRemoteDescription/setLocalDescription.
        New order tries to follow more closely https://www.w3.org/TR/webrtc/#set-description.

        * fast/mediastream/RTCPeerConnection-stable-expected.txt:

2016-11-09  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [ATK] Wrong selected element at a given index in a list box (redux)
        https://bugs.webkit.org/show_bug.cgi?id=164430

        Reviewed by Darin Adler.

        Add tests to ensure listboxes with no selected children do not report
        a selected child. Modify select-element-at-index.html to reflect the
        corrected behavior for ATK. Move the Mac port's expectations to the
        shared expectations.

        * accessibility/aria-listbox-no-selection-expected.txt: Added.
        * accessibility/aria-listbox-no-selection.html: Added.
        * accessibility/native-listbox-no-selection-expected.txt: Added.
        * accessibility/native-listbox-no-selection.html: Added.
        * accessibility/select-element-at-index-expected.txt: Modified.
        * accessibility/select-element-at-index.html: Modified.
        * platform/mac/accessibility/select-element-at-index-expected.txt: Removed.

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

        [WK2][NETWORK_SESSION] Add support for downloading file backed blobs
        https://bugs.webkit.org/show_bug.cgi?id=164458
        <rdar://problem/28905514>

        Reviewed by Darin Adler.

        Add layout test coverage for downloading blobs, both via <a download> or
        because a load is later converted into a download.

        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download.html: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/anchor-file-blob-download.html: Added.
        * platform/ios-simulator-wk1/TestExpectations:
        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/win/TestExpectations:

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

        [WK2] Network cache speculative revalidation can cause loads to hang
        https://bugs.webkit.org/show_bug.cgi?id=164532
        <rdar://problem/28519331>

        Reviewed by Alex Christensen.

        Add layout test coverage. The test hangs without the fix.

        * http/tests/cache/disk-cache/speculative-validation/http-auth-expected.txt: Added.
        * http/tests/cache/disk-cache/speculative-validation/http-auth.html: Added.
        * http/tests/cache/disk-cache/speculative-validation/resources/frame-with-authenticated-resource.php: Added.
        * http/tests/cache/disk-cache/speculative-validation/resources/resource-with-auth.php: Added.

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

        Unreviewed, rolling out r208422.

        Roll r208382 back in since it was not responsible for the API
        test failures seen on macOS.

        Reverted changeset:

        "Unreviewed, rolling out r208382."
        https://bugs.webkit.org/show_bug.cgi?id=164319
        http://trac.webkit.org/changeset/208422

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

        Unreviewed, rolling out r208382.

        This change appears to have caused 3
        SerializedCryptoKeyWrapTest API tests to fail on macOS.

        Reverted changeset:

        "[Readable Streams API] Implement ByteStreamController
        error()"
        https://bugs.webkit.org/show_bug.cgi?id=164319
        http://trac.webkit.org/changeset/208382

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

        Removing flaky expectations for tests that were fixed with r208327.
        https://bugs.webkit.org/show_bug.cgi?id=164034

        Unreviewed test gardening.

        * TestExpectations:
        * platform/mac/TestExpectations:

2016-11-05  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] Layout test http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials.html fails
        https://bugs.webkit.org/show_bug.cgi?id=139358

        Reviewed by Michael Catanzaro.

        * platform/gtk/TestExpectations: Unskip http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials.html.

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

        [DOMJIT] Add DOMJIT::Signature annotation to Document::getElementById
        https://bugs.webkit.org/show_bug.cgi?id=164356

        Reviewed by Filip Pizlo.

        * js/dom/domjit-function-get-element-by-id-changed-expected.txt: Added.
        * js/dom/domjit-function-get-element-by-id-changed.html: Added.
        * js/dom/domjit-function-get-element-by-id-expected.txt: Added.
        * js/dom/domjit-function-get-element-by-id-licm-expected.txt: Added.
        * js/dom/domjit-function-get-element-by-id-licm.html: Added.
        * js/dom/domjit-function-get-element-by-id.html: Added.

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

        Layout viewport wrong with RTL documents
        https://bugs.webkit.org/show_bug.cgi?id=164434

        Reviewed by Tim Horton.

        * fast/visual-viewport/rtl-nonzoomed-rects-expected.txt: Added.
        * fast/visual-viewport/rtl-nonzoomed-rects.html: Added.
        * fast/visual-viewport/rtl-zoomed-rects-expected.txt: Added.
        * fast/visual-viewport/rtl-zoomed-rects.html: Added.
        * platform/ios-simulator/fast/visual-viewport/rtl-nonzoomed-rects-expected.txt: Added.
        * platform/ios-simulator/fast/visual-viewport/rtl-zoomed-rects-expected.txt: Added.
        * platform/mac-wk1/fast/visual-viewport/rtl-zoomed-rects-expected.txt: Added. WK1 and RTL are weird.

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

        Safari does not emit composition end if blurred for dead key / Japanese IME
        https://bugs.webkit.org/show_bug.cgi?id=164369
        <rdar://problem/29050439>

        Reviewed by Ryosuke Niwa.

        Adds a new test verifying that we dispatch `compositionend` events in various circumstances:
            1. After composing in an editable area and then focusing another editable area.
            2. After composing in an editable area and then blur()-ing.
            3. After composing in an editable area and then changing the selection.

        There should be no behavior change for other platforms, so no new tests are needed there with this change.

        * fast/events/ime-compositionend-on-selection-change-expected.txt: Added.
        * fast/events/ime-compositionend-on-selection-change.html: Added.
        * platform/ios-simulator/TestExpectations:

2016-11-04  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Clean up more transaction abort and exception throwing behavior from IDBObjectStore.
        https://bugs.webkit.org/show_bug.cgi?id=164424

        Reviewed by Alex Christensen.

        * storage/indexeddb/resources/transaction-basics.js:
        * storage/indexeddb/transaction-basics-expected.txt:
        * storage/indexeddb/transaction-basics-private-expected.txt:

2016-11-04  Ryosuke Niwa  <rniwa@webkit.org>

        Load stylesheets in link elements inside a connected shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=160683
        <rdar://problem/29040652>

        Reviewed by Antti Koivisto.

        Added W3C style testharness.js tests for loading stylesheets via a link element inside a ahadow tree.

        * fast/shadow-dom/link-element-in-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/link-element-in-shadow-tree.html: Added.
        * fast/shadow-dom/resources/green-host.css: Added.
        * fast/shadow-dom/selected-stylesheet-in-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/selected-stylesheet-in-shadow-tree.html: Added.

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

        Add layout test for input.setCustomValidity()
        https://bugs.webkit.org/show_bug.cgi?id=164419

        Reviewed by Simon Fraser.

        Add layout test for input.setCustomValidity().

        * fast/forms/validation-custom-message-expected.txt: Added.
        * fast/forms/validation-custom-message.html: Added.

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

        Implement WebGL2RenderingContext::copyBufferSubData()
        https://bugs.webkit.org/show_bug.cgi?id=164008

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/copyBufferSubData-expected.txt: Added.
        * fast/canvas/webgl/copyBufferSubData.html: Added.

2016-11-04  Antti Koivisto  <antti@apple.com>

        slotted() pseudo does not work with ID selector
        https://bugs.webkit.org/show_bug.cgi?id=160538
        <rdar://problem/28534529>

        Reviewed by Andreas Kling.

        * fast/shadow-dom/css-scoping-slot-with-id-expected.html: Added.
        * fast/shadow-dom/css-scoping-slot-with-id.html: Added.


2016-11-04  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Use IDB-specific exceptions in places where the generic exceptions are currently used.
        https://bugs.webkit.org/show_bug.cgi?id=164406

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/index-rename-1-expected.txt:
        * storage/indexeddb/modern/index-rename-1-private-expected.txt:
        * storage/indexeddb/modern/objectstore-rename-1-expected.txt:
        * storage/indexeddb/modern/objectstore-rename-1-private-expected.txt:

2016-11-04  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [ATK] Attempting to clear selection on ARIA listboxes results in crash
        https://bugs.webkit.org/show_bug.cgi?id=164331

        Reviewed by Chris Fleizach.

        Add tests to verify clearing selection works for native listboxes, and does not
        crash for ARIA listboxes. These tests are being skipped for the Mac and Win ports
        which do not yet implement AccessibilityUIElement::clearSelectedChildren().

        * accessibility/aria-listbox-clear-selection-crash-expected.txt: Added.
        * accessibility/aria-listbox-clear-selection-crash.html: Added.
        * accessibility/listbox-clear-selection-expected.txt: Added.
        * accessibility/listbox-clear-selection.html: Added.
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2016-11-04  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Throw the correct exceptions during IDBObjectStore/IDBIndex renaming.
        https://bugs.webkit.org/show_bug.cgi?id=164405

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/index-rename-1-expected.txt:
        * storage/indexeddb/modern/index-rename-1-private-expected.txt:
        * storage/indexeddb/modern/objectstore-rename-1-expected.txt:
        * storage/indexeddb/modern/objectstore-rename-1-private-expected.txt:

2016-11-04  Romain Bellessort  <romain.bellessort@crf.canon.fr>

        [Readable Streams API] Implement ByteStreamController error()
        https://bugs.webkit.org/show_bug.cgi?id=164319

        Reviewed by Youenn Fablet.

        Updated test expectation for error() test (previously FAIL, now PASS).
        Added IDL-related tests for ReadableByteStreamController.

        * streams/readable-byte-stream-controller-expected.txt:

2016-11-04  Per Arne Vollan  <pvollan@apple.com>

        [Win] Page visibility tests are timing out.
        https://bugs.webkit.org/show_bug.cgi?id=164363

        Reviewed by Brent Fulgham.

        Unskip page visibility tests.

        * platform/win/TestExpectations:

2016-11-03  Antti Koivisto  <antti@apple.com>

        REGRESSION (r207669): Crash under SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending
        https://bugs.webkit.org/show_bug.cgi?id=164381
        <rdar://problem/28935401>

        Reviewed by Simon Fraser.

        * media/media-controls-shadow-construction-crash-expected.txt: Added.
        * media/media-controls-shadow-construction-crash.html: Added.

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

        [WebGL2] Implement getBufferSubData()
        https://bugs.webkit.org/show_bug.cgi?id=164111

        Reviewed by Dean Jackson.

        Test every successful download/upload combination I can think of.

        * fast/canvas/webgl/getBufferSubData-webgl1.html: Added.
        * fast/canvas/webgl/getBufferSubData-webgl1-expected.txt: Added.
        * fast/canvas/webgl/webgl2-buffers-expected.txt: Added.
        * fast/canvas/webgl/webgl2-buffers.html: Added.

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

        [WK2][Cocoa] Implement user interface for HTML form validation
        https://bugs.webkit.org/show_bug.cgi?id=164143
        <rdar://problem/28944652>

        Reviewed by Simon Fraser.

        * fast/forms/validation-messages-expected.txt: Added.
        * fast/forms/validation-messages.html: Added.
        Add layout test coverage for checking that the right validation messages
        are displayed when submitting forms with constraint violations. More
        testing will be landed in follow up to cover other things besides the
        messages (e.g. when does the bubble disappear).

        * platform/mac-wk1/TestExpectations:
        Skip new test on WebKit1 because the feature is WebKit2 only at the
        moment.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/mac-wk2/TestExpectations:
        Skip tests for the Shadow DOM based HTML form validation UI on
        Mac and iOS WK2 now that those ports use native popovers instead.

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

        Update custom elements tests
        https://bugs.webkit.org/show_bug.cgi?id=164352

        Reviewed by Antti Koivisto.
        
        Removed tests that have been back imported via web-platform-tests.

        * fast/custom-elements/custom-element-reaction-queue-expected.txt: Removed.
        * fast/custom-elements/custom-element-reaction-queue.html: Removed.
        * fast/custom-elements/reactions-for-webkit-extensions.html:
        * fast/custom-elements/reactions/: Removed.
        * fast/custom-elements/resources/additional-helpers.js: Removed.
        * fast/custom-elements/upgrading-enqueue-reactions-expected.txt: Removed.
        * fast/custom-elements/upgrading-enqueue-reactions.html: Removed.

2016-11-03  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Rename IDBKeyRange.contains to IDBKeyRange.includes.
        https://bugs.webkit.org/show_bug.cgi?id=164383

        Reviewed by Beth Dakin.

        * storage/indexeddb/resources/keyrange.js:

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

        Marking two inspector/sampling-profiler tests as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164388

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Unreviewed, rolling out r208302.

        This change causes LayoutTest crashes under GuardMalloc.

        Reverted changeset:

        "Load stylesheets in link elements inside a connected shadow
        tree"
        https://bugs.webkit.org/show_bug.cgi?id=160683
        http://trac.webkit.org/changeset/208302

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

        Unreviewed, rolling out due to crash in Amazon web site
        https://bugs.webkit.org/show_bug.cgi?id=164380
        <rdar://problem/29094221>

        * js/dom/domjit-accessor-owner-document-expected.txt: Removed.
        * js/dom/domjit-accessor-owner-document.html: Removed.

2016-11-03  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support binary keys.
        <rdar://problem/28806927> and https://bugs.webkit.org/show_bug.cgi?id=164359

        Reviewed by Alex Christensen.

        * storage/indexeddb/factory-cmp-expected.txt:
        * storage/indexeddb/factory-cmp-private-expected.txt:
        * storage/indexeddb/key-type-binary-expected.txt:
        * storage/indexeddb/key-type-binary-private-expected.txt:
        * storage/indexeddb/modern/binary-keys-1-expected.txt: Added.
        * storage/indexeddb/modern/binary-keys-1-private-expected.txt: Added.
        * storage/indexeddb/modern/binary-keys-1-private.html: Added.
        * storage/indexeddb/modern/binary-keys-1.html: Added.
        * storage/indexeddb/modern/resources/binary-keys-1.js: Added.
        * storage/indexeddb/resources/factory-cmp.js:
        * storage/indexeddb/resources/key-type-binary.js:

2016-11-02  Myles C. Maxfield  <mmaxfield@apple.com>

        CSS.supports("font-variation-settings", "'wght' 500") erroneously returns false
        https://bugs.webkit.org/show_bug.cgi?id=164244

        Reviewed by Michael Catanzaro.

        * fast/text/variations/css-supports-runtime-switch-expected.txt: Added.
        * fast/text/variations/css-supports-runtime-switch.html: Added.

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

        [DOMJIT] Add DOMJIT::Signature
        https://bugs.webkit.org/show_bug.cgi?id=162980

        Reviewed by Saam Barati and Sam Weinig.

        * js/dom/domjit-accessor-licm.html:
        * js/dom/domjit-function-effect-should-overlap-with-call-expected.txt: Added.
        * js/dom/domjit-function-effect-should-overlap-with-call.html: Added.
        * js/dom/domjit-function-expected.txt: Added.
        * js/dom/domjit-function-licm-expected.txt: Added.
        * js/dom/domjit-function-licm.html: Copied from LayoutTests/js/dom/domjit-accessor-licm.html.
        * js/dom/domjit-function-type-contradiction-expected.txt: Added.
        * js/dom/domjit-function-type-contradiction.html: Copied from LayoutTests/js/dom/domjit-accessor-licm.html.
        * js/dom/domjit-function-type-failure-expected.txt: Added.
        * js/dom/domjit-function-type-failure.html: Copied from LayoutTests/js/dom/domjit-accessor-licm.html.
        * js/dom/domjit-function.html: Added.

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

        Marking imported/mozilla/svg/paint-order-01.svg and imported/mozilla/svg/paint-order-02.svg as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164355

        Unreviewed test gardening.

        * TestExpectations:

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

        Marking fast/css/attribute-for-content-property-style-update-xhtml.xhtml as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164162

        Unreviewed test gardening.

        * TestExpectations:

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

        Marking svg/wicd/test-rightsizing-a.xhtml and svg/wicd/test-rightsizing-b.xhtml as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=163915

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-11-02  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r208025) GraphicsContext state stack assertions loading webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=164350
        rdar://problem/29053414

        Reviewed by Dean Jackson.

        Test was reduced from webkit.org.

        * animations/stacking-during-opacity-animation-expected.txt: Added.
        * animations/stacking-during-opacity-animation.html: Added.

2016-11-02  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] [WebGL] Multisample resolve step may operate on stale data
        https://bugs.webkit.org/show_bug.cgi?id=164347

        Reviewed by Dean Jackson.

        Issue many draw calls into a multisampled context, and then use glReadPixels()
        to make sure that all the commands completed.

        * fast/canvas/webgl/multisample-resolve-consistency-expected.txt: Added.
        * fast/canvas/webgl/multisample-resolve-consistency.html: Added.

2016-11-01  Sam Weinig  <sam@webkit.org>

        [WebIDL] Move interfaces and typed arrays over to JSDOMConvert
        https://bugs.webkit.org/show_bug.cgi?id=164256

        Reviewed by Alex Christensen.

        * svg/custom/polyline-points-crash-expected.txt:
        * svg/dom/SVGLengthList-basics-expected.txt:
        * svg/dom/SVGNumberList-basics-expected.txt:
        * svg/dom/SVGPointList-basics-expected.txt:
        * svg/dom/SVGTransformList-basics-expected.txt:
        * svg/dom/SVGTransformList-expected.txt:
        Update test results for improved error messages.

2016-11-02  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Include DebuggerAgent in Workers - see, pause, and step through scripts
        https://bugs.webkit.org/show_bug.cgi?id=164136
        <rdar://problem/29028462>

        Reviewed by Brian Burg.

        * inspector/worker/debugger-pause-expected.txt: Added.
        * inspector/worker/debugger-pause.html: Added.
        * inspector/worker/debugger-scripts-expected.txt: Added.
        * inspector/worker/debugger-scripts.html: Added.
        * inspector/worker/resources/worker-debugger-pause.js: Added.
        * inspector/worker/resources/worker-import-1.js: Added.
        * inspector/worker/resources/worker-scripts.js: Added.
        New tests for Debugger features in a Worker.

        * inspector/debugger/break-on-exception-throw-in-promise.html:
        * inspector/debugger/break-on-exception.html:
        * inspector/debugger/break-on-uncaught-exception.html:
        * inspector/debugger/evaluateOnCallFrame-CommandLineAPI.html:
        * inspector/debugger/pause-reason.html:
        * inspector/debugger/paused-scopes.html:
        * inspector/debugger/resources/log-pause-location.js:
        * inspector/debugger/stepping/stepInto.html:
        * inspector/debugger/stepping/stepOut.html:
        * inspector/debugger/stepping/stepOver.html:
        * inspector/debugger/stepping/stepping-through-autoContinue-breakpoint.html:
        * inspector/debugger/tail-deleted-frames-from-vm-entry.html:
        * inspector/debugger/tail-deleted-frames-this-value.html:
        * inspector/debugger/tail-deleted-frames.html:
        * inspector/debugger/tail-recursion.html:
        Most debugger data moved from DebuggerManager into DebuggerData for a target.
        Update tests that access such data like pauseReason / pauseData / callFrames.

2016-11-02  Ryosuke Niwa  <rniwa@webkit.org>

        Load stylesheets in link elements inside a connected shadow tree
        https://bugs.webkit.org/show_bug.cgi?id=160683
        <rdar://problem/29040652>

        Reviewed by Antti Koivisto.

        Added W3C style testharness.js tests for loading stylesheets via a link element inside a ahadow tree.

        * fast/shadow-dom/link-element-in-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/link-element-in-shadow-tree.html: Added.
        * fast/shadow-dom/resources/green-host.css: Added.
        * fast/shadow-dom/selected-stylesheet-in-shadow-tree-expected.txt: Added.
        * fast/shadow-dom/selected-stylesheet-in-shadow-tree.html: Added.

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

        Remove Battery Status API from the tree
        https://bugs.webkit.org/show_bug.cgi?id=164213

        Reviewed by Sam Weinig.

        * batterystatus: Removed.
        * batterystatus/add-listener-from-callback-expected.txt: Removed.
        * batterystatus/add-listener-from-callback.html: Removed.
        * batterystatus/basic-all-types-of-events-expected.txt: Removed.
        * batterystatus/basic-all-types-of-events.html: Removed.
        * batterystatus/basic-operation-expected.txt: Removed.
        * batterystatus/basic-operation.html: Removed.
        * batterystatus/event-after-navigation-expected.txt: Removed.
        * batterystatus/event-after-navigation.html: Removed.
        * batterystatus/multiple-frames-expected.txt: Removed.
        * batterystatus/multiple-frames.html: Removed.
        * batterystatus/resources: Removed.
        * batterystatus/resources/event-after-navigation-new.html: Removed.
        * batterystatus/script-tests: Removed.
        * batterystatus/script-tests/add-listener-from-callback.js: Removed.
        * batterystatus/script-tests/basic-all-types-of-events.js: Removed.
        * batterystatus/script-tests/basic-operation.js: Removed.
        * batterystatus/script-tests/event-after-navigation.js: Removed.
        * batterystatus/script-tests/multiple-frames.js: Removed.
        * batterystatus/script-tests/updates.js: Removed.
        * batterystatus/script-tests/window-property.js: Removed.
        * batterystatus/updates-expected.txt: Removed.
        * batterystatus/updates.html: Removed.
        * batterystatus/window-property-expected.txt: Removed.
        * batterystatus/window-property.html: Removed.
        * fast/dom/event-handler-attributes.html:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

2016-11-02  Brent Fulgham  <bfulgham@apple.com>

        REGRESSION(r203289):Assertion in MathOperator::stretchTo() on Wikipedia Page
        https://bugs.webkit.org/show_bug.cgi?id=162933
        <rdar://problem/28570590>

        Reviewed by Dean Jackson.

        * mathml/empty-mo-expected.txt: Added.
        * mathml/empty-mo.html: Added.

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

        Filter functions grayscale/invert/opacity/sepia should clamp values over 100%, not fail
        https://bugs.webkit.org/show_bug.cgi?id=164310
        <rdar://problems/29057705>

        Reviewed by Sam Weinig.

        Some of our tests were incorrectly suggesting values over 100% should fail.

        * css3/filters/backdrop/backdropfilter-property-parsing-invalid-expected.txt:
        * css3/filters/backdrop/backdropfilter-property-parsing-invalid.html:
        * css3/filters/filter-property-parsing-expected.txt:
        * css3/filters/filter-property-parsing-invalid-expected.txt:
        * css3/filters/filter-property-parsing-invalid.html:
        * css3/filters/filter-property-parsing.html:

2016-11-02  Brent Fulgham  <bfulgham@apple.com>

        WebKit nullptr dereference Archive Subframe
        https://bugs.webkit.org/show_bug.cgi?id=164281
        <rdar://problem/28943006>

        Reviewed by Andy Estes.

        * fast/dom/crash-with-bad-url-expected.txt: Added.
        * fast/dom/crash-with-bad-url.html: Added.

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

        Marking media/modern-media-controls/scrubber-support/scrubber-support-drag.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164328

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Test gardening for media/modern-media-controls.

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        REGRESSION(r207753-207755): ASSERTION FAILED: m_parsedStyleSheetCache->isInMemoryCache()
        https://bugs.webkit.org/show_bug.cgi?id=163905

        Reviewed by Antti Koivisto.

        * http/tests/security/cached-cross-origin-shared-css-stylesheet-expected.txt: Added.
        * http/tests/security/cached-cross-origin-shared-css-stylesheet.html: Added.

2016-11-02  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-grid] mimax(auto, <flex>) should be serialized as <flex>
        https://bugs.webkit.org/show_bug.cgi?id=164316

        Reviewed by Sergio Villar Senin.

        Add new test case to verify it. We can only check it
        using grid-auto-columns|rows, because grid-template-columns|rows
        is serialized to the used breadth.

        * fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
        * fast/css-grid-layout/grid-auto-columns-rows-get-set.html:

2016-11-02  Romain Bellessort  <romain.bellessort@crf.canon.fr>

        [Readable Streams API] Enable creation of ReadableByteStreamController
        https://bugs.webkit.org/show_bug.cgi?id=164014

        Reviewed by Youenn Fablet.

        Added test to check behaviour when using ReadableByteStreamController. 
        Tests are also performed with Workers.

        * TestExpectations:
        * streams/readable-byte-stream-controller-expected.txt: Added.
        * streams/readable-byte-stream-controller.html: Added.
        * streams/readable-byte-stream-controller.js: Added.

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

        [Modern Media Controls] Media Controller: fullscreen toggle support
        https://bugs.webkit.org/show_bug.cgi?id=163728
        <rdar://problem/27989486>

        Reviewed by Darin Adler.

        Adding new tests to check that clicking on the fullscreen button enters fullscreen and
        that the fullscreen button is enabled when fullscreen is supported.

        * media/modern-media-controls/fullscreen-support/fullscreen-support-click-expected.txt: Added.
        * media/modern-media-controls/fullscreen-support/fullscreen-support-click.html: Added.
        * media/modern-media-controls/fullscreen-support/fullscreen-support-enabled-expected.txt: Added.
        * media/modern-media-controls/fullscreen-support/fullscreen-support-enabled.html: Added.
        * platform/ios-simulator/TestExpectations:

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

        [Modern Media Controls] Media Controller: PiP support
        https://bugs.webkit.org/show_bug.cgi?id=163730
        <rdar://problem/27989485>

        Reviewed by Dean Jackson.

        Adding new picture-in-picture tests.

        * media/modern-media-controls/pip-support/pip-support-click-expected.txt: Added.
        * media/modern-media-controls/pip-support/pip-support-click.html: Added.
        * media/modern-media-controls/pip-support/pip-support-enabled-expected.txt: Added.
        * media/modern-media-controls/pip-support/pip-support-enabled.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

2016-11-01  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support IDBIndex getAll/getAllKeys.
        <rdar://problem/28806933> and https://bugs.webkit.org/show_bug.cgi?id=164294

        Reviewed by Alex Christensen.

        * resources/js-test.js:
        (areObjectsEqual):

        * storage/indexeddb/modern/idbindex-getall-1-expected.txt: Added.
        * storage/indexeddb/modern/idbindex-getall-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbindex-getall-1-private.html: Added.
        * storage/indexeddb/modern/idbindex-getall-1.html: Added.
        * storage/indexeddb/modern/idbindex-getallkeys-1-expected.txt: Added.
        * storage/indexeddb/modern/idbindex-getallkeys-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbindex-getallkeys-1-private.html: Added.
        * storage/indexeddb/modern/idbindex-getallkeys-1.html: Added.
        * storage/indexeddb/modern/resources/idbindex-getall-1.js: Added.

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

        [Modern Media Controls] Media Controller: Airplay support
        https://bugs.webkit.org/show_bug.cgi?id=163729
        <rdar://problem/27989484>

        Reviewed by Dean Jackson.

        Adding a new test to check that the AirPlay button in the media controls correctly shows
        the availability of AirPlay routes and whether the media is playing via AirPlay.

        * media/modern-media-controls/airplay-support/airplay-support-expected.txt: Added.
        * media/modern-media-controls/airplay-support/airplay-support.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

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

        Remove WebKitCSSFilterValue to make Hyatt happy
        https://bugs.webkit.org/show_bug.cgi?id=164289
        <rdar://problems/29050973>

        Reviewed by Simon Fraser.

        Update the filters tests now that WebKitCSSFilterValue no longer exists.
        Unfortunately CSSFunctionValue isn't exposed to the Web, so we just
        rely on the cssText of the resulting CSSStyleDeclaration.

        I also moved all the script-tests into the HTML files, since there is
        no point them being separate.

        * css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
        * css3/filters/backdrop/backdropfilter-property-computed-style.html:
        * css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
        * css3/filters/backdrop/backdropfilter-property-parsing-invalid.html:
        * css3/filters/backdrop/backdropfilter-property-parsing.html:
        * css3/filters/backdrop/backdropfilter-property.html:
        * css3/filters/backdrop/script-tests/backdropfilter-property-computed-style.js: Removed.
        * css3/filters/backdrop/script-tests/backdropfilter-property-parsing-invalid.js: Removed.
        * css3/filters/backdrop/script-tests/backdropfilter-property-parsing.js: Removed.
        * css3/filters/backdrop/script-tests/backdropfilter-property.js: Removed.
        * css3/filters/effect-reference-delete-crash.html:
        * css3/filters/effect-reference-reset-style-delete-crash.html:
        * css3/filters/filter-property-computed-style-expected.txt:
        * css3/filters/filter-property-computed-style.html:
        * css3/filters/filter-property-parsing-expected.txt:
        * css3/filters/filter-property-parsing-invalid.html:
        * css3/filters/filter-property-parsing.html:
        * css3/filters/filter-property.html:
        * css3/filters/script-tests/TEMPLATE.html: Removed.
        * css3/filters/script-tests/effect-reference-delete-crash.js: Removed.
        * css3/filters/script-tests/effect-reference-reset-style-delete-crash.js: Removed.
        * css3/filters/script-tests/filter-property-computed-style.js: Removed.
        * css3/filters/script-tests/filter-property-parsing-invalid.js: Removed.
        * css3/filters/script-tests/filter-property-parsing.js: Removed.
        * css3/filters/script-tests/filter-property.js: Removed.
        * css3/filters/script-tests/unprefixed.js: Removed.
        * css3/filters/unprefixed-expected.txt:
        * css3/filters/unprefixed.html:

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

        Marking fast/preloader/image-srcset.html as flaky on macOS.
        https://bugs.webkit.org/show_bug.cgi?id=164277

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-11-01  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] restrict media capture secure connections
        https://bugs.webkit.org/show_bug.cgi?id=164234
        <rdar://problem/28944906>

        Reviewed by Alex Christensen.

        * http/tests/ssl/media-stream: Added.
        * http/tests/ssl/media-stream/get-user-media-different-host-expected.txt: Added.
        * http/tests/ssl/media-stream/get-user-media-different-host.html: Added.
        * http/tests/ssl/media-stream/get-user-media-nested-expected.txt: Added.
        * http/tests/ssl/media-stream/get-user-media-nested.html: Added.
        * http/tests/ssl/media-stream/get-user-media-secure-connection-expected.txt: Added.
        * http/tests/ssl/media-stream/get-user-media-secure-connection.html: Added.
        * http/tests/ssl/media-stream/resources: Added.
        * http/tests/ssl/media-stream/resources/get-user-media-frame.html: Added.
        * http/tests/ssl/media-stream/resources/get-user-media.js: Added.
        (else.createURL):
        (createURL):

2016-11-01  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: Replace sublists inside DOM-related model objects with WI.Collection
        https://bugs.webkit.org/show_bug.cgi?id=164098

        Reviewed by Timothy Hatcher.

        * http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt:
        * http/tests/inspector/console/cross-domain-inspected-node-access.html:
        * http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
        * inspector/css/manager-preferredInspectorStyleSheetForFrame-expected.txt:
        * inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
        * inspector/dom/content-flow-list.html:
        * inspector/dom/highlightFrame-expected.txt:
        * inspector/dom/highlightFrame.html:
        * inspector/dom/highlightNode-expected.txt:
        * inspector/dom/highlightNode.html:
        * inspector/dom/highlightSelector-expected.txt:
        * inspector/dom/highlightSelector.html:
        * inspector/model/frame-extra-scripts-expected.txt:
        * inspector/model/frame-extra-scripts.html:
        Change functionality to support WebInspector.Collection methods.

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

        [Modern Media Controls] Media Controller: Placard support
        https://bugs.webkit.org/show_bug.cgi?id=163731
        <rdar://problem/28869598>

        Reviewed by Dean Jackson.

        Adding two new tests to check that the picture-in-picture and AirPlay placards are shown
        based on the media presentation mode.

        * media/modern-media-controls/placard-support/placard-support-airplay-expected.txt: Added.
        * media/modern-media-controls/placard-support/placard-support-airplay.html: Added.
        * media/modern-media-controls/placard-support/placard-support-pip-expected.txt: Added.
        * media/modern-media-controls/placard-support/placard-support-pip.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

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

        Marking inspector/storage/domStorage-events.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164278

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Percent-encode non-ASCII code points in hosts of URLs with unrecognized schemes
        https://bugs.webkit.org/show_bug.cgi?id=164290

        Reviewed by Tim Horton.

        * fast/url/host-lowercase-per-scheme-expected.txt:
        * fast/url/safari-extension-expected.txt:
        * fetch/fetch-url-serialization-expected.txt:

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

        Marking inspector/css/pseudo-element-matches.html as flaky on mac-wk2.
        https://bugs.webkit.org/show_bug.cgi?id=163932

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2016-11-01  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: Fix double remove of ResourceCollection if type changes
        https://bugs.webkit.org/show_bug.cgi?id=164268

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/resource-collection-expected.txt:
        Fixed test to not expect a double remove.

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

        Marking inspector/storage/domStorage-events.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164278

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        [Modern Media Controls] load all media controller scripts and styles automatically
        https://bugs.webkit.org/show_bug.cgi?id=164271

        Reviewed by Dean Jackson.

        We now load all media controller assets with the inclusion of a single script,
        obtaining the list of JS files to include through the same file used to build
        the modern-media-controls module, so that we don't need to specify this in two places.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/playback-support/playback-support-autoplay.html:
        * media/modern-media-controls/playback-support/playback-support-button-click.html:
        * media/modern-media-controls/playback-support/playback-support-media-api.html:
        * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
        * media/modern-media-controls/resources/media-controls-loader.js: Added.
        * media/modern-media-controls/scrubber-support/scrubber-support-click.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-media-api.html:
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:
        * media/modern-media-controls/volume-support/volume-support-click.html:
        * media/modern-media-controls/volume-support/volume-support-drag.html:
        * media/modern-media-controls/volume-support/volume-support-media-api-mute.html:
        * media/modern-media-controls/volume-support/volume-support-media-api.html:

2016-11-01  Ryosuke Niwa  <rniwa@webkit.org>

        Web Inspector: Add the support for custom elements
        https://bugs.webkit.org/show_bug.cgi?id=164266

        Reviewed by Joseph Pecoraro.

        Added a Inspector protocol test for CustomElementState.

        * inspector/dom/customElementState-expected.txt: Added.
        * inspector/dom/customElementState.html: Added.

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

        Add basic visual/layout viewport support for fixed position layout
        https://bugs.webkit.org/show_bug.cgi?id=164261

        Reviewed by Dean Jackson.

        * fast/visual-viewport/nonzoomed-rects-expected.txt: Added.
        * fast/visual-viewport/nonzoomed-rects.html: Added.
        * fast/visual-viewport/zoomed-fixed-expected.txt: Added.
        * fast/visual-viewport/zoomed-fixed-scroll-down-then-up-expected.txt: Added.
        * fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html: Added.
        * fast/visual-viewport/zoomed-fixed.html: Added.
        * fast/visual-viewport/zoomed-rects-expected.txt: Added.
        * fast/visual-viewport/zoomed-rects.html: Added.
        * platform/ios-simulator/fast/visual-viewport/nonzoomed-rects-expected.txt: Added.
        * platform/ios-simulator/fast/visual-viewport/zoomed-fixed-scroll-down-then-up-expected.txt: Added.
        * platform/ios-simulator/fast/visual-viewport/zoomed-rects-expected.txt: Added.
        * resources/js-test-pre.js:
        (evalAndLog):
        (evalAndLogResult):
        (shouldEvaluateTo):

2016-10-29  Filip Pizlo  <fpizlo@apple.com>

        JSC should support SharedArrayBuffer
        https://bugs.webkit.org/show_bug.cgi?id=163986

        Reviewed by Keith Miller.
        
        Adding tests. This is a work in progress.

        * workers/sab: Added.
        * workers/sab/simple-worker-1.js: Added.
        (onmessage):
        * workers/sab/simple-worker-2.js: Added.
        (onmessage):
        * workers/sab/simple.html: Added.

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

        Make UIScriptController::zoomToScale() work on Mac WK1 and WK2
        https://bugs.webkit.org/show_bug.cgi?id=164238

        Reviewed by Dean Jackson.

        * fast/zooming/uiscript-zooming-expected.txt: Added.
        * fast/zooming/uiscript-zooming.html: Added.
        * platform/ios-simulator-wk1/TestExpectations:

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

        Remove test workaround now that original issue is fixed
        https://bugs.webkit.org/show_bug.cgi?id=164255

        Reviewed by Saam Barati.

        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.window.logResolvedBreakpointLinesWithContext):
        (TestPage.registerInitializer.window.logLinesWithContext):
        (TestPage.registerInitializer.String.prototype.myPadStart): Deleted.
        Use the real String.prototype.padStart now that it is fixed.

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

        Enable custom elements by default everywhere
        https://bugs.webkit.org/show_bug.cgi?id=164242

        Reviewed by Antti Koivisto.

        Enable tests for custom elements everywhere. Also removed the superfluous expectations for shadow DOM tests.

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

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

        Unreviewed, rolling out r207967.

        This change seems to be the cause of at least one LayoutTest
        becoming flaky.

        Reverted changeset:

        "REGRESSION(r207753-207755): ASSERTION FAILED:
        m_parsedStyleSheetCache->isInMemoryCache()"
        https://bugs.webkit.org/show_bug.cgi?id=163905
        http://trac.webkit.org/changeset/207967

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

        Web Inspector: Shadow DOM scoped styles are missing
        https://bugs.webkit.org/show_bug.cgi?id=164247
        <rdar://problem/29035061>

        Reviewed by Antti Koivisto.

        * inspector/css/shadow-scoped-style-expected.txt: Added.
        * inspector/css/shadow-scoped-style.html: Added.

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

        AX: aria-sort is not exposed on iOS
        https://bugs.webkit.org/show_bug.cgi?id=164245

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/aria-sort-ios-expected.txt: Added.
        * accessibility/ios-simulator/aria-sort-ios.html: Added.

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

        Unreviewed, rolling out r208178.

        The test added with this change fails or times out on macOS
        and iOS.

        Reverted changeset:

        "[Modern Media Controls] Media Controller: Airplay support"
        https://bugs.webkit.org/show_bug.cgi?id=163729
        http://trac.webkit.org/changeset/208178

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

        Unreviewed, rolling out r208182.

        Both of the tests added with this change time out on macOS
        Release.

        Reverted changeset:

        "[Modern Media Controls] Media Controller: Placard support"
        https://bugs.webkit.org/show_bug.cgi?id=163731
        http://trac.webkit.org/changeset/208182

2016-10-31  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support IDBObjectStore getAll/getAllKeys.
        <rdar://problem/28806934> and https://bugs.webkit.org/show_bug.cgi?id=164097

        Reviewed by Darin Adler.

        * storage/indexeddb/modern/idbobjectstore-getall-1-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-getall-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-getall-1-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-getall-1.html: Added.
        * storage/indexeddb/modern/idbobjectstore-getallkeys-1-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-getallkeys-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-getallkeys-1-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-getallkeys-1.html: Added.
        * storage/indexeddb/modern/resources/idbobjectstore-getall-1.js: Added.

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

        Marking two http/tests/websocket/tests/hybi tests as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=164080

        Unreviewed test gardening.

        * TestExpectations:

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

        Skipping media/modern-media-controls/volume-support/volume-support-media-api.html on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=164250

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Changing expectation from Failure to Skip for two insertReplacementText tests on ios-simulator.

        Unreviewed test gardening.

        These tests will always time out on ios-simulator due to reliance upon
        testRunner.waitUntilDone().

        * platform/ios-simulator/TestExpectations:

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

        Marking three modern-media-controls tests as flaky.

        Unreviewed test gardening.

        * TestExpectations:

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

        [Modern Media Controls] Media Controller: Placard support
        https://bugs.webkit.org/show_bug.cgi?id=163731
        <rdar://problem/28869598>

        Reviewed by Dean Jackson.

        Adding two new tests to check that the picture-in-picture and AirPlay placards are shown
        based on the media presentation mode.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/placard-support/placard-support-airplay-expected.txt: Added.
        * media/modern-media-controls/placard-support/placard-support-airplay.html: Added.
        * media/modern-media-controls/placard-support/placard-support-pip-expected.txt: Added.
        * media/modern-media-controls/placard-support/placard-support-pip.html: Added.
        * media/modern-media-controls/playback-support/playback-support-autoplay.html:
        * media/modern-media-controls/playback-support/playback-support-button-click.html:
        * media/modern-media-controls/playback-support/playback-support-media-api.html:
        * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-click.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-media-api.html:
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:
        * media/modern-media-controls/volume-support/volume-support-click.html:
        * media/modern-media-controls/volume-support/volume-support-drag.html:
        * media/modern-media-controls/volume-support/volume-support-media-api-mute.html:
        * media/modern-media-controls/volume-support/volume-support-media-api.html:
        * LayoutTests/platform/ios-simulator/TestExpectations:
        * LayoutTests/platform/mac/TestExpectations:

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

        Implement IntersectionObserver
        https://bugs.webkit.org/show_bug.cgi?id=159475

        Reviewed by Ryosuke Niwa.
        
        Basic interface tests.

        * intersection-observer/intersection-observer-entry-interface-expected.txt: Added.
        * intersection-observer/intersection-observer-entry-interface.html: Added.
        * intersection-observer/intersection-observer-interface-expected.txt: Added.
        * intersection-observer/intersection-observer-interface.html: Added.

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

        [Modern Media Controls] Media Controller: Airplay support
        https://bugs.webkit.org/show_bug.cgi?id=163729

        Reviewed by Dean Jackson.

        Adding a new test to check that the AirPlay button in the media controls correctly shows the availability
        of AirPlay routes and whether the media is playing via AirPlay.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * media/modern-media-controls/airplay-support/airplay-support-expected.txt: Added.
        * media/modern-media-controls/airplay-support/airplay-support.html: Added.
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/playback-support/playback-support-autoplay.html:
        * media/modern-media-controls/playback-support/playback-support-button-click.html:
        * media/modern-media-controls/playback-support/playback-support-media-api.html:
        * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-click.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-media-api.html:
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:
        * media/modern-media-controls/volume-support/volume-support-click.html:
        * media/modern-media-controls/volume-support/volume-support-drag.html:
        * media/modern-media-controls/volume-support/volume-support-media-api-mute.html:
        * media/modern-media-controls/volume-support/volume-support-media-api.html:
        * platform/mac/TestExpectations:

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

        CSSStyleDeclaration should be annotated with CEReactions
        https://bugs.webkit.org/show_bug.cgi?id=163968

        Reviewed by Antti Koivisto.

        Added a W3C style testharness.js test.

        * fast/custom-elements/reactions/CSSStyleDeclaration-expected.txt: Added.
        * fast/custom-elements/reactions/CSSStyleDeclaration.html: Added.

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

        ASSERTION FAILED: !m_trailingWhitespaceWidth in WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace
        https://bugs.webkit.org/show_bug.cgi?id=164076

        Reviewed by Antti Koivisto.

        * fast/text/simple-line-layout-with-zero-sized-font-expected.txt: Added.
        * fast/text/simple-line-layout-with-zero-sized-font.html: Added.

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

        AX: iOS Voiceover does not announce previously selected value from input type="date" form field
        https://bugs.webkit.org/show_bug.cgi?id=164176

        Reviewed by Chris Fleizach.

        * accessibility/ios-simulator/input-type-time-expected.txt:
        * accessibility/ios-simulator/input-type-time.html:

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

        REGRESSION (r206300): LayoutTest media/media-source/media-source-duplicate-seeked.html timing out
        https://bugs.webkit.org/show_bug.cgi?id=162496

        Reviewed by Darin Adler.

        * platform/mac/TestExpectations:

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

        Allow multiple playing videos on a page with 'autoplay' and 'playsinline' attributes
        https://bugs.webkit.org/show_bug.cgi?id=162366
        <rdar://problem/28639600>

        Reviewed by Eric Carlson.

        * media/content/test-video-only.mp4: Added.
        * media/non-existent-video-playback-interrupted-expected.txt:
        * media/non-existent-video-playback-interrupted.html:
        * media/video-background-playback-expected.txt:
        * media/video-background-playback.html:
        * media/video-background-tab-playback-expected.txt:
        * media/video-background-tab-playback.html:
        * media/video-concurrent-playback-expected.txt:
        * media/video-concurrent-playback.html:
        * media/video-concurrent-visible-playback-expected.txt: Added.
        * media/video-concurrent-visible-playback.html: Added.
        * media/video-multiple-concurrent-playback-expected.txt: Added.
        * media/video-multiple-concurrent-playback.html: Added.
        * media/video-playback-interrupted-expected.txt:
        * media/video-playback-interrupted.html:
        * media/video-restricted-invisible-autoplay-not-allowed.html:

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

        Holding down a key to choose an accented character should fire "insertReplacementText" input events
        https://bugs.webkit.org/show_bug.cgi?id=164209
        <rdar://problem/29019305>

        Reviewed by Darin Adler.

        Adds 2 new layout tests to verify that inserting replacement text fires input events of inputType
        "insertReplacementText" instead of the generic "insertText", and that calling preventDefault() on the
        beforeinput event prevents text from being inserted. Also checks that inserting replacement text in
        contenteditable areas causes the dataTransfer attribute to be populated, and that the data attribute is null.

        * fast/events/before-input-prevent-insert-replacement-expected.txt: Added.
        * fast/events/before-input-prevent-insert-replacement.html: Added.
        * fast/events/input-event-insert-replacement-expected.txt: Added.
        * fast/events/input-event-insert-replacement.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac-wk1/TestExpectations:

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

        [EFL] Skip media tests because timeout happens on many media tests.

        Unreviewed EFL gardening.

        Treat the media folder to *Skip* temporarily.

        * platform/efl/TestExpectations:

2016-10-30  Darin Adler  <darin@apple.com>

        Move Element, NamedNodeMap, and DOMStringMap from ExceptionCode to Exception
        https://bugs.webkit.org/show_bug.cgi?id=164206

        Reviewed by Chris Dumez.

        * fast/dom/resources/shadow-test-driver.js: Deleted. Unused.

2016-10-30  Frederic Wang  <fwang@igalia.com>

        Use HarfBuzz ot-math API to parse the OpenType MATH table
        https://bugs.webkit.org/show_bug.cgi?id=162671

        Reviewed by Michael Catanzaro.

        Rebaseline one test for large operators due to small rendering changes.

        * platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
        * platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:

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

        [EFL] Remove duplicated media/media-source tests in TestExpectations

        Unreviewed EFL gardening.

        Tests of media/media-source have caused timeout on EFL layout test. However
        it hasn't been marked to *Skip* because some tests are multiple marked.
        So this patch cleans up it, and skip media/media-source for a while.

        * platform/efl/TestExpectations:

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

        Unreviewed EFL gardening. Mark some tests to Timeout.

        * platform/efl/TestExpectations: Urgent fix to run layout test.

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

        Parse color() function
        https://bugs.webkit.org/show_bug.cgi?id=164146
        <rdar://problems/29007218>

        Reviewed by Darin Adler.

        Test that exercises the new color() function in CSS. It checks
        all valid and invalid input, with the exception of fallback content.

        * css3/color/color-function-computed-style-expected.txt: Added.
        * css3/color/color-function-computed-style.html: Added.
        * css3/color/color-function-parsing-expected.txt: Added.
        * css3/color/color-function-parsing.html: Added.

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

        Remove testharness.js/testharnessreport.js unnecessary copies
        https://bugs.webkit.org/show_bug.cgi?id=164112

        Reviewed by Darin Adler.

        Removing http/tests/w3c directory.
        Contained tests are skipped in Mac, EFL and mark as failing in GTK.
        These tests have not been modified since more than 3 years and are probably out-of-date compared to W3C wpt.

        Updated other http/tests tests using w3c/tests/resources files to use directly /resources/ URLs.
        These /resources/ URLs are using an alias to remove the need to have redundant copies.

        Removed imported/blink/http/tests/resources testharness and testharnessreport.js since they are not used.
        A few test files in imported/blink/http/tests use /resources/... URLs but they will not point to any of the removed files since the tests are run as file based.

        * http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html:
        * http/tests/media/resources/media-source/generate-config-change-tests.py:
        * http/tests/preload/single_download_preload_runner.html:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation.html:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-site.html:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-nested-frame.html:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
        * http/tests/security/cross-origin-css-1.html:
        * http/tests/security/cross-origin-css-2.html:
        * http/tests/security/cross-origin-css-3.html:
        * http/tests/security/cross-origin-css-4.html:
        * http/tests/security/cross-origin-css-5.html:
        * http/tests/security/cross-origin-css-6.html:
        * http/tests/security/cross-origin-css-7.html:
        * http/tests/security/cross-origin-css-8.html:
        * http/tests/security/cross-origin-css-9.html:
        * http/tests/security/cross-origin-css-in-quirks-1.html:
        * http/tests/security/cross-origin-css-in-quirks-2.html:
        * http/tests/security/cross-origin-css-in-quirks-3.html:
        * http/tests/security/cross-origin-css-in-quirks-4.html:
        * http/tests/security/cross-origin-css-in-quirks-5.html:
        * http/tests/security/cross-origin-css-in-quirks-6.html:
        * http/tests/security/cross-origin-css-in-quirks-7.html:
        * http/tests/security/cross-origin-css-in-quirks-8.html:
        * http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
        * http/tests/security/resources/post-origin-to-parent.html:
        * http/tests/security/same-origin-css-1.html:
        * http/tests/security/same-origin-css-2.html:
        * http/tests/security/same-origin-css-3.html:
        * http/tests/security/same-origin-css-4.html:
        * http/tests/security/same-origin-css-5.html:
        * http/tests/security/same-origin-css-6.html:
        * http/tests/security/same-origin-css-7.html:
        * http/tests/security/same-origin-css-8.html:
        * http/tests/security/same-origin-css-in-quirks.html:
        * http/tests/security/set-domain-remove-subdomain-for-ip-address.html:
        * http/tests/w3c/README: Removed.
        * http/tests/w3c/resources/WebIDLParser.js: Removed.
        * http/tests/w3c/resources/canvas-tests.css: Removed.
        * http/tests/w3c/resources/canvas-tests.js: Removed.
        * http/tests/w3c/resources/idlharness.js: Removed.
        * http/tests/w3c/resources/testharness.css: Removed.
        * http/tests/w3c/resources/testharness.js: Removed.
        * http/tests/w3c/resources/testharnessreport.js: Removed.
        * http/tests/w3c/webperf/approved/HighResolutionTime/basic-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/HighResolutionTime/basic.html: Removed.
        * http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock.html: Removed.
        * http/tests/w3c/webperf/approved/HighResolutionTime/resources/now_frame.html: Removed.
        * http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect.html: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects-expected.txt: Removed.
        * http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects.html: Removed.
        * http/tests/w3c/webperf/resources/Ahem.ttf: Removed.
        * http/tests/w3c/webperf/resources/all_resource_types.htm: Removed.
        * http/tests/w3c/webperf/resources/blank_image.png: Removed.
        * http/tests/w3c/webperf/resources/blank_page_green.htm: Removed.
        * http/tests/w3c/webperf/resources/blank_page_green_with_allow_timing.php: Removed.
        * http/tests/w3c/webperf/resources/blank_page_green_with_onunload.htm: Removed.
        * http/tests/w3c/webperf/resources/blank_page_meta_redirect.htm: Removed.
        * http/tests/w3c/webperf/resources/blank_page_unload.htm: Removed.
        * http/tests/w3c/webperf/resources/blank_page_yellow.htm: Removed.
        * http/tests/w3c/webperf/resources/blank_page_yellow_with_onunload.htm: Removed.
        * http/tests/w3c/webperf/resources/empty_script.js: Removed.
        * http/tests/w3c/webperf/resources/generate_resource.php: Removed.
        * http/tests/w3c/webperf/resources/gray_bg.css: Removed.
        * http/tests/w3c/webperf/resources/green_frame.htm: Removed.
        * http/tests/w3c/webperf/resources/inject_resource_test.html: Removed.
        * http/tests/w3c/webperf/resources/nested.css: Removed.
        * http/tests/w3c/webperf/resources/pagevistestharness.js: Removed.
        * http/tests/w3c/webperf/resources/redirect.php: Removed.
        * http/tests/w3c/webperf/resources/webperftestharness.js: Removed.
        * http/tests/w3c/webperf/resources/webperftestharnessextension.js: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting.html: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist-expected.txt: Removed.
        * http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist.html: Removed.
        * http/tests/xmlhttprequest/readystatechange-and-abort.html:
        * http/tests/xmlhttprequest/response-json-and-readystate.html:
        * http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html:
        * http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html:
        * imported/blink/http/tests/resources/testharness.js: Removed.
        * imported/blink/http/tests/resources/testharnessreport.js: Removed.
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:

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

        REGRESSION (r207754): LayoutTest http/tests/security/svg-image-with-css-cross-domain.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=163922

        Reviewed by Alex Christensen.

        * http/tests/security/cached-svg-image-with-css-cross-domain-expected.html: Added.
        * http/tests/security/cached-svg-image-with-css-cross-domain.html: Added.
        * platform/mac/TestExpectations:

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

        REGRESSION (Safari 10 / r189445): WKWebView and WebView no longer allow async XMLHttpRequest timeout to exceed 60 seconds
        https://bugs.webkit.org/show_bug.cgi?id=163814
        <rdar://problem/28917420>

        Reviewed by Darin Adler.

        * http/tests/xmlhttprequest/resetting-timeout-to-zero-expected.txt: Added.
        * http/tests/xmlhttprequest/resetting-timeout-to-zero.html: Added.
        * http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout-expected.txt: Added.
        * http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout.html: Added.
        * tests-options.json:

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

        Web Inspector: Breakpoints not working in scripts with unicode characters
        https://bugs.webkit.org/show_bug.cgi?id=164172
        <rdar://problem/28895862>

        Reviewed by Ryosuke Niwa.

        * inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
        * inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html:
        * inspector/debugger/breakpoints/resolved-dump-each-line-expected.txt:
        * inspector/debugger/breakpoints/resolved-dump-each-line.html:
        * inspector/debugger/breakpoints/resources/dump-unicode.js: Added.
        Ensure we can set breakpoints and resolve them in non-8bit source code.

2016-10-28  Darin Adler  <darin@apple.com>

        Move all classes in the HTML directory from ExceptionCode to Exception
        https://bugs.webkit.org/show_bug.cgi?id=163876

        Reviewed by Sam Weinig.

        * fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
        * fast/dom/DOMURL/set-href-attribute-hash.html:
        * fast/dom/DOMURL/set-href-attribute-hostname-expected.txt:
        * fast/dom/DOMURL/set-href-attribute-hostname.html:
        * fast/dom/DOMURL/set-href-attribute-pathname-expected.txt:
        * fast/dom/DOMURL/set-href-attribute-pathname.html:
        Updated these tests to expect that if you set href and it raises an exception,
        then the URL does not change. The old expected results showed the exception being
        raised but the URL being changed to the invalid href.

        * fast/dom/HTMLProgressElement/script-tests/set-progress-properties.js:
        * fast/dom/HTMLProgressElement/set-progress-properties-expected.txt:
        Updated to expect a different exception, TypeError rather than NotSupportedError,
        for non-finite values.

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

        WebAudio does not resume when moving from background to foreground tab.
        https://bugs.webkit.org/show_bug.cgi?id=164043

        Reviewed by Darin Adler.

        * webaudio/page-canstartmedia-expected.txt: Added.
        * webaudio/page-canstartmedia.html: Added.

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

        iOS autocorrection does not trigger an input event of inputType "insertReplacementText"
        https://bugs.webkit.org/show_bug.cgi?id=164077
        <rdar://problem/28987810>

        Reviewed by Simon Fraser.

        Adds 2 new unit tests verifying that candidate text insertion can be prevented via beforeinput events, and that
        beforeinput and input events of type "insertReplacementText" are fired when inserting candidate text on iOS.

        * fast/events/ios/before-input-events-prevent-candidate-insertion-expected.txt: Added.
        * fast/events/ios/before-input-events-prevent-candidate-insertion.html: Added.
        * fast/events/ios/input-events-insert-replacement-text-expected.txt: Added.
        * fast/events/ios/input-events-insert-replacement-text.html: Added.

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

        Partially revert 207805 after resolution in URL spec issue 87
        https://bugs.webkit.org/show_bug.cgi?id=164142

        Reviewed by Andy Estes.

        * fast/url/path-expected.txt:
        * fetch/fetch-url-serialization-expected.txt:

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

        DOMStringMap reports properties as non-enumerable
        https://bugs.webkit.org/show_bug.cgi?id=164114

        Reviewed by Sam Weinig.

        Update existing test to reflect behavior change.

        * fast/dom/dataset-name-getter-properties-expected.txt:
        * fast/dom/dataset-name-getter-properties.html:

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

        Add CEReactions to the remaining HTML DOM APIs
        https://bugs.webkit.org/show_bug.cgi?id=163969

        Reviewed by Chris Dumez.

        Added W3C style testharness.js tests for CEReactions to various HTMLElements under fast/custom-elements/reactions.
        Also added some WebKit specific tests using the same harness outside that directory.

        * fast/custom-elements/reactions-for-indieui-expected.txt: Added.
        * fast/custom-elements/reactions-for-indieui.html: Added.
        * fast/custom-elements/reactions-for-webkit-extensions-expected.txt:
        * fast/custom-elements/reactions-for-webkit-extensions.html:
        * fast/custom-elements/reactions/Document-expected.txt: Added.
        * fast/custom-elements/reactions/Document.html: Added.
        * fast/custom-elements/reactions/HTMLAnchorElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLAnchorElement.html: Added.
        * fast/custom-elements/reactions/HTMLOptionElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLOptionElement.html: Added.
        * fast/custom-elements/reactions/HTMLOptionsCollection-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLOptionsCollection.html: Added.
        * fast/custom-elements/reactions/HTMLOutputElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLOutputElement.html: Added.
        * fast/custom-elements/reactions/HTMLSelectElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLSelectElement.html: Added.
        * fast/custom-elements/reactions/HTMLTableElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLTableElement.html: Added.
        * fast/custom-elements/reactions/HTMLTableRowElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLTableRowElement.html: Added.
        * fast/custom-elements/reactions/HTMLTableSectionElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLTableSectionElement.html: Added.
        * fast/custom-elements/reactions/HTMLTitleElement-expected.txt: Added.
        * fast/custom-elements/reactions/HTMLTitleElement.html: Added.
        * fast/custom-elements/reactions/ShadowRoot-expected.txt: Added.
        * fast/custom-elements/reactions/ShadowRoot.html: Added.
        * fast/custom-elements/resources/additional-helpers.js: Added.
        * fast/custom-elements/upgrading-enqueue-reactions-expected.txt:
        * fast/custom-elements/upgrading-enqueue-reactions.html:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:

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

        [Modern Media Controls] Media Controller: volume control support
        https://bugs.webkit.org/show_bug.cgi?id=163727

        Reviewed by Dean Jackson.

        Adding new tests for VolumeSupport and adding the new resource to other MediaController tests.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/playback-support/playback-support-autoplay.html:
        * media/modern-media-controls/playback-support/playback-support-button-click.html:
        * media/modern-media-controls/playback-support/playback-support-media-api.html:
        * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-click.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-media-api.html:
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:
        * media/modern-media-controls/volume-support/volume-support-click-expected.txt: Added.
        * media/modern-media-controls/volume-support/volume-support-click.html: Added.
        * media/modern-media-controls/volume-support/volume-support-drag-expected.txt: Added.
        * media/modern-media-controls/volume-support/volume-support-drag.html: Added.
        * media/modern-media-controls/volume-support/volume-support-media-api-expected.txt: Added.
        * media/modern-media-controls/volume-support/volume-support-media-api-mute-expected.txt: Added.
        * media/modern-media-controls/volume-support/volume-support-media-api-mute.html: Added.
        * media/modern-media-controls/volume-support/volume-support-media-api.html: Added.
        * platform/ios-simulator/TestExpectations:

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

        [DOMJIT] Implement Document::documentElement
        https://bugs.webkit.org/show_bug.cgi?id=164113

        Reviewed by Sam Weinig.

        * js/dom/domjit-accessor-document-element-changed-expected.txt: Added.
        * js/dom/domjit-accessor-document-element-changed.html: Added.
        * js/dom/domjit-accessor-document-element-expected.txt: Added.
        * js/dom/domjit-accessor-document-element.html: Added.

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

        Wrong blur radius for filter: drop-shadow()
        https://bugs.webkit.org/show_bug.cgi?id=163667

        Reviewed by Darin Adler.
        
        Mismatch tests to detect that the blurry area extends out from under a masking
        element on top.

        * css3/filters/drop-shadow-blur-radius-expected-mismatch.html: Added.
        * css3/filters/drop-shadow-blur-radius.html: Added.
        * svg/filters/feDropShadow-blur-radius-expected-mismatch.html: Added.
        * svg/filters/feDropShadow-blur-radius.html: Added.

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

        Expose RTCPeerConnection unprefixed
        https://bugs.webkit.org/show_bug.cgi?id=164060

        Reviewed by Darin Adler.

        * TestExpectations:
        * fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
        * fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
        * fast/mediastream/RTCPeerConnection-add-removeTrack.html:
        * fast/mediastream/RTCPeerConnection-addIceCandidate.html:
        * fast/mediastream/RTCPeerConnection-addTrack-reuse-sender.html:
        * fast/mediastream/RTCPeerConnection-addTransceiver.html:
        * fast/mediastream/RTCPeerConnection-closed-state-expected.txt:
        * fast/mediastream/RTCPeerConnection-closed-state.html:
        * fast/mediastream/RTCPeerConnection-createAnswer.html:
        * fast/mediastream/RTCPeerConnection-createOffer.html:
        * fast/mediastream/RTCPeerConnection-datachannel.html:
        * fast/mediastream/RTCPeerConnection-dtmf.html:
        * fast/mediastream/RTCPeerConnection-events.html:
        * fast/mediastream/RTCPeerConnection-expected.txt:
        * fast/mediastream/RTCPeerConnection-getConfiguration.html:
        * fast/mediastream/RTCPeerConnection-have-local-offer.html:
        * fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
        * fast/mediastream/RTCPeerConnection-have-remote-offer.html:
        * fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
        * fast/mediastream/RTCPeerConnection-ice-expected.txt:
        * fast/mediastream/RTCPeerConnection-ice.html:
        * fast/mediastream/RTCPeerConnection-icecandidate-event.html:
        * fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html:
        * fast/mediastream/RTCPeerConnection-inspect-answer.html:
        * fast/mediastream/RTCPeerConnection-inspect-offer.html:
        * fast/mediastream/RTCPeerConnection-js-built-ins-check-this-expected.txt:
        * fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html:
        * fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html:
        * fast/mediastream/RTCPeerConnection-localDescription.html:
        * fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html:
        * fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
        * fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html:
        * fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html:
        * fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:
        * fast/mediastream/RTCPeerConnection-overloaded-operations-expected.txt:
        * fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
        * fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
        * fast/mediastream/RTCPeerConnection-overloaded-operations.html:
        * fast/mediastream/RTCPeerConnection-remoteDescription.html:
        * fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
        * fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
        * fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
        * fast/mediastream/RTCPeerConnection-stable.html:
        * fast/mediastream/RTCPeerConnection-stats-expected.txt:
        * fast/mediastream/RTCPeerConnection-stats.html:
        * fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
        * fast/mediastream/RTCPeerConnection-statsSelector.html:
        * fast/mediastream/RTCPeerConnection.html:
        * fast/mediastream/RTCRtpSender-replaceTrack.html:
        * fast/mediastream/RTCTrackEvent-constructor.html:
        * platform/efl/TestExpectations:
        * 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/TestExpectations:

2016-10-28  Dave Hyatt  <hyatt@apple.com>

        Fix busted layout test from previous check-in.

        * fast/multicol/column-box-alignment-rtl-expected.html:

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

        Always use iOS preload behavior
        https://bugs.webkit.org/show_bug.cgi?id=164127

        Reviewed by Andreas Kling.

        * http/tests/webgl/1.0.2/readPixelsBadArgs-expected.txt:

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

        [Modern Media Controls] Media Controller: scrubbing support
        https://bugs.webkit.org/show_bug.cgi?id=163726
        <rdar://problem/27989481>

        Reviewed by Dean Jackson.

        Adding new tests for ScrubberSupport that test clicking in the scrubber,
        dragging the scrubber and setting the media currentTime via the media API.
        Also adding the new resource to other MediaController tests.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/playback-support/playback-support-autoplay.html:
        * media/modern-media-controls/playback-support/playback-support-button-click.html:
        * media/modern-media-controls/playback-support/playback-support-media-api.html:
        * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
        * media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt: Added.
        * media/modern-media-controls/scrubber-support/scrubber-support-click.html: Added.
        * media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt: Added.
        * media/modern-media-controls/scrubber-support/scrubber-support-drag.html: Added.
        * media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt: Added.
        * media/modern-media-controls/scrubber-support/scrubber-support-media-api.html: Added.
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

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

        [EFL] Skip media test for a while

        Unreviewed EFL gardening.

        * platform/efl/TestExpectations:

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

        Teach WebGL code about new buffer targets in WebGL2
        https://bugs.webkit.org/show_bug.cgi?id=163924

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/bufferData-offset-length.html:
        * fast/canvas/webgl/webgl2-buffer-targets-expected.txt: Added.
        * fast/canvas/webgl/webgl2-buffer-targets.html: Added.

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

        If an animation's keyframes affect stacking context properties, create stacking context while the animation is running
        https://bugs.webkit.org/show_bug.cgi?id=164094

        Reviewed by Dean Jackson.

        * animations/stacking-context-fill-forwards-expected.html: Added.
        * animations/stacking-context-fill-forwards.html: Added.
        * animations/stacking-context-not-fill-forwards-expected.html: Added.
        * animations/stacking-context-not-fill-forwards.html: Added.
        * animations/stacking-context-unchanged-while-running-expected.html: Added.
        * animations/stacking-context-unchanged-while-running.html: Added.

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

        [macOS] [WebGL2] Temporarily upgrade WebGL 2's internal OpenGL context from version 2.1 to 3.2
        https://bugs.webkit.org/show_bug.cgi?id=164091

        Reviewed by Dean Jackson.

        * TestExpectations:
        * fast/canvas/webgl/webgl2-context-creation-expected.txt: Added.
        * fast/canvas/webgl/webgl2-context-creation.html: Added.

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

        Marking http/tests/security/svg-image-with-css-cross-domain.html as flaky on mac.
        https://bugs.webkit.org/show_bug.cgi?id=163922

        Unreviewed test gardening.

        * TestExpectations:
        * platform/mac/TestExpectations:

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

        Support "insertFromDrop" and "deleteByDrag" for the InputEvent spec
        https://bugs.webkit.org/show_bug.cgi?id=163948
        <rdar://problem/28921433>

        Reviewed by Darin Adler.

        Adds 3 new layout tests verifying that when dragging and dropping (both from a contenteditable to another
        contenteditable and from non-editable content into a contenteditable) beforeinput and input events are fired in
        the right order with the right data and inputTypes, and that undoing/redoing still considers the drag and drop
        command as a single unit. Also tests that both deleting text by dragging and inserting text by dropping are
        preventable.

        * fast/events/before-input-events-prevent-drag-and-drop-expected.txt: Added.
        * fast/events/before-input-events-prevent-drag-and-drop.html: Added.
        * fast/events/input-events-drag-and-drop-expected.txt: Added.
        * fast/events/input-events-drag-and-drop.html: Added.
        * fast/events/input-events-insert-by-drop-expected.txt: Added.
        * fast/events/input-events-insert-by-drop.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac-wk2/TestExpectations:

2016-10-27  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: Create general model object Collection class
        https://bugs.webkit.org/show_bug.cgi?id=163995

        Reviewed by Joseph Pecoraro.

        * inspector/debugger/resources/log-pause-location.js:
        (TestPage.registerInitializer.window.findScript):
        Change name of getter to support WebInspector.Collection.

        * inspector/unit-tests/collection-expected.txt: Added.
        * inspector/unit-tests/collection.html: Added.
        * inspector/unit-tests/resource-collection-expected.txt: Added.
        * inspector/unit-tests/resource-collection.html: Added.
        Created tests for WebInspector.Collection and WebInspector.ResourceCollection.

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

        Web Inspector: Worker should recover if Inspector is closed and never sent Worker.initialized command
        https://bugs.webkit.org/show_bug.cgi?id=164073

        Reviewed by Brian Burg.

        * inspector/worker/worker-recover-if-inspector-close-expected.txt: Added.
        * inspector/worker/worker-recover-if-inspector-close.html: Added.
        Test to ensure a Worker recovers when it is paused on opening waiting for
        Inspector messages and the Inspector disconnects.

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

        Web Inspector: Include ConsoleAgent in Workers - real console.log support
        https://bugs.webkit.org/show_bug.cgi?id=163844
        <rdar://problem/28903328>

        Reviewed by Brian Burg.

        * inspector/console/messageAdded-from-worker-expected.txt: Removed.
        * inspector/console/messageAdded-from-worker.html: Removed.
        * inspector/console/resources/worker-console-log.js: Removed.
        Remove the old partial console in Worker test.

        * inspector/worker/console-basic-expected.txt: Added.
        * inspector/worker/console-basic.html: Added.
        * inspector/worker/resources/worker-console.js: Added.
        New console in Worker test.

        * inspector/worker/worker-create-and-terminate.html:
        The frontend must call initialize on Workers, otherwise they
        are paused forever.

        * http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-connect-src-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-importscripts-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-multiple-csp-headers-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-set-timeout-blocked-expected.txt:
        * http/tests/websocket/tests/hybi/workers/close-expected.txt:
        * http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
        * security/contentSecurityPolicy/worker-inherits-blocks-xhr-expected.txt:
        Rebaseline. We no longer send Worker console messages through the Page, and likewise
        we don't send them to the WebKit client, so they will no longer appear in test output.

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

        Web Inspector: Include RuntimeAgent in Workers - evaluate in Worker context
        https://bugs.webkit.org/show_bug.cgi?id=163835
        <rdar://problem/28901465>

        Reviewed by Brian Burg.

        * inspector/unit-tests/target-manager-expected.txt: Added.
        * inspector/unit-tests/target-manager.html: Added.
        Unit test for TargetManager and its events with Worker creation.

        * inspector/worker/resources/worker-1.js:
        * inspector/worker/runtime-basic-expected.txt: Added.
        * inspector/worker/runtime-basic.html: Added.
        Test comparing RuntimeAgent between Main target and Worker target.

        * inspector/runtime/change-execution-context-identifier-expected.txt:
        * inspector/runtime/change-execution-context-identifier.html:
        RuntimeManager has been updated to have a full ExecutionContext object
        containing a Target + ContextId instead of just a ContextId.

        * inspector/console/console-api-expected.txt:
        * inspector/console/console-api.html:
        * inspector/console/console-table-expected.txt:
        * inspector/console/console-table.html:
        * inspector/debugger/tail-deleted-frames-from-vm-entry.html:
        * inspector/debugger/tail-deleted-frames.html:
        * inspector/debugger/tail-recursion.html:
        * inspector/model/remote-object-expected.txt:
        * inspector/model/remote-object-weak-collection-expected.txt:
        * inspector/model/remote-object-weak-collection.html:
        * inspector/model/remote-object.html:
        * platform/mac/inspector/model/remote-object-expected.txt:
        Introduce a better JSON Filter for RemoteObject in more tests.
        It is important that we filter the _target, because otherwise
        JSON.stringify would throw an error about cycles.

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

        Web Inspector: Introduce Page WorkerAgent and Worker InspectorController
        https://bugs.webkit.org/show_bug.cgi?id=163817
        <rdar://problem/28899063>

        Reviewed by Brian Burg.

        * inspector/worker/resources/worker-1.js: Added.
        * inspector/worker/resources/worker-2.js: Added.
        * inspector/worker/resources/worker-3.js: Added.
        * inspector/worker/worker-create-and-terminate-expected.txt: Added.
        * inspector/worker/worker-create-and-terminate.html: Added.
        Tests for the new Worker domain events.
        The rest of the Worker domain will be tested as soon as
        we add the first Agent in Workers.

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

        Sync up all copies of testharnessreport.js
        https://bugs.webkit.org/show_bug.cgi?id=164071

        Reviewed by Youenn Fablet.

        Sync up all copies of testharnessreport.js for consistency.

        * http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control-expected.txt:
        * http/tests/security/cross-origin-css-in-quirks-1-expected.txt:
        * http/tests/security/cross-origin-css-in-quirks-2-expected.txt:
        * http/tests/security/cross-origin-css-in-quirks-3-expected.txt:
        * http/tests/security/cross-origin-css-in-quirks-4-expected.txt:
        * http/tests/security/same-origin-css-1-expected.txt:
        * http/tests/security/same-origin-css-2-expected.txt:
        * http/tests/security/same-origin-css-3-expected.txt:
        * http/tests/security/same-origin-css-in-quirks-expected.txt:
        * http/tests/w3c/resources/testharnessreport.js:
        (convertResult):
        (self.testRunner.add_completion_callback.):
        (self.testRunner.add_completion_callback):
        (add_completion_callback.sanitize): Deleted.
        (add_completion_callback): Deleted.
        * imported/blink/http/tests/resources/testharnessreport.js:
        (convertResult):
        (self.testRunner.add_completion_callback.):
        (self.testRunner.add_completion_callback):
        (isCSSWGTest): Deleted.
        (isJSTest): Deleted.
        (add_completion_callback.sanitize): Deleted.
        (add_completion_callback.done): Deleted.
        (add_completion_callback): Deleted.
        * resources/testharnessreport.js:
        (self.testRunner.add_completion_callback.):
        (self.testRunner.add_completion_callback):

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

        Prevent hit tests from being performed on an invalid render tree
        https://bugs.webkit.org/show_bug.cgi?id=163877
        <rdar://problem/28675761>

        Reviewed by Simon Fraser.

        * fast/layers/prevent-hit-test-during-layout-expected.txt: Added.
        * fast/layers/prevent-hit-test-during-layout.html: Added.
        * platform/efl/TestExpectations: Skip on this platform.
        * platform/gtk/TestExpectations: Skip on this platform.
        * platform/ios-simulator/TestExpectations: Skip on this platform.
        * platform/win/TestExpectations: Skip on this platform.

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

        Element parameter to CanvasRenderingContext2D.drawFocusIfNeeded() should not be nullable
        https://bugs.webkit.org/show_bug.cgi?id=164062

        Reviewed by Darin Adler.

        Add layout test coverage.

        * fast/canvas/draw-focus-if-needed-null-element-expected.txt: Added.
        * fast/canvas/draw-focus-if-needed-null-element.html: Added.

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

        testharnessreport.js should sanitize the results before printing them
        https://bugs.webkit.org/show_bug.cgi?id=164064

        Reviewed by Youenn Fablet.

        testharnessreport.js should sanitize the results before printing them. We
        currently have 3 copies of this script and only 1 does the sanitization.
        Short term, let do the sanitization in all of them. Longer term, we should
        merge these and have a way to keep them in sync.

        * fast/media/w3c/test_media_queries-expected.txt:
        * fetch/fetch-url-serialization-expected.txt:
        * http/tests/w3c/resources/testharnessreport.js:
        (add_completion_callback.sanitize):
        (add_completion_callback):
        * resources/testharnessreport.js:
        (self.testRunner.add_completion_callback.):
        (self.testRunner.add_completion_callback):

2016-10-27  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        Unreviewed fix of GTK and EFL test bots.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations: Skip media-source tests

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

        REGRESSION(r207753-207755): ASSERTION FAILED: m_parsedStyleSheetCache->isInMemoryCache()
        https://bugs.webkit.org/show_bug.cgi?id=163905

        Reviewed by Antti Koivisto.

        * http/tests/security/cached-cross-origin-shared-css-stylesheet-expected.txt: Added.
        * http/tests/security/cached-cross-origin-shared-css-stylesheet.html: Added.

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

        Refresh WPT tests up to 0acd8f6
        https://bugs.webkit.org/show_bug.cgi?id=164009

        Reviewed by Darin Adler.

        * TestExpectations: Skipping webrtc tests for now.
        * tests-options.json:

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

        [Web IDL] Add support for having string enumerations in their own IDL file
        https://bugs.webkit.org/show_bug.cgi?id=164025

        Reviewed by Darin Adler.

        Rebaseline existign tests as the exception messages differ slightly.

        * storage/indexeddb/exceptions-expected.txt:
        * storage/indexeddb/exceptions-private-expected.txt:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
        * storage/indexeddb/transaction-basics-expected.txt:
        * storage/indexeddb/transaction-basics-private-expected.txt:

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

        [DOMJIT] Implement Node::ownerDocument
        https://bugs.webkit.org/show_bug.cgi?id=164004

        Reviewed by Darin Adler.

        * js/dom/domjit-accessor-owner-document-expected.txt: Added.
        * js/dom/domjit-accessor-owner-document.html: Added.

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

        Replace IDBKeyPath with a WTF::Variant
        https://bugs.webkit.org/show_bug.cgi?id=163909

        Reviewed by Darin Adler.

        Rebaseline a few tests now that IDBIndex.keyPath / IDBObjectStore.keyPath
        no longer incorrectly return DOMStringList objects and return regular
        arrays instead.

        * storage/indexeddb/modern/idbindex-properties-basic-expected.txt:
        * storage/indexeddb/modern/idbindex-properties-basic-private-expected.txt:

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

        Ignore out-of-flow siblings when searching for a spanner candidate.
        https://bugs.webkit.org/show_bug.cgi?id=164042.
        <rdar://problem/28758456>

        Reviewed by Simon Fraser.

        * fast/multicol/crash-when-spanner-candidate-is-out-of-flow-expected.txt: Added.
        * fast/multicol/crash-when-spanner-candidate-is-out-of-flow.html: Added.

2016-10-26  Dan Bernstein  <mitz@apple.com>

        When pasting web archive, width specifiers in srcset attribute change into density specifiers
        https://bugs.webkit.org/show_bug.cgi?id=164027
        <rdar://problem/28964948>

        Reviewed by Tim Horton.

        * editing/pasteboard/img-srcset-copy-paste-canonicalization-expected.txt: Updated.
        * editing/pasteboard/img-srcset-copy-paste-canonicalization.html: Changed to expect a 200w
          specifier to round-trip.
        * editing/pasteboard/resources/img-srcset-copy-paste-canonicalization-iframe.html: Changed
          a 1x specifier to 200w.

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

        [Modern Media Controls] Media Controller: playback support
        https://bugs.webkit.org/show_bug.cgi?id=163678
        <rdar://problem/27989479>

        Reviewed by Dean Jackson.

        New tests for the PlaybackSupport class and adding the new resource to other MediaController tests.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/playback-support/playback-support-autoplay-expected.txt: Added.
        * media/modern-media-controls/playback-support/playback-support-autoplay.html: Copied from LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html.
        * media/modern-media-controls/playback-support/playback-support-button-click-expected.txt: Added.
        * media/modern-media-controls/playback-support/playback-support-button-click.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
        * media/modern-media-controls/playback-support/playback-support-media-api-expected.txt: Added.
        * media/modern-media-controls/playback-support/playback-support-media-api.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
        * media/modern-media-controls/remaining-time-support/remaining-time-support.html:
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:

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

        First parameter to TextTrack.addCue() / removeCue() should not be nullable
        https://bugs.webkit.org/show_bug.cgi?id=164020

        Reviewed by Eric Carlson.

        Add layout test coverage.

        * media/track/texttrack-addCue-null-expected.txt: Added.
        * media/track/texttrack-addCue-null.html: Added.

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

        [Modern Media Controls] Media Controller: elapsed and remaining time support
        https://bugs.webkit.org/show_bug.cgi?id=163679
        <rdar://problem/28851675>

        Reviewed by Dean Jackson.

        New tests for the ElapsedTimeSupport and RemainingTimeSupport classes and adding the
        new resources to other MediaController tests.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support-expected.txt: Added.
        * media/modern-media-controls/elapsed-time-support/elapsed-time-support.html: Added.
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/remaining-time-support/remaining-time-support-expected.txt: Added.
        * media/modern-media-controls/remaining-time-support/remaining-time-support.html: Added.
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:

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

        Unreviewed GTK test gardening

        * platform/gtk/fast/events/input-events-paste-rich-datatransfer-expected.txt: Added.

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

        [Modern Media Controls] http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=164013

        Unreviewed.

        Make the test more robust by only responding to "canplaythrough" once, since it might have fired again
        after seeking, and registering for "seeked" events only after we've reached "canplaythrough", and accounting
        for the first seek to 50s.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt:
        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
        * platform/mac-yosemite/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt: Added.

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

        Enable SDPProcessor for Mac bots
        https://bugs.webkit.org/show_bug.cgi?id=163940

        Reviewed by Eric Carlson.

        This is the first time the tests are activated since a long time.
        Further patches should make the tests pass and/or update them according latest spec.

        * fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
        * fast/mediastream/RTCPeerConnection-createOffer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
        * fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
        * fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
        * fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
        * fast/mediastream/RTCPeerConnection-stable-expected.txt:
        * platform/mac/TestExpectations:

2016-10-26  Nael Ouedraogo  <nael.ouedraogo@crf.canon.fr>
        WebRTC: The RTCTrackEventInit dictionary needs required members
        https://bugs.webkit.org/show_bug.cgi?id=158536

        Update RTCTrackEvent IDL as per specification. Rebase existing tests.

        Reviewed by Chris Dumez.

        * fast/mediastream/RTCTrackEvent-constructor-expected.txt:
        * fast/mediastream/RTCTrackEvent-constructor.html:

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

        Updating attribute by textContent must create a single mutation record and custom element reaction
        https://bugs.webkit.org/show_bug.cgi?id=164003

        Reviewed by Chris Dumez.

        Added a test for ensuring mutating the attribute by nodeValue and textContent creates exactly one mutation record.

        * fast/custom-elements/reactions-for-webkit-extensions.html: Updated the description.
        * fast/dom/MutationObserver/text-content-on-attr-expected.txt: Added.
        * fast/dom/MutationObserver/text-content-on-attr.html: Added.

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

        Unreviewed, fix duplicate GTK expectations

        * platform/gtk/TestExpectations:

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

        LayoutTest accessibility/mac/meter-gauge-value-description.html failing
        https://bugs.webkit.org/show_bug.cgi?id=163997
        <rdar://problem/28948637>

        Reviewed by Chris Fleizach.

        * platform/mac/TestExpectations:

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

        Marking accessibility/mac/meter-gauge-value-description.html as failing on mac.
        https://bugs.webkit.org/show_bug.cgi?id=163997

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        REGRESSION (r178265): XSS Auditor fails to block document.write() of incomplete tag
        https://bugs.webkit.org/show_bug.cgi?id=163978
        <rdar://problem/25962131>

        Reviewed by Darin Adler.

        Add tests to ensure that the XSS Auditor blocks a document.write() of an incomplete HTML image tag.

        * http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror-expected.txt: Added.
        * http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html: Added.
        * http/tests/security/xssAuditor/dom-write-location-open-img-onerror-expected.txt: Added.
        * http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html: Added.
        * http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror-expected.txt: Added.
        * http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html: Added.
        * http/tests/security/xssAuditor/resources/echo-nested-dom-write-location.html: Added.

2016-10-25  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support IDBObjectStore openKeyCursor.
        <rdar://problem/28806930> and https://bugs.webkit.org/show_bug.cgi?id=163954

        Reviewed by Andy Estes.

        * storage/indexeddb/modern/cursor-1-expected.txt:
        * storage/indexeddb/modern/cursor-1-private-expected.txt:
        * storage/indexeddb/modern/resources/cursor-1.js:

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

        Unreviewed GTK test gardening

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/attachment/attachment-select-on-click-expected.txt:
        * platform/gtk/fast/css/word-space-extra-expected.txt:
        * platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
        * platform/gtk/fast/dom/Window/window-properties-performance-expected.txt:

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

        Support InputEvent.dataTransfer for the InputEvent spec
        https://bugs.webkit.org/show_bug.cgi?id=163213
        <rdar://problem/28700407>

        Reviewed by Ryosuke Niwa.

        Adds 2 new layout tests verifying that input events dispatched as a result of pasting or spell checking contain
        DataTransfers that have rich and plain text representations of the contents being inserted.

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

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

        Implement rel=noopener
        https://bugs.webkit.org/show_bug.cgi?id=155166
        <rdar://problem/25193787>

        Reviewed by Brent Fulgham.

        * fast/dom/DOMTokenList-supports-expected.txt:
        * fast/dom/DOMTokenList-supports.html:
        * fast/dom/Window/a-rel-noopener-expected.txt: Added.
        * fast/dom/Window/a-rel-noopener.html: Added.
        * fast/dom/Window/area-rel-noopener-expected.txt: Added.
        * fast/dom/Window/area-rel-noopener.html: Added.
        * fast/dom/Window/resources/rel-noopener.js: Added.

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

        [MediaStream] Add "has capture device" bit to media state flags
        https://bugs.webkit.org/show_bug.cgi?id=163952

        Reviewed by Jer Noble.

        * fast/mediastream/MediaStream-page-muted-expected.txt:
        * fast/mediastream/MediaStream-page-muted.html:
        * media/muted-video-is-playing-audio-expected.txt:
        * media/muted-video-is-playing-audio.html:
        * webaudio/web-audio-is-playing.html:
        * webaudio/web-audio-is-playing-expected.txt:

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

        Unreviewed, rolling out r207827 and r207828.
        https://bugs.webkit.org/show_bug.cgi?id=163965

        Caused LayoutTest webaudio/web-audio-is-playing.html to time
        out on macOS. (Requested by ryanhaddad on #webkit).

        Reverted changesets:

        "[MediaStream] Add "has capture device" bit to media state
        flags"
        https://bugs.webkit.org/show_bug.cgi?id=163952
        http://trac.webkit.org/changeset/207827

        "[MediaStream] Add "has capture device" bit to media state
        flags"
        https://bugs.webkit.org/show_bug.cgi?id=163952
        http://trac.webkit.org/changeset/207828

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

        [Modern Media Controls] Media Controller: skip back support
        https://bugs.webkit.org/show_bug.cgi?id=163725
        <rdar://problem/27989480>

        Reviewed by Dean Jackson.

        Added a new test for the SkipBackButton class to ensure that we correctly seek back by 30 seconds when pressed.
        Updated the other tests to reflect the addition of the SkipBackSupport class.

        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt: Added.
        * http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html: Added.
        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click.html:
        * media/modern-media-controls/mute-support/mute-support-media-api.html:
        * media/modern-media-controls/mute-support/mute-support-muted.html:
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:

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

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

        Broke quip.com so that user can no longer type a space
        (Requested by rniwa on #webkit).

        Reverted changeset:

        "Add a plain space instead of &nbsp; between text nodes"
        https://bugs.webkit.org/show_bug.cgi?id=123163
        http://trac.webkit.org/changeset/207578

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

        WebCryptoAPI test gardening after r207809.
        https://bugs.webkit.org/show_bug.cgi?id=159638

        Unreviewed test gardening.

        * TestExpectations:

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

        [MediaStream] Add "has capture device" bit to media state flags
        https://bugs.webkit.org/show_bug.cgi?id=163952

        Reviewed by Jer Noble.

        * fast/mediastream/MediaStream-page-muted-expected.txt:
        * fast/mediastream/MediaStream-page-muted.html:
        * media/muted-video-is-playing-audio-expected.txt:
        * media/muted-video-is-playing-audio.html:

2016-10-25  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support new IDBTransaction interfaces.
        <rdar://problem/28806928> and https://bugs.webkit.org/show_bug.cgi?id=163927

        Reviewed by Sam Weinig.

        * storage/indexeddb/modern/idbtransaction-objectstores-1-expected.txt: Added.
        * storage/indexeddb/modern/idbtransaction-objectstores-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbtransaction-objectstores-1-private.html: Added.
        * storage/indexeddb/modern/idbtransaction-objectstores-1.html: Added.
        * storage/indexeddb/modern/resources/idbtransaction-objectstores-1.js: Added.

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

        Rebase test after r207805
        https://bugs.webkit.org/show_bug.cgi?id=163929

        * fetch/fetch-url-serialization-expected.txt:

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

        Custom elements reactions should have a queue per element
        https://bugs.webkit.org/show_bug.cgi?id=163878

        Reviewed by Antti Koivisto.

        Added a W3C style testharness.js test for making sure the custom element reaction queue exists per element,
        and added a WebKit style test for making sure that the backup element queue exists.

        * fast/custom-elements/backup-element-queue-expected.txt: Added.
        * fast/custom-elements/backup-element-queue.html: Added.
        * fast/custom-elements/custom-element-reaction-queue-expected.txt: Added.
        * fast/custom-elements/custom-element-reaction-queue.html: Added.

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

        Update SubtleCrypto::generateKey to match the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=163718
        <rdar://problem/28864380>

        Reviewed by Chris Dumez.

        Besides adding tests for SubtleCrypto::generateKey related stuff and fixing HMAC. This patch also add
        shouldReject(_a, _rejectCallback, _resolveCallback, _message) in js-test-pre.js.

        * TestExpectations:
        * crypto/subtle/aes-cbc-generate-key-length-128-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-key-length-128.html: Added.
        * crypto/subtle/aes-cbc-generate-key-length-192-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-key-length-192.html: Added.
        * crypto/subtle/aes-cbc-generate-key-length-256-expected.txt: Added.
        * crypto/subtle/aes-cbc-generate-key-length-256.html: Added.
        * crypto/subtle/aes-generate-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/aes-generate-key-malformed-parameters.html: Added.
        * crypto/subtle/aes-kw-generate-key-expected.txt: Added.
        * crypto/subtle/aes-kw-generate-key.html: Added.
        * crypto/subtle/generate-key-malformed-paramters-expected.txt: Added.
        * crypto/subtle/generate-key-malformed-paramters.html: Added.
        * crypto/subtle/hmac-generate-key-customized-length-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-customized-length.html: Added.
        * crypto/subtle/hmac-generate-key-hash-object-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-hash-object.html: Added.
        * crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-malformed-parameters.html: Added.
        * crypto/subtle/hmac-generate-key-sha1-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-sha1.html: Added.
        * crypto/subtle/hmac-generate-key-sha224-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-sha224.html: Added.
        * crypto/subtle/hmac-generate-key-sha256-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-sha256.html: Added.
        * crypto/subtle/hmac-generate-key-sha384-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-sha384.html: Added.
        * crypto/subtle/hmac-generate-key-sha512-expected.txt: Added.
        * crypto/subtle/hmac-generate-key-sha512.html: Added.
        * crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Added.
        * crypto/subtle/rsa-generate-key-malformed-parameters.html: Added.
        * crypto/subtle/rsa-oaep-generate-key-expected.txt: Added.
        * crypto/subtle/rsa-oaep-generate-key.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html: Added.
        * crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt: Added.
        * crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html: Added.
        * crypto/webkitSubtle/hmac-generate-key-expected.txt:
        * crypto/webkitSubtle/hmac-generate-key.html:
        * crypto/workers/subtle/aes-generate-key-expected.txt: Added.
        * crypto/workers/subtle/aes-generate-key.html: Added.
        * crypto/workers/subtle/hmac-generate-key-expected.txt: Added.
        * crypto/workers/subtle/hmac-generate-key.html: Added.
        * crypto/workers/subtle/resources/aes-generate-key.js: Added.
        * crypto/workers/subtle/resources/hmac-generate-key.js: Added.
        * crypto/workers/subtle/resources/rsa-generate-key.js: Added.
        * crypto/workers/subtle/rsa-generate-key-expected.txt: Added.
        * crypto/workers/subtle/rsa-generate-key.html: Added.
        * resources/js-test-pre.js:

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

        IDBDatabase.createObjectStore() should take a IDBObjectStoreParameters dictionary in parameter
        https://bugs.webkit.org/show_bug.cgi?id=163916

        Reviewed by Darin Adler.

        Rebaseline existing tests now that the exception messages differ slightly.

        * storage/indexeddb/create-object-store-options-expected.txt:
        * storage/indexeddb/create-object-store-options-private-expected.txt:

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

        URLParser should match old URL::parse with %2E in path
        https://bugs.webkit.org/show_bug.cgi?id=163929

        Reviewed by Alexey Proskuryakov.

        * fast/url/path-expected.txt:
        * fast/url/standard-url-expected.txt:

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

        Do not update selection rect on dirty lineboxes.
        https://bugs.webkit.org/show_bug.cgi?id=163862
        <rdar://problem/28813156>

        Reviewed by Simon Fraser.

        * fast/css-generated-content/dynamic-first-letter-selection-clear-crash-expected.txt: Added.
        * fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html: Added.

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

        Unreviewed, rolling out r207795.

        Introduced API test failures on iOS and macOS.

        Reverted changeset:

        "URLParser should match old URL::parse with %2E in path"
        https://bugs.webkit.org/show_bug.cgi?id=163929
        http://trac.webkit.org/changeset/207795

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

        Arrow functions with concise bodies cannot return regular expressions
        https://bugs.webkit.org/show_bug.cgi?id=163162

        Reviewed by Filip Pizlo.

        * fast/regex/dom/non-pattern-characters-expected.txt:
        * js/arrowfunction-syntax-errors-expected.txt:
        * js/regexp-compile-crash-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T1-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T4-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.2_T2-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T1-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T3-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T1-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T3-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.2_T1-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T1-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T3-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T1-expected.txt:
        * sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T3-expected.txt:

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

        event.(dataTransfer|clipboardData).getData('text/html') (onpaste, ondrop)
        https://bugs.webkit.org/show_bug.cgi?id=19893
        <rdar://problem/6055546>

        Reviewed by Ryosuke Niwa.

        Unskip corresponding tests on Mac.

        * editing/pasteboard/onpaste-text-html-expected.txt:
        * fast/events/ondrop-text-html-expected.txt:
        * platform/mac/TestExpectations:
        * platform/wk2/TestExpectations:

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

        URLParser should match old URL::parse with %2E in path
        https://bugs.webkit.org/show_bug.cgi?id=163929

        Reviewed by Alexey Proskuryakov.

        * fast/url/path-expected.txt:
        * fast/url/standard-url-expected.txt:
        * fetch/fetch-url-serialization-expected.txt:

2016-10-24  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support new IDBKeyRange interfaces.
        <rdar://problem/28806929> and https://bugs.webkit.org/show_bug.cgi?id=163910

        Reviewed by Andy Estes.

        * storage/indexeddb/keyrange-expected.txt:
        * storage/indexeddb/keyrange-private-expected.txt:
        * storage/indexeddb/resources/keyrange.js:

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

        [DOMJIT] Add a way for DOMJIT::Patchpoint to express effects
        https://bugs.webkit.org/show_bug.cgi?id=163657

        Reviewed by Saam Barati.

        * js/dom/domjit-accessor-different-effect-expected.txt: Added.
        * js/dom/domjit-accessor-different-effect.html: Added.
        * js/dom/domjit-accessor-effect-expected.txt: Added.
        * js/dom/domjit-accessor-effect-should-overlap-with-call-expected.txt: Added.
        * js/dom/domjit-accessor-effect-should-overlap-with-call.html: Added.
        * js/dom/domjit-accessor-effect.html: Added.
        * js/dom/domjit-accessor-licm-expected.txt: Added.
        * js/dom/domjit-accessor-licm.html: Added.
        * js/dom/domjit-accessor-node-type-effect-should-not-overlap-with-call-since-pure-expected.txt: Added.
        * js/dom/domjit-accessor-node-type-effect-should-not-overlap-with-call-since-pure.html: Added.

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

        Font variations test gardening

        Unreviewed.

        * platform/mac/TestExpectations:

2016-10-24  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: Scope chain shouldn't show empty Closure sections
        https://bugs.webkit.org/show_bug.cgi?id=152348

        Reviewed by Joseph Pecoraro.

        * inspector/model/scope-chain-node-expected.txt:
        * inspector/model/scope-chain-node.html:
        Added "empty" indicators to scopes without any property descriptors.

2016-10-24  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: Improve Quick Open sorting algorithm
        https://bugs.webkit.org/show_bug.cgi?id=163705

        Reviewed by Joseph Pecoraro.

        * inspector/unit-tests/resource-query-controller-expected.txt:
        * inspector/unit-tests/resource-query-controller.html:
        Changed the ExecuteQueryGeneralRankings and ExecuteQueryPositionRankings tests to reflect
        the new ranking logic.  Added ExecuteQueryConsecutiveRankings to test more realistic
        scenarios and ensure better ranking.

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

        Rebaseline tests for ios-simulator after r207757.
        https://bugs.webkit.org/show_bug.cgi?id=163904

        Unreviewed test gardening.

        * platform/ios-simulator/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
        * platform/ios-simulator/svg/batik/text/verticalText-expected.txt:
        * platform/ios-simulator/svg/batik/text/verticalTextOnPath-expected.txt:
        * platform/ios-simulator/svg/text/text-align-06-b-expected.txt:
        * platform/ios-simulator/svg/text/text-vkern-expected.txt:

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

        Rebase tests after r207767
        https://bugs.webkit.org/show_bug.cgi?id=163891

        * 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:
        No more CSSCharsetRule.

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

        Rebaseline inspector/dom/getAccessibilityPropertiesForNode.html
        https://bugs.webkit.org/show_bug.cgi?id=163901

        Unreviewed test gardening.

        * inspector/dom/getAccessibilityPropertiesForNode-expected.txt:

2016-10-24  Dave Hyatt  <hyatt@apple.com>

        Remove CSSCharsetRule from the CSS OM
        https://bugs.webkit.org/show_bug.cgi?id=163891

        Reviewed by Darin Adler.

        * fast/dom/Window/resources/window-properties.js:
        * fast/dom/dom-constructors-expected.txt:
        * fast/dom/dom-constructors.html:
        * fast/encoding/css-charset-default.xhtml:
        * fast/encoding/css-charset-dom-expected.txt: Removed.
        * fast/encoding/css-charset-dom.html: Removed.
        * platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:

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

        [MediaStream] Separate media capture and audio playback muting
        https://bugs.webkit.org/show_bug.cgi?id=163855
        <rdar://problem/28827186>

        Reviewed by Darin Adler.

        * fast/mediastream/MediaStream-page-muted-expected.txt: Added.
        * fast/mediastream/MediaStream-page-muted.html: Added.
        * media/video-muted-after-setting-page-muted-state.html: Updated.

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

        Activate WEB_RTC compilation flags for Mac bots
        https://bugs.webkit.org/show_bug.cgi?id=163886

        Reviewed by Eric Carlson.

        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
        * platform/mac/js/dom/global-constructors-attributes-expected.txt:

2016-10-24  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support IDBIndex name assignment.
        <rdar://problem/28806932> and https://bugs.webkit.org/show_bug.cgi?id=163805

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/index-rename-1-expected.txt: Added.
        * storage/indexeddb/modern/index-rename-1-private-expected.txt: Added.
        * storage/indexeddb/modern/index-rename-1-private.html: Added.
        * storage/indexeddb/modern/index-rename-1.html: Added.
        * storage/indexeddb/modern/resources/index-rename-1.js: Added.

        * storage/indexeddb/readonly-expected.txt:
        * storage/indexeddb/readonly-private-expected.txt:
        * storage/indexeddb/resources/readonly.js: Removed the test that verifies that index names are
          readonly as they are no longer readonly.

2016-10-24  Dave Hyatt  <hyatt@apple.com>

        [CSS Parser] Unprefix -webkit-writing-mode
        https://bugs.webkit.org/show_bug.cgi?id=163870

        Reviewed by Zalan Bujtas.

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
        * platform/mac/svg/text/text-align-06-b-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

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

        svg/as-image/svg-image-with-data-uri-use-data-uri.svg is flaky after r207754
        https://bugs.webkit.org/show_bug.cgi?id=163887

        Unreviewed.

        * TestExpectations: Marking svg/as-image/svg-image-with-data-uri-use-data-uri.svg as crashing.

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

        Avoid unnecessary full style resolution in getComputedStyle for non-inherited properties
        https://bugs.webkit.org/show_bug.cgi?id=163875

        Reviewed by Andreas Kling.

        * fast/css/getComputedStyle/getComputedStyle-style-resolution-expected.txt: Added.
        * fast/css/getComputedStyle/getComputedStyle-style-resolution.html: Added.

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

        ASSERTION FAILED: canvas()->securityOrigin()->toString() == cachedImage.origin()->toString()
        https://bugs.webkit.org/show_bug.cgi?id=163242

        Reviewed by Darin Adler.

        * http/tests/security/cross-origin-cached-images-canvas-expected.txt: Added.
        * http/tests/security/cross-origin-cached-images-canvas.html: Added.
        * http/tests/security/resources/cross-origin-cached-image-canvas-iframe.html: Added.

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

        Redirections should be upgraded if CSP policy says so
        https://bugs.webkit.org/show_bug.cgi?id=163544

        Reviewed by Darin Adler.

        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-after-redirect.https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-after-redirect.https.html: Added.
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt:
        * http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html:
        * platform/mac/TestExpectations:

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

        [WebIDL] Add IDLType based toJS conversion
        https://bugs.webkit.org/show_bug.cgi?id=163861

        Reviewed by Darin Adler.

        * js/dom/webidl-type-mapping-expected.txt:
        * js/dom/webidl-type-mapping.html:

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

        Unreviewed, rolling out r207727.

        broke 15 selection test cases.

        Reverted changeset:

        "Do not update selection rect on dirty lineboxes."
        https://bugs.webkit.org/show_bug.cgi?id=163862
        http://trac.webkit.org/changeset/207727

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

        Do not update selection rect on dirty lineboxes.
        https://bugs.webkit.org/show_bug.cgi?id=163862
        <rdar://problem/28813156>

        Reviewed by Simon Fraser.

        * fast/css-generated-content/dynamic-first-letter-selection-clear-crash-expected.txt: Added.
        * fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html: Added.

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

        ASSERTION FAILED: m_fonts in &WebCore::FontCascade::primaryFont
        https://bugs.webkit.org/show_bug.cgi?id=163459

        Reviewed by Darin Adler.

        * fast/text/font-size-calc-expected.txt: Added.
        * fast/text/font-size-calc.html: Added.

2016-10-22  Dan Bernstein  <mitz@apple.com>

        Dynamically-added backdrop filter to clip-path'd element with 3D transform renders incorrectly (without clip)
        https://bugs.webkit.org/show_bug.cgi?id=163497

        Reviewed by Simon Fraser.

        Based on the test case from Tim Horton.

        * css3/filters/backdrop/dynamic-with-clip-path-expected.html: Added.
        * css3/filters/backdrop/dynamic-with-clip-path.html: Added.

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

        Backdrop filter doesn't show if removed then re-added
        https://bugs.webkit.org/show_bug.cgi?id=163860

        Reviewed by Dan Bernstein.

        * css3/filters/backdrop/add-remove-add-backdrop-filter-expected.html: Added.
        * css3/filters/backdrop/add-remove-add-backdrop-filter.html: Added.

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

        Fix repainting of slow repaint objects in WK1 when page scale is applied
        https://bugs.webkit.org/show_bug.cgi?id=163854

        Reviewed by Zalan Bujtas.
        
        Test that logs the repaint rect after scrolling a page with an element
        with a fixed background. The WebKit1 result is the interesting one.

        * fast/repaint/zoomed-fixed-background-expected.txt: Added.
        * fast/repaint/zoomed-fixed-background.html: Added.
        * platform/mac-wk1/fast/repaint/zoomed-fixed-background-expected.txt: Added.

2016-10-22  Darin Adler  <darin@apple.com>

        Move HTML canvas and tracks from ExceptionCode to Exception
        https://bugs.webkit.org/show_bug.cgi?id=163853

        Reviewed by Chris Dumez.

        * media/track/regions-webvtt/vtt-region-constructor-expected.txt:
        Change expectations to expect the more specific TypeError message
        that the bindings generate as opposed to the generic ones that the
        WebVTT DOM code was generating before.

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

        Unreviewed GTK test gardening

        * platform/gtk/TestExpectations:
        * platform/gtk/imported/w3c/web-platform-tests/touch-events/historical-expected.txt: Added.
        * platform/gtk/imported/w3c/web-platform-tests/touch-events/touch-globaleventhandler-interface-expected.txt: Added.
        * platform/gtk/svg/custom/repaint-shadow-expected.txt: Renamed from LayoutTests/platform/gtk/svg/text/repaint-shadow-expected.txt.
        * platform/gtk/svg/custom/simple-text-double-shadow-expected.txt: Renamed from LayoutTests/platform/gtk/svg/custom/simple-text-double-shadow.txt.

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

        Bindings error message for missing required dictionary member should be more explicit
        https://bugs.webkit.org/show_bug.cgi?id=163665

        Reviewed by Darin Adler.

        Update existing tests.

        * fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt:

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

        Upgrading custom element should enqueue attributeChanged and connected callbacks
        https://bugs.webkit.org/show_bug.cgi?id=163840

        Reviewed by Darin Adler.

        Added a W3C style testharness.js test for making sure upgrading custom custom elements
        would enqueue attributedChanged and connected reactions.

        * fast/custom-elements/upgrading-enqueue-reactions-expected.txt: Added.
        * fast/custom-elements/upgrading-enqueue-reactions.html: Added.

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

        Update custom elements tests
        https://bugs.webkit.org/show_bug.cgi?id=163815

        Reviewed by Joseph Pecoraro.

        Removed the tests that have been upstreamed and reimported from web-platform-tests.

        * fast/custom-elements/Document-createElement-expected.txt: Removed.
        * fast/custom-elements/enqueue-custom-element-upgrade-reaction-expected.txt: Removed.
        * fast/custom-elements/parser/: Removed.
        * fast/custom-elements/upgrading/: Removed.

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

        Unreviewed GTK test gardening

        * platform/gtk/TestExpectations:
        * platform/gtk/svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt: Added.
        * platform/gtk/svg/W3C-SVG-1.1/struct-dom-04-b-expected.txt: Added.
        * platform/gtk/svg/W3C-SVG-1.1/struct-dom-05-b-expected.txt: Added.
        * platform/gtk/svg/custom/dynamic-svg-document-creation-expected.txt:
        * platform/gtk/svg/custom/simple-text-double-shadow.txt: Added.
        * platform/gtk/svg/text/repaint-shadow-expected.txt: Added.
        * platform/gtk/svg/text/text-hkern-on-vertical-text-expected.png:
        * platform/gtk/svg/text/text-hkern-on-vertical-text-expected.txt: Added.
        * platform/gtk/svg/text/text-vkern-on-horizontal-text-expected.txt: Added.

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

        Support (insertFrom|deleteBy)Composition and (insert|delete)CompositionText inputTypes for InputEvents
        https://bugs.webkit.org/show_bug.cgi?id=163460
        <rdar://problem/28784142>

        Reviewed by Darin Adler.

        Adds 4 new layout tests to verify that composition events are dispatched as expected when using IME, and that
        input events of type "insertFromComposition" and "deleteByComposition" can be prevented.

        Also rebaselines an existing WK1 editing test (text-input-controller.html) to account for how we now delete the
        existing composition text before inserting the finalized composition text in Editor::setComposition. This means
        that there are a few more delegate calls than there were before (as seen in the expected output), although the
        resulting behavior is still the same.

        * editing/mac/input/text-input-controller-expected.txt:
        * fast/events/before-input-events-prevent-insert-composition.html: Added.
        * fast/events/before-input-events-prevent-recomposition.html: Added.
        * fast/events/input-events-ime-composition.html: Added.
        * fast/events/input-events-ime-recomposition.html: Added.
        * platform/ios-simulator/TestExpectations:

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

        SVG should not paint selection within a mask
        https://bugs.webkit.org/show_bug.cgi?id=163772
        <rdar://problem/28705129>

        Reviewed by Simon Fraser.

        * svg/masking/mask-should-not-paint-selection-expected.html: Added.
        * svg/masking/mask-should-not-paint-selection.html: Added.

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

        Do not mutate the render tree while collecting selection repaint rects.
        https://bugs.webkit.org/show_bug.cgi?id=163800
        <rdar://problem/28806886>

        Reviewed by David Hyatt.

        * fast/lists/crash-when-list-marker-is-moved-during-selection-expected.txt: Added.
        * fast/lists/crash-when-list-marker-is-moved-during-selection.html: Added.

2016-10-21  Miguel Gomez  <magomez@igalia.com>

        [GTK] Unreviewed gardening: update expectations after r207664
        https://bugs.webkit.org/show_bug.cgi?id=163784

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

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

        AudioNode.connect(): First parameter should not be nullable
        https://bugs.webkit.org/show_bug.cgi?id=163773

        Reviewed by Darin Adler.

        Improve test coverage.

        * webaudio/audionode-expected.txt:
        * webaudio/audionode.html:

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

        Implement InputEvent.getTargetRanges() for the input events spec
        https://bugs.webkit.org/show_bug.cgi?id=162947
        <rdar://problem/28853079>

        Reviewed by Darin Adler.

        Adds 3 new layout tests and tweaks some existing unit tests. See WebCore ChangeLog entry for more details.
        Tests verify the result of getTargetRanges() when breaking out of a list, deleting backwards and forwards at
        all text granularities, deleting selected text, and spell checking (candidate text replacement).

        * fast/events/before-input-delete-empty-list-target-ranges-expected.txt: Added.
        * fast/events/before-input-delete-empty-list-target-ranges.html: Added.
        * fast/events/before-input-delete-text-target-ranges-expected.txt: Added.
        * fast/events/before-input-delete-text-target-ranges.html: Added.
        * fast/events/before-input-events-prevent-default-in-textfield.html:
        * fast/events/before-input-replace-text-target-ranges-expected.txt: Added.
        * fast/events/before-input-replace-text-target-ranges.html: Added.
        * fast/events/input-events-fired-when-typing-expected.txt:
        * fast/events/input-events-fired-when-typing.html:
        * 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-21  Javier Fernandez  <jfernandez@igalia.com>

        [css-grid] Content Alignment broken with indefinite sized grid container
        https://bugs.webkit.org/show_bug.cgi?id=163724

        Reviewed by Manuel Rego Casasnovas.

        Added additional test cases to verify we compute properly the
        available free space for content-alignment, handling correctly the
        overflow when needed.

        * fast/css-grid-layout/grid-content-alignment-overflow.html:

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

        [mac-wk2 release] LayoutTest media/media-source/media-source-seek-detach-crash.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=163751

        Reviewed by Eric Carlson.

        Don't log when we receive an "error" event; this makes the test non-deterministic.

        * media/media-source/media-source-seek-detach-crash-expected.txt:
        * media/media-source/media-source-seek-detach-crash.html:

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

        CRASH in SourceBuffer::sourceBufferPrivateDidReceiveSample + 2169
        https://bugs.webkit.org/show_bug.cgi?id=163735

        Reviewed by Eric Carlson.

        * media/media-source/media-source-sample-wrong-track-id-expected.txt: Added.
        * media/media-source/media-source-sample-wrong-track-id.html: Added.

2016-10-20  Zan Dobersek  <zdobersek@igalia.com>

        Import W3C EME tests
        https://bugs.webkit.org/show_bug.cgi?id=163214

        Reviewed by Youenn Fablet.

        Skip the newly-imported W3C EME tests on all platforms.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations:
        * tests-options.json:

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

        [JSC] Drop isEnvironmentRecord type info flag and use JSType information instead
        https://bugs.webkit.org/show_bug.cgi?id=163761

        Reviewed by Keith Miller.

        * js/dom/script-tests/string-prototype-scopes-in-workers.js: Added.
        (catch):
        * js/dom/script-tests/string-prototype-scopes.js: Added.
        (catch):
        * js/dom/string-prototype-scopes-expected.txt: Added.
        * js/dom/string-prototype-scopes-in-workers-expected.txt: Added.
        * js/dom/string-prototype-scopes-in-workers.html: Added.
        * js/dom/string-prototype-scopes.html: Added.

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

        Implement WebGL2 bufferData() and bufferSubData() methods
        https://bugs.webkit.org/show_bug.cgi?id=163759

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/bufferData-offset-length-expected.txt: Added.
        * fast/canvas/webgl/bufferData-offset-length.html: Added.
        * fast/canvas/webgl/resources/webgl-test.js:
        (create3DContext):
        (initWebGL):

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

        AX: VoiceOver is not detecting ARIA treeview if it contains role="presentation"
        https://bugs.webkit.org/show_bug.cgi?id=163763

        Reviewed by Chris Fleizach.

        * accessibility/mac/aria-tree-with-presentation-role-expected.txt: Added.
        * accessibility/mac/aria-tree-with-presentation-role.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-20  Brady Eidson  <beidson@apple.com>

        IndexedDB 2.0: Support IDBObjectStore name assignment.
        <rdar://problem/28806931> and https://bugs.webkit.org/show_bug.cgi?id=163749

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/objectstore-rename-1-expected.txt: Added.
        * storage/indexeddb/modern/objectstore-rename-1-private-expected.txt: Added.
        * storage/indexeddb/modern/objectstore-rename-1-private.html: Added.
        * storage/indexeddb/modern/objectstore-rename-1.html: Added.
        * storage/indexeddb/modern/resources/objectstore-rename-1.js: Added.

        * storage/indexeddb/readonly-expected.txt:
        * storage/indexeddb/readonly-private-expected.txt:
        * storage/indexeddb/resources/readonly.js: Removed the test that verifies that object store names are
          readonly as they are no longer readonly.

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

        Unreviewed gardening.

        Update expected results.

        * imported/blink/fast/pagination/first-letter-inherit-all-crash-expected.txt:

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

        Shapes tests failing on iOS
        https://bugs.webkit.org/show_bug.cgi?id=163755
        <rdar://problem/28875780>

        Skip these temporarily on iOS.

        * platform/ios-simulator/TestExpectations:

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

        Marking compositing/iframes/page-cache-layer-tree.html as flaky on mac-wk1.
        https://bugs.webkit.org/show_bug.cgi?id=163750

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Passing a number as the pixel parameter to texImage2D() doesn't thrown an exception
        https://bugs.webkit.org/show_bug.cgi?id=163715

        Reviewed by Darin Adler.

        Update existing tests now that we throw a TypeError when passing an unexpected
        type for a parameter where we expect a typed array.

        * fast/canvas/webgl/script-tests/texImageTest.js:
        * fast/canvas/webgl/texImageTest-expected.txt:
        * webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-with-invalid-data.html:

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

        Marking media/modern-media-controls/media-controller/media-controller-resize.html as flaky.
        https://bugs.webkit.org/show_bug.cgi?id=163636

        Unreviewed test gardening.

        * TestExpectations:

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

        Improve error message when passing a null ArrayBuffer to bufferData()
        https://bugs.webkit.org/show_bug.cgi?id=163745

        Reviewed by Dean Jackson.

        * fast/canvas/webgl/bufferData-nullable-array-buffer-view-expected.txt: Added.
        * fast/canvas/webgl/bufferData-nullable-array-buffer-view.html: Added.

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

        Stop searching for first-letter containers at multi-column boundary.
        https://bugs.webkit.org/show_bug.cgi?id=163739
        <rdar://problem/28810750>

        Reviewed by David Hyatt.

        * fast/css-generated-content/first-letter-move-to-multicolumn-crash-expected.txt: Added.
        * fast/css-generated-content/first-letter-move-to-multicolumn-crash.html: Added.

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

        Support CSS Shapes Level 1 without a prefix
        https://bugs.webkit.org/show_bug.cgi?id=163709
        <rdar://problem/28859369>

        Reviewed by Myles Maxfield.

        Unskip all but a couple of tests.

        * TestExpectations:

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

        CRASH in WebCore::MediaSource::seekToTime + 185
        https://bugs.webkit.org/show_bug.cgi?id=163652

        Reviewed by Eric Carlson.

        * media/media-source/content/test-48kHz.m4a: Added.
        * media/media-source/content/test-48khz-manifest.json: Added.
        * media/media-source/media-source-seek-detach-crash-expected.txt: Added.
        * media/media-source/media-source-seek-detach-crash.html: Added.

2016-10-20  Andreas Kling  <akling@apple.com>

        Drop StyleResolver and SelectorQueryCache when entering PageCache.
        <https://webkit.org/b/154238>

        Reviewed by Antti Koivisto.

        Progression in compositing/iframes/page-cache-layer-tree.html, when navigating back,
        the two iframes' dimensions correctly exclude the horizontal scrollbar's height since
        it's not present after a style recalc.

        * compositing/iframes/page-cache-layer-tree-expected.txt:

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

        WebRTC: The MediaStreamTrackEvent init dictionary needs a required track member
        https://bugs.webkit.org/show_bug.cgi?id=146232

        Update MediaStreamTrackEvent IDL as per specification.

        No additional test required, rebase existings tests.

        Reviewed by Darin Adler.

        * fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt:
        * fast/mediastream/MediaStreamTrackEvent-constructor.html: Remove
        useless tests.

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

        [Modern Media Controls] Media Controller: mute support
        https://bugs.webkit.org/show_bug.cgi?id=163677
        <rdar://problem/28851582>

        Reviewed by Dean Jackson.

        New tests for the MuteSupport class and adding the new resource to other MediaController tests.

        * media/modern-media-controls/media-controller/media-controller-constructor.html:
        * media/modern-media-controls/media-controller/media-controller-resize.html:
        * media/modern-media-controls/mute-support/mute-support-button-click-expected.txt: Added.
        * media/modern-media-controls/mute-support/mute-support-button-click.html: Added.
        * media/modern-media-controls/mute-support/mute-support-media-api-expected.txt: Added.
        * media/modern-media-controls/mute-support/mute-support-media-api.html: Added.
        * media/modern-media-controls/mute-support/mute-support-muted-expected.txt: Added.
        * media/modern-media-controls/mute-support/mute-support-muted.html: Added.
        * media/modern-media-controls/start-support/start-support-audio.html:
        * media/modern-media-controls/start-support/start-support-autoplay.html:
        * media/modern-media-controls/start-support/start-support-click-to-start.html:
        * media/modern-media-controls/start-support/start-support-error.html:
        * media/modern-media-controls/start-support/start-support-fullscreen.html:
        * media/modern-media-controls/start-support/start-support-manual-play.html:
        * media/modern-media-controls/start-support/start-support-no-source.html:

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

        REGRESSION (r206025): All YouTube videos play with black bars on all four sides
        https://bugs.webkit.org/show_bug.cgi?id=163308

        Reviewed by Darin Adler.

        * media/media-source/media-source-resize-expected.txt: Added.
        * media/media-source/media-source-resize.html: Added.

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

        AX: [Mac] Mark element AXAPI should comform to specs
        https://bugs.webkit.org/show_bug.cgi?id=163707

        Reviewed by Chris Fleizach.

        Added the modified roles-computedRoleString-expected.txt in mac platform so 
        that the exposed mark element won't affect other platform.

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

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

        CSS font-variation-settings does not handle uppercase axis names in variable fonts
        https://bugs.webkit.org/show_bug.cgi?id=163546

        Reviewed by Dean Jackson.

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

2016-10-19  Joone Hur  <joone.hur@intel.com>

        Add a plain space instead of &nbsp; between text nodes
        https://bugs.webkit.org/show_bug.cgi?id=123163

        Reviewed by Ryosuke Niwa.

        When we rebalance white spaces, &nbsp; can be added as space
        under some conditions. This patch adds a condition that the next
        sibling text node should not exist.

        * accessibility/mac/find-and-replace-match-capitalization-expected.txt:
        * accessibility/mac/find-and-replace-match-capitalization.html:
        * accessibility/mac/select-text/select-text-135575-expected.txt:
        * accessibility/mac/select-text/select-text-7-expected.txt:
        * accessibility/mac/select-text/select-text-8-expected.txt:
        * accessibility/mac/select-text/select-text-9-expected.txt:
        * editing/mac/spelling/autocorrection-blockquote-crash-expected.txt:
        * editing/pasteboard/paste-text-003-expected.txt:
        * platform/gtk/editing/execCommand/paste-1-expected.txt:
        * platform/gtk/editing/pasteboard/paste-2-expected.txt:
        * platform/gtk/editing/pasteboard/unrendered-br-expected.txt:
        * platform/mac/editing/execCommand/paste-1-expected.txt:
        * platform/mac/editing/pasteboard/paste-2-expected.txt:
        * platform/mac/editing/pasteboard/unrendered-br-expected.txt:

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

        Add support for sequences and dictionaries in unions
        https://bugs.webkit.org/show_bug.cgi?id=163695

        Reviewed by Chris Dumez.

        * js/dom/webidl-type-mapping-expected.txt:
        * js/dom/webidl-type-mapping.html:
        Add tests for more complex conversions.

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

        Marking platform/mac-wk2/plugins/muted-state.html as failing.
        https://bugs.webkit.org/show_bug.cgi?id=163702

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Import W3C CSS Shapes tests
        https://bugs.webkit.org/show_bug.cgi?id=163697

        Rubberstamped by Anders Carlsson.

        * TestExpectations: Mark as skipped while we unprefix.

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